@font-face{font-family:Cinzel;src:url(../assets/fonts/cinzel/Cinzel%5Bwght%5D.ttf) format("truetype-variations");font-weight:400 900;font-display:swap}@font-face{font-family:Alegreya;src:url(../assets/fonts/alegreya/Alegreya%5Bwght%5D.ttf) format("truetype-variations");font-weight:400 900;font-display:swap}@font-face{font-family:Alegreya;src:url(../assets/fonts/alegreya/Alegreya-Italic%5Bwght%5D.ttf) format("truetype-variations");font-weight:400 900;font-style:italic;font-display:swap}@font-face{font-family:IM Fell English;src:url(../assets/fonts/imfellenglish/IMFeENrm28P.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:IM Fell English;src:url(../assets/fonts/imfellenglish/IMFeENit28P.ttf) format("truetype");font-style:italic;font-display:swap}@font-face{font-family:IM Fell English SC;src:url(../assets/fonts/imfellenglishsc/IMFeENsc28P.ttf) format("truetype");font-display:swap}:root{--ink: #1c1610;--ink-soft: #3a2f22;--parchment: #e8d9b8;--parchment-dim: #d8c7a4;--parchment-dark: #c4b18c;--night: #0b0f12;--night-2: #121a1e;--night-3: #1a262c;--brass: #b08d3f;--brass-bright: #d9b45c;--amber: #e8a33d;--ember: #c96b2e;--blood: #8e3b2c;--fen-green: #4d6b52;--spectral: #7fd4c1;--spectral-dim: #3f7a6e;--arcane: #8f7fd4;--danger: #d4604f;--success: #86b06a;--text-on-dark: #d8cdb4;--text-dim: #97917e;--font-display: "Cinzel", serif;--font-body: "Alegreya", serif;--font-flavor: "IM Fell English", serif;--font-caps: "IM Fell English SC", serif;--ui-scale: 1;--text-scale: 1;--tooltip-delay: .35s;--panel-border: 2px solid #6b5731;--panel-shadow: 0 6px 24px rgba(0, 0, 0, .65), inset 0 0 60px rgba(58, 42, 18, .25);--card-radius: 4px}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:var(--night);font-family:var(--font-body);color:var(--text-on-dark);font-size:calc(17px * var(--text-scale));user-select:none}#app{position:relative;width:100vw;height:100vh;overflow:hidden}#game-root{position:absolute;inset:0;z-index:0}#game-root canvas{display:block}#ui-root{position:absolute;inset:0;z-index:10;pointer-events:none;transform-origin:top left}#overlay-root{position:absolute;inset:0;z-index:100;pointer-events:none}#ui-root>*,#overlay-root>*{pointer-events:auto}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation-duration:1ms!important;transition-duration:1ms!important}body.high-contrast{--text-dim: #b8b2a0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#00000059}::-webkit-scrollbar-thumb{background:#5d4c2c;border-radius:5px;border:2px solid rgba(0,0,0,.4)}::-webkit-scrollbar-thumb:hover{background:var(--brass)}.panel{background:linear-gradient(#101416eb,#0c1012f2),repeating-linear-gradient(45deg,rgba(176,141,63,.03) 0 2px,transparent 2px 6px);border:var(--panel-border);border-image:linear-gradient(160deg,#7d6636,#4a3b1e 40%,#7d6636 90%) 1;box-shadow:var(--panel-shadow);color:var(--text-on-dark)}.parchment{background:radial-gradient(ellipse at 30% 20%,rgba(255,246,220,.55),transparent 60%),linear-gradient(170deg,var(--parchment) 0%,var(--parchment-dim) 55%,var(--parchment-dark) 100%);color:var(--ink);border:1px solid #8a7143;box-shadow:0 4px 18px #0000008c,inset 0 0 42px #7a5b2647}.parchment h1,.parchment h2,.parchment h3{color:#4a3413}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:.04em}.flavor{font-family:var(--font-flavor);font-style:italic;color:var(--text-dim)}.parchment .flavor{color:#6b5731}.btn{font-family:var(--font-display);font-size:calc(15px * var(--text-scale));font-weight:700;letter-spacing:.06em;padding:9px 20px;background:linear-gradient(180deg,#2c2416,#1c1710 85%);color:var(--brass-bright);border:1px solid #6b5731;border-radius:3px;cursor:pointer;transition:all .15s;text-transform:uppercase;position:relative}.btn:hover:not(:disabled){border-color:var(--brass-bright);color:#f4dc9a;box-shadow:0 0 12px #d9b45c40,inset 0 0 8px #d9b45c1f}.btn:disabled{opacity:.42;cursor:default}.btn.primary{background:linear-gradient(180deg,#4a3413,#33240d 85%);border-color:var(--brass);color:#f4dc9a}.btn.danger{color:#e0907f;border-color:#7a4638}.btn.danger:hover:not(:disabled){border-color:var(--danger);box-shadow:0 0 12px #d4604f4d}.btn.small{font-size:calc(12px * var(--text-scale));padding:5px 12px}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover:not(:disabled){border-color:#6b5731;box-shadow:none}.icon{display:inline-block;width:1.25em;height:1.25em;vertical-align:-.28em;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;background-color:currentColor}.divider{height:14px;background:center / auto 100% no-repeat radial-gradient(circle at center,var(--brass) 0 1.5px,transparent 2px),linear-gradient(90deg,transparent,#6b5731 20%,#6b5731 80%,transparent) center / 100% 1px no-repeat;margin:10px 0;position:relative}.kbd{font-family:var(--font-body);font-size:.8em;background:#262019;border:1px solid #5d4c2c;border-bottom-width:2px;border-radius:3px;padding:1px 6px;color:var(--brass-bright)}#tooltip{position:fixed;z-index:3000;max-width:380px;padding:12px 14px;pointer-events:none;opacity:0;transition:opacity .12s;font-size:calc(14.5px * var(--text-scale));line-height:1.45}#tooltip.visible{opacity:1}#tooltip .tt-title{font-family:var(--font-display);font-size:1.05em;color:var(--brass-bright);margin-bottom:4px}#tooltip .tt-sub{color:var(--text-dim);font-style:italic;margin-bottom:6px;font-size:.9em}#tooltip .tt-line{margin:3px 0}#tooltip .tt-flavor{font-family:var(--font-flavor);font-style:italic;color:var(--text-dim);margin-top:7px;font-size:.95em}#tooltip .good{color:var(--success)}#tooltip .bad{color:var(--danger)}#notify-stack{position:fixed;top:84px;right:22px;display:flex;flex-direction:column;gap:8px;z-index:900;pointer-events:none;width:360px}.notify{padding:10px 14px;font-size:calc(15px * var(--text-scale));border-left:3px solid var(--brass);animation:notify-in .25s ease-out,notify-out .4s ease-in 5s forwards}.notify.quest{border-left-color:var(--amber)}.notify.clue{border-left-color:var(--spectral)}.notify.approval{border-left-color:var(--arcane)}.notify.faction{border-left-color:var(--blood)}.notify.item{border-left-color:var(--fen-green)}@keyframes notify-in{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}@keyframes notify-out{to{opacity:0;transform:translateY(-8px)}}.main-menu{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 110%,#16231f 0%,var(--night) 60%);z-index:50}.main-menu .title-block{text-align:center;margin-bottom:48px}.main-menu .title-block .over{font-family:var(--font-caps);color:var(--text-dim);letter-spacing:.5em;font-size:18px;margin-bottom:6px}.main-menu h1{font-size:92px;font-weight:800;background:linear-gradient(180deg,#f0d792 20%,#b08d3f 65%,#7d6636);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 4px 30px rgba(217,180,92,.18);letter-spacing:.08em}.main-menu .subtitle{font-family:var(--font-flavor);font-style:italic;color:var(--text-dim);font-size:21px;margin-top:10px}.main-menu .menu-buttons{display:flex;flex-direction:column;gap:12px;width:320px}.main-menu .menu-buttons .btn{font-size:18px;padding:13px}.main-menu .version{position:absolute;bottom:16px;right:22px;color:var(--text-dim);font-size:13px}.main-menu .attribution{position:absolute;bottom:16px;left:22px;color:#5a5546;font-size:12px;max-width:700px}.modal-backdrop{position:absolute;inset:0;background:#040608b8;display:flex;align-items:center;justify-content:center;z-index:200}.modal{max-width:94vw;max-height:92vh;display:flex;flex-direction:column;min-width:520px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 10px;border-bottom:1px solid #5d4c2c}.modal-header h2{font-size:24px;color:var(--brass-bright)}.modal-body{padding:16px 20px;overflow-y:auto;flex:1}.modal-footer{padding:12px 20px;border-top:1px solid #5d4c2c;display:flex;gap:10px;justify-content:flex-end}.close-x{background:none;border:none;color:var(--text-dim);font-size:26px;cursor:pointer;line-height:1;font-family:var(--font-body);padding:2px 8px}.close-x:hover{color:var(--danger)}select,input[type=text],input[type=number]{background:#191510;color:var(--text-on-dark);border:1px solid #5d4c2c;padding:7px 10px;font-family:var(--font-body);font-size:calc(15px * var(--text-scale));border-radius:3px}select:focus,input:focus{outline:none;border-color:var(--brass)}input[type=range]{accent-color:var(--brass)}label{color:var(--text-dim)}.row{display:flex;gap:10px;align-items:center}.col{display:flex;flex-direction:column;gap:8px}.spacer{flex:1}.muted{color:var(--text-dim)}.gold-text{color:var(--brass-bright)}.hidden{display:none!important}#hud{position:absolute;inset:0;pointer-events:none}#hud>*{pointer-events:auto}#topbar{position:absolute;top:0;left:0;right:0;height:52px;display:flex;align-items:center;gap:10px;padding:0 18px;font-size:calc(15px * var(--text-scale));border-left:none;border-right:none;border-top:none}#topbar .tb-map{font-family:var(--font-display);font-weight:700;color:var(--brass-bright);font-size:1.1em;letter-spacing:.05em}#topbar .tb-sep{color:#5d4c2c}#party-rail{position:absolute;left:14px;top:72px;display:flex;flex-direction:column;gap:10px;width:190px}.party-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 8px 7px;background:linear-gradient(#0e1214e0,#0a0e10eb);border:1px solid #4a3b1e;cursor:pointer;position:relative;transition:border-color .15s,box-shadow .15s}.party-card:hover{border-color:#7d6636}.party-card.selected{border-color:var(--brass-bright);box-shadow:0 0 10px #d9b45c40}.party-card.downed{filter:grayscale(.8) brightness(.7);border-color:var(--blood)}.party-card .pc-portrait{line-height:0}.party-card .pc-name{font-family:var(--font-display);font-size:13.5px;color:var(--text-on-dark);text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-bar{position:relative;height:14px;width:100%;background:#23140f;border:1px solid #000}.pc-bar>div{height:100%;background:linear-gradient(180deg,#8e3b2c,#6b2a1e);transition:width .25s}.pc-bar.hp>div{background:linear-gradient(180deg,#a04a35,#7a3222)}.pc-bar span{position:absolute;inset:0;font-size:10.5px;text-align:center;line-height:13px;color:#f0e6cc;text-shadow:0 1px 2px #000;font-family:var(--font-body)}.pc-slots{display:flex;gap:3px;justify-content:center;flex-wrap:wrap}.slot-group{display:flex;gap:2px;align-items:center}.slot-pip{width:7px;height:7px;border-radius:50%;background:var(--arcane);box-shadow:0 0 4px #8f7fd499}.slot-pip.spent{background:#33303f;box-shadow:none}.pc-conds{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.pc-conds:empty{display:none}.cond-chip{color:var(--danger);font-size:13px}.level-badge{position:absolute;top:-7px;right:-7px;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f4dc9a,var(--brass));color:#3a2a10;display:flex;align-items:center;justify-content:center;border:1px solid #7d6636;animation:badge-pulse 1.6s ease-in-out infinite;z-index:2}@keyframes badge-pulse{50%{box-shadow:0 0 14px #d9b45ccc}}.portrait{border-radius:3px;border:1px solid #6b5731;background:#10151a;display:block}.portrait.small{width:40px;height:40px}.portrait.large{width:128px;height:128px}#quick-actions{position:absolute;left:14px;bottom:16px;display:flex;gap:8px}.qa-btn{width:46px;height:46px;font-size:21px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#241d12,#17120b);color:var(--brass-bright);border:1px solid #5d4c2c;border-radius:4px;cursor:pointer;transition:all .15s}.qa-btn:hover{border-color:var(--brass-bright);box-shadow:0 0 10px #d9b45c40}.qa-btn.active{background:linear-gradient(180deg,#3d3319,#2a2210);border-color:var(--amber);color:#f4dc9a}#event-log{position:absolute;right:14px;bottom:16px;width:440px;max-height:224px;display:flex;flex-direction:column;font-size:calc(14px * var(--text-scale))}#event-log-entries{overflow-y:auto;padding:8px 12px}.log-entry{margin:3px 0;line-height:1.4}.log-entry .log-text{color:var(--text-on-dark)}.log-entry .log-detail{color:var(--text-dim);font-size:.88em;margin-left:10px;border-left:2px solid #4a3b1e;padding-left:8px}.log-entry .log-why{color:var(--spectral-dim);font-size:.88em}.log-entry.narrator{font-family:var(--font-flavor);font-style:italic;color:#c9b98f}#turn-banner{position:absolute;top:100px;left:50%;transform:translate(-50%);font-family:var(--font-display);font-size:30px;font-weight:800;color:var(--brass-bright);text-shadow:0 2px 18px rgba(0,0,0,.9);letter-spacing:.12em;padding:8px 34px;pointer-events:none;animation:banner-in .3s ease-out;z-index:60}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-12px)}}#initiative-rail{position:absolute;top:60px;left:50%;transform:translate(-50%);display:flex;gap:6px;align-items:center;padding:6px 12px;z-index:40}.init-round{font-family:var(--font-caps);color:var(--text-dim);margin-right:8px;font-size:15px}.init-chip{display:flex;flex-direction:column;align-items:center;padding:4px 6px 3px;border:1px solid #4a3b1e;border-radius:3px;background:#0e1214d9;min-width:46px;font-size:11px;position:relative}.init-chip.current{border-color:var(--brass-bright);box-shadow:0 0 10px #d9b45c59;background:#261e0eeb}.init-chip.enemy{border-bottom:2px solid var(--blood)}.init-chip.party{border-bottom:2px solid var(--fen-green)}.init-chip.dead{opacity:.35;filter:grayscale(1)}.init-chip .init-hp{width:100%;height:3px;background:#23140f;margin-top:2px}.init-chip .init-hp>div{height:100%;background:#a04a35}#action-bar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:min(1180px,90vw);padding:10px 14px;z-index:45}.ab-econ{display:flex;gap:14px;align-items:center;margin-bottom:8px;font-size:13.5px;color:var(--text-dim)}.econ-pip{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-1px;margin-right:4px;border:1px solid #000}.econ-pip.action{background:radial-gradient(circle at 35% 30%,#8fe08a,#3f7a3c)}.econ-pip.bonus{background:radial-gradient(circle at 35% 30%,#e8c46a,#9a7420)}.econ-pip.reaction{background:radial-gradient(circle at 35% 30%,#b09fe8,#5f4fa0)}.econ-pip.spent{background:#2c2c2c}.econ-move{color:var(--text-dim)}.ab-buttons{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.ab-btn{min-width:64px;padding:7px 10px;display:flex;flex-direction:column;align-items:center;gap:3px;background:linear-gradient(180deg,#241d12,#16110a);border:1px solid #5d4c2c;border-radius:3px;color:var(--text-on-dark);cursor:pointer;font-family:var(--font-body);font-size:12px;transition:all .12s}.ab-btn .icon{font-size:19px;width:1.4em;height:1.4em}.ab-btn:hover:not(:disabled){border-color:var(--brass-bright);color:#f4dc9a}.ab-btn:disabled{opacity:.38;cursor:default}.ab-btn.active{border-color:var(--amber);background:linear-gradient(180deg,#3d3319,#241d0c);box-shadow:0 0 10px #e8a33d4d}.ab-end{margin-left:auto}.ab-waiting{text-align:center;color:var(--text-dim);font-style:italic;padding:12px}.ab-victory{display:flex;align-items:center;gap:16px;justify-content:center;padding:8px}.ab-victory-label{font-family:var(--font-display);font-size:20px;color:var(--brass-bright);letter-spacing:.06em}.tb-inner.victory{color:var(--success)}#targeting-hint,.targeting-note{position:absolute;bottom:122px;left:50%;transform:translate(-50%);padding:6px 18px;color:var(--amber);background:#0a0c0ee6;border:1px solid #6b5731;font-size:14.5px;z-index:46;pointer-events:none}#combat-log{position:absolute;right:14px;top:110px;bottom:250px;width:380px;display:flex;flex-direction:column;z-index:30;font-size:calc(13.5px * var(--text-scale))}#combat-log .cl-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #4a3b1e;font-family:var(--font-display);color:var(--brass-bright);font-size:14px}#combat-log-entries{overflow-y:auto;padding:6px 12px;flex:1}.reaction-prompt{position:absolute;left:50%;top:34%;transform:translate(-50%,-50%);width:520px;z-index:250;padding:0;animation:banner-in .2s ease-out}.reaction-prompt .rp-title{font-family:var(--font-display);font-size:19px;color:var(--brass-bright);padding:12px 18px 8px;border-bottom:1px solid #5d4c2c}.reaction-prompt .rp-body{padding:12px 18px}.reaction-prompt .rp-trigger{color:var(--text-on-dark);margin-bottom:6px}.reaction-prompt .rp-effect{color:var(--text-dim);font-size:.92em}.reaction-prompt .rp-cost{color:var(--arcane);font-size:.92em;margin-top:4px}.reaction-prompt .rp-actions{display:flex;gap:10px;padding:10px 18px 14px;justify-content:flex-end}.reaction-prompt .rp-config{padding:0 18px 12px;color:var(--text-dim);font-size:.85em}.dialogue-layer{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:46px;background:linear-gradient(transparent 55%,#0406088c);z-index:150}.dialogue-box{width:min(1040px,92vw);max-height:62vh;display:flex;flex-direction:column;animation:dlg-in .22s ease-out}@keyframes dlg-in{0%{opacity:0;transform:translateY(16px)}}.dlg-main{display:flex;gap:18px;padding:20px 24px 8px;overflow-y:auto}.dlg-portrait{flex:0 0 auto}.dlg-content{flex:1;min-width:0}.dlg-speaker{font-family:var(--font-display);font-size:19px;font-weight:700;color:var(--brass-bright);letter-spacing:.05em;margin-bottom:6px}.dlg-text{line-height:1.6;font-size:calc(16.5px * var(--text-scale));white-space:pre-line}.check-result{margin:10px 24px 0;padding:7px 12px;border:1px solid #4a3b1e;border-left-width:3px;font-size:14px;color:var(--text-dim);background:#0000004d}.check-result.ok{border-left-color:var(--success)}.check-result.fail{border-left-color:var(--danger)}.interjection{display:flex;gap:10px;align-items:flex-start;margin:10px 24px 0;padding:9px 12px;background:#3f7a6e14;border-left:3px solid var(--spectral-dim);font-size:15px}.interjection .ij-name{color:var(--spectral);font-family:var(--font-display);font-size:.95em}.dlg-options{display:flex;flex-direction:column;gap:4px;padding:14px 24px 18px}.dlg-option{text-align:left;padding:8px 12px;background:transparent;border:1px solid transparent;color:var(--text-on-dark);font-family:var(--font-body);font-size:calc(15.5px * var(--text-scale));cursor:pointer;line-height:1.45;transition:all .12s}.dlg-option:hover{border-color:#6b5731;background:#b08d3f14;color:#f4e6c0}.dlg-option .dlg-num{color:var(--text-dim);margin-right:6px}.dlg-option .dlg-tag{color:var(--amber);font-family:var(--font-caps);margin-right:6px}.dlg-option .dlg-check{color:var(--arcane);margin-right:6px;font-size:.9em}.party-picker{padding:10px 24px 16px;display:flex;gap:10px;flex-wrap:wrap}.party-picker .pick-card{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:8px;border:1px solid #4a3b1e}.party-picker .pick-card:hover{border-color:var(--brass-bright)}.banter-toast{position:fixed;bottom:260px;left:50%;transform:translate(-50%);max-width:640px;padding:10px 18px;font-size:15.5px;z-index:90;animation:dlg-in .25s ease-out;pointer-events:none}.banter-toast .banter-name{color:var(--spectral);font-family:var(--font-display)}.charcreate{position:absolute;inset:0;display:grid;grid-template-columns:220px 1fr 300px;grid-template-rows:1fr auto;background:radial-gradient(ellipse at 50% -20%,#1a262c 0%,var(--night) 65%);z-index:60;padding:26px;gap:18px}.cc-steps{display:flex;flex-direction:column;gap:6px}.cc-step{padding:10px 14px;font-family:var(--font-display);font-size:15px;color:var(--text-dim);border-left:3px solid #33291a;cursor:pointer;transition:all .12s}.cc-step:hover{color:var(--text-on-dark)}.cc-step.active{color:var(--brass-bright);border-left-color:var(--brass-bright);background:#b08d3f12}.cc-step.done{color:#9a8f6d;border-left-color:#6b5731}.cc-body{overflow-y:auto;padding:6px 16px 6px 4px;color:var(--text-on-dark)}.cc-body h2{color:var(--brass-bright);margin-bottom:4px}.cc-footer{grid-column:1 / 4;display:flex;gap:12px;justify-content:space-between;align-items:center}.cc-preview{padding:16px;align-self:start;position:sticky;top:0}.cc-preview .cc-prev-name{font-family:var(--font-display);font-size:21px;color:var(--brass-bright);text-align:center;margin:8px 0 2px}.cc-title{font-family:var(--font-display);color:var(--brass-bright)}.cc-text{line-height:1.5}.charcreate .flavor{color:#cabf9f}.charcreate .muted{color:#a99e83}.charcreate .es-label{color:#d9c9a2}.charcreate label{color:#cabf9f}.charcreate .pick-item,.charcreate .pick-detail .feature-row span{color:var(--text-on-dark)}.pb-row.pb-head{background:transparent;border-color:transparent;padding-bottom:0}.pb-row.pb-head span{font-family:var(--font-caps);font-size:12px;color:var(--text-dim);letter-spacing:.04em}.equip-review{list-style:none;margin:6px 0 0;padding:0;columns:2;column-gap:26px}.equip-review li{padding:2px 0;color:var(--text-on-dark);break-inside:avoid}.equip-review li:before{content:"• ";color:var(--brass)}.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:12px}.pick-columns{display:grid;grid-template-columns:300px 1fr;gap:18px;margin-top:12px;align-items:start}.pick-list{display:flex;flex-direction:column;gap:6px}.pick-item,.pick-card{display:block;padding:12px 14px;border:1px solid #4a3b1e;background:#0e1214b3;cursor:pointer;transition:all .12s;line-height:1.5}.pick-detail .pick-card{margin-top:8px}.pick-detail .pick-card input{margin-right:6px}.pick-item:hover,.pick-card:hover{border-color:#7d6636}.pick-item.selected,.pick-card.selected{border-color:var(--brass-bright);background:#b08d3f1a;box-shadow:0 0 10px #d9b45c2e}.pick-item b,.pick-card b{font-family:var(--font-display);color:var(--text-on-dark)}.pick-detail{padding:14px 16px;border:1px solid #33291a;background:#0a0d0f99;line-height:1.55;color:var(--text-on-dark)}.pick-detail h3{color:var(--brass-bright);margin-bottom:6px}.pb-grid{display:flex;flex-direction:column;gap:8px;margin:14px 0;max-width:560px}.pb-row{display:grid;grid-template-columns:130px auto 60px auto 70px 70px;gap:8px;align-items:center;padding:6px 10px;border:1px solid #33291a;background:#0e121499}.pb-name{font-family:var(--font-display);color:var(--text-on-dark)}.pb-score{text-align:center;font-size:19px;color:var(--brass-bright);font-weight:700}.pb-bonus{color:var(--spectral);text-align:center}.pb-final{text-align:center;font-weight:700;font-size:17px}.ability-card,.stat-box{padding:10px;text-align:center;border:1px solid #4a3b1e;background:#0e1214b3}.ability-row{display:flex;gap:10px;flex-wrap:wrap}.ac-name{font-family:var(--font-caps);color:var(--text-dim);font-size:13px}.ac-score{font-size:24px;font-weight:800;color:var(--text-on-dark);font-family:var(--font-display)}.ac-mod{color:var(--brass-bright)}.token-grid{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;max-width:660px}.token-pick{width:52px;height:52px;display:flex;align-items:center;justify-content:center;font-size:26px;border:1px solid #4a3b1e;border-radius:4px;background:#0e1214b3;color:var(--text-on-dark);cursor:pointer}.token-pick.selected{border-color:var(--brass-bright);color:var(--brass-bright);box-shadow:0 0 8px #d9b45c4d}.color-pick{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;display:inline-block;margin:3px}.color-pick.selected{border-color:#fff;box-shadow:0 0 8px #fff6}.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.feat-card{padding:12px 14px;border:1px solid #4a3b1e;background:#0e1214b3;cursor:pointer;line-height:1.45}.feat-card.selected{border-color:var(--brass-bright);background:#b08d3f1a}.feat-card b{font-family:var(--font-display)}.spell-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin-top:8px}.spell-row,.skill-row{display:flex;gap:8px;align-items:center;padding:7px 10px;border:1px solid #33291a;background:#0e12148c;cursor:pointer}.spell-row.selected,.skill-row.selected{border-color:var(--brass-bright);background:#b08d3f1a}.spell-row.locked,.skill-row.locked{opacity:.5;cursor:default}.spell-tier{font-family:var(--font-caps);color:var(--text-dim);margin:12px 0 4px}.sk-mod{margin-left:auto;color:var(--brass-bright)}.sk-pip{color:var(--text-dim)}.tabs{display:flex;gap:4px;border-bottom:1px solid #5d4c2c;margin-bottom:12px}.tab{padding:8px 18px;font-family:var(--font-display);font-size:15px;color:var(--text-dim);background:none;border:none;border-bottom:3px solid transparent;cursor:pointer}.tab:hover{color:var(--text-on-dark)}.tab.active{color:var(--brass-bright);border-bottom-color:var(--brass-bright)}.small-label{font-family:var(--font-caps);font-size:12.5px;color:var(--text-dim);letter-spacing:.08em}.inv-layout{display:grid;grid-template-columns:1fr 320px;gap:18px}.inv-left{max-height:60vh;overflow-y:auto}.inv-item{display:flex;gap:10px;align-items:center;padding:7px 10px;margin:3px 0;border:1px solid #33291a;background:#0e121480;cursor:pointer}.inv-item:hover{border-color:#7d6636}.inv-item.selected{border-color:var(--brass-bright)}.inv-item .inv-name{flex:1}.inv-item .inv-qty{color:var(--text-dim)}.inv-item.equipped .inv-name{color:var(--brass-bright)}.inv-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.equip-grid{display:flex;flex-direction:column;gap:6px}.equip-slot{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px dashed #4a3b1e;min-height:40px}.equip-slot .es-label{font-family:var(--font-caps);font-size:12px;color:var(--text-dim);width:84px}.equip-slot .es-item{color:var(--text-on-dark)}.equip-warnings{margin-top:10px}.warn-line{color:var(--danger);font-size:14px;margin:3px 0}.sheet-layout{display:grid;grid-template-columns:320px 1fr 1fr;gap:18px;max-height:64vh}.sheet-left,.sheet-mid,.sheet-right{overflow-y:auto;overflow-x:hidden;min-width:0}.sheet-ident-row{display:flex;gap:14px;align-items:center;margin-bottom:12px}.sheet-ident-row .portrait{flex:0 0 auto}.sheet-ident{text-align:left}.sheet-ident>div{line-height:1.4}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.feature-list{display:flex;flex-direction:column;gap:6px}.feature-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:7px 10px;border:1px solid #33291a;background:#0e121480;line-height:1.4}.feature-row>span:first-child{color:var(--text-on-dark)}.feature-row>.muted{white-space:nowrap;flex-shrink:0;font-size:.86em}.feature-row b{font-family:var(--font-display);font-size:.95em}.spell-list{display:flex;flex-direction:column;gap:4px}.journal-body{max-height:62vh;overflow-y:auto}.quest-card,.clue-card,.faction-card{padding:12px 16px;margin:8px 0;border:1px solid #4a3b1e;background:#0e121499}.quest-card .qc-head{display:flex;align-items:baseline;gap:10px}.quest-card .qc-head b{font-family:var(--font-display);font-size:16.5px;color:var(--brass-bright)}.quest-card .qc-desc{color:var(--text-dim);font-style:italic;margin:4px 0 8px}.quest-card .obj{margin:3px 0 3px 10px}.quest-card .obj.done{color:var(--text-dim);text-decoration:line-through}.quest-card .obj.optional:after{content:" (optional)";color:var(--spectral-dim);font-size:.85em}.quest-card.completed{opacity:.75}.clue-card b{color:var(--spectral);font-family:var(--font-display)}.faction-card .fc-head{display:flex;align-items:center;gap:10px}.faction-card .fc-name{font-family:var(--font-display);font-size:16.5px;color:var(--brass-bright)}.faction-card .fc-desc{color:var(--text-dim);margin-top:4px;line-height:1.45}.faction-card .rep{margin-left:auto;font-family:var(--font-caps)}.save-row,.saves-row{display:flex;gap:12px;align-items:center;padding:10px 14px;margin:6px 0;border:1px solid #33291a;background:#0e121480}.save-row b{font-family:var(--font-display)}.sr-main{flex:1}.sr-actions{display:flex;gap:8px}.sheet-left .saves-row{flex-wrap:wrap;gap:6px 14px;padding:8px 10px}.set-row{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:9px 4px;border-bottom:1px solid rgba(93,76,44,.35)}.rest-section{margin:12px 0}.rest-row{display:flex;gap:12px;align-items:center;padding:8px 6px;border-bottom:1px solid rgba(93,76,44,.3)}.rr-name{font-family:var(--font-display);width:160px}.rr-spend{display:flex;gap:6px;align-items:center}.gloss-list{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;max-height:60vh;overflow-y:auto;align-content:start}.gloss-entry{padding:8px 12px;border:1px solid #33291a;background:#0e121473;align-self:start}.gloss-entry:hover{color:var(--brass-bright)}.gloss-entry.active{border-left-color:var(--brass-bright);color:var(--brass-bright)}.ge-term{font-family:var(--font-display);font-size:19px;color:var(--brass-bright)}.ge-text{line-height:1.6;margin-top:8px;white-space:pre-line}.ge-related{margin-top:12px;color:var(--text-dim)}.shop-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-height:60vh}.shop-col{overflow-y:auto}.shop-col h3{position:sticky;top:0;background:#14100a;padding:4px 0}.levelup-banner{text-align:center;font-family:var(--font-display);font-size:22px;color:var(--brass-bright);padding:8px 0 2px}.lv-gains{display:flex;flex-direction:column;gap:6px;margin:10px 0}.lv-gain{padding:8px 12px;border-left:3px solid var(--brass);background:#b08d3f12}.lv-section{margin:14px 0}.company-card{display:flex;gap:12px;align-items:center;padding:10px 14px;margin:6px 0;border:1px solid #33291a;background:#0e121480}.company-card.active{border-color:#6b5731}.company-card .cc-info{flex:1}.company-card .cc-actions{display:flex;gap:8px}.loot-row{display:flex;gap:10px;align-items:center;padding:7px 10px;margin:3px 0;border:1px solid #33291a}.ending-screen{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 120%,#101c18,#05070a 70%);display:flex;align-items:center;justify-content:center;z-index:400}.ending-inner{max-width:860px;text-align:center;padding:40px}.ending-title{font-family:var(--font-display);font-size:44px;font-weight:800;color:var(--brass-bright);letter-spacing:.1em;margin-bottom:34px;text-shadow:0 4px 30px rgba(217,180,92,.2)}.ending-slide{font-family:var(--font-flavor);font-size:22px;line-height:1.75;color:#d8cdb4;min-height:160px;animation:dlg-in .6s ease-out}.ending-controls{margin-top:40px;display:flex;gap:14px;justify-content:center;align-items:center}#ending-count{color:var(--text-dim);font-size:14px}.tutorial-toast{position:fixed;top:70px;left:50%;transform:translate(-50%);width:520px;z-index:800;animation:dlg-in .25s ease-out}.tut-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 6px;font-family:var(--font-display);color:var(--brass-bright)}.tut-body{padding:4px 16px 14px;line-height:1.5;font-size:15px}.defeat-overlay{position:absolute;inset:0;z-index:350;background:radial-gradient(ellipse at center,#28080899,#050303eb);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px}.defeat-overlay h1{font-size:54px;color:#c98a7a;letter-spacing:.14em}.defeat-overlay .muted{max-width:520px;text-align:center;line-height:1.5}#dev-panel{position:fixed;top:60px;right:14px;bottom:60px;width:420px;z-index:2000;overflow-y:auto;padding:14px 16px;font-size:13.5px}#dev-panel .dev-head{font-family:var(--font-display);font-size:16px;margin-bottom:8px;color:var(--brass-bright)}#dev-panel .dev-section{margin:12px 0;padding-top:8px;border-top:1px solid rgba(93,76,44,.4)}#dev-panel .dev-label{font-family:var(--font-caps);color:var(--text-dim);letter-spacing:.08em;margin-bottom:6px}#dev-panel .dev-seed{color:var(--spectral);background:#0006;padding:2px 8px}#dev-panel .dev-input{width:200px;background:#191510;color:var(--text-on-dark);border:1px solid #5d4c2c;padding:5px 8px;font-size:13px}#dev-panel .dev-showcase{margin:5px 0;line-height:1.4}#dev-panel .btn{margin:2px 2px 2px 0}#event-log:not(:has(.log-entry)){display:none}
