:root{color-scheme:dark;--term-bg:#11130f;--term-panel:#171b15;--term-panel-2:#1d231a;--term-border:#343b2e;--term-muted:#a3aa98;--term-text:#e6e4d9;--term-gold:#d5bb79;--term-green:#a1b887;--term-red:#e2a18e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--term-text);background:var(--term-bg)}
*{box-sizing:border-box}html,body{min-height:100%;margin:0;background:var(--term-bg)}body{color:var(--term-text)}button,input,select{font:inherit}button{cursor:pointer}.player-site a{color:var(--term-gold)}.player-site a:hover{color:#f0d89b}.web-terminal[hidden],.login-screen[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.web-terminal{min-height:100dvh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 25% 0%,#29322355,transparent 43%),var(--term-bg)}
.terminal-topbar{min-height:70px;padding:12px clamp(16px,3vw,38px);display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--term-border);background:#11140ff2}
.terminal-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--term-text)!important;font-family:Georgia,serif;font-size:15px;letter-spacing:.12em}.terminal-brand .brand-mark{font-size:25px;color:var(--term-gold)}.terminal-brand small{display:block;margin-top:3px;color:var(--term-muted);font:9px ui-sans-serif,system-ui,sans-serif;letter-spacing:.19em}
.terminal-session{display:flex;align-items:center;gap:9px;min-width:0;flex:1;color:var(--term-muted);font-size:12px}.connection-light{width:8px;height:8px;flex:none;border-radius:50%;background:#8eaa73;box-shadow:0 0 12px #8eaa7366}.connection-light.busy{background:#d0ae64;box-shadow:0 0 12px #d0ae6477;animation:pulse 1.3s infinite}@keyframes pulse{50%{opacity:.4}}
.session-picker{display:flex;align-items:center;gap:8px;margin-left:auto;color:var(--term-muted);font-size:9px;letter-spacing:.14em;white-space:nowrap}.session-picker select{max-width:260px;border:1px solid var(--term-border);border-radius:4px;padding:8px 28px 8px 10px;background:var(--term-panel);color:var(--term-text);font-size:12px}
.terminal-links{display:flex;align-items:center;gap:18px;font-size:12px;white-space:nowrap}.terminal-links a{text-decoration:none}.terminal-links button{color:var(--term-muted)}.quiet{border:0;background:none;padding:7px;color:var(--term-muted)}.quiet:hover{color:var(--term-gold)}
.terminal-shortcuts{display:flex;gap:5px;align-items:center;overflow-x:auto;padding:10px clamp(16px,3vw,38px);border-bottom:1px solid #2b3127;background:#151912}.terminal-shortcuts button{flex:none;border:1px solid transparent;border-radius:4px;background:transparent;color:#c0c3b6;padding:7px 10px;font-size:11px}.terminal-shortcuts button:hover,.terminal-shortcuts button:focus-visible{border-color:var(--term-border);background:var(--term-panel-2);color:var(--term-gold)}kbd{display:inline-grid;place-items:center;min-width:22px;height:19px;margin-right:5px;border:1px solid #495041;border-radius:3px;color:#ddd1ad;font:10px ui-monospace,monospace}
.terminal-grid{width:min(1600px,100%);margin:0 auto;padding:24px clamp(14px,3vw,38px) 36px;display:grid;grid-template-columns:minmax(0,1fr) minmax(255px,310px);gap:20px;flex:1}.terminal-main{min-width:0;display:flex;flex-direction:column;min-height:calc(100dvh - 150px)}
.scene-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:8px 4px 17px;border-bottom:1px solid var(--term-border)}.scene-heading .eyebrow,.terminal-card>.eyebrow,.terminal-dialog .eyebrow{margin:0 0 7px;color:#9fa68f;font-size:9px;letter-spacing:.18em}.scene-heading h1{margin:0;color:#e6d5a8;font:26px Georgia,serif;letter-spacing:.015em}.scene-weather{max-width:55%;margin:0;color:#b8b9ad;text-align:right;font-size:12px;line-height:1.55}
.terminal-transcript{flex:1;min-height:380px;max-height:calc(100dvh - 390px);overflow:auto;padding:20px 14px 18px 4px;scrollbar-color:#505745 #171b15}.transcript-entry{max-width:980px;margin:0 0 17px;padding:0 12px 10px 14px;border-left:2px solid transparent}.transcript-entry small{display:block;margin-bottom:6px;color:#a6aa9b;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em}.transcript-entry p,.transcript-entry pre{margin:0;color:#e0dfd4;font:14px/1.75 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.transcript-entry p+p{margin-top:7px}.transcript-entry.player-entry{border-color:#899875;background:linear-gradient(90deg,#20281b88,transparent 88%)}.transcript-entry.player-entry small{color:#b8c49f}.transcript-entry.dm-entry{border-color:#c7aa68;background:linear-gradient(90deg,#322b1c88,transparent 88%)}.transcript-entry.dm-entry small,.scene-entry small{color:var(--term-gold)}.transcript-entry.waiting-entry{border-color:#747c69;opacity:.84}.transcript-entry.error-entry{border-color:var(--term-red)}.transcript-entry.error-entry small,.error-text{color:var(--term-red)}.transcript-entry.local-entry{border-color:#516a7a}.transcript-system{color:#9ca596!important;font-size:12px!important}.scene-entry{padding:14px 16px;border:1px solid var(--term-border);border-left:2px solid var(--term-gold);border-radius:4px;background:#191d17}
.terminal-prompt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border:1px solid #626b50;border-radius:5px;background:#191e16;box-shadow:0 0 0 3px #11130f,0 0 0 4px #303729}.terminal-prompt:focus-within{border-color:var(--term-gold);box-shadow:0 0 0 3px #11130f,0 0 0 4px #857345}.prompt-mark{color:#d7be7b;font:12px ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}.terminal-prompt input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#f0efe5;font:14px ui-monospace,SFMono-Regular,Consolas,monospace}.terminal-prompt input::placeholder{color:#858c7a}.terminal-prompt button{border:1px solid #70613c;border-radius:4px;background:#302a1b;color:#ead39a;padding:8px 12px;font-size:12px}.terminal-prompt button:hover{background:#43391f}.terminal-prompt button:disabled{opacity:.45;cursor:not-allowed}.terminal-hint{margin:12px 2px 0;color:#92988a;font-size:10px}.pending-status{margin:0 0 12px;padding:9px 12px;border-left:2px solid #d0ae64;background:#282419;color:#ddc98c;font-size:12px}#player-error{min-height:18px;margin:7px 0;color:#efa991;font-size:12px}
.terminal-sidebar{display:flex;flex-direction:column;gap:12px;align-self:start}.terminal-card{padding:15px;border:1px solid var(--term-border);border-radius:5px;background:linear-gradient(145deg,#1a1e17,#151812)}.terminal-card h2{margin:0 0 6px;color:#eadcb7;font:21px Georgia,serif}.terminal-card p{margin:7px 0;color:#bbbdb1;font-size:12px;line-height:1.6}.terminal-card p.hp-line{color:#c4d0ad;font:12px ui-monospace,monospace}.terminal-card h3,.dialog-content h3{margin:16px 0 7px;color:#d6c28f;font:12px ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.nearby-place{color:#e9e0cb!important;font:17px Georgia,serif!important}.scene-summary{font-size:11px!important}.nearby-action{width:100%;display:flex;justify-content:space-between;gap:8px;margin:4px 0;padding:7px 8px;border:1px solid transparent;border-radius:3px;background:#20251d;color:#deded1;text-align:left;font:11px ui-monospace,monospace}.nearby-action span+span{color:#aab78f;font:10px ui-sans-serif,system-ui,sans-serif}.nearby-action:hover,.nearby-talk:hover{border-color:#576148;background:#272e23}.nearby-talk{margin:-3px 0 5px 8px;padding:3px 7px;border:1px solid transparent;background:transparent;color:#d1ba7e;font-size:10px}.condition-list{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}.condition-list span{padding:4px 7px;border:1px solid #444b39;border-radius:20px;color:#d3c99c;font-size:10px}.condition-list .muted{border-color:transparent;color:var(--term-muted)}.dice-output{display:grid;gap:9px}.dice-roll{display:grid;gap:3px;padding:8px 9px;border-left:2px solid #8d8155;background:#21231b;font:10px ui-monospace,monospace}.dice-roll strong{color:#d8ca9f;font-weight:500}.dice-roll span{color:#e5e2d4}.dice-roll b{color:#e5ca7b;font-size:13px}.dice-roll small{color:#94998c}
.terminal-dialog{width:min(740px,calc(100% - 28px));max-height:min(82dvh,850px);padding:0;border:1px solid #59604a;border-radius:7px;background:#171b15;color:var(--term-text);box-shadow:0 24px 100px #000b}.terminal-dialog::backdrop{background:#070906c9;backdrop-filter:blur(3px)}.terminal-dialog>header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--term-border);background:#1b2119}.terminal-dialog>header h2{margin:0;color:#eadcb7;font:23px Georgia,serif}.terminal-dialog #dialog-close{width:34px;height:34px;border:1px solid var(--term-border);border-radius:4px;background:#20251d;color:#deddd2;font-size:23px}.dialog-content{max-height:calc(82dvh - 85px);overflow:auto;padding:18px 20px}.dialog-content pre{margin:0;color:#e0dfd4;font:12px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.dialog-content p,.dialog-content label{color:#c7c8bc;font-size:13px;line-height:1.6}.dialog-content label{display:block;margin:10px 0}.dialog-content select{display:block;width:100%;max-width:360px;margin-top:5px;padding:9px;border:1px solid var(--term-border);border-radius:4px;background:#10130f;color:var(--term-text)}.dialog-action{margin:5px;padding:7px 10px;border:1px solid #555d46;border-radius:4px;background:#242a20;color:#e0d4af;font-size:11px}.dialog-action:hover{border-color:var(--term-gold)}.dialog-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #2d3329;color:#e0dfd4;font-size:12px}.dialog-row small{display:block;margin-top:4px;color:#a8ad9f;font-size:10px}.journal-turn{padding:10px 0;border-bottom:1px solid #30362b}.journal-turn small{color:var(--term-gold);font:10px ui-monospace,monospace}.journal-turn p{white-space:pre-wrap;overflow-wrap:anywhere}

@media(max-width:1050px){.terminal-grid{grid-template-columns:minmax(0,1fr) 260px}.terminal-links{gap:10px}.terminal-session{flex-wrap:wrap}.session-picker select{max-width:190px}}
@media(max-width:760px){.terminal-topbar{min-height:0;flex-wrap:wrap;gap:10px;padding:12px 16px}.terminal-brand{flex:1}.terminal-links{order:3;width:100%;justify-content:flex-end;padding-top:8px;border-top:1px solid #282e25}.terminal-session{order:2;flex-basis:100%;flex-wrap:nowrap}.session-picker{margin-left:auto}.session-picker select{max-width:45vw}.terminal-shortcuts{padding-inline:12px}.terminal-grid{grid-template-columns:1fr;padding:12px;gap:12px}.terminal-main{min-height:0}.scene-heading{align-items:start;flex-direction:column;gap:8px;padding:8px 3px 13px}.scene-heading h1{font-size:23px}.scene-weather{max-width:none;text-align:left}.terminal-transcript{min-height:42dvh;max-height:55dvh;padding:14px 2px}.terminal-sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:start}.terminal-card{padding:12px}.terminal-card:first-child{grid-column:1/-1}.dice-card{grid-column:1/-1}.terminal-prompt{grid-template-columns:1fr auto;gap:7px;padding:8px}.terminal-prompt label{grid-column:1/-1}.terminal-prompt input{font-size:13px;padding:4px}.terminal-prompt button{grid-column:2;grid-row:2}.terminal-hint{line-height:1.6}.terminal-dialog .dialog-content{padding:14px}}
@media(max-width:430px){.terminal-links{justify-content:space-between;font-size:11px}.terminal-sidebar{grid-template-columns:1fr}.terminal-card:first-child,.dice-card{grid-column:auto}.terminal-shortcuts button{padding:7px 8px}.terminal-shortcuts kbd{display:none}.scene-heading h1{font-size:21px}}
@media(prefers-reduced-motion:reduce){.connection-light.busy{animation:none}}
