@font-face{font-family:Echo;src:local('Bahnschrift')}
:root{--gold:#d9b778;--pale:#eee0bc;--jade:#8ccbb6;--frame:#9d805047;--serif:Georgia,'STZhongsong','SimSun',serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0c242c;color:#e9eee0;font-family:Echo,'Segoe UI','Microsoft YaHei',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #f5d092;outline-offset:5px}[hidden]{display:none!important}#world{position:fixed;inset:0}#world canvas{width:100%;height:100%;display:block}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 58% 42%,transparent 34%,#04151c77 100%)}body[data-screen=menu] .vignette{background:linear-gradient(90deg,#05171ce6 0%,#082026a8 23%,#08202628 55%,transparent 75%),linear-gradient(0deg,#04171cb3,transparent 25%)}#flash{position:fixed;inset:0;pointer-events:none;opacity:0;transition:opacity .2s;background:#adeade55}
.topbar{position:fixed;z-index:20;top:22px;right:24px;pointer-events:none}.wordmark{display:none}.top-actions{display:flex;gap:7px;pointer-events:auto}.top-actions button{font-size:11px;letter-spacing:.7px;background:linear-gradient(135deg,#243b39ed,#10272de8);border:1px solid var(--frame);box-shadow:inset 0 0 0 3px #0b242c88,0 3px 12px #061a2280;min-width:38px;height:36px;padding:0 11px;white-space:nowrap;flex-shrink:0}.top-actions button:hover{border-color:var(--gold);color:var(--pale)}.overlay{position:fixed;inset:0;z-index:10;pointer-events:none}.start-copy{position:absolute;left:7%;top:16%;width:430px;max-width:45vw;pointer-events:auto}.menu-sigil{height:72px;width:72px;display:grid;place-items:center;margin-bottom:20px;border:1px solid #b3955a70;border-radius:50%;box-shadow:inset 0 0 0 5px #0f2e3280,0 0 34px #bd9a4720;position:relative}.menu-sigil::before{content:'';position:absolute;inset:-7px;border:1px solid #b3955a30;border-radius:50%}.menu-sigil img{height:52px;width:52px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:3px;color:var(--jade);margin-bottom:13px}.eyebrow>span{height:1px;width:22px;background:var(--gold)}.eyebrow b{font-weight:400}h1{font-family:var(--serif);font-size:clamp(48px,4.8vw,80px);font-weight:500;letter-spacing:5px;line-height:1.1;margin:0;color:var(--pale);text-shadow:0 2px 0 #907340,0 6px 18px #031519,0 0 35px #d0b57322}html[lang=en] h1{font-size:clamp(42px,4.4vw,72px);letter-spacing:2px;max-width:410px}.game-subtitle{margin-top:13px;font-family:var(--serif);font-size:14px;color:#c3a46a;letter-spacing:5px}.title-ornament{display:flex;align-items:center;gap:10px;max-width:335px;margin:24px 0 25px;color:var(--gold);font-size:8px}.title-ornament i{height:1px;flex:1;background:linear-gradient(90deg,#a78948aa,transparent)}.title-ornament i:first-child{background:linear-gradient(90deg,transparent,#a78948aa)}.intro-line{font-family:var(--serif);font-size:22px;letter-spacing:2px;margin:0 0 12px;color:#e2ddc8}.intro-desc{font-size:12px;color:#a9bfb6;line-height:1.9;margin:0 0 24px}.primary{position:relative;background:linear-gradient(115deg,#d5b879,#edd19a 52%,#b99b62);color:#1a3032;border:1px solid #efdab2;padding:15px 21px;min-width:250px;display:flex;justify-content:space-between;gap:28px;align-items:center;font-size:14px;font-weight:600;letter-spacing:2px;box-shadow:inset 0 0 0 3px #85693740,0 7px 24px #04191f80;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);transition:filter .15s,transform .15s}.primary::before{content:'◆';position:absolute;left:8px;font-size:5px;opacity:.4}.primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.primary>span:last-child{font-size:19px}.primary:disabled{opacity:.4;cursor:default;transform:none}.start-copy .primary{width:300px}.text-button{background:transparent;font-size:12px;color:#9abeb0;padding:14px 0 0;letter-spacing:1px}.text-button:hover{color:var(--pale)}.checkpoint-button{display:block;width:300px;border:1px solid #b5995555;background:#17343a99;color:var(--pale);margin-top:10px;padding:13px 16px;text-align:center;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}#bestRecord{display:block;font-size:10px;letter-spacing:1px;color:#8eaaa0;margin-top:11px}#bestRecord:empty{display:none}.intro-controls{display:flex;gap:13px;margin-top:22px;font-size:10px;color:#829e95}.intro-controls span{white-space:nowrap}kbd{font-family:inherit;display:inline-block;font-size:9px;border:1px solid #9b976346;border-bottom:2px solid #8a805957;padding:3px 5px;margin-right:4px;color:#c1c4ac;background:#102b2b80}.vertical-note{position:absolute;right:30px;top:36%;writing-mode:vertical-rl;font-size:9px;letter-spacing:4px;color:#c0b18670}.start-footer{position:absolute;bottom:24px;left:28px;right:28px;display:flex;justify-content:space-between;align-items:center;letter-spacing:1.6px;font-size:9px;color:#a4b4a269}.start-footer a{color:#cdbb90;text-decoration:none;pointer-events:auto;border:1px solid #9f8a4c50;padding:10px 18px;background:#112c3280}.start-footer a:hover{color:#ffe3ab;border-color:var(--gold)}
#hud{position:fixed;inset:0;pointer-events:none;z-index:11}.sector-label{position:fixed;left:24px;top:24px;width:335px;padding:15px 17px 23px;background:linear-gradient(100deg,#102d34ed,#102d34a8);border-left:2px solid var(--gold);border-top:1px solid var(--frame);clip-path:polygon(0 0,100% 0,100% calc(100% - 13px),calc(100% - 13px) 100%,0 100%)}#sectorName{font-family:var(--serif);font-size:19px;color:var(--pale);letter-spacing:2px}.sector-label p{font-size:11px;margin:8px 0 0;color:#b8cdc1;letter-spacing:.4px;line-height:1.65;min-height:36px}.sector-progress{position:fixed;left:41px;top:115px;display:flex;gap:5px}.sector-progress i{width:48px;height:3px;background:#b6d7c82a}.sector-progress i.active{background:#e6b766;box-shadow:0 0 8px #dab06870}.sector-progress i.done{background:var(--jade)}.run-progress{position:fixed;left:41px;top:136px;font-size:10px;letter-spacing:1px;color:#d7c190;display:flex;gap:17px;pointer-events:auto}.run-progress b{color:var(--jade);font-weight:400}#memoryStatus{background:transparent;color:inherit;padding:0;font-size:inherit;letter-spacing:inherit;text-align:left}#memoryStatus::after{content:' ◇';color:#afc9b4}#memoryStatus:hover{color:var(--pale)}
.loop-clock{position:fixed;left:50%;transform:translateX(-50%);bottom:21px;width:112px;height:112px;text-align:center;background:radial-gradient(circle,#173938e8 0%,#122b32e8 61%,transparent 63%);filter:drop-shadow(0 4px 12px #061820)}.loop-clock::after{content:'';position:absolute;inset:12px;border:1px solid #d8b76940;border-radius:50%;pointer-events:none}.loop-clock svg{width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke-width:3}.track{stroke:#ae916944}#clockArc{stroke:var(--gold);stroke-dasharray:320.44;transition:stroke .2s}.loop-clock>div{position:absolute;inset:31px 0}.loop-clock strong{font-size:27px;font-weight:400;color:var(--pale);font-variant-numeric:tabular-nums}.loop-clock small{display:block;font-size:8px;color:#9bbba9;margin-top:4px;letter-spacing:1px}.health{position:fixed;left:24px;bottom:39px;width:267px;display:grid;grid-template-columns:58px 1fr 35px;grid-template-rows:28px 14px;gap:3px 11px;align-items:center;padding:8px 12px 8px 6px;background:linear-gradient(90deg,#16373ae8,#13323ad1);border-bottom:1px solid var(--frame);border-right:1px solid var(--frame);box-shadow:0 8px 28px #091d2670}.portrait{grid-row:1/3;width:58px;height:58px;object-fit:contain;background:radial-gradient(ellipse,#57634c,#122e34 70%);border:1px solid #c9a76f99;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}.health>span{font-size:10px;letter-spacing:2px;color:#c6d4b8;align-self:end}.health>div{grid-column:2;grid-row:2;width:100%;height:6px;background:#bdd8bb22;border:1px solid #7f9d8150}.health i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#538f7a,#aed6a2);transition:width .1s}.health b{grid-column:3;grid-row:1/3;font-size:18px;font-weight:400;color:#dae1c0}.echo-roster{position:fixed;right:24px;top:86px;text-align:right}.echo-roster>small{font-size:9px;letter-spacing:3px;color:#b2c6b7}.echo-roster>div{display:flex;gap:6px;margin-top:9px}.echo-slot{position:relative;width:43px;height:58px;border:1px solid #96b3a33b;background:#0e2a33c9;display:block;overflow:hidden}.echo-slot img{width:100%;height:44px;object-fit:contain;opacity:.16;filter:grayscale(1)}.echo-slot b{position:absolute;bottom:0;left:0;right:0;background:#0d242ddd;color:#6c8d85;font-size:8px;line-height:14px;text-align:center;font-weight:400;letter-spacing:1px}.echo-slot.alive{border-color:#acd9ce;box-shadow:inset 0 0 15px #76c2ad40}.echo-slot.alive img{opacity:.9;filter:sepia(.3) hue-rotate(60deg)}.echo-slot.alive b{color:var(--jade)}.echo-slot.current{border-color:var(--gold)}.echo-slot.current img{opacity:1;filter:none}.echo-slot.current b{color:var(--gold)}#relayStatus{position:fixed;right:24px;top:199px;min-width:150px;font-size:11px;letter-spacing:1px;text-align:right;color:#afc4b5;padding:5px 10px;background:linear-gradient(270deg,#112e34c9,transparent);border-right:1px solid var(--frame)}.relay-row{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin:10px 0}.relay-row i{height:6px;width:6px;border:1px solid var(--gold);transform:rotate(45deg)}.relay-row.done{color:#c8dfbb}.relay-row.done i{background:var(--jade);border-color:var(--jade);box-shadow:0 0 8px #8cdbc080}
.bottom-bar{position:fixed;left:24px;right:24px;bottom:14px;display:flex;align-items:center;justify-content:space-between;z-index:12;pointer-events:none}.bottom-bar button{pointer-events:auto}.bottom-bar #keyboardHelp{font-size:9px;color:#8da69b}.bottom-bar kbd{padding:1px 3px;font-size:8px}#rewind{position:fixed;left:calc(50% - 241px);bottom:39px;width:164px;min-height:64px;background:linear-gradient(125deg,#234c49ed,#13333de8);border:1px solid #c4bc815f;padding:12px 13px;display:grid;grid-template-columns:31px auto;text-align:left;box-shadow:inset 0 0 0 3px #061f2c50,0 6px 20px #051c2780;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}#rewind>span{grid-row:span 2;font-size:31px;line-height:1;color:var(--gold)}#rewind>b{font-size:12px;font-weight:500;letter-spacing:1.5px}#rewind small{font-size:9px;color:#93b4a5;margin-top:4px}#rewind:hover{background:#315b57}#rewind.record-ready{border-color:var(--gold);background:linear-gradient(125deg,#56634bee,#234b46ed);box-shadow:0 0 25px #d6b65b28}#rewind.record-ready small{color:#e7cd96}#resonate{position:fixed;left:calc(50% + 77px);bottom:39px;width:164px;min-height:64px;display:grid;grid-template-columns:1fr auto;gap:8px 10px;text-align:left;padding:14px;background:linear-gradient(120deg,#173b43ee,#122e38e8);border:1px solid #8cb5a748;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));font-size:11px;letter-spacing:1px}#resonate b{font-weight:400;color:#c4b379}#resonate i{grid-column:1/-1;height:3px;background:#c4dac425}#resonanceFill{display:block;height:100%;background:var(--jade)}#resonate.ready{border-color:var(--gold);box-shadow:0 0 25px #e6b76630}#resonate.active{border-color:#b7f4e3;background:#376c6370}#resonate.active i{opacity:.3}.score{text-align:right;min-width:100px;padding:10px 13px;border-right:2px solid #b5954d80;background:linear-gradient(270deg,#142f37b3,transparent)}.score small{display:block;font-size:8px;color:#a4b4a2;letter-spacing:2px}.score b{font-family:var(--serif);font-size:23px;letter-spacing:3px;font-weight:400;color:var(--pale)}#upgradeRoster{position:fixed;left:24px;bottom:116px;display:flex;gap:5px;flex-wrap:wrap;max-width:300px}#upgradeRoster span{border:1px solid #b6ac6537;padding:5px 7px;font-size:9px;background:#173434cb;color:#c5d3b7}#bossHud{position:fixed;left:50%;top:26px;transform:translateX(-50%);width:345px;text-align:center;padding:10px 18px;background:linear-gradient(90deg,transparent,#132d32d9,transparent)}#bossHud small{font-size:11px;letter-spacing:2px;color:#ebc49f}#bossHud>div{position:relative;margin-top:9px;height:7px;background:#dcaf8b25;border:1px solid #c7a26750}#bossFill{display:block;height:100%;background:linear-gradient(90deg,#a97854,#e5b386);transition:width .1s}#bossHud>div::before,#bossHud>div::after{content:'';position:absolute;top:-3px;width:2px;height:11px;background:#ebdbc7b0}#bossHud>div::before{left:32%}#bossHud>div::after{left:65%}#bossCue{display:block;min-height:14px;margin-top:7px;font-size:9px;color:#f2dcc0;letter-spacing:1px}#bossCue:empty{visibility:hidden}#toast{position:fixed;left:50%;top:150px;transform:translateX(-50%) translateY(-8px);padding:12px 28px;background:linear-gradient(90deg,#102b3200,#132e34ed 12%,#132e34ed 88%,#102b3200);border-top:1px solid #c4b47755;border-bottom:1px solid #c4b47755;z-index:22;font-size:12px;letter-spacing:1px;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;text-align:center;max-width:80vw}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.small-overlay{z-index:30;background:radial-gradient(ellipse,#061c2290,#031317d9);backdrop-filter:blur(5px);display:grid;place-items:center;pointer-events:auto}.dialog-card{position:relative;width:min(660px,90vw);max-height:90vh;overflow-y:auto;text-align:center;padding:30px 42px 28px;border:1px solid #b69b639c;background:linear-gradient(145deg,#1c3c3eee,#102b33fa 65%,#1b3738f5);box-shadow:inset 0 0 0 5px #0b242c,inset 0 0 0 6px #96815150,0 30px 90px #03171c;scrollbar-width:thin;scrollbar-color:#8c815b #132b30}.dialog-card::before,.dialog-card::after{content:'◆';position:absolute;top:14px;color:#ac9154;font-size:8px}.dialog-card::before{left:14px}.dialog-card::after{right:14px}.dialog-seal{display:grid;place-items:center;width:59px;height:59px;margin:0 auto 17px;border:1px solid #bda0628c;border-radius:50%;box-shadow:inset 0 0 0 5px #162f31,inset 0 0 0 6px #a4894a50,0 0 30px #d2b35915;font-family:var(--serif);font-size:33px;color:var(--gold)}.dialog-card>small{font-size:9px;letter-spacing:3px;color:#bba271}.dialog-card h2{font-family:var(--serif);font-size:34px;font-weight:400;color:var(--pale);letter-spacing:2px;margin:13px 0 16px;line-height:1.3}.dialog-card>p{font-size:12px;line-height:1.9;color:#b4c8bc;margin:0 auto 22px;white-space:pre-line;max-width:500px}.dialog-card .primary{margin:0 auto;min-width:260px;justify-content:space-between}.dialog-card>.text-button{display:block;margin:auto}.run-card{color:var(--gold)}#retryModels{color:var(--gold)}#retryModels:disabled{opacity:.5}#dialog[data-mode=tutorial] .dialog-card,#dialog[data-mode=sectorClear] .dialog-card{width:min(820px,92vw)}#dialog[data-mode=tutorial] #dialogBody{display:none}#tutorialSteps{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:25px 0 22px}#tutorialSteps article{position:relative;padding:21px 12px 17px;border:1px solid #8b986448;background:linear-gradient(180deg,#2a48424d,#102c3350)}#tutorialSteps article>small{position:absolute;top:9px;left:10px;font-size:9px;color:#a08e61}.tutorial-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 17px;border:1px solid #bca06185;font-family:var(--serif);font-size:25px;color:var(--gold);background:#24403a60}#tutorialSteps strong{display:block;font-size:13px;letter-spacing:1px;font-weight:400;color:var(--pale)}#tutorialSteps article p{font-size:11px;line-height:1.7;color:#a3bbae;margin:9px 0 0}.tutorial-controls{grid-column:1/-1;font-size:10px;letter-spacing:1px;color:#8fac9d;padding:9px;border-top:1px solid #a1975840}#upgradeChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:23px 0 26px}.upgrade-choice{position:relative;text-align:center;padding:22px 13px 18px;background:linear-gradient(160deg,#2a4944bb,#12313bcc);border:1px solid #ac995a60;transition:background .15s,border-color .15s;min-height:195px}.upgrade-choice::after{content:'◆';position:absolute;top:7px;right:8px;font-size:6px;color:#927e51}.upgrade-choice:hover,.upgrade-choice.selected{background:linear-gradient(160deg,#556044cc,#1a453ecc);border-color:var(--gold)}.upgrade-icon{display:grid;place-items:center;border:1px solid #b6a35e7a;width:49px;height:49px;border-radius:50%;font-size:26px;color:var(--gold);margin:0 auto 15px;background:#16343b80}.upgrade-choice strong{display:block;font-family:var(--serif);font-size:17px;line-height:1.4;letter-spacing:1px;font-weight:400;color:var(--pale)}.upgrade-choice small{display:block;font-size:11px;line-height:1.7;letter-spacing:0;color:#b9cbb8;margin-top:10px}.upgrade-choice em{display:block;font-size:8px;letter-spacing:2px;font-style:normal;margin-top:19px;padding-top:12px;border-top:1px solid #b3a16a35;color:#c6b77e}.upgrade-choice.selected{grid-column:1/-1;max-width:280px;justify-self:center;width:100%}#runStats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 28px;padding:18px 0;border-top:1px solid #a48d5755;border-bottom:1px solid #a48d5755}#runStats strong{display:block;font-family:var(--serif);font-size:26px;color:var(--pale);font-weight:400}#runStats small{display:block;font-size:9px;letter-spacing:1px;color:#8eae9e;margin-top:8px}#dialog[data-mode=won] .dialog-seal{font-size:40px;width:72px;height:72px;color:#f0d197}#dialog[data-mode=won] #dialogBody{font-size:11px;color:#9ab5a5;max-width:430px}#dialog[data-mode=journal] .dialog-card,#dialog[data-mode=journalWon] .dialog-card{max-width:700px}#dialog[data-mode=journal] #dialogBody,#dialog[data-mode=journalWon] #dialogBody{text-align:left;font-size:12px}
#touchControls{position:fixed;inset:0;z-index:15;pointer-events:none}#joystick{position:absolute;left:26px;bottom:150px;width:104px;height:104px;border-radius:50%;border:1px solid #bcb78578;box-shadow:inset 0 0 0 7px #112f3670,inset 0 0 0 8px #a2bb8b25;background:#10313c99;pointer-events:auto;touch-action:none}#stick{position:absolute;width:38px;height:38px;left:32px;top:32px;border-radius:50%;background:radial-gradient(circle,#b5c3a390,#527c6590);border:1px solid #c1c49770;box-shadow:0 0 20px #9adcce2a}#touchControls button{position:absolute;border-radius:50%;background:radial-gradient(circle,#315547d9,#12313ae8);border:1px solid #c4bd895f;box-shadow:inset 0 0 0 5px #15363b80,inset 0 0 0 6px #c4bd892a;font-size:30px;color:var(--pale);pointer-events:auto;touch-action:none}#touchFire{right:26px;bottom:150px;width:76px;height:76px}#touchDash{right:116px;bottom:150px;width:52px;height:52px}#loadError{position:fixed;z-index:99;inset:20%;padding:30px;background:#17343b;color:#fff}#viewStatus{font-size:9px;letter-spacing:0;color:#dfc58e;white-space:nowrap}
@media(max-width:1100px) and (min-width:761px){.start-copy{left:6%;width:390px;max-width:48vw}.health{width:205px;grid-template-columns:50px 1fr 29px}.portrait{width:50px;height:50px}.health b{font-size:16px}#keyboardHelp{max-width:210px}.sector-label{width:286px}.sector-progress i{width:39px}#bossHud{width:275px}.intro-line{font-size:20px}}
@media(max-width:760px){.topbar{right:14px;top:14px}.top-actions{gap:5px}.top-actions button{font-size:10px;height:32px;min-width:32px;padding:0 8px}.start-copy{left:8%;top:18%;width:330px;max-width:84vw}.menu-sigil{width:58px;height:58px}.menu-sigil img{width:43px;height:43px}h1{font-size:clamp(43px,11.3vw,60px);letter-spacing:3px}html[lang=en] h1{font-size:46px}.game-subtitle{font-size:11px;letter-spacing:4px}.eyebrow{font-size:9px;letter-spacing:2px}.title-ornament{max-width:285px;margin:22px 0}.intro-line{font-size:19px;letter-spacing:1px}.intro-desc{font-size:12px;margin-bottom:23px}.start-copy .primary,.checkpoint-button{width:min(300px,100%)}.intro-controls{font-size:9px;gap:9px;flex-wrap:wrap}.vertical-note{display:none}.start-footer{left:15px;right:15px;bottom:17px;font-size:7px;letter-spacing:.8px}.start-footer span:last-child{display:none}.start-footer a{font-size:9px;padding:9px 13px}.sector-label{left:14px;top:60px;width:225px;padding:10px 11px 22px}#sectorName{font-size:15px;letter-spacing:1px}.sector-label p{font-size:10px;line-height:1.5;min-height:30px;max-width:205px}.sector-progress{left:25px;top:143px;gap:4px}.sector-progress i{width:32px}.run-progress{left:25px;top:160px;gap:10px;font-size:9px}.echo-roster{right:14px;top:62px}.echo-roster>small{font-size:8px;letter-spacing:1px}.echo-roster>div{display:grid;grid-template-columns:repeat(2,32px);gap:4px;margin-top:7px}.echo-slot{width:32px;height:41px}.echo-slot img{height:29px}.echo-slot b{font-size:7px;line-height:12px}#relayStatus{right:14px;top:194px;min-width:120px;font-size:9px;padding:3px 7px}.relay-row{gap:6px;margin:9px 0}.loop-clock{bottom:14px;width:80px;height:80px}.loop-clock::after{inset:9px}.loop-clock>div{inset:21px 0}.loop-clock strong{font-size:20px}.loop-clock small{font-size:7px;letter-spacing:0}.health{left:14px;bottom:105px;width:184px;padding:5px 9px 5px 4px;grid-template-columns:43px 1fr 26px;grid-template-rows:22px 12px;gap:2px 8px}.portrait{height:43px;width:43px}.health>span{font-size:8px;letter-spacing:1px}.health b{font-size:15px}#upgradeRoster{left:14px;bottom:162px;max-width:190px;gap:4px}#upgradeRoster span{font-size:8px;padding:3px 5px}.bottom-bar{left:14px;right:14px;bottom:100px;justify-content:flex-end}#keyboardHelp{display:none}#rewind{left:14px;bottom:29px;width:calc(50% - 63px);min-height:56px;padding:10px 8px;grid-template-columns:24px auto}#rewind>span{font-size:27px}#rewind>b{font-size:10px;letter-spacing:1px}#rewind small{font-size:8px}#resonate{left:auto;right:14px;bottom:29px;width:calc(50% - 63px);min-height:56px;padding:10px;font-size:9px;gap:8px 5px}.score{min-width:75px;padding:6px 9px}.score b{font-size:19px;letter-spacing:2px}.score small{font-size:7px}#joystick{left:21px;bottom:218px;width:92px;height:92px}#stick{left:26px;top:26px}#touchFire{right:21px;bottom:217px;width:72px;height:72px}#touchDash{right:107px;bottom:226px;width:49px;height:49px}#bossHud{top:181px;width:216px;padding:8px 6px}#bossHud small{font-size:9px;letter-spacing:.5px}#bossCue{font-size:8px;letter-spacing:.5px}#toast{top:293px;max-width:86vw;width:max-content;font-size:10px;padding:10px 18px}.dialog-card{width:92vw;padding:24px 19px 22px;max-height:92vh}.dialog-seal{width:50px;height:50px;font-size:28px;margin-bottom:14px}.dialog-card h2{font-size:27px;letter-spacing:1px;margin:12px 0 15px}.dialog-card>small{font-size:8px;letter-spacing:1px}.dialog-card>p{font-size:11px;line-height:1.7;margin-bottom:18px}.dialog-card .primary{min-width:240px;font-size:12px;padding:13px 17px}.dialog-card .text-button{font-size:10px}.tutorial-icon{width:40px;height:40px;font-size:20px;margin-bottom:12px}#tutorialSteps{gap:7px;margin:19px 0}#tutorialSteps article{padding:25px 7px 14px}#tutorialSteps strong{font-size:11px;letter-spacing:0}#tutorialSteps article p{font-size:10px;line-height:1.6}.tutorial-controls{font-size:8px;letter-spacing:0;line-height:1.7}#upgradeChoices{gap:7px;margin:18px 0 22px}.upgrade-choice{padding:20px 7px 12px;min-height:192px}.upgrade-icon{width:40px;height:40px;font-size:23px;margin-bottom:12px}.upgrade-choice strong{font-size:14px;letter-spacing:0}.upgrade-choice small{font-size:10px}.upgrade-choice em{font-size:7px;letter-spacing:.5px;margin-top:15px}#runStats{gap:6px}#runStats strong{font-size:21px}#runStats small{font-size:8px}}
@media(max-height:720px) and (min-width:761px){.start-copy{top:13%}.menu-sigil{width:52px;height:52px;margin-bottom:15px}.menu-sigil img{width:39px;height:39px}h1{font-size:58px}html[lang=en] h1{font-size:52px}.title-ornament{margin:16px 0}.intro-line{font-size:20px}.intro-desc{font-size:11px;margin-bottom:18px}.intro-controls{margin-top:15px}.primary{padding:13px 20px}.dialog-seal{width:48px;height:48px;font-size:27px;margin-bottom:12px}.dialog-card{padding:23px 35px}.dialog-card h2{font-size:29px;margin:12px 0}.dialog-card>p{font-size:11px;margin-bottom:17px}#tutorialSteps{margin:17px 0 19px}.upgrade-choice{min-height:180px;padding:17px 12px}.upgrade-icon{width:43px;height:43px;margin-bottom:12px}}
@media(max-height:600px){.start-copy{left:7%;top:14%;max-width:52vw}.menu-sigil{display:none}h1{font-size:47px}html[lang=en] h1{font-size:40px}.game-subtitle{font-size:10px;margin-top:7px}.eyebrow{margin-bottom:10px}.title-ornament{margin:12px 0;max-width:240px}.intro-line{font-size:16px;margin-bottom:8px}.intro-desc{font-size:10px;line-height:1.65;margin-bottom:13px}.start-copy .primary{padding:10px 15px;min-width:220px;width:245px;font-size:11px}.checkpoint-button{padding:9px;width:245px}.intro-controls{display:none}.start-footer{bottom:10px}.topbar{top:12px}.dialog-card{max-height:93vh;padding:20px 24px}.dialog-seal{width:38px;height:38px;font-size:23px;margin-bottom:9px}.dialog-card h2{font-size:25px;margin:9px 0}.dialog-card>p{font-size:10px;margin-bottom:12px}.dialog-card .primary{padding:10px 17px;font-size:11px}#tutorialSteps{margin:14px 0;gap:10px}#tutorialSteps article{padding:12px 10px}.tutorial-icon{height:35px;width:35px;font-size:19px;margin-bottom:8px}#tutorialSteps strong{font-size:11px}#tutorialSteps article p{font-size:10px}.tutorial-controls{padding:5px;font-size:8px}.upgrade-choice{min-height:153px;padding:12px}.upgrade-icon{width:36px;height:36px;font-size:22px;margin-bottom:8px}.upgrade-choice strong{font-size:14px}.upgrade-choice small{font-size:10px;margin-top:7px}.upgrade-choice em{margin-top:10px;padding-top:7px}#upgradeChoices{margin:14px 0;gap:10px}}
@media(orientation:landscape) and (max-height:600px){.topbar{right:12px;top:10px}.top-actions button{height:30px}.sector-label{left:12px;top:12px;width:230px;padding:9px 11px 17px}#sectorName{font-size:13px}.sector-label p{font-size:9px;line-height:1.5;min-height:26px;margin-top:5px}.sector-progress{left:24px;top:80px}.sector-progress i{width:32px}.run-progress{left:24px;top:96px;font-size:8px}.echo-roster{top:49px;right:12px}.echo-roster>div{display:flex}.echo-slot{width:29px;height:39px}.echo-slot img{height:27px}#relayStatus{top:123px;right:12px;font-size:8px}.relay-row{margin:7px 0}.loop-clock{bottom:13px;width:65px;height:65px}.loop-clock>div{inset:16px 0}.loop-clock strong{font-size:17px}.loop-clock small{font-size:6px}#rewind{left:calc(50% - 171px);bottom:22px;width:123px;min-height:48px;padding:8px;grid-template-columns:24px auto}#rewind b{font-size:9px}#rewind small{font-size:7px}#resonate{left:calc(50% + 49px);right:auto;bottom:22px;width:123px;min-height:48px;padding:9px;font-size:8px}.health{left:12px;bottom:13px;width:165px;grid-template-columns:38px 1fr 24px;grid-template-rows:20px 10px}.portrait{height:38px;width:38px}.health b{font-size:13px}.health>span{font-size:7px}#upgradeRoster{left:12px;bottom:64px;max-width:175px}.bottom-bar{bottom:12px;right:12px}.score{min-width:67px}.score b{font-size:16px}.score small{font-size:6px}#joystick{left:23px;bottom:92px;width:83px;height:83px}#stick{left:21px;top:21px}#touchFire{right:22px;bottom:91px;width:64px;height:64px}#touchDash{right:103px;bottom:99px;width:46px;height:46px}#bossHud{top:14px;width:240px}#bossHud small{font-size:8px}#bossCue{font-size:7px}#toast{top:122px;max-width:55vw;font-size:9px}.start-copy{max-width:48vw}.dialog-card{width:85vw}#dialog[data-mode=tutorial] .dialog-card,#dialog[data-mode=sectorClear] .dialog-card{width:85vw}#tutorialSteps article{padding-top:20px}}
@media(prefers-reduced-motion:reduce){#flash{display:none}.primary,#toast,.upgrade-choice{transition:none}}
.bottom-bar #keyboardHelp{position:fixed;left:24px;bottom:15px}
.bottom-bar .score{margin-left:auto}
.topbar{z-index:40}
@media(orientation:landscape) and (max-height:600px){.bottom-bar #keyboardHelp{display:none}}

@media(max-width:760px) and (orientation:portrait){#bossHud{top:253px}#bossHud:not([hidden])~*{pointer-events:none}}
