:root{--night:#101812;--paper:#EDE6D6;--moss:#5F7A5A;--moss-dim:#3A4A38;--moon:#D9B44A;--seal:#8A3B34;--card:#18221A}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--night);color:var(--paper);font-family:-apple-system,PingFang TC,Noto Sans TC,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,.serif{font-family:"Noto Serif TC",Georgia,serif;font-weight:600;letter-spacing:.04em}.wrap{max-width:520px;margin:0 auto;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}.gatehead{text-align:center;padding:28px 0 18px}.gatehead h1{margin:0;font-size:22px;color:var(--moon)}.gatehead p{margin:6px 0 0;font-size:13px;color:var(--moss)}.card{background:var(--card);border:1px solid var(--moss-dim);border-radius:12px;padding:16px;margin-bottom:14px}.card h2{margin:0 0 10px;font-size:17px;color:var(--paper)}label{display:block;font-size:12px;color:var(--moss);margin:12px 0 5px}input[type=text]{width:100%;padding:11px 12px;border-radius:8px;border:1px solid var(--moss-dim);background:var(--night);color:var(--paper);font-size:16px}.rolerow{display:flex;gap:8px;margin-top:6px}.rolebtn{flex:1;padding:10px;border-radius:8px;border:1px solid var(--moss-dim);background:transparent;color:var(--paper);font-size:14px}.rolebtn.on{border-color:var(--moon);color:var(--moon)}button.go{width:100%;margin-top:14px;padding:12px;border:none;border-radius:8px;background:var(--moss);color:var(--night);font-size:15px;font-weight:600}button.go:disabled{opacity:.4}.plate{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--moon);border-radius:10px;padding:10px 14px;margin-bottom:14px;background:var(--card)}.plate .who{font-size:12px;color:var(--moss);text-align:right;line-height:1.5}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--moss-dim);margin-left:6px;vertical-align:middle}.dot.on{background:var(--moon)}.log{display:flex;flex-direction:column;gap:8px;margin:14px 0}.evt{background:var(--card);border:1px solid var(--moss-dim);border-radius:8px;padding:10px 12px;font-size:14px;line-height:1.6}.evt .meta{font-size:11px;color:var(--moss);margin-bottom:2px}.evt.mine{border-color:var(--moss)}.evt.hand{border-color:var(--moon);background:#1d2418;font-family:"Noto Serif TC",Georgia,serif}.empty{color:var(--moss);font-size:13px;text-align:center;padding:30px 0}.actrow{display:flex;gap:8px}.actrow input{flex:1}.leave{margin-top:22px;width:100%;padding:10px;background:transparent;border:1px solid var(--moss-dim);border-radius:8px;color:var(--moss);font-size:13px}.leave.switch{margin-top:8px;border-style:dashed}.hint{font-size:12px;color:var(--moss);line-height:1.7;margin-top:6px}.err{color:var(--seal);font-size:13px;margin-top:8px}.room{padding-top:0}.garden{display:block;width:100%;height:auto;margin:0 0 10px;border-radius:0 0 14px 14px}button.go.ghost{background:transparent;border:1px solid var(--moss);color:var(--paper);margin-top:8px}.verdictrow{display:flex;gap:8px}.verdictrow .v{flex:1;padding:11px 6px;border-radius:8px;border:1px solid var(--moss-dim);background:transparent;color:var(--paper);font-size:14px}.v.allow{border-color:var(--moss)}.v.deny{border-color:var(--seal)}.v.hold{border-color:var(--moon)}.ledger .walletline{font-size:14px;letter-spacing:.05em;margin:0}.tracelist{margin-top:8px;border-top:1px solid var(--moss-dim);padding-top:8px}.trace{font-size:12px;color:var(--moss);margin:4px 0;line-height:1.6}.dimbtn{margin-top:10px;width:100%;padding:9px;background:transparent;border:1px dashed var(--moss-dim);border-radius:8px;color:var(--moss);font-size:13px}.eyebrow{margin:0 0 6px;color:var(--moon);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.storycopy,.scene-copy p{font-size:15px;line-height:1.9;color:#e6e0d1}.storycopy{margin:8px 0 14px}.trailhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.phase{font-size:11px;color:var(--moss);padding-top:4px}.scene-title{font-size:23px!important;margin-bottom:14px!important}.scene-copy{border-top:1px solid var(--moss-dim);padding-top:12px;margin-top:4px}.scene-copy p{margin:0 0 10px}.contractpick{display:flex;flex-direction:column;gap:8px}.contractopt{padding:12px;text-align:left;border-radius:10px;border:1px solid var(--moss-dim);background:var(--night);color:var(--paper)}.contractopt span{display:block;color:var(--paper);font-size:15px}.contractopt small{display:block;color:var(--moss);font-size:11px;line-height:1.5;margin-top:3px}.contractopt.on{border-color:var(--moon);box-shadow:0 0 0 1px #d9b44a24}.contractopt.on span{color:var(--moon)}.world-actions,.place-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}.world-actions button,.place-actions button{padding:13px 14px;border-radius:9px;border:1px solid var(--moss-dim);background:#111913;color:var(--paper);font-size:15px;text-align:left}.world-actions button:active,.place-actions button:active{border-color:var(--moon)}.pocket{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:10px 0 2px;font-size:11px;color:var(--moss)}.pocket b{font-weight:500;color:var(--moon);border:1px solid var(--moss-dim);padding:4px 7px;border-radius:999px}.discoveries{margin-top:14px;padding:10px 12px;border-left:2px solid var(--moss-dim);background:#00000014}.discoveries p{font-size:12px;color:var(--moss);line-height:1.6;margin:3px 0}.contract-buried{margin-top:14px;padding-top:10px;border-top:1px solid var(--moss-dim);font-size:11px;color:var(--moss)}.phasecard{border-color:#314433}.phasecard .phasehint{margin:6px 0 0;color:var(--moss);line-height:1.7}.noticecard{border-color:var(--moon);background:#1b2419}.contractcard{border-color:var(--seal)}.verdictcard.hand{border-color:var(--moon);background:#1d2418}.verdictcard .big{font-size:17px;margin:2px 0 0}.courtyard-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.placebtn{min-height:102px;padding:11px;border-radius:10px;border:1px solid var(--moss-dim);background:#111913;color:var(--paper);text-align:left}.placebtn span{display:block;font-size:15px;margin-bottom:6px}.placebtn small{display:block;font-size:11px;line-height:1.55;color:var(--moss)}.placebtn.on{border-color:var(--moon)}.placebtn.on span{color:var(--moon)}.privatebox{margin-top:14px;padding:10px 12px;border-radius:8px;background:#111913;border:1px dashed var(--moss-dim)}.privatebox p{margin:2px 0;font-size:12px;line-height:1.6}.dogvoice{margin-top:2px}.raise{border-color:var(--moon)}@media (max-width:380px){.courtyard-grid{grid-template-columns:1fr}.world-actions button,.place-actions button{font-size:14px}.scene-title{font-size:21px!important}}
