@font-face{font-family:Cormorant;src:url('./fonts/cormorant-garamond-latin.5d618c462b7a.woff2')}@font-face{font-family:DM;src:url('./fonts/dm-sans-latin.468d56b6b25b.woff2')}
:root{color-scheme:dark;--cream:#fff1d4;--gold:#efbe68;--ink:#18303d;--teal:#70cec9}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--ink);font-family:DM,system-ui,sans-serif;color:var(--cream)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid var(--teal);outline-offset:5px}button{color:inherit}a{color:inherit}[hidden]{display:none!important}#game{position:relative;height:100svh;min-height:480px;overflow:hidden;isolation:isolate}#scene{position:absolute;inset:0;width:100%;height:100%;touch-action:none}header{position:absolute;z-index:5;inset:max(18px,env(safe-area-inset-top)) 4vw auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:10px;letter-spacing:2.2px;font-weight:700}.brand small{display:block;font-size:9px;letter-spacing:2.8px;margin-top:5px;opacity:.6}.brand-mark{font-size:34px;color:var(--gold)}.header-actions{display:flex;gap:9px;align-items:center}.header-actions button{border:1px solid #fff1d440;background:#142c37a8;border-radius:30px;padding:11px 17px;min-height:44px;font-size:12px;backdrop-filter:blur(6px)}#pause{font-size:18px;min-width:44px}.home{position:absolute;inset:0;background:linear-gradient(90deg,#142d3df5 0%,#142d3deb 34%,#142d3d40 70%,transparent);display:flex;align-items:center;padding:100px 8vw 85px}.home-copy{z-index:2;max-width:640px;width:54%}.eyebrow{font-size:10px;letter-spacing:2.7px;color:var(--gold);font-weight:700;line-height:1.6}h1,h2{font-family:Cormorant,Georgia,serif;font-weight:500;line-height:.98;letter-spacing:-2px}h1{font-size:clamp(55px,6.5vw,98px);margin:21px 0 24px}em{color:var(--gold);font-weight:400}p{line-height:1.7}.intro{font-size:15px;color:#e6e3d8c7}.invitation{font-family:Cormorant,Georgia,serif;font-size:25px;margin:10px 0 28px}fieldset{padding:0;border:0;margin:0;max-width:450px}legend{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;margin-bottom:12px;color:#e6e3d899}.levels{display:flex;border:1px solid #fff1d432;border-radius:12px;overflow:hidden}.level{flex:1;min-width:0;border:0;border-right:1px solid #fff1d423;background:#18323a55;padding:12px 10px;text-align:left;transition:background .2s}.level:last-child{border:0}.level.selected{background:#e9b95b;color:#24353a}.level b{display:block;font-family:Cormorant,Georgia,serif;font-size:23px;font-weight:600}.level small{display:block;font-size:10px;margin-top:4px;white-space:nowrap}.detail{font-size:11px;color:#e4dcc5a6;min-height:20px;margin:10px 0 16px;max-width:420px}.primary{padding:15px 27px;border:1px solid #f8d58c;background:linear-gradient(120deg,#f6d491,#e9ad53);color:#24333b;border-radius:6px;min-height:50px;font-weight:700;font-size:14px;box-shadow:0 5px 25px #0002}.primary:hover{filter:brightness(1.08)}.text-button{display:block;background:none;border:0;font-size:11px;color:#efe4c5af;padding:12px 0;min-height:44px}.home-art{position:absolute;width:49%;height:75%;left:49%;top:14%;display:flex;align-items:center;justify-content:center;pointer-events:none}.home-art img{position:relative;z-index:2;width:115%;max-height:100%;object-fit:contain;filter:drop-shadow(0 18px 25px #25171c44);animation:float 6s ease-in-out infinite}.art-caption{position:absolute;bottom:0;font-size:8px;letter-spacing:3px;opacity:.6}.orbit{position:absolute;border:1px solid #eaba6633;border-radius:50%;width:80%;aspect-ratio:1;transform:rotate(-25deg)}.orbit-two{width:105%;border-color:#eaba661a}.home-footer{position:absolute;bottom:24px;left:8vw;right:8vw;display:flex;gap:35px;justify-content:space-between;border-top:1px solid #fff1d422;padding-top:18px;font-size:9px;letter-spacing:1.6px;color:#f4e6c77a}
#hud{position:absolute;z-index:2;left:5vw;right:5vw;top:92px;display:flex;justify-content:space-between;pointer-events:none}.chapter small{display:block;color:var(--gold);font-size:10px;letter-spacing:2px}.chapter b{display:block;font:500 29px Cormorant,Georgia,serif;margin-top:5px;text-shadow:0 2px 12px #071b30}.hud-right{width:170px;background:#142d3da6;border:1px solid #eedeb52a;border-radius:9px;padding:11px 13px}.energy-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.3px;align-items:center}.energy-label b{font-size:15px;color:var(--gold)}.meter{height:5px;border-radius:4px;background:#ffffff26;margin:6px 0 7px;overflow:hidden}.meter i{display:block;background:linear-gradient(90deg,#8bd8ce,#f1d08a);height:100%;width:100%}#score{font-size:8px;color:#f0e7d5ad}.route{position:absolute;top:88px;left:0;right:0;background:#f8deb929;height:2px}.route i{display:block;width:0;height:2px;background:var(--gold)}.route span{position:absolute;right:0;top:-10px;color:var(--gold);font-size:20px}#notice{position:absolute;z-index:3;bottom:140px;left:50%;transform:translateX(-50%);background:#122735e8;border:1px solid #edc87c55;border-radius:30px;padding:11px 24px;text-align:center;max-width:90vw;font-size:12px;width:max-content;box-shadow:0 4px 20px #0003;pointer-events:none}#controls{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));left:5vw;right:5vw;display:flex;align-items:end;justify-content:space-between;pointer-events:none}#steer-hint{font-size:11px;letter-spacing:.5px;color:#fff3d6ab;text-shadow:0 2px 4px #000}.dash{pointer-events:auto;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#ffde99,#dc963d);color:#273646;border:2px solid #ffe4a1;box-shadow:0 0 0 7px #f4c46918,0 6px 22px #0004;display:flex;align-items:center;justify-content:center;flex-direction:column;touch-action:none}.dash span{font-size:24px;line-height:1}.dash b{font-size:13px;letter-spacing:1.6px;margin:3px 0}.dash small{font-size:7px;letter-spacing:.6px}.dash.cooldown{filter:saturate(.4);opacity:.7}.panel{position:absolute;inset:0;z-index:8;background:#0e2634b8;backdrop-filter:blur(7px);display:grid;place-items:center;padding:24px;overflow:auto}.panel-card{max-width:570px;width:100%;padding:38px 42px;background:linear-gradient(150deg,#203e49,#122935);border:1px solid #f3c77966;border-radius:15px;box-shadow:0 20px 100px #0005;text-align:center}.panel-card h2{font-size:52px;margin:16px 0 24px;outline:none}.panel-card p{font-size:14px;color:#ebe4d1d9}.panel-card .verse{font:23px/1.5 Cormorant,Georgia,serif;color:var(--gold);padding:16px 0;border-top:1px solid #e5c68b44;border-bottom:1px solid #e5c68b44}.panel-card .small{font-size:11px;opacity:.75}.panel-card button{margin:6px}.panel-card .text-button{margin:0 auto}.badges{display:flex;justify-content:center;gap:9px;margin:18px 0}.badge{padding:10px;background:#edc4771a;border:1px solid #edc47755;border-radius:8px;font-size:10px;color:var(--gold)}dialog{max-width:560px;width:90%;max-height:85svh;overflow:auto;background:#17313e;color:var(--cream);border:1px solid #e6bc73;border-radius:12px;padding:30px}dialog::backdrop{background:#00131cc9;backdrop-filter:blur(5px)}dialog h2{font-size:42px}dialog p{font-size:13px}dialog a{font-size:12px;color:var(--gold)}.close{float:right;background:none;border:0;font-size:25px;min-width:44px;min-height:44px}
@keyframes float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(1deg)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media(max-width:700px){#game{min-height:540px}.brand{font-size:8px;letter-spacing:1.3px;gap:7px}.brand small{font-size:7px;letter-spacing:1.8px}.brand-mark{font-size:27px}header{left:5vw;right:5vw;top:max(12px,env(safe-area-inset-top))}.header-actions button{padding:9px 12px;font-size:10px}.home{padding:82px 7vw 30px;align-items:flex-start;overflow:auto;background:linear-gradient(180deg,#142d3d65,#142d3df5 50%)}.home-copy{width:100%;max-width:none;padding-top:min(36svh,290px);text-align:center}.home-art{left:19%;top:53px;width:66%;height:min(36svh,290px)}.home-art img{width:110%}.art-caption,.home-footer{display:none}.eyebrow{font-size:8px;letter-spacing:1.8px}h1{font-size:47px;letter-spacing:-1.2px;margin:12px 0}.intro{font-size:12px;margin:10px 0}.desktop{display:none}.invitation{display:none}fieldset{margin:20px auto 0}legend{font-size:9px;margin:auto auto 9px}.levels{text-align:left}.level{padding:8px}.level b{font-size:22px}.level small{font-size:8px}.detail{font-size:10px;margin:8px auto;min-height:28px}.home .primary{width:100%;max-width:440px}.home .text-button{margin:auto;padding:8px}.home #load-status:empty{display:none}.chapter b{font-size:23px}.chapter small{font-size:8px}.hud-right{width:140px;padding:8px 10px}#hud{top:80px}.route{top:80px}.dash{width:78px;height:78px}#steer-hint{max-width:190px;font-size:10px;line-height:1.6}#notice{bottom:130px;font-size:11px;padding:10px 16px;max-width:88%;white-space:normal}.panel-card{padding:25px 22px}.panel-card h2{font-size:42px}.panel-card p{font-size:12px}.panel-card .verse{font-size:21px}.panel-card .primary{width:100%}.badges{flex-wrap:wrap}.badge{font-size:9px}}
@media(max-height:650px) and (min-width:701px){.home{padding-top:80px}.home-copy h1{font-size:56px;margin:10px 0}.intro{font-size:12px;margin:5px 0}.invitation{font-size:20px;margin:5px 0 12px}.home-footer{display:none}.home-art{top:13%;height:80%}.detail{margin:6px 0}.home .text-button{padding:5px 0}.home .eyebrow{margin:3px 0}.level{padding:8px}.home #load-status:empty{display:none}}
#game{min-height:0}
@media(max-height:450px){header{top:8px}.home{overflow:auto;padding-top:72px}.home-copy{padding-top:0}.home-copy h1{font-size:42px}.home-art{top:60px;height:77%}.intro{font-size:11px}.invitation{display:none}.level b{font-size:19px}.level small{font-size:8px}.primary{min-height:44px;padding:10px 22px}.home .eyebrow{font-size:8px}.home-copy fieldset{margin-top:12px}.home-copy .detail{font-size:9px}.home-footer{display:none}#hud{top:62px}.chapter b{font-size:20px}.chapter small{font-size:8px}.hud-right{padding:5px 10px}.route{top:65px}#controls{bottom:14px}.dash{width:68px;height:68px}#notice{bottom:90px;font-size:10px;padding:8px 18px}.panel{place-items:start center;padding:16px}.panel-card{padding:20px 26px}.panel-card h2{font-size:36px;margin:10px 0}.panel-card p{font-size:12px}}
body{overscroll-behavior:none}.health{display:flex;justify-content:space-between;align-items:center;gap:5px;padding-bottom:8px;margin-bottom:7px;border-bottom:1px solid #fff1d426}.health>span{font-size:7px;letter-spacing:.8px}.health b{font-size:16px;letter-spacing:1px;color:#ffc0ab;line-height:1.2}.health b:only-child{font-size:12px}.health.last-heart b{color:#ff9e84}#health[aria-label^="Story"] b{font-size:10px;letter-spacing:0;color:var(--teal)}.route{top:118px}.chapter{max-width:calc(100% - 185px)}.how-to-play{text-align:left;background:#071e2944;border:1px solid #e9c17833;border-radius:9px;padding:2px 15px;margin:15px 0}.how-to-play p{font-size:12px;margin:12px 0}.how-to-play b{color:#ffe1a1}.how-to-play .heart-rule{padding:10px 0;border-top:1px solid #edc47733;border-bottom:1px solid #edc47733}.panel{align-items:safe center;overscroll-behavior:contain;touch-action:pan-y}.panel-card{flex-shrink:0}.dash,button{user-select:none;-webkit-user-select:none}.level{min-height:44px}header{left:max(4vw,env(safe-area-inset-left));right:max(4vw,env(safe-area-inset-right))}#hud,#controls{left:max(5vw,env(safe-area-inset-left));right:max(5vw,env(safe-area-inset-right))}#controls{bottom:max(26px,env(safe-area-inset-bottom))}
@media(max-width:700px){.chapter{max-width:calc(100% - 152px)}.chapter b{font-size:21px}.health{padding-bottom:6px;margin-bottom:5px}.health b{font-size:15px;letter-spacing:.6px}.health>span{font-size:7px}.how-to-play{padding:0 12px;margin:12px 0}.how-to-play p{font-size:12px;line-height:1.6}.panel-card h2{font-size:37px}.route{top:112px}}
@media(max-height:450px){.panel{align-items:start}.route{top:107px}.health{padding-bottom:4px;margin-bottom:4px}#controls{bottom:max(14px,env(safe-area-inset-bottom))}.panel-card{max-width:650px}.how-to-play p{font-size:12px}.chapter{max-width:60%}}
@media(max-height:450px) and (orientation:landscape){.home-copy{width:58%;padding-top:0;text-align:left}.home-art{left:61%;width:37%;top:55px;height:75%}.home-copy h1{font-size:36px}.home-copy fieldset{margin:12px 0 0}.home-copy legend{margin:0 0 8px}.home .primary{width:auto}.home .text-button{margin:0}.home .detail{margin:8px 0}.art-caption{display:none}}
.panel-card{display:flex;flex-direction:column;max-height:calc(100svh - 48px)}.panel-card>.eyebrow,.panel-card>h2,#panel-actions{flex-shrink:0}#panel-copy{overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c5a564 #17313e}#panel-actions{padding-top:8px}.panel-card>.eyebrow{margin-top:0}.panel-card .primary{max-width:100%;margin-left:0;margin-right:0}#panel-copy:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}
.health.heart-lost{background:#863e343d;outline:2px solid #ffb69a;border-radius:4px}.dash.active{background:#ffe4a3;box-shadow:0 0 0 7px #f4c46955,0 0 24px #ffc97488}.retry-cause{border:1px solid #ffc6a65c;border-radius:8px;background:#92493726;padding:13px;color:#ffe1ce!important}
@media(max-height:450px){.panel-card{max-height:calc(100svh - 32px);padding:16px 24px}.panel-card>.eyebrow{margin-bottom:4px}.panel-card h2{font-size:30px;margin:4px 0 8px}#panel-actions{padding-top:4px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px}.panel-card #panel-actions button{margin:0;width:auto}.panel-card .text-button{padding:8px 0}}

.panel.illustrated .panel-card{max-width:760px;padding:24px}.panel.illustrated h2{font-size:clamp(28px,5vw,42px);margin:8px 0 16px}.story-art{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;border-radius:9px;background:#203c48}.story-caption p{margin:14px 0 8px}.story-caption .small{margin-bottom:0}
@media(max-width:480px){.panel.illustrated .panel-card{padding:18px}.panel.illustrated .eyebrow{font-size:9px;letter-spacing:1.2px}}
@media(max-height:450px) and (min-width:500px){.panel.illustrated .panel-card{padding:14px 20px}.panel.illustrated #panel-copy{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;align-items:start}.story-caption p{margin-top:0}.panel.illustrated h2{font-size:26px;margin:4px 0 8px}}
