:root{--moonlit-night-deep:#050712;--moonlit-night:#11152b;--moonlit-night-soft:#1b2140;--moonlit-cream:#eee7c5;--moonlit-text:#e8e7df;--moonlit-text-muted:#aeb3c2;--moonlit-sage:#78986c;--moonlit-glow:#d8d69a;--moonlit-sky:#86b2b8;--moonlit-lavender:#8d86b8;--moonlit-focus-ring:#f0dda2}*{box-sizing:border-box}html,body,#app{background:var(--moonlit-night-deep,#020617);width:100%;height:100%;color:var(--moonlit-text,#e5e7eb);overscroll-behavior:none;touch-action:none;-webkit-tap-highlight-color:transparent;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.game-root{width:100%;height:100%;position:relative}canvas{touch-action:none;width:100%;height:100%;display:block}.hud{z-index:90;top:max(16px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));right:max(66px, calc(var(--story-safe-right,env(safe-area-inset-right,0px)) + 56px));pointer-events:none;text-shadow:0 2px 8px #000c;opacity:1;gap:6px;transition:opacity .8s,transform .8s;display:grid;position:absolute;transform:translateY(0)}.touch-controls{z-index:85;pointer-events:none;opacity:1;visibility:visible;transition:opacity .25s,visibility .25s;display:none;position:absolute;inset:0}.touch-controls--disabled{opacity:0;visibility:hidden}.touch-controls__base{left:max(20px, env(safe-area-inset-left));bottom:max(24px, env(safe-area-inset-bottom));opacity:.58;background:radial-gradient(circle,#12202057,#030a0f8f);border:2px solid #ffefbe42;border-radius:50%;width:116px;height:116px;transition:opacity .18s,transform .18s;position:absolute;box-shadow:inset 0 0 28px #00000052,0 8px 30px #0000003d}.touch-controls.is-engaged .touch-controls__base{opacity:1;transform:scale(1.04)}.touch-controls__knob{background:radial-gradient(circle at 38% 32%,#d9ca92,#8c8059);border:1px solid #ffedb8a3;border-radius:50%;width:52px;height:52px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 18px #0000006b}.hud.hud--hidden{opacity:0;transform:translateY(-14px)}.hud__title{letter-spacing:-.04em;font-size:clamp(24px,5vw,42px);font-weight:900}.hud__objective{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:1;background:linear-gradient(145deg,#080e18e8,#0e191bd1);border:1px solid #e8c76a66;border-radius:17px;align-items:center;gap:11px;width:min(220px,100vw - 32px);max-width:calc(100vw - 32px);padding:9px 14px 9px 9px;transition:opacity .35s,transform .35s;display:flex;position:absolute;top:2px;right:0;overflow:hidden;box-shadow:0 10px 32px #00000052,inset 0 1px #ffffff0d}.hud__objective--hidden{opacity:0;transform:translateY(-8px)}.hud__objective-compass{background:radial-gradient(circle,#e8c76a33,#e8c76a0d);border:1px solid #ffe69947;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid;box-shadow:inset 0 0 14px #e8c76a14}.hud__objective-arrow{color:#ffe699;transform-origin:50%;font-family:Arial,sans-serif;font-size:28px;font-weight:400;line-height:1;transition:transform .18s ease-out}.hud__objective-copy{min-width:0;line-height:1.15;display:grid}.hud__objective-kicker{color:#d1d3c2b3;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;margin-bottom:3px;padding-top:1px;font-size:8px;font-weight:800;line-height:1.35;overflow:visible}.hud__objective-label{color:#fff1c6;text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:14px;overflow:hidden}.hud__objective-distance{color:#cad3c7b8;letter-spacing:.04em;white-space:nowrap;margin-top:3px;font-size:9px;font-weight:650}.hud__move-coach{left:50%;bottom:max(34px, calc(env(safe-area-inset-bottom) + 18px));z-index:92;pointer-events:none;opacity:1;max-width:calc(100vw - 32px);transition:opacity .35s,transform .35s;position:fixed;transform:translate(-50%)}.hud__move-coach--hidden{opacity:0;transform:translate(-50%,10px)}.hud__move-coach-desktop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050c12db;border:1px solid #ffe69952;border-radius:16px;justify-items:center;width:min(240px,100vw - 32px);padding:14px 22px 13px;display:grid;box-shadow:0 14px 44px #0000006b}.hud__move-coach-kicker{color:#d3bc7a;letter-spacing:.17em;text-transform:uppercase;margin-bottom:7px;font-size:8px;font-weight:800}.hud__move-keys{align-items:center;gap:7px;margin-bottom:7px;display:flex}.hud__move-keys kbd{color:#fff1c6;background:#ffffff12;border:1px solid #fff2cd7a;border-radius:7px;place-items:center;width:29px;height:29px;font:700 13px/1 ui-sans-serif,system-ui,sans-serif;display:grid;box-shadow:inset 0 -3px #0003}.hud__move-keys span{color:#dddbd094;font-size:9px}.hud__move-coach strong,.hud__move-coach small{text-align:center;display:block}.hud__move-coach strong{color:#fff4d5;font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:600}.hud__move-coach small{color:#d8dcd8a8;letter-spacing:.035em;margin-top:2px;font-size:9px}.hud__move-coach-touch{display:none}.has-touch-input .hud__move-coach{left:max(16px, env(safe-area-inset-left));bottom:max(156px, calc(env(safe-area-inset-bottom) + 140px));transform:none}.has-touch-input .hud__move-coach--hidden{transform:translateY(10px)}.has-touch-input .hud__move-coach-desktop{display:none}.has-touch-input .hud__move-coach-touch{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050c12db;border:1px solid #ffe69952;border-radius:14px;width:min(180px,100vw - 32px);padding:12px 15px;display:block;position:relative;box-shadow:0 12px 38px #0000006b}.hud__joystick-pointer{color:#ffe699;text-shadow:0 3px 12px #000000bf;font-size:35px;line-height:1;animation:1.15s ease-in-out infinite point-to-joystick;position:absolute;bottom:-46px;left:48px}@keyframes point-to-joystick{0%,to{opacity:.62;transform:translateY(-4px)}50%{opacity:1;transform:translateY(5px)}}.story-intro{z-index:100;pointer-events:none;color:#f7f2e6;text-shadow:0 3px 18px #000000f2;position:fixed;inset:0;overflow:hidden}.story-intro__title-card{opacity:0;align-content:center;justify-items:center;gap:14px;padding:24px;transition:opacity 1.25s,transform 1.6s cubic-bezier(.16,1,.3,1);display:grid;position:absolute;inset:0;transform:translateY(18px)scale(.98)}.story-intro__title-card:before{content:"";z-index:-1;background:radial-gradient(#01040cb8,#0000 68%);position:absolute;inset:25% 0}.story-intro__title-card.is-visible{opacity:1;transform:translateY(0)scale(1)}.story-intro__title-card h1{text-align:center;letter-spacing:.11em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(31px,6.5vw,70px);font-weight:600;line-height:1.08}.story-intro__title-card p{color:#f0e7d3d1;letter-spacing:.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(16px,2.4vw,24px);font-style:italic}.story-intro__dialogue{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);opacity:0;background:#040a0fc2;border:1px solid #e6ddc238;border-radius:16px;justify-content:center;gap:9px;width:min(86vw,680px);padding:17px 22px;font-family:Georgia,Times New Roman,serif;font-size:clamp(16px,2.2vw,21px);transition:opacity .8s,transform .8s;display:flex;position:absolute;bottom:clamp(92px,15vh,150px);left:50%;transform:translate(-50%,16px);box-shadow:0 16px 50px #00000059}.story-intro__dialogue.is-visible{opacity:1;transform:translate(-50%)}.story-intro__dialogue strong{color:#d5bd77;white-space:nowrap}.story-intro.is-complete{opacity:0;transition:opacity .55s}.encounter-dialogue{z-index:120;pointer-events:none;opacity:0;transition:opacity .4s;position:fixed;inset:0}.encounter-dialogue.is-visible{opacity:1}.encounter-dialogue__panel{left:50%;bottom:max(clamp(26px, 8vh, 76px), calc(env(safe-area-inset-bottom) + 12px));-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);background:linear-gradient(145deg,#050c12f0,#0e1417e0);border:1px solid #e8c76a57;border-radius:18px;width:min(88vw,720px);min-height:142px;padding:22px 26px 19px;transition:transform .4s;position:absolute;transform:translate(-50%,14px);box-shadow:0 20px 70px #0000008c,inset 0 1px #ffffff0f}.encounter-dialogue.is-visible .encounter-dialogue__panel{transform:translate(-50%)}.encounter-dialogue__speaker{color:#e8c76a;letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px;font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:700}.encounter-dialogue__text{color:#fbf4df;font-family:Georgia,Times New Roman,serif;font-size:clamp(18px,2.6vw,25px);line-height:1.38}.narrator-card{z-index:125;pointer-events:none;opacity:0;visibility:hidden;background:radial-gradient(#030a0fa3,#0000 72%);place-items:center;padding:28px;transition:opacity .85s,visibility .85s;display:grid;position:fixed;inset:0}.narrator-card.is-visible{opacity:1;visibility:visible}.narrator-card__panel{color:#fbf3dc;text-align:center;text-shadow:0 3px 20px #000000f2;background:#040c11f0;border:1px solid #e8c76a7a;border-radius:22px;justify-items:center;gap:17px;width:min(88vw,850px);padding:clamp(30px,6vw,58px) clamp(25px,6vw,62px);transition:transform 1s cubic-bezier(.16,1,.3,1);display:grid;transform:translateY(16px);box-shadow:0 28px 90px #0000009e,inset 0 1px #ffffff0d}.narrator-card.is-visible .narrator-card__panel{transform:translateY(0)}.narrator-card__eyebrow{color:#e8c76a;letter-spacing:.2em;text-transform:uppercase;font-family:Georgia,Times New Roman,serif;font-size:12px;font-weight:700}.narrator-card__text{max-width:760px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(21px,3.2vw,31px);line-height:1.5}.exploration-thought{z-index:90;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;background:#040b10d1;border:1px solid #e8c76a38;border-radius:15px;justify-content:center;align-items:baseline;gap:10px;width:min(84vw,600px);padding:15px 21px;transition:opacity .45s,transform .45s;display:flex;position:fixed;bottom:clamp(32px,7vh,64px);left:50%;transform:translate(-50%,14px);box-shadow:0 15px 50px #0006}.exploration-thought.is-visible{opacity:1;transform:translate(-50%)}.exploration-thought__speaker{color:#e8c76a;letter-spacing:.12em;text-transform:uppercase;font-family:Georgia,Times New Roman,serif;font-size:13px;font-weight:700}.exploration-thought__text{color:#fbf4df;font-family:Georgia,Times New Roman,serif;font-size:clamp(16px,2.2vw,21px);line-height:1.35}.time-passage{z-index:95;pointer-events:none;color:#fff3cf;text-align:center;text-shadow:0 4px 24px #000000f2;opacity:0;visibility:hidden;background:radial-gradient(#040c127a,#0000 66%);align-content:center;justify-items:center;gap:10px;padding:24px;transition:opacity 1.1s,visibility 1.1s;display:grid;position:fixed;inset:0}.time-passage.is-visible{opacity:1;visibility:visible}.time-passage span{letter-spacing:.025em;font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,7vw,72px);font-style:italic}.time-passage small{color:#fff7e0c7;letter-spacing:.04em;font-family:Georgia,Times New Roman,serif;font-size:clamp(15px,2.2vw,21px)}.story-ending{z-index:140;pointer-events:none;color:#f8f0dc;opacity:0;visibility:hidden;background:radial-gradient(circle at 50% 42%,#182b23b8,#02060ff0 72%);place-items:center;padding:28px;transition:opacity 1.1s,visibility 1.1s;display:grid;position:fixed;inset:0}.story-ending.is-visible{opacity:1;visibility:visible;pointer-events:auto}.story-ending__card{text-align:center;background:linear-gradient(145deg,#050c12eb,#111b18db);border:1px solid #e8c76a4d;border-radius:24px;justify-items:center;gap:16px;width:min(90vw,760px);padding:clamp(32px,7vw,68px) clamp(24px,6vw,64px);transition:transform 1.2s cubic-bezier(.16,1,.3,1);display:grid;transform:translateY(18px)scale(.98);box-shadow:0 32px 100px #000000a3,inset 0 1px #ffffff0f}.story-ending.is-visible .story-ending__card{transform:translateY(0)scale(1)}.story-ending__eyebrow{color:#d6c28b;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(15px,2vw,20px);font-style:italic}.story-ending h2{color:#ffe7a0;letter-spacing:.025em;max-width:650px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(29px,6vw,58px);font-weight:500;line-height:1.1}.story-ending__moral{color:#f8f0dccc;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(17px,2.4vw,23px)}.story-ending strong{color:#f8f0dc;letter-spacing:.24em;text-transform:uppercase;margin-top:12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(18px,3vw,25px);font-weight:600}.story-ending__restart{color:#fff3cf;min-width:180px;font:inherit;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;background:#e8c76a1f;border:1px solid #ffe7a09e;border-radius:999px;margin-top:8px;padding:12px 22px;font-size:12px;font-weight:800;transition:background .2s,border-color .2s,transform .2s}.story-ending__restart:hover,.story-ending__restart:focus-visible{background:#e8c76a3d;border-color:#ffe7a0;outline:none;transform:translateY(-2px)}@media (width<=640px){.hud__title{max-width:38vw;font-size:clamp(18px,5.4vw,25px);line-height:1.05}.hud__objective{gap:7px;width:min(184px,100vw - 32px);max-width:calc(100vw - 32px);padding:6px 9px 6px 6px}.hud__objective-compass{width:34px;height:34px}.hud__objective-arrow{font-size:22px}.hud__objective-kicker{font-size:6px}.hud__objective-label{font-size:12px}.story-intro__dialogue{text-align:center;flex-direction:column;align-items:center}.hud__objective-distance{text-overflow:ellipsis;max-width:104px;font-size:8px;overflow:hidden}.encounter-dialogue__panel{min-height:132px;padding:19px 20px 16px}.encounter-dialogue__text{font-size:clamp(16px,4.8vw,21px)}.narrator-card{padding:max(16px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left))}.narrator-card__panel{gap:11px;max-height:82vh;padding:24px 19px;overflow-y:auto}.narrator-card__text{font-size:clamp(17px,5vw,23px);line-height:1.4}.story-ending{padding:max(14px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left))}.story-ending__card{gap:11px;padding:28px 20px}.exploration-thought{text-align:center;flex-direction:column;align-items:center;gap:5px}}@media (hover:none) and (pointer:coarse){.touch-controls{display:block}}.has-touch-input .touch-controls{display:block}@media (hover:none) and (pointer:coarse) and (orientation:landscape){.touch-controls__base{width:104px;height:104px}.touch-controls__knob{width:46px;height:46px}.encounter-dialogue__panel{bottom:max(14px, env(safe-area-inset-bottom));min-height:116px;padding:15px 20px 13px}}@media (orientation:landscape) and (height<=600px){.hud{top:max(8px, env(safe-area-inset-top));left:max(10px, env(safe-area-inset-left));right:max(62px, calc(var(--story-safe-right,env(safe-area-inset-right,0px)) + 54px))}.hud__title{max-width:34vw;font-size:clamp(17px,4.5vh,23px);line-height:1}.hud__objective{gap:7px;width:min(184px,46vw);padding:5px 9px 5px 5px}.hud__objective-compass{width:34px;height:34px}.hud__objective-arrow{font-size:22px}.hud__objective-kicker{font-size:6px}.hud__objective-label{font-size:12px}.hud__objective-distance{font-size:8px}.has-touch-input .touch-controls__base{left:max(12px, env(safe-area-inset-left));bottom:max(12px, env(safe-area-inset-bottom));width:88px;height:88px}.has-touch-input .touch-controls__knob{width:40px;height:40px}.has-touch-input .hud__move-coach{left:max(10px, env(safe-area-inset-left));bottom:max(112px, calc(env(safe-area-inset-bottom) + 100px))}.has-touch-input .hud__move-coach-touch{width:170px;padding:9px 12px}.hud__joystick-pointer{font-size:29px;bottom:-39px;left:37px}.story-intro__title-card{padding:12px max(18px, env(safe-area-inset-right)) 12px max(18px, env(safe-area-inset-left));gap:7px}.story-intro__title-card h1{font-size:clamp(28px,10vh,44px)}.story-intro__title-card p{font-size:clamp(13px,4vh,17px)}.story-intro__dialogue{bottom:max(16px, calc(env(safe-area-inset-bottom) + 8px));width:min(76vw,620px);padding:10px 16px;font-size:clamp(13px,3.8vh,17px)}.narrator-card{padding:max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}.narrator-card__panel{gap:7px;width:min(90vw,760px);max-height:calc(100dvh - 16px);padding:14px 24px;overflow-y:auto}.narrator-card__eyebrow{font-size:9px}.narrator-card__text{font-size:clamp(15px,4.8vh,20px);line-height:1.34}.encounter-dialogue__panel{bottom:max(8px, env(safe-area-inset-bottom));width:min(82vw,700px);min-height:0;max-height:calc(100dvh - 16px);padding:11px 18px 10px;overflow-y:auto}.encounter-dialogue__speaker{margin-bottom:4px;font-size:10px}.encounter-dialogue__text{font-size:clamp(14px,4.4vh,19px);line-height:1.28}.exploration-thought{bottom:max(10px, env(safe-area-inset-bottom));width:min(70vw,560px);padding:9px 15px}.story-ending{padding:max(7px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}.story-ending__card{gap:6px;max-height:calc(100dvh - 14px);padding:12px 24px;overflow-y:auto}.story-ending__eyebrow{font-size:12px}.story-ending h2{font-size:clamp(24px,7vh,36px)}.story-ending__moral{font-size:14px}.story-ending strong{margin-top:2px;font-size:15px}.story-ending__restart{margin-top:2px;padding:8px 18px}}@media (prefers-reduced-motion:reduce){.hud__joystick-pointer{animation:none}}.moonlit-ending.story-ending{z-index:150;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;opacity:0;visibility:hidden;pointer-events:none;background:radial-gradient(circle at 50% 42%,#222b2de0,#040a11f5 72%);place-items:center;transition:opacity .6s,visibility .6s;display:grid;position:fixed;inset:0;overflow:hidden}.moonlit-ending.story-ending.is-visible{opacity:1;visibility:visible;pointer-events:auto}.moonlit-ending .story-ending__ornament{color:#e5c875;filter:drop-shadow(0 0 14px #e5c8758c);font-size:17px;position:absolute;top:clamp(18px,7vh,66px)}.moonlit-ending .story-ending__card{background:linear-gradient(145deg,#0a1419f5,#141d1df0);border:1px solid #e5c87561;border-radius:22px;justify-items:center;gap:clamp(11px,2.4vh,20px);width:min(88vw,780px);padding:clamp(28px,6vw,58px);transition:transform .7s cubic-bezier(.16,1,.3,1);display:grid;transform:translateY(18px)scale(.98);box-shadow:0 28px 90px #0000008c,inset 0 1px #ffffff12}.moonlit-ending.is-visible .story-ending__card{transform:translateY(0)scale(1)}.moonlit-ending h2{color:#f5ecd3;letter-spacing:.015em;text-wrap:balance;gap:2px;max-width:720px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(31px,6vw,65px);font-style:normal;font-weight:600;line-height:1.03;display:grid}.moonlit-ending h2 span{color:inherit;font:inherit;letter-spacing:inherit;text-transform:none}.moonlit-ending .story-ending__divider{color:#d5b962;align-items:center;gap:10px;width:min(280px,65%);display:flex}.moonlit-ending .story-ending__divider span{background:linear-gradient(90deg,#0000,#d5b962b3);flex:1;height:1px}.moonlit-ending .story-ending__divider span:last-child{background:linear-gradient(90deg,#d5b962b3,#0000)}.moonlit-ending .story-ending__divider b{font-size:9px}.moonlit-ending .story-ending__moral{color:#eee6d0d1;text-wrap:balance;max-width:560px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(16px,2.2vw,21px);font-style:italic;line-height:1.5}.moonlit-ending .story-ending__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:4px;display:flex}.moonlit-ending .story-ending__actions button{color:#f5ecd3;letter-spacing:.04em;cursor:pointer;background:#e5c8751f;border:1px solid #e5c87573;border-radius:999px;min-width:138px;min-height:46px;margin:0;padding:0 24px;font:800 12px/1 Inter,ui-sans-serif,system-ui,sans-serif}.moonlit-ending .story-ending__actions button:first-child{color:#17201d;background:#d8bf75}.moonlit-ending .story-ending__actions button:focus-visible{outline-offset:3px;outline:3px solid #f1d98e}@media (orientation:landscape) and (height<=560px){.moonlit-ending.story-ending{padding:12px max(18px, env(safe-area-inset-right)) 12px max(18px, env(safe-area-inset-left))}.moonlit-ending .story-ending__ornament{display:none}.moonlit-ending .story-ending__card{gap:8px;width:min(80vw,690px);padding:16px 28px}.moonlit-ending h2{font-size:clamp(25px,7vh,39px)}.moonlit-ending .story-ending__moral{font-size:clamp(14px,3.8vh,18px)}.moonlit-ending .story-ending__actions button{min-height:40px}}@media (prefers-reduced-motion:reduce){.moonlit-ending.story-ending,.moonlit-ending .story-ending__card{transition-duration:.01ms}}
