:root{--paper:#f5f4ef;--white:#fffefa;--ink:#202f3d;--muted:#697680;--blue:#244c69;--line:#d9dedc;--accent:#997343}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,'Microsoft JhengHei',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #799bb1;outline-offset:4px}.masthead{height:104px;max-width:1320px;padding:0 56px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-family:serif;font-size:34px;font-weight:bold;letter-spacing:9px;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:20px}.brand span{font:10px system-ui;letter-spacing:4px;color:var(--muted)}.edition{font-size:11px;letter-spacing:3px;color:var(--muted)}.edition span{margin-left:24px;color:var(--accent)}.quiet{border:0;background:transparent;color:var(--muted);font-size:12px;padding:12px}.quiet:hover{color:var(--blue);text-decoration:underline}.layout{max-width:1208px;margin:54px auto 72px;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:80px;padding:0 36px}.reader{min-width:0}.chapter-line{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;color:var(--muted)}.progress{height:2px;background:var(--line);margin:18px 0 48px}.progress div{height:100%;background:var(--blue);transition:width .4s}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--accent);margin:0 0 14px}h1{font-family:'Noto Serif TC','Songti TC','PMingLiU',serif;font-weight:500;font-size:42px;letter-spacing:7px;margin:0 0 30px;line-height:1.4}.prose{font-family:'Noto Serif TC','Songti TC','PMingLiU',serif;font-size:18px;line-height:2.05;letter-spacing:.5px;min-height:238px}.prose p{margin:0 0 18px}.prose p:first-child:first-letter{font-size:25px}.choices-head{margin:36px 0 16px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;color:var(--muted)}#choice-note{font-size:10px;letter-spacing:1px}.choices{display:grid;gap:10px}.choice{width:100%;text-align:left;background:var(--white);border:1px solid var(--line);padding:18px 20px;display:grid;grid-template-columns:30px 1fr 16px;gap:12px;align-items:center;color:var(--ink);border-radius:3px;transition:background .15s,border-color .15s}.choice:hover:not(:disabled){background:#edf2f4;border-color:#7292a7}.choice:disabled{opacity:.45;cursor:not-allowed}.choice .num{font-family:serif;font-size:14px;color:var(--accent)}.choice strong{font-size:15px;font-weight:500;display:block;margin-bottom:5px}.choice small{font-size:11px;color:var(--muted);line-height:1.7;display:block}.choice .arrow{color:var(--blue)}.save-status{text-align:right;font-size:10px;color:var(--muted);margin-top:18px}.portrait{height:200px;background:#e5edef;position:relative;overflow:hidden;border-radius:3px}.moon{position:absolute;width:65px;height:65px;border-radius:50%;background:#faf9ed;left:45px;top:25px}.mountain{position:absolute;width:340px;height:200px;transform:rotate(35deg);border-radius:45px;top:105px;left:-110px;background:#c3d1d4}.mountain.two{left:85px;top:105px;background:#9bb2bc;transform:rotate(-30deg)}.mountain.three{left:-10px;top:165px;background:#688693;transform:rotate(15deg)}.portrait>span{position:absolute;right:22px;top:23px;writing-mode:vertical-rl;letter-spacing:6px;font:13px serif;color:#4a6473}.character{padding:26px 0;border-bottom:1px solid var(--line)}.character h2{font:26px serif;letter-spacing:5px;margin:0 0 8px}.character>p:last-of-type{font-size:11px;color:var(--muted)}.stat{margin-top:20px}.stat-label{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-bottom:8px}.meter{height:4px;background:#dde3e1}.meter div{height:100%;background:#66827a;transition:width .3s}.stat.energy .meter div{background:#64849e}.memory{padding-top:25px}.side-heading{display:flex;justify-content:space-between;align-items:center}.side-heading h2{font-size:12px;letter-spacing:3px;font-weight:500;margin:0}.side-heading span{font:12px serif;color:var(--accent)}.aside-note{font-size:10px;color:var(--muted);line-height:1.8}#journal{padding:0;list-style:none;max-height:400px;overflow:auto}#journal li{font-size:11px;line-height:1.9;padding:0 0 14px 16px;border-left:1px solid var(--line);position:relative;color:#54636d}#journal li:before{content:'';position:absolute;left:-3px;top:7px;width:5px;height:5px;background:#91a2a7;border-radius:50%}.restart{padding-left:0;margin-top:14px}.result{padding:18px 20px;background:#eaf0ee;border-left:3px solid #658175;margin:24px 0;font-size:13px;line-height:1.8}.combat{border:1px solid var(--line);padding:20px;margin:24px 0;background:#f0f2ef;font-size:14px;line-height:1.8}.combat h2{font-size:15px;margin:0 0 10px}.combat p{margin:10px 0}.combat .meta{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:26px 56px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:4px;background:var(--white);color:var(--ink);padding:30px;max-width:500px;width:calc(100% - 40px);line-height:1.9}dialog::backdrop{background:#1b2e3f66}dialog h2{font:24px serif}dialog p{font-size:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.primary{border:0;background:var(--blue);color:white;padding:12px 18px;border-radius:3px}#scene:focus{outline:none}[hidden]{display:none!important}@media(max-width:850px){.masthead{height:80px;padding:0 24px}.edition{display:none}.layout{gap:35px;padding:0 24px;margin-top:32px;grid-template-columns:minmax(0,1fr) 220px}.brand{font-size:28px}.brand span{display:none}.portrait{height:155px}h1{font-size:34px}.prose{font-size:17px}}@media(max-width:620px){.layout{display:flex;flex-direction:column;margin-bottom:35px}.progress{margin-bottom:32px}.sidebar{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line);padding-top:25px}.portrait{display:none}.character{padding-top:0}.character h2{font-size:22px}.character #stats{display:grid;grid-template-columns:1fr 1fr;gap:24px}.memory{padding-top:22px}#journal{max-height:none}.prose{min-height:0}h1{font-size:32px;letter-spacing:5px}.choice{padding:16px 14px;gap:7px}.choices-head{margin-top:28px}footer{padding:22px 24px;line-height:2;gap:18px}.chapter-line{letter-spacing:1px}.save-status{text-align:left}}
