:root{color-scheme:dark;--bg:#10171b;--panel:#141d22;--line:#ffffff0e;--ink:#e5e6df;--muted:#8f9b9b;--gold:#c9aa6e;--green:#7caa91;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Segoe UI,Arial,sans-serif;font-size:13px}button,input,textarea,select{font:inherit}button{border:1px solid #ffffff14;border-radius:5px;background:#ffffff05;color:var(--ink);padding:9px 12px;cursor:pointer;transition:background .16s,border-color .16s}button:hover{background:#ffffff0c;border-color:#c9aa6e70}button:disabled{opacity:.4;cursor:wait}button.active{color:var(--gold);border-color:#c9aa6e70;background:#c9aa6e12}.primary{background:var(--gold);color:#172021;border-color:var(--gold);font-weight:650;display:flex;align-items:center;justify-content:space-between;gap:15px}.primary:hover{background:#dfbf82}.quiet{color:var(--muted);background:transparent}.wide{width:100%;margin-top:9px}input,select,textarea{width:100%;background:#0d1519;border:1px solid #ffffff12;border-radius:5px;padding:9px;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:#c9aa6e90}textarea{resize:vertical;line-height:1.6}label{display:block;margin:12px 0 7px;font-size:11px;color:var(--muted)}h1,h2,p{margin:0}h1{font:27px/1.22 var(--serif);margin:14px 0 12px}h2{font-weight:500;font-size:13px;letter-spacing:.2px}p{line-height:1.65}.muted{font-size:12px;color:var(--muted);line-height:1.7}.fine{font-size:10px;color:#7b8b8c;line-height:1.7}.eyebrow{font-size:9px;letter-spacing:2.1px;color:var(--gold);font-weight:600}.join{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#243039,transparent 70%);gap:18px}.join h1{font-size:42px}.join p:not(.eyebrow){color:var(--muted)}.sigil{font:52px var(--serif);border:1px solid #c9aa6e60;padding:15px 22px;color:var(--gold);border-radius:50%}header{height:76px;display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:0 27px;background:#10181d}.brand{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:3px}.brand small{display:block;letter-spacing:2px;font-size:7px;color:var(--muted);margin-top:6px}.mark{font:26px var(--serif);color:var(--gold);padding:2px 8px;border:1px solid #c9aa6e50;border-radius:4px}.session-pill{margin-left:auto;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.session-pill i{width:6px;height:6px;background:#a89564;border-radius:50%;box-shadow:0 0 9px #a8956430}.session-pill i.live{background:var(--green)}.role{font-size:9px;letter-spacing:1.4px;border:1px solid #ffffff16;border-radius:4px;padding:6px 9px;color:var(--muted)}header button{font-size:11px}.workspace{height:calc(100vh - 76px);display:grid;grid-template-columns:262px minmax(350px,1fr) 296px}.left,.right{padding:26px 22px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#26333a transparent}.left{border-right:1px solid var(--line);background:#141c20}.right{border-left:1px solid var(--line);background:#111a1f}.panel-heading{display:flex;justify-content:space-between;align-items:center}.chapter{font:20px var(--serif);color:#425058}.left section,.right section{border-top:1px solid var(--line);margin-top:23px;padding-top:21px}section h2{margin-bottom:13px}.count{background:#ffffff08;border-radius:3px;padding:2px 6px;font-size:10px;margin-left:6px;color:var(--muted)}.party-member{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #ffffff05;cursor:pointer}.avatar{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border:1px solid #c9aa6e40;border-radius:50%;color:var(--gold);background:#22302d;font:15px var(--serif)}.avatar.enemy{border-color:#a9565640;color:#dd8e7b;background:#382827}.avatar.npc{border-color:#6c8fac40;color:#a3bfd4;background:#24303d}.member-name{font-size:11px;display:block;white-space:nowrap;max-width:135px;overflow:hidden;text-overflow:ellipsis}.member-info{font-size:9px;color:var(--muted);display:block;margin-top:4px}.member-active{border-left:2px solid var(--gold);padding-left:8px}.tools{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.tools button{padding:7px;font-size:10px}.button-row{display:flex;gap:7px;margin-top:9px}.button-row>*{flex:1;font-size:10px}.section-row{display:flex;justify-content:space-between}.tag{font-size:10px;color:var(--gold)}.stage{position:relative;overflow:hidden;background:#0a1013}canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.stage-top{position:absolute;left:24px;right:24px;top:22px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.map-label{font-size:8px;letter-spacing:1.7px;color:#b6beb5}.map-label span{font-size:9px;letter-spacing:.5px;margin-left:10px;color:#718082}.scale{font-size:9px;color:#829190}.board-hint{position:absolute;bottom:205px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;color:#9ba59f;background:#0a1013b0;border:1px solid #ffffff08;border-radius:30px;padding:8px 13px;pointer-events:none}.dice-dock{position:absolute;bottom:22px;left:22px;right:22px;border:1px solid #c9aa6e24;background:#121b20ed;backdrop-filter:blur(14px);border-radius:8px;padding:17px 19px;box-shadow:0 10px 30px #0005}.dice-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dice-heading .fine{font-size:9px}#dice-form{display:flex;gap:7px}#dice-count{width:47px}#dice-sides{width:65px}#dice-mod{width:62px}#dice-mode{width:100px}#roll-button{flex:1;min-width:100px}.reason{margin-top:8px;font-size:10px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:5px 0}.latest-roll{margin-top:10px;color:var(--muted);font-size:11px}.latest-roll strong{color:var(--gold);font:22px var(--serif);margin-right:8px}.turn-banner{position:absolute;top:52px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap;padding:10px 18px;border:1px solid #c9aa6e40;background:#131c20ef;color:var(--gold);border-radius:4px}.live-label{font-size:8px;letter-spacing:1.5px;color:var(--green)}.chronicle-title{font:25px/1.3 var(--serif);margin:15px 0 12px}.chronicle{margin-top:25px}.story-entry{border-left:1px solid #c9aa6e40;padding:0 0 19px 14px;position:relative;margin-left:4px}.story-entry:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--gold);position:absolute;left:-3px;top:5px}.story-entry time{font-size:8px;letter-spacing:1px;color:#7e8d8d;display:block;margin-bottom:9px}.story-entry p{font:13px/1.75 var(--serif);color:#c2c7c2;white-space:pre-wrap}.story-entry:last-child p{color:#e1e1d6}.empty{text-align:center;padding:44px 8px 35px;color:#7d8b8a}.empty>span{font-size:28px;color:#c9aa6e70}.empty p{font:17px var(--serif);margin:16px 0 8px}.empty small{font-size:10px}.roll-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:9px 0;color:var(--muted);font-size:10px}.roll-row strong{font:20px var(--serif);color:var(--gold)}.roll-row small{display:block;margin-top:4px;color:#687b7c;font-size:9px}footer{font:italic 12px var(--serif);color:#657677;text-align:center;margin-top:32px}#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);max-width:85vw;padding:13px 20px;border:1px solid #c9aa6e50;background:#1b282d;border-radius:6px;color:#e9ddc6;box-shadow:0 5px 24px #0008;z-index:100}#token-editor[hidden],[hidden]{display:none!important}@media(min-width:1700px){.workspace{grid-template-columns:290px minmax(350px,1fr) 330px}.left,.right{padding:30px}}@media(max-width:1120px){.workspace{grid-template-columns:230px minmax(350px,1fr)}.right{display:none}.left{padding:22px 17px}}@media(max-width:720px){header{height:64px;padding:0 15px;gap:10px}.brand{font-size:10px;letter-spacing:2px}.brand small{font-size:6px}.session-pill{display:none}.role{margin-left:auto}header button{font-size:9px;padding:7px}.workspace{height:calc(100vh - 64px);display:block}.left{display:none}.stage{height:100%}.stage-top{left:16px;right:16px}.dice-dock{left:10px;right:10px;bottom:12px;padding:13px}.dice-heading .fine{font-size:8px}#dice-form{gap:4px}#dice-mode{width:80px;font-size:10px}#roll-button{font-size:11px;min-width:75px}#dice-mod{width:45px}#board-hint{font-size:9px;bottom:195px}.join{padding:25px;text-align:center}.join h1{font-size:32px}}
