:root{color-scheme:dark;--ink:#edf0e9;--muted:#b3c0ba;--gold:#d4b580;--line:#c9d7c52b;--panel:#102628ed}*{box-sizing:border-box}body{margin:0;background:#091b20;color:var(--ink);font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;font-size:16px;min-height:100svh;display:flex;flex-direction:column}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:none;border:1px solid var(--line);min-height:46px;padding:10px 19px;border-radius:3px;transition:background .2s,border-color .2s}button:hover{background:#b4c7bf17;border-color:#d4b580a6}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{opacity:.45;cursor:not-allowed}button[hidden],[hidden]{display:none!important}.backdrop{position:fixed;inset:0;background:url('title.webp') center/cover no-repeat;z-index:-3}.shade{position:fixed;inset:0;background:linear-gradient(90deg,#07191de8 0%,#07191da1 42%,#07191d13 100%),linear-gradient(0deg,#07191df5 0%,transparent 60%,#07191d6e);z-index:-2}header{display:flex;align-items:center;justify-content:space-between;margin:0 5%;padding:27px 0;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;font-family:serif;font-size:23px;letter-spacing:5px}.brand small{display:block;letter-spacing:3px;font:10px sans-serif;margin-top:6px}.seal{border:1px solid var(--gold);color:var(--gold);padding:7px 8px;font-size:26px;letter-spacing:0}.chapter{font-size:13px;letter-spacing:3px;color:var(--muted)}.chapter span{margin-left:24px;color:var(--ink)}.quiet{border:none;color:var(--muted);font-size:14px}main{width:90%;max-width:1450px;margin:0 auto;flex:1}#opening{padding:9vh 0 6vh;min-height:640px;position:relative}.eyebrow{color:var(--gold);font-size:13px;letter-spacing:4px;margin:0 0 20px}h1{font-family:"Noto Serif TC","Songti TC",serif;font-size:clamp(42px,5.2vw,78px);line-height:1.4;font-weight:400;letter-spacing:9px;margin:0 0 26px}.intro{color:#d1d9d3;line-height:2.1;letter-spacing:1px}.start-actions{display:flex;gap:12px;margin:34px 0 18px}.primary{background:var(--gold);border-color:var(--gold);color:#14292a;padding:14px 28px;font-weight:600}.primary:hover{background:#ead0a4}.primary span{font-size:12px;margin-left:35px;font-weight:400}.outline{background:#10252970}.small{font-size:12px;color:var(--muted);letter-spacing:1px}.opening-note{position:absolute;right:2%;top:17%;writing-mode:vertical-rl;display:flex;gap:20px;font-family:serif;letter-spacing:6px;line-height:2;color:#e1e1cfbd;font-size:16px}footer{display:flex;justify-content:space-between;align-items:center;padding:20px 5%;border-top:1px solid var(--line);gap:20px;color:var(--muted);font-size:12px}footer nav{display:flex;gap:20px}footer button{border:none;padding:8px 0;min-height:40px;font-size:14px}#clue-count{color:var(--gold);font-size:12px;margin-left:8px}.scene-top{display:flex;justify-content:space-between;align-items:center;padding-top:30px}.scene-top h1{font-size:38px;letter-spacing:5px;margin-bottom:0}.scene-top .eyebrow{font-size:12px;margin-bottom:10px}.stage{min-height:210px;display:flex;flex-direction:column;justify-content:space-between;padding:24px 0}.scene-caption{font-family:serif;color:#e1e5dc;font-size:16px;letter-spacing:2px;max-width:490px;line-height:1.8}.hotspots{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}.hotspot{background:#0b2329b8;backdrop-filter:blur(12px);display:flex;gap:12px;align-items:center;text-align:left}.hotspot .dot{border:1px solid var(--gold);width:9px;height:9px;transform:rotate(45deg)}.hotspot.done .dot{background:var(--gold)}.story-panel{background:linear-gradient(120deg,#10272af2,#0b2023ee);border:1px solid #b9c2ad3f;border-top:2px solid #c0a373;padding:24px 32px;margin-bottom:28px;box-shadow:0 18px 55px #0003;min-height:220px}.story-label{display:flex;justify-content:space-between;color:var(--gold);font-size:14px;letter-spacing:2px}#time{font-size:12px;color:var(--muted)}#narrative{font-family:"Noto Serif TC","Songti TC",serif;font-size:18px;line-height:1.9;letter-spacing:.7px;margin:16px 0;white-space:pre-line;max-width:1050px}#choices{display:flex;gap:10px;flex-wrap:wrap}#choices button{font-size:14px;text-align:left;border-color:#9aaea04d;background:#173237aa}dialog{width:min(640px,92vw);max-height:85svh;border:1px solid #8b9a8760;background:#102629;color:var(--ink);padding:28px 32px;box-shadow:0 40px 120px #0008}dialog::backdrop{background:#030e16b8;backdrop-filter:blur(8px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;color:var(--gold);font-size:12px;letter-spacing:3px}.modal-heading button{border:none;font-size:20px;padding:6px 12px}h2{font:400 30px serif;letter-spacing:4px;margin:20px 0}dialog p{line-height:1.9;color:#c5d2ca}dialog .entry{padding:17px 0;border-top:1px solid var(--line)}dialog h3{font-size:17px;font-weight:500;color:var(--gold);margin:0 0 8px}dialog .entry p{font-size:15px;margin:0}.map-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.map-list button{text-align:left;padding:18px}.map-list small{display:block;margin-top:9px;font-size:12px;color:var(--muted)}.map-list .selected{border-color:var(--gold)}#puzzle label{display:block;font-size:14px;color:var(--gold);margin:10px 0}#puzzle>div{display:flex;gap:10px}input{background:#061a1d;border:1px solid var(--line);color:var(--ink);width:145px;padding:10px;text-align:center;letter-spacing:12px;font-size:22px}#puzzle-feedback{color:var(--gold);font-size:14px}#toast{position:fixed;left:50%;top:100px;transform:translateX(-50%) translateY(-15px);opacity:0;pointer-events:none;background:#d5ba87;color:#102628;padding:12px 24px;border-radius:3px;transition:.25s;z-index:5;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.endmark{font-size:12px;letter-spacing:3px;color:var(--gold)}@media(min-width:1500px){#opening{padding-top:12vh}.stage{min-height:30vh}}@media(max-width:700px){header{padding:18px 0}.brand{font-size:20px}.chapter{display:none}.backdrop{background-position:58% center}.shade{background:linear-gradient(90deg,#07191dce,#07191d50),linear-gradient(0deg,#07191d 0%,transparent 90%)}main{width:90%}#opening{padding-top:9vh;min-height:600px}h1{font-size:46px;letter-spacing:5px}.opening-note{display:none}.intro{font-size:14px}.start-actions{flex-wrap:wrap}.scene-top h1{font-size:31px}.scene-top{gap:12px}.scene-top .outline{font-size:14px;padding:10px 12px}.stage{min-height:205px}.scene-caption{font-size:14px}.hotspots{gap:8px;margin-top:30px}.hotspot{font-size:14px;padding:10px 12px}.story-panel{padding:20px 18px}#narrative{font-size:17px}.story-label{font-size:13px}#choices{flex-direction:column}footer{flex-direction:column-reverse;gap:8px;padding:14px 5%}footer nav{width:100%;justify-content:space-between;gap:12px}dialog{padding:20px}.map-list{grid-template-columns:1fr}#puzzle>div{flex-wrap:wrap}.primary{padding:13px 20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Character exploration chapter */
body.playing .backdrop{transition:background-image .6s;background-position:center}.objective{display:flex;align-items:center;gap:20px;padding:15px 20px;margin-top:22px;border-left:2px solid var(--gold);background:#10282bda;max-width:900px}.objective>span{font-size:12px;letter-spacing:2px;color:var(--gold);white-space:nowrap}.objective p{margin:0;line-height:1.6;font-size:14px;flex:1}.objective button{border:0;font-size:12px;padding:6px;white-space:nowrap}.stage{position:relative;min-height:320px;justify-content:flex-end}.scene-caption{max-width:50%;margin-bottom:auto}.hotspots{position:relative;z-index:2;max-width:60%}.character{position:absolute;right:3%;top:-80px;width:300px;height:435px;border:1px solid #bba57550;overflow:hidden;background:#152a2c;box-shadow:0 15px 50px #0005;border-radius:100px 100px 3px 3px;animation:arrive .45s ease-out}.character img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}.character.lie img{object-position:6% 35%}.character.shu img{object-position:50% 30%}.character:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#081d23)}.character-tag{position:absolute;bottom:28px;left:28px;z-index:1;display:flex;flex-direction:column;gap:8px}.character-tag span{font:24px serif;letter-spacing:4px}.character-tag small{font-size:12px;color:var(--gold);letter-spacing:2px}#portrait-fallback{padding:65px 32px;line-height:2;color:var(--muted);font-family:serif}.story-panel{position:relative;z-index:3}#choices button{border-left:2px solid #b6a67c}.choice-kind{font-size:11px;color:#d5be91;margin-right:10px;letter-spacing:1px}#name-form label{display:block;color:var(--gold);margin:12px 0;font-size:14px}#name-form>div{display:flex;gap:12px}#player-name{width:min(270px,100%);letter-spacing:2px;font-size:18px;text-align:left}#name-error{color:#edba9e;font-size:14px}.map-list{grid-template-columns:1fr 1fr}.map-list button{min-height:85px}.map-list .map-zone{color:var(--gold);font-size:11px;letter-spacing:2px;margin-bottom:6px}.map-list small{line-height:1.5}.map-list .unknown{opacity:.7}.journal-tabs{display:flex;gap:8px;margin-bottom:16px}.progress-line{display:flex;gap:12px;line-height:1.8;margin:14px 0;font-size:15px}.progress-line>span:first-child{color:var(--gold)}.people-card{display:flex;gap:20px;align-items:center;padding:20px 0;border-top:1px solid var(--line)}.people-card img{width:75px;height:96px;object-fit:cover;object-position:50% 20%;border-radius:4px}.people-card h3{margin:0 0 6px}.people-card p{font-size:14px;margin:0}.bond{color:var(--gold);font-size:12px}.dialog-tag{font-size:12px;color:var(--muted);margin-bottom:8px}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:700px){.objective{padding:12px;gap:10px;flex-wrap:wrap;margin-top:16px}.objective>span{font-size:11px}.objective p{font-size:13px;flex-basis:65%}.objective button{margin-left:auto}.scene-top{padding-top:18px;align-items:start}.stage{min-height:320px;padding-top:14px}.character{right:0;top:10px;width:190px;height:280px;border-radius:70px 70px 2px 2px}.character-tag{left:16px;bottom:18px}.character-tag span{font-size:20px}.character-tag small{font-size:11px}.scene-caption{font-size:14px;max-width:42%;line-height:1.9;letter-spacing:1px}.hotspots{max-width:100%;margin-top:230px;gap:8px}.stage .hotspot{background:#09242df2;font-size:13px;min-height:44px}.story-panel{margin-top:0}#name-form>div{flex-wrap:wrap}#player-name{width:100%}.map-list{gap:8px}.map-list button{padding:13px;font-size:14px}footer nav{flex-wrap:wrap;gap:4px 15px}footer button{font-size:13px}#portrait-fallback{padding:25px 15px;font-size:13px}.people-card{gap:14px}}@media(prefers-reduced-motion:reduce){.character{animation:none}}

.character.lie img,.character.shu img{object-position:50% 20%}
.scene-top{position:relative;z-index:4}
@media(min-width:701px){.stage{min-height:370px}.character{top:0;height:365px;width:260px}}
.audio-header{display:flex;align-items:center;gap:6px}.audio-header button{padding:10px}.voice-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:8px 0 16px}.voice-bar button{padding:7px 12px;font-size:13px;min-height:40px}.voice-bar span{font-size:12px;color:var(--muted)}.voice-field{margin:18px 0}.voice-field label{display:block;margin:0 0 8px;font-size:15px;color:var(--gold)}.voice-field select{font:inherit;font-size:14px;width:100%;min-height:46px;background:#0a2025;color:var(--ink);border:1px solid var(--line);padding:10px;border-radius:3px}.voice-field input[type=range]{width:100%;padding:0;accent-color:var(--gold);height:32px}.voice-row{display:flex;align-items:center;gap:10px}.voice-row select{flex:1;min-width:0}.voice-row button{white-space:nowrap;font-size:13px}.voice-help{font-size:14px!important;line-height:1.8}.voice-summary{font-size:13px;color:var(--gold)}@media(max-width:700px){header{flex-wrap:wrap;gap:10px}.audio-header{margin-left:auto;gap:0}.audio-header button{font-size:12px;padding:8px;min-height:40px}.brand{font-size:18px}.voice-row{flex-wrap:wrap}.voice-row select{flex-basis:75%}}
