/* GENRE: cinematic fantasy CRPG tabletop. Obsidian panels, antique brass, literary narration, intimate tactical diorama. */
:root{--bg:oklch(17% .013 155);--surface:oklch(19% .014 150);--surface-2:oklch(23% .013 145);--border:oklch(37% .019 105 / .42);--text:#deddd0;--text-muted:#939b90;--text-faint:#737d74;--accent:#c6ab76;--accent-soft:#c6ab7614;--success:#91b696;--success-soft:#91b69614;--warning:#c9a570;--warning-soft:#c9a57018;--danger:#c27d69;--danger-soft:#c27d691a;--font-sans:'DM Sans',sans-serif;--font-secondary:'Cormorant Garamond',Georgia,serif;--radius-sm:3px;--radius:5px;--radius-lg:9px;--shadow-sm:0 1px 2px #0003;--shadow-md:0 9px 28px #0004;--shadow-lg:0 20px 90px #0008;--pad:23px;--pad-sm:13px;--gap:11px;--stroke:1.4;--endcap:round}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:12px;-webkit-font-smoothing:antialiased}button,a,textarea{-webkit-tap-highlight-color:transparent}button{font-family:inherit;color:inherit;cursor:pointer;border:0;background:transparent;font-size:12px;transition:background .15s,border-color .15s,color .15s}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{cursor:default;opacity:.5}button:hover:not(:disabled){color:#f2e6c7}a{color:inherit;text-decoration:none}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-secondary);font-weight:500}small{font-size:10px}button span[data-icon]{display:inline-flex;align-items:center}i{display:inline-block}button[hidden],[hidden]{display:none!important}.eyebrow{font-size:9px;font-weight:600;letter-spacing:1.8px;color:var(--text-muted)}.topbar{height:70px;display:flex;align-items:center;border-bottom:1px solid var(--border);background:#101611;padding:0 23px 0 19px;gap:25px;position:relative;z-index:3}.brand{display:flex;align-items:center;gap:10px;width:189px;flex-shrink:0}.brand svg{width:37px;height:42px;color:var(--accent);stroke-width:1}.brand>span{font-family:var(--font-secondary);font-size:25px;letter-spacing:5px;color:#e0c89c}.brand small{display:block;font-family:var(--font-sans);font-size:6px;letter-spacing:2.7px;color:#919784;line-height:1}.campaign-switch{display:flex;align-items:center;gap:11px;font-weight:500;border-left:1px solid var(--border);padding-left:26px;font-size:12px}.tiny-icon{color:var(--accent)}.chevron{color:#7a867a;margin-left:18px}.session-label{font-size:9px;letter-spacing:1.3px;color:var(--text-muted)}.session-label span{margin:0 9px}.top-right{display:flex;align-items:center;gap:18px;margin-left:auto}.demo-badge{font-size:8px;letter-spacing:1.1px;color:#bba77d;border:1px solid #bba77d33;padding:5px 7px;border-radius:3px}.party-online{white-space:nowrap;font-size:10px;color:#bcc2b4}.party-online i,.chronicle-tabs>span i,.table-footer i{width:5px;height:5px;background:var(--success);border-radius:50%;margin-right:6px}.icon-button{display:grid;place-items:center;width:30px;height:30px;color:var(--text-muted);border-radius:4px}.icon-button:hover{background:#ffffff08}.shell{display:grid;grid-template-columns:65px minmax(0,1fr) 365px;height:calc(100dvh - 70px)}.rail{display:flex;flex-direction:column;align-items:center;gap:16px;border-right:1px solid var(--border);background:#111713;padding-top:23px}.rail-button{width:43px;height:41px;display:grid;place-items:center;border-radius:5px;color:#869083;position:relative}.rail-button svg{width:20px;height:20px}.rail-button:hover{background:#ffffff05}.rail-button.active{background:#c6ab7613;color:var(--accent)}.rail-button.active:before{position:absolute;content:'';height:22px;width:2px;left:-11px;background:var(--accent)}.rail-line{width:24px;height:1px;background:var(--border);margin:0 0 0}.rail-bottom{margin-top:auto;margin-bottom:20px;display:grid;justify-items:center;gap:18px}.rail-monogram{border:1px solid #90987a44;color:#b3b8a6;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-family:var(--font-secondary);font-size:15px}.tabletop{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.location-bar{height:92px;flex-shrink:0;padding:23px 28px 17px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#151c17}.location-bar .eyebrow{font-size:8px;letter-spacing:1.6px}.location-bar .eyebrow span{padding:0 7px;color:#626e63}.location-bar h1{font-size:28px;letter-spacing:-.6px;margin-top:5px;line-height:1.1}.location-diamond{font-size:17px;color:var(--accent);margin-left:7px}.location-meta{display:flex;align-items:center;gap:15px;color:var(--text-muted);font-size:10px}.location-meta>span{white-space:nowrap}.moon{border-radius:50%;width:11px;height:11px;box-shadow:-3px 2px 0 0 #c0b28d;transform:translateY(-1px);margin-right:9px}.subtle-button{border:1px solid var(--border);padding:8px 11px;display:flex;align-items:center;gap:7px;color:#b2b7a9;font-size:10px;border-radius:4px}.subtle-button svg{width:14px;height:14px}.scene-wrap{min-height:280px;flex:1;position:relative;overflow:hidden;background:#141e1b}.scene-wrap #scene{position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%;touch-action:none}.scene-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#151c17 0%,transparent 25%,transparent 74%,#11191499 100%)}.scene-top{position:absolute;top:10px;left:27px;right:24px;display:flex;justify-content:space-between;align-items:start;pointer-events:none}.scene-top button,.initiative{pointer-events:auto}.objective{padding:9px 0 8px 12px;border-left:1px solid #baa47766}.objective .eyebrow{font-size:8px;letter-spacing:1.4px;color:#b6aa8e}.objective p{font-family:var(--font-secondary);font-size:17px;color:#d3d4c6;margin:6px 0}.objective button{padding:0;font-size:9px;color:#919f8b}.objective button span{margin-left:8px}.initiative{display:flex;gap:13px;align-items:center;background:#111812c9;border:1px solid #6e79603d;padding:9px 12px;border-radius:6px;box-shadow:var(--shadow-sm);backdrop-filter:blur(10px)}.round{text-align:center;border-right:1px solid var(--border);padding-right:12px}.round span{font-size:7px;letter-spacing:1px;color:var(--text-muted);display:block}.round strong{font-family:var(--font-secondary);font-size:25px;line-height:1.05;font-weight:500;color:#d6c49f}.turn-order{display:flex;align-items:center;gap:9px}.turn-token{position:relative;padding:0;border:1px solid #71816a66;border-radius:50%;width:32px;height:32px}.portrait{background-image:url('./assets/party-portraits.png');background-size:200% 200%;background-color:#354c43;border-radius:50%}.portrait-0{background-position:0 0}.portrait-1{background-position:100% 0}.portrait-2{background-position:0 100%}.portrait-3{background-position:100% 100%}.turn-token.active{border-color:#d2b57a;outline:1px solid #c6ab7666;outline-offset:3px}.turn-token>span{position:absolute;bottom:-7px;right:-4px;background:#18211a;border:1px solid #5d6e5055;border-radius:8px;font-size:7px;padding:1px 3px;color:#c6ccbc}.enemy-portrait{background:radial-gradient(ellipse at 50% 40%,#716b4d 0%,#55513e 15%,#242d25 55%,#202b23);display:grid;place-items:center;color:#b69965}.enemy-portrait svg{width:20px;height:20px}.turn-token.enemy{border-color:#9e655866}.initiative-info{font-size:14px;color:#a5ac98;padding:0}.scene-bottom{position:absolute;left:26px;right:25px;bottom:18px;display:flex;align-items:center;gap:13px;pointer-events:none}.scene-bottom button{pointer-events:auto}.camera-tools{display:flex;align-items:center;background:#131c17c9;border:1px solid #71806a44;border-radius:4px;padding:3px;backdrop-filter:blur(8px)}.camera-tools button{width:30px;height:29px;color:#c3c7b8;font-size:20px;display:grid;place-items:center}.camera-tools svg{width:15px;height:15px}.camera-tools>span{width:1px;height:14px;background:var(--border);margin:0 4px}.camera-tools .selected{color:var(--accent);background:var(--accent-soft)}.camera-hint{font-size:8px;color:#94a092;letter-spacing:.3px}.camera-hint b{font-weight:400;margin:0 5px}.compass{margin-left:auto;text-align:center;position:relative;opacity:.75}.compass span{font-family:var(--font-secondary);font-size:10px;position:absolute;top:-9px;left:20px;color:#ceb98d}.compass svg{width:47px;height:47px;color:#afb6a3;stroke-width:.8}.compass svg path:first-child{fill:#a6ae9533;transform:rotate(23deg);transform-origin:center}.action-preview{position:absolute;bottom:78px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:12px 14px;background:linear-gradient(110deg,#23291feF,#18231ef0);border:1px solid #a9986b55;border-radius:6px;box-shadow:var(--shadow-md);backdrop-filter:blur(16px);width:max-content;max-width:calc(100% - 44px)}.spell-orb{display:grid;place-items:center;width:36px;height:36px;border-radius:6px;border:1px solid #b97b4b55;color:#e2a06c;background:radial-gradient(circle,#c8814422,#402c1720)}.spell-orb svg{width:25px;height:25px}.preview-text{display:flex;flex-direction:column;gap:4px}.preview-text .eyebrow{font-size:7px;letter-spacing:1.4px;color:#bca982}.preview-text strong{font-size:12px;font-weight:500}.preview-text strong small{color:#a6b09d;font-size:11px;font-weight:400;margin-left:5px}.preview-text>span:last-child{font-size:8px;color:#9fa892}.preview-text b{font-weight:400;margin:0 4px;color:#68795d}.gold-button{background:#bba171;color:#181d14;border:1px solid #e5c78966;border-radius:3px;padding:10px 12px;font-size:10px;font-weight:700;display:flex;gap:7px;align-items:center;white-space:nowrap;margin-left:8px}.gold-button svg{width:14px;height:14px}.gold-button:hover:not(:disabled){background:#d4ba87;color:#171d12}.token-label{position:absolute;pointer-events:none;transform:translate(-50%,-100%);text-align:center;white-space:nowrap;filter:drop-shadow(0 2px 6px #000a)}.token-label button{pointer-events:auto;padding:4px 7px;font-size:8px;background:#14221ad9;border:1px solid #788b6866;border-radius:3px;box-shadow:0 1px 5px #0004;letter-spacing:.2px}.token-label.you button{color:#c9e5cf;border-color:#8ac6a777}.token-label.target button{color:#e4c097;border-color:#ba8e6266}.token-label .token-health{height:3px;width:39px;margin:3px auto;background:#2c352b;border:1px solid #152219}.token-health i{width:100%;height:100%;background:#a6be95;display:block}.target .token-health i{background:#bf9570}.token-label small{display:block;margin-top:3px;font-size:7px;letter-spacing:.4px;color:#c4cbbb}.damage-float{position:absolute;top:40%;left:58%;pointer-events:none;font-family:var(--font-secondary);font-size:40px;color:#ffca88;text-shadow:0 0 30px #fb8622;opacity:0}.damage-float.visible{animation:damage 1.8s forwards}@keyframes damage{0%{opacity:0;transform:translateY(10px)}20%{opacity:1}70%{opacity:1}100%{opacity:0;transform:translateY(-55px)}}.character-dock{position:relative;background:linear-gradient(100deg,#1c251c,#171f18);border-top:1px solid #b29d644a;z-index:1;flex-shrink:0}.character-summary{display:flex;align-items:center;gap:15px;padding:17px 25px 15px;border-bottom:1px solid #aebe8e15}.hero-portrait{width:53px;height:53px;flex-shrink:0;border:1px solid #d1b372;outline:1px solid #b09a6655;outline-offset:3px;position:relative}.hero-portrait span{position:absolute;bottom:-7px;left:17px;background:#242b1d;color:var(--accent);border:1px solid #796b47;width:18px;height:17px;font-size:9px;display:grid;place-items:center;border-radius:3px}.hero-identity{min-width:170px}.hero-identity .eyebrow{font-size:7px;letter-spacing:1.4px;color:#baa67a}.hero-identity h2{font-size:23px;letter-spacing:-.3px;margin:2px 0}.hero-identity>span:last-child{font-size:9px;color:var(--text-muted)}.hero-hp{margin-left:auto;width:126px;flex-shrink:0}.hero-hp>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:14px}.hero-hp span{font-size:7px;letter-spacing:1.3px;color:#a4b095}.hero-hp strong{font-size:17px;font-weight:500;color:#d5deca}.hero-hp small{color:#8a9c80;font-size:11px;font-weight:400}.hp-track{height:4px;background:#344330;margin-top:7px}.hp-track i{height:100%;background:#91ac7d;display:block}.stat{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:6px;margin-left:10px;padding-left:20px;border-left:1px solid var(--border)}.stat svg{width:17px;height:17px;color:#a7aa90}.stat strong{font-size:18px;font-weight:400}.stat em{font-style:normal;font-size:9px;color:var(--text-muted)}.stat small{grid-column:1/-1;text-align:center;font-size:8px;color:var(--text-muted);margin-top:3px}.sheet-button{display:none;color:var(--text-muted);font-size:10px;margin-left:auto}.actions-row{display:flex;gap:16px;align-items:center;padding:12px 24px 13px}.action-tabs{display:flex;flex-direction:column;align-items:start;gap:6px;align-self:stretch;justify-content:center;padding-right:16px;border-right:1px solid var(--border)}.action-tabs button{padding:0;font-size:9px;color:#94a089}.action-tabs button.selected{color:var(--accent)}.spell-bar{display:flex;gap:7px;min-width:0;flex:1}.spell{position:relative;border:1px solid #70835b3b;background:#a3b28d07;border-radius:4px;height:56px;min-width:63px;padding:7px 6px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.spell.selected{border-color:#bea166b3;background:#c6ab7610;box-shadow:inset 0 -1px 0 #d4b579}.spell .key{position:absolute;top:3px;left:5px;font-size:7px;color:#869877}.spell>svg{height:23px;width:23px;color:#baa67c}.spell span:last-child{font-size:8px;white-space:nowrap;color:#b7bfad}.spell.selected span:last-child{color:#dfd0b0}.spell[data-spell="fire"] svg{color:#db9b6b}.spell[data-spell="missile"] svg{color:#b0a9cc}.spell[data-spell="frost"] svg{color:#91bcb9}.spell[data-spell="shield"] svg{color:#c5b878}.turn-resources{margin-left:auto;display:flex;align-items:flex-end;flex-direction:column;gap:10px;flex-shrink:0}.turn-resources>div{font-size:7px;color:#9ba690;white-space:nowrap}.turn-resources i{width:4px;height:4px;transform:rotate(45deg);border:1px solid #bbaa79;background:#bbaa79;margin:0 3px 1px 7px}.turn-resources #action-dot.spent{background:transparent;opacity:.4}.end-turn{border:1px solid #ad97665c;border-radius:3px;color:#d0bd95;font-size:10px;padding:7px 14px;min-width:115px}.end-turn span{margin-left:14px}.table-footer{height:27px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 22px;font-size:7px;color:#85927f;background:#111912}.table-footer button{font-size:7px;color:#87957d}.table-footer button span{margin:0 4px}.table-footer>span:last-child{font-family:var(--font-secondary);font-size:12px;font-style:italic;color:#87977c}.table-footer i{height:4px;width:4px}.chronicle{border-left:1px solid #72836240;background:#192119;display:flex;flex-direction:column;min-height:0}.chronicle-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 17px}.chronicle-header .eyebrow{font-size:7px;letter-spacing:1.7px;color:#9b9d87}.chronicle-header h2{font-size:27px;margin-top:4px;letter-spacing:-.4px}.chronicle-header svg{width:17px;height:17px}.chronicle-tabs{display:flex;gap:23px;border-bottom:1px solid var(--border);padding:0 24px;height:34px;flex-shrink:0}.chronicle-tabs button{font-size:10px;color:#959f8c;padding:0 1px 12px;position:relative}.chronicle-tabs button.selected{color:var(--accent)}.chronicle-tabs button.selected:after{position:absolute;content:'';height:1px;background:var(--accent);bottom:-1px;left:0;right:0}.chronicle-tabs button>span{font-size:8px;background:#71815918;padding:2px 4px;border-radius:3px;margin-left:4px}.chronicle-tabs>span{font-size:8px;margin-left:auto;color:#92a088;padding-top:1px}.chronicle-tabs>span i{height:4px;width:4px}.story-scroll,.rolls-scroll{overflow:auto;flex:1;padding:23px 24px 8px;scrollbar-width:thin;scrollbar-color:#54674c55 transparent}.chapter-divider{display:flex;align-items:center;gap:9px;font-size:7px;letter-spacing:1.4px;color:#829375;margin-bottom:24px;white-space:nowrap}.chapter-divider span{height:1px;flex:1;background:var(--border)}.speaker{display:flex;align-items:center;gap:8px;margin-bottom:9px}.speaker>strong{font-size:10px;letter-spacing:.1px;font-weight:500;color:#c8b48d}.speaker>span{margin-left:auto;font-size:8px;color:#66785f}.speaker small{font-size:8px;font-weight:400;color:#73856b;margin-left:5px}.dm-sigil{height:24px;width:24px;display:grid;place-items:center;border:1px solid #b39b6244;color:#c7ab71;transform:rotate(45deg);margin:0 3px 0 1px;border-radius:4px}.dm-sigil svg{transform:rotate(-45deg);height:16px;width:16px}.dm-prose{font-family:var(--font-secondary);font-size:17px;line-height:1.43;color:#cacdbc}.dm-prose p+p{margin-top:12px}.dm-prose .spoken{font-style:italic;color:#d8caae;padding-left:10px;border-left:1px solid #ba9e6155}.dm-prose strong{font-weight:600;color:#d4d5c1}.world-source{display:flex;align-items:center;gap:5px;font-size:8px;color:#90a183;margin-top:11px;padding:4px 6px;background:#97b68309;border:1px solid #9bae7c1e;border-radius:3px}.world-source svg{height:11px;width:11px}.world-source span:last-child{margin-left:3px}.dm-message{margin-bottom:23px}.player-message{margin:0 0 20px;padding:13px 12px;background:#81997409;border:1px solid #91a77918;border-radius:4px}.small-portrait{height:23px;width:23px;flex-shrink:0;border:1px solid #9bac7944}.player-message .speaker{margin-bottom:6px}.player-message strong{color:#bdc9af}.player-message p{color:#b7c3ab;font-size:11px;line-height:1.6}.roll-receipt{border:1px solid #9cb58024;border-radius:4px;background:#91aa7210;margin:0 0 22px}.receipt-main{display:flex;gap:10px;align-items:center;width:100%;padding:11px;text-align:left}.roll-die{color:#b7c898}.roll-die svg{width:26px;height:26px}.receipt-main>div{flex:1}.receipt-main strong{font-size:9px;font-weight:500;display:block}.receipt-main strong span{font-size:7px;color:#a0bd8e;background:#95bb7216;border:1px solid #95bb7220;padding:2px 4px;border-radius:2px;margin-left:7px}.receipt-main small{display:block;font-size:12px;color:#a7b69a;margin-top:6px}.receipt-main small b{color:#d0d9bc;font-weight:500}.receipt-main em{font-style:normal;font-size:9px;color:#839577;margin-left:5px}.receipt-main>span:last-child{font-size:10px;color:#91a780}.receipt-details{padding:0 13px 12px;font-size:10px;line-height:1.65;color:#a4b294}.composer{padding:13px 20px 13px;border-top:1px solid #728c5b1a;background:#192119}.suggestions{display:flex;gap:6px;margin-bottom:10px}.suggestions button{border:1px solid #8f9e7230;border-radius:3px;white-space:nowrap;font-size:8px;color:#a4b098;padding:6px 7px;display:flex;align-items:center;gap:4px}.suggestions svg{width:11px;height:11px;color:#bba274}#chat-form{border:1px solid #a3a57455;border-radius:5px;background:#111b13;padding:12px}textarea{background:none;border:0;resize:none;color:#d7dec9;font-family:inherit;font-size:11px;width:100%;line-height:1.5}textarea:focus{outline:none}textarea::placeholder{color:#949d89}.composer-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.composer-bottom>span{font-size:8px;color:#75856c}.composer-bottom button{background:#ad9565;color:#182013;display:grid;place-items:center;width:27px;height:26px;border-radius:3px}.composer-bottom svg{width:15px;height:15px}.composer-footnote{text-align:center;font-size:7px;letter-spacing:.5px;color:#748369;margin-top:10px}.rolls-scroll h3{font-size:23px;color:#d4c6a7;margin-bottom:7px}.rolls-scroll>p{font-size:10px;color:#9eac93;line-height:1.6;margin-bottom:20px}.roll-log-entry{padding:14px 0;border-bottom:1px solid var(--border)}.roll-log-entry .eyebrow{font-size:7px;color:#99ab86}.roll-log-entry h3{font-size:21px;margin:7px 0}.roll-log-entry p{font-size:11px;line-height:1.8;color:#b2c1a5}.roll-log-entry code{font-size:9px;color:#92a582}dialog{background:#19231b;color:var(--text);border:1px solid #a9996b66;border-radius:8px;padding:24px 30px 30px;max-width:760px;width:calc(100% - 50px);max-height:85vh;box-shadow:var(--shadow-lg)}dialog::backdrop{background:#070e0bba;backdrop-filter:blur(6px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dialog-top .icon-button{font-size:24px}dialog h2{font-size:38px;color:#e0d3b5;line-height:1.15;margin-bottom:10px}dialog .intro{color:#aab7a0;font-size:12px;line-height:1.7;max-width:580px;margin-bottom:24px}.world-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.world-card{text-align:left;border:1px solid var(--border);padding:22px;background:linear-gradient(135deg,#36493644,transparent);border-radius:5px}.world-card.active{border-color:#baa37499}.world-card h3{font-size:29px;margin:12px 0 5px}.world-card p{font-size:10px;color:#a4b299;line-height:1.6}.world-card .eyebrow{font-size:8px}.world-card svg{width:27px;height:27px;color:var(--accent)}.relation-flow{display:flex;gap:9px;align-items:center;margin:17px 0 22px;padding:15px;background:#a0b48309;border:1px solid #8eab6a22;border-radius:4px}.relation-flow>div{flex:1}.relation-flow span{display:block;font-size:8px;color:#8e9d80;margin-bottom:5px}.relation-flow strong{font-weight:500;font-size:11px}.relation-flow b{color:#748660;font-weight:400}.detail-rows>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--border);font-size:11px;line-height:1.6}.detail-rows span{color:#96a58b}.detail-rows strong{font-weight:400;color:#cfdbc1;text-align:right;max-width:65%}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.dialog-actions .gold-button{margin:0}.party-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.party-card{border:1px solid var(--border);padding:17px;display:flex;gap:13px;border-radius:4px;cursor:pointer;text-align:left}.party-card:hover{background:#ffffff04}.party-card .portrait{width:55px;height:55px;flex-shrink:0;border:1px solid #b8a67566}.party-card h3{font-size:22px}.party-card p{font-size:10px;color:#95a98a;margin-top:5px}.swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:23px}.swatch>i{height:55px;display:block;border-radius:4px;border:1px solid #ffffff11;margin-bottom:8px}.swatch span{font-size:9px;color:#a2b095;display:block;line-height:1.7}.type-sample{padding:16px 0;border-top:1px solid var(--border)}.type-sample h3{font-size:29px;margin-bottom:6px}.type-sample p{color:#9aa98c;font-size:11px;line-height:1.65}.toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%,20px);border:1px solid #bba57866;border-radius:5px;background:#263022;color:#dcd6be;font-size:11px;padding:13px 20px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:.2s;z-index:9;max-width:90vw}.toast.visible{opacity:1;transform:translate(-50%,0)}#scene-fallback{padding:180px 40px;text-align:center}#scene-fallback h2{font-size:30px;margin-bottom:12px}#scene-fallback p{color:var(--text-muted);font-size:12px}
@media(min-width:1550px){.shell{grid-template-columns:70px minmax(0,1fr) 400px}.chronicle-header{padding-top:28px}.story-scroll{padding:28px 28px 10px}.dm-prose{font-size:18px;line-height:1.5}.dm-message{margin-bottom:26px}.sheet-button{display:block}.hero-hp{margin-left:35px}.character-summary{padding:20px 28px}.spell{min-width:75px;height:62px}.actions-row{padding:13px 28px 16px}.turn-order{gap:12px}.turn-token{width:38px;height:38px}.initiative{padding:11px 15px}.location-bar{height:100px}.table-footer{height:30px}}
@media(max-width:1250px){.shell{grid-template-columns:56px minmax(0,1fr) 330px}.rail-button.active:before{left:-7px}.topbar{gap:15px}.brand{width:160px}.campaign-switch{padding-left:18px}.session-label{display:none}.demo-badge{display:none}.location-bar{padding-left:22px;padding-right:20px}.location-meta{gap:9px}.location-meta>span{display:none}.location-bar h1{font-size:25px}.objective{max-width:185px}.objective p{font-size:15px}.initiative{gap:8px;padding:8px}.turn-order{gap:6px}.turn-token{width:28px;height:28px}.round{padding-right:8px}.scene-top{left:23px;right:20px}.character-summary{gap:12px;padding:15px 20px}.hero-identity{min-width:150px}.hero-identity h2{font-size:21px}.hero-hp{width:104px}.stat{margin-left:2px;padding-left:12px}.stat:last-of-type{display:none}.actions-row{gap:10px;padding-left:20px;padding-right:20px}.action-tabs{padding-right:10px}.spell{min-width:57px}.turn-resources>div{display:none}.end-turn{min-width:94px;padding:8px}.camera-hint{display:none}.chronicle-header,.story-scroll{padding-left:21px;padding-right:21px}.dm-prose{font-size:16px}.preview-text strong small{font-size:9px}.gold-button{padding:10px}.action-preview{gap:8px;padding:10px}.table-footer>span:last-child{display:none}}
@media(max-width:1000px){.shell{grid-template-columns:50px minmax(0,1fr) 300px}.topbar{height:60px;padding-left:12px}.shell{height:calc(100dvh - 60px)}.brand{width:144px}.brand>span{font-size:22px}.brand svg{width:29px}.top-right{gap:9px}.scene-top{flex-direction:column;gap:15px}.objective{display:none}.initiative{align-self:center}.hero-identity{min-width:0}.hero-identity h2{font-size:18px}.hero-hp{width:90px}.character-summary .stat{display:none}.spell{min-width:51px}.spell-bar{gap:5px}.spell span:last-child{font-size:7px}.action-tabs{display:none}.spell:nth-child(4){display:none}.preview-text strong small{display:none}.action-preview .spell-orb{display:none}.preview-text>span:last-child{font-size:7px}.location-meta{display:none}.location-bar{height:82px;padding-top:18px}.actions-row{gap:8px}.character-summary{padding:14px 18px}.hero-portrait{width:44px;height:44px}.hero-portrait span{left:13px}.chronicle-header{padding-top:20px}.chronicle-header h2{font-size:25px}.chronicle-tabs{padding-left:21px;padding-right:21px}.suggestions button{font-size:7px}.suggestions{gap:4px}.composer{padding:12px 14px}.story-scroll{padding-top:19px}.dm-prose{font-size:15px}.chapter-divider{font-size:6px}.scene-bottom{left:18px;right:16px}}
@media(max-width:760px){html,body{height:auto;overflow:auto}.topbar{position:sticky;top:0;height:60px;padding-right:12px;gap:9px}.brand{width:128px}.brand>span{font-size:20px;letter-spacing:3px}.brand small{font-size:5px;letter-spacing:2px}.campaign-switch{font-size:10px;gap:6px;padding-left:10px}.campaign-switch .chevron{margin-left:3px}.top-right .party-online{display:none}.shell{height:auto;display:grid;grid-template-columns:45px minmax(0,1fr)}.rail{grid-row:1/3;padding-top:17px;gap:15px}.rail-button{width:35px;height:35px}.rail-bottom{position:sticky;bottom:20px;margin-top:40px}.tabletop{height:740px}.chronicle{grid-column:2;height:670px;border-top:1px solid var(--border);border-left:0}.location-bar{height:83px;padding-left:17px}.location-bar h1{font-size:24px}.location-bar .eyebrow{font-size:7px}.scene-wrap{min-height:330px}.character-summary{padding:14px;gap:12px}.hero-hp{width:87px;margin-left:auto}.hero-identity h2{font-size:18px}.hero-identity>span:last-child{font-size:8px}.hero-identity .eyebrow{font-size:6px}.hero-portrait{width:39px;height:39px}.hero-portrait span{left:11px}.actions-row{padding:12px}.spell{height:53px;min-width:51px}.spell-bar{gap:6px}.end-turn{font-size:9px;min-width:74px;padding:8px 7px}.end-turn span{margin-left:4px}.table-footer{padding:0 12px;font-size:6px}.table-footer button{font-size:6px}.action-preview{bottom:73px;max-width:calc(100% - 25px);gap:7px;padding:10px}.preview-text{gap:5px}.preview-text strong{font-size:11px}.gold-button{padding:9px;font-size:9px;margin-left:3px}.gold-button svg{width:12px;height:12px}.scene-top{left:12px;right:12px}.turn-order{gap:7px}.turn-token{width:27px;height:27px}.initiative{padding:8px 10px;gap:9px}.round span{font-size:6px}.compass svg{width:38px;height:38px}.compass span{left:15px}.chronicle-header{padding:21px}.chronicle-header h2{font-size:28px}.story-scroll{padding:23px}.dm-prose{font-size:18px}.composer{padding:14px 22px}.suggestions button{font-size:9px}.composer-footnote{font-size:8px}.world-grid,.party-grid{grid-template-columns:1fr}.relation-flow{align-items:stretch;flex-direction:column}.relation-flow b{transform:rotate(90deg);align-self:start}.swatches{gap:6px}dialog{padding:18px;max-height:90vh}dialog h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(max-width:760px){.hero-hp{width:70px;flex-shrink:0}.hero-hp>div:first-child{gap:6px;align-items:flex-end}.hero-hp>div:first-child>span{display:none}.hero-hp strong{font-size:17px;white-space:nowrap}.hero-hp small{font-size:10px}.hp-track{margin-top:6px}.hero-identity{flex:1;min-width:0}.hero-identity h2{font-size:17px;white-space:nowrap}.camera-tools button{width:32px;height:32px}}

/* DM authoring surfaces inherit Ember's brass, forest, and literary typography. */
.workspace-switch{display:flex;gap:3px;padding:4px;border:1px solid #a7b08126;border-radius:5px;background:#0002;margin-left:auto}
.workspace-switch button{padding:8px 12px;display:flex;align-items:center;gap:7px;font-size:10px;color:#9aa78c;border-radius:3px;white-space:nowrap}
.workspace-switch svg{width:14px;height:14px}.workspace-switch button.selected{background:#c6ab7617;color:#d4be94}.topbar .top-right{margin-left:auto}
body[data-workspace="campaign"] .tabletop>:not(#campaign-workspace),body[data-workspace="battle"] .tabletop>:not(#battle-workspace){display:none!important}
body[data-workspace="campaign"] .chronicle>:not(#studio-companion),body[data-workspace="battle"] .chronicle>:not(#studio-companion){display:none!important}
.studio-workspace{display:flex;flex-direction:column;min-height:0;height:100%;background:#1a231c;overflow:hidden}
.studio-header{display:flex;align-items:center;justify-content:space-between;padding:26px 29px 23px;border-bottom:1px solid var(--border);flex-shrink:0;background:#172019;gap:16px}
.studio-header .eyebrow{font-size:8px;letter-spacing:1.5px;color:#98a58a}.studio-header h1{font-size:30px;margin-top:7px;letter-spacing:-.5px}.studio-header .subtle-button{white-space:nowrap;font-size:10px;padding:8px 12px}
.editor-layout{display:grid;grid-template-columns:195px minmax(0,1fr);min-height:0;flex:1}.document-tree{background:#151e17;border-right:1px solid #8c9b7130;padding:24px 13px;display:flex;flex-direction:column;min-height:0;overflow:auto}.tree-heading{font-size:8px;letter-spacing:1.3px;color:#86967d;margin:0 8px 28px;display:flex;justify-content:space-between}.tree-heading>span{font-size:14px;color:#b3ba9f}.tree-chapter{display:flex;align-items:center;gap:8px;color:#b5bba4;font-size:9px;margin:0 7px 11px}.tree-chapter small{font-size:8px;color:#768668}.tree-scene{padding:11px 8px;display:flex;align-items:center;gap:7px;line-height:1.4;text-align:left;font-size:9px;color:#93a28a;border-radius:4px;margin-bottom:9px}.tree-scene.selected{background:#b7a47413;color:#dac89d;border:1px solid #b6a16d33;padding:10px 7px}.tree-scene>span:last-child{margin-left:auto;font-size:7px;color:#7f906d}.tree-dot{height:5px;width:5px;flex-shrink:0;transform:rotate(45deg);border:1px solid #9c9678}.tree-dot.complete{background:#78946b;border-color:#78946b}.tree-section{font-size:7px;letter-spacing:1.6px;color:#819176;margin:26px 8px 13px}#block-outline{display:flex;flex-direction:column;gap:9px}#block-outline button{text-align:left;font-size:9px;padding:6px 8px;color:#94a487;line-height:1.5}#block-outline button span{margin-right:7px;color:#687d5d}.tree-bottom{margin-top:auto;padding:30px 8px 0}.tree-bottom .eyebrow{font-size:7px;letter-spacing:1.3px}.tree-bottom button{display:flex;gap:8px;align-items:center;font-size:11px;width:100%;padding:12px 0 9px;color:#c7c2a4}.tree-bottom button svg{width:15px;height:15px;color:#b8a579}.tree-bottom button>span{margin-left:auto}.tree-bottom p{font-size:9px;color:#839778;line-height:1.65}.document-area{display:flex;flex-direction:column;min-width:0;min-height:0;background:linear-gradient(110deg,#222c222e,transparent)}.editor-toolbar{display:flex;align-items:center;gap:8px;padding:12px 19px;background:#1b241b;border-bottom:1px solid #88946d24;position:relative;z-index:2;min-height:50px}.editor-toolbar select{font-family:var(--font-sans);font-size:10px;color:#cfcdad;background:#263022;border:1px solid #b6ac7530;border-radius:3px;padding:6px 7px;max-width:100px}.editor-toolbar button{font-size:9px;color:#a8b29a;display:flex;align-items:center;gap:5px;white-space:nowrap;padding:5px}.editor-toolbar button svg{width:13px;height:13px}.editor-toolbar .selected{color:#d1b980;background:#c6ab7614;border-radius:3px}.toolbar-rule{width:1px;height:16px;background:var(--border);margin:0 3px}.editor-toolbar .toolbar-add{margin-left:auto;color:#bab896}.editor-toolbar #block-selection-count{font-size:8px;color:#c6ab76;margin-left:4px}.document-scroll{overflow:auto;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#80906833 transparent}.document-page{max-width:735px;margin:0 auto;padding:35px 40px 32px}.document-meta{display:flex;gap:12px;align-items:center;font-size:8px;color:#809376}.document-session{font-size:7px;letter-spacing:1.4px;color:#b3a27a}.document-session span{font-size:12px;letter-spacing:0;margin-left:3px}.draft-status{margin-left:auto;padding:3px 7px;border:1px solid #b1a06c33;background:#bbaa7110;border-radius:3px;color:#b2a17b}.document-page h2{font-size:43px;line-height:1.15;letter-spacing:-.6px;margin:14px 0 8px;color:#e0d8ba}.document-deck{font-family:var(--font-secondary);font-size:16px;color:#94a18a;font-style:italic;line-height:1.5}.document-tags{display:flex;gap:8px;align-items:center;margin:19px 0 30px;flex-wrap:wrap}.document-tags>*{border:1px solid #9aac7730;border-radius:3px;padding:4px 7px;font-size:8px;color:#b4b99f;background:#a8ad7808}.document-tags button{display:flex;gap:5px;align-items:center;color:#aabd9c}.document-tags svg{width:11px;height:11px}.document-block{display:grid;grid-template-columns:24px minmax(0,1fr);gap:7px;margin:0 -13px 8px -26px;padding:8px 12px 11px 0;border:1px solid transparent;border-radius:4px;position:relative}.document-block.active{background:#b4bd8b05;border-color:#9aa67226}.document-block.bulk-selected{background:#c6ab7610;border-color:#c6ab7655}.block-gutter{display:flex;align-items:center;flex-direction:column;gap:7px;padding-top:3px;opacity:.2}.document-block:hover .block-gutter,.document-block.active .block-gutter,.document-block.bulk-selected .block-gutter{opacity:1}.block-check{width:11px;height:11px;accent-color:#bc9f65;cursor:pointer;margin:0}.block-grip{font-size:12px;color:#7b906d}.block-meta{display:flex;align-items:center;gap:10px;min-height:14px;margin-bottom:5px}.block-role{padding:0;color:#7f9276;font-size:7px;letter-spacing:1.3px;text-transform:uppercase}.block-dialogue .block-role{color:#b1a1b4}.block-mechanic .block-role{color:#bca675}.private-label{display:flex;align-items:center;gap:4px;color:#7f8d73;font-size:7px;margin-left:auto}.private-label svg{width:10px;height:10px}.linked-mechanic{font-size:7px;display:flex;align-items:center;gap:4px;color:#b3a274;padding:0;margin-left:auto}.linked-mechanic svg{width:10px;height:10px}.block-text{font-family:var(--font-secondary);font-size:18px;line-height:1.6;color:#cbd0ba;min-height:29px;outline:none;white-space:pre-wrap;overflow-wrap:anywhere}.block-text:empty:before{content:'Write the next moment…';color:#6d8267}.block-text:focus{outline:none}.block-outline .block-text{font-size:26px;line-height:1.3;color:#d7d2b6}.block-dialogue .block-text{border-left:2px solid #a998ae66;padding:9px 13px;background:#ada2ba07;border-radius:0 3px 3px 0;font-style:italic;color:#d4c7cb}.block-mechanic .block-text{font-family:var(--font-sans);font-size:11px;line-height:1.8;color:#acb69b;padding:12px 14px;border:1px solid #b8a37330;border-radius:4px;background:#ac996414}.entity-chip{display:inline-flex;vertical-align:baseline;align-items:center;gap:4px;border:1px solid #9aac8540;border-radius:4px;background:#8ba57912;color:#baccab;font-family:var(--font-sans);font-size:10px;line-height:1.6;padding:0 5px;margin:0 1px;white-space:nowrap;font-style:normal}.entity-chip svg{width:10px;height:10px;flex-shrink:0}.entity-chip.chip-character{background:#b5a6ba10;border-color:#b5a6ba44;color:#c6b7c9}.entity-chip.chip-item{background:#c9ac6c13;border-color:#c9ac6c44;color:#cfba89}.entity-chip.chip-object{background:#88acaa10;border-color:#88acaa44;color:#a2c0b9}.add-block-line{font-size:10px;color:#778e6c;padding:14px 0;margin-left:5px}.world-links-footer{border-top:1px solid #8fa57826;margin-top:22px;padding-top:21px}.world-links-footer .eyebrow{font-size:7px;letter-spacing:1.4px}#document-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}#document-links .entity-chip{font-size:9px;padding:3px 6px}.document-status{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;min-height:31px;border-top:1px solid #889b6d22;padding:8px 15px;font-size:7px;color:#7e9472}.document-status>span:last-child{font-style:italic}.entity-picker{position:absolute;top:48px;left:19px;width:320px;background:#233023;border:1px solid #af9e6855;padding:15px;box-shadow:var(--shadow-lg);border-radius:6px}.entity-picker .eyebrow{font-size:7px}.entity-picker input{width:100%;margin:12px 0 8px;background:#151f16;border:1px solid #8f9b7133;border-radius:3px;padding:9px;font-size:10px;color:#d2d4b7;font-family:var(--font-sans)}#entity-options button{width:100%;padding:9px 3px;gap:10px;border-bottom:1px solid #829d6e15;white-space:normal;text-align:left}.entity-option-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid #b4a57922;border-radius:4px;color:#c6ae7c}#entity-options strong{font-size:10px;font-weight:500;display:block;color:#c7cdb4}#entity-options small{display:block;font-size:8px;color:#899d7c;margin-top:4px}#entity-options button>span:last-child{margin-left:auto}.entity-picker>p{font-size:8px;color:#869b77;margin-top:11px}.studio-dialog-close{position:absolute;right:17px;top:13px;font-size:25px!important}.world-record-line{display:flex;gap:11px;font-size:12px;line-height:1.6;padding:20px 0;color:#bfc7aa;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.world-record-line svg{flex-shrink:0;color:#bda97b}.record-backlinks{padding-top:24px}.record-backlinks p{font-size:11px;color:#9aac8e;line-height:1.7;margin-top:13px}.studio-dialog-note{font-size:10px;line-height:1.7;color:#8b9d7e;margin-top:24px}.world-index-list{display:flex;flex-direction:column}.world-index-list button{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid var(--border)}.world-index-list svg{color:#c6ab76}.world-index-list strong{font-size:13px;font-weight:400}.world-index-list span{margin-left:auto;font-size:10px;color:#8ba17c}
/* A configurable overview is a projection of the worksheet cells. */
.lab-toolbar{display:flex;align-items:center;gap:9px;padding:15px 25px;border-bottom:1px solid #8a9e7130;background:#1b261d;flex-shrink:0}.lab-view-switch{display:flex;border:1px solid #a4ae8130;border-radius:4px;background:#132016;padding:3px}.lab-view-switch button{display:flex;align-items:center;gap:7px;padding:7px 9px;font-size:9px;color:#9aac8b;border-radius:2px}.lab-view-switch button svg{height:13px;width:13px}.lab-view-switch .selected{color:#d6c49d;background:#c6ab7614}.lab-sandbox{font-size:8px;color:#8aa07c;margin-right:auto;white-space:nowrap}.lab-sandbox i{width:4px;height:4px;background:#8cac79;border-radius:50%;margin-right:5px}.lab-toolbar .subtle-button{font-size:9px;padding:8px}.lab-toolbar .gold-button{font-size:9px;padding:9px 11px;margin:0}.lab-scroll{flex:1;min-height:0;overflow:auto;padding:27px;scrollbar-width:thin;scrollbar-color:#78966633 transparent}.encounter-strip{display:flex;align-items:center;gap:15px;border-bottom:1px solid #8a9e7130;padding-bottom:24px;margin-bottom:24px}.encounter-badge{display:grid;place-items:center;width:45px;height:49px;border:1px solid #bea47355;background:#c6ab7610;clip-path:polygon(12% 0,88% 0,100% 15%,100% 78%,50% 100%,0 78%,0 15%);color:#ccb080}.encounter-badge svg{width:27px;height:27px}.encounter-strip h2{font-size:28px;color:#d9d3b7;margin-bottom:6px}.encounter-strip p{font-size:10px;color:#8fa382}.encounter-strip p span{padding:0 7px;color:#677d5e}.encounter-strip>button{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:9px;color:#b7b18f;white-space:nowrap}.encounter-strip>button svg{width:12px;height:12px;transform:rotate(90deg)}.overview-intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:10px}.overview-intro .eyebrow{font-size:8px;letter-spacing:1.5px}.overview-intro>span:last-child{font-size:8px;color:#7e9571}.widget-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mission-widget{display:flex;flex-direction:column;min-width:0;min-height:170px;background:linear-gradient(135deg,#27332699,#1d291e);border:1px solid #91a57630;border-radius:5px;padding:17px;position:relative}.mission-widget.wide{grid-column:span 2}.widget-heading{display:flex;align-items:center;justify-content:space-between;gap:9px}.widget-heading>span{color:#aab39a;font-size:10px}.widget-heading>button{font-size:8px;color:#728b66;background:#8299740b;padding:3px 5px;border-radius:2px}.widget-heading svg{width:9px;height:9px;transform:rotate(45deg);margin-left:2px}.widget-value{font-family:var(--font-secondary);font-size:53px;letter-spacing:-1.5px;color:#e1d9b9;line-height:1.12;margin:11px 0 6px}.widget-value small{font-family:var(--font-sans);font-size:10px;letter-spacing:0;color:#889c7c;margin-left:9px}.widget-value.word-value{font-size:44px;font-weight:400;letter-spacing:-1px}.widget-damage .widget-value{color:#dcad84}.widget-health .widget-value{color:#b9cc9f}.widget-passage{background:linear-gradient(115deg,#27372855,#18271a)}.widget-passage .widget-value{color:#a4b89a}.widget-foot{margin-top:auto;padding-top:11px;font-size:8px;color:#7f9672;display:flex;align-items:center;gap:5px;flex-wrap:wrap;overflow-wrap:anywhere}.widget-foot>span:last-child{margin-left:auto}.widget-foot .hit{font-size:8px;color:#a5c18d;padding:3px 6px;background:#9ebf7611;border-radius:3px;border:1px solid #9ebf7622}.widget-foot .miss{font-size:8px;color:#bd9178;padding:3px 6px;background:#bd917811;border-radius:3px}.widget-foot svg{height:12px;width:12px}.widget-health{height:3px;background:#52633b44;max-width:100%;margin-top:8px}.widget-health i{display:block;height:100%;background:#8da577}.pressure-segments{display:flex;gap:5px;margin-top:8px}.pressure-segments i{height:5px;background:#71835933;flex:1;border-radius:1px}.pressure-segments .filled{background:#b6a16f}.add-widget{min-height:70px;border:1px dashed #8f9c6844;border-radius:5px;font-size:22px;color:#829571;display:flex;align-items:center;justify-content:center;gap:8px;flex-direction:column;padding:14px}.add-widget span{font-size:10px;color:#9caa8f}.add-widget small{font-size:8px;color:#6e8764}.mission-widget.arranging{border-style:dashed;cursor:grab}.mission-widget.dragging{opacity:.35}.widget-layout-controls{display:flex;gap:5px;width:100%;margin-top:5px;justify-content:flex-end}.widget-layout-controls button{font-size:8px;padding:3px 7px;border:1px solid #acb18133;border-radius:3px;color:#c2b691}.lab-lower{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin-top:24px}.mechanic-note{padding:20px 21px;border-left:1px solid #bca57455;background:#bca57406}.mechanic-note .eyebrow{font-size:7px;color:#b19d73}.mechanic-note h3{font-size:24px;line-height:1.18;margin:10px 0;color:#cbc7a8}.mechanic-note p{font-size:10px;line-height:1.7;color:#99ac8d;max-width:340px}.mechanic-note button{font-size:9px;color:#a9baa1;padding:0;display:flex;align-items:center;gap:6px;margin:13px 0}.mechanic-note button svg{width:12px;height:12px}.mechanic-note button span{margin-left:8px}.mechanic-note code{font-size:8px;color:#a8b891;display:block;overflow-wrap:anywhere}.dice-history{padding:20px 17px;border:1px solid #94a87824;border-radius:4px}.panel-caption{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-caption .eyebrow{font-size:7px;letter-spacing:1.3px}.panel-caption>span:last-child{font-size:7px;color:#758e68}.recorded-die{display:flex;align-items:center;gap:11px;margin-top:17px}.die-shape{width:32px;height:34px;display:grid;place-items:center;color:#c5b67e;border:1px solid #bca46f33;border-radius:5px;font-size:23px}.recorded-die>div{flex:1}.recorded-die strong{display:block;font-size:10px;font-weight:400;color:#b6c2a5}.recorded-die small{display:block;font-size:8px;color:#819976;margin-top:5px}.recorded-die>b{font-family:var(--font-secondary);font-size:28px;font-weight:500;color:#d0d5b4}.dice-history>button{display:flex;align-items:center;gap:6px;font-size:8px;color:#9bb188;margin:18px auto 0}.dice-history>button svg{width:12px;height:12px}#simulation-result{padding:22px 18px;border:1px solid #aabd8533;border-radius:5px;margin-top:22px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;background:#aabd8507}#simulation-result .eyebrow{font-size:7px}#simulation-result h3{font-size:26px;margin:9px 0;color:#d3cfb2}#simulation-result h3 span{display:block;font-family:var(--font-sans);font-size:10px;color:#a1b290;margin-top:8px}#simulation-result p{font-size:8px;line-height:1.7;color:#809971}.simulation-bars{display:flex;align-items:flex-end;gap:9px;height:103px}.simulation-bars>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;justify-content:flex-end;height:100%}.simulation-bars i{background:#a5b07d88;width:100%;border-top:1px solid #d4c28c;border-radius:2px 2px 0 0}.simulation-bars span{font-size:7px;color:#a1b48d}.simulation-bars small{font-size:7px;color:#728d65}.formula-bar{display:flex;align-items:center;gap:10px;background:#141f16;border:1px solid #9bac7438;padding:8px 10px;border-radius:4px 4px 0 0}.formula-bar #cell-address{min-width:39px;border-right:1px solid #9bac7438;font-size:11px;color:#cbbc8f}.fx{font-family:Georgia,serif;font-style:italic;font-size:16px;color:#b8a675}.formula-bar input{flex:1;min-width:0;background:none;color:#d2d5b7;border:0;font-family:monospace;font-size:11px;padding:6px 0;outline:none}.formula-bar button{font-size:10px;color:#bdb38b;white-space:nowrap;padding:5px}.formula-bar #apply-cell{color:#a9c58f;font-size:13px}.sheet-wrap{width:100%;overflow:auto;border:1px solid #9bac7438;border-top:0}.sheet-wrap table{border-collapse:collapse;width:100%;table-layout:fixed;min-width:800px}.sheet-wrap th{font-size:9px;font-weight:400;color:#7b926d;background:#17221a;height:28px;border:1px solid #8fa3721c;border-top:0}.sheet-wrap th:first-child{width:34px}.sheet-wrap td{height:43px;border:1px solid #8fa37222;padding:0;background:#202b1f}.sheet-wrap tr:nth-child(1) td{background:#263124}.sheet-cell{display:block;width:100%;height:43px;padding:0 9px;text-align:left;font-size:9px;position:relative;color:#a9b69a;border:1px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-cell span{display:block;overflow:hidden;text-overflow:ellipsis}.sheet-cell.selected{border:1px solid #c3ab73;background:#c3ab7310}.sheet-cell.selected:after{content:'';position:absolute;width:4px;height:4px;bottom:0;right:0;background:#d1b681}.sheet-cell.formula-cell{color:#b9cba3;text-align:right;font-size:12px}.sheet-cell.number-cell{color:#d8c28f;text-align:right;font-size:12px;background:#c9ac7605}.sheet-cell.formula-cell i{width:4px;height:4px;background:#84a470;position:absolute;top:3px;left:3px;clip-path:polygon(0 0,100% 0,0 100%)}.sheet-cell.cell-error,.formula-error{color:#d1967e!important}.sheet-help{display:flex;justify-content:space-between;gap:16px;padding:17px 0;font-size:8px;color:#7f9673;line-height:1.7}.sheet-help>span:first-child{white-space:nowrap}.cell-legend{width:5px;height:5px;margin:0 4px 0 9px;border-radius:1px;background:#96a288}.cell-legend.input{background:#c4ad76}.cell-legend.formula{background:#90b475}.cell-legend:first-child{margin-left:0}.lab-status{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 25px;font-size:7px;color:#7a9270;border-top:1px solid #8ea67326;background:#172119}.lab-status i{width:4px;height:4px;display:inline-block;background:#9aaa7d;border-radius:50%;margin-right:5px}.lab-status .error-dot{background:#d19076}.studio-field{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#a6b699;margin-top:25px}.studio-field input{background:#131f16;color:#d4d8bc;border:1px solid #93a77955;padding:12px;font-family:var(--font-sans);font-size:13px;border-radius:4px}.pin-preview{margin-top:18px;padding:18px;background:#b2b5800b;border:1px solid #b2b58022;border-radius:4px;display:flex;align-items:center;gap:20px}.pin-preview>span{color:#899f7a;font-size:11px}.pin-preview strong{font-family:var(--font-secondary);font-size:36px;font-weight:500}.pin-preview code{margin-left:auto;color:#a3b38f;font-size:11px}.muted{color:#829974;font-size:10px;line-height:1.7;margin-top:16px}
/* The same companion follows the writer from the page to the worksheet. */
#studio-companion{display:flex;flex-direction:column;min-height:0;height:100%;background:#182319}.studio-ai-header{padding:26px 23px 22px;display:flex;gap:12px;align-items:center}.studio-ai-header .dm-sigil{width:30px;height:30px;flex-shrink:0}.studio-ai-header .eyebrow{font-size:6px;letter-spacing:1.4px;color:#8ea17e}.studio-ai-header h2{font-size:28px;margin-top:5px;line-height:1.1}.assistant-demo{font-size:6px;letter-spacing:1px;margin-left:auto;align-self:start;border:1px solid #bbab7740;border-radius:3px;padding:4px;color:#a99c6e}.studio-ai-tabs{display:flex;justify-content:space-between;align-items:center;min-height:36px;border-bottom:1px solid #829c6b30;margin:0 22px}.studio-ai-tabs>span{font-size:10px;color:#c7b17e;padding:0 1px 13px;border-bottom:1px solid #c7b17e;margin-bottom:-1px}.studio-ai-tabs button{font-size:8px;color:#849c75;padding:0 0 12px}.studio-ai-scroll{min-height:0;flex:1;overflow:auto;padding:22px;scrollbar-width:thin;scrollbar-color:#77956233 transparent}.assistant-context{border:1px solid #93aa7730;background:#93aa7707;padding:14px;border-radius:4px;display:flex;flex-direction:column;gap:9px}.assistant-context .eyebrow{font-size:7px;letter-spacing:1.1px;color:#869b77}.assistant-context strong{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:500;color:#bbcab0}.assistant-context strong svg{width:13px;height:13px;color:#acbb92}.assistant-context>span:last-child{font-size:8px;color:#7f9670}.assistant-letter{margin:25px 0 22px}.assistant-letter .eyebrow{font-size:7px;letter-spacing:1.4px;color:#b5a173}.assistant-letter p{font-family:var(--font-secondary);font-size:19px;line-height:1.5;color:#c6ceb5;margin-top:11px}.assistant-letter p.assistant-note{font-family:var(--font-sans);font-size:10px;color:#8fa680;line-height:1.75;margin-top:15px}.assistant-suggestions{display:flex;flex-direction:column;gap:8px}.assistant-suggestions button{padding:11px 10px;border:1px solid #9eae7933;border-radius:4px;display:flex;align-items:center;gap:8px;text-align:left;font-size:9px;color:#b6c1a4;background:#9eae7906}.assistant-suggestions svg{width:13px;height:13px;color:#b7a578}.assistant-suggestions button>span{margin-left:auto;color:#839971}.assistant-boundary{display:flex;gap:7px;align-items:start;font-size:8px;line-height:1.7;color:#728c65;margin-top:18px}.assistant-boundary svg{width:12px;height:12px;flex-shrink:0;margin-top:2px}.proposal-card{margin-top:22px;border:1px solid #b6a36c55;border-radius:5px;padding:15px;background:#b6a36c08}.proposal-heading{display:flex;align-items:center;justify-content:space-between;gap:6px}.proposal-heading .eyebrow{font-size:7px;color:#b9a97b}.proposal-heading>span:last-child{font-size:8px;color:#a3b78e}.proposal-card h3{font-size:22px;line-height:1.25;color:#d3c9a5;margin:12px 0 14px}.proposal-change{padding:11px 0;border-top:1px solid #8a9c7026;overflow-wrap:anywhere}.proposal-change>strong{font-size:9px;font-weight:500;color:#adbda0;display:block;margin-bottom:8px}.diff-before,.diff-after{font-size:9px;line-height:1.7;padding:6px 7px;white-space:pre-wrap}.diff-before{background:#9d6c5920;color:#b9967f}.diff-after{background:#7c9e6022;color:#b5c8a0;margin-top:3px}.proposal-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.proposal-actions>button:first-child{font-size:9px;color:#8ba079}.proposal-actions .gold-button{font-size:9px;padding:9px 11px}.scribe-dice{margin-top:28px;border-top:1px solid #8da07024;padding-top:18px}.scribe-dice .eyebrow{font-size:7px;color:#91a27c}.scribe-dice form{display:flex;gap:8px;margin-top:12px}.scribe-dice input{min-width:0;flex:1;border:1px solid #99ad7833;background:#142017;color:#bccaab;border-radius:3px;padding:9px;font-family:monospace;font-size:11px}.scribe-dice form button{border:1px solid #b9a36c44;background:#b9a36c10;border-radius:3px;color:#bfab78;width:36px}.scribe-dice form svg{width:19px;height:19px}#scribe-dice-result{font-size:8px;color:#78936b;margin-top:10px;display:flex;gap:13px;align-items:center;line-height:1.6}#scribe-dice-result strong{font-family:var(--font-secondary);font-weight:500;font-size:30px;color:#d3c8a5}#scribe-dice-result span{font-size:9px;color:#aabf94}#scribe-dice-result small{display:block;font-size:7px;color:#738f64}.studio-ai-composer{margin:12px 20px 0;padding:13px;background:#111c13;border:1px solid #aba57455;border-radius:5px}.studio-ai-composer>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.studio-ai-composer span{font-size:8px;color:#6f8964}.studio-ai-composer button{background:#b29a68;width:28px;height:27px;color:#182013;border-radius:3px;display:grid;place-items:center}.studio-ai-composer svg{width:15px;height:15px}.studio-ai-foot{font-size:7px;text-align:center;padding:12px 15px 17px;color:#6f8863;letter-spacing:.2px}
@media(min-width:1600px){.editor-layout{grid-template-columns:215px minmax(0,1fr)}.document-page{padding-top:43px}.document-block{margin-bottom:14px}.block-text{font-size:19px}.document-page h2{font-size:46px}.mission-widget{min-height:185px}.widget-value{font-size:60px}.studio-header{padding:28px 32px}.lab-scroll{padding:31px}}
@media(max-width:1350px){.topbar .demo-badge{display:none}.workspace-switch button{padding:7px 9px}.editor-layout{grid-template-columns:166px minmax(0,1fr)}.document-tree{padding:21px 9px}.tree-scene{font-size:8px;gap:5px}.tree-chapter{font-size:8px;gap:5px}.document-page{padding:30px 28px}.document-page h2{font-size:37px}.document-deck{font-size:14px}.editor-toolbar{padding:11px 13px;gap:5px}.editor-toolbar button{font-size:8px}.editor-toolbar select{font-size:9px;max-width:90px;padding:5px}.editor-toolbar #block-private{font-size:0;gap:0}.editor-toolbar #block-private svg{width:14px;height:14px}.block-text{font-size:17px}.block-outline .block-text{font-size:24px}.block-meta{gap:7px}.entity-chip{font-size:9px}.document-status>span:last-child{display:none}.studio-header{padding:23px}.studio-header h1{font-size:28px}.lab-toolbar{padding:13px 20px;gap:7px}.lab-sandbox{display:none}.lab-view-switch{margin-right:auto}.lab-toolbar .subtle-button{font-size:8px;padding:8px}.lab-toolbar .gold-button{font-size:8px;padding:9px}.lab-scroll{padding:23px}.widget-heading>span{font-size:9px}.mission-widget{padding:14px;min-height:159px}.widget-value{font-size:47px}.widget-value.word-value{font-size:39px}.encounter-strip h2{font-size:25px}.lab-lower{gap:12px}.mechanic-note{padding:17px}.mechanic-note h3{font-size:21px}.overview-intro>span:last-child{font-size:7px}.studio-ai-header{padding:23px 20px}.studio-ai-header .eyebrow{font-size:5px}.studio-ai-scroll{padding:20px}.assistant-letter p{font-size:18px}.assistant-suggestions button{font-size:8px}.lab-status{padding:9px 20px;flex-wrap:wrap;font-size:6px}.lab-status>span:nth-child(2){display:none}}
@media(max-width:1100px){.workspace-switch button{font-size:9px;padding:7px}.workspace-switch svg{display:none}.topbar .party-online{display:none}.topbar .campaign-switch{font-size:10px;gap:6px}.campaign-switch .chevron{margin-left:5px}.editor-layout{grid-template-columns:1fr}.document-tree{display:none}.document-page{padding:29px 32px;max-width:680px}.document-block{margin-left:-21px}.studio-header h1{font-size:26px}.studio-header .eyebrow{font-size:7px}.studio-header .subtle-button{font-size:9px}.lab-view-switch button{font-size:8px;padding:7px}.lab-view-switch svg{display:none}.lab-toolbar{padding:12px 16px}.lab-scroll{padding:19px}.widget-grid{gap:9px}.mission-widget{padding:12px;min-height:151px}.widget-heading{gap:3px}.widget-heading>span{font-size:8px}.widget-value{font-size:43px}.widget-value small{font-size:8px}.widget-foot{font-size:7px;gap:3px}.widget-value.word-value{font-size:35px}.widget-heading>button{font-size:7px;padding:2px}.widget-heading svg{display:none}.encounter-strip{gap:10px}.encounter-strip h2{font-size:23px}.encounter-strip p{font-size:8px}.encounter-strip>button{font-size:8px}.encounter-strip>button svg{display:none}.encounter-badge{height:42px;width:36px;flex-shrink:0}.lab-lower{grid-template-columns:1fr}.dice-history{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel-caption{grid-column:1/-1}.dice-history>button{margin:0;font-size:8px}.recorded-die{margin-top:2px}.mechanic-note h3{font-size:24px}.overview-intro>span:last-child{max-width:50%;text-align:right;line-height:1.5}.lab-status>span:last-child{font-size:6px}#simulation-result{grid-template-columns:1fr}.sheet-help{flex-direction:column;gap:8px}.studio-ai-header{gap:10px}.studio-ai-header h2{font-size:27px}.studio-ai-header .dm-sigil{width:25px;height:25px}.studio-ai-header .eyebrow{font-size:5px;letter-spacing:.8px}.assistant-demo{font-size:5px;padding:3px}}
@media(max-width:760px){.topbar{flex-wrap:wrap;height:101px;align-content:center;gap:8px 10px}.topbar .brand{width:129px}.topbar .campaign-switch{margin-right:auto}.topbar .top-right{margin-left:0}.workspace-switch{order:4;width:100%;justify-content:center;padding:2px;margin:0 0 1px 40px}.workspace-switch button{flex:1;justify-content:center;padding:6px 10px;font-size:9px}.workspace-switch svg{display:block;width:12px;height:12px}.workspace-switch .selected{background:#c6ab7620}.shell{height:auto}.studio-workspace{height:100%}.studio-header{padding:20px 17px;align-items:flex-end}.studio-header h1{font-size:24px;line-height:1.15}.studio-header .eyebrow{font-size:6px;letter-spacing:1px}.studio-header .subtle-button{font-size:8px;padding:7px}.studio-header .subtle-button svg{display:none}.document-page{padding:24px 22px 29px}.document-page h2{font-size:33px}.document-deck{font-size:14px}.document-meta{font-size:7px;gap:8px}.document-tags{gap:5px;margin-bottom:20px}.document-tags>*{font-size:6px;padding:4px 5px}.document-tags svg{width:9px;height:9px}.editor-toolbar{gap:4px;padding:10px 9px;flex-wrap:wrap}.editor-toolbar select{font-size:8px;max-width:85px}.editor-toolbar button{font-size:7px;padding:4px}.editor-toolbar button svg{width:11px;height:11px}.toolbar-rule{margin:0 1px}.editor-toolbar #block-private{font-size:0}.editor-toolbar .toolbar-add{font-size:7px}.document-block{margin-left:-20px;margin-right:-9px;grid-template-columns:18px minmax(0,1fr);gap:5px;padding-right:5px}.block-text{font-size:17px}.block-outline .block-text{font-size:22px}.block-role{font-size:6px;letter-spacing:1px}.private-label{font-size:6px}.linked-mechanic{font-size:6px}.entity-chip{font-size:8px;padding:0 4px}.entity-chip svg{height:9px;width:9px}.block-mechanic .block-text{font-size:10px;padding:10px}.entity-picker{left:6px;width:calc(100% - 12px);top:46px}.document-status{font-size:6px;padding:9px}.document-status>span:last-child{display:none}body[data-workspace="campaign"] .tabletop{height:940px}body[data-workspace="battle"] .tabletop{height:1080px}body[data-workspace="campaign"] .chronicle,body[data-workspace="battle"] .chronicle{height:850px}.studio-ai-header .eyebrow{font-size:6px}.studio-ai-scroll{padding:23px}.assistant-letter p{font-size:20px}.assistant-suggestions button{font-size:10px;padding:12px}.assistant-context strong{font-size:11px}.assistant-context>span:last-child{font-size:9px}.studio-ai-header .dm-sigil{width:29px;height:29px}.studio-ai-composer{margin:12px 21px 0}.studio-ai-composer span{font-size:8px}.studio-ai-header{padding:25px 22px}.studio-ai-header h2{font-size:29px}.studio-ai-foot{font-size:7px}.lab-toolbar{padding:10px;gap:6px;flex-wrap:wrap}.lab-view-switch{margin-right:auto}.lab-view-switch button{font-size:8px}.lab-toolbar .subtle-button{font-size:7px;padding:7px}.lab-toolbar .gold-button{font-size:8px;padding:8px}.lab-toolbar .gold-button svg{width:12px;height:12px}#layout-toggle{margin-left:auto}.lab-scroll{padding:18px 12px}.encounter-strip{align-items:flex-start;gap:9px;padding-bottom:18px;margin-bottom:20px;flex-wrap:wrap}.encounter-strip h2{font-size:23px;line-height:1.15;max-width:215px}.encounter-strip p{font-size:8px;line-height:1.6}.encounter-strip p span{padding:0 3px}.encounter-strip>button{font-size:8px;margin-left:45px}.encounter-badge{width:35px;height:41px}.widget-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.widget-value{font-size:45px}.mission-widget{min-height:155px;padding:12px}.widget-heading{align-items:flex-start;gap:5px}.widget-heading>span{font-size:9px;line-height:1.4}.widget-heading>button{font-size:7px}.widget-value small{font-size:8px;margin-left:5px}.widget-grid .wide{grid-column:span 2}.widget-foot{font-size:7px;line-height:1.6}.overview-intro{gap:10px}.overview-intro .eyebrow{font-size:7px;letter-spacing:1px}.overview-intro>span:last-child{font-size:6px}.lab-lower{margin-top:18px}.mechanic-note{padding:16px 14px}.mechanic-note h3{font-size:23px}.mechanic-note p{font-size:10px}.dice-history{padding:16px}.recorded-die{gap:8px}.recorded-die>b{font-size:25px}.lab-status{font-size:6px;padding:9px 11px}.lab-status>span:last-child{max-width:47%;text-align:right}.formula-bar{gap:6px;padding:7px}.formula-bar #cell-address{min-width:30px;font-size:10px}.formula-bar input{font-size:10px}.formula-bar button{font-size:8px;padding:4px}.formula-bar .fx{font-size:13px}.sheet-help{font-size:7px}#simulation-result{padding:16px}.pin-preview{gap:12px}.pin-preview code{font-size:9px;overflow-wrap:anywhere}.pin-preview strong{font-size:28px}.studio-dialog-note{font-size:9px}.world-index-list button{font-size:11px}.world-index-list strong{font-size:11px}.world-index-list span{font-size:8px}}
@media(prefers-reduced-motion:reduce){.document-scroll{scroll-behavior:auto}}
.add-widget{grid-column:1/-1;min-height:46px;flex-direction:row;gap:10px;padding:11px}.add-widget small{margin-left:5px}.mission-widget{min-height:157px}.block-check{appearance:none;border:1px solid #86997566;background:#1e2a20;border-radius:2px;position:relative}.block-check:checked{background:#b8a16c;border-color:#d1bc82}.block-check:checked:after{content:'✓';position:absolute;color:#182013;inset:-3px 0 0;text-align:center;font-size:10px}.document-block.active .block-check{border-color:#b5a87677}
@media(max-width:760px){.add-widget{min-height:46px}.add-widget small{display:none}.mission-widget{min-height:155px}}
