:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Noto Sans TC,sans-serif;color:#efece3;background:#141c20;font-synthesis:none;font-weight:400;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;min-height:46px;border:1px solid #bdc1b545;background:#18242ac9;padding:12px 20px;transition:background .2s}button:hover{background:#3b4b4b}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #e7c997;outline-offset:4px}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}.app{min-height:100svh;position:relative;isolation:isolate;display:flex;flex-direction:column;padding:32px max(6vw,24px) max(18px,env(safe-area-inset-bottom));overflow:hidden}.scenery{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#101b20de,#24333788 55%,#121a20cc),linear-gradient(150deg,#79776a,#3c5157 40%,#1d2e37 70%);transition:background 1s}.window{position:absolute;width:52%;height:69%;left:31%;top:-10%;background:linear-gradient(115deg,#d8c5a743,#9bafb333 50%,#142b38aa);border:20px solid #1d292c;box-shadow:0 0 90px #ead3aa18;transform:skewY(-5deg)}.window:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 82px,#182326 83px 91px),linear-gradient(90deg,transparent 48%,#1b282c 48% 51%,transparent 51%)}.horizon{position:absolute;left:34%;top:13%;width:45%;height:38%;opacity:.35;background:repeating-linear-gradient(90deg,#1b3039 0 23px,transparent 24px 47px);filter:blur(7px)}.table{position:absolute;bottom:17%;right:-15%;width:95%;height:23%;background:linear-gradient(178deg,#8f796159,#2b2c26 15%,#0f171b 65%);transform:rotate(-5deg);box-shadow:0 -2px #d8c8a225}.cup{position:absolute;bottom:33%;right:24%;width:65px;height:83px;border-radius:5px 5px 24px 24px;background:linear-gradient(90deg,#445051,#aaa897,#434b48);box-shadow:22px 15px 22px #0008}.cup:after{content:"";position:absolute;right:-24px;top:10px;width:24px;height:38px;border:7px solid #7f8579;border-left:0;border-radius:0 20px 20px 0}.grain{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#ffffff02 0 1px,transparent 1px 3px);pointer-events:none}.rain .scenery{background:linear-gradient(90deg,#0c1b25e6,#233e50a1),repeating-linear-gradient(110deg,#576b75 0 1px,#192c36 1px 12px)}.rain .window{opacity:.5}.dinner .scenery{background:radial-gradient(ellipse at 75% 12%,#d1a26577,transparent 60%),linear-gradient(90deg,#131e24,#493c2d)}.night .scenery{background:radial-gradient(ellipse at 76% 30%,#b3864d4d,transparent 40%),linear-gradient(90deg,#0b141c,#1d2a35)}header{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-family:serif;font-size:23px;letter-spacing:.25em}.brand span{display:block;font-family:system-ui;font-size:8px;letter-spacing:.29em;margin-top:7px;color:#b7bcb7}.edition{font-size:11px;letter-spacing:.12em;color:#c2c1b6}.landing{padding:clamp(60px,13vh,150px) 0 50px;max-width:700px}.eyebrow{color:#d5bc92;font-size:10px;letter-spacing:.23em;line-height:1.8}.landing h1{font-family:serif;font-weight:400;font-size:clamp(40px,5.5vw,76px);line-height:1.4;letter-spacing:.1em;margin:25px 0}.intro{font-size:15px;line-height:2.2;color:#c9d0cd}.landing-actions{display:flex;gap:12px;margin-top:34px}.primary{background:#cfb791;color:#18232a;border:0;min-width:210px;display:flex;justify-content:space-between}.primary:hover{background:#e3cda9}.fine{font-size:11px;line-height:2;color:#a8b3b2;margin-top:25px}.scene-heading{margin:48px 0 24px}.scene-heading h1{font-family:serif;font-weight:400;letter-spacing:.13em;font-size:clamp(27px,4vw,44px);margin:12px 0}.scene-heading>p:last-child{color:#b5c1c1;font-size:12px;letter-spacing:.07em}.scene-heading span{margin:0 12px;color:#b39c77}.progress{display:flex;gap:25px;margin-bottom:32px}.progress>span{display:flex;align-items:center;gap:10px;opacity:.36}.progress b{font-size:11px;font-weight:400;padding-bottom:7px;border-bottom:1px solid #c9bea1}.progress em{font-style:normal;font-size:10px}.progress .current{opacity:1;color:#e5cba0}.progress .visited{opacity:.7}.reader{width:min(840px,100%);margin:auto 0 20px}.dialogue{background:linear-gradient(110deg,#101c24f5,#192932ee);border:1px solid #8b9d9e40;border-top:2px solid #a68d68;padding:26px 32px 15px;box-shadow:0 15px 60px #0003}.speaker{font-size:12px;letter-spacing:.14em;color:#dfc29b;margin:0 0 18px}.text{font-family:serif;font-size:19px;line-height:2;letter-spacing:.06em;margin:0;min-height:100px;animation:appear .35s ease}.dialogue-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px;min-height:46px}.dialogue-footer>span{font-size:10px;color:#94a6ac}.next{border:0;background:transparent;padding:10px;min-width:100px;font-size:12px;letter-spacing:.15em}.next span{margin-left:15px;color:#d4b78c}.choices{padding-top:16px}.choices>p{font-size:10px;color:#b7b8a8;letter-spacing:.12em}.choices button{display:flex;align-items:center;width:100%;text-align:left;gap:16px;margin-top:8px;background:#172832eb;font-size:14px;line-height:1.8}.choices button>span{font-size:10px;color:#c6ad84}.choices button>b{margin-left:auto;font-weight:400;color:#c6ad84}footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:20px;color:#a1aeae}footer>span{font-size:9px}footer nav{display:flex;gap:8px}footer button{border:0;background:none;font-size:11px;min-width:55px;padding:8px}.metrics{display:flex;gap:22px;background:#111e26e8;padding:10px 16px;font-size:12px;color:#d8c8ac}.chapter-end{padding:32px;background:#12202aee;border:1px solid #bfa88155;line-height:2}.chapter-end h2{font-family:serif;font-weight:400}.chapter-end p{font-size:14px;color:#bbc8c9}.chapter-end button{margin:8px 10px 0 0;font-size:13px}.notice{position:fixed;bottom:20px;left:5%;right:5%;max-width:700px;padding:12px 18px;background:#decba8;color:#182128;z-index:5;font-size:13px;box-shadow:0 5px 20px #0008;display:flex;align-items:center;gap:15px}.notice button{margin-left:auto;color:#182128;background:transparent;border:0;padding:0 10px;font-size:22px}dialog{width:min(650px,92vw);max-height:85svh;color:#e5e8e1;background:#162630;border:1px solid #af9e7e66;padding:24px;box-shadow:0 20px 100px #000a}dialog::backdrop{background:#030d14bb;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #abb9b333;padding-bottom:12px}.modal-heading h2{font-family:serif;font-weight:400;letter-spacing:.1em;font-size:22px;margin:0}.modal-heading button{border:0;background:none;font-size:25px}.history,.settings{line-height:1.9;font-size:14px}.history strong{display:block;color:#d9bd94;font-size:11px;margin-bottom:5px}.history>p{padding:12px 0;border-bottom:1px solid #a4b6bb22}.history h3{font-size:16px;color:#d9bd94;margin-top:30px}.history h4{font-weight:500}.settings>p{color:#b9c6c8}.settings label{display:flex;align-items:center;gap:14px;margin:22px 0}.settings input{width:20px;height:20px;accent-color:#cbb18b}.settings>button{display:block;width:100%;margin:12px 0}.confirm{border-top:1px solid #a8967255;margin-top:20px}.confirm button{margin-right:10px}.large .text{font-size:23px}@keyframes appear{0%{opacity:.3;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(max-width:600px){.app{padding:calc(20px + env(safe-area-inset-top)) 20px max(12px,env(safe-area-inset-bottom));min-height:100svh}.brand{font-size:20px}.edition{font-size:9px}.landing{padding-top:90px}.landing h1{font-size:40px}.landing-actions{flex-direction:column;max-width:300px}.scene-heading{margin:35px 0 17px}.progress{gap:0;justify-content:space-between;margin-bottom:24px}.progress>span{gap:0;flex-direction:column;align-items:flex-start}.progress em{display:none}.progress b{min-width:40px}.progress .current em{display:block;font-size:9px;position:absolute;margin-top:23px}.reader{margin-top:auto;padding-top:16px}.dialogue{padding:22px 21px 10px}.text{font-size:18px;line-height:1.95;min-height:125px}.choices button{font-size:13px;padding:13px 12px;gap:10px}.choices button>b{display:none}footer{padding-top:10px}footer>span{font-size:8px;max-width:95px;line-height:1.7}footer nav{gap:0}.window{left:25%;width:70%}.cup{right:18%;bottom:41%}.table{bottom:25%}.chapter-end{padding:22px}.metrics{font-size:11px;gap:15px}}@media(max-height:700px)and (min-width:601px){.scene-heading{margin-top:20px}.progress{margin-bottom:15px}.text{min-height:70px}.landing{padding-top:30px}}
