/* 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,#camera.session-experience.has-game-progress.fsmode #suggest-chip{top:auto!important;bottom:75px!important;height:auto!important;min-height:0!important;width:max-content;max-width:68%;padding:0!important;font-size:13px!important;line-height:1.4;text-align:center;color:#f4ffe9!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-shadow:0 1px 4px #000,0 0 7px #000;pointer-events:none}
#camera.session-experience.session-loading #cam-status{display:block!important;position:absolute;top:auto!important;bottom:max(76px,calc(env(safe-area-inset-bottom) + 60px));left:12%;right:12%;width:auto;transform:none;text-align:center;padding:0;background:none!important;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;color:#fff;font-size:13px;line-height:1.35;text-shadow:0 1px 3px #000,0 0 4px #000;pointer-events:none;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}
/* A broad tapered fuel gauge: legible from across the practice space. */
#camera.session-experience #game-progress-hud{inset:max(16px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) auto max(14px,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:110px;max-width:26%;pointer-events:none;text-shadow:0 2px 4px #000,0 0 9px #000;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
#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:3px;min-height:0;max-width:100%}
#camera.session-experience .game-progress-heading strong{font-size:clamp(13px,2.2vw,18px);max-width:100%;white-space:nowrap;font-weight:800;color:#f2ffe9}
#camera.session-experience .game-progress-heading output{font-size:clamp(23px,3.5vw,34px);line-height:1;font-weight:900;color:#edffbb}
#camera.session-experience .game-player-progress[data-player="2"] strong{color:#b5ddff}
#camera.session-experience .game-goal-rail{--progress:0%;position:relative;width:clamp(38px,6vw,62px);height:clamp(150px,49dvh,360px);background:#12281fe8;clip-path:polygon(0 0,100% 0,76% 100%,24% 100%);border-radius:7px;overflow:hidden;filter:drop-shadow(0 2px 3px #000);box-shadow:inset 0 0 0 2px #d8f3b787}
#camera.session-experience .game-goal-rail i{position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(to top,#ffd345 0%,#e4ed44 35%,#a2ed52 65%,#48df7a 100%);clip-path:inset(calc(100% - var(--progress)) 0 0);transition:clip-path .3s ease;border-radius:0}
#camera.session-experience .game-goal-rail::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to top,transparent 0,transparent calc(20% - 2px),#efffce66 calc(20% - 2px),#efffce66 20%);box-shadow:inset 0 0 0 2px #dcf5cb66}
#camera.session-experience .game-progress-caption{display:none}
#camera.session-experience .game-move-progress,#camera.session-experience .game-challenge-exit{display:none!important}
@media(orientation:landscape) and (max-height:430px){#camera.session-experience .game-goal-rail{height:48dvh;min-height:115px}#camera.session-experience .game-player-progress{gap:5px}#camera.session-experience .game-progress-heading strong{font-size:13px}#camera.session-experience .game-progress-heading output{font-size:24px}}
/* 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}}

#camera .placement-start>small{color:#e9f6df;text-shadow:0 1px 4px #000;font-size:13px;text-align:center}
#camera .placement-start>button{background:#15372de8;border-color:#94cf78;color:#eeffe2;pointer-events:auto;min-height:44px}
