: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{color:#e8e4da;overscroll-behavior:none;touch-action:none;-webkit-tap-highlight-color:transparent;background:#9baeb3;width:100%;height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}#app,canvas{display:block}canvas{width:100%;height:100%}.loader{z-index:1000;text-align:center;background:radial-gradient(circle at 50% 28%,#6f828b,#2a3740 68%,#182127);place-content:center;justify-items:center;gap:14px;padding:30px;transition:opacity .6s,visibility .6s;display:grid;position:fixed;inset:0}.loader.is-complete{opacity:0;visibility:hidden;pointer-events:none}.loader.has-error .loader__track{border-color:#b87f79}.loader__mark{color:#c8bea0;font-size:28px;animation:2.4s ease-in-out infinite float}.loader h1{max-width:620px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,6vw,52px);font-weight:600}.loader p{color:#e8e4dab8;letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:11px}.loader__track{background:#00000047;border:1px solid #fff3;border-radius:999px;width:min(330px,70vw);height:9px;overflow:hidden}.loader__bar{background:linear-gradient(90deg,#829074,#c8bea0);width:0;height:100%;transition:width .3s;display:block}.loader small{color:#e8e4dab8}.hud{z-index:90;pointer-events:none;position:fixed;inset:0}.hud__objective{top:max(18px, var(--story-safe-top,0px));left:max(18px, var(--story-safe-left,0px));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(145deg,#050c12e8,#0e1417d6);border:1px solid #c7bc9e4d;border-radius:18px;align-items:center;gap:12px;min-width:min(285px,100vw - 36px);padding:10px 15px 10px 10px;transition:opacity .3s,transform .3s;display:flex;position:absolute;box-shadow:0 14px 44px #00000052,inset 0 1px #ffffff0f}.hud__objective.is-hidden{opacity:0;transform:translateY(-8px)}.hud__compass{opacity:.35;background:radial-gradient(circle,#b8ac8933,#b8ac890a);border:1px solid #c7bc9e4d;border-radius:50%;flex:none;place-items:center;width:46px;height:46px;display:grid;position:relative}.hud__objective.has-compass .hud__compass{opacity:1}.hud__compass-ring{border:1px dashed #fff2cd3d;border-radius:50%;position:absolute;inset:5px}.hud__compass-arrow{color:#c9bea0;transform-origin:50%;font-family:Arial,sans-serif;font-size:29px;line-height:1;transition:transform .18s ease-out,filter .25s}.hud__objective.is-assisted .hud__compass-arrow{filter:drop-shadow(0 0 8px #c9bea080)}.hud__objective-copy{min-width:0;line-height:1.15;display:grid}.hud__objective-kicker{color:#d1d3c2b8;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;margin-bottom:4px;font-size:8px;font-weight:800}.hud__objective-label{color:#e6dfca;text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:14px;font-weight:600;overflow:hidden}.hud__objective-distance{color:#cad3c7bf;letter-spacing:.04em;min-height:10px;margin-top:4px;font-size:9px;font-weight:650}.hud__prompt{left:50%;bottom:max(25px, calc(var(--story-safe-bottom,0px) + 12px));color:#fff1c6;opacity:0;background:#050c12e6;border:1px solid #ffe69947;border-radius:999px;padding:11px 17px;font-size:12px;transition:all .25s;position:absolute;transform:translate(-50%,10px)}.hud__prompt.is-visible{opacity:1;transform:translate(-50%)}.story-dialogue{z-index:120;pointer-events:none;opacity:0;transition:opacity .4s;position:fixed;inset:0}.story-dialogue.is-visible{opacity:1;pointer-events:auto}.story-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 #beb28f57;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}.story-dialogue.is-visible .story-dialogue__panel{transform:translate(-50%)}.story-dialogue__speaker{color:#bfb28f;letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px;font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:700}.story-dialogue__text{color:#e8e2d3;min-height:56px;font-family:Georgia,Times New Roman,serif;font-size:clamp(18px,2.6vw,25px);line-height:1.38}.story-dialogue[data-speaker=sound] .story-dialogue__text{color:#c9bea0;font-size:clamp(26px,4vw,38px);font-style:italic}.story-dialogue.is-opening-narration{background:radial-gradient(#030a0f94,#0000 74%);place-items:center;padding:28px;display:grid}.story-dialogue.is-opening-narration .story-dialogue__panel{align-content:start;width:min(88vw,850px);min-height:min(390px,72vh);padding:clamp(28px,5vw,48px) clamp(24px,5vw,52px);display:grid;position:relative;bottom:auto;left:auto;transform:translateY(12px)}.story-dialogue.is-opening-narration.is-visible .story-dialogue__panel{transform:translateY(0)}.story-dialogue.is-opening-narration .story-dialogue__speaker{text-align:center}.story-dialogue.is-opening-narration .story-dialogue__text{align-content:start;gap:16px;min-height:0;display:grid}.story-dialogue__opening-line{opacity:0;transition:opacity .5s,transform .5s;display:block;transform:translateY(7px)}.story-dialogue__opening-line.is-visible{opacity:1;transform:translateY(0)}.story-card{z-index:150;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;opacity:0;visibility:hidden;background:radial-gradient(#030a0fad,#03080ee0);place-content:center;justify-items:center;gap:14px;padding:30px;transition:all .55s;display:grid;position:fixed;inset:0}.story-card.is-visible{opacity:1;visibility:visible}.story-card h1,.story-card h2{color:#e9e3d4;max-width:760px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,7vw,72px);font-weight:600;line-height:1.06}.story-card h2{font-size:clamp(34px,6vw,62px);font-style:italic}.story-card p{color:#f0e7d3d1;max-width:570px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(15px,2.1vw,20px);line-height:1.55}.story-card>p:first-child,.story-card span{color:#bfb28f;letter-spacing:.15em;text-transform:uppercase;font:800 11px/1.3 Inter,ui-sans-serif,system-ui,sans-serif}.story-card button,.story-ending__card button{color:#e9e2cf;cursor:pointer;background:#b8ac891f;border:1px solid #beb28f61;border-radius:999px;min-height:46px;margin-top:12px;padding:0 22px;font:800 12px/1 Inter,ui-sans-serif,system-ui,sans-serif}.story-card button:focus-visible{outline-offset:3px;outline:3px solid #bfb493}.story-ending__card{background:#12181bf0;border:1px solid #beb28f6b;border-radius:22px;justify-items:center;gap:15px;width:min(88vw,780px);padding:clamp(30px,6vw,58px);display:grid;box-shadow:0 28px 90px #00000080,inset 0 1px #ffffff0d}.story-ending__eyebrow{letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#bfb28f!important;font-size:12px!important}.story-ending__moral{font-style:italic}.story-ending__card strong{color:#bfb28f;font-family:Georgia,Times New Roman,serif;font-size:18px}.touch-input{z-index:110;pointer-events:none;opacity:0;transition:opacity .25s;display:none;position:fixed;inset:0}.touch-input.is-visible{opacity:1}.touch-input__joystick{left:max(24px, var(--story-safe-left,0px));bottom:max(25px, var(--story-safe-bottom,0px));pointer-events:auto;background:#050c126b;border:2px solid #fff1c657;border-radius:50%;width:110px;height:110px;position:absolute}.touch-input__knob{background:#a0977a94;border:1px solid #dad2bb8f;border-radius:50%;width:46px;height:46px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-input__action{right:max(26px, var(--story-safe-right,0px));bottom:max(35px, var(--story-safe-bottom,0px));color:#fff1c6;pointer-events:none;opacity:0;background:#050c12d1;border:1px solid #ffe69966;border-radius:50%;width:82px;height:82px;transition:all .25s;position:absolute;transform:scale(.8)}.touch-input__action.is-visible{pointer-events:auto;opacity:1;transform:scale(1)}.hud__objective-toast,.hud__hint,.hud__counter,.crow-thought{color:#e5dfd1;opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#141b1ee6;border:1px solid #beb28f4d;transition:opacity .3s,transform .3s;position:absolute;left:50%;transform:translate(-50%,-8px);box-shadow:0 12px 38px #070b0d47}.hud__objective-toast.is-visible,.hud__hint.is-visible,.hud__counter.is-visible,.crow-thought.is-visible{opacity:1;transform:translate(-50%)}.hud__objective-toast{top:max(84px, calc(var(--story-safe-top,0px) + 70px));color:#d9d1bd;letter-spacing:.05em;border-radius:999px;padding:10px 18px;font:700 11px/1.3 Inter,sans-serif}.hud__hint{bottom:max(24px, calc(var(--story-safe-bottom,0px) + 16px));color:#e5dfd1d6;text-align:center;border-radius:14px;max-width:min(84vw,470px);padding:10px 16px;font:600 11px/1.45 Inter,sans-serif}.crow-thought{top:auto;bottom:max(clamp(26px, 8vh, 76px), calc(env(safe-area-inset-bottom) + 12px));text-align:left;background:linear-gradient(145deg,#050c12f0,#0e1417e0);border-color:#beb28f57;border-radius:18px;width:min(88vw,720px);min-height:142px;padding:22px 26px 19px;display:block;transform:translate(-50%,14px);box-shadow:0 20px 70px #0000008c,inset 0 1px #ffffff0f}.crow-thought__speaker{color:#bfb28f;letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px;font:700 15px/1 Georgia,Times New Roman,serif;display:block}.crow-thought__text{color:#e8e2d3;min-height:56px;font:clamp(18px,2.6vw,25px)/1.38 Georgia,Times New Roman,serif;display:block}.hud__counter{top:max(20px, var(--story-safe-top,0px));right:max(66px, calc(var(--story-safe-right,0px) + 56px));border-radius:14px;align-items:center;gap:6px;padding:10px 14px;font:600 12px/1.2 Inter,sans-serif;display:flex;left:auto;transform:translateY(-8px)}.hud__counter.is-visible{transform:translateY(0)}.hud__counter>span{color:#a89e83}.hud__counter small{color:#e5dfd19e;margin-left:5px;font-size:9px}.story-ending__actions{flex-wrap:wrap;justify-content:center;gap:9px;display:flex}.story-ending__actions button{margin-top:6px}@keyframes float{50%{transform:translateY(-7px)}}@media (hover:none),(pointer:coarse){.touch-input{display:block}.hud__prompt{display:none}.hud__objective{top:max(10px, var(--story-safe-top,0px));left:max(10px, var(--story-safe-left,0px));border-radius:12px;gap:7px;min-width:0;max-width:min(210px,56vw);padding:6px 10px 6px 6px}.hud__compass{width:32px;height:32px}.hud__compass-ring{inset:4px}.hud__compass-arrow{font-size:20px}.hud__objective-kicker{margin-bottom:2px;font-size:7px}.hud__objective-label{text-overflow:clip;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.15;display:-webkit-box;overflow:hidden}.hud__objective-distance{min-height:8px;margin-top:2px;font-size:8px}.hud__counter{top:max(10px, var(--story-safe-top,0px));right:max(62px, calc(var(--story-safe-right,0px) + 54px));border-radius:10px;gap:4px;padding:6px 9px;font-size:10px}.hud__counter small{display:none}.story-dialogue__panel{bottom:max(12px, calc(env(safe-area-inset-bottom) + 8px))}.crow-thought{right:max(10px, var(--story-safe-right,0px));bottom:max(12px, calc(env(safe-area-inset-bottom) + 8px));width:min(100vw - 138px,560px);left:auto;transform:translateY(14px)}.crow-thought.is-visible{transform:translateY(0)}.hud__hint{bottom:max(150px, calc(var(--story-safe-bottom,0px) + 132px))}}@media (orientation:portrait){.hud__objective{min-width:0;max-width:min(210px,56vw)}.story-dialogue__panel{min-height:132px;padding:18px 20px 16px}.story-dialogue__text{font-size:clamp(16px,4.8vw,21px)}.crow-thought{min-height:132px;padding:18px 20px 16px}.crow-thought__text{font-size:clamp(16px,4.8vw,21px)}.hud__counter{top:max(10px, var(--story-safe-top,0px))}}@media (orientation:landscape) and (height<=560px){.hud__objective{transform-origin:0 0;transform:scale(.86)}.story-dialogue__panel{bottom:max(14px, env(safe-area-inset-bottom));min-height:108px;padding:14px 20px 12px}.story-dialogue__speaker{margin-bottom:5px;font-size:10px}.story-dialogue__text{min-height:38px;font-size:clamp(14px,4.4vh,19px)}.crow-thought{bottom:max(14px, env(safe-area-inset-bottom));min-height:108px;padding:14px 20px 12px}.crow-thought__speaker{margin-bottom:5px;font-size:10px}.crow-thought__text{min-height:38px;font-size:clamp(14px,4.4vh,19px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.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}}
