:root{--paper: #fffaf1;--paper-2: #fbf1e2;--paper-3: #f4e6d0;--ink: #5a4535;--ink-soft: #8c7461;--ink-faint: #b9a591;--rose: #f3aebe;--rose-deep: #d97f96;--sky: #a7d4ec;--sky-deep: #6fb0d4;--mint: #b3e0c4;--mint-deep: #6fb892;--butter: #ffe3a1;--butter-deep: #e8b64e;--peach: #ffcfb0;--r-sm: 12px;--r-md: 18px;--r-lg: 26px;--shadow-sm: 0 1px 0 rgba(120, 86, 58, .08), 0 6px 14px -8px rgba(98, 68, 46, .35);--shadow-md: 0 1px 0 rgba(120, 86, 58, .08), 0 14px 30px -14px rgba(98, 68, 46, .42);--shadow-lg: 0 2px 0 rgba(120, 86, 58, .08), 0 26px 60px -22px rgba(98, 68, 46, .5);--ring: 0 0 0 3px rgba(111, 176, 212, .55);--font-ui: "Nunito", "Trebuchet MS", system-ui, sans-serif;--font-story: "Fraunces", Georgia, "Times New Roman", serif;--font-narration: "Source Serif 4", "Fraunces", Georgia, serif;--accent: var(--rose);--accent2: var(--sky);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1)}body{font-family:var(--font-ui);color:var(--ink)}canvas{filter:saturate(.9) contrast(.95) brightness(1.03)}html,body{background:#dcebe0}button{font-family:var(--font-ui)}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:none;box-shadow:var(--ring),var(--shadow-sm)!important}button:disabled,button[aria-disabled=true]{opacity:.55;cursor:default;filter:saturate(.6)}#settings-btn,#debug-btn{width:46px;height:46px;padding:0;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.9);background:#fffaf1e6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);color:var(--ink-soft);transition:transform .25s var(--ease-bounce),box-shadow .2s ease,background .2s ease}#settings-btn:hover,#debug-btn:hover{background:#fff;transform:translateY(-2px) rotate(0);box-shadow:var(--shadow-md)}#settings-btn:active,#debug-btn:active{transform:translateY(1px) scale(.96);box-shadow:var(--shadow-sm)}#settings-btn svg{width:22px;height:22px}#settings-btn:hover svg{transform:rotate(40deg)}#settings-btn svg{transition:transform .5s var(--ease-out)}#objective{left:50%;transform:translate(-50%);max-width:min(480px,calc(100vw - 150px));justify-content:center;display:flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;border:1.5px solid rgba(255,255,255,.95);border-radius:var(--r-md);background:#fffaf1eb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-md);font-family:var(--font-ui);font-size:14.5px;font-weight:750;line-height:1.35;letter-spacing:.005em;text-align:center}#objective:before{content:"";flex:0 0 26px;height:26px;border-radius:9px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a5a3a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M14.8 9.2 13 13l-3.8 1.8L11 11z' fill='%23e8b64e' stroke='%237a5a3a'/%3E%3C/svg%3E") center / 18px no-repeat,linear-gradient(160deg,#fff3cf,var(--butter));box-shadow:inset 0 0 0 1px #e8b64e73}#objective.objective-bump{animation:objective-in .6s var(--ease-bounce)}@keyframes objective-in{0%{transform:translate(-50%) translateY(-8px) scale(.96);opacity:.2}60%{transform:translate(-50%) translateY(1px) scale(1.01);opacity:1}to{transform:translate(-50%)}}#prompt{bottom:calc(30px + env(safe-area-inset-bottom));padding:8px 16px 8px 8px;display:none;align-items:center;gap:10px;border:1.5px solid rgba(255,255,255,.95);border-radius:999px;background:#fffaf1f0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-md);font-size:15px;font-weight:800;color:var(--ink);animation:chip-in .35s var(--ease-bounce);white-space:nowrap;max-width:calc(100vw - 32px)}#prompt[style*=block]{display:flex!important}#prompt .key{display:inline-grid;place-items:center;min-width:30px;height:30px;margin:0;padding:0 8px;border-radius:9px;background:linear-gradient(#fff,#f1e7d8);color:var(--ink);font-size:14px;font-weight:900;box-shadow:inset 0 -3px #dccbb3,0 0 0 1.5px #e5d6c1;line-height:28px;text-align:center}#prompt .who{overflow:hidden;text-overflow:ellipsis}#prompt .who:after{content:"";display:inline-block;width:7px;height:7px;margin-left:8px;border-radius:50%;background:var(--mint-deep);vertical-align:middle;animation:pulse-dot 1.4s ease-in-out infinite}@keyframes chip-in{0%{transform:translate(-50%) translateY(10px) scale(.92);opacity:0}to{transform:translate(-50%);opacity:1}}@keyframes pulse-dot{0%,to{transform:scale(.7);opacity:.5}50%{transform:scale(1.1);opacity:1}}.touch-device #prompt{padding:10px 18px}.touch-device #prompt:active{transform:translate(-50%) scale(.97)}#dialogue{--dialogue-border: #f0c9d3;width:min(680px,calc(100% - 32px));bottom:calc(22px + env(safe-area-inset-bottom));padding:20px 24px 24px;border:2px solid var(--dialogue-border);border-radius:var(--r-lg);background:radial-gradient(120% 90% at 0% 0%,rgba(255,255,255,.9),transparent 60%),var(--paper);box-shadow:var(--shadow-lg),inset 0 0 0 5px #ffffffbf;animation:dialogue-in .32s var(--ease-out)}@keyframes dialogue-in{0%{transform:translate(-50%) translateY(14px);opacity:0}to{transform:translate(-50%);opacity:1}}#dialogue.has-portrait{padding-left:24px;padding-top:20px}#dialogue .portrait{left:22px;bottom:calc(100% - 47px);width:112px;height:112px;border:4px solid #fff;border-radius:22px;box-shadow:0 0 0 2px var(--dialogue-border),var(--shadow-md);animation:portrait-pop .38s var(--ease-bounce)}@keyframes portrait-pop{0%{transform:translateY(8px) scale(.9);opacity:0}to{transform:none;opacity:1}}#dialogue.has-portrait .name{margin-left:124px}#dialogue .name{font-family:var(--font-ui);background:linear-gradient(#ffe8ee,#ffd9e3);color:#9a3d57;font-size:13.5px;font-weight:900;letter-spacing:.02em;line-height:19px;padding:4px 14px;margin-bottom:10px;white-space:nowrap;box-shadow:inset 0 0 0 1px #d97f9640}#dialogue.christian{--dialogue-border: #e2c7a6}#dialogue.christian .name{background:linear-gradient(#fbecd9,#f2dcc0);color:#7a5230;box-shadow:inset 0 0 0 1px #b98a5f4d}#dialogue.narration{--dialogue-border: #e4d8c6}#dialogue.narration .text{font-family:var(--font-narration);font-style:normal;font-weight:500;font-size:18.5px;line-height:1.55;letter-spacing:.002em;color:#7d6878;font-optical-sizing:auto}#dialogue.narration .text strong{color:#b86f84;font-weight:700}html.large-dialogue #dialogue.narration .text{font-size:21.5px}#dialogue .text{font-family:var(--font-ui);font-size:17.5px;line-height:1.55;font-weight:600;color:var(--ink)}#dialogue .text .type-ghost{visibility:hidden}#dialogue .text strong{color:#7a4a36;font-weight:900}#dialogue .next{color:var(--ink-soft);font-weight:800;opacity:.75;right:22px;bottom:12px}html.large-dialogue #dialogue .text{font-size:20px}#choice{gap:12px}#choice button{font-family:var(--font-ui);font-size:16px;font-weight:800;color:var(--ink);background:#fffaf1f5;border:2px solid #fff;border-radius:var(--r-md);padding:16px 20px 16px 54px;box-shadow:var(--shadow-md);transition:transform .2s var(--ease-bounce),box-shadow .2s ease,background .2s ease;animation:choice-in .3s var(--ease-out) both;text-align:left;width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}@keyframes choice-in{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}#choice button.opt-b{animation-delay:.06s}#choice button:before{content:"";left:16px;width:26px;height:26px;border-radius:9px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center / 16px no-repeat,var(--sky-deep)}#choice button.opt-b:before{background-color:var(--rose-deep)}#choice button:hover{background:#fff;border-color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-lg)}#choice button:active{transform:translateY(1px) scale(.99);box-shadow:var(--shadow-sm)}#joystick{background:radial-gradient(circle,#fffaf18c,#fffaf140);border:2px solid rgba(255,255,255,.8);box-shadow:var(--shadow-sm);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}#joystick .stick{background:linear-gradient(160deg,#fff,#f6d6de);border:2px solid #fff;box-shadow:var(--shadow-md)}#talk-btn{background:linear-gradient(160deg,#bfe3f5,var(--sky-deep));border:3px solid #fff;color:#fff;font-weight:900;font-size:16px;text-shadow:0 1px 0 rgba(40,90,120,.35);box-shadow:var(--shadow-md);transition:transform .18s var(--ease-bounce)}#talk-btn:active{transform:scale(.94)}body.dialogue-open #joystick,body.dialogue-open #talk-btn{opacity:0;pointer-events:none;transition:opacity .2s ease}#joystick{transition:opacity .2s ease}#talk-btn{transition:opacity .2s ease,transform .18s var(--ease-bounce)}#battle-ui{top:calc(76px + env(safe-area-inset-top));gap:10px}#battle-ui .brow{border:1.5px solid #fff;background:#fffaf1f0;box-shadow:var(--shadow-md);padding:7px 16px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#battle-ui .brow.apo{border-color:#fff}#battle-ui .bname{font-weight:900;font-size:13px;color:var(--ink)}#battle-ui .btrack{height:12px;background:#efe3d1;box-shadow:inset 0 1px 2px #5a453533}#battle-ui .bfill{background:linear-gradient(90deg,#8fd49e,#6fb892)}#battle-ui .brow.apo .bfill{background:linear-gradient(90deg,#e98a95,#c9535f)}#sword-btn{font-family:var(--font-ui);font-weight:900;border:2px solid #fff;border-radius:var(--r-md);box-shadow:var(--shadow-md),0 0 26px #78c4ff8c;transition:transform .18s var(--ease-bounce)}#sword-btn:hover{transform:translateY(-2px)}#sword-btn:active{transform:translateY(2px) scale(.98);box-shadow:var(--shadow-sm)}#sleep-ui{font-family:var(--font-ui);border:1.5px solid #fff;border-radius:var(--r-md);background:#fffae6f0;box-shadow:var(--shadow-md)}#key-game .key-hint{font-family:var(--font-ui);font-weight:800;border:1.5px solid #fff;border-radius:999px;padding:8px 16px;box-shadow:var(--shadow-md)}#key-orb{box-shadow:var(--shadow-md);background:linear-gradient(160deg,#ffe7a8,var(--butter-deep))}#debug-panel{border:1.5px solid #fff!important;border-radius:var(--r-lg)!important;background:#fffaf1f7!important;box-shadow:var(--shadow-lg)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:14px!important}#debug-panel .label{font-family:var(--font-story);font-weight:700;color:var(--ink-soft)}#debug-panel button{font-family:var(--font-ui)!important;font-weight:800!important;border-radius:12px!important;transition:background .15s ease,transform .15s ease!important}#debug-panel button:hover{transform:translate(3px)}#settings-overlay{background:#5a453547!important;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}#settings-dialog{font-family:var(--font-ui);border:2px solid #fff!important;border-radius:28px!important;background:var(--paper)!important;box-shadow:var(--shadow-lg)!important}#settings-dialog h2,.about-section h3{font-family:var(--font-story);font-weight:700}.screen{background:radial-gradient(90% 70% at 50% 30%,#fff4deeb,#ecdef0e6 70%),linear-gradient(#e7f2ea,#f4e3ea);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}#ending h1{font-family:var(--font-story);font-weight:700;letter-spacing:-.01em;color:#5d4533;text-shadow:0 2px 0 #fff}#ending h2{font-family:var(--font-story);font-style:italic;color:var(--ink-soft);opacity:1}#ending p{font-family:var(--font-ui);font-weight:600;color:var(--ink);font-size:16.5px}#ending>*{animation:rise-in .7s var(--ease-out) both}#ending>*:nth-child(2){animation-delay:.08s}#ending>*:nth-child(3){animation-delay:.16s}#ending>*:nth-child(4){animation-delay:.26s}#ending>*:nth-child(5){animation-delay:.32s}@keyframes rise-in{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.screen button{font-family:var(--font-ui);font-weight:900;background:linear-gradient(180deg,#fbd3dd,#f4b6c6);color:#8a3450;text-shadow:0 1px 0 rgba(255,255,255,.55);border:3px solid #fff;box-shadow:var(--shadow-md);transition:transform .22s var(--ease-bounce),box-shadow .2s ease,filter .2s ease}.screen button:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);filter:brightness(1.03)}.screen button:active{transform:translateY(1px) scale(.98);box-shadow:var(--shadow-sm)}.screen button.ghost{color:#8a3a52;text-shadow:none;background:#ffffffb3;border:2px solid rgba(217,127,150,.45);box-shadow:none}.title-card{border:2px solid rgba(255,255,255,.95);border-radius:32px;background:radial-gradient(120% 80% at 50% 0%,rgba(255,255,255,.95),transparent 60%),linear-gradient(180deg,#fffaf0f5,#faeae4f5);box-shadow:var(--shadow-lg),inset 0 0 0 7px #fff9,inset 0 0 0 8px #c5a06f59;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.title-card:before,.title-card:after{color:#c9a57a}#title-screen .eyebrow{font-family:var(--font-ui);font-weight:900;letter-spacing:.24em;color:#a08165}#title-screen h1{font-family:var(--font-story);font-weight:700}#title-screen h1 span,#title-screen h2{font-family:var(--font-story);font-weight:600}#title-screen p{font-family:var(--font-ui);font-weight:600;color:#6c5849}#title-screen #start-btn,#title-screen #new-journey-btn{font-family:var(--font-ui);font-weight:900}#title-screen #start-btn{background:linear-gradient(180deg,#fbd3dd,#f4b6c6);color:#8a3450;text-shadow:0 1px 0 rgba(255,255,255,.55);box-shadow:0 7px #e59fb2,0 13px 28px #7e525b2e}#title-screen #start-btn:after{color:#8a3450}#title-screen #start-btn:hover{background:linear-gradient(180deg,#fddbe4,#f6bfcd);box-shadow:0 9px #e59fb2,0 15px 30px #7e525b33}#title-screen #start-btn:active{box-shadow:0 3px #e59fb2}#title-screen #new-journey-btn{color:#8a3a52;border-color:#efb3c3;background:#fdf3f6}#save-summary{font-family:var(--font-ui)}.title-credit{font-family:var(--font-ui);font-weight:800}#finale-heading,#finale-author,#finale-note{font-family:var(--font-ui)}#finale-quote,#finale-end .end-words{font-family:var(--font-story)}@media (max-width: 700px){#objective{left:50%;width:max-content;max-width:calc(100vw - 20px - env(safe-area-inset-left) - env(safe-area-inset-right));font-size:clamp(12.5px,3.6vw,14.5px)}#prompt{width:auto;bottom:calc(26px + env(safe-area-inset-bottom))}.touch-device #prompt{bottom:calc(160px + env(safe-area-inset-bottom))}#dialogue .portrait{width:76px;height:76px;border-radius:16px;bottom:calc(100% - 47px)}#battle-ui{top:calc(126px + env(safe-area-inset-top))}#ending.screen{padding:calc(128px + env(safe-area-inset-top)) 22px calc(24px + env(safe-area-inset-bottom));justify-content:safe center;overflow-y:auto}#dialogue.has-portrait .name{margin-left:86px}}html.reduce-motion #objective,html.reduce-motion #prompt,html.reduce-motion #dialogue,html.reduce-motion #dialogue .portrait,html.reduce-motion #choice button,html.reduce-motion #ending>*{animation:none!important}
