/* Impeccable visual refinement v1. Runtime, copy and media are unchanged. */
:root{--ui-safe-top:env(safe-area-inset-top,0px);--ink:#f4ead7;--muted:#c4bda9;--gold:#e4c589;--line:#c4ac773b}
body{color:var(--ink);scrollbar-color:#8c8067 #101820}
::selection{color:#101820;background:#e4c589}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.backdrop,.hero-open .backdrop{background-image:linear-gradient(#080e1499,#080e14c7 65%,#080e14ed),url('assets/hogwarts-mist-v23.webp')}
.desktop-intro{display:none}
.dust{display:none}
.top,html:not([lang^="zh"]) .top{padding:calc(12px + var(--ui-safe-top)) 18px 12px;gap:12px;align-items:center;border-bottom:1px solid var(--line)}
.brand{flex:1;min-width:0;gap:8px}
.brand .brand-title,html:not([lang^="zh"]) .brand-title{max-width:none;min-width:0;font-size:11px;line-height:1.5;letter-spacing:0;overflow-wrap:normal}
.brand small{display:none}
.brand .crest{flex:0 0 24px;width:24px;height:32px;color:var(--gold)}
.top-actions{gap:6px}
.language-picker{min-height:44px;padding-inline:9px;border-color:var(--line);border-radius:6px;background:#101b24}
.language-picker>span:first-child{display:none}
.language-picker .language-current{max-width:76px;font-size:12px}
.language-picker .language-arrow{font-size:0;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);margin:-3px 2px 0 4px}
.top-actions #sound{min-height:44px;max-width:68px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#101b24;color:var(--ink);font:11px/1.35 system-ui,sans-serif;white-space:normal}
main,.hero-open main{padding:24px 22px calc(36px + var(--safe))}
.letter-heading{margin:0 0 24px;color:var(--gold)}
.letter-crest,.school-sub,.letter .kicker,.guide .kicker,.death .kicker,.ending .kicker{display:none}
.school-name{font-size:39px;line-height:1.1;color:var(--gold)}
#app .letter h2,#app .guide h2{font-size:30px;line-height:1.4;letter-spacing:.02em;margin:0 0 22px;color:var(--ink);text-wrap:balance;text-shadow:none}
#app .letter .letter-body{font-size:17px;line-height:1.85;color:var(--ink);text-shadow:none}
#app .letter .letter-body p{line-height:1.85;margin:0 0 14px}
#app .letter .sign{font-size:15px;line-height:1.7;color:var(--muted);margin:22px 0 24px;text-shadow:none}
#app .primary{min-height:52px;padding:13px 18px;border:0;border-radius:7px;background:#e4c589;color:#172027;font-size:17px;line-height:1.45;letter-spacing:0;font-weight:600;box-shadow:0 8px 24px #0005;white-space:normal;overflow-wrap:anywhere}
#app .primary:hover{background:#f0d7a7}
#app .primary:active{transform:translateY(1px);box-shadow:0 3px 10px #0005}
#app .primary:disabled{opacity:.55;box-shadow:none;cursor:wait}
#app .secondary{min-height:48px;border:1px solid var(--line);border-radius:7px;background:#101b24;color:var(--ink);padding:11px 16px;white-space:normal}
.guide{padding-block:18px!important}
#app .guide ol{list-style:none;counter-reset:guide;padding:0;margin:26px 0;color:var(--ink);font-size:15px;line-height:1.8}
#app .guide li{counter-increment:guide;position:relative;padding:14px 0 14px 42px;border-bottom:1px solid var(--line);text-shadow:none}
#app .guide li:first-child{padding-top:0}
#app .guide li:before{content:counter(guide);position:absolute;inset-inline-start:0;width:27px;height:27px;display:grid;place-items:center;border:1px solid #c4ac7777;border-radius:50%;color:var(--gold);font:13px/1 system-ui,sans-serif}
html[dir="rtl"] #app .guide li{padding-inline:42px 0}
#app .guide .notice{font:12px/1.75 system-ui,sans-serif;color:var(--muted);margin-top:18px;text-shadow:none}
#app .copy-url{font:13px/1.6 system-ui,sans-serif;padding:12px;border-radius:6px;margin-top:14px}
.chapter-top{font-size:11px;line-height:1.6;color:var(--muted);gap:12px}
.steps{margin:10px 0 18px}
.panel .film{border-radius:8px;overflow:hidden}
.panel .film video,.panel .film img{object-fit:contain;object-position:center}
#app .scene-title{font-size:26px;line-height:1.35;margin:22px 0 10px;color:var(--ink);text-wrap:balance;letter-spacing:0}
#app .scene-copy{font-size:14px;line-height:1.8;margin:0 0 18px;color:#ded8c9}
#app .choice-header{gap:16px;margin:18px 0 12px;align-items:center}
#app .choice-header h2{font-size:20px;line-height:1.5;letter-spacing:0;color:var(--ink)}
.clock{flex:0 0 54px;font-variant-numeric:tabular-nums}
.choices{gap:9px}
#app .option{min-height:54px;padding:12px 14px;gap:12px;border:1px solid #b9a17459;border-radius:7px;background:#101b24ed;color:var(--ink);line-height:1.65;text-align:start;font-size:14px;opacity:1}
#app .option>span{color:var(--gold);font-size:12px}
#app .option:hover,#app .option.selected{background:#29302b;border-color:var(--gold)}
#app .option:disabled{cursor:default}
.decision-hint,.inventory,.branch-label{color:var(--muted);font-size:11px;line-height:1.7}
.inventory{gap:8px;flex-wrap:wrap}
.reaction{padding-block:22px}
.reaction p{line-height:1.8;color:var(--ink)}
.reaction .status{color:var(--gold);font-size:12px}
.death-mark,.ending-symbol{display:none}
.death,.ending{padding-block:32px}
.death h2,.ending h2{color:var(--ink);font-size:30px;line-height:1.4;margin:0 0 22px;text-wrap:balance}
.death p,.ending p{color:#ded8c9;line-height:1.85}
.ending dl{border-block:1px solid var(--line);padding-block:16px}
.ending dd{color:var(--gold);font-variant-numeric:tabular-nums}
.site-foot{position:relative;inset:auto;color:var(--muted);font-size:11px;line-height:1.7;letter-spacing:0;padding:8px 18px calc(18px + var(--safe));margin-top:auto}
.sound-hint{inset-block-start:calc(76px + var(--ui-safe-top));border-radius:8px;border:0;background:#182630;color:var(--ink);box-shadow:0 8px 28px #0007}
#enableSoundHint>span:first-child{display:none}
#toast{background:#e4c589;color:#172027;border:0;border-radius:7px;box-shadow:0 8px 24px #0006;line-height:1.6}
@media(max-width:360px){.top,html:not([lang^="zh"]) .top{padding-inline:14px;gap:8px}.brand .brand-title,html:not([lang^="zh"]) .brand-title{font-size:11px}.brand .crest{display:none}.language-picker .language-current{max-width:64px}main,.hero-open main{padding-inline:18px}#app .letter h2,#app .guide h2{font-size:27px}#app .letter .letter-body{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
