@import url('/fonts.css');
:root{--bg:#0a0d13;--panel:#11161f;--line:#252c35;--muted:#929ba9;--text:#f4f6f8;--mint:#b6ff70;--accent:#b59aff;font-family:Barlow,Arial,sans-serif;color:var(--text);background:var(--bg);color-scheme:dark;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:5px}button{border:0}a{color:inherit;text-decoration:none}button,dialog{border-radius:0}[hidden]{display:none!important}.app-shell{max-width:1600px;margin:auto;padding:0 4.2vw}.site-header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;font-size:16px;font-weight:600;letter-spacing:-.3px}.brand b{font-weight:800}.brand-icon{width:34px;height:38px;display:grid;place-items:center;background:var(--mint);color:#11180b;font:bold 38px/1 Arial;clip-path:polygon(22% 0,100% 0,78% 100%,0 100%)}.brand>i{font-style:normal;font-size:9px;letter-spacing:1.4px;color:var(--muted);padding-left:17px;margin-left:8px;border-left:1px solid #38414d}.header-right{display:flex;align-items:center;gap:12px}.signal{font-size:10px;letter-spacing:1.4px;color:#b5becb;margin-right:14px;display:flex;align-items:center;gap:8px}.signal i,.hero-details i,.art-status i,.latency-dot i{height:5px;width:5px;background:var(--mint);border-radius:50%;display:inline-block;box-shadow:0 0 9px #b6ff7055}.icon-button{display:grid;place-items:center;width:38px;height:38px;background:transparent;border:1px solid var(--line);color:#bdc6d2;font-size:23px;transition:background .15s}.icon-button:hover{background:#222b35;color:white}.icon-button svg{width:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.hero{display:grid;grid-template-columns:1.04fr 1fr;position:relative;padding:48px 0 40px;min-height:440px}.hero-copy{position:relative;z-index:2}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.8px;color:#adb7c4}.tiny-bolt{color:var(--mint);font-size:17px;vertical-align:-1px;margin-right:6px}h1{font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif;font-style:italic;font-weight:800;font-size:clamp(68px,7.8vw,120px);letter-spacing:-1.5px;line-height:.85;margin:23px 0 23px}h1>span{color:var(--mint)}.title-period{color:var(--text)}.hero-copy>p{font-size:15px;line-height:1.65;color:#a8b2bf;margin:0 0 24px}.hero-actions{display:flex;gap:28px;align-items:center}.primary{background:var(--mint);color:#11180b;min-height:48px;padding:0 22px;font-weight:800;font-size:12px;letter-spacing:.7px;display:inline-flex;align-items:center;justify-content:center;gap:40px;box-shadow:0 0 28px #b6ff700a}.primary:hover{background:#cdff9f;transform:translateY(-1px)}.primary span{font-size:22px;font-weight:500}.text-button{background:none;font-size:11px;font-weight:700;letter-spacing:.8px;padding:14px 0;color:#c1c9d4}.text-button span{margin-left:12px}.text-button:hover{color:var(--mint)}.hero-details{display:flex;gap:18px;font-size:8px;letter-spacing:1.1px;margin-top:26px;color:#7d8998}.hero-details span{display:flex;align-items:center;gap:7px}.hero-details span+span{border-left:1px solid #303845;padding-left:18px}.hero-art{position:relative;overflow:hidden;margin:-10px -10px -10px -55px;min-width:0}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--bg),transparent 16%,transparent 87%,var(--bg)),linear-gradient(0deg,var(--bg),transparent 15%,transparent 90%,var(--bg));pointer-events:none}.hero-art canvas{width:100%;height:100%;position:absolute;inset:0}.art-coordinate,.art-status,.art-label{position:absolute;z-index:1;color:#687887;font-size:8px;letter-spacing:1.5px;line-height:1.7}.art-coordinate{top:35px;left:95px}.art-status{right:12%;top:47px;color:#a9b4c3}.art-status i{margin-right:5px}.art-label{right:12%;bottom:29px;color:#d3dce4}.art-label b{margin-left:20px;color:var(--mint);font-size:18px}.worlds{padding:10px 0 28px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.section-heading .eyebrow{font-size:8px;color:#7c8a9b}h2{font-weight:600;font-size:25px;letter-spacing:-.6px;margin:7px 0 0}h2 span{font-size:13px;color:#5e6b7a;margin-left:8px}.world-note{font-size:8px;letter-spacing:1.1px;color:#7e8a98;padding-bottom:4px}.world-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.world-card{position:relative;border:1px solid var(--line);background:#10141c;min-height:178px;display:block;text-align:left;padding:21px;overflow:hidden;transition:border-color .15s,transform .15s}.world-card:before{content:'';position:absolute;inset:0;background:var(--image) center 48%/cover;opacity:.13;filter:saturate(.7)}.world-card:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0e121ac9,transparent 80%),linear-gradient(0deg,#10151ee6,transparent 80%);pointer-events:none}.world-card:hover{transform:translateY(-3px);border-color:var(--world)}.world-card.selected{border-color:var(--mint)}.world-card>*{position:relative;z-index:1}.card-top{display:flex;justify-content:space-between;align-items:center;font-size:8px;font-weight:700;letter-spacing:1px;color:var(--world)}.card-top b{font-size:10px;color:#b7c1ce}.card-top em{font-style:normal;margin-left:9px;color:#74818e}.card-title{display:block;font-family:'Barlow Condensed',Impact,sans-serif;font-size:32px;letter-spacing:.3px;font-weight:700;margin-top:18px}.card-subtitle{display:block;font-size:11px;color:#929eac;margin-top:4px}.card-bottom{margin-top:23px;display:flex;justify-content:space-between;align-items:center;color:#8796a5;font-size:9px}.card-coins{font-size:14px;letter-spacing:3px;color:#657181}.coin-lit{color:#ffe19a}.card-arrow{position:absolute;right:22px;top:74px;font-size:24px;color:var(--world)}.card-progress{height:2px;position:absolute;bottom:0;left:0;right:0;background:#232d3b}.card-progress i{display:block;background:var(--world);height:100%}.menu-footer{border-top:1px solid var(--line);padding:20px 0 25px;display:flex;justify-content:space-between;color:#8793a2;font-size:8px;letter-spacing:.8px}.menu-footer>div>span{margin-left:10px;color:#647384}.menu-footer>span{display:flex;align-items:center;gap:18px}.menu-footer i{font-size:18px;color:var(--mint);font-style:normal}kbd{display:inline-block;font-family:inherit;border:1px solid #36404c;color:#bec8d4;background:#141a23;border-radius:3px;font-size:8px;line-height:18px;padding:0 5px;vertical-align:1px;letter-spacing:.5px}.run-header{display:flex;align-items:center;gap:30px;min-height:83px}.back-button{background:none;color:#9caab9;font-size:20px;display:flex;gap:10px;align-items:center;padding:10px 0}.back-button span{font-size:9px;font-weight:700;letter-spacing:1px}.run-title{display:grid;gap:6px}.run-title>span{font-size:9px;color:var(--accent);letter-spacing:1.3px}.run-title>b{font-size:16px}.run-numbers{display:flex;gap:22px;margin-left:auto;font-size:8px;letter-spacing:.8px;color:#7e8c9d}.run-numbers b{margin-left:6px;color:#eff4f8;font-size:13px;font-variant-numeric:tabular-nums}.run-numbers #practice-label{color:var(--mint);border:1px solid #b6ff7044;padding:6px}.run-actions{display:flex;gap:7px}.progress-row{display:flex;align-items:center;gap:15px;margin-bottom:16px}.progress-row>b{font-size:12px;font-variant-numeric:tabular-nums;min-width:34px;color:var(--accent)}.progress-rail{height:3px;background:#232c38;position:relative;flex:1}.progress-rail>i{height:100%;display:block;width:0;background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent),transparent 70%)}.checkpoint-tick{position:absolute;height:7px;top:-2px;width:2px;background:#6a76855c}.stage{height:calc(100dvh - 280px);min-height:320px;max-height:810px;position:relative;overflow:hidden;border:1px solid #303846;background:#090d18;isolation:isolate}.stage canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none;outline-offset:-3px}.stage-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #02060c77}.stage-top{position:absolute;left:25px;right:25px;top:22px;display:flex;justify-content:space-between;pointer-events:none;font-size:9px;letter-spacing:1.3px;color:var(--accent)}#coin-count{font-size:19px;letter-spacing:6px;color:#f6d487}.stage-notice{position:absolute;left:0;right:0;top:65px;text-align:center;font-size:10px;letter-spacing:1.5px;color:#c7f7cc;pointer-events:none}.beat-meter{position:absolute;bottom:20px;left:25px;display:flex;gap:5px;pointer-events:none}.beat-meter i{width:6px;height:6px;border:1px solid #6e7b89}.beat-meter i.active{background:var(--accent);border-color:var(--accent)}.game-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:21px 0;color:#8391a1;font-size:8px;letter-spacing:.6px}.game-footer>span{display:flex;align-items:center;gap:7px}.game-footer b{font-size:8px;font-weight:500;color:#7b8b9c;margin-left:6px}.game-footer>div{display:flex;gap:20px;align-items:center}#checkpoint,#remove-checkpoint{background:#172a23;color:#c9f4d0;font-size:9px;padding:8px}.latency-dot i{margin-right:6px;width:4px;height:4px}.game-overlay{position:absolute;inset:0;background:#060a13b3;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);padding:20px}.overlay-card{max-width:520px;width:100%;text-align:center}.overlay-card>small{display:block;letter-spacing:2px;font-size:9px;color:var(--accent);margin-bottom:12px}.overlay-card h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(40px,6vw,72px);text-transform:uppercase;line-height:1;letter-spacing:-.5px;margin:0 0 16px;font-style:italic}.overlay-card>p{font-size:13px;line-height:1.65;color:#adb8c8;margin:0 auto 22px;max-width:340px}.overlay-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.secondary{border:1px solid #485566;background:#141e2bd9;min-height:48px;padding:0 22px;font-size:11px;font-weight:700;letter-spacing:.6px}.secondary:hover{border-color:var(--mint);color:var(--mint)}.overlay-note{display:block;font-size:9px;color:#8896a8;letter-spacing:.5px;margin:19px 0 0}.result-stats{display:flex;justify-content:center;gap:35px;margin:22px 0 25px}.result-stats span{display:grid;font-size:8px;color:#7b8d9d;letter-spacing:1px;gap:5px}.result-stats b{font-size:25px;color:#f0f6ff}.mode-switch{display:flex;justify-content:center;border:1px solid #3c4856;padding:4px;margin:0 auto 22px;max-width:330px}.mode-switch button{padding:10px;flex:1;font-size:10px;font-weight:700;letter-spacing:.8px;background:none;color:#8e9dab}.mode-switch button.active{color:var(--mint);background:#b6ff7015}.stage:fullscreen{max-height:none;height:100dvh;border:0}.stage:fullscreen .stage-top{top:20px}.stage:fullscreen:after{content:'ESC TO EXIT FULLSCREEN · P TO PAUSE · R TO RESTART';position:absolute;right:22px;bottom:20px;font-size:9px;letter-spacing:1px;color:#8998a9;pointer-events:none}dialog{position:fixed;border:1px solid #3e4b58;color:var(--text);background:#101720;width:min(92vw,470px);padding:34px;max-height:88dvh;box-shadow:0 20px 100px #000b}dialog::backdrop{background:#01050bbd;backdrop-filter:blur(12px)}.dialog-x{position:absolute;right:14px;top:14px;width:30px;height:30px}.dialog-eyebrow{font-size:9px;letter-spacing:2px;color:var(--mint)}dialog h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:42px;margin:12px 0 20px;text-transform:uppercase}dialog p{font-size:13px;color:#9baabc;line-height:1.7}dialog label{display:block;font-size:10px;letter-spacing:1px;color:#bdc8d3;margin:22px 0 9px}dialog label b{float:right;color:var(--mint)}dialog input[type=range]{width:100%;accent-color:var(--mint)}.toggle-row{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);background:none;font-size:10px;letter-spacing:.7px}.toggle-row b{color:var(--mint)}.help-line{display:grid;grid-template-columns:46px 1fr;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.help-line strong{color:var(--mint);font-family:'Barlow Condensed',Impact,sans-serif;font-size:27px}.help-line p{margin:0}.help-line p b{color:#edf3fa;font-weight:600}.help-tip{border-left:2px solid var(--mint);padding-left:14px;margin:22px 0}.save-message{position:fixed;bottom:12px;left:12px;right:12px;padding:12px;z-index:20;background:#263025;border:1px solid #779c4e;font-size:11px;text-align:center}.reduced-motion *{scroll-behavior:auto!important;transition:none!important}.reduced-motion .hero-art canvas{opacity:.8}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(min-width:1500px){.hero{padding-top:65px;padding-bottom:55px}.world-card{min-height:205px}.card-title{font-size:38px}.card-subtitle{font-size:13px}}
@media(max-width:1050px){.app-shell{padding:0 28px}.hero{min-height:420px;grid-template-columns:1.1fr 1fr}.hero-details span:last-child{display:none}.art-coordinate{left:50px}.art-status{right:20px}.world-card{padding:18px}.card-title{font-size:28px}.card-subtitle{font-size:10px}.card-arrow{right:16px}.run-header{gap:18px}.game-footer .latency-dot{display:none}.menu-footer>span{font-size:7px}.brand>i{display:none}}
@media(max-width:700px){.app-shell{padding:0 18px}.site-header{height:74px}.brand{font-size:13px;gap:8px}.brand-icon{width:27px;height:31px;font-size:31px}.header-right{gap:8px}.signal{display:none}.hero{padding:32px 0 28px;grid-template-columns:1fr;min-height:0}.hero-copy{pointer-events:none}.hero-copy button{pointer-events:auto}.hero h1{font-size:clamp(76px,17vw,115px);position:relative;z-index:1}.hero-copy .eyebrow{font-size:8px;letter-spacing:1.1px}.hero-copy>p{font-size:13px;max-width:225px}.hero-art{position:absolute;right:-18px;top:35px;width:58%;height:260px;margin:0;opacity:.6;z-index:0}.art-coordinate,.art-status,.art-label{display:none}.hero-details{margin-top:22px}.hero-actions{gap:24px}.hero .primary{min-height:46px;font-size:11px;gap:25px}.hero .text-button{font-size:9px}.section-heading{margin-bottom:15px}h2{font-size:21px}.world-note{display:none}.world-grid{grid-template-columns:1fr;gap:10px}.world-card{min-height:132px;padding:16px 18px}.world-card:before{background-position:60% 47%;opacity:.18}.card-title{font-size:29px;margin-top:9px}.card-subtitle{font-size:11px}.card-bottom{margin-top:14px}.card-top{font-size:8px}.card-arrow{top:56px}.menu-footer{font-size:7px;line-height:2}.menu-footer>span{display:none}.menu-footer>div>span{display:block;margin:4px 0 0}.run-header{min-height:83px;gap:12px;flex-wrap:wrap;padding:12px 0}.back-button span{display:none}.run-title{gap:5px}.run-title>span{font-size:8px}.run-title>b{font-size:13px}.run-numbers{gap:10px;font-size:7px}.run-numbers b{font-size:11px;margin-left:3px}.run-actions{gap:5px}.run-actions .icon-button{width:31px;height:32px;font-size:20px}#fullscreen{display:none}.progress-row{margin-bottom:12px}.stage{height:calc(100dvh - 265px);min-height:320px;max-height:720px}.stage-top{top:18px;left:16px;right:16px;font-size:8px}#coin-count{font-size:16px;letter-spacing:4px}.game-footer{flex-direction:column;align-items:flex-start;gap:15px;font-size:7px;padding-top:17px}.game-footer b{display:none}.game-footer>div{gap:13px;flex-wrap:wrap}.game-footer #checkpoint,.game-footer #remove-checkpoint{font-size:8px;padding:6px}.overlay-card h2{font-size:44px}.overlay-card>p{font-size:12px}.overlay-actions{gap:8px}.overlay-actions .primary,.overlay-actions .secondary{font-size:10px;min-height:44px;padding:0 17px;gap:20px}.result-stats{gap:26px;margin:20px 0}.stage-notice{font-size:8px;top:57px}dialog{padding:28px}.run-numbers #practice-label{display:none}.worlds{padding-bottom:22px}}
@media(max-width:390px){.app-shell{padding:0 12px}.run-header{gap:8px}.run-numbers{gap:6px}.run-actions .icon-button{width:29px}.hero-copy .eyebrow{font-size:7px}.hero h1{font-size:80px}.hero-art{opacity:.4}.game-footer>span{font-size:7px;gap:5px}}
@media(max-height:600px) and (orientation:landscape){.site-header{height:56px}.run-header{min-height:60px;padding:7px 0}.progress-row{margin-bottom:8px}.stage{height:calc(100dvh - 188px);min-height:190px}.game-footer{padding:12px 0;flex-direction:row}.overlay-card h2{font-size:38px;margin-bottom:9px}.overlay-card>p{margin-bottom:12px;font-size:11px}.mode-switch{margin-bottom:12px}.overlay-note{margin-top:10px}.result-stats{margin:10px 0;gap:25px}.result-stats b{font-size:20px}.overlay-actions .primary,.overlay-actions .secondary{min-height:38px}.stage-top{top:12px}.stage-notice{top:36px}}
/* World circuit: scene-led cards and a useful, device-local mastery loop. */
.circuit-dashboard{display:grid;grid-template-columns:.9fr .9fr 1.5fr;border:1px solid #2a333e;margin:4px 0 37px;background:#10172166}.circuit-stat{padding:19px 22px;border-right:1px solid #2a333e;display:grid;gap:9px}.circuit-stat>span,.daily-focus>span{font-size:8px;letter-spacing:1.6px;color:#8192a4}.circuit-stat>b{font-size:24px;font-weight:600}.circuit-stat small{font-size:8px;letter-spacing:.6px;color:#96a5b6;margin-left:10px;font-weight:500}.daily-focus{padding:19px 22px;text-align:left;background:#b6ff7005;display:grid;gap:9px}.daily-focus:hover{background:#b6ff700e}.daily-focus>b{font-size:12px;font-weight:700;position:relative;padding-right:20px;color:#d5efc5}.daily-focus small{display:block;margin-top:5px;color:#8b9baf;font-size:10px;font-weight:400}.daily-focus i{position:absolute;right:0;top:0;color:var(--mint);font-size:24px;font-style:normal}.world-card{min-height:300px;padding:21px;display:flex;flex-direction:column}.world-card:before{opacity:.72;background-position:center 20%;transition:transform .5s,opacity .3s}.world-card:after{background:linear-gradient(0deg,#0b111cee 0%,#0b111cca 23%,#0b111c28 68%,#0b111c55 100%)}.world-card:hover:before{transform:scale(1.035);opacity:.85}.world-card.selected{box-shadow:inset 0 -2px var(--mint)}.card-top{width:100%}.card-top>span{background:#07101b9e;backdrop-filter:blur(5px);padding:5px 7px;font-size:7px}.card-top b{background:#07101b8c;padding:5px 7px}.card-scene-number{margin:auto 0 0;font-family:'Barlow Condensed',Impact,sans-serif;font-size:85px;line-height:1;color:transparent;-webkit-text-stroke:1px #d5e8f530;letter-spacing:-3px;position:absolute;right:20px;top:65px}.card-tagline{display:block;margin-top:auto;padding-top:90px;font-size:7px;letter-spacing:1.8px;color:var(--world)}.card-title{font-size:37px;margin-top:7px;line-height:1}.card-subtitle{font-size:10px;line-height:1.5;max-width:90%;margin-top:8px;color:#9cabbc}.card-arrow{top:auto;bottom:64px}.card-bottom{width:100%;margin-top:22px;gap:8px;font-size:8px;min-height:20px}.card-coins{white-space:nowrap}.world-mastery{display:flex;gap:24px;align-items:center;padding:21px 22px;border:1px solid #2a333e;border-top:0;background:#0d141d}.mastery-copy{display:grid;gap:6px;min-width:220px}.mastery-copy small{font-size:7px;letter-spacing:1.3px;color:#b6ff70}.mastery-copy b{font-size:13px;font-weight:600}.mastery-copy>span{font-size:10px;color:#8192a5}.mastery-badges{display:flex;justify-content:flex-end;gap:7px;flex:1;flex-wrap:wrap}.mastery-badges>span{font-size:7px;letter-spacing:.5px;white-space:nowrap;padding:8px;border:1px solid #303b48;color:#728398}.mastery-badges .earned{color:#c5f6b3;border-color:#b6ff7049;background:#b6ff700a}.run-history{height:44px;display:flex;gap:4px;align-items:flex-end;border-left:1px solid #303b48;padding-left:16px}.run-history>span{height:100%;width:12px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}.run-history i{height:var(--bar);min-height:3px;max-height:30px;width:5px;background:#b6ff7077}.run-history b{font-size:6px;font-weight:400;color:#7c8fa1;margin-top:4px}.stage{border-color:#455362;max-height:1000px}.stage-vignette{box-shadow:inset 0 0 65px #02060c50}.stage-top{align-items:flex-start;gap:12px}.stage-top>span{background:#09121bb3;padding:7px 9px;border:1px solid #ffffff14}.stage-top #coin-count{background:#09121b91;padding:4px 9px}.live-score{display:grid;text-align:center;gap:4px;margin-top:-5px}.live-score small{font-size:8px;letter-spacing:1.6px;color:#dae7f1}.live-score strong{font-size:27px;font-weight:600;letter-spacing:1px;font-variant-numeric:tabular-nums;text-shadow:0 2px 15px #000}.stage-notice{top:77px;text-shadow:0 2px 5px #000}.stage-controls{display:none;position:absolute;bottom:17px;right:18px;gap:8px;z-index:4}.stage-controls button{width:42px;height:42px;border:1px solid #b5c7d259;background:#07111dba;color:#e8f3fa;font-size:22px;touch-action:manipulation}.stage:fullscreen .stage-controls{display:flex}.stage:fullscreen:after{display:none}.game-overlay{overflow-y:auto;align-items:safe center;overscroll-behavior:contain;padding:28px 20px;z-index:5;background:#030913b8;backdrop-filter:blur(6px)}.game-overlay .overlay-card{margin:auto;flex-shrink:0}.overlay-card{max-width:620px}.overlay-card>p{max-width:430px}.overlay-card h2{font-size:clamp(40px,6vw,66px)}.overlay-note{line-height:1.5}.practice-section-picker{display:flex;gap:6px;margin:-9px auto 20px;justify-content:center;max-width:380px}.practice-section-picker button{background:#1a2734;border:1px solid #3c4c5a;color:#8298aa;padding:9px 13px;font-size:9px}.practice-section-picker button.active{border-color:#b6ff70;color:#b6ff70}.ghost-option{display:block;color:#b6ff70;background:none;font-size:8px;letter-spacing:.7px;margin:0 auto 18px}.result-heading{display:flex;align-items:center;justify-content:center;gap:23px;margin-top:18px}.result-heading h2{text-align:left;max-width:330px;margin:0}.rank-seal{font-family:'Barlow Condensed',Impact,sans-serif;color:#d8e7f4;border:1px solid #8d9eac;width:84px;height:91px;display:grid;align-content:center;gap:2px;font-size:63px;line-height:.8;font-style:italic;flex-shrink:0;clip-path:polygon(15% 0,100% 0,100% 85%,85% 100%,0 100%,0 15%);background:#8d9eac10}.rank-seal small{font:700 7px/1.4 Barlow,Arial;letter-spacing:2px;font-style:normal;margin-top:5px}.rank-S{color:#e4ffb5;border-color:#b6ff70;background:#b6ff7012}.rank-A{color:#ffdba0;border-color:#ffe19a;background:#ffe19a10}.rank-B{color:#bce2ff;border-color:#8dd1ff}.result-stats{gap:35px}.result-stats b{font-size:28px}.result-detail{display:flex;gap:15px;justify-content:center;font-size:7px;letter-spacing:.8px;color:#7d9aac}.overlay-card>.next-pursuit{font-size:8px;letter-spacing:1.3px;line-height:1.9;margin:22px auto}.next-pursuit b{font-weight:500;font-size:13px;letter-spacing:0;color:#d5e5ef}.toggle-row:disabled{opacity:.55}.toggle-row b{text-align:right;max-width:160px;font-size:9px}.game-footer{padding-bottom:max(21px,env(safe-area-inset-bottom))}
@media(max-width:1050px){.circuit-dashboard{grid-template-columns:1fr 1fr}.daily-focus{grid-column:span 2;border-top:1px solid #2a333e;padding:15px 20px;grid-template-columns:1fr 1.3fr;align-items:center}.daily-focus>b{font-size:10px}.daily-focus small{display:inline;margin-left:8px}.world-card{min-height:290px}.card-title{font-size:32px}.card-subtitle{font-size:9px}.world-mastery{flex-wrap:wrap;gap:15px}.mastery-badges{justify-content:flex-start}.mastery-copy{min-width:220px}.run-history{margin-left:auto}.circuit-stat small{display:block;margin:5px 0 0}}
@media(max-width:700px){.circuit-dashboard{margin:8px 0 27px}.circuit-stat{padding:15px 17px;gap:8px}.circuit-stat>span{font-size:7px}.circuit-stat>b{font-size:22px}.circuit-stat small{font-size:7px}.daily-focus{padding:13px 17px;grid-template-columns:1fr;gap:7px}.daily-focus>span{font-size:7px}.daily-focus>b{font-size:10px}.daily-focus small{font-size:9px;margin-left:9px}.world-card{min-height:235px;padding:18px}.world-card:before{background-position:center 24%}.card-tagline{padding-top:55px;font-size:7px}.card-title{font-size:35px}.card-subtitle{font-size:10px;max-width:85%}.card-bottom{margin-top:20px;font-size:8px}.card-scene-number{font-size:72px;top:50px}.card-arrow{bottom:62px}.world-mastery{padding:19px 16px;gap:17px}.mastery-copy{min-width:0;width:100%}.mastery-badges{gap:6px}.mastery-badges>span{font-size:6px;padding:7px}.run-history{display:none}.stage{height:calc(100dvh - 265px);min-height:360px}.stage-top{left:12px;right:12px;top:14px;gap:6px}.stage-top>span{padding:6px;font-size:6px}.stage-top #coin-count{font-size:14px;padding:4px 5px;letter-spacing:2px}.live-score strong{font-size:22px}.live-score small{font-size:6px;letter-spacing:1px}.stage-notice{top:67px;font-size:7px}.result-heading{gap:16px}.rank-seal{width:65px;height:76px;font-size:50px}.result-heading h2{font-size:40px;max-width:210px}.result-stats{gap:25px}.result-stats b{font-size:23px}.result-detail{gap:10px;flex-wrap:wrap;font-size:6px}.practice-section-picker{gap:5px}.practice-section-picker button{padding:8px 11px;font-size:8px}.game-overlay{padding:25px 16px}.overlay-card>p{font-size:11px}.overlay-card>.next-pursuit{margin:17px auto}.overlay-card .overlay-actions{gap:8px}.overlay-note{font-size:8px}}
@media(max-height:600px) and (orientation:landscape){.stage{height:calc(100dvh - 188px);min-height:190px}.game-overlay{padding:18px;display:block}.overlay-card{max-width:600px}.overlay-card>small{margin-bottom:8px}.overlay-card h2{font-size:34px;margin-bottom:10px}.overlay-card>p{font-size:10px;line-height:1.5;margin-bottom:12px}.mode-switch{margin-bottom:14px;padding:3px}.mode-switch button{padding:7px}.overlay-note{font-size:7px;margin-top:11px}.practice-section-picker{margin-top:-4px;margin-bottom:14px}.result-heading{margin-top:8px}.rank-seal{width:65px;height:68px;font-size:47px}.result-stats{margin:14px 0}.result-detail{font-size:6px}.overlay-card>.next-pursuit{margin:12px auto}.live-score strong{font-size:21px}.stage-notice{top:55px}}

/* Movement update: one route, four distinct ways to read it. */
.release-tag{color:var(--mint);margin-left:7px;letter-spacing:1px}.movement-strip{display:grid;grid-template-columns:1fr 1.65fr;gap:32px;padding:24px 0 27px;margin:0 0 27px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.movement-intro .eyebrow{font-size:8px;letter-spacing:1.5px;color:var(--mint)}.movement-intro h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:30px;margin:8px 0 7px;font-weight:600;line-height:1.05}.movement-intro p{font-size:11px;line-height:1.6;color:#8d9caf;margin:0;max-width:300px}.movement-modes{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:14px}.movement-mode{display:flex;align-items:center;gap:11px;min-width:0}.movement-symbol{display:grid;place-items:center;width:36px;height:42px;flex-shrink:0;font-size:26px;font-weight:600;color:var(--mode);background:color-mix(in srgb,var(--mode),transparent 95%);border:1px solid color-mix(in srgb,var(--mode),transparent 72%);clip-path:polygon(14% 0,100% 0,100% 86%,86% 100%,0 100%,0 14%)}.movement-mode b{display:block;font-size:9px;letter-spacing:1.5px;color:var(--mode);margin-bottom:6px}.movement-mode small{display:block;color:#92a3b6;font-size:9px;line-height:1.6;white-space:nowrap}.practice-section-picker{flex-wrap:wrap;max-width:470px}.practice-section-picker button{min-height:44px;flex:1 0 26%;max-width:145px}.dialog-x{width:44px;height:44px}.toggle-row{min-height:52px}.rotate-suggestion,.touch-action{display:none}.stage-controls button{width:44px;height:44px;touch-action:manipulation}.stage-controls{z-index:7}.stage:fullscreen .stage-controls{top:max(12px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));bottom:auto}.stage:fullscreen .stage-top{top:calc(max(12px,env(safe-area-inset-top)) + 55px)}.stage:fullscreen .stage-notice{top:auto;bottom:32px;left:24px;right:140px;text-align:left}.stage:fullscreen .game-overlay{padding-top:75px;padding-bottom:max(24px,env(safe-area-inset-bottom))}.touch-action{position:absolute;right:calc(18px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));z-index:4;width:88px;height:88px;border-radius:50%;background:linear-gradient(150deg,#d9ffab22,#7cb9420d);border:1px solid #d2ff9c88;color:#dbffc0;box-shadow:inset 0 0 20px #b6ff7009,0 5px 30px #0005;backdrop-filter:blur(8px);align-items:center;justify-content:center;flex-direction:column;gap:1px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:background .08s,transform .08s,border-color .08s}.touch-action-icon{font-family:Arial,sans-serif;font-size:33px;line-height:1.05;pointer-events:none}.touch-action>span:last-child{font-size:8px;font-weight:800;letter-spacing:1.5px;pointer-events:none}.touch-action:active,.touch-action.is-pressed{background:#b6ff7036;border-color:#e7ffc6;transform:scale(.95);box-shadow:inset 0 0 25px #b6ff7020,0 0 25px #b6ff7018}.touch-action:disabled{opacity:0;pointer-events:none}.touch-action:focus-visible{outline-offset:4px}.rotate-suggestion{position:absolute;z-index:8;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));padding:14px;background:#111d2af5;border:1px solid #b6ff7044;box-shadow:0 5px 35px #0007;align-items:center;gap:12px;flex-wrap:wrap}.rotate-device{font-size:30px;color:var(--mint);width:30px;text-align:center;flex-shrink:0}.rotate-suggestion>div{flex:1;min-width:180px}.rotate-suggestion b{display:block;font-size:12px;line-height:1.5;margin-bottom:3px}.rotate-suggestion>div>span{display:block;color:#9aaec1;font-size:10px;line-height:1.5}.rotate-suggestion button{min-height:44px;padding:0 16px;color:var(--mint);background:#b6ff700e;border:1px solid #b6ff7044;font-size:9px;font-weight:700;letter-spacing:.5px;margin-left:auto}.stage canvas{-webkit-touch-callout:none;-webkit-user-select:none}.stage .stage-controls button:focus-visible{outline-offset:2px}
@media(max-width:1100px){.movement-strip{grid-template-columns:1fr 1.6fr;gap:23px}.movement-modes{grid-template-columns:repeat(2,1fr);gap:17px 24px}.movement-intro h2{font-size:29px}.movement-symbol{width:35px;height:38px}}
@media(max-width:700px){.movement-strip{grid-template-columns:1fr;gap:20px;margin-bottom:26px;padding:22px 0}.movement-intro h2{font-size:28px}.movement-intro p{font-size:10px;max-width:290px}.movement-modes{gap:20px 16px}.movement-mode{gap:12px}.movement-mode b{font-size:8px}.movement-mode small{font-size:9px}.movement-symbol{width:39px;height:43px}.hero .primary{gap:20px}.practice-section-picker button{flex-basis:27%;max-width:none;padding:8px 12px}.overlay-actions .primary,.overlay-actions .secondary{min-height:44px}.mode-switch button{min-height:44px}.game-overlay .text-button{min-height:44px}.game-overlay{scrollbar-width:thin}dialog{overflow:auto;overscroll-behavior:contain}.save-message{bottom:calc(12px + env(safe-area-inset-bottom))}}

/* The game takes the viewport on touch screens, without relying on fullscreen permission. */
@media(pointer:coarse),(max-height:600px) and (orientation:landscape){
  html.game-open{overflow:hidden;overscroll-behavior:none}body.is-playing{width:100%;height:var(--play-height,100dvh);overflow:hidden;overscroll-behavior:none;background:#060c16}body.is-playing .app-shell{max-width:none;padding:0;margin:0;width:100%;height:var(--play-height,100dvh)}body.is-playing .site-header{display:none}body.is-playing #game{position:fixed;inset:0;isolation:isolate;width:100%;height:var(--play-height,100dvh);overflow:hidden;background:#060c16}body.is-playing .stage{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;border:0}body.is-playing .stage-vignette{box-shadow:inset 0 0 50px #02060c33}body.is-playing .run-header{position:absolute;top:calc(7px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));right:calc(210px + env(safe-area-inset-right));z-index:6;min-height:44px;max-height:44px;padding:0;gap:10px;flex-wrap:nowrap;pointer-events:none}body.is-playing .run-header .back-button{display:none}body.is-playing .run-title{gap:4px;min-width:0;padding:7px 9px;background:#07111bb3;border-left:2px solid var(--accent);overflow:hidden}body.is-playing .run-title>span{font-size:7px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.is-playing .run-title>b{font-size:12px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.is-playing .run-numbers,body.is-playing .run-actions,body.is-playing .game-footer{display:none}body.is-playing .progress-row{position:absolute;left:calc(15px + env(safe-area-inset-left));right:calc(15px + env(safe-area-inset-right));top:calc(60px + env(safe-area-inset-top));margin:0;z-index:6;gap:10px;pointer-events:none}body.is-playing .progress-row>b{font-size:9px;min-width:27px;text-align:right}body.is-playing .progress-rail{height:2px;background:#ffffff18}body.is-playing .stage-top{top:calc(78px + env(safe-area-inset-top));left:calc(15px + env(safe-area-inset-left));right:calc(15px + env(safe-area-inset-right));gap:8px;align-items:center}body.is-playing .stage-top>span{font-size:7px;letter-spacing:.7px;padding:5px 7px;border-color:#ffffff10}body.is-playing .stage-top #coin-count{padding:3px 6px;font-size:13px;letter-spacing:3px}body.is-playing .live-score{display:flex;flex-direction:row-reverse;align-items:center;gap:9px;margin:0;background:#07111b9c;padding:4px 7px}body.is-playing .live-score strong{font-size:18px;letter-spacing:.5px}body.is-playing .live-score small{font-size:6px;letter-spacing:.5px;max-width:60px;text-align:left;line-height:1.5}body.is-playing .stage-controls{display:flex;top:calc(7px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));bottom:auto;gap:6px}body.is-playing .stage-controls button{background:#07111bd9;border-color:#8ca7ba3d;font-size:21px}body.is-playing .stage-controls #stage-worlds{font-size:22px}body.is-playing .stage-notice{top:auto;bottom:calc(25px + env(safe-area-inset-bottom));left:calc(20px + env(safe-area-inset-left));right:calc(126px + env(safe-area-inset-right));font-size:8px;line-height:1.6;letter-spacing:.8px;text-align:left;text-shadow:0 2px 8px #000}body.is-playing .beat-meter{display:none}body.is-playing .touch-action{display:flex}body.is-playing .game-overlay{padding:calc(76px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left));display:block;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}body.is-playing .overlay-card{max-width:600px}body.is-playing .overlay-card>small{font-size:8px}body.is-playing .overlay-card h2{font-size:clamp(34px,6.8vw,58px)}body.is-playing .overlay-card>p{font-size:11px;line-height:1.55}body.is-playing .overlay-actions .primary,body.is-playing .overlay-actions .secondary{min-height:44px}body.is-playing .practice-section-picker{margin:0 auto 16px}body.is-playing .practice-section-picker button{min-height:44px;font-size:9px}body.is-playing .mode-switch button{min-height:44px}body.is-playing .overlay-note{font-size:8px;line-height:1.6}
}
@media(pointer:coarse) and (orientation:portrait){body.is-playing:not(.portrait-ok) .rotate-suggestion{display:flex}body.is-playing .run-header{right:calc(205px + env(safe-area-inset-right));left:calc(10px + env(safe-area-inset-left))}body.is-playing .run-title>span{font-size:6px}body.is-playing .run-title>b{font-size:10px}body.is-playing .stage-controls{right:calc(10px + env(safe-area-inset-right));gap:4px}body.is-playing .stage-controls button{width:44px;height:44px}body.is-playing .game-overlay{padding-bottom:150px}body.is-playing.portrait-ok .game-overlay{padding-bottom:calc(25px + env(safe-area-inset-bottom))}body.is-playing .live-score small{display:none}}
@media(max-height:420px) and (orientation:landscape){body.is-playing .stage-top{top:calc(76px + env(safe-area-inset-top))}body.is-playing .game-overlay{padding-top:calc(74px + env(safe-area-inset-top));padding-bottom:calc(18px + env(safe-area-inset-bottom))}body.is-playing .overlay-card{max-width:650px}body.is-playing .overlay-card h2{font-size:32px;margin-bottom:9px}body.is-playing .overlay-card>p{font-size:10px;line-height:1.5;margin-bottom:14px}body.is-playing .overlay-card>small{font-size:7px;margin-bottom:7px}body.is-playing .mode-switch{margin-bottom:12px}body.is-playing .overlay-note{margin-top:10px}body.is-playing .practice-section-picker{gap:5px;margin:0 auto 12px;max-width:600px}body.is-playing .practice-section-picker button{flex:1 0 auto;max-width:95px;padding:7px 12px;font-size:8px}body.is-playing .result-heading{margin-top:6px;gap:16px}body.is-playing .rank-seal{height:62px;width:62px;font-size:43px}body.is-playing .result-stats{margin:13px 0;gap:40px}body.is-playing .result-stats b{font-size:23px}body.is-playing .overlay-card>.next-pursuit{margin:12px auto}body.is-playing .touch-action{width:76px;height:76px;bottom:calc(13px + env(safe-area-inset-bottom));right:calc(17px + env(safe-area-inset-right))}body.is-playing .touch-action-icon{font-size:28px}body.is-playing .touch-action>span:last-child{font-size:7px}}
@media(pointer:coarse){.stage:fullscreen .touch-action{display:flex}}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){
  body.is-playing .game-overlay:has(#start-run) .overlay-card{display:grid;grid-template-columns:1fr 1.25fr;grid-template-rows:auto auto auto auto auto auto;column-gap:30px;max-width:760px;text-align:left}body.is-playing .game-overlay:has(#start-run) .overlay-card>small{grid-column:1;grid-row:1;align-self:end;margin-bottom:7px;line-height:1.5}body.is-playing .game-overlay:has(#start-run) .overlay-card>h2{grid-column:1;grid-row:2;align-self:start;margin-bottom:12px;font-size:38px}body.is-playing .game-overlay:has(#start-run) .overlay-card>p{grid-column:1;grid-row:3 / 7;align-self:start;margin:0;max-width:280px;line-height:1.7}body.is-playing .game-overlay:has(#start-run) .mode-switch{grid-column:2;grid-row:1 / 3;align-self:center;width:100%;max-width:none;margin:0 0 12px;text-align:center}body.is-playing .game-overlay:has(#start-run) .practice-section-picker{grid-column:2;grid-row:3;width:100%;margin:0 0 12px;max-width:none}body.is-playing .game-overlay:has(#start-run) .practice-section-picker button{flex:1 0 28%;max-width:none}body.is-playing .game-overlay:has(#start-run) .ghost-option{grid-column:2;grid-row:4;margin:0 0 12px;line-height:1.5;min-height:30px}body.is-playing .game-overlay:has(#start-run) .overlay-actions{grid-column:2;grid-row:5}body.is-playing .game-overlay:has(#start-run) .overlay-actions .primary{width:100%}body.is-playing .game-overlay:has(#start-run) .overlay-note{grid-column:2;grid-row:6;text-align:center;margin-top:10px}
}

/* Electric Odyssey: six destinations, independent pace and retry choices. */
.world-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.world-card{min-width:0}.world-card .card-title{overflow-wrap:normal}.launch-tuning{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:0 0 30px;margin-bottom:10px}.launch-tuning .eyebrow{font-size:8px;color:var(--mint);letter-spacing:1.6px}.launch-tuning h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:31px;font-weight:600;margin:8px 0}.launch-tuning p{color:#899bad;font-size:10px;line-height:1.6;margin:0}.pace-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:4px;border:1px solid #3c4c5a;background:#101822;gap:4px;min-width:320px}.pace-option{min-height:48px;display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 15px;background:transparent;color:#8fa0b0;border:1px solid transparent;transition:background .15s,border-color .15s}.pace-option>b{font-size:10px;font-weight:700;letter-spacing:.3px}.pace-option>small{font-size:8px;font-variant-numeric:tabular-nums;letter-spacing:.7px;color:#6d8598}.pace-option:hover{background:#b6ff7008;color:#e1efda}.pace-option.active,.pace-option[aria-pressed=true]{color:#d8ffba;background:#b6ff7010;border-color:#b6ff7066}.pace-option.active>small,.pace-option[aria-pressed=true]>small{color:#b6ff70}.retry-modes{max-width:100%;gap:4px;align-items:stretch}.retry-modes button{min-height:58px;padding:10px 8px;display:flex;flex-direction:column;justify-content:center;gap:6px;border:1px solid transparent}.retry-modes button>b{font-size:10px;font-weight:700;letter-spacing:.7px}.retry-modes button>small{font-size:8px;letter-spacing:0;color:#7e94a7;font-weight:400;line-height:1.5;text-transform:none}.retry-modes button.active{border-color:#b6ff7055}.retry-modes button.active>small{color:#b0c5a4}.overlay-card>.pace-switch{min-width:0;max-width:430px;margin:-8px auto 20px;width:100%}.overlay-card>.pace-switch .pace-option{min-height:44px;padding:8px 12px}.practice-section-picker{max-width:500px}.practice-section-picker button{flex-basis:21%;max-width:none}.overlay-card .run-speed-note{font-size:8px;letter-spacing:.8px;color:#8096aa;margin:0 0 14px}.scoreboard{padding:29px 0 32px;margin-bottom:22px;border-top:1px solid #2a3542}.scoreboard .section-heading{margin-bottom:20px}.scoreboard .eyebrow{color:var(--mint);font-size:9px;letter-spacing:1.8px}.scoreboard h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:35px;font-weight:600;margin:8px 0 0}.scoreboard h2>span{font-family:Barlow,Arial,sans-serif;font-size:11px;font-weight:400;color:#6e8295;margin-left:12px;vertical-align:middle}.scoreboard-device{font-size:8px;letter-spacing:1px;color:#8094a6;display:flex;gap:7px;align-items:center}.scoreboard-device i{height:4px;width:4px;display:inline-block;background:#b6ff70;box-shadow:0 0 9px #b6ff7033}.scoreboard-key,.score-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;column-gap:26px;align-items:center}.scoreboard-key{padding:13px 22px;background:#121c27;border:1px solid #2a3b4a;font-size:8px;letter-spacing:1px;color:#b4c6d4}.scoreboard-key small{font-size:7px;letter-spacing:.6px;color:#677f92;margin-left:8px}.score-row{padding:18px 22px;border:1px solid #263644;border-top:0;background:linear-gradient(90deg,#111a2500,#17202c66);min-height:84px}.score-row:nth-child(even){background:#111c2680}.score-row.selected{border-left:2px solid var(--mint);padding-left:21px}.score-world{min-width:0;display:flex;gap:15px;align-items:center;color:#c4d8e8;font-size:11px;letter-spacing:.2px}.score-world>span:first-child{font-family:'Barlow Condensed',Impact,sans-serif;font-size:26px;color:#536d82;min-width:24px}.score-world b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px;font-weight:500;color:#d7e3ec;line-height:1.1}.score-world small{font-size:7px;color:#738b9f;letter-spacing:1px;display:block;margin-top:6px}.score-lane{min-width:0;padding-left:22px;border-left:1px solid #304151;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.score-lane-label{font-size:7px;letter-spacing:1px;color:#6f8b9f}.score-value{font-size:22px;line-height:1.1;letter-spacing:.4px;font-weight:600;font-variant-numeric:tabular-nums;color:#d1efbd}.score-lane:last-child .score-value{color:#b7deeb}.score-lane>small,.score-lane .score-detail{font-size:7px;line-height:1.8;letter-spacing:.7px;color:#8097a9}.score-lane .score-rank{font-family:'Barlow Condensed',Impact,sans-serif;font-size:23px;color:#d3e4ec;padding-left:4px}.score-empty .score-value,.score-value.score-empty{font-size:12px;color:#5f7a90;font-weight:400;letter-spacing:0}.scoreboard-note{font-size:9px;line-height:1.7;color:#6b8297;margin:14px 0 0}.scoreboard-note>span{display:none}.scoreboard .pace-switch{min-width:0;width:min(380px,100%);margin-bottom:15px}.scoreboard table{width:100%;border-collapse:collapse;font-size:11px}.scoreboard td,.scoreboard th{padding:15px 18px;text-align:left;border-bottom:1px solid #263644}.scoreboard th{font-size:8px;color:#849db0;letter-spacing:.8px;font-weight:500}.charge-label{position:absolute;top:110px;left:26px;pointer-events:none;font-size:8px;line-height:1.4;color:#d9ffb5;letter-spacing:1.2px;background:#08151bc2;padding:5px 8px;border:1px solid #b6ff7025;text-shadow:0 1px 5px #000;z-index:2}.transition-cue{--cue:#b6ff70;position:absolute;z-index:3;top:125px;left:50%;transform:translate(-50%,-7px);display:flex;align-items:center;gap:13px;max-width:calc(100% - 70px);width:max-content;padding:13px 20px;background:#07131eea;border:1px solid color-mix(in srgb,var(--cue),transparent 55%);border-left:3px solid var(--cue);box-shadow:0 4px 30px #0006;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s,transform .2s,visibility .15s}.transition-cue.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}.transition-bolt{font-size:35px;line-height:1;color:var(--cue);text-shadow:0 0 15px color-mix(in srgb,var(--cue),transparent 40%)}.transition-cue>div{display:grid;gap:5px}.transition-cue b{font-family:'Barlow Condensed',Impact,sans-serif;font-size:24px;line-height:1;letter-spacing:1.4px;color:var(--cue)}.transition-cue #transition-control{font-size:9px;line-height:1.5;letter-spacing:.8px;color:#d7e7f2}.transition-cue[data-mode=fly]{--cue:#c2b0ff}.transition-cue[data-mode=bounce]{--cue:#ffdc9b}.transition-cue[data-mode=gravity]{--cue:#8af2f0}.reduced-motion .transition-cue{transition:none}.scoreboard-content-empty{padding:30px;border:1px solid #263644;font-size:11px;color:#849bad}
@media(max-width:1050px){.world-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-card{min-height:290px}.launch-tuning{gap:20px}.launch-tuning h2{font-size:28px}.pace-switch{min-width:285px}.pace-option{padding:9px;gap:9px}.scoreboard-key,.score-row{grid-template-columns:1.1fr 1fr 1fr;column-gap:17px}.scoreboard-key{padding:13px 18px}.scoreboard-key small{display:block;font-size:6px;margin:5px 0 0}.score-row{padding:17px 18px}.score-world{gap:10px}.score-world b{font-size:21px}.score-lane{padding-left:15px}.score-value{font-size:20px}}
@media(max-width:600px){.world-grid{grid-template-columns:1fr}.launch-tuning{display:grid;grid-template-columns:1fr;gap:17px;padding-bottom:23px}.launch-tuning h2{font-size:29px;margin:7px 0}.launch-tuning p{font-size:9px}.pace-switch{width:100%;min-width:0}.pace-option{min-height:48px;gap:12px}.pace-option>b{font-size:11px}.pace-option>small{font-size:9px}.scoreboard{padding:25px 0 20px}.scoreboard h2{font-size:30px}.scoreboard .section-heading{align-items:flex-start;gap:10px}.scoreboard-device{font-size:6px;letter-spacing:.6px;margin-top:6px;max-width:100px;line-height:1.6;gap:5px}.scoreboard-device i{flex-shrink:0}.scoreboard-key{display:none}.score-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px;padding:18px 16px;border-top:1px solid #263644;margin-top:-1px}.score-world{grid-column:1 / -1;gap:12px}.score-world b{font-size:24px}.score-world>span:first-child{font-size:28px}.score-lane{padding:10px 11px;border:1px solid #30415155;background:#07111c66;display:grid;grid-template-columns:1fr auto;gap:6px}.score-lane-label{grid-column:1 / -1;font-size:7px;color:#8ca5b7}.score-value{font-size:22px}.score-lane>small,.score-lane .score-detail{font-size:6px;letter-spacing:.4px;grid-column:1 / -1}.score-lane .score-rank{font-size:20px}.scoreboard-note{font-size:8px;line-height:1.7}.scoreboard-note>span{display:inline}.retry-modes button{min-height:61px;padding:10px 6px}.retry-modes button>b{font-size:9px}.retry-modes button>small{font-size:7px}.overlay-card>.pace-switch{margin:-5px auto 16px}.transition-cue{top:116px;padding:11px 14px;gap:10px;max-width:calc(100% - 35px)}.transition-cue b{font-size:21px}.transition-cue #transition-control{font-size:8px;letter-spacing:.4px}.transition-bolt{font-size:29px}.charge-label{font-size:7px;top:100px;left:14px}}
@media(pointer:coarse),(max-height:600px) and (orientation:landscape){body.is-playing .charge-label{top:calc(113px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));font-size:6px;letter-spacing:.8px;padding:4px 6px}body.is-playing .transition-cue{top:calc(117px + env(safe-area-inset-top));padding:10px 15px;gap:10px;max-width:calc(100% - 40px);left:50%}body.is-playing .transition-cue b{font-size:22px}body.is-playing .transition-cue #transition-control{font-size:8px;letter-spacing:.7px}body.is-playing .transition-bolt{font-size:29px}body.is-playing .retry-modes button{min-height:56px}body.is-playing .retry-modes button>small{font-size:7px}body.is-playing .overlay-card>.pace-switch{margin:0 auto 13px}.stage:fullscreen .charge-label{top:calc(115px + env(safe-area-inset-top))}.stage:fullscreen .transition-cue{top:calc(118px + env(safe-area-inset-top))}}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){body.is-playing .game-overlay:has(#start-run) .overlay-card{grid-template-columns:1fr 1.3fr;grid-template-rows:auto auto auto auto auto auto auto;column-gap:27px;max-width:820px}body.is-playing .game-overlay:has(#start-run) .overlay-card>h2{font-size:34px}body.is-playing .game-overlay:has(#start-run) .overlay-card>p{grid-row:3 / 8;font-size:10px;line-height:1.7;max-width:280px}body.is-playing .game-overlay:has(#start-run) .mode-switch{grid-row:1 / 3;width:100%;margin-bottom:10px}body.is-playing .game-overlay:has(#start-run) .retry-modes button{min-height:52px;padding:8px 6px;gap:4px}body.is-playing .game-overlay:has(#start-run) .retry-modes button>small{font-size:7px}body.is-playing .game-overlay:has(#start-run) .pace-switch{grid-column:2;grid-row:3;margin:0 0 10px;max-width:none;align-self:start}body.is-playing .game-overlay:has(#start-run) .pace-option{min-height:44px;padding:7px;gap:9px}body.is-playing .game-overlay:has(#start-run) .pace-option>b{font-size:9px}body.is-playing .game-overlay:has(#start-run) .pace-option>small{font-size:7px}body.is-playing .game-overlay:has(#start-run) .practice-section-picker{grid-row:4;gap:4px;margin:0 0 10px}body.is-playing .game-overlay:has(#start-run) .practice-section-picker button{flex:1 0 21%;font-size:7px;padding:7px 8px;min-height:44px}body.is-playing .game-overlay:has(#start-run) .ghost-option{grid-row:5;margin-bottom:10px}body.is-playing .game-overlay:has(#start-run) .overlay-actions{grid-row:6}body.is-playing .game-overlay:has(#start-run) .overlay-note{grid-row:7;margin-top:8px;font-size:7px}body.is-playing .transition-cue{top:calc(113px + env(safe-area-inset-top));padding:8px 12px}body.is-playing .transition-cue b{font-size:21px}body.is-playing .transition-cue #transition-control{font-size:8px}body.is-playing .charge-label{top:auto;bottom:calc(48px + env(safe-area-inset-bottom));left:calc(20px + env(safe-area-inset-left));font-size:6px}}

/* Keep mode choices readable at phone landscape sizes. */
body.is-playing .retry-modes b,body.is-playing .pace-option b{font-size:10px}body.is-playing .retry-modes small,body.is-playing .pace-option small{font-size:8px;color:#bac8d6}body.is-playing .practice-section-picker button{font-size:10px;color:#bed0df}body.is-playing .practice-section-picker button.active{color:#d5ffae}

/* Learn a clear signal before the circuit combines it with something else. */
.circuit-primer{display:grid;grid-template-columns:1fr 1.65fr;gap:32px;margin:0 0 30px;padding:0 0 28px;border-bottom:1px solid var(--line)}.primer-intro>.eyebrow{font-size:8px;letter-spacing:1.5px;color:var(--mint)}.primer-intro h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:31px;line-height:1.05;font-weight:600;margin:9px 0 11px}.primer-intro p{max-width:300px;color:#91a3b5;font-size:11px;line-height:1.7;margin:0}.primer-intro p>b{color:#d0dfeb;font-weight:500}.primer-content{display:grid;align-content:center;gap:22px}.activity-signals{display:grid;grid-template-columns:1fr 1fr;gap:25px}.activity-signal{display:flex;align-items:center;gap:13px;min-width:0}.activity-signal>span{flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;font-size:23px}.signal-orb{color:#ffe19a;border:2px solid #ffe19ab3;border-radius:50%;box-shadow:0 0 18px #ffe19a16,inset 0 0 10px #ffe19a11}.signal-pulse{color:#ffbe80;border-left:2px solid #ff858a;border-right:2px solid #ff858a;background:#ff858a0a}.activity-signal b{font-size:9px;letter-spacing:1.2px;color:#dfcaa2}.pulse-signal b{color:#ffc1ad}.activity-signal p{font-size:10px;line-height:1.6;color:#9bb0c0;margin:5px 0 0;max-width:220px}.learning-ramp{list-style:none;margin:0;padding:19px 0 0;border-top:1px solid #2c3945;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.learning-ramp li{display:grid;align-content:start;gap:6px;min-width:0}.learning-ramp li>span{font-size:7px;letter-spacing:1px;color:#82a16d;line-height:1.5}.learning-ramp li>b{font-size:12px;font-weight:500;color:#d7e5ef;line-height:1.3}.learning-ramp li>small{font-size:9px;color:#718b9e;line-height:1.6}.learning-ramp li+li{padding-left:17px;border-left:1px solid #2c3945}.ready-teaching{color:#c4d5e4!important;max-width:450px!important}.ready-teaching strong,.ready-teaching b{font-weight:600;color:#eff9ff}.pace-option{min-width:0;flex-wrap:wrap}.pace-option>small{white-space:normal;line-height:1.4}.stage-notice{font-size:11px;line-height:1.65;letter-spacing:.6px}.transition-cue #transition-control{font-size:11px;letter-spacing:.4px}.transition-cue[data-mode=flip]{--cue:#8af2f0}
@media(max-width:1050px){.circuit-primer{grid-template-columns:1fr 1.6fr;gap:23px}.activity-signals{gap:17px}.activity-signal{gap:10px}.activity-signal p{font-size:10px}.learning-ramp{gap:13px}.learning-ramp li+li{padding-left:13px}.learning-ramp li>small{font-size:9px}}
@media(max-width:700px){.circuit-primer{grid-template-columns:1fr;gap:22px;margin-bottom:26px;padding-bottom:24px}.primer-intro h2{font-size:29px}.primer-intro h2 br{display:none}.primer-intro p{max-width:100%;font-size:11px}.primer-content{gap:20px}.activity-signals{gap:16px}.activity-signal{align-items:flex-start;gap:10px}.activity-signal>span{width:29px;height:29px;font-size:19px}.activity-signal b{font-size:8px;line-height:1.5}.activity-signal p{font-size:10px;line-height:1.6}.learning-ramp{gap:11px;padding-top:17px}.learning-ramp li+li{padding-left:11px}.learning-ramp li>span{font-size:7px;letter-spacing:.4px}.learning-ramp li>b{font-size:11px}.learning-ramp li>small{font-size:9px}.stage-notice{font-size:10px}.transition-cue #transition-control{font-size:10px}}
@media(pointer:coarse),(max-height:600px) and (orientation:landscape){body.is-playing .stage-notice{font-size:10px;letter-spacing:.45px;line-height:1.6;bottom:calc(20px + env(safe-area-inset-bottom))}body.is-playing .stage-top>span{font-size:9px;letter-spacing:.5px}body.is-playing .live-score small{font-size:8px;letter-spacing:.2px;max-width:72px}body.is-playing .run-title>span{font-size:8px}body.is-playing .run-title>b{font-size:13px}body.is-playing .progress-row>b{font-size:10px}body.is-playing .touch-action>span:last-child{font-size:10px;letter-spacing:.8px}body.is-playing .charge-label{font-size:8px;letter-spacing:.6px}body.is-playing .transition-cue{top:calc(74px + env(safe-area-inset-top));min-height:49px;padding:8px 15px;gap:11px;max-width:calc(100% - 40px)}body.is-playing .transition-cue b{font-size:20px;letter-spacing:1.1px}body.is-playing .transition-cue #transition-control{font-size:10px;letter-spacing:.4px;line-height:1.5}body.is-playing .transition-bolt{font-size:28px}body.is-playing .stage:has(.transition-cue.visible) .stage-top{visibility:hidden}body.is-playing .ready-teaching{font-size:12px;line-height:1.65}body.is-playing .retry-modes small,body.is-playing .pace-option small{font-size:9px}body.is-playing .game-overlay:has(#start-run) .overlay-actions{position:sticky;bottom:0;z-index:1;background:#0a1520f5;padding:8px 0;margin:0 -2px;box-shadow:0 -10px 16px #07121b66}body.is-playing .game-overlay:has(#start-run) .overlay-actions .primary{min-height:46px}body.is-playing .overlay-note{font-size:9px}}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){body.is-playing .game-overlay:has(#start-run) .overlay-card{column-gap:24px;max-width:850px}body.is-playing .game-overlay:has(#start-run) .overlay-card>h2{font-size:31px}body.is-playing .game-overlay:has(#start-run) .overlay-card>.ready-teaching{font-size:11px;line-height:1.7;max-width:310px!important}body.is-playing .game-overlay:has(#start-run) .retry-modes button{min-height:56px;padding:7px 5px}body.is-playing .game-overlay:has(#start-run) .retry-modes button>small{font-size:9px;letter-spacing:0}body.is-playing .game-overlay:has(#start-run) .pace-option{padding:7px 5px;gap:5px;min-height:44px}body.is-playing .game-overlay:has(#start-run) .pace-option>b{font-size:10px}body.is-playing .game-overlay:has(#start-run) .pace-option>small{font-size:9px;line-height:1.4}body.is-playing .game-overlay:has(#start-run) .practice-section-picker button{font-size:10px;padding:7px 6px}body.is-playing .game-overlay:has(#start-run) .overlay-note{font-size:9px}body.is-playing .touch-action>span:last-child{font-size:9px}body.is-playing .transition-cue{top:calc(74px + env(safe-area-inset-top))}body.is-playing .transition-cue #transition-control{font-size:10px}body.is-playing .charge-label{font-size:8px;bottom:calc(46px + env(safe-area-inset-bottom))}}

/* Overlay navigation replaces gameplay chrome on a compact landscape screen. */
@media(max-width:900px),(pointer:coarse){body.is-playing #game:has(#game-overlay:not([hidden])) .run-header,body.is-playing #game:has(#game-overlay:not([hidden])) .progress-row,body.is-playing .stage:has(#game-overlay:not([hidden])) .stage-controls,body.is-playing .stage:has(#game-overlay:not([hidden])) .stage-top,body.is-playing .stage:has(#game-overlay:not([hidden])) .stage-notice,body.is-playing .stage:has(#game-overlay:not([hidden])) .charge-label{visibility:hidden}}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){body.is-playing .game-overlay:has(#start-run) .overlay-actions{display:block}body.is-playing .game-overlay:has(#start-run) .overlay-actions .primary{width:100%}body.is-playing .game-overlay:has(#start-run) .overlay-actions .secondary{position:absolute;right:calc(100% + 24px);bottom:8px;min-width:110px;min-height:46px;padding:0 16px}}
/* Contextual coaching acknowledges the real input without changing physics. */
.touch-action .input-feedback{position:absolute;top:-15px;left:50%;transform:translateX(-50%);padding:4px 7px;white-space:nowrap;background:#0c1824;border:1px solid #91e4e877;color:#d2e9e9;font-size:9px;font-weight:800;letter-spacing:.6px;pointer-events:none;line-height:1.2}
.touch-action.is-held{background:#b6ff703b;box-shadow:0 0 0 3px #b6ff7044,inset 0 0 20px #b6ff7033}
.touch-action.is-held .input-feedback{background:#b6ff70;color:#11180b;border-color:#b6ff70}
.stage-notice[data-coach="low"],.stage-notice[data-coach="orb"]{color:#ffe19a}
.stage-notice[data-coach="flight"],.stage-notice[data-coach="gravity"]{color:#c7efff}
.drill-option{display:block;width:100%;text-align:left;margin:16px 0 0;padding:11px 12px;min-height:52px;background:#101c28;border:1px solid #6a84905c;color:#c4d6df}
.drill-option b{display:block;font-size:10px;letter-spacing:.7px}.drill-option small{display:block;margin-top:5px;font-size:10px;line-height:1.5;font-weight:400;letter-spacing:0;color:#96acb9}
.drill-option[aria-pressed="true"]{border-color:var(--mint);background:#b6ff7011}.drill-option[aria-pressed="true"] b{color:var(--mint)}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){body.is-playing .drill-option{margin-top:12px;min-height:50px;padding:9px 10px}body.is-playing .drill-option small{font-size:10px}body.is-playing .game-overlay:has(#drill-toggle) .ready-teaching{line-height:1.5}}
.surge-mode{grid-column:span 2;padding:12px 14px;border:1px solid #83fff039;background:#83fff008}.archive-heading{margin:28px 0 15px;padding-top:18px;border-top:1px solid #83fff033;color:#bcebe6;font-size:16px;font-weight:600}
@media(min-width:901px){.movement-modes{grid-template-columns:repeat(3,minmax(0,1fr))}}
.transition-cue[data-mode="surge"]{border-color:#83fff088;background:#08252aee}.transition-cue[data-mode="surge"] .transition-bolt{color:#83fff0}
.transition-cue[data-mode="surge"] b{color:#83fff0}
.learning-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.learning-options:has(>:only-child){grid-template-columns:1fr}.learning-options>.drill-option,.learning-options>.rhythm-option{display:block;margin:0;min-width:0;min-height:58px;padding:9px 10px;text-align:left;background:#101c28;border:1px solid #6a84905c;color:#c4d6df}.learning-options b{display:block;font-size:10px;line-height:1.5;letter-spacing:.35px}.learning-options small{display:block;font-size:10px;line-height:1.5;color:#96acb9;margin-top:4px;letter-spacing:0;font-weight:400}.learning-options [aria-pressed="true"]{background:#b6ff7011;border-color:var(--mint)}.learning-options .rhythm-option[aria-pressed="true"]{border-color:#83fff0;background:#83fff00d}.rhythm-option[aria-pressed="true"] b{color:#83fff0}.stage-notice[data-coach="rhythm"]{color:#83fff0}
body.is-playing .learning-options>.drill-option{margin:0}
@media(max-height:600px) and (min-width:600px) and (orientation:landscape){body.is-playing .game-overlay:has(#start-run) .overlay-actions{display:flex;gap:8px}body.is-playing .game-overlay:has(#start-run) .overlay-actions .primary{width:auto;flex:1;min-width:0;gap:12px;padding:0 14px}body.is-playing .game-overlay:has(#start-run) .overlay-actions .secondary{position:static;right:auto;bottom:auto;min-width:90px;min-height:46px;padding:0 12px;flex:0}}
.recap-open{display:block;margin:8px auto 0;min-height:44px;padding:10px 14px;color:#c4eee8;letter-spacing:.8px}dialog:has(.run-recap){width:min(94vw,680px);max-height:92dvh;padding:20px 22px;overflow-y:auto;overscroll-behavior:contain}dialog:has(.run-recap) .dialog-x{position:sticky;top:0;right:0;float:right;z-index:2;min-width:44px;min-height:44px;margin:-8px -10px -36px 0;background:#142432}.run-recap>small{display:block;font-size:9px;letter-spacing:1.4px;color:#83fff0;padding-right:44px}.run-recap h2{font-size:34px;line-height:1;margin:12px 0}.run-recap>p{font-size:11px;line-height:1.6;margin:0 0 13px;max-width:520px;color:#9eb5c5}.recap-goal{padding:12px 14px;border:1px solid #83fff049;background:#83fff008;display:flex;align-items:center;justify-content:space-between;gap:14px}.recap-goal-copy{display:grid;gap:5px}.recap-goal-copy b{font-size:13px;color:#ddfff8}.recap-goal-copy span{font-size:10px;line-height:1.6;color:#a2bacb}.recap-goal .secondary{min-height:44px;padding:0 14px;flex-shrink:0;font-size:10px}.recap-rows{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:6px}.recap-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid #304657;background:#07131d99;padding:11px 12px}.recap-row[data-state="current"]{border-left:3px solid #83fff0}.recap-row-copy{display:grid;gap:5px}.recap-row-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.recap-row-head b{font-size:12px;color:#d7e9f3}.recap-row-head small{font-size:9px;color:#a6c8ba;line-height:1.4;text-align:right}.recap-row-copy>span{font-size:10px;line-height:1.5;color:#95adbd}.recap-row .secondary{min-width:70px;min-height:44px;padding:0 10px;font-size:9px}.recap-footer{margin-top:13px!important;font-size:10px!important;color:#7e9bad!important}.recap-row[data-state="unreached"] .recap-row-head b{color:#849bad}@media(max-height:450px) and (orientation:landscape){dialog:has(.run-recap){padding:15px 18px;max-height:94dvh}.run-recap h2{font-size:30px;margin:10px 0}.recap-row{padding:8px 10px}.recap-goal{padding:10px 12px}.run-recap>p{font-size:10px}.recap-row-head b{font-size:11px}}
.recap-row-copy>span:empty{display:none}
.recap-route{color:#b2eee6;border-color:#538d8a}.recap-route-note{font-size:10px;line-height:1.5;font-style:normal;color:#85aaa9}
.practice-flow-note{display:block;margin-top:9px;font-size:10px;line-height:1.5;color:#9ddbd0}

/* HUD text is part of the play surface on iOS, not a selectable web document.
   Keep gesture cancellation off shared ancestors so menus still scroll. */
#game,#game *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#game input,#game textarea,#game [contenteditable]:not([contenteditable="false"]),#game [contenteditable]:not([contenteditable="false"]) *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

.data-actions{display:flex;gap:10px;flex-wrap:wrap}.data-actions button{min-height:44px;font-size:12px;padding:10px 14px}.settings-panel #data-status,.settings-panel #audio-state,.settings-panel #performance-status{font-size:14px;line-height:1.5;color:#cfe4ee}.settings-panel a.text-button{display:inline-flex;align-items:center;min-height:44px;font-size:14px}.settings-panel #audio-enable,.settings-panel #performance-start{min-height:44px;font-size:12px}.settings-panel .overlay-actions{flex-wrap:wrap}
.selected-info .selected-decision{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.selected-decision b{display:block;color:#caff9a;font-size:12px;letter-spacing:.3px}.selected-decision span{display:block;color:#b0c9d6;margin-top:3px}
.settings-panel .reset-all-history{display:flex;align-items:center;gap:12px;font-size:14px;line-height:1.5;min-height:48px;margin:16px 0}.reset-all-history input{width:24px;height:24px;flex:none}
.save-message{pointer-events:none}.is-playing .save-message{display:none}
.recap-skills{margin:20px 0;border-top:1px solid #35434e}.recap-skills>p{font-size:12px;line-height:1.5}.recap-skills article{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #35434e}.recap-skills article>div{flex:1;min-width:0}.recap-skills h3{font-size:16px;line-height:1.3;margin:0 0 6px;color:#d9f8c4}.recap-skills b{font-size:13px;line-height:1.5}.recap-skills article p{font-size:12px;line-height:1.5;margin:7px 0 0}.recap-skills button{font-size:12px;min-height:44px;padding:8px 12px;flex:none}@media(max-width:500px){.recap-skills article{display:block}.recap-skills button{margin-top:12px}}

.lane-controls{position:absolute;z-index:4;left:calc(20px + env(safe-area-inset-left));bottom:calc(20px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;touch-action:manipulation}.lane-controls button{width:58px;height:58px;background:#091b2de8;color:#9ef8ff;border:1px solid #85dfe99c;font-size:26px;touch-action:manipulation}.lane-controls>span{font-size:9px;color:#d6fcff;letter-spacing:1px;min-width:45px;text-align:center;padding:7px 2px;background:#081727c9}.lane-controls button:disabled{opacity:.25}.transition-cue[data-mode="depth"]{--cue:#8aeeff}.world-card[data-world="6"]:before{background:radial-gradient(ellipse at 70% 38%,#e5ffff77,transparent 8%,#25e4f533 22%,#0b193a 57%),repeating-conic-gradient(from 0deg at 70% 38%,#62f3ff44 0deg 1deg,transparent 1deg 18deg);opacity:.5}.world-card[data-world="6"] .card-title{color:#d0fbff}@media(max-height:450px){.lane-controls{bottom:calc(13px + env(safe-area-inset-bottom));left:calc(17px + env(safe-area-inset-left));gap:5px}.lane-controls button{width:48px;height:48px}.lane-controls>span{font-size:8px;min-width:41px}}
.learning-ramp{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:700px){.learning-ramp{grid-template-columns:repeat(2,minmax(0,1fr))}}

.movement-mode.surge-mode{grid-column:auto}.stage:has(#game-canvas[data-mode="depth"]) .stage-notice{top:110px;bottom:auto;left:20px;right:20px;font-size:11px;line-height:1.4;letter-spacing:.5px}.stage:has(#game-canvas[data-mode="depth"]):has(.transition-cue.visible) .stage-notice{top:134px}

.ready-track{display:block;margin:0 0 10px;color:#a6dddf;font-size:10px;line-height:1.5;letter-spacing:.5px}.transition-cue[data-form=fly]{--cue:#91d9ff}.transition-cue[data-form=flip]{--cue:#baacff}

/* Three ranked retry policies plus the separate practice tool. */
.retry-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:4px}
.retry-modes button{min-width:0}
.checkpoint-tick.is-saved{background:#b6ff70;box-shadow:0 0 7px #b6ff7070}
.scoreboard-key,.score-row{grid-template-columns:1.1fr repeat(3,minmax(0,1fr));column-gap:18px}
@media(max-width:680px){.score-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 9px}.score-world{grid-column:1/-1}.score-lane{min-width:0}.score-lane-label{font-size:8px}.score-value{font-size:22px}.scoreboard-key{display:none}}

.hero-actions{flex-wrap:wrap;gap:14px 24px}.prototype-intro{border:1px solid #5c713a;padding:24px;margin:0 0 28px;background:linear-gradient(110deg,#b6ff7009,#15253680)}.prototype-intro>p{max-width:720px;color:#aab8c7;font-size:14px;line-height:1.7}.card-layout{display:block;position:relative;color:var(--world);font-size:9px;line-height:1.5;letter-spacing:.1px;margin-top:9px;max-width:92%}.card-bottom{margin-top:15px}

/* Journey7: objectives and attacks live beside the established movement HUD. */
.journey-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:38px;padding:28px 0 32px;margin-bottom:26px;border-block:1px solid var(--line)}.journey-intro h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:38px;line-height:1.05;margin:10px 0}.journey-intro p{font-size:12px;line-height:1.8;color:#a3b5c4;max-width:530px}.journey-repertoire{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:center}.journey-repertoire span{border-left:2px solid #b6ff7077;background:#b6ff7006;padding:15px 12px;font-size:10px;letter-spacing:1px;color:#daeccf}.card-stages{display:flex;gap:5px;margin-top:10px;font-size:8px;color:#c9d7e3}.card-stages>span{padding:5px;border:1px solid #8b9ca43a;background:#07121c66}.card-layout{line-height:1.7!important}.world-card .card-title{max-width:95%}.world-card{min-height:340px}.world-card .card-bottom{margin-top:18px}.journey-hud{position:absolute;z-index:3;top:72px;left:20px;right:20px;pointer-events:none;max-width:430px}.journey-hud[hidden]{display:none}.journey-hud>div:first-child{display:flex;align-items:center;gap:12px}.journey-hud b{font-size:9px;letter-spacing:1.1px;color:#caff9a;white-space:nowrap}.journey-hud #journey-objective{font-size:10px;line-height:1.5;color:#dbe8f0;text-shadow:0 1px 5px #000}.journey-stage-steps{display:flex;gap:5px;max-width:180px;margin-top:6px}.journey-stage-steps i{height:3px;flex:1;background:#78909d66}.journey-stage-steps i.passed{background:#b6ff70}.journey-stage-steps i.active{background:#eefde7;box-shadow:0 0 8px #caff9a77}.journey-charge{position:relative;margin-top:8px;border:1px solid #63dcdb88;height:25px;width:min(310px,100%);background:#08121de6}.journey-charge[hidden]{display:none}.journey-charge>i{display:block;position:absolute;height:100%;background:#7de9df44;width:0}.journey-charge>span{position:relative;display:block;padding:5px 9px;font-size:9px;letter-spacing:.6px;color:#dbffff}.zap-action{position:absolute;z-index:5;right:120px;bottom:24px;width:66px;height:66px;border:1px solid #ffda86aa;border-radius:50%;background:#1c2130e6;color:#ffe29a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.zap-action[hidden]{display:none}.zap-action b{font-size:23px}.zap-action span{font-size:9px;letter-spacing:1px}.zap-action small{font-size:7px;color:#bba987}.zap-action:disabled{opacity:.5}.world-stage-preview{display:flex;gap:5px;margin-top:10px;flex-wrap:wrap}.world-stage-preview>span{padding:6px 8px;background:#b6ff7008;border:1px solid #b6ff7022;font-size:9px;line-height:1.4}.world-stage-preview b{color:#b6ff70}.victory-stages{display:flex;gap:9px;justify-content:center;margin:15px 0}.victory-stages span{padding:7px 10px;border:1px solid #b6ff7055;background:#b6ff700a;color:#d6ffb2;font-size:9px}.guardian-defeated{font-size:14px;color:#e6d6a5;line-height:1.7}.world-stage-picker{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 10px}.world-stage-picker button{font-size:9px;min-height:44px;padding:7px;border:1px solid #4b6371;background:#10202c;color:#d1e4ed}.world-stage-picker button.active{border-color:#b6ff70;color:#b6ff70}
@media(max-width:700px){.journey-intro{grid-template-columns:1fr;gap:15px}.journey-intro h2{font-size:31px}.journey-repertoire{gap:7px}.journey-repertoire span{font-size:9px;padding:12px}.card-stages{font-size:8px}}
@media(pointer:coarse),(max-height:600px) and (orientation:landscape){body.is-playing .journey-hud{top:calc(65px + env(safe-area-inset-top));left:calc(18px + env(safe-area-inset-left));max-width:calc(100% - 200px)}body.is-playing .journey-hud b{font-size:8px}body.is-playing .journey-hud #journey-objective{font-size:9px;max-width:300px}body.is-playing .journey-charge{height:24px;width:260px}body.is-playing .zap-action{right:calc(116px + env(safe-area-inset-right));bottom:calc(17px + env(safe-area-inset-bottom));width:64px;height:64px}body.is-playing .stage:has(.transition-cue.visible) .journey-hud{opacity:0}.world-stage-preview>span{font-size:8px}.victory-stages{margin:9px 0}.victory-stages span{font-size:8px;padding:5px}.guardian-defeated{font-size:11px}}

.move-drills{max-width:100%;font-size:10px;color:#bed5df;margin:0 0 10px}.move-drills summary{cursor:pointer;padding:8px 0}.move-drills .practice-section-picker{margin-top:5px}.world-stage-picker{grid-column:2;grid-row:4}.game-overlay:has(.world-stage-picker) .move-drills{grid-column:2;grid-row:5}@media(max-height:600px) and (min-width:600px) and (orientation:landscape){body.is-playing .game-overlay:has(.world-stage-picker) .overlay-actions{grid-row:7}body.is-playing .game-overlay:has(.world-stage-picker) .overlay-note{grid-row:8}body.is-playing .game-overlay:has(.world-stage-picker) .ghost-option{grid-row:6}}

.stage:has(#game-canvas[data-status="complete"]) :is(.touch-action,.zap-action,.lane-controls,.input-feedback){visibility:hidden!important}.learning-ramp{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:700px){.learning-ramp{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-ramp li+li{padding-left:0;border-left:0}.learning-ramp li{border-top:1px solid #2c3945;padding-top:10px}}
/* Keep the reward and its onward action together on a short phone screen. */
@media(max-height:450px) and (orientation:landscape){
 body.is-playing .game-overlay:has(#replay-run) .overlay-card{display:grid;grid-template-columns:1.15fr 1fr;gap:7px 18px;align-content:center;max-width:790px}
 body.is-playing .game-overlay:has(#replay-run) .overlay-card>small{grid-column:1/-1;grid-row:1;font-size:7px;line-height:1.4}
 body.is-playing .game-overlay:has(#replay-run) .result-heading{grid-column:1;grid-row:2;justify-content:flex-start;gap:10px;min-height:50px;margin:0}
 body.is-playing .game-overlay:has(#replay-run) .result-heading h2{font-size:29px;line-height:1;margin:0}
 body.is-playing .game-overlay:has(#replay-run) .rank-seal{font-size:28px;width:43px;min-width:43px;height:53px;padding:5px}
 body.is-playing .game-overlay:has(#replay-run) .rank-seal small{font-size:6px}
 body.is-playing .game-overlay:has(#replay-run) .victory-stages{grid-column:1;grid-row:3;margin:0;justify-content:flex-start;gap:4px}
 body.is-playing .game-overlay:has(#replay-run) .victory-stages span{font-size:7px;padding:5px}
 body.is-playing .game-overlay:has(#replay-run) .guardian-defeated{grid-column:1;grid-row:4;text-align:left;font-size:10px;line-height:1.5;margin:0}
 body.is-playing .game-overlay:has(#replay-run) .result-stats{grid-column:2;grid-row:2;gap:8px;margin:0;align-self:center}
 body.is-playing .game-overlay:has(#replay-run) .result-stats span{font-size:7px}
 body.is-playing .game-overlay:has(#replay-run) .result-stats b{font-size:23px}
 body.is-playing .game-overlay:has(#replay-run) .result-detail{grid-column:2;grid-row:3;font-size:7px;line-height:1.5;margin:0;gap:5px}
 body.is-playing .game-overlay:has(#replay-run) .next-pursuit{grid-column:2;grid-row:4;margin:0;font-size:9px;line-height:1.5}
 body.is-playing .game-overlay:has(#replay-run) .overlay-actions{grid-column:1/-1;grid-row:5;position:sticky;bottom:0;z-index:2;background:#0a1520f2;padding:7px 0;box-shadow:0 -8px 12px #07121b88;margin:0}
 body.is-playing .game-overlay:has(#replay-run) .overlay-actions :is(button,a){min-height:44px;font-size:10px;padding:10px}
 body.is-playing .game-overlay:has(#replay-run) .overlay-note{grid-column:1/-1;grid-row:6;margin:0;font-size:7px;line-height:1.3}
 body.is-playing .game-overlay:has(#replay-run) .recap-open{grid-column:1/-1;grid-row:7;margin:0;font-size:8px;padding:6px}
}

@media(max-height:450px) and (orientation:landscape){body.is-playing .game-overlay:has(#replay-run){padding:12px 20px!important}body.is-playing .game-overlay:has(#replay-run) .overlay-card{gap:5px 14px}body.is-playing .game-overlay:has(#replay-run) .recap-open{padding:4px}}

/* Chapter navigation stays available while choosing a world on a small screen. */
.world-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;margin-bottom:18px;background:#0c151ef2;border:1px solid #30404b;position:sticky;top:8px;z-index:6;backdrop-filter:blur(12px)}
.chapter-selector{display:flex;gap:6px;flex-wrap:wrap}.chapter-selector button{min-height:44px;border:1px solid #384a57;background:#14212d;color:#afc0cd;font-size:10px;letter-spacing:.7px;padding:10px 13px;cursor:pointer}.chapter-selector button.active{border-color:#b6ff70;color:#e3ffc9;background:#b6ff7014}.world-navigation .primary{min-height:44px;max-width:42%;font-size:11px;padding:11px 14px;text-align:left}.zap-action.is-ready{border-color:#b6ff70;box-shadow:0 0 16px #b6ff7033;color:#d9ffb3}.learning-ramp{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
@media(max-width:700px){.world-navigation{gap:7px;padding:7px;top:4px}.chapter-selector{flex:1}.chapter-selector button{font-size:9px;letter-spacing:0;flex:1;padding:7px}.world-navigation .primary{font-size:10px;max-width:34%;padding:10px}.learning-ramp{grid-template-columns:repeat(2,minmax(0,1fr))}}
