:root{color-scheme:dark;--orange:#ff794c;--cream:#f2eee5;--line:#ffffff25;--muted:#a9afa9;font-family:Arial,Helvetica,sans-serif;background:#19212a;color:var(--cream);font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit}button:focus-visible{outline:2px solid var(--orange);outline-offset:4px}.broadcast{position:fixed;inset:0;height:100dvh;overflow:hidden}#viewport{position:absolute;inset:0;touch-action:none}#viewport canvas{display:block;width:100%;height:100%}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0c121a99,transparent 29%,transparent 56%,#0c121aeb),linear-gradient(90deg,#0c121a80,transparent 36%,transparent 65%,#0c121a66)}.show-identity{position:absolute;top:max(30px,env(safe-area-inset-top));left:3%;pointer-events:none}.eyebrow{font:9px ui-monospace,monospace;letter-spacing:1.4px;color:#c7cbc4;display:flex;align-items:center;gap:8px}.dot{width:6px;height:6px;border-radius:50%;background:var(--orange);display:inline-block;flex-shrink:0;box-shadow:0 0 10px #ff794c60}.simulation-label{color:#909b9e;font-size:8px;margin-left:8px}h1{font-size:38px;letter-spacing:-2px;margin:13px 0 5px;font-weight:900;line-height:1}h1>span{color:transparent;-webkit-text-stroke:1px var(--cream)}h1 sup{font:9px monospace;color:var(--orange);letter-spacing:0;vertical-align:top;margin-left:8px}.show-identity p{font-size:11px;color:#b7bdb7;margin:9px 0}.round-card{position:absolute;top:max(30px,env(safe-area-inset-top));right:3%;width:150px;pointer-events:none}.round-card>span{font:8px monospace;letter-spacing:1.5px;color:#b9c0b9}.round-card>div:not(.round-track){display:flex;align-items:baseline;justify-content:space-between;margin-top:5px;font:10px monospace}.round-card strong{font:44px ui-monospace,monospace;letter-spacing:-4px;font-weight:400}.round-track{height:2px;background:#ffffff26;margin:11px 0}.round-track>span{display:block;width:0;height:100%;background:var(--orange);transition:width .15s linear}.round-card>small{font:8px monospace;color:#a1afa9}.round-card .terrain{display:block;font-size:9px;letter-spacing:.5px;margin-top:12px;color:#d3d9d0}.curriculum-card,.goal-card{position:absolute;pointer-events:none;width:260px;top:24%;padding:20px 0;background:linear-gradient(90deg,#121a2244,transparent);text-shadow:0 1px 8px #10151b99}.curriculum-card{left:3%}.goal-card{right:3%;width:240px;background:linear-gradient(270deg,#121a2255,transparent);text-align:right}.curriculum-card .eyebrow{letter-spacing:1px;font-size:8px;white-space:nowrap}.orange-square,.goal-square{width:5px;height:5px;background:var(--orange);flex-shrink:0}.goal-square{background:#c9f779}.curriculum-card #stage-number{margin-left:auto;color:var(--orange)}.curriculum-card h2,.goal-card h2{font-size:26px;letter-spacing:-.7px;line-height:1.05;margin:15px 0 10px;font-weight:650}.curriculum-card p,.goal-card p{font-size:11px;line-height:1.6;color:#b0b9b1;margin:0}.stage-track{display:flex;gap:5px;margin:20px 0}.stage-track i{height:3px;flex:1;background:#ffffff24}.stage-track i.complete{background:var(--orange)}.stage-track i.current{background:#f2eee5}.check-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;margin:13px 0;color:#c3cbc1}.check-row strong{font:9px monospace;color:#a5aaa0;white-space:nowrap}.check-row strong.passed{color:#c9f779}.check-row strong.pending{color:var(--orange)}.curriculum-card .promotion{font-size:9px;line-height:1.6;border-top:1px solid #ffffff25;padding-top:13px;margin-top:16px;color:#a9b3a7}.curriculum-card>small{display:block;font:8px monospace;color:#7e9291;margin-top:9px;line-height:1.6}.goal-card .eyebrow{justify-content:flex-end;letter-spacing:1px;font-size:8px;color:#c9f779}.goal-numbers{display:flex;align-items:baseline;justify-content:flex-end;gap:14px;margin:20px 0 10px}.goal-numbers>strong{font:43px ui-monospace,monospace;letter-spacing:-2px;font-weight:400}.goal-numbers small{font:10px monospace;letter-spacing:0;color:#b7c3ad}.goal-numbers>span{font:11px monospace;color:#c9f779;white-space:nowrap}.goal-card p{font-size:10px}.goal-clock{width:130px;height:2px;background:#ffffff25;margin:18px 0 10px auto}.goal-clock>span{display:block;height:100%;width:0;background:#c9f779}.goal-card>small{font:8px monospace;color:#a0b39a}.arena-hint{position:absolute;left:50%;bottom:235px;transform:translateX(-50%);font:8px monospace;letter-spacing:1px;color:#d7d9cd;white-space:nowrap;pointer-events:none;background:#131c2466;padding:8px 12px;border:1px solid #ffffff16;backdrop-filter:blur(6px)}.tap-icon{font-size:12px;margin-right:5px;color:var(--orange)}.hint-secondary{color:#8fa29f}.round-banner{position:absolute;left:50%;top:17%;transform:translate(-50%,-10px);background:var(--orange);color:#161616;padding:12px 20px;display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;pointer-events:none;white-space:nowrap}.round-banner>span{font:7px monospace;letter-spacing:2px}.round-banner strong{font-size:17px;letter-spacing:-.5px;font-weight:900}.round-banner.show{animation:round-in 2.2s both}.lower-third{position:absolute;bottom:80px;left:3%;right:3%;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;pointer-events:none}.contestant>span{font:8px monospace;letter-spacing:1.8px;color:var(--orange)}.contestant h2{font-size:36px;line-height:1;letter-spacing:-1.5px;margin:9px 0 13px;font-weight:800}.contestant h2>span{font-size:20px;vertical-align:top;margin-left:13px;color:var(--orange)}.contestant p{font:9px monospace;color:#a4b2a5;margin:6px 0}.contestant #model-age{font-size:8px;color:#9bab8d}.contestant #model-age.fresh{color:#c9f779}.metrics{display:flex;gap:32px;margin-left:auto;margin-right:40px}.stat{display:flex;flex-direction:column;gap:8px;min-width:110px;border-left:1px solid #ffffff25;padding-left:22px}.stat>span{font:8px monospace;letter-spacing:1px;color:#a1afa5}.stat>strong{font:34px ui-monospace,monospace;letter-spacing:-1.5px;font-weight:400;white-space:nowrap}.stat small{font:9px monospace;color:#9caa9b;letter-spacing:0}.stat em{font:9px monospace;font-style:normal;color:#b6c3ad}.stat-bar{height:2px;background:#ffffff20;margin-top:2px}.stat-bar>span{display:block;height:100%;width:0;background:var(--orange);transition:width .15s}.tracking-card{display:flex;align-items:center;gap:12px;margin-bottom:5px}.tracking-card>span{font:8px monospace;line-height:1.8;letter-spacing:1px;color:#b9c6b4}.tracking-ring{width:68px;height:68px;border-radius:50%;position:relative;display:grid;place-items:center;background:conic-gradient(var(--orange) var(--score,0%),#ffffff20 0)}.tracking-ring:before{content:'';position:absolute;inset:3px;border-radius:50%;background:#17202a}.tracking-ring strong{position:relative;font:19px monospace}.broadcast-caption{position:absolute;bottom:0;left:0;right:0;height:42px;background:#0e171ed9;border-top:1px solid #ffffff20;padding:0 3% max(0px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;font:10px monospace;color:#bbc9b5}.training-ticker{margin-left:auto;display:flex;gap:12px;align-items:center;white-space:nowrap}.training-ticker>span{color:var(--orange);font-size:8px;letter-spacing:1px}.training-ticker strong{font-size:9px;font-weight:400}.show-tools{position:absolute;bottom:180px;right:3%;display:flex;gap:8px}.show-tools button{border:1px solid #ffffff30;background:#111b2277;padding:8px 10px;font-size:9px;backdrop-filter:blur(8px);color:#c2cdbd}.show-tools button:hover{background:#2c3945}#fullscreen{font-size:17px;line-height:13px}.push-feedback{position:absolute;pointer-events:none;width:40px;height:40px;border:2px solid var(--orange);border-radius:50%;transform:translate(-50%,-50%);opacity:0}.push-feedback.active{animation:push-ring .65s ease-out}.push-feedback:after{content:'PUSH';position:absolute;top:45px;left:50%;transform:translateX(-50%);font:9px monospace;color:var(--orange);letter-spacing:2px}#loading{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#19212a;font-size:16px}#loading[hidden]{display:none}#loading small{font:10px monospace;color:#a3b19e}.loader{width:32px;height:32px;border:2px solid #ffffff22;border-top-color:var(--orange);border-radius:50%;animation:spin 1s linear infinite}#error{position:absolute;left:3%;right:3%;bottom:50px;padding:12px;background:#62291ce8;border:1px solid var(--orange);font-size:11px;z-index:5}@keyframes spin{to{transform:rotate(360deg)}}@keyframes round-in{0%{opacity:0;transform:translate(-50%,-10px)}15%,80%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,8px)}}@keyframes push-ring{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}100%{opacity:0;transform:translate(-50%,-50%) scale(2)}}@media(max-width:1100px){.curriculum-card{width:225px}.goal-card{width:210px}.metrics{gap:20px;margin-right:0}.stat{min-width:90px;padding-left:15px}.stat>strong{font-size:28px}.tracking-card>span{display:none}.contestant h2{font-size:30px}.tracking-ring{width:52px;height:52px}}@media(max-width:700px){.show-identity{top:max(22px,env(safe-area-inset-top));left:5%}.eyebrow{font-size:7px;letter-spacing:.7px}.simulation-label{font-size:6px;margin-left:3px}h1{font-size:28px;margin-top:12px}h1 sup{font-size:7px;margin-left:5px}.show-identity p{font-size:9px}.round-card{top:max(22px,env(safe-area-inset-top));right:5%;width:95px}.round-card>span{font-size:6px;letter-spacing:.7px}.round-card strong{font-size:31px;letter-spacing:-3px}.round-card>div:not(.round-track){font-size:7px}.round-track{margin:8px 0}.round-card>small{font-size:6px}.round-card .terrain{font-size:7px;margin-top:8px}.curriculum-card,.goal-card{top:20%;padding:10px 0}.curriculum-card{left:5%;width:172px}.goal-card{right:5%;width:143px}.curriculum-card .eyebrow,.goal-card .eyebrow{font-size:6px;letter-spacing:.4px;gap:5px}.curriculum-card h2,.goal-card h2{font-size:20px;letter-spacing:-.5px;margin:12px 0 8px}.curriculum-card p{font-size:9px;line-height:1.5}.stage-track{margin:13px 0}.check-row{font-size:8px;margin:10px 0;gap:4px}.check-row strong{font-size:7px}.curriculum-card .promotion{font-size:7px;padding-top:10px;margin-top:12px}.curriculum-card>small{font-size:6px;margin-top:7px}.goal-numbers{display:block;margin:15px 0 10px}.goal-numbers>strong{font-size:29px;letter-spacing:-1px}.goal-numbers small{font-size:8px}.goal-numbers>span{display:block;margin-top:5px;font-size:9px}.goal-card p{font-size:8px;line-height:1.6}.goal-clock{width:100px;margin:12px 0 8px auto}.goal-card>small{font-size:6px}.arena-hint{bottom:228px;font-size:7px;padding:7px 9px;letter-spacing:.3px}.hint-secondary{display:none}.lower-third{left:5%;right:5%;bottom:65px;flex-wrap:wrap;gap:18px}.contestant>span{font-size:6px;letter-spacing:1px}.contestant h2{font-size:24px;margin:8px 0}.contestant h2>span{font-size:15px}.contestant p{font-size:7px;margin:5px 0}.contestant #model-age{font-size:6px}.metrics{order:3;flex-basis:100%;justify-content:space-between;gap:12px;margin:0}.stat{min-width:0;flex:1;gap:6px;padding-left:12px}.stat:first-child{border:0;padding:0}.stat>strong{font-size:25px;letter-spacing:-1px}.stat>span{font-size:6px;letter-spacing:.6px}.stat small{font-size:7px}.stat em{font-size:7px}.tracking-card{margin-left:auto;align-self:center}.tracking-ring{width:43px;height:43px}.tracking-ring strong{font-size:12px}.show-tools{right:5%;bottom:238px}.show-tools button{font-size:7px;padding:7px 8px}#fullscreen{font-size:14px}.broadcast-caption{height:35px;padding:0 5%;gap:6px;font-size:7px}.training-ticker{gap:5px}.training-ticker>span{display:none}.training-ticker strong{font-size:6px}.broadcast-caption #commentary{max-width:67%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.round-banner{top:12%;padding:9px 14px}.round-banner>span{font-size:6px}.round-banner strong{font-size:13px}.push-feedback:after{font-size:7px}#error{font-size:9px}}@media(max-height:650px) and (min-width:701px){.curriculum-card,.goal-card{top:22%;transform:scale(.8);transform-origin:top left}.goal-card{transform-origin:top right}.arena-hint{bottom:165px}.show-tools{bottom:160px}.lower-third{bottom:60px}.show-identity{top:18px}.round-card{top:18px}.curriculum-card .promotion,.curriculum-card>small{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.round-banner.show{opacity:1}.push-feedback.active{opacity:1}}
@media(max-width:700px){.curriculum-card,.goal-card{top:max(120px,15%)}}@media(max-width:700px) and (max-height:740px){.curriculum-card,.goal-card{top:110px}.curriculum-card h2,.goal-card h2{font-size:17px}.curriculum-card .promotion,.curriculum-card>small{display:none}.curriculum-card #stage-description{font-size:8px}.check-row{margin:8px 0}.stage-track{margin:10px 0}.arena-hint{bottom:207px}.show-tools{bottom:210px}.lower-third{bottom:55px;gap:14px}.contestant h2{font-size:21px}.stat>strong{font-size:22px}}

.training-charts{position:absolute;right:3%;top:20%;width:min(440px,38vw);max-height:58dvh;overflow:auto;padding:16px 18px;background:#111b25ed;border:1px solid #ffffff25;backdrop-filter:blur(14px);box-shadow:0 14px 50px #0005;z-index:2}.training-charts[hidden]{display:none}.charts-heading{display:flex;justify-content:space-between;align-items:center;font:10px monospace;letter-spacing:1.4px;color:var(--orange)}.charts-heading button{background:transparent;border:0;font-size:22px;line-height:20px;color:#c5cfc7}.charts-source,.charts-footnote{font:9px/1.5 monospace;color:#a7b7af;margin:8px 0 12px}.charts-footnote{margin:12px 0 0;color:#8ea19b}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}.chart-grid figure{margin:0;min-width:0}.chart-grid figcaption{font:8px monospace;letter-spacing:.4px;color:#aabbb1;display:flex;justify-content:space-between;gap:8px}.chart-grid figcaption strong{color:#f2eee5;font-size:10px;font-weight:400;white-space:nowrap}.chart-grid svg{display:block;width:100%;height:auto;margin:5px 0}.chart-grid small{font:8px monospace;color:#8fa39a}.show-tools{z-index:3}@media(max-width:1100px){.training-charts{width:40vw;top:18%}}@media(max-width:700px){.training-charts{right:5%;width:90vw;top:19%;max-height:53dvh;padding:14px}.charts-source,.charts-footnote{font-size:8px}.chart-grid{gap:16px 12px}.chart-grid figcaption{font-size:6px;letter-spacing:0;flex-direction:column;gap:4px}.chart-grid small{font-size:7px}.charts-heading{font-size:9px}}@media(max-height:600px){.training-charts{top:12%;max-height:65dvh}}

.environment-panel{position:absolute;right:3%;top:20%;width:min(330px,90vw);max-height:65dvh;overflow:auto;padding:18px;background:#111b25f5;border:1px solid #ffffff25;backdrop-filter:blur(14px);box-shadow:0 14px 50px #0005;z-index:2}.environment-panel[hidden]{display:none}.environment-panel label{display:block;font:11px monospace;color:#c3cec5;margin:16px 0 8px}.environment-panel select{width:100%;font:12px Arial,sans-serif;color:var(--cream);background:#263440;border:1px solid #ffffff35;border-radius:3px;padding:10px}.environment-panel input[type=range]{width:100%;accent-color:var(--orange);margin:8px 0}.environment-panel select:disabled,.environment-panel input:disabled{opacity:.4}.environment-panel output{float:right;color:var(--orange)}.environment-panel p{font:10px/1.6 monospace;color:#afbeb3}.environment-panel small{display:block;font:9px/1.5 monospace;color:#8fa39a;border-top:1px solid #ffffff25;padding-top:12px}.arena-apply{width:100%;border:1px solid var(--orange);background:var(--orange);color:#15202b;padding:11px;font-size:12px;margin-top:6px}.arena-apply:disabled{opacity:.5}.environment-panel select:focus-visible,.environment-panel input:focus-visible{outline:2px solid var(--orange);outline-offset:3px}@media(max-width:700px){.environment-panel{right:5%;top:17%;width:90vw;max-height:60dvh}.show-tools{gap:5px}.show-tools button{padding:7px 6px}}

/* Keep the scene in its own layer; controls remain reachable above every overlay. */
#viewport{z-index:0}.vignette{z-index:1}.show-identity,.round-card,.curriculum-card,.goal-card,.arena-hint,.lower-third,.broadcast-caption{z-index:2}.round-banner,.push-feedback{z-index:3}.training-charts,.environment-panel{z-index:20}.show-tools{z-index:50;isolation:isolate;pointer-events:auto}.show-tools button{position:relative;min-height:36px;pointer-events:auto;box-shadow:0 2px 12px #0005}#error{z-index:30}@media(max-width:700px){.show-tools{bottom:max(225px,27dvh);right:5%;gap:5px}.show-tools button{min-height:38px;padding:9px 8px;background:#111b22e8;font-size:8px}}
@media(max-width:700px){.training-charts,.environment-panel{bottom:calc(max(225px,27dvh) + 56px);max-height:none;height:auto}}
