:root{color-scheme:dark;--ink:#ece4cf;--muted:#a9a694;--gold:#d2b477;--gold-soft:#8d7956;--line:#88785866;--panel:#11181bea;--deep:#0b1114;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:#0b1012;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid #e7c987;outline-offset:3px}.backdrop{position:fixed;inset:0;background:linear-gradient(90deg,rgba(8,14,17,.90) 0%,rgba(8,14,17,.44) 48%,rgba(8,14,17,.17) 78%),linear-gradient(0deg,#0b1114 2%,transparent 72%),url('/assets/citadel.png') center 37%/cover no-repeat}.grain{position:fixed;inset:0;pointer-events:none;opacity:.12;background-image:repeating-linear-gradient(90deg,transparent 0 3px,#0003 4px,transparent 5px)}.app{height:100%;display:flex;flex-direction:column;position:relative}.app[hidden],.login-screen[hidden],[hidden]{display:none!important}.topbar{height:78px;flex:none;display:flex;align-items:center;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid #c5a87530;background:linear-gradient(#10191cd9,#11191b44);gap:20px}.brand{font-family:var(--serif);font-size:13px;letter-spacing:.19em;color:#e7ddc7;text-decoration:none;white-space:nowrap}.brand strong{color:var(--gold);font-weight:400}.brand-mark{font-size:27px;color:var(--gold);vertical-align:-2px;margin-right:10px}.top-center{margin:auto;color:#b5ab95;font-size:9px;font-weight:650;letter-spacing:.24em}.tiny-diamond{font-size:6px;color:var(--gold);padding:0 14px}.top-actions{display:flex;gap:20px;align-items:center}.status{font-size:9px;letter-spacing:.15em;color:#c5bba5;white-space:nowrap}.status i{display:inline-block;width:6px;height:6px;background:#9bb183;border-radius:50%;margin-right:7px}.status.off i{background:#c47c66}.icon-button{background:transparent;border:1px solid #b39b7066;color:#e4d4b8;width:38px;height:38px;border-radius:50%;font-size:16px}.icon-button:hover,.text-link:hover{color:#fff;border-color:var(--gold)}.stage{flex:1;min-height:0;width:min(1500px,100%);margin:auto;display:flex;flex-direction:column;padding:0 clamp(20px,5vw,78px)}.scene{flex:1;min-height:175px;display:flex;justify-content:space-between;gap:20px;padding:clamp(22px,4vh,55px) 0 22px}.scene-title{max-width:410px}.eyebrow{font-size:9px;letter-spacing:.25em;font-weight:700;color:var(--gold);margin:0 0 14px}.scene h1,.login-card h1{font-family:var(--serif);font-size:clamp(34px,3.6vw,54px);font-weight:400;line-height:1.05;margin:0;letter-spacing:-.03em}.scene h1 em,.login-card h1 em{font-weight:400;color:#e5c898}.scene-sub{font-family:var(--serif);font-size:14px;color:#d4c4a9;margin:13px 0}.scene-sub span{font-size:9px;color:var(--gold);margin:0 8px}.scene-rule{width:82px;border-top:1px solid var(--gold);margin:20px 0 13px}.scene-desc{font-family:var(--serif);font-size:15px;line-height:1.55;color:#d2caba;max-width:330px}.text-link{padding:0 0 5px;color:#e0c18c;border:0;border-bottom:1px solid #a78a59;background:none;font-size:9px;letter-spacing:.16em;font-weight:700}.text-link span{font-size:14px;margin-left:10px}.party{align-self:flex-end;width:205px}.party-label{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.17em;color:#e0d4b9;font-weight:700;margin-bottom:10px}.party-label span:last-child{color:var(--gold)}.party-list{display:flex;gap:8px;justify-content:flex-end}.party-avatar{background:#182124;border:1px solid #bfa77480;border-radius:3px;overflow:hidden;width:44px;height:57px;padding:2px;transition:transform .2s,border-color .2s}.party-avatar img{width:100%;height:100%;object-fit:cover;object-position:center 18%;filter:saturate(.85)}.party-avatar.active,.party-avatar:hover{border-color:#eed39c;transform:translateY(-4px)}.party-avatar.empty{display:grid;place-items:center;font-family:var(--serif);font-size:20px;color:var(--gold)}.play-area{flex:0 1 auto;min-height:0;width:min(100%,1050px);margin:0 auto}.dialog-frame{position:relative;background:linear-gradient(120deg,rgba(21,29,30,.96),rgba(12,19,21,.98));border:1px solid #967f59aa;box-shadow:0 10px 40px #0009,inset 0 0 0 4px #121a1b,inset 0 0 0 5px #bba16a24;padding:0 clamp(20px,3vw,40px) 15px}.dialog-frame:before,.dialog-frame:after{content:'✦';position:absolute;top:-9px;color:#ccad73;font-size:14px}.dialog-frame:before{left:-6px}.dialog-frame:after{right:-6px}.frame-top{height:46px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #a38e6633}.speaker{font-size:10px;letter-spacing:.2em;font-weight:700;color:#e3c789}.speaker-gem{font-size:8px;margin-right:10px}.dialog-tools{display:flex;align-items:center;gap:15px;color:#9b8a6d}.dialog-tools button{border:0;background:none;color:#a99f8b;font-size:9px;letter-spacing:.15em}.story{height:clamp(105px,16vh,190px);overflow:auto;scrollbar-width:thin;scrollbar-color:#8a7958 transparent;padding:10px 8px 8px 0;font:17px/1.58 var(--serif);color:#e5dece}.story p{margin:8px 0}.story em{color:#e3c999}.story .player-line{font-style:italic;color:#baaa8f;border-left:1px solid #8b7652;padding-left:13px}.story .turn-label{font:700 9px var(--sans);letter-spacing:.16em;color:var(--gold);margin-top:16px}.story .failed{color:#d68c78}.choices{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin:2px 0 8px}.choice{display:flex;align-items:flex-start;gap:10px;text-align:left;background:none;border:0;color:#d9cfc0;padding:4px 0;font:14px/1.3 var(--serif)}.choice:hover{color:#f5d99c}.choice-number{color:#ccae78;font:11px var(--sans);padding-top:3px}.turn-status{font-size:11px;color:#c9ad7a;min-height:0}.turn-status:not(:empty){margin:7px 0}.composer{display:flex;align-items:center;gap:10px;border:1px solid #85755286;background:#090f12bb;min-height:52px;padding:4px 6px 4px 13px}.mode-button,.dice{border:0;background:none;color:#c3a66f;font-size:15px}.mode-button span{font-size:9px;letter-spacing:.12em;margin-left:4px}.composer textarea{min-width:0;flex:1;background:none;border:0;resize:none;color:#f5eee1;padding:10px 2px;max-height:90px;outline:none;line-height:1.4}.composer textarea::placeholder{color:#8e8c81}.send-button,.gold-button{background:linear-gradient(135deg,#cfb77e,#98784c);border:1px solid #e6ca8b;color:#11191a;border-radius:2px}.send-button{width:38px;height:38px;font-size:16px}.send-button:hover,.gold-button:hover{filter:brightness(1.15)}.composer-foot{display:flex;justify-content:space-between;margin-top:9px;color:#8b8b7f;font-size:8px;letter-spacing:.12em}.composer-foot kbd{color:#b2a992;font:inherit}.bottomline{height:36px;flex:none;display:flex;align-items:center;justify-content:center;gap:14px;font-size:8px;letter-spacing:.25em;color:#8f8b7d}.bottomline span:first-child,.bottomline span:last-child{color:#ba9e6a}.login-screen{position:relative;height:100%;display:grid;place-items:center;padding:20px}.login-card{width:min(440px,100%);padding:45px;text-align:center;background:#10191bec;border:1px solid #a88e5a;box-shadow:0 18px 80px #000b,inset 0 0 0 5px #182121,inset 0 0 0 6px #a88e5a33}.crest{font:36px var(--serif);color:var(--gold);margin-bottom:20px}.login-copy{font:16px var(--serif);color:#bfb5a2;margin:20px 0 30px}.login-card form{text-align:left}.login-card label{display:block;font-size:10px;letter-spacing:.12em;color:#bdb099;margin-bottom:8px}.login-card input{width:100%;height:45px;background:#0c1315;border:1px solid #8c7955;color:white;padding:0 12px}.gold-button{width:100%;height:46px;margin-top:12px;font-size:11px;font-weight:700;letter-spacing:.15em}.gold-button span{float:right}.login-foot{font:12px var(--serif);color:#8f8b80;margin:25px 0 0}.error{color:#e8a28f;font-size:12px;min-height:1em}.drawer-shade{position:fixed;inset:0;background:#0009;z-index:5}.drawer{position:fixed;z-index:6;right:0;top:0;height:100%;width:min(510px,100%);background:#111a1c;box-shadow:-16px 0 70px #000b;border-left:1px solid #a68d60;transform:translateX(105%);transition:transform .24s ease;display:flex;flex-direction:column;padding:30px}.drawer.open{transform:translateX(0)}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start}.drawer-head h2{font:36px var(--serif);margin:0}.tabs{display:flex;gap:18px;border-bottom:1px solid #9a865b55;margin:28px 0 0}.tabs button{border:0;border-bottom:2px solid transparent;background:none;color:#a6a295;padding:0 0 13px;font-size:11px}.tabs button.active{color:#edd8ab;border-color:#c4a36e}.drawer-content{overflow:auto;flex:1;padding:24px 2px;font:15px/1.6 var(--serif);white-space:pre-wrap;overflow-wrap:anywhere}.drawer-content h3{color:#e4c993;font-size:21px;font-weight:400}.drawer-content .card{padding:14px 0;border-bottom:1px solid #8f7b4b3a;white-space:normal}.drawer-content .card img{float:left;width:58px;height:72px;object-fit:cover;margin-right:13px;border:1px solid #aa946d}.drawer-content .card strong{font-size:16px;color:#e9d7b7}.drawer-content .card p{font:13px/1.5 var(--sans);color:#bfb7a6;margin:4px 0}.drawer-content .card:after{content:'';display:block;clear:both}.drawer-content input{width:100%;background:#0b1315;border:1px solid #7f704e;padding:12px;color:white}.note-button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #8f7b4b38;padding:12px 0;color:#e0d4bd}.drawer-bottom{display:flex;justify-content:space-between;border-top:1px solid #917d5755;padding-top:16px;font-size:11px}.drawer-bottom a,.drawer-bottom button{color:#c9b48b;background:none;border:0;text-decoration:none}.drawer-bottom a:hover,.drawer-bottom button:hover{color:#fff}@media(max-height:780px) and (min-width:701px){.scene{padding-top:22px;min-height:130px}.scene-desc,.scene-rule{display:none}.scene h1{font-size:38px}.story{height:105px}.dialog-frame{padding-bottom:10px}.bottomline{height:26px}}@media(max-width:700px){body{overflow:hidden}.backdrop{background-position:58% top}.topbar{height:58px;padding:0 18px}.brand{font-size:10px;letter-spacing:.12em}.brand-mark{font-size:22px;margin-right:5px}.top-center{display:none}.top-actions{margin-left:auto;gap:10px}.status{font-size:8px}.stage{padding:0 14px}.scene{min-height:155px;padding:25px 4px 16px;gap:10px}.scene h1{font-size:36px}.scene-desc,.scene-rule{display:none}.scene-sub{font-size:13px;margin:9px 0}.eyebrow{font-size:8px;letter-spacing:.17em}.party{width:auto;align-self:flex-end}.party-label{font-size:7px}.party-avatar{width:34px;height:45px}.party-list{gap:5px}.play-area{width:100%}.dialog-frame{padding:0 14px 12px}.frame-top{height:40px}.story{height:clamp(100px,18vh,170px);font-size:15px;line-height:1.48}.choices{grid-template-columns:1fr;gap:0;margin:0 0 5px}.choice{font-size:13px;padding:3px 0}.composer{min-height:48px;padding-left:8px}.mode-button span{display:none}.composer textarea{font-size:14px}.composer-foot{font-size:7px}.hide-mobile{display:none}.bottomline{height:28px}.drawer{padding:24px 20px}.login-card{padding:35px 28px}}@media(max-width:400px){.party-avatar{width:30px;height:40px}.party-label{display:none}.scene h1{font-size:30px}.scene{min-height:125px}.story{height:100px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.featured-person{display:block;position:relative;width:156px;height:182px;margin:0 0 14px auto;padding:3px;background:#11191b;border:1px solid #b9a06e;box-shadow:0 8px 30px #0008;overflow:hidden}.featured-person img{width:100%;height:100%;object-fit:cover;object-position:center 15%}.featured-caption{position:absolute;left:3px;right:3px;bottom:3px;padding:27px 9px 8px;text-align:left;background:linear-gradient(transparent,#11191bf5)}.featured-caption small{display:block;font:700 7px var(--sans);letter-spacing:.18em;color:#d7ba7d}.featured-caption strong{display:block;font:16px var(--serif);color:#f1e2c6}.featured-person:hover{border-color:#fff0bb}@media(max-height:780px) and (min-width:701px){.featured-person{width:115px;height:125px;margin-bottom:8px}.featured-caption{padding-top:14px}.featured-caption strong{font-size:13px}}@media(max-width:700px){.featured-person{width:94px;height:105px;margin-bottom:8px}.featured-caption{padding:12px 5px 4px}.featured-caption strong{font-size:12px}.featured-caption small{font-size:6px}}@media(max-width:400px){.featured-person{width:74px;height:82px}.featured-caption small{display:none}}
