.ppl-app{--ppl-ink:#263951;--ppl-sub:#6d7c90;--ppl-primary:#7253d6;--ppl-green:#0b9f94;--ppl-border:#ebeaf0;font-family:ui-rounded,"Trebuchet MS",system-ui,-apple-system,sans-serif!important;font-size:15px;line-height:1.5;color:var(--ppl-ink);width:100%;max-width:1080px;margin:18px auto;isolation:isolate}
.ppl-app *{box-sizing:border-box}.ppl-app button{font-family:inherit;font-size:inherit;line-height:1.3;cursor:pointer}.ppl-app button:focus-visible{outline:4px solid #fcbf49;outline-offset:3px}.ppl-app button:disabled{cursor:not-allowed;opacity:.54}.ppl-app [hidden]{display:none!important}.ppl-app h2,.ppl-app h3,.ppl-app p{padding:0;margin:0}.ppl-app .ppl-shell{background:#fffdf8;border:1px solid #eee9e2;border-radius:23px;overflow:hidden;box-shadow:0 9px 35px #24365312}
.ppl-app .ppl-header{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:13px 18px;background:#fff;border-bottom:1px solid #f0edf0}.ppl-app .ppl-brand{display:flex;align-items:center;gap:11px;min-width:0}.ppl-app .ppl-brand>div{min-width:0}.ppl-app .ppl-brand strong{display:block;font-size:13px;font-weight:950;white-space:normal}.ppl-app .ppl-brand span{display:block;color:#64748b;font-size:12px}.ppl-app .ppl-brand b{color:#7253d6}.ppl-app .ppl-logo{height:57px;width:53px;object-fit:contain;flex:none}.ppl-app .ppl-headstar{font-size:29px}
.ppl-app .ppl-hero{background:linear-gradient(125deg,#e0f5e9 0%,#e6e8fc 63%,#fde5ec 100%);padding:29px 27px;display:grid;grid-template-columns:1.35fr .65fr;align-items:center;gap:10px;position:relative;overflow:hidden;min-height:224px}.ppl-app .ppl-hero:before{content:"";position:absolute;width:155px;height:155px;border-radius:50%;background:#ffffff50;right:-40px;top:-67px}.ppl-app .ppl-hero-copy{position:relative;z-index:1}.ppl-app .ppl-smallpill{display:inline-block;background:#ffffffb9;color:#477a70;border-radius:20px;padding:7px 11px;font-weight:900;font-size:10px;letter-spacing:.4px}.ppl-app .ppl-hero h2{font-size:clamp(25px,5.5vw,43px);font-weight:1000;line-height:1.13;letter-spacing:-1.1px;margin:12px 0 10px;max-width:640px}.ppl-app .ppl-hero p{color:#65768c;font-size:13px;line-height:1.7;max-width:430px;margin-bottom:14px}.ppl-app .ppl-mascot{position:relative;display:grid;place-items:center;min-height:180px}.ppl-app .ppl-mascot-float{font-size:104px;filter:drop-shadow(0 12px 6px #47556920);animation:ppl-float 2.9s ease-in-out infinite}.ppl-app .ppl-star{position:absolute;font-size:29px}.ppl-app .star1{top:1%;right:16%}.ppl-app .star2{bottom:7%;left:8%}
.ppl-app .ppl-button{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:13px;padding:12px 16px;min-height:43px;font-weight:900;font-size:13px;gap:5px;transition:transform .13s}.ppl-app .ppl-button:active{transform:scale(.97)}.ppl-app .ppl-primary{background:var(--ppl-primary);color:#fff}.ppl-app .ppl-orange{background:#ee7b42;color:#fff}.ppl-app .ppl-outline{background:#fff;color:#6254ac;border:1.5px solid #dedbef}.ppl-app .ppl-feature{margin:17px 17px 0;background:linear-gradient(120deg,#ffefca,#ffe3d3);border:1px solid #f9e0b9;border-radius:17px;padding:15px;display:flex;align-items:center;gap:12px}.ppl-app .ppl-feature-emoji{font-size:41px;min-width:52px}.ppl-app .ppl-feature-copy{flex:1;min-width:90px}.ppl-app .ppl-feature strong{display:block;font-size:14px;font-weight:950;margin-top:3px}.ppl-app .ppl-feature p{font-size:11px;color:#907051;line-height:1.5;margin-top:4px}.ppl-app .ppl-live-dot{font-size:10px;font-weight:900;color:#15803d}
.ppl-app .ppl-section{padding:23px 18px}.ppl-app .ppl-sectionheading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.ppl-app .ppl-sectionheading h3{font-size:19px;font-weight:1000}.ppl-app .ppl-sectionheading p{font-size:11px;color:#8c94a3;margin-top:3px}.ppl-app .ppl-sectionpill{border-radius:30px;background:#e4f8ed;color:#0f7c67;padding:6px 10px;font-size:10px;font-weight:900;white-space:nowrap}.ppl-app .ppl-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.ppl-app .ppl-card{border:1px solid #eeecf1;border-radius:17px;background:#fff;color:#32415b;padding:0;display:flex;flex-direction:column;min-width:0;overflow:hidden;text-align:left;box-shadow:0 2px 7px #24365306}.ppl-app .ppl-card:hover{box-shadow:0 6px 20px #24365313}.ppl-app .ppl-cardart{position:relative;display:grid;place-items:center;height:125px;overflow:hidden}.ppl-app .ppl-cardemoji{font-size:49px;filter:drop-shadow(1px 6px 2px #00000012);transition:transform .2s}.ppl-app .ppl-card:hover .ppl-cardemoji{transform:scale(1.1) rotate(-3deg)}.ppl-app .ppl-cardstatus{position:absolute;top:8px;left:8px;background:#ffffffd9;border-radius:18px;font-weight:950;font-size:9px;padding:5px 8px;color:#64748b}.ppl-app .ppl-cardstatus.ppl-is-live{background:#dcfce7;color:#166534}.ppl-app .ppl-theme-blue{background:#dceafe}.ppl-app .ppl-theme-gold{background:#fef0c9}.ppl-app .ppl-theme-pink{background:#ffe0e9}.ppl-app .ppl-theme-purple{background:#eae3ff}.ppl-app .ppl-theme-green{background:#d7fbe8}.ppl-app .ppl-theme-orange{background:#ffead6}.ppl-app .ppl-theme-cyan{background:#d6f8fa}.ppl-app .ppl-cardbody{padding:12px 11px 14px;display:flex;flex-direction:column;gap:5px;flex:1}.ppl-app .ppl-cardbody strong{font-size:14px;font-weight:950;line-height:1.35}.ppl-app .ppl-carddesc{font-size:11px;color:#8a93a3;line-height:1.5;flex:1}.ppl-app .ppl-cardcta{font-size:11px;color:#7556d2;font-weight:950;margin-top:6px}
.ppl-app .ppl-stats{display:flex;gap:10px;padding:0 18px 24px}.ppl-app .ppl-stats>div{flex:1;min-width:0;background:#f7f5ff;border:1px solid #e9e5f2;border-radius:14px;padding:12px}.ppl-app .ppl-stats b{font-size:23px;color:#7757d2;display:block}.ppl-app .ppl-stats span{font-size:10px;color:#718198;display:block}.ppl-app .ppl-footer{background:#f5f6fa;text-align:center;padding:14px;color:#8190a2;font-size:11px}
.ppl-app .ppl-toolbar{background:white;padding:12px 15px;display:flex;justify-content:space-between;align-items:center;gap:10px}.ppl-app .ppl-gameheader{background:linear-gradient(128deg,#183d83,#7153d1);color:white;text-align:center;padding:22px 12px}.ppl-app .ppl-gameheader>span{font-size:35px}.ppl-app .ppl-gameheader h2{font-size:28px;font-weight:1000;margin:8px 0}.ppl-app .ppl-gameheader p{font-size:12px;color:#e9e8ff}.ppl-app .ppl-gamebody{background:#f8f9ff;padding:19px 18px}.ppl-app .ppl-levels{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:3px 0 17px}.ppl-app .ppl-levels button{background:#fff;color:#5b6780;border:2px solid #e0e3ee;border-radius:12px;min-height:45px;padding:10px 14px;font-size:12px;font-weight:900}.ppl-app .ppl-levels .ppl-selected{background:#7253d6;border-color:#7253d6;color:#fff}.ppl-app .ppl-lanes{display:grid;gap:15px}.ppl-app .ppl-lanelabel{display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:950;margin-bottom:6px}.ppl-app .ppl-road{height:93px;border:5px solid #a1a1aa;border-radius:12px;position:relative;overflow:hidden;isolation:isolate;background:repeating-linear-gradient(90deg,#414955 0 36px,#4e5866 36px 72px)}.ppl-app .ppl-road:before{content:"";position:absolute;top:50%;left:0;right:0;border-top:4px dashed #ffefaa;animation:ppl-roadmotion .75s linear infinite}.ppl-app .ppl-road:after{content:"";position:absolute;top:0;bottom:0;right:10%;width:13px;background:conic-gradient(#fff 25%,#0f172a 0 50%,#fff 0 75%,#0f172a 0) 0 0/13px 26px}.ppl-app .ppl-car{position:absolute;z-index:2;left:2%;top:15px;font-size:42px;line-height:1.2;transform:scaleX(-1);transition:left .7s cubic-bezier(.2,.65,.26,1);filter:drop-shadow(2px 5px 2px #0007)}.ppl-app .ppl-progress{height:8px;background:#e0e5ee;border-radius:14px;margin-top:6px;overflow:hidden}.ppl-app .ppl-progress>span{display:block;height:100%;width:0;transition:width .7s}.ppl-app [data-ppl-bar=player]{background:#3b82f6}.ppl-app [data-ppl-bar=ai]{background:#f43f5e}.ppl-app .ppl-statepanel{text-align:center;padding:25px 10px}.ppl-app .ppl-hugeemoji{font-size:69px;line-height:1.1}.ppl-app .ppl-statepanel h3{font-size:22px;font-weight:1000;margin:10px 0}.ppl-app .ppl-statepanel p{color:#748199;font-size:13px;line-height:1.6;max-width:360px;margin:0 auto 18px}.ppl-app .ppl-quiz{background:white;border-radius:19px;border:1px solid #e7e9f0;text-align:center;padding:18px 13px;margin-top:18px;box-shadow:0 4px 18px #312e8110}.ppl-app .ppl-quizmeta{display:flex;justify-content:space-between;color:#8994a8;font-size:11px;font-weight:900;gap:8px}.ppl-app .ppl-equation{font-size:clamp(30px,6vw,45px);font-weight:1000;margin:16px 0;line-height:1.35}.ppl-app .ppl-answers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.ppl-app .ppl-answers button{background:#f8f6ff;border:2px solid #e4dff6;border-radius:15px;font-size:31px;font-weight:1000;color:#5d4bc0;min-height:74px}.ppl-app .ppl-answers .ppl-correct{background:#dcfce7;border-color:#4ade80;color:#166534}.ppl-app .ppl-answers .ppl-wrong{background:#fee2e2;border-color:#f87171;color:#991b1b}.ppl-app .ppl-voicebtn{margin-top:13px}.ppl-app .ppl-feedback{margin-top:13px;min-height:28px;font-size:14px;font-weight:950}.ppl-app .ppl-feedback[data-result=right]{color:#15803d}.ppl-app .ppl-feedback[data-result=wrong]{color:#dc2626}.ppl-app .ppl-audio-status{font-size:11px;color:#64748b;min-height:18px}.ppl-app .ppl-gameactions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:16px}.ppl-app .ppl-disclaimer{text-align:center;color:#8894a7;font-size:11px;line-height:1.6;margin-top:15px}.ppl-app .ppl-end{background:linear-gradient(120deg,#fff0ce,#efe3ff);border:1px solid #eadcfb;padding:26px 14px;text-align:center;border-radius:18px;margin-top:18px}.ppl-app .ppl-end h3{font-size:24px;font-weight:1000;margin:10px 0}.ppl-app .ppl-end p{font-size:13px;color:#68788e;line-height:1.6}.ppl-app .ppl-end .ppl-button{margin-top:15px}.ppl-app .ppl-coming{text-align:center;background:linear-gradient(135deg,#fff2dc,#f1e9ff);padding:35px 16px}.ppl-app .ppl-coming h2{font-size:26px;font-weight:1000;margin:12px 0}.ppl-app .ppl-comingpill{border-radius:20px;background:#fef3c7;color:#9a3412;font-weight:950;font-size:11px;padding:7px 12px;display:inline-block}.ppl-app .ppl-coming p{font-size:13px;color:#63748b;line-height:1.7;max-width:410px;margin:20px auto}
.ppl-app.ppl-pause-motion .ppl-road:before,.ppl-app.ppl-pause-motion .ppl-mascot-float{animation:none!important}
@keyframes ppl-roadmotion{to{transform:translateX(-36px)}}@keyframes ppl-float{50%{transform:translateY(-8px) rotate(3deg)}}
@media(max-width:700px){.ppl-app .ppl-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ppl-app .ppl-cardart{height:118px}.ppl-app .ppl-feature{flex-wrap:wrap}.ppl-app .ppl-feature>.ppl-button{margin-left:auto}}
@media(max-width:440px){.ppl-app{font-size:14px;margin:0 auto}.ppl-app .ppl-shell{border-radius:16px}.ppl-app .ppl-header{padding:10px 13px}.ppl-app .ppl-brand strong{font-size:12px}.ppl-app .ppl-logo{width:42px;height:48px}.ppl-app .ppl-hero{padding:21px 13px;grid-template-columns:1.4fr .6fr;min-height:200px}.ppl-app .ppl-hero h2{font-size:26px;letter-spacing:-.7px}.ppl-app .ppl-hero p{font-size:11px}.ppl-app .ppl-smallpill{font-size:9px;padding:6px 8px}.ppl-app .ppl-mascot{min-height:120px}.ppl-app .ppl-mascot-float{font-size:65px}.ppl-app .ppl-star{font-size:19px}.ppl-app .ppl-feature{margin:12px 10px 0;padding:11px;gap:7px}.ppl-app .ppl-feature strong{font-size:12px}.ppl-app .ppl-feature-emoji{font-size:32px;min-width:35px}.ppl-app .ppl-section{padding:19px 10px}.ppl-app .ppl-sectionheading{align-items:flex-start}.ppl-app .ppl-sectionheading h3{font-size:16px}.ppl-app .ppl-sectionpill{font-size:9px;padding:5px}.ppl-app .ppl-cards{gap:9px}.ppl-app .ppl-cardart{height:104px}.ppl-app .ppl-cardemoji{font-size:40px}.ppl-app .ppl-cardbody strong{font-size:12px}.ppl-app .ppl-cardbody{padding:10px 9px}.ppl-app .ppl-cardstatus{font-size:8px}.ppl-app .ppl-stats{padding:0 10px 17px;gap:7px}.ppl-app .ppl-stats>div{padding:9px}.ppl-app .ppl-stats span{font-size:9px}.ppl-app .ppl-gamebody{padding:14px 11px}.ppl-app .ppl-gameheader{padding:18px 10px}.ppl-app .ppl-gameheader h2{font-size:23px}.ppl-app .ppl-levels button{flex:1;padding:9px 6px}.ppl-app .ppl-road{height:85px}.ppl-app .ppl-car{font-size:38px;top:16px}.ppl-app .ppl-answers button{min-height:74px}.ppl-app .ppl-lanelabel{font-size:12px}}
@media(prefers-reduced-motion:reduce){.ppl-app *, .ppl-app *:before,.ppl-app *:after{animation:none!important;transition:none!important}}
/* v1.1: teacher-entered short names, public leaderboard, touchscreen tracing */
.ppl-app .ppl-boardsection{padding:4px 18px 22px}
.ppl-app .ppl-boardtabs{display:flex;gap:9px;margin:13px 0}
.ppl-app .ppl-boardtabs button{flex:1;min-height:44px;border:2px solid #ddd8f4;border-radius:12px;background:#fff;color:#6352a7;font-size:12px;font-weight:900;padding:9px 10px}
.ppl-app .ppl-boardtabs button.ppl-selected{background:#7253d6;border-color:#7253d6;color:#fff}
.ppl-app .ppl-boardtable{border:1px solid #e8e9ef;border-radius:13px;overflow:auto;background:white}
.ppl-app .ppl-boardtable table{border-collapse:collapse;border-spacing:0;margin:0;width:100%;min-width:280px;font-size:12px;line-height:1.5}
.ppl-app .ppl-boardtable th{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.3px;background:#f3f0ff;color:#6254a5;text-align:left}
.ppl-app .ppl-boardtable th,.ppl-app .ppl-boardtable td{padding:11px 9px;border-bottom:1px solid #f1eff5}
.ppl-app .ppl-boardtable tr:last-child td{border-bottom:0}
.ppl-app .ppl-boardtable td:nth-child(n+3),.ppl-app .ppl-boardtable th:nth-child(n+3){text-align:center;font-variant-numeric:tabular-nums}
.ppl-app .ppl-boardtable tbody tr:nth-child(even){background:#fcfbff}
.ppl-app .ppl-boardempty{padding:25px 12px;text-align:center;font-size:12px;color:#7b8195}
.ppl-app .ppl-studentselect{background:#fff;border:2px solid #eeeafa;border-radius:14px;padding:13px;display:grid;gap:8px;margin-bottom:12px}
.ppl-app .ppl-studentselect label{font-size:13px;font-weight:950;color:#4c4b78}
.ppl-app .ppl-studentselect select{max-width:100%;min-height:46px;width:100%;border:1.5px solid #d9d5ef;border-radius:11px;background:#fbfaff;color:#344054;padding:9px 12px;font:inherit;font-size:15px}
.ppl-app .ppl-formnote{font-size:11px;color:#89745e;line-height:1.5}
.ppl-app .ppl-shapeheader{background:linear-gradient(125deg,#da9c3f,#f6bc5a);padding:20px 12px;color:#fff;text-align:center}
.ppl-app .ppl-shapeheader>span{font-size:40px}
.ppl-app .ppl-shapeheader h2{font-size:26px;font-weight:1000;margin:7px 0}
.ppl-app .ppl-shapeheader p{font-size:12px;color:#fff8e7}
.ppl-app .ppl-shapebody{background:#fff9ef;padding:18px}
.ppl-app .ppl-shapetop{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0;font-size:15px}
.ppl-app .ppl-shapetop strong{font-weight:1000}
.ppl-app .ppl-shapetop span{background:#ffe6bd;color:#a16207;padding:5px 12px;border-radius:30px;font-size:12px;font-weight:900}
.ppl-app .ppl-shapesteps{display:flex;gap:6px;margin:10px 0 14px}
.ppl-app .ppl-shapesteps button{flex:1;background:#fff;border:2px solid #f3dcae;border-radius:12px;min-width:0;min-height:48px;font-size:26px;padding:2px}
.ppl-app .ppl-shapesteps button.active{border-color:#f59e0b;background:#ffedc9;box-shadow:0 2px 0 #d97706}
.ppl-app .ppl-shape-instruction{font-size:12px;color:#946c38;text-align:center;margin:9px auto;line-height:1.5}
.ppl-app canvas[data-ppl-trace]{background:#fffdf4;border:3px solid #f3d9ae;border-radius:16px;display:block;max-width:100%;height:auto;width:100%;touch-action:none;user-select:none;-webkit-user-select:none;margin:10px auto;box-shadow:0 4px 12px #995c2212;cursor:crosshair}
.ppl-app .ppl-shape-status{text-align:center;min-height:30px;color:#15803d;font-size:13px;font-weight:950;margin:10px 0}
.ppl-app .ppl-boardsection .ppl-sectionheading .ppl-button{font-size:11px;padding:8px 10px}
@media(max-width:440px){
 .ppl-app .ppl-boardsection{padding:0 10px 18px}
 .ppl-app .ppl-boardsection .ppl-sectionheading{flex-wrap:wrap}
 .ppl-app .ppl-boardsection .ppl-sectionheading h3{font-size:17px}
 .ppl-app .ppl-boardtable td,.ppl-app .ppl-boardtable th{padding:9px 6px}
 .ppl-app .ppl-shapebody{padding:11px}
 .ppl-app .ppl-shapesteps button{min-height:44px;font-size:21px}
 .ppl-app .ppl-shapeheader h2{font-size:23px}
}

/* v1.2 — dedicated, theme-independent, mobile-first application shell */
html:has(body.ppl-standalone){margin-top:0!important;scroll-padding-top:75px}
body.ppl-standalone{margin:0!important;padding:0!important;min-height:100vh;min-height:100svh;width:100%;max-width:none!important;overflow-x:hidden!important;background:linear-gradient(150deg,#ebe8ff 0%,#e9f8f3 52%,#fff2e4 100%)!important;color:#263951;font-family:ui-rounded,"Trebuchet MS",system-ui,sans-serif}
body.ppl-standalone #wpadminbar{display:none!important}
body.ppl-standalone #playlab-application{min-height:100svh;margin:0;padding:0;display:block}
body.ppl-standalone .ppl-app{max-width:1080px;width:100%;min-height:100svh;margin:0 auto!important;padding:0 0 calc(84px + env(safe-area-inset-bottom, 0px));position:relative}
body.ppl-standalone .ppl-app .ppl-shell{min-height:calc(100svh - 80px);border-radius:0 0 25px 25px;background:#fffdf9}
body.ppl-standalone .ppl-app .ppl-header{position:relative;z-index:4}
.ppl-app .ppl-app-nav{position:fixed;z-index:100;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,1080px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px));background:#fffefafa;backdrop-filter:blur(18px);border:1px solid #e6e1f4;border-radius:22px 22px 0 0;box-shadow:0 -7px 28px #28384a18}
.ppl-app .ppl-app-nav button{background:transparent;color:#78839a;border:0;border-radius:13px;min-height:55px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font-weight:850;touch-action:manipulation}
.ppl-app .ppl-app-nav button span{font-size:24px;line-height:1.2}
.ppl-app .ppl-app-nav button small{font-size:11px;letter-spacing:.2px}
.ppl-app .ppl-app-nav button.active,.ppl-app .ppl-app-nav button:focus-visible{background:#efe9ff;color:#694acc}
.ppl-app .ppl-quickprofile{display:flex;align-items:center;gap:12px;margin:14px 17px 0;border:1px solid #ded6f9;border-radius:16px;background:#faf7ff;padding:13px}
.ppl-app .ppl-profile-avatar{height:43px;min-width:43px;border-radius:50%;background:#ede4ff;display:grid;place-items:center;font-size:25px}
.ppl-app .ppl-profile-info{flex:1;min-width:0}
.ppl-app .ppl-profile-info strong{display:block;font-size:12px;font-weight:950;line-height:1.35}
.ppl-app .ppl-profile-info span{display:block;font-size:11px;color:#8a829e;margin-top:3px}
.ppl-app select[data-ppl-quickstudent]{width:31%;max-width:185px;min-height:46px;border-radius:11px;border:1px solid #c9b9ec;background:#fff;color:#4c3e86;padding:9px 5px;font-size:12px;font-weight:750}
.ppl-app .ppl-profile-page{background:linear-gradient(135deg,#fff6da,#efe8ff);padding:44px 20px 60px;text-align:center;min-height:70svh}
.ppl-app .ppl-profile-page h2{font-size:27px;font-weight:1000;margin:12px 0}
.ppl-app .ppl-profile-page p{font-size:13px;color:#6c7590;line-height:1.6;max-width:350px;margin:0 auto 18px}
.ppl-app .ppl-profile-page select{width:min(100%,360px);border:2px solid #c9b9ec;padding:13px;border-radius:14px;background:#fff;font-size:16px;color:#364152;min-height:52px}
.ppl-app .ppl-profile-notice{font-size:13px;color:#6851b3;font-weight:850;margin:16px 0;min-height:22px}
.ppl-app .ppl-shape-levelrow{background:#fff;border:1px solid #f2dab3;padding:12px;border-radius:14px;text-align:center;margin-bottom:14px}
.ppl-app .ppl-shape-levelrow>strong{display:block;font-size:12px;color:#8c5c25;margin-bottom:8px}
.ppl-app .ppl-trace-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.ppl-app .ppl-trace-levels button{background:#fff8e9;color:#966128;border:1.5px solid #edcc92;min-height:48px;border-radius:11px;padding:8px 5px;font-size:12px;font-weight:950}
.ppl-app .ppl-trace-levels button.active{background:#f59e0b;color:#fff;border-color:#d97706}
.ppl-app .ppl-shape-meter{height:11px;width:100%;background:#f8e3c0;border-radius:999px;overflow:hidden;margin:10px 0 4px}
.ppl-app .ppl-shape-meterfill{height:100%;width:0;background:linear-gradient(90deg,#38bdf8,#16a34a);border-radius:999px;transition:width .15s}
.ppl-app .ppl-shape-meterlabel{text-align:right;color:#996325;font-size:12px;font-weight:900}
.ppl-app .ppl-trace-stars{text-align:center;color:#d97706;min-height:30px;font-weight:900;font-size:17px}
.ppl-app canvas[data-ppl-trace]{touch-action:none;cursor:crosshair}
.ppl-app .ppl-road:before{animation-duration:1.2s}
.ppl-app .ppl-toolbar{position:sticky;top:0;z-index:5;border-bottom:1px solid #eae6f1}
.ppl-app .ppl-boardsection,.ppl-app .ppl-section{scroll-margin-top:70px}
@media(max-width:700px){body.ppl-standalone .ppl-app{max-width:none}body.ppl-standalone .ppl-app .ppl-shell{border:0;box-shadow:none;border-radius:0}.ppl-app .ppl-app-nav{border-radius:20px 20px 0 0}}
@media(max-width:440px){.ppl-app .ppl-quickprofile{margin:11px 10px 0;padding:10px;gap:8px}.ppl-app .ppl-profile-avatar{height:37px;min-width:37px;font-size:22px}.ppl-app .ppl-profile-info strong{font-size:11px}.ppl-app .ppl-profile-info span{font-size:10px}.ppl-app select[data-ppl-quickstudent]{width:37%;font-size:12px}.ppl-app .ppl-app-nav{padding-left:7px;padding-right:7px}.ppl-app .ppl-shapebody{padding:10px}.ppl-app .ppl-shape-levelrow{padding:10px 7px}.ppl-app .ppl-trace-levels button{font-size:11px}}

/* Keep gameplay immersive: hide bottom tabs while tracing or racing. */
.ppl-app.ppl-playing .ppl-app-nav{display:none}
body.ppl-standalone .ppl-app.ppl-playing{padding-bottom:env(safe-area-inset-bottom, 0px)}

/* v1.3.1 Disabled games remain visible but never open their gameplay. */
.ppl-app .ppl-card-offline .ppl-cardart{filter:saturate(.42)}
.ppl-app .ppl-card-offline .ppl-cardemoji{opacity:.58}
.ppl-app .ppl-card-offline .ppl-cardstatus{background:#fff2d9;color:#9a3412}
.ppl-app .ppl-card-offline .ppl-cardcta{color:#a16207}

/* v1.4 native audit controls */
.ppl-audit-banner{background:#172554;color:white;font-size:13px;font-weight:800;padding:12px 16px;text-align:center;position:sticky;top:0;z-index:30}.ppl-audit-banner a{color:#fde68a;text-decoration:underline}.ppl-code-entry{margin-top:10px;display:grid;gap:6px}.ppl-code-entry label{font-size:12px}.ppl-code-entry input{width:100%;max-width:350px;padding:11px;border-radius:11px;border:1px solid #cbd5e1;background:white;color:#334155;font-size:16px}

/* v1.5 — single sign-in screen for all classes. Never repeat identity fields in games. */
.ppl-app .ppl-entry-screen{min-height:100svh;background:linear-gradient(165deg,#e7f5eb 0%,#f2edff 50%,#fff4e4 100%)}
.ppl-app .ppl-entry-hero{text-align:center;padding:26px 18px 9px}
.ppl-app .ppl-entry-hero>span{font-size:59px;display:block;filter:drop-shadow(0 7px 5px #4755691d)}
.ppl-app .ppl-entry-hero h2{font-size:clamp(24px,6vw,35px);font-weight:1000;line-height:1.2;color:#394463;margin:6px 0}
.ppl-app .ppl-entry-hero p{font-size:13px;color:#6b7890}
.ppl-app .ppl-entry-form{background:#fff;max-width:470px;margin:17px auto 28px;border:2px solid #e9ddfa;border-radius:22px;padding:23px;display:grid;gap:10px;box-shadow:0 11px 30px #58438112}
.ppl-app .ppl-entry-form>label{font-size:13px;font-weight:950;color:#504e78;margin-top:6px}
.ppl-app .ppl-entry-form>select,.ppl-app .ppl-entry-form>input{width:100%;min-height:53px;padding:12px 13px;background:#faf9ff;color:#344054;border-radius:12px;border:2px solid #dfd8f2;font:inherit;font-size:16px}
.ppl-app .ppl-entry-form .ppl-button{min-height:51px}
.ppl-app .ppl-entry-msg{min-height:20px;color:#b91c1c;font-size:12px;font-weight:850;line-height:1.4}
.ppl-app .ppl-entry-note{text-align:center;font-size:11px;color:#708199;line-height:1.5}
.ppl-app .ppl-game-identity{margin:12px 0 16px;padding:11px 14px;border:1px solid #d9dfec;border-radius:14px;background:#ffffffc7;font-size:12px;color:#4f607b;font-weight:750;line-height:1.5}
.ppl-app .ppl-game-identity strong{color:#304777}
.ppl-app .ppl-quickprofile .ppl-button{font-size:11px;padding:10px 12px;white-space:nowrap}
.ppl-app .ppl-profile-page .ppl-button{margin:10px 5px}
@media(max-width:480px){.ppl-app .ppl-entry-form{margin:14px 12px 28px;padding:18px 14px}.ppl-app .ppl-entry-hero{padding-top:20px}.ppl-app .ppl-entry-hero>span{font-size:48px}.ppl-app .ppl-entry-form>select,.ppl-app .ppl-entry-form>input{min-height:50px}}

/* Azure voice cache status; only shown if a speech clip is unavailable. */
.ppl-app .ppl-cloud-audio-status:not([hidden]){position:fixed;left:50%;transform:translateX(-50%);bottom:76px;z-index:120;width:min(92vw,480px);padding:10px 13px;border-radius:13px;border:1px solid #e9c680;background:#fff9e5;color:#6a4c20;font:600 13px/1.5 system-ui;box-shadow:0 7px 20px rgba(0,0,0,.15)}
