/* Camera-first presentation, last in the cascade for public and native builds. */
#camera.session-experience #camera-toolbar,#camera.session-experience #cam-fsbar,#camera.session-experience #cam-gear{display:none!important}
#camera.session-experience #camera-transport{bottom:max(16px,env(safe-area-inset-bottom));left:12px;right:12px;gap:8px;transition:opacity .2s;z-index:95}
#camera.session-experience #camera-transport>button{min-width:44px!important;min-height:44px!important;max-width:48%;padding:10px 14px!important;flex:0 1 auto}
#camera.session-experience #camera-transport #cam-stop{background:#183333;color:#eaffed;border:1px solid #618272;font-size:14px}
#camera.session-experience #camera-transport #cam-start{min-width:140px!important}
#camera.session-experience #camera-transport .session-move{max-width:42%;background:#132a25e8}
#session-reveal{display:none;position:absolute;bottom:max(16px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));z-index:94;background:#102723c9;color:#d6edd9;border:1px solid #63806b;min-width:44px;min-height:44px;opacity:.8}
#camera.session-busy #session-reveal{display:grid;place-items:center}
#camera.session-busy:not(.controls-visible) #camera-transport{opacity:0;visibility:hidden;pointer-events:none}
#camera.session-busy.controls-visible #session-reveal{visibility:hidden}
#camera.session-busy .statgrid,#camera.session-busy #mode-pills,#camera.session-busy #acc-cards,#camera.session-busy #free-panel>.card{display:none!important}
#camera.session-experience .statgrid{display:none!important}
#camera.session-experience #camera-guide{inset:30px 30px 90px!important}
#camera.session-experience #camera-guide img{max-height:100%;object-fit:contain}
#camera.session-experience #cue-chip{top:auto!important;bottom:max(76px,calc(env(safe-area-inset-bottom) + 60px))!important;left:12%!important;right:12%!important;width:auto!important;height:auto!important;min-height:0!important;max-width:none!important;padding:0!important;font-size:clamp(13px,2.5vw,17px)!important;line-height:1.35;text-align:center;color:#fff!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-shadow:0 1px 3px #000,0 0 4px #000,1px 0 2px #000,-1px 0 2px #000;pointer-events:none}
#camera.session-experience #cam,#camera.session-experience #pose-canvas{object-fit:cover!important;object-position:50% 50%!important}
#camera.session-experience #suggest-chip{top:auto!important;bottom:75px!important;font-size:11px!important;max-width:68%;padding:5px 10px;pointer-events:none}
#camera.session-experience.session-loading #cam-status{display:block!important;position:absolute;top:45%;left:15%;right:15%;text-align:center;padding:12px;background:#122520e8;border-radius:12px;z-index:90}
#camera.session-experience.session-busy:not(.session-loading)>#cam-status{display:none!important}
#camera.session-experience .cdperson-img,#camera.session-experience .cd-guide-line{display:none}
#camera.session-experience .countdown{background:transparent!important;pointer-events:none}
#camera.session-experience .cdperson-wrap{height:auto!important;min-height:0!important}
#session-options-dialog #session-option-items{display:flex;flex-direction:column;gap:14px}
#session-options-dialog #session-setup{margin:0;padding:0;background:none;border:0}
#session-options-dialog #setup-note{display:none}
#session-options-dialog #session-standard-controls{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0}
#session-options-dialog #session-standard-controls button{padding:8px!important;min-width:0;font-size:12px}
#session-options-dialog #session-standard-controls .ui-icon{width:18px;height:18px}
#session-options-dialog #session-record-controls{display:flex!important;flex-wrap:wrap;margin:0;padding:0}
#session-options-dialog #session-record-controls #record-status{width:100%}
#session-options-dialog #session-fullscreen-tools{display:flex;gap:8px}
#session-options-dialog #session-fullscreen-tools button{position:static!important;display:inline-flex!important;width:44px!important;height:44px!important;align-items:center;justify-content:center;margin:0!important;background:#183333!important;color:#ddf4df!important;border:1px solid #476259!important}
#session-options-dialog #session-fullscreen-tools button[hidden]{display:none!important}
#session-options-dialog .on{background:#2b4830!important;color:#ddffd2!important;border-color:#7be66b!important}
#session-options-dialog button:disabled{opacity:.65}
/* Thin, bottom-to-top goal rails. P2 has its own separate screen edge. */
#camera.session-experience #game-progress-hud{inset:max(14px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) auto max(10px,env(safe-area-inset-left));gap:0;z-index:82}
#camera.session-experience .game-player-progress{padding:0;border:0;box-shadow:none;border-radius:0;background:none;width:80px;max-width:24%;pointer-events:none;text-shadow:0 1px 3px #000,0 0 5px #000;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
#camera.session-experience .game-player-progress[data-player="2"]{align-items:flex-end;text-align:right}
#camera.session-experience .game-progress-heading{display:flex;flex-direction:column;align-items:inherit;gap:2px;min-height:0;max-width:100%}
#camera.session-experience .game-progress-heading strong{font-size:10px;max-width:100%;white-space:nowrap}
#camera.session-experience .game-progress-heading output{font-size:10px}
#camera.session-experience .game-goal-rail{position:relative;width:6px;height:clamp(85px,23vh,170px);border-radius:5px;background:#102e2999;box-shadow:0 0 0 1px #ffffff29;overflow:hidden}
.game-goal-rail i{position:absolute;bottom:0;left:0;width:100%;height:0;background:var(--player-color);border-radius:5px;transition:height .18s}
#camera.session-experience .game-progress-caption{font-size:10px;max-width:100%;text-shadow:0 1px 3px #000}
#camera.session-experience .game-progress-caption span,#camera.session-experience .game-progress-caption small,#camera.session-experience .game-move-progress,#camera.session-experience .game-challenge-exit{display:none!important}
/* Decode outside the viewport. Unlike display:none, this permits first-frame preparation. */
video.teacher-preload{position:fixed!important;left:-10000px!important;top:0!important;width:160px!important;height:120px!important;pointer-events:none;opacity:.01}
#vid-wrap .practice-demo-pip{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:clamp(130px,30vw,230px);z-index:92;background:#101f20;border:1px solid #6b9c67;border-radius:14px;overflow:hidden;box-shadow:0 5px 18px #0004}
#vid-wrap .practice-demo-pip video,#vid-wrap .practice-demo-pip canvas{position:relative!important;inset:auto!important;display:block!important;width:100%!important;height:auto!important;aspect-ratio:4/3;object-fit:contain!important;transform:none!important;background:#102022}
.teacher-caption{display:flex;align-items:center;gap:4px;padding:0 3px 0 8px;color:#daf7d7;font-size:10px}
.teacher-caption span{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.teacher-caption button{background:none;border:0;color:#daf7d7;display:grid;place-items:center;min-height:44px;min-width:44px;padding:10px}
.teacher-caption .ui-icon{width:18px;height:18px}
.practice-demo-pip progress{display:block;width:100%;height:3px;accent-color:#7be66b;border:0}
@media(prefers-reduced-motion:reduce){.game-goal-rail i,#camera.session-experience #camera-transport{transition:none}}
