:root{font-family:Avenir Next,Avenir,Segoe UI,sans-serif;color:#314956;background:#e8eeed;--scene-bg-top: #dcecea;--scene-bg-bottom: #efe8e1;--scene-glow: #fff5e6;--safe-top: env(safe-area-inset-top);--safe-right: env(safe-area-inset-right);--safe-bottom: env(safe-area-inset-bottom);--safe-left: env(safe-area-inset-left);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0}body{overflow:hidden;overscroll-behavior:none}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #cc6258;outline-offset:3px}[hidden]{display:none!important}#app{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden;container:app / size;background:radial-gradient(ellipse at 72% 20%,var(--scene-glow),transparent 50%),linear-gradient(155deg,var(--scene-bg-top),var(--scene-bg-bottom))}#game,#ui{position:absolute;inset:0}#game{overflow:hidden}.game-canvas{display:block;width:100%;height:100%}.game-ui{pointer-events:none;user-select:none;-webkit-user-select:none}.game-ui:focus{outline:none}.game-ui button,.menu-overlay,.state-overlay,.control-dock,.utility-bar,.hud-actions{pointer-events:auto}.ui-grain{display:none}.hud{position:absolute;z-index:3;top:0;left:0;right:0;min-height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:max(12px,var(--safe-top)) max(24px,var(--safe-right)) 11px max(24px,var(--safe-left));border-bottom:1px solid rgba(61,88,99,.16);background:#f8faf7e3;box-shadow:0 8px 28px #4258650e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hud-brand{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.18em;font-weight:500;white-space:nowrap}.hud-brand b{font-weight:750}.hud-brand-mark{color:#cb786e;font-family:Georgia,serif;font-size:27px;line-height:1}.hud-stats{display:flex;align-items:center;gap:clamp(16px,3cqw,48px)}.hud-stat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:62px}.hud-stat-label{font-size:9px;font-weight:700;letter-spacing:.16em;color:#526b76}.hud-stat strong{font-size:17px;font-variant-numeric:tabular-nums;line-height:1}.hud-actions{justify-self:end;display:flex;gap:8px}.icon-btn{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(68,94,105,.21);border-radius:50%;background:#ffffffc4;color:#314956;font-size:21px;line-height:1;box-shadow:0 3px 13px #4356610f;transition:background .15s,transform .15s,border-color .15s}.icon-btn:hover{background:#fff;border-color:#9caeb3;transform:translateY(-1px)}.level-banner{position:absolute;z-index:2;top:97px;left:max(28px,var(--safe-left));display:flex;flex-direction:column;gap:3px;text-shadow:0 1px 0 rgba(255,255,255,.7)}.level-banner-index{color:#a95053;font-size:10px;font-weight:750;letter-spacing:.19em}.level-banner-name{font-family:Georgia,Iowan Old Style,serif;font-size:clamp(19px,2.3cqw,29px);font-weight:500;line-height:1.1}.level-banner-mechanic{max-width:245px;color:#566e77;font-size:11px;font-weight:600;line-height:1.3}.timeline{position:absolute;z-index:2;top:100px;right:max(28px,var(--safe-right));display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid rgba(68,94,105,.16);border-radius:10px;background:#f9fbf9e8;box-shadow:0 8px 25px #42586513}.timeline-label{color:#61757f;font-size:9px;font-weight:700;letter-spacing:.14em}.timeline-track{position:relative;width:clamp(65px,12cqw,130px);height:5px;border-radius:5px;background:#d5dfe0}.timeline-fill{height:100%;border-radius:inherit;background:#d07c72}.timeline-needle{position:absolute;top:-4px;width:3px;height:13px;border-radius:2px;background:#314956}.timeline-direction{min-width:14px;font-weight:700}.control-dock{--dock-left: max(24px, var(--safe-left));--dock-right: max(24px, var(--safe-right));--dock-bottom: max(22px, var(--safe-bottom));--tilt-gap: 9px;position:absolute;z-index:3;left:var(--dock-left);right:var(--dock-right);bottom:var(--dock-bottom);display:flex;justify-content:space-between;align-items:end}.tilt-control{display:flex;gap:var(--tilt-gap)}.game-ui .control-dock{pointer-events:none}.control-button{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;touch-action:none;-webkit-tap-highlight-color:transparent;border:1px solid rgba(68,94,105,.2);color:#314956;background:#fafcfaf2;box-shadow:0 6px 22px #36515e24,inset 0 1px #fffc;transition:transform .1s,box-shadow .1s,background .1s}.control-button.pressed{transform:translateY(2px);box-shadow:0 2px 8px #36515e24;background:#e3ebeb}.tilt-button{width:140px;height:84px;border-radius:16px}.tilt-button:before,.brake-button:before{content:"";position:absolute}.tilt-button[data-hold=left]:before{left:calc(-1px - var(--dock-left));bottom:calc(-1px - var(--dock-bottom));top:-12px;right:calc(-1px - var(--tilt-gap) / 2)}.tilt-button[data-hold=right]:before{left:calc(-1px - var(--tilt-gap) / 2);bottom:calc(-1px - var(--dock-bottom));top:-12px;right:-24px}.brake-button:before{right:calc(-2px - var(--dock-right));bottom:calc(-2px - var(--dock-bottom));top:-14px;left:-14px}.control-arrow{height:39px;font-family:Georgia,serif;font-size:35px;line-height:1}.control-button small{font-size:9px;font-weight:750;letter-spacing:.1em}.brake-button{width:118px;height:118px;border-radius:50%;border:2px solid rgba(255,255,255,.84);outline:1px solid #bc6a67;color:#fffdf7;background:#b25954;box-shadow:0 10px 28px #814f543d,inset 0 1px #ffffff4d;font-size:18px;font-weight:750;letter-spacing:.07em}.brake-button.pressed{background:#974941;box-shadow:0 3px 10px #814f5433}.brake-glyph{margin-top:-4px;font-family:Georgia,serif;font-size:33px;line-height:1}.brake-button small{color:#fffdf7;font-size:9px;margin-top:3px}.utility-bar{position:absolute;z-index:2;bottom:max(34px,var(--safe-bottom));left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;width:min(420px,45cqw)}@media(hover:none),(pointer:coarse){.utility-bar{bottom:calc(max(22px,var(--safe-bottom)) + 110px)}}.control-hint{color:#536a75;font-size:10px;font-weight:700;letter-spacing:.07em;white-space:nowrap}.control-hint i{font-style:normal;font-weight:500}.utility-buttons{display:flex;gap:6px}.text-btn{padding:8px 9px;border:1px solid rgba(68,94,105,.2);border-radius:7px;background:#fafcfae6;color:#3e5966;font-size:9px;font-weight:750;letter-spacing:.05em;white-space:nowrap;box-shadow:0 3px 12px #36515e0f}.text-btn:hover,.text-btn.selected{background:#405d6b;color:#fffdf7}.mode-toast{position:absolute;z-index:8;left:50%;bottom:165px;transform:translate(-50%);padding:10px 15px;max-width:min(90cqw,380px);border-radius:9px;color:#fffdf7;background:#405d6b;box-shadow:0 8px 25px #36515e2e;font-size:12px;font-weight:700;text-align:center}.debug-panel{position:absolute;z-index:8;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;padding:7px 12px;border:1px solid rgba(68,94,105,.16);border-radius:7px;color:#314956;background:#fafcfaf0;font:10px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.debug-panel b{font-size:9px;letter-spacing:.1em}.debug-on .hud-stats{visibility:hidden}@container app (max-width: 1080px){.debug-on .hud-brand{visibility:hidden}}.menu-overlay,.state-overlay{position:absolute;z-index:10;inset:0;display:grid;place-items:center;background:#31465163;-webkit-backdrop-filter:blur(11px);backdrop-filter:blur(11px);pointer-events:auto}.menu-overlay{display:block;background:#fcfdfb;-webkit-backdrop-filter:none;backdrop-filter:none}.menu-card{width:100%;height:100%;overflow-y:auto;overscroll-behavior:contain;color:#314956;background:radial-gradient(ellipse at 85% 28%,#f4f8f5 0,#fcfdfb 47%,#fffefa)}.menu-main{width:min(1460px,100%);margin:0 auto;padding:clamp(16px,3vh,36px) clamp(28px,6vw,96px) 56px}.menu-hero{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(480px,1.2fr);align-items:center;gap:clamp(16px,3vw,48px);min-height:clamp(500px,68vh,680px)}.menu-intro{min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:22px 0}.eyebrow{margin:0 0 16px;color:#a95053;font-size:10px;font-weight:750;letter-spacing:.22em}.menu-intro h1,.state-card h2{margin:0;font:500 clamp(70px,7.3vw,118px)/.92 Georgia,"Iowan Old Style",serif;letter-spacing:-.068em}.menu-intro h1 em{color:#c8736b;font-weight:400}.menu-lead{width:100%;max-width:420px;margin:26px 0 34px;color:#506a74;font-size:clamp(16px,1.35vw,19px);line-height:1.5}.primary-btn{min-width:190px;display:flex;justify-content:space-between;align-items:center;gap:22px;padding:15px 17px 14px 20px;border:1px solid #365462;border-radius:8px;color:#fffdf7;background:#405f6d;box-shadow:0 6px 18px #304d5b2b;font-size:12px;font-weight:750;letter-spacing:.1em;transition:transform .12s,box-shadow .12s,background .12s}.primary-btn:hover{background:#526f7d;transform:translateY(-2px);box-shadow:0 9px 22px #304d5b33}.primary-btn span:last-child{font:26px/1 Georgia,serif}.menu-intro .primary-btn{min-width:235px;min-height:58px;padding:16px 19px 15px 24px;font-size:13px}.menu-art-wrap{position:relative;width:100%;max-width:780px;min-width:0;justify-self:center;aspect-ratio:660 / 560;overflow:hidden;transform:scaleX(-1);mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent),linear-gradient(180deg,transparent,#000 3%,#000 97%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent),linear-gradient(180deg,transparent,#000 3%,#000 97%,transparent);mask-composite:intersect}.menu-art{position:absolute;display:block;width:193.939394%;max-width:none;height:auto;left:-35.606061%;top:-25.892857%}.campaign{padding:29px 0 12px;border-top:1px solid #dce6e5}.campaign-heading{flex-wrap:wrap;display:flex;justify-content:space-between;gap:16px;padding-bottom:15px;color:#4c6570;font-size:11px;font-weight:750;letter-spacing:.16em}.campaign-heading span:last-child{color:#a95053}.campaign-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.level-tile{min-height:75px;display:grid;grid-template-columns:37px minmax(0,1fr) 16px;align-items:center;gap:8px;padding:10px 14px;border:1px solid #d8e1e1;border-radius:8px;background:#ffffffc7;color:#314956;text-align:left;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s}.level-tile:not(:disabled):hover{transform:translateY(-2px);border-color:#c88782;background:#fffefa;box-shadow:0 6px 17px #495e6817}.level-tile.current{border-color:#c88782;background:#fff8f3}.level-tile.locked{opacity:.54;cursor:default}.tile-number{align-self:start;color:#a95053;font:600 23px/1 Georgia,serif}.tile-label{font:600 12px/1.24 Georgia,serif}.tile-mark{align-self:start;color:#a95053;font-weight:750}.is-menu .hud,.is-menu .level-banner,.is-menu .timeline{display:none}@container app (max-width: 1050px){.menu-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;padding:46px 0}.menu-intro h1{font-size:clamp(56px,7.2vw,78px)}.campaign-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.state-overlay{background:#31465157}.state-card{width:min(470px,calc(100cqw - 40px));padding:43px;border:1px solid rgba(255,255,255,.75);border-radius:16px;background:#fbfaf5;box-shadow:0 20px 80px #2c404d38}.state-card h2{font-size:clamp(42px,5vw,58px)}.state-copy{min-height:42px;margin:20px 0 28px;color:#56707a;font-size:14px;line-height:1.5}.state-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.state-actions .primary-btn{min-width:185px}.secondary-btn{border:0;border-bottom:1px solid #8099a1;padding:8px 0;color:#3e5966;background:transparent;font-size:10px;font-weight:750;letter-spacing:.09em}@container app (max-width: 760px){.hud{min-height:61px;padding:max(8px,var(--safe-top)) max(11px,var(--safe-right)) 8px max(11px,var(--safe-left));grid-template-columns:1fr auto;gap:6px}.hud-brand{display:none}.hud-stats{justify-self:start;gap:9px}.hud-stat{min-width:48px}.hud-stat-label{font-size:8px}.hud-stat strong{font-size:13px}.icon-btn{width:33px;height:33px;font-size:18px}.level-banner{top:77px;left:max(13px,var(--safe-left))}.level-banner-name{font-size:19px}.timeline{top:78px;right:10px;padding:7px;gap:5px}.timeline-label{font-size:7px}.timeline-track{width:50px}.control-dock{--dock-left: max(13px, var(--safe-left));--dock-right: max(13px, var(--safe-right));--dock-bottom: max(12px, var(--safe-bottom));--tilt-gap: 6px}.tilt-button{width:min(108px,calc((100cqw - 160px)/2));height:68px;border-radius:12px}.tilt-button[data-hold=right]:before{right:-16px}.control-arrow{height:32px;font-size:29px}.control-button small{font-size:7px}.brake-button{width:91px;height:91px;font-size:14px}.brake-glyph{font-size:25px}.utility-bar{inset:134px 11px auto auto;width:auto;transform:none;align-items:flex-end}.control-hint{display:none}.text-btn{padding:6px;font-size:7px}.debug-panel{left:max(11px,var(--safe-left));top:50%;transform:translateY(-50%);max-width:calc(100% - 92px);gap:5px;padding:3px 4px;border:0;background:transparent;font-size:8px;flex-wrap:wrap;white-space:normal}.debug-panel b,.debug-panel [data-ui=debug-input]{display:none}.mode-toast{bottom:117px}.menu-main{padding:0 22px 36px}.menu-hero{display:block;padding:34px 0 20px}.menu-intro{padding:0}.menu-intro h1{font-size:clamp(60px,12vw,77px)}.menu-lead{max-width:540px;font-size:15px;margin:16px 0 22px}.menu-art-wrap{margin:14px auto 0;max-width:420px}.campaign{padding-top:22px}.campaign-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.level-tile{min-height:64px;grid-template-columns:28px minmax(0,1fr) 12px;gap:5px;padding:8px}.tile-number{font-size:19px}.tile-label{font-size:11px}}@container app (max-width: 650px) and (orientation: portrait){.menu-main{padding-inline:20px}.menu-hero{padding-top:29px}.menu-intro h1{font-size:clamp(58px,14vw,74px)}.menu-lead{font-size:14px}.menu-art-wrap{max-width:340px}.campaign{padding-bottom:20px}.utility-bar{top:auto;bottom:max(117px,calc(var(--safe-bottom) + 108px));right:12px}.utility-buttons{flex-wrap:wrap;justify-content:flex-end;max-width:230px}.level-banner{top:82px}.timeline{top:150px;left:13px;right:auto}.debug-panel{top:50%}}@container app (max-height: 460px) and (orientation: landscape){.hud{min-height:47px;padding-top:max(5px,var(--safe-top));padding-bottom:5px}.hud-stat strong{font-size:12px}.level-banner{top:62px}.level-banner-name{font-size:17px}.timeline{top:62px}.utility-bar{top:auto;bottom:max(10px,var(--safe-bottom));left:calc(max(24px,var(--safe-left)) + 247px);right:calc(max(24px,var(--safe-right)) + 97px);width:auto;transform:none;align-items:center}.utility-buttons{flex-wrap:wrap;justify-content:center;align-content:flex-end}.tilt-button{width:104px;height:60px}.brake-button{width:79px;height:79px}.control-arrow{height:26px;font-size:27px}.tilt-button small{font-size:7px;letter-spacing:.04em}.brake-glyph{margin-top:0;font-size:21px}.brake-button{font-size:12px;line-height:1}.brake-button small{font-size:7px;margin-top:1px}.debug-panel{top:50%}.control-dock{--dock-bottom: max(10px, var(--safe-bottom))}.menu-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:13px;padding:14px 0 20px}.menu-intro h1{font-size:clamp(47px,6vw,65px)}.menu-lead{font-size:12px;margin:10px 0 12px;line-height:1.4}.menu-intro .primary-btn{min-height:46px;padding:10px 14px;font-size:10px}.menu-art-wrap{margin:0;max-width:354px}.campaign{padding-top:14px}.level-tile{min-height:53px}}.game-ui{--orientation-top: max(76px, calc(var(--safe-top) + 50px))}.horizon-gauge{position:absolute;z-index:2;top:calc(var(--orientation-top) + 16px);left:max(20px,var(--safe-left));width:88px;display:flex;flex-direction:column;align-items:center;color:#314956;pointer-events:none}.horizon-gauge svg{display:block;width:100%;overflow:visible}.horizon-face{fill:#faf8f0;fill-opacity:.94;stroke:#b5c2c3;stroke-width:1}.horizon-ticks{stroke:#80979c;stroke-width:1}.horizon-reference{stroke:#647c83;stroke-width:1;stroke-dasharray:2 3}.horizon-ground{fill:#d27b6c;fill-opacity:.18}.horizon-line{stroke:#bb665b;stroke-width:3;stroke-linecap:round}.horizon-up{fill:#bb665b}.horizon-pivot{fill:#314956}.horizon-gauge strong{margin-top:2px;font-size:14px;font-variant-numeric:tabular-nums;line-height:1.2}.horizon-gauge>span{margin-top:2px;font-size:7px;font-weight:750;letter-spacing:.1em}.horizon-gauge.is-level .horizon-line{stroke:#497c77}.horizon-gauge.is-level .horizon-up{fill:#497c77}.horizon-gauge.is-level .horizon-ground{fill:#77a59a}.level-banner{top:calc(var(--orientation-top) + 21px);left:max(125px,calc(var(--safe-left) + 105px));max-width:min(300px,calc(100cqw - 145px))}.is-menu .horizon-gauge{display:none}@container app (max-width: 760px){.game-ui{--orientation-top: max(61px, calc(var(--safe-top) + 42px))}.horizon-gauge{top:calc(var(--orientation-top) + 15px);left:max(11px,var(--safe-left));width:72px}.horizon-gauge strong{font-size:13px}.level-banner{left:max(96px,calc(var(--safe-left) + 85px));max-width:calc(100cqw - 112px)}}@container app (max-width: 650px) and (orientation: portrait){.timeline{top:calc(var(--orientation-top) + 154px)}}@container app (max-height: 460px) and (orientation: landscape){.game-ui{--orientation-top: max(47px, calc(var(--safe-top) + 44px))}.horizon-gauge{top:calc(var(--orientation-top) + 12px);width:62px}.level-banner{top:calc(var(--orientation-top) + 15px);max-width:250px}}@media(hover:hover)and (pointer:fine){.control-dock,[data-action=motion],[data-action=calibrate],[data-action=steering]{display:none!important}.control-hint{display:block}}@media(hover:none),(pointer:coarse){.control-hint{display:none}}.screen-guide{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:max(18px,var(--safe-top)) max(24px,var(--safe-right)) max(18px,var(--safe-bottom)) max(24px,var(--safe-left));background:radial-gradient(ellipse at 80% 10%,#fff8eb,#f1eee5);color:#173f45;touch-action:pan-y;overflow-y:auto}.screen-guide-card{width:min(100%,540px);text-align:center}.screen-guide h2{font:32px/1.1 Georgia,serif;margin:8px 0 12px}.screen-guide p{font-size:15px;line-height:1.45;margin:10px auto 16px}.screen-guide .primary-btn{margin:0 auto;min-height:46px;padding:10px 24px}.screen-swipe{display:block;font-size:32px;color:#bc675a}.screen-guide .screen-install{font-size:12px;max-width:430px;margin-bottom:0}html.iphone-screen-scroll,html.iphone-screen-scroll body{height:calc(100lvh + 180px);overflow-y:auto;overscroll-behavior-y:auto}html.iphone-screen-scroll #app{position:fixed;top:0;left:0;touch-action:none}@media(max-height:360px){.screen-guide h2{font-size:25px}.screen-swipe{display:none}.screen-guide p{margin:8px auto}}
