:root{color-scheme:light;--ink:#322a23;--red:#852f24;--paper:#f3ead6}*{box-sizing:border-box}body{margin:0;background:#231d19;color:var(--ink);font-family:Georgia,'Noto Serif CJK SC','Songti SC',serif;line-height:1.85}main{max-width:760px;margin:auto;background:var(--paper);min-height:100vh;border-inline:1px solid #aa8961}header{background:#2b2b29;color:#eee0be;padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:14px}h1{font-size:25px;letter-spacing:3px;margin:0}header small{color:#c1aa84}header button{background:transparent;color:#efdfba;border-color:#756650}button{font:inherit;line-height:1.4;min-height:44px;border:1px solid #bca27d;background:#f5eedf;color:var(--ink);padding:9px 15px;cursor:pointer;border-radius:3px}button:hover{background:#e6d9bd}button:focus-visible,textarea:focus-visible{outline:3px solid #4a6a70;outline-offset:2px}button:disabled{opacity:.55;cursor:wait}nav{display:flex;border-bottom:1px solid #c6af8c;padding:7px 14px;gap:5px}nav button{flex:1;background:transparent;border-color:transparent;padding-inline:8px}nav button[aria-pressed=true]{color:var(--red);border-bottom:2px solid var(--red);border-radius:0}.scene{height:135px;color:#e6d9b7;background:radial-gradient(ellipse at 14% 75%,#ac7837 0,transparent 24%),linear-gradient(130deg,#353935,#1f333b 60%,#252522);display:flex;flex-direction:column;justify-content:end;padding:22px;letter-spacing:3px}.scene small{font-size:11px;letter-spacing:0;opacity:.8}.reading{padding:22px 26px 30px}.chapter{border-bottom:1px solid #c3a47b;display:flex;align-items:baseline;gap:14px}.chapter span{font-size:12px;color:#8d7454}h2{font-size:27px;letter-spacing:2px;margin:0 0 15px}#facts{color:var(--red);font-size:14px;padding:13px 0;border-bottom:1px solid #d6c5a7}#log article{white-space:pre-wrap;margin:22px 0;font-size:18px;overflow-wrap:anywhere}#log article.player{font-size:15px;border-left:2px solid #a17d54;padding:8px 12px;background:#eae0cb;color:#5d5141}form{border-top:1px solid #c6ad8c;padding-top:18px}label{display:block;font-size:17px}.suggestions{display:flex;gap:9px;margin:10px 0}.suggestions button{flex:1;font-size:15px}textarea{font:inherit;font-size:17px;width:100%;resize:vertical;min-height:105px;padding:12px;border:1px solid #756a55;background:#fffcf3;color:var(--ink);border-radius:3px}.primary{background:var(--red);border-color:#592e26;color:#fff1d1}.primary:hover{background:#6c271e}#continue{display:block;width:100%;margin-top:9px}details{border-top:1px solid #c6af8c;padding:10px 0}summary{cursor:pointer;font-size:21px;min-height:44px;display:list-item;padding:5px}dl{display:grid;grid-template-columns:minmax(70px,1fr) minmax(0,3fr);gap:0;margin:10px 0}dt,dd{padding:8px 4px;border-bottom:1px solid #dbcaaf;font-size:15px;margin:0;overflow-wrap:anywhere}.hint{font-size:14px;color:#78634a}.return{margin-top:20px}.seal{border:2px solid #a78356;border-radius:50%;width:140px;height:140px;margin:25px auto;text-align:center;font-size:29px;display:flex;flex-direction:column;justify-content:center;background:#e1d0ad}.seal span{font-size:18px}footer{text-align:center;font-size:12px;color:#7e6a53;padding:15px}dialog{max-width:min(500px,calc(100vw - 28px));border:1px solid #9c7c50;background:var(--paper);color:var(--ink);padding:25px;border-radius:4px}dialog::backdrop{background:#1b161acc}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{flex:1}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;padding:8px 16px;background:#332b23;color:#fff1d1;border-radius:4px;display:none;font-size:14px}[hidden]{display:none!important}@media(max-width:420px){.reading{padding:18px 19px 24px}header{padding:13px 18px}h1{font-size:22px}header button{font-size:13px;padding:8px}nav{padding-inline:9px}nav button{font-size:15px}#log article{font-size:17px}.scene{height:120px;padding:18px}h2{font-size:24px}}

#log article.receipt{font-size:14px;color:#6e5639;border:1px solid #cab38e;padding:12px;background:#e8ddc6}#world-facts p{font-size:15px;overflow-wrap:anywhere}

input,select{font:inherit;width:100%;min-height:44px;padding:8px;border:1px solid #756a55;background:#fffcf3;color:var(--ink)}#creation{max-height:90vh;overflow-y:auto;width:500px}#creation label{margin:8px 0}#shanhe-record p{overflow-wrap:anywhere}#confirmation p{overflow-wrap:anywhere}

#configuration{padding:12px 22px;border-bottom:1px solid #bca27d;background:#eadcc1}#configuration p{margin:0 0 8px}#configuration a{display:inline-block;min-height:44px;margin-right:16px;color:#852f24}

/* Reused lamp-contract concept: real text and controls stay on a continuous paper page. */
body{background:radial-gradient(ellipse at 12% 8%,#4b3827 0,transparent 45%),radial-gradient(ellipse at 85% 34%,#20343a 0,transparent 55%),#181c1d;color:#302a24}
main{max-width:1000px;margin:28px auto;border:1px solid #ae9164;box-shadow:0 0 0 5px #2b2822,0 0 0 6px #66543a,0 20px 90px #0009;background-color:#f3ead6;background-image:radial-gradient(ellipse at 95% 100%,#cfb88b33,transparent 48%),repeating-linear-gradient(7deg,#6d543503 0 1px,transparent 1px 5px)}
header{padding:20px 34px;background:linear-gradient(125deg,#343331,#172b31);border-bottom:3px double #967c54;position:relative}
h1{font-size:29px;letter-spacing:5px;color:#f1e3c3;text-shadow:0 2px 3px #0007}header small{font-size:12px;letter-spacing:1px;color:#d3bd94}header button{font-size:14px;border:1px solid #907852;background:#171e1e55;padding-inline:17px}
nav{position:sticky;top:0;z-index:3;background:#f3ead6;padding:8px 30px;border-block:1px solid #bd9f72;box-shadow:0 3px 10px #3c271310}nav button{font-size:17px;letter-spacing:1px}nav button[aria-pressed=true]{background:#ddc69b22;border-bottom-color:#88392c}
.scene{height:255px;position:relative;overflow:hidden;padding:24px 36px;background:radial-gradient(ellipse at 15% 68%,#9d6d35,transparent 27%),linear-gradient(125deg,#363a35,#1e343d 65%,#272824);border-bottom:3px double #b39565}
.scene-art{position:absolute;inset:0;width:100%;height:100%;display:block;background-image:url("/assets/lamp-board.png");background-size:337.3% auto;background-position:3.47% 29.03%;background-repeat:no-repeat}.scene-shade{position:absolute;inset:0;background:linear-gradient(transparent 35%,#172123c9 100%)}.scene>span{position:relative;color:#f5e6c2;font-size:18px;letter-spacing:4px;text-shadow:0 2px 5px #000}.scene:not([data-place="楼"]) .scene-art{display:none}.scene:not([data-place="楼"]){height:140px}
.reading{padding:30px 44px 40px;max-width:860px;margin:auto}.chapter{padding-bottom:7px;border-bottom:1px solid #b99b70;position:relative}.chapter:after{content:'✧';position:absolute;right:0;bottom:-14px;background:#f3ead6;color:#947042;padding:0 8px}h2{font-size:29px;letter-spacing:3px;color:#322c24}.chapter h2{margin-bottom:8px}.chapter span{color:#806849}#facts{font-size:14px;line-height:1.85;color:#814c39;padding:16px 0;border-bottom:1px solid #d2bd99}
#log article{font-size:18px;line-height:2.05;margin:24px 0;color:#352e27;letter-spacing:.15px}#log article.player{color:#695740;border-inline-start:3px solid #a27e4e;background:#dfd0af4d;font-size:15px;line-height:1.85}#log article.receipt{background:#dcc9a54d;border:1px solid #c9b085;color:#72583b;font-size:14px}
#turn{border-top:3px double #c2a276;padding-top:23px;margin-top:30px}#turn>label{font-size:18px;letter-spacing:1px}.suggestions button{background:#f8f0e0;border:1px solid #bfa27b;box-shadow:inset 0 0 0 3px #ebdcc1;font-size:15px}textarea{border:1px solid #615441;box-shadow:inset 0 0 0 3px #e8ddc8;padding:14px;background:#fffaf0;font-size:17px;line-height:1.8;min-height:115px}.primary{background:linear-gradient(#983e2f,#772c22);border:1px solid #5f2b21;box-shadow:inset 0 0 0 2px #b16f4144}#continue{font-size:18px;letter-spacing:4px;min-height:49px;margin-top:14px}
#groups{margin-top:26px}#groups details{padding:14px 0;border-top:1px solid #c5ab82}#groups summary{font-size:23px;color:#46372b;padding:3px 6px}#groups summary small{display:block;font-size:13px;line-height:1.7;color:#7d674c;font-weight:normal;letter-spacing:0;margin-left:25px;max-width:100%;overflow-wrap:anywhere}#groups details[open] summary{color:#85382b}#groups details[open] summary small{display:none}#groups dl{padding-left:20px}dt{color:#766048}dd{color:#332d26}dt,dd{padding-block:12px;font-size:16px}
#shanhe .reading{max-width:720px}#shanhe h2{text-align:center;margin-bottom:0}#shanhe .reading>p{text-align:center;font-size:15px;line-height:1.9;color:#725e42}.seal{width:240px;height:240px;border:0;background:none;position:relative;margin:24px auto 16px}.seal>img{width:100%;height:100%;position:absolute;inset:0}.seal>div{position:relative;font-size:25px;color:#f0ddb6;line-height:1.5;text-shadow:0 2px 2px #0008}.seal span{display:block;font-size:15px;letter-spacing:1px;color:#d5bc8d}#shanhe-fees{border-block:3px double #c5a579;padding-block:8px}#shanhe .actions{margin:20px 0 28px}#shanhe .actions button{background:#263b40;color:#f3e1bc;border-color:#9c7b51;box-shadow:inset 0 0 0 3px #ae92642b;font-size:19px;letter-spacing:2px}#shanhe .actions button:last-child{background:#8a382b}#shanhe-record summary{font-size:17px;letter-spacing:1px}#shanhe-record p{font-size:15px;color:#725a3e}footer{border-top:1px solid #d2bb95;background:#e6d8bd44}
dialog{border:3px double #947345;box-shadow:0 20px 80px #0006;padding:27px;background:linear-gradient(135deg,#fbf3e2,#e9dbbe)}dialog::backdrop{background:#101c21bd;backdrop-filter:blur(2px)}button:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #496b76;outline-offset:3px}#configuration{background:#eadcbe}#notice{z-index:5;box-shadow:0 4px 20px #0003}
@media(max-width:700px){main{margin:0;border:0;box-shadow:inset 3px 0 #9a7c4c,inset -3px 0 #9a7c4c}header{padding:15px 19px}h1{font-size:23px;letter-spacing:3px}header button{font-size:12px;padding:9px 10px}nav{padding:7px 10px}nav button{font-size:15px;letter-spacing:0}.scene{height:172px;padding:17px 20px}.scene>span{font-size:15px;letter-spacing:2px}.reading{padding:25px 23px 30px}h2{font-size:25px}#log article{font-size:17px;line-height:2}#facts{font-size:13px}.chapter span{font-size:11px}#groups summary{font-size:21px}#groups dl{padding-left:5px}dt,dd{font-size:14px}.seal{width:210px;height:210px}#configuration{padding-inline:20px}}
