@font-face{font-family:Cormorant;src:url('assets/cormorant.ttf') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:Space;src:url('assets/space-mono.ttf') format('truetype');font-weight:400;font-display:swap}
:root{color-scheme:dark;--bg:#101919;--panel:#111d20;--gold:#c5ae80;--muted:#85928d;--white:#eee9dd;--border:#34413a;--mono:Space,'Courier New',monospace;--serif:Cormorant,Georgia,serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 70% 40%,#192d2a40,transparent 60%),var(--bg);color:var(--white);font-family:var(--mono);font-size:12px}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:disabled{cursor:default;opacity:.45}button:hover:not(:disabled){color:#f6dba5}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #d8be89;outline-offset:5px}a{color:inherit;text-decoration:none}svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}button,svg{flex-shrink:0}
.site-header{max-width:1440px;margin:auto;height:111px;padding:0 64px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #35413970}.brand{display:flex;align-items:center;gap:16px;font-size:16px;letter-spacing:3px}.brand-rune{color:var(--gold);font-size:47px;font-family:Georgia;font-weight:400}.brand-amp{color:var(--gold)}.brand small{display:block;font-size:8px;letter-spacing:2.15px;color:var(--muted);margin-top:9px}.site-header nav{display:flex;align-items:center;gap:27px}.nav-link{font-size:11px}.nav-link>span:last-child{margin-left:13px;color:var(--gold)}.nav-divider{height:20px;border-left:1px solid var(--border)}.sound-button{display:flex;align-items:center;gap:10px;font-size:10px;color:var(--muted)}
main{max-width:1440px;margin:auto;padding:0 64px}.intro{display:flex;justify-content:space-between;align-items:center;padding:45px 0 35px}.eyebrow{font-size:9px;letter-spacing:2.5px;color:var(--gold);margin:0 0 16px;display:flex;align-items:center;gap:10px}.eyebrow>span:first-child{width:5px;height:5px;background:var(--gold);transform:rotate(45deg)}h1{font-family:var(--serif);font-weight:600;letter-spacing:-1px;font-size:56px;line-height:1.06;margin:0 0 15px}h1 em{font-weight:600;color:var(--gold)}.intro-copy{margin:0;color:var(--muted);font-size:10px;letter-spacing:.1px}.chapter-mark{display:flex;align-items:center;gap:20px;align-self:flex-end;margin-bottom:10px}.chapter-symbol{font-family:Georgia;color:var(--gold);font-size:39px}.chapter-mark p{font-size:9px;letter-spacing:2px;color:var(--gold);margin:0}.chapter-mark small{display:block;font-family:var(--serif);color:var(--muted);font-size:17px;letter-spacing:.3px;margin-top:8px}
.game-shell{border:1px solid #727257;box-shadow:0 14px 50px #0003;position:relative}.game-shell:before,.game-shell:after{content:'';position:absolute;width:7px;height:7px;background:var(--gold);z-index:4;top:-4px;transform:rotate(45deg)}.game-shell:before{left:-4px}.game-shell:after{right:-4px}.game-scene{height:590px;position:relative;overflow:hidden;background:#142635}.scene-art{width:100%;height:100%;object-fit:cover;object-position:50% 38%;display:block;image-rendering:pixelated}.scene-vignette{position:absolute;inset:0;background:linear-gradient(180deg,#07111640,transparent 28%,transparent 55%,#0510188c);pointer-events:none}.location{position:absolute;top:25px;left:28px;display:flex;gap:11px;align-items:flex-start;color:#dddccc;font-size:9px;letter-spacing:1.7px;text-shadow:0 2px 5px #000}.location-dot{height:5px;width:5px;border:1px solid #d4b27c;margin-top:3px;transform:rotate(45deg)}.location small{display:block;font-size:7px;color:#c0c6bf;letter-spacing:1.8px;margin-top:7px}.fullscreen{position:absolute;top:19px;right:20px;width:34px;height:34px;background:#101d206e;border:1px solid #b9b89c60;display:grid;place-items:center;color:#d8d9c4}.scene-caption{position:absolute;left:29px;bottom:237px;color:#e6cf9a;font-size:7px;letter-spacing:2px;text-shadow:0 2px 4px #000}.scene-caption>span:first-child{display:block;font-family:Georgia;font-size:19px;margin-bottom:9px;letter-spacing:12px;opacity:.9}
.dialogue{position:absolute;left:22px;right:22px;bottom:20px;padding:22px 28px 14px;background:linear-gradient(110deg,#101e24f5,#111c24ed);border:1px solid #ab9c6f8c;box-shadow:inset 0 0 0 4px #101f27, inset 0 0 0 5px #a4986526,0 5px 30px #0006;min-height:194px}.dialogue:before,.dialogue:after{content:'✧';position:absolute;color:var(--gold);font-size:16px;top:-10px;background:#15222a;line-height:18px}.dialogue:before{left:12px}.dialogue:after{right:12px}.speaker-line{display:flex;align-items:center;gap:11px}.speaker-badge{width:26px;height:26px;background:#bda16b14;display:grid;place-items:center;border:1px solid #c1a77750;color:var(--gold);font-size:19px;font-family:Georgia}.speaker-line h2{font-family:var(--serif);font-weight:600;font-size:29px;margin:0;line-height:1;letter-spacing:.4px;color:#e7c992}.speaker-line>span:not(.dialogue-number){font-size:8px;color:#96a09f;font-style:italic;letter-spacing:.2px;margin-left:3px}.dialogue-number{margin-left:auto;color:#727e7f;font-size:8px;letter-spacing:1px}.dialogue-text{font-family:var(--serif);font-size:25px;line-height:1.46;letter-spacing:.15px;margin:17px 0 15px;min-height:73px;max-width:930px;color:#eeeee5}.dialogue-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:3px}.key-hint{font-size:8px;color:#7f8c8e;letter-spacing:.5px}kbd{font:inherit;font-size:7px;padding:2px 5px;border:1px solid #53625e;margin-right:6px;color:#abb3a7}.continue-button{font-size:9px;letter-spacing:1px;color:var(--gold);padding:7px 0 7px 15px}.continue-button span{display:inline-block;font-size:8px;margin-left:13px;animation:pulse 2s ease-in-out infinite}.game-controls{background:#15201f;display:flex;justify-content:space-between;align-items:center;min-height:59px;padding:0 23px}.game-controls>div{display:flex;align-items:center;gap:24px}.game-controls button{display:flex;gap:8px;align-items:center;color:#a5af9f;font-size:9px;padding:12px 0}.game-controls button[aria-pressed=true]{color:#efd39b}.game-controls svg{width:14px;height:14px}.playback-controls>button>span[aria-hidden]{font-size:18px;line-height:12px}.control-divider{height:14px;width:1px;background:var(--border);margin-left:-5px;margin-right:-5px}.saved-indicator{font-size:7px;color:#67796d;letter-spacing:1.1px;display:flex;align-items:center;gap:7px;margin-right:5px}.saved-indicator>span{width:4px;height:4px;background:#738d71;border-radius:50%}.save-controls .settings{border-left:1px solid var(--border);padding-left:23px}.below-game{display:flex;align-items:center;justify-content:space-between;margin:20px 0 45px;color:#819083}.below-game p{margin:0;font-family:var(--serif);font-size:17px;font-style:italic}.below-game p>span:first-child{color:var(--gold);margin-right:8px;font-style:normal;font-size:16px}.below-game>span{font-size:7px;letter-spacing:1.4px;color:#667970}footer{border-top:1px solid #35413970;max-width:1312px;margin:auto;padding:24px 0;display:flex;align-items:center;justify-content:space-between;color:#728177;font-size:7px;letter-spacing:1.3px}.footer-runes{color:#8e8869;font-size:14px;letter-spacing:2px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:13px 0}.choices[hidden],.ending[hidden]{display:none}.choice{padding:13px 16px;text-align:left;border:1px solid #6d775c;background:#25393180;color:#e0d2ae;display:flex;gap:14px;align-items:center}.choice:hover{background:#36483c}.choice .choice-rune{font-size:25px;font-family:Georgia;color:var(--gold)}.choice strong{font-weight:400;font-size:10px;display:block}.choice small{display:block;font-size:8px;color:#98a999;margin-top:6px}.ending{margin:10px 0;color:var(--gold);font-size:10px;letter-spacing:1px}.ending strong{font-family:var(--serif);font-weight:600;font-size:24px;letter-spacing:0;display:block;margin-top:7px}.snow{position:absolute;inset:0;pointer-events:none;overflow:hidden}.flake{position:absolute;top:-8px;width:2px;height:2px;background:#ecf5f0;opacity:.65;animation:snowfall linear infinite}@keyframes snowfall{to{transform:translate(-50px,620px);opacity:.1}}@keyframes pulse{50%{opacity:.4}}.game-scene:fullscreen{height:100vh;width:100vw}.game-scene:fullscreen .scene-art{object-position:center 35%}.game-scene:fullscreen .dialogue{left:8vw;right:8vw;bottom:5vh}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{width:min(580px,calc(100% - 32px));max-height:80vh;background:#152421;color:var(--white);border:1px solid var(--gold);padding:30px;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#061110ce;backdrop-filter:blur(5px)}.modal-top{display:flex;justify-content:space-between;align-items:center}.modal-top .eyebrow{margin:0;font-size:8px}.modal-top button{font-size:27px;color:var(--gold)}dialog h2{font-family:var(--serif);color:var(--gold);font-size:37px;margin:10px 0 25px}dialog p{font-family:var(--serif);font-size:22px;line-height:1.5}dialog .history-entry{padding:16px 0;border-top:1px solid var(--border)}.history-entry strong{color:var(--gold);font-size:10px}.history-entry p{margin:8px 0 0;font-size:21px}.settings-row{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:19px 0;border-top:1px solid var(--border);font-size:11px}.settings-row input{accent-color:var(--gold);max-width:140px}.settings-row small{font-size:9px;color:var(--muted);display:block;margin-top:6px}.modal-action{border:1px solid #8a845e;color:var(--gold);padding:13px 20px;margin-top:20px;font-size:10px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,10px);opacity:0;pointer-events:none;background:#22382e;border:1px solid #8e9b6d;color:#eadcb9;padding:14px 22px;z-index:20;transition:opacity .2s,transform .2s;max-width:calc(100vw - 30px);font-size:10px;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1600px){main{padding-top:15px}.game-scene{height:650px}.intro{padding:50px 0 40px}}@media(max-width:1100px){.site-header{padding:0 36px;height:95px}main{padding:0 36px}h1{font-size:47px}.chapter-mark{gap:12px}.chapter-mark small{font-size:15px}.game-scene{height:570px}.dialogue-text{font-size:23px}.saved-indicator{display:none}footer{margin:0 36px}.intro{padding-top:35px}.game-controls>div{gap:20px}}@media(max-width:760px){.site-header{height:85px;padding:0 22px}.brand{font-size:12px;letter-spacing:2px;gap:11px}.brand-rune{font-size:36px}.brand small{font-size:6px;letter-spacing:1.5px}.site-header nav{gap:14px}.nav-link{display:none}.nav-divider{display:none}.sound-button span{display:none}.sound-button svg{width:20px;height:20px}main{padding:0 20px}.intro{padding:30px 0 26px}.eyebrow{font-size:7px;letter-spacing:2px;margin-bottom:13px}h1{font-size:39px;letter-spacing:-.5px;max-width:380px;line-height:1.1}.intro-copy{font-size:8px;line-height:1.7;max-width:320px}.chapter-mark{display:none}.game-scene{height:680px}.scene-art{height:440px;object-position:63% 28%;object-fit:cover}.scene-vignette{background:linear-gradient(180deg,#07111650,transparent 26%,#101e24 65%)}.location{top:18px;left:18px;font-size:7px;letter-spacing:1px}.location small{font-size:6px;letter-spacing:1.1px}.fullscreen{right:13px;top:13px;width:28px;height:28px}.fullscreen svg{width:14px;height:14px}.dialogue{left:12px;right:12px;bottom:15px;padding:21px 19px 16px;min-height:245px}.speaker-line{gap:8px;flex-wrap:wrap}.speaker-line h2{font-size:27px}.speaker-line>span:not(.dialogue-number){font-size:7px}.dialogue-number{display:none}.dialogue-text{font-size:23px;line-height:1.45;margin:15px 0 17px;min-height:130px}.scene-caption{left:20px;bottom:282px;font-size:6px;letter-spacing:1.1px}.scene-caption>span:first-child{font-size:15px;margin-bottom:6px}.game-controls{padding:0 14px;min-height:55px;gap:12px}.game-controls>div{gap:14px}.game-controls button{font-size:8px;gap:5px}.game-controls svg{width:12px;height:12px}.game-controls .control-divider{display:none}.save-controls .settings{padding-left:12px}.playback-controls #skip{display:none}.below-game{margin:18px 0 28px}.below-game p{font-size:15px}.below-game>span{display:none}footer{margin:0 20px;padding:20px 0;font-size:6px;letter-spacing:.9px}footer>span:last-child{display:none}.footer-runes{font-size:12px}.choices{grid-template-columns:1fr;gap:8px}.choice{padding:11px 10px}.choice strong{font-size:9px}.choice small{font-size:7px}.game-scene.has-choices{height:830px}.game-scene.has-ending{height:745px}.key-hint{font-size:7px}.continue-button{font-size:8px}.game-scene:fullscreen .dialogue{left:12px;right:12px;bottom:20px}.game-scene:fullscreen .scene-art{height:65vh}.ending strong{font-size:22px}dialog{padding:23px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.snow{display:none}}body.no-motion .snow{display:none}body.no-motion .continue-button span{animation:none}

body.theater-mode{overflow:hidden}body.theater-mode .game-scene{position:fixed;inset:0;width:100vw;height:100dvh;z-index:10}body.theater-mode .dialogue{left:max(22px,8vw);right:max(22px,8vw);bottom:5vh}body.theater-mode .fullscreen{z-index:12}body.theater-mode .scene-art{height:100%;object-position:center 35%}@media(max-width:760px){body.theater-mode .dialogue{left:12px;right:12px;bottom:20px}body.theater-mode .scene-art{height:65dvh}}
/* Keep long dialogue and choices reachable on short landscape screens. */
.game-scene:fullscreen{width:100vw;height:100dvh}
.game-scene:fullscreen .dialogue,body.theater-mode .dialogue{min-height:0;max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain}
.language-control{display:flex;align-items:center;gap:8px;color:var(--gold)}.language-control svg{width:16px;height:16px}.language-control select{font:inherit;font-size:10px;color:var(--gold);background:#152421;border:1px solid #5c6049;padding:7px 5px;border-radius:2px;cursor:pointer;max-width:105px}.language-control option{color:var(--white);background:#152421}
html:lang(zh){--serif:'Songti SC','Songti TC','Noto Serif CJK SC','PMingLiU',serif;--mono:'PingFang SC','PingFang TC','Microsoft YaHei',sans-serif}html:lang(zh) h1{font-size:46px;line-height:1.25;letter-spacing:2px}html:lang(zh) .dialogue-text{font-size:23px;line-height:1.7}html:lang(zh) .speaker-line h2{font-size:26px}html:lang(zh) .below-game p{font-size:15px}html:lang(zh) .eyebrow{letter-spacing:2px}
@media(max-width:760px){.site-header nav{gap:12px}.language-control{gap:5px}.language-control svg{display:none}.language-control select{font-size:10px;padding:7px 3px;max-width:90px}.brand{gap:8px;font-size:10px;letter-spacing:1.6px}.brand small{font-size:5.5px;letter-spacing:1px}html:lang(zh) h1{font-size:34px;letter-spacing:1px}html:lang(zh) .dialogue-text{font-size:21px;line-height:1.65}html:lang(zh) .below-game p{font-size:13px;line-height:1.65}html:lang(zh) .chapter-mark small{font-size:15px}}

html:lang(zh) h1 em{white-space:nowrap}
