@font-face{font-display:swap;font-family:Cinzel;font-style:normal;font-weight:400 900;src:url(/fonts/Cinzel-latin.woff2) format("woff2")}@font-face{font-display:swap;font-family:IM Fell English;font-style:normal;font-weight:400;src:url(/fonts/IMFellEnglish-latin.woff2) format("woff2")}:root{--font-display: "Cinzel";--font-body: "IM Fell English";--ink-walnut: #2a1f17;--accent-brass: #b08742;--surface-parchment: #f1e3c7;--ink-black: #15110c;--ink-steel: #5a534a;--alert-crit: #8b1a1a;--ghost-blue: #3a5a78;--accent-forest: #3e5b3a;--accent-brass-light: oklch(78% .098 76);--accent-brass-dark: oklch(42% .079 73);--surface-parchment-warm: oklch(91% .045 82);--surface-leather: oklch(24% .042 64);--surface-stone: oklch(35% .012 80);--royal-purple: oklch(23% .072 310);--texture-parchment: url(/assets/ui-textures/parchment-panel-clean.webp);--texture-walnut: url(/assets/ui-textures/walnut-panel-grain.webp);--texture-leather: url(/assets/ui-textures/aged-leather-dark.webp);--step-xs: .72rem;--step-sm: .86rem;--step-md: 1rem;--step-lg: 1.25rem;--step-xl: 1.55rem;--step-xxl: 2.05rem;--space-section: 1.5rem;--space-panel: 1rem;--space-element: .75rem;--radius-card: .35rem;--radius-panel: .5rem;--shadow-candle: 0 1rem 2.25rem oklch(7% .012 67 / 42%);--shadow-ember: 0 .35rem 1.1rem oklch(8% .014 68 / 45%);--touch-target: 48px;--route-content-max: 100%;--bottom-bar-columns: repeat(2, minmax(0, 1fr))}@media(min-width:760px){:root{--route-content-max: 56rem;--bottom-bar-columns: repeat(4, minmax(0, 1fr))}}@font-face{font-family:Cinzel;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/Cinzel-latin.woff2) format("woff2")}@font-face{font-family:IM Fell English;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IMFellEnglish-latin.woff2) format("woff2")}:root{--font-display:"Cinzel", serif;--font-body:"IM Fell English", "EB Garamond", serif;--ink-walnut:#2a1f17;--accent-brass:#b08742;--accent-brass-light:#d6ae6a;--accent-brass-dark:#7a5a26;--surface-parchment:#f1e3c7;--surface-parchment-warm:#e9d6b1;--ink-black:#15110c;--ink-steel:#5a534a;--alert-crit:#8b1a1a;--ghost-blue:#3a5a78;--accent-forest:#3e5b3a;--tex-parchment:url(/assets/design/tex/parchment.png);--tex-walnut:url(/assets/design/tex/walnut.png);--tex-leather:url(/assets/design/tex/leather.png);--tex-grunge:url(/assets/design/tex/grunge.png);--tex-vignette:url(/assets/design/tex/vignette.png);--shadow-candle:0 12px 32px rgba(0,0,0,.45);--shadow-ember:0 6px 18px rgba(0,0,0,.55);--radius-panel:8px;--radius-card:6px}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--surface-parchment);background:#0a0807;min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh;width:100%}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(60% 40% at 50% 0%,rgba(176,135,66,.1),transparent 70%),radial-gradient(50% 60% at 80% 90%,rgba(58,90,120,.12),transparent 70%),radial-gradient(80% 60% at 50% 100%,rgba(139,26,26,.08),transparent 70%),var(--tex-leather),#0c0907;background-size:cover,cover,cover,420px,auto;background-blend-mode:normal,normal,normal,multiply,normal}.phone-stage{position:relative;z-index:1;padding:32px 16px;display:flex;justify-content:center;align-items:center}.phone{width:402px;height:874px;border-radius:54px;background:#000;padding:8px;box-shadow:0 60px 140px #000000b3,0 0 0 2px #14110d,0 0 0 4px #2a2620,0 0 0 6px #0a0807,inset 0 0 0 1px #b087421a;position:relative}.phone-screen{width:100%;height:100%;border-radius:46px;overflow:hidden;background:#0d0a07;position:relative;display:flex;flex-direction:column}.dynamic-island{position:absolute;top:10px;left:50%;transform:translate(-50%);width:124px;height:34px;border-radius:20px;background:#000;z-index:80}.home-indicator{position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:134px;height:5px;border-radius:99px;background:#f1e3c78c;z-index:80}.status-bar{position:absolute;top:0;left:0;right:0;height:54px;z-index:70;display:flex;justify-content:space-between;align-items:center;padding:18px 32px 0;color:#f1e3c7;font:600 15px/1 -apple-system,system-ui;pointer-events:none}.status-bar .right{display:flex;gap:6px;align-items:center}.surface{position:relative;min-height:100vh;padding:54px 0 34px;background:radial-gradient(120% 60% at 50% 0%,rgba(176,135,66,.18),transparent 60%),radial-gradient(80% 70% at 50% 100%,#140f0a,#140f0a00 70%),linear-gradient(180deg,#1a130d,#0a0806),var(--tex-leather);background-size:cover,cover,cover,360px;background-blend-mode:normal,normal,normal,multiply;display:flex;flex-direction:column;overflow:hidden}.phone-screen>.surface{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0}.surface:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:var(--tex-vignette) center/cover no-repeat;opacity:.65;mix-blend-mode:multiply}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 14px 10px;position:relative;z-index:3}.topbar .scene{display:flex;align-items:center;gap:10px;min-width:0}.topbar .crest{width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d6ae6a,#7a5a26 65%,#3a2912);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #ffdca066,0 2px 6px #0009;flex-shrink:0}.topbar .crest svg{width:22px;height:22px}.topbar .scene-meta{display:flex;flex-direction:column;min-width:0}.topbar .scene-meta .eyebrow{font-family:var(--font-display);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-brass-light)}.topbar .scene-meta .title{font-family:var(--font-display);font-size:16px;font-weight:700;color:#f1e3c7;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.icon-btn{width:38px;height:38px;border-radius:10px;background:linear-gradient(180deg,#2a2018,#15100b);border:1px solid rgba(176,135,66,.5);display:grid;place-items:center;cursor:pointer;color:var(--accent-brass-light)}.icon-btn svg{width:18px;height:18px}.icon-btn.with-dot{position:relative}.icon-btn.with-dot:after{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:99px;background:var(--alert-crit);box-shadow:0 0 6px #dc2828b3}.topbar-actions{display:flex;gap:8px}.topbar-menu-btn{min-width:78px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid rgba(176,135,66,.55);border-radius:10px;background:linear-gradient(180deg,#2a2018,#15100b);color:var(--accent-brass-light);cursor:pointer;font-family:var(--font-display);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.topbar-menu-btn svg{width:16px;height:16px}.scene-strip{margin:0 12px 8px;padding:10px 12px;display:flex;align-items:center;gap:10px;background:linear-gradient(180deg,#1c150fd9,#0f0b08d9),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;border:1px solid rgba(176,135,66,.45);border-radius:10px;position:relative;z-index:2;box-shadow:inset 0 0 0 1px #b0874214,var(--shadow-ember)}.scene-strip .clock-icon{width:40px;height:40px;border-radius:8px;background:#1a130d;border:1px solid rgba(176,135,66,.45);display:grid;place-items:center;flex-shrink:0;color:var(--accent-brass-light)}.scene-strip .clock-icon svg{width:22px;height:22px}.scene-strip .clock-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.scene-strip .clock-body .row1{font-family:var(--font-display);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-brass-light)}.scene-strip .clock-body .row2{font-family:var(--font-body);font-size:14px;color:#f1e3c7}.scene-strip .chip{padding:5px 9px;border-radius:99px;background:#3a5a782e;border:1px solid rgba(120,160,200,.4);font-family:var(--font-display);font-size:10.5px;color:#bcd5ec;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0}.scene-strip .chip.combat{background:#8b1a1a33;border-color:#dc505080;color:#f3b8a4}.scene-strip .chip.travel{background:#3e5b3a40;border-color:#78aa6e73;color:#cce7c2}.scene-strip .chip.turn-cue{min-width:max-content;color:#f1e3c7;border-color:#d6ae6a;background:linear-gradient(180deg,#4d3416c7,#20160ce6),var(--tex-walnut);background-size:cover,220px;box-shadow:0 0 0 1px #d6ae6a47,0 0 12px #b087423d}.chronicle{flex:1;overflow-y:auto;padding:4px 12px 12px;position:relative;z-index:2;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(176,135,66,.4) transparent}.chronicle::-webkit-scrollbar{width:4px}.chronicle::-webkit-scrollbar-thumb{background:#b0874266;border-radius:99px}.beat{display:flex;flex-direction:column;gap:6px;animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.narration{position:relative;padding:14px 16px 16px;background:linear-gradient(180deg,#f1e3c7f7,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17;border:1px solid #b08742;border-radius:6px;box-shadow:0 1px #fff6 inset,0 0 0 1px #b0874240 inset,var(--shadow-ember);font-family:var(--font-body);font-size:15.5px;line-height:1.5;text-wrap:pretty}.narration:before,.narration:after{content:"";position:absolute;width:28px;height:28px;background:url(/assets/design/orn/corner-filigree.png) center/contain no-repeat;opacity:.55}.narration:before{top:4px;left:4px}.narration:after{top:4px;right:4px;transform:scaleX(-1)}.narration .dm-eyebrow{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:#7a5a26;margin-bottom:8px}.narration .dm-eyebrow .dot{width:6px;height:6px;border-radius:99px;background:#b08742;box-shadow:0 0 6px #b08742b3}.narration p{margin:0 0 8px}.narration p:last-child{margin-bottom:0}.narration em{color:#5a3e1a;font-style:italic}.narration .firstcap:first-letter{font-family:var(--font-display);font-size:36px;font-weight:700;float:left;line-height:.9;padding:6px 8px 0 0;color:#7a3a10}.ruling{position:relative;padding:11px 13px;border:1px solid rgba(176,135,66,.65);border-radius:6px;background:linear-gradient(180deg,#241c14f0,#18130ff5);color:#eadfc8;box-shadow:0 0 0 1px #ffffff0a inset;font-family:var(--font-body);font-size:13.5px;line-height:1.45}.ruling .dm-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase}.ruling .dm-eyebrow .dot{width:6px;height:6px;border-radius:99px;background:#d1a849;box-shadow:0 0 6px #d1a849b3}.ruling p{margin:0}.mechanic-receipt{border:1px solid rgba(176,135,66,.42);border-radius:8px;background:linear-gradient(180deg,#36271ac7,#231912c2);color:#f1e3c7e0;box-shadow:inset 0 1px #ffecb414;overflow:hidden}.mechanic-receipt summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 12px;cursor:pointer;list-style:none}.mechanic-receipt summary::-webkit-details-marker{display:none}.mechanic-receipt summary:before{content:"";width:7px;height:7px;flex:0 0 auto;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .16s ease-out;color:#d1a849}.mechanic-receipt[open] summary:before{transform:rotate(45deg)}.mechanic-receipt summary span{flex:1;font-family:var(--font-display);font-size:12px;font-weight:700;color:#f1d48e}.mechanic-receipt summary small{font-size:11px;color:#f1e3c79e;text-align:right}.mechanic-receipt p{margin:0;padding:0 12px 12px 31px;font-size:13px;line-height:1.42;color:#f1e3c7d1}.narration-card{position:relative;padding:12px 14px 14px;background:linear-gradient(180deg,#f1e3c7f7,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17;border:1px solid #b08742;border-radius:6px;box-shadow:0 1px #fff6 inset,0 0 0 1px #b0874240 inset,var(--shadow-ember);font-family:var(--font-body);font-size:15px;line-height:1.45}.scene-card__image{margin:0 0 10px;aspect-ratio:16 / 9;overflow:hidden;border:1px solid rgba(122,90,38,.55);border-radius:5px;background:#1a130d}.scene-card__image img{width:100%;height:100%;object-fit:cover;display:block}.narration-card__header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.narration-card__header .eyebrow{margin:0;font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#7a5a26}.narration-card__text{margin:0 0 10px}.tts-toggle{min-height:44px;display:inline-flex;align-items:center;gap:6px;color:#5a3e1a;font-family:var(--font-display);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.tts-toggle input{accent-color:#7a5a26}.dialogue-beats{display:flex;flex-direction:column;gap:8px}.dialogue-beat{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:start;padding:8px;border:1px solid rgba(122,90,38,.28);border-radius:6px;background:#2a1f1712}.dialogue-beat__speaker{width:38px;height:38px;overflow:hidden;border:1px solid rgba(122,90,38,.52);border-radius:50%;background:radial-gradient(circle at 30% 30%,#d6ae6a,#7a5a26 64%,#3a2912);color:#f1e3c7;display:grid;place-items:center;font-family:var(--font-display);font-size:12px}.dialogue-beat__speaker img{width:100%;height:100%;object-fit:cover}.dialogue-beat__body{min-width:0}.dialogue-beat__body strong{display:block;font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#7a5a26}.dialogue-beat__body p{margin:2px 0 6px;color:#2a1f17}.dialogue-beat audio{grid-column:1 / -1;width:100%;min-height:34px}.intent{align-self:flex-end;max-width:84%;padding:9px 13px;background:linear-gradient(180deg,#2a2018,#15100b),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;border:1px solid rgba(176,135,66,.55);border-radius:14px 14px 4px;color:#f1e3c7;font-family:var(--font-body);font-size:14.5px;line-height:1.4;box-shadow:var(--shadow-ember);position:relative}.intent .who{display:block;font-family:var(--font-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-brass-light);margin-bottom:3px}.whisper{padding:11px 14px;background:linear-gradient(180deg,#3a5a7840,#22344859),var(--tex-grunge);background-size:cover,220px;background-blend-mode:normal,multiply;border:1px solid rgba(120,160,200,.55);border-radius:8px;color:#dde8f2;font-family:var(--font-body);font-size:14.5px;line-height:1.45;position:relative;box-shadow:0 0 0 1px #78a0c81f inset,var(--shadow-ember)}.whisper .who{display:flex;align-items:center;gap:6px;font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#94b5d0;margin-bottom:4px}.whisper .who svg{width:13px;height:13px}.whisper em{color:#8da9c1;font-style:italic}.roll-card{padding:0;background:linear-gradient(180deg,#f1e3c7f7,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;border:1px solid #b08742;border-radius:8px;box-shadow:0 0 0 1px #b087424d inset,0 0 0 3px #b087422e,var(--shadow-candle);color:#2a1f17;overflow:hidden}.roll-card .roll-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(180deg,#b087422e,#b087420f);border-bottom:1px solid rgba(176,135,66,.45)}.roll-card .d20-orb{width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d6ae6a,#7a5a26 65%,#3a2912);display:grid;place-items:center;flex-shrink:0;box-shadow:inset 0 0 0 1px #ffdca073,0 2px 6px #00000073;color:#f1e3c7}.roll-card .d20-orb svg{width:24px;height:24px}.roll-card .roll-eyebrow{font-family:var(--font-display);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#7a5a26}.roll-card .roll-title{font-family:var(--font-display);font-size:16px;font-weight:700;line-height:1.1;color:#2a1f17}.roll-card h2.roll-title{margin:0}.roll-card .roll-body{padding:12px 14px;font-size:14.5px;line-height:1.45}.roll-card .roll-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.roll-card .meta-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:4px 8px;border-radius:99px;background:#b087422e;border:1px solid rgba(122,90,38,.5);font-family:var(--font-display);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#7a5a26;cursor:pointer}.roll-card .roll-chip:focus-visible{outline:2px solid #7a5a26;outline-offset:2px}.roll-card .roll-chip-detail{margin:8px 0 0;padding:8px 9px;border:1px solid rgba(122,90,38,.22);border-radius:6px;background:#2a1f170f;color:#4a3520;font-size:13px;line-height:1.3}.roll-card .roll-actions{display:grid;grid-template-columns:1fr auto;gap:8px;padding:0 14px 12px}.roll-card .roll-go{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #7a5a26;border-radius:6px;padding:12px 14px;font-family:var(--font-display);font-size:13.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7;cursor:pointer;box-shadow:inset 0 1px #ffdca059,0 2px #00000040}.roll-card .roll-side{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(122,90,38,.7);border-radius:6px;padding:12px;font-family:var(--font-display);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;background:#b087421f;color:#5a3e1a;cursor:pointer}.roll-result{display:flex;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(180deg,#f1e3c7f7,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;border:1px solid #b08742;border-radius:6px;color:#2a1f17;box-shadow:var(--shadow-ember)}.roll-result .seal{width:50px;height:50px;border-radius:50%;flex-shrink:0;background:radial-gradient(circle at 35% 30%,#c43838,#7a1818 60%,#3a0a0a);color:#f1e3c7;display:grid;place-items:center;font-family:var(--font-display);font-size:18px;font-weight:800;box-shadow:inset 0 0 0 1px #ffb4b44d,0 3px 6px #00000073;text-shadow:0 1px 0 rgba(0,0,0,.4)}.roll-result .seal.nat20{background:radial-gradient(circle at 35% 30%,#ead07a,#b08742 55%,#5a3a10);color:#2a1f17}.roll-result .body{flex:1;min-width:0}.roll-result .label{font-family:var(--font-display);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#7a5a26}.roll-result .formula{font-family:var(--font-body);font-size:13.5px;color:#5a3e1a;font-style:italic}.roll-result .dice-result{display:inline-flex;margin:4px 0;padding:3px 7px;border-radius:99px;border:1px solid rgba(122,90,38,.34);background:#b0874224;color:#5a3e1a;font-family:var(--font-display);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.roll-result .outcome{font-family:var(--font-display);font-size:13.5px;font-weight:700;color:#2a1f17}.roll-request-receipt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(176,135,66,.52);border-radius:6px;background:linear-gradient(180deg,#f1e3c7f0,#dcc8a5f0),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17}.roll-request-receipt span{font-family:var(--font-display);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#7a5a26}.roll-request-receipt strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:11px;color:#2a1f17}.roll-request-receipt em{font-size:12px;color:#5a3e1a;white-space:nowrap}.party-strip{display:flex;gap:8px;padding:8px 12px 6px;position:relative;z-index:3;overflow-x:auto;scrollbar-width:none}.party-strip::-webkit-scrollbar{display:none}.party-chip{flex-shrink:0;width:74px;background:linear-gradient(180deg,#261c14,#110c08),var(--tex-walnut);background-size:cover,220px;background-blend-mode:normal,multiply;border:1px solid rgba(176,135,66,.5);border-radius:10px;padding:6px 6px 7px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;box-shadow:var(--shadow-ember);position:relative}.party-chip.active{border-color:#d6ae6a;box-shadow:0 0 0 1px #d6ae6a80,0 0 16px #b0874259}.party-chip.active .portrait{border-color:#d6ae6a;box-shadow:inset 0 0 0 1px #00000080,0 0 0 2px var(--accent-brass-light),0 0 12px 2px #b087424d}.party-chip .portrait{width:54px;height:54px;border-radius:50%;background:#1a130d;border:1.5px solid #b08742;overflow:hidden;position:relative;box-shadow:inset 0 0 0 1px #00000080}.party-chip .portrait img{width:100%;height:100%;object-fit:cover;display:block}.party-chip .class-badge{width:22px;height:22px;border-radius:50%;margin-top:-13px;margin-bottom:-2px;background:radial-gradient(circle at 34% 24%,#d6ae6a57,#15110cf2 62%),var(--tex-walnut);background-size:cover,220px;border:1.5px solid #b08742;display:grid;place-items:center;overflow:hidden;position:relative;z-index:2;box-shadow:0 2px 7px #00000073,0 0 0 1px #0000005c}.party-chip .class-badge img{width:14px;height:14px;object-fit:contain}.party-chip .name{font-family:var(--font-display);font-size:9.5px;font-weight:700;color:#f1e3c7;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.party-chip .hp-text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f1e3c7b8;font-family:var(--font-display);font-size:8px;line-height:1}.party-chip .hp-text.has-temp-hp{color:#d6e9ff;text-shadow:0 0 8px rgba(118,170,220,.45)}.party-chip .hp-bar{width:100%;height:4px;border-radius:99px;background:#0a0807;border:1px solid #4a3520;overflow:hidden}.party-chip .hp-bar i{display:block;height:100%;background:linear-gradient(90deg,#6a9a3a,#c43838)}.party-chip .hp-bar.hp-mid i{background:linear-gradient(90deg,#c4a838,#c46a38)}.party-chip .hp-bar.hp-low i{background:linear-gradient(90deg,#c43838,#7a1818)}.party-chip.add{background:none;border:1.5px dashed rgba(176,135,66,.4);display:grid;place-items:center;color:#b08742b3;font-family:var(--font-display);font-size:24px;height:88px;box-shadow:none}.portrait-chip{display:grid;justify-items:center;gap:5px;margin:0;min-width:0}.portrait-chip--small{width:56px}.portrait-chip--card{width:112px}.portrait-chip__image,.portrait-chip__fallback{display:grid;place-items:center;width:100%;aspect-ratio:1;border:1.5px solid #b08742;border-radius:10px;background:linear-gradient(180deg,#2a2018,#15100b);color:var(--accent-brass-light);object-fit:cover;overflow:hidden;box-shadow:inset 0 0 0 1px #00000073,0 4px 10px #00000057}.portrait-chip__caption{display:grid;gap:1px;width:100%;min-width:0;color:#f1e3c7;font-family:var(--font-display);font-size:9.5px;line-height:1.05;text-align:center}.portrait-chip__caption strong,.portrait-chip__caption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-badge{display:grid;place-items:center;width:34px;height:34px;border:1.5px solid #b08742;border-radius:50%;background:radial-gradient(circle at 34% 24%,#d6ae6a57,#15110cf2 62%),var(--tex-walnut);background-size:cover,220px;overflow:hidden;box-shadow:0 2px 7px #00000073,0 0 0 1px #0000005c}.class-badge--large{width:58px;height:58px}.class-badge img{display:block;width:78%;height:78%;object-fit:contain}.prompt-shell{margin:6px 12px 4px;position:relative;z-index:5}.prompt-frame{background:linear-gradient(180deg,#2a2018,#1a130d),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;border:1px solid #b08742;border-radius:14px;padding:1.5px;box-shadow:0 0 0 3px #b087421f,0 -10px 40px #b087422e,0 -2px #b0874240 inset,var(--shadow-candle);position:relative}.prompt-frame:before,.prompt-frame:after{content:"";position:absolute;width:24px;height:24px;background:url(/assets/design/orn/corner-filigree.png) center/contain no-repeat;opacity:.7;pointer-events:none}.prompt-frame:before{top:-2px;left:-2px}.prompt-frame:after{top:-2px;right:-2px;transform:scaleX(-1)}.prompt-inner{background:linear-gradient(180deg,#f1e3c7f7,#e1cdaafa),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;border-radius:12px;padding:8px 10px;display:flex;align-items:flex-end;gap:8px;min-height:60px;position:relative}.prompt-mode{display:flex;align-items:center;gap:4px;padding:5px 8px;border-radius:6px;background:#2a1f1712;border:1px solid rgba(122,90,38,.4);color:#5a3e1a;cursor:pointer;align-self:center;font-family:var(--font-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase;height:32px}.prompt-mode svg{width:13px;height:13px}.prompt-mode.private{background:#3a5a782e;border-color:#3a5a7880;color:#3a5a78}.prompt-input{flex:1;min-width:0;background:transparent;border:none;outline:none;resize:none;font-family:var(--font-body);font-size:16px;line-height:1.4;color:#2a1f17;min-height:32px;max-height:120px;padding:6px 4px;overflow:hidden;caret-color:#7a3a10}.prompt-input::placeholder{color:#7a6248;font-style:italic}.prompt-send{width:42px;height:42px;border-radius:50%;flex-shrink:0;align-self:center;cursor:pointer;background:radial-gradient(circle at 30% 30%,#d6ae6a,#7a5a26 60%,#3a2912);display:grid;place-items:center;border:1.5px solid #7a5a26;box-shadow:inset 0 0 0 1px #ffdca059,0 2px 4px #00000073;color:#f1e3c7;transition:transform .15s}.prompt-send:active{transform:scale(.94)}.prompt-send svg{width:18px;height:18px}.prompt-send.disabled{opacity:.45;cursor:not-allowed}.prompt-mic{width:44px;height:44px;border-radius:50%;flex-shrink:0;align-self:center;cursor:pointer;display:grid;place-items:center;color:#6a4617;background:linear-gradient(180deg,#f5e8ccf2,#cbae7beb);border:1.5px solid rgba(122,90,38,.72);box-shadow:inset 0 0 0 1px #fff5dc73,0 2px 4px #00000047;transition:transform .15s,color .15s,background .15s}.prompt-mic:active{transform:scale(.94)}.prompt-mic.recording{color:#f1e3c7;background:linear-gradient(180deg,#8e3222,#4a1711);border-color:#b08742}.prompt-mic:disabled{opacity:.45;cursor:not-allowed}.prompt-mic svg{width:18px;height:18px}.prompt-helper{display:flex;gap:6px;align-items:center;padding:4px 4px 0;font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#f1e3c78c}.prompt-helper .dot{width:5px;height:5px;border-radius:99px;background:#b08742}.r9-resource-reminders{position:relative;z-index:4;display:flex;gap:6px;overflow-x:auto;padding:2px 12px 0;scrollbar-width:none}.r9-resource-reminders::-webkit-scrollbar{display:none}.resource-reminder{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 10px;border-radius:999px;border:1px solid rgba(176,135,66,.46);background:linear-gradient(180deg,#201810db,#0f0b08eb),var(--tex-walnut);background-size:cover,220px;color:#f1e3c7;font-family:var(--font-display);font-size:10px;line-height:1;text-decoration:none;text-transform:uppercase;white-space:nowrap;box-shadow:var(--shadow-ember)}.resource-reminder:focus-visible{outline:2px solid var(--accent-brass-light);outline-offset:2px}.resource-reminder--turn{border-color:#c6a05c94;background:linear-gradient(180deg,#452f18e6,#1c130cf0),var(--tex-walnut);color:#f6e6bf}.suggested{display:flex;gap:6px;padding:0 12px 8px;overflow-x:auto;scrollbar-width:none;position:relative;z-index:4}.suggested::-webkit-scrollbar{display:none}.suggested .chip{flex-shrink:0;padding:7px 11px;border-radius:99px;background:#140f0ab3;border:1px solid rgba(176,135,66,.45);font-family:var(--font-body);font-size:13px;color:#e9d6b1;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.suggested .chip svg{width:13px;height:13px;color:var(--accent-brass-light)}.suggested .chip:hover{background:#281e14d9}.tabbar{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:8px 14px;background:linear-gradient(180deg,#1e1610d9,#0f0b08f2),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;border-top:1px solid rgba(176,135,66,.45);position:relative;z-index:3}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;cursor:pointer;color:#f1e3c78c;border-radius:8px;position:relative}.tab.active{color:var(--accent-brass-light)}.tab.active:before{content:"";position:absolute;top:-9px;left:50%;transform:translate(-50%);width:32px;height:2px;border-radius:99px;background:var(--accent-brass);box-shadow:0 0 8px #b0874299}.tab svg{width:22px;height:22px}.tab .label{font-family:var(--font-display);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase}.tab .pip{position:absolute;top:2px;right:14px;width:6px;height:6px;border-radius:99px;background:var(--alert-crit)}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:40;opacity:0;pointer-events:none;transition:opacity .25s}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer{position:absolute;left:0;right:0;bottom:0;z-index:50;background:linear-gradient(180deg,#1f1710,#110b07),var(--tex-leather);background-size:cover,320px;background-blend-mode:normal,multiply;border-top:1px solid #b08742;border-radius:18px 18px 0 0;box-shadow:0 -16px 40px #0009,0 -2px #b0874266 inset;max-height:84%;transform:translateY(100%);transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;overflow:hidden}.drawer.open{transform:translateY(0)}.drawer-handle{width:54px;height:5px;border-radius:99px;background:#b087428c;margin:10px auto 6px;flex-shrink:0}.drawer-head{padding:6px 14px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(176,135,66,.3)}.drawer-head .ttl{display:flex;align-items:center;gap:10px}.drawer-head .ttl-crest{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d6ae6a,#7a5a26 65%,#3a2912);display:grid;place-items:center;color:#f1e3c7}.drawer-head .ttl-crest svg{width:16px;height:16px}.drawer-head h2{font-family:var(--font-display);font-size:18px;font-weight:700;color:#f1e3c7;margin:0;letter-spacing:.04em}.drawer-head .close-btn{width:34px;height:34px;border-radius:8px;background:#140f0ab3;border:1px solid rgba(176,135,66,.45);color:#d6ae6a;cursor:pointer;display:grid;place-items:center}.drawer-head .close-btn svg{width:14px;height:14px}.drawer-body{flex:1;overflow-y:auto;padding:10px 12px 22px;scrollbar-width:thin;scrollbar-color:rgba(176,135,66,.4) transparent}.drawer-body::-webkit-scrollbar{width:4px}.drawer-body::-webkit-scrollbar-thumb{background:#b0874266;border-radius:99px}.eyebrow-row{font-family:var(--font-display);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-brass-light);margin:8px 0 6px;display:flex;align-items:center;gap:8px}.eyebrow-row .line{flex:1;height:1px;background:linear-gradient(90deg,#b0874273,#b0874200)}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;background:#140f0acc;border:1px solid rgba(176,135,66,.45);border-radius:8px;padding:3px}.segmented button{background:transparent;border:none;color:#f1e3c799;font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:8px 6px;border-radius:6px;cursor:pointer;min-height:36px}.segmented button.active{background:linear-gradient(180deg,#3a2c1c,#1a130d);border:1px solid rgba(176,135,66,.45);color:var(--accent-brass-light);box-shadow:inset 0 1px #b0874233}.pcard{padding:11px 13px;background:linear-gradient(180deg,#f1e3c7f5,#dcc8a5f5),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;border:1px solid #b08742;border-radius:6px;color:#2a1f17;box-shadow:var(--shadow-ember)}.party-list{display:flex;flex-direction:column;gap:8px}.party-row{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;padding:8px 10px;background:linear-gradient(180deg,#f1e3c7f5,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;border:1px solid #b08742;border-radius:6px;color:#2a1f17;box-shadow:var(--shadow-ember);cursor:pointer}.party-row .portrait-arch{width:56px;height:64px;border-radius:28px 28px 6px 6px;background:#1a130d;border:1.5px solid #b08742;overflow:hidden;box-shadow:inset 0 0 0 1px #00000080}.party-row .portrait-arch img{width:100%;height:100%;object-fit:cover;display:block}.party-row .pinfo{display:flex;flex-direction:column;gap:3px;min-width:0}.party-row .pname{font-family:var(--font-display);font-weight:700;font-size:15px;color:#2a1f17}.party-row .pkind{font-size:13px;color:#5a3e1a;font-style:italic}.party-row .pstats{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}.party-row .stat{padding:2px 6px;border-radius:99px;background:#2a1f1714;border:1px solid rgba(122,90,38,.45);font-family:var(--font-display);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#5a3e1a}.party-row .stat.crit{background:#8b1a1a1a;border-color:#8b1a1a66;color:#7a1818}.party-row .pturn{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#7a5a26;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.party-row .pturn .badge-icon{width:22px;height:22px}.r9-party-row.active,.r9-party-row[data-active-turn=true]{border-color:#d6ae6a;box-shadow:0 0 0 1px #d6ae6a73,0 0 22px #b0874242,var(--shadow-ember)}.r9-party-row[data-active-turn=true] .portrait-arch{border-color:#d6ae6a;box-shadow:0 0 16px #b0874270}.r9-party-row[data-active-turn=true] .pturn span{padding:3px 7px;border:1px solid rgba(122,90,38,.44);border-radius:99px;background:#b0874229;color:#5a3a10}.spell-tabs{margin:6px 0 10px}.spell-slot-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#140f0aa6;border:1px solid rgba(176,135,66,.35);border-radius:8px;margin-bottom:10px}.spell-slot-row .lvl{font-family:var(--font-display);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-brass-light)}.spell-slot-row .pips{display:flex;gap:5px;flex:1}.pip{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d6ae6a,#7a5a26 65%,#3a2912);border:1px solid rgba(255,220,160,.4);box-shadow:0 0 6px #d6ae6a80}.pip.spent{background:#15100b;box-shadow:none;border-color:#7a5a2666}.spell-grid{display:grid;grid-template-columns:1fr;gap:8px}.spell-card{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:9px 11px;cursor:pointer}.spell-card .glyph{width:42px;height:42px;border-radius:8px;background:linear-gradient(180deg,#2a2018,#15100b);border:1px solid rgba(176,135,66,.5);display:grid;place-items:center;color:var(--accent-brass-light)}.spell-card .glyph svg{width:22px;height:22px}.spell-card .body{display:flex;flex-direction:column;min-width:0}.spell-card .name{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:#2a1f17}.spell-card .meta{font-size:12px;color:#5a3e1a;font-style:italic}.spell-card .cast{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #7a5a26;border-radius:6px;padding:7px 10px;font-family:var(--font-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7;cursor:pointer}.spell-card .cast.ritual{background:#3a5a7833;color:#3a5a78;border-color:#3a5a7899}.gold-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:linear-gradient(180deg,#b0874226,#7a5a2614);border:1px solid rgba(176,135,66,.5);border-radius:8px;margin-bottom:10px}.gold-bar .coin{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ead07a,#b08742 60%,#5a3a10);display:grid;place-items:center;color:#2a1f17;font-family:var(--font-display);font-size:13px;font-weight:800;box-shadow:inset 0 0 0 1px #ffdca066}.gold-bar .totals{display:flex;gap:14px;flex:1}.gold-bar .totals .t{display:flex;flex-direction:column}.gold-bar .totals .t b{font-family:var(--font-display);font-size:14px;font-weight:700;color:#f1e3c7}.gold-bar .totals .t span{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-brass-light)}.gold-bar .enc{font-family:var(--font-display);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-brass-light)}.hex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.hex-slot{aspect-ratio:1;position:relative;background:linear-gradient(180deg,#2a2018,#15100b);border:1px solid rgba(176,135,66,.45);border-radius:10px;display:grid;place-items:center;color:var(--accent-brass-light);cursor:pointer}.hex-slot.equipped{border-color:#d6ae6a;box-shadow:inset 0 0 0 1px #d6ae6a66,0 0 12px #b0874240}.hex-slot .slot-label{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-family:var(--font-display);font-size:7.5px;line-height:1.05;letter-spacing:.08em;text-transform:uppercase;color:#f1e3c79e}.hex-slot .slot-label{min-height:16px;padding:0 4px;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:break-word}.hex-slot svg{width:26px;height:26px}.hex-slot.magic{background:linear-gradient(180deg,#2a1b3a,#1a1024);border-color:#a078c899;box-shadow:inset 0 0 0 1px #b48cdc4d,0 0 12px #7850b440;color:#c9aae0}.hex-slot.empty{background:transparent;border-style:dashed;border-color:#b087424d;color:#b0874280}.hex-slot .qty{position:absolute;top:2px;right:4px;font-family:var(--font-display);font-size:10px;font-weight:800;color:#f1e3c7;text-shadow:0 1px 2px rgba(0,0,0,.7)}.item-list{display:flex;flex-direction:column;gap:6px}.item-row{display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;padding:8px 10px;background:#140f0a8c;border:1px solid rgba(176,135,66,.3);border-radius:6px;cursor:pointer}.item-row .icon{width:36px;height:36px;border-radius:6px;background:linear-gradient(180deg,#2a2018,#15100b);border:1px solid rgba(176,135,66,.45);display:grid;place-items:center;color:var(--accent-brass-light)}.item-row .icon svg{width:20px;height:20px}.item-row .body{display:flex;flex-direction:column;min-width:0}.item-row .name{font-family:var(--font-display);font-weight:700;font-size:13.5px;color:#f1e3c7;line-height:1.1}.item-row .meta{font-size:12px;color:#f1e3c78c;font-style:italic;line-height:1.2;margin-top:2px}.item-row .qty-pill{padding:3px 8px;border-radius:99px;background:#b087422e;border:1px solid rgba(176,135,66,.5);font-family:var(--font-display);font-size:10.5px;color:var(--accent-brass-light)}.item-row.magic .name{color:#d6b0e8}.item-row.magic{border-color:#a078c880}.item-row[data-private=true] .meta:after{content:" · private";color:#8fb0d2}.sheet-hero{display:grid;grid-template-columns:70px 1fr auto;gap:10px;align-items:center;padding:10px;background:linear-gradient(180deg,#2a2018,#15100b),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;border:1px solid #b08742;border-radius:10px;color:#f1e3c7;position:relative;overflow:hidden}.sheet-hero:before{content:"";position:absolute;top:-4px;right:-4px;width:60px;height:60px;background:url(/assets/design/orn/corner-filigree.png) center/contain no-repeat;opacity:.4;transform:scaleX(-1);pointer-events:none}.sheet-hero .portrait-arch{width:70px;height:80px;border-radius:35px 35px 6px 6px;background:#1a130d;border:1.5px solid #b08742;overflow:hidden;flex-shrink:0}.sheet-hero .portrait-arch img{width:100%;height:100%;object-fit:cover;display:block}.sheet-hero .info .eyebrow{font-family:var(--font-display);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-brass-light)}.sheet-hero .info h1{font-family:var(--font-display);font-size:20px;font-weight:700;margin:0;letter-spacing:.02em;color:#f1e3c7}.sheet-hero .info .kind{font-size:13.5px;color:#f1e3c7bf;font-style:italic;margin-top:1px}.sheet-hero .class-medal{width:54px;height:54px;border-radius:50%;background:linear-gradient(180deg,#1a130d,#0a0807);border:1.5px solid #b08742;display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 0 0 1px #b087424d}.sheet-hero .class-medal img{width:42px;height:42px}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.stat-block{padding:8px;text-align:center;background:linear-gradient(180deg,#f1e3c7f5,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;border:1px solid #b08742;border-radius:6px;color:#2a1f17;display:flex;flex-direction:column;gap:2px}.stat-block .icon{display:grid;place-items:center;height:24px;color:#7a5a26}.stat-block .icon svg{width:20px;height:20px}.stat-block .lbl{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#7a5a26}.stat-block .num{font-family:var(--font-display);font-size:22px;font-weight:800;color:#2a1f17;line-height:1}.stat-block .sub{font-family:var(--font-display);font-size:10.5px;color:#5a3e1a}.ability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ability{padding:7px;text-align:center;background:linear-gradient(180deg,#f1e3c7f2,#dcc8a5f5),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;border:1px solid rgba(176,135,66,.6);border-radius:6px;color:#2a1f17}.ability .lbl{font-family:var(--font-display);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#7a5a26}.ability .mod{font-family:var(--font-display);font-size:18px;font-weight:800;line-height:1.1;margin:1px 0}.ability .score{font-family:var(--font-display);font-size:10px;color:#5a3e1a}.cond-row{display:flex;flex-wrap:wrap;gap:6px}.cond{padding:4px 9px;border-radius:99px;font-family:var(--font-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.cond.blessed{background:#b087422e;border:1px solid rgba(176,135,66,.55);color:var(--accent-brass-light)}.cond.hex{background:#3a5a782e;border:1px solid rgba(58,90,120,.55);color:#94b5d0}.cond.bloodied{background:#8b1a1a2e;border:1px solid rgba(139,26,26,.55);color:#e9a094}.cond.poison{background:#3e5b3a33;border:1px solid rgba(110,160,100,.5);color:#bcdfb0}.map-card{padding:0;overflow:hidden;border-radius:8px;border:1px solid rgba(176,135,66,.55);position:relative}.map-card img{display:block;width:100%;height:140px;object-fit:cover;filter:saturate(.9) brightness(.85)}.r9-map-preview-empty{min-height:140px;display:grid;place-items:center;color:var(--accent-brass-light);background:linear-gradient(135deg,#2a1f17f0,#15110cf5)}.map-card .map-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:space-between;padding:8px 10px;background:linear-gradient(180deg,transparent 35%,rgba(10,8,7,.85));font-family:var(--font-display);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#f1e3c7}.map-card .map-overlay .open{padding:5px 10px;border-radius:99px;background:#140f0ab3;border:1px solid rgba(176,135,66,.5);font-size:10px;color:var(--accent-brass-light)}.phone-label{position:absolute;left:-220px;top:60px;width:200px;color:#f1e3c78c;font-family:var(--font-display);display:none}.intro{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:50;color:#f1e3c78c;font-family:var(--font-display);font-size:10px;letter-spacing:.28em;text-transform:uppercase;pointer-events:none;display:flex;gap:14px;align-items:center}.intro .dot{width:5px;height:5px;border-radius:99px;background:var(--accent-brass)}.kb-mock{position:absolute;left:0;right:0;bottom:0;z-index:6;height:240px;background:linear-gradient(180deg,#231c16f2,#0f0b08fa);border-top:1px solid rgba(176,135,66,.45);display:flex;flex-direction:column;gap:7px;padding:42px 6px 30px;transform:translateY(100%);transition:transform .25s cubic-bezier(.16,1,.3,1)}.kb-mock.open{transform:translateY(0)}.kb-row{display:flex;gap:5px;justify-content:center}.kb-key{flex:1;max-width:34px;height:38px;border-radius:5px;background:linear-gradient(180deg,#3a2c1c,#1a130d);border:1px solid rgba(176,135,66,.45);display:grid;place-items:center;color:#e9d6b1;font-family:var(--font-body);font-size:14px;box-shadow:inset 0 1px #b0874226}.kb-key.wide{max-width:none;flex:1.5}.kb-key.send{background:linear-gradient(180deg,#b08742,#7a5a26);color:#15110c;font-family:var(--font-display);font-size:11px;letter-spacing:.16em;text-transform:uppercase}.spacer{height:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.surface.r9-table-view{height:100dvh;max-width:430px;margin:0 auto;padding:max(2px,env(safe-area-inset-top)) 0 0;border-left:1px solid rgba(176,135,66,.18);border-right:1px solid rgba(176,135,66,.18);box-shadow:0 0 80px #00000073}.surface.r9-table-view .topbar{padding:1px 8px 2px}.surface.r9-table-view .topbar .crest{width:26px;height:26px}.surface.r9-table-view .topbar .crest svg{width:16px;height:16px}.surface.r9-table-view .topbar .scene{gap:8px}.surface.r9-table-view .topbar .scene-meta .eyebrow{font-size:8px}.surface.r9-table-view .topbar .scene-meta .title{font-size:13px;max-width:168px}.surface.r9-table-view .icon-btn{width:38px;height:38px}.surface.r9-table-view .topbar-menu-btn{min-width:44px;min-height:32px;padding:0 9px}.surface.r9-table-view .scene-strip{margin:0 8px 1px;padding:2px 6px;gap:4px}.surface.r9-table-view .scene-strip .clock-icon{display:none}.surface.r9-table-view .scene-strip .clock-body{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:0}.surface.r9-table-view .scene-strip .clock-body .row1{display:none}.surface.r9-table-view .scene-strip .clock-body .row2{font-size:10px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.surface.r9-table-view .scene-strip .chip{padding:3px 6px;font-size:8.5px}.surface.r9-table-view .chronicle{min-height:0;padding:2px 10px 8px;gap:7px;scroll-padding-bottom:24px}.surface.r9-table-view .party-strip{flex:0 0 auto;padding:1px 8px;gap:4px;background:linear-gradient(180deg,#0a080600,#0a0806d1 28%,#0a0806f0),var(--tex-leather);background-size:cover,300px;background-blend-mode:normal,multiply;border-top:1px solid rgba(176,135,66,.18);box-shadow:0 -10px 18px #0000003d}.surface.r9-table-view .party-chip{width:66px;min-height:44px;padding:3px 6px;gap:2px;border-radius:999px;align-items:stretch;justify-content:center}.surface.r9-table-view .party-chip .portrait,.surface.r9-table-view .party-chip .class-badge{display:none}.surface.r9-table-view .party-chip .name{font-size:9px;line-height:1.05;text-align:center}.surface.r9-table-view .party-chip .hp-text{font-size:7.5px;text-align:center}.surface.r9-table-view .party-chip .hp-bar{height:3px}.surface.r9-table-view .prompt-shell{flex:0 0 auto;margin:3px 10px 1px}.surface.r9-table-view .prompt-inner{min-height:52px;padding:6px 9px}.surface.r9-table-view .prompt-input{min-height:40px;max-height:92px;line-height:1.25}.surface.r9-table-view .prompt-helper{display:none}.surface.r9-table-view .prompt-send,.surface.r9-table-view .prompt-mic{width:44px;height:44px}.surface.r9-table-view .tabbar{flex:0 0 auto;padding-top:5px;padding-bottom:max(6px,env(safe-area-inset-bottom))}.surface.r9-table-view .tab{min-height:46px;padding:4px}.surface.r9-table-view .r9-roll-dock{margin:0 10px 6px;gap:5px}.surface.r9-table-view .turn-banner{margin:0 8px 2px;padding:3px 7px;gap:5px}.surface.r9-table-view .turn-banner span{font-size:8px;letter-spacing:.14em}.surface.r9-table-view .turn-banner strong{font-size:11px}.surface.r9-table-view .turn-banner small{display:none}.surface.r9-table-view .turn-banner .r9-map-button{min-width:44px}.surface.r9-table-view .r9-map-panel{margin:0 8px 3px}.surface.r9-table-view .r9-roll-dock .roll-card .roll-head{gap:7px;padding:7px 10px}.surface.r9-table-view .r9-roll-dock .roll-card .d20-orb{width:34px;height:34px}.surface.r9-table-view .r9-roll-dock .roll-card .d20-orb svg{width:19px;height:19px}.surface.r9-table-view .r9-roll-dock .roll-card .roll-eyebrow{font-size:8.5px;letter-spacing:.16em}.surface.r9-table-view .r9-roll-dock .roll-card .roll-title{font-size:13px}.surface.r9-table-view .r9-roll-dock .roll-card .roll-body{padding:8px 10px;font-size:13.5px;line-height:1.35}.surface.r9-table-view .r9-roll-dock .roll-card .roll-meta{gap:4px;margin-top:6px}.surface.r9-table-view .r9-roll-dock .roll-card .meta-chip{padding:3px 7px;font-size:9px}.surface.r9-table-view .r9-roll-dock .roll-card .roll-chip-detail{margin-top:6px;padding:6px 7px;font-size:12px}.surface.r9-table-view .r9-roll-dock .roll-card .roll-actions{padding:0 10px 9px}.surface.r9-table-view .r9-roll-dock .roll-card .roll-go{min-height:44px;padding:9px 12px;font-size:12px}.surface.r9-table-view .r9-manual-roll{grid-template-columns:minmax(0,1fr) 58px auto;gap:6px;padding:6px}.surface.r9-table-view .r9-manual-roll label{font-size:8.5px;letter-spacing:.12em}.surface.r9-table-view .r9-manual-roll input,.surface.r9-table-view .r9-manual-roll button{min-height:38px}.surface.r9-table-view .r9-manual-roll button{padding:0 8px;font-size:9px}.surface.r9-table-view .roll-result{gap:8px;padding:6px 9px;box-shadow:none}.surface.r9-table-view .roll-result .seal{width:32px;height:32px;font-size:13px}.surface.r9-table-view .roll-result .label{font-size:8.5px;letter-spacing:.14em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.surface.r9-table-view .roll-result .formula,.surface.r9-table-view .roll-result .dice-result{display:none}.surface.r9-table-view .roll-result .outcome{font-size:11px;line-height:1.1}@media(max-height:720px){.surface.r9-table-view .prompt-helper{display:none}.surface.r9-table-view .scene-strip .row2{max-width:16ch}}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;min-height:54px}.tab:focus-visible,.party-chip:focus-visible,.prompt-send:focus-visible,.prompt-mode:focus-visible,.prompt-mic:focus-visible{outline:2px solid var(--accent-brass-light);outline-offset:2px}.party-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none}.r9-status-stack{display:flex;flex-direction:column;gap:6px;margin:0 12px 8px;position:relative;z-index:3}.r9-status-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;border:1px solid rgba(176,135,66,.45);border-radius:8px;background:linear-gradient(180deg,#1c150fdb,#0f0b08e6),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;box-shadow:var(--shadow-ember)}.r9-status-banner span,.r9-status-banner small{font-family:var(--font-display);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-brass-light)}.r9-status-banner strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f1e3c7;font-family:var(--font-display);font-size:13px}.private-whisper-banner,.turn-banner,.r9-map-panel{flex:0 0 auto;margin:0 12px 8px;position:relative;z-index:3}.private-whisper-banner{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:9px 10px;border:1px solid rgba(120,160,200,.58);border-radius:8px;background:linear-gradient(180deg,#3a5a7847,#22344861),var(--tex-grunge);background-size:cover,220px;background-blend-mode:normal,multiply;color:#dde8f2;box-shadow:var(--shadow-ember)}.private-whisper-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 8px;border:1px solid rgba(148,181,208,.55);border-radius:99px;font-family:var(--font-display);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#c4d9eb}.private-whisper-banner p{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.turn-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid rgba(214,174,106,.5);border-radius:8px;background:linear-gradient(180deg,#4d3416b3,#150f09e6),var(--tex-walnut);background-size:cover,240px;background-blend-mode:normal,multiply;box-shadow:0 0 16px #b087422e,var(--shadow-ember)}.turn-banner span{font-family:var(--font-display);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-brass-light)}.turn-banner strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f1e3c7;font-family:var(--font-display);font-size:13px}.turn-banner small{grid-column:1 / -1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d8c39a;font-family:var(--font-body);font-size:12px}.turn-banner .r9-map-button{align-self:center}.r9-map-panel{display:flex;flex-direction:column;gap:8px}.r9-map-panel.is-closed{gap:0}.r9-map-button{align-self:flex-start;min-height:44px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1px solid rgba(176,135,66,.5);border-radius:8px;background:linear-gradient(180deg,#2a2018,#15100b),var(--tex-walnut);background-size:cover,220px;background-blend-mode:normal,multiply;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.r9-map-button--inline{min-height:32px;padding:0 9px;font-size:10px}.map-shell{padding:8px;border:1px solid rgba(176,135,66,.48);border-radius:10px;background:linear-gradient(180deg,#1c150feb,#0f0b08f2),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;box-shadow:var(--shadow-ember)}.map-toolbar{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:6px;color:#f1e3c7;font-family:var(--font-display);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.map-canvas{width:100%;height:min(48vh,360px);min-height:240px;display:block;touch-action:none;border:1px solid rgba(176,135,66,.42);border-radius:6px;background:#11100d}.map-canvas--image-only{display:grid;place-items:center;overflow:hidden;touch-action:auto}.map-image-only{width:100%;height:100%;object-fit:cover;display:block}.map-empty-art{width:100%;height:100%;display:grid;place-items:center;color:#f1e3c7a8;font-family:var(--font-display);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.map-scene-summary{margin:8px 0 0;color:#f1e3c7c7;font-size:13px;line-height:1.4}.map-floor{fill:#20180f}.map-grid-line{stroke:#f1e3c724;stroke-width:.035}.map-terrain{fill:#5a534a73;stroke:#b0874280;stroke-width:.05}.map-fog{fill:#0000008c}.map-revealed{fill:#f1e3c70f}.map-marker{fill:#b08742;stroke:#2a1f17;stroke-width:.04}.map-label,.map-token-label{fill:#f1e3c7;paint-order:stroke;stroke:#15110c;stroke-width:.08;font-family:var(--font-display);pointer-events:none;-webkit-user-select:none;user-select:none}.map-label{font-size:.42px}.map-token-label{font-size:.36px;font-weight:700}.map-token{cursor:grab}.map-token-footprint{stroke:#f1e3c7;stroke-width:.06;filter:drop-shadow(0 0 .16px rgba(0,0,0,.9))}.map-token.is-pending{opacity:.62}.map-measure line{stroke:#d6ae6a;stroke-width:.08}.map-measure text{fill:#f1e3c7;paint-order:stroke;stroke:#15110c;stroke-width:.08;font-size:.44px}.map-tooltip{margin:7px 0 0;color:#f1e3c7;font-size:13px}.map-token-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.map-token-legend-item{min-width:0;max-width:100%;min-height:28px;display:inline-flex;align-items:center;gap:6px;padding:4px 7px;border:1px solid rgba(176,135,66,.34);border-radius:7px;background:#15110c94;color:#f1e3c7;font-family:var(--font-body);font-size:12px;line-height:1.1}.map-token-legend-item span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-token-legend-swatch{width:9px;height:9px;flex:0 0 auto;border:1px solid rgba(241,227,199,.7);border-radius:50%}.surface.r9-drawer-view{height:100dvh;max-width:430px;margin:0 auto;padding:54px 0 0;border-left:1px solid rgba(176,135,66,.18);border-right:1px solid rgba(176,135,66,.18);box-shadow:0 0 80px #00000073;display:flex;flex-direction:column;overflow:hidden}.r9-route-drawer.drawer{position:relative;left:auto;right:auto;bottom:auto;z-index:3;flex:1 1 auto;min-height:0;max-height:none;margin:0 8px;transform:none;transition:none;border:1px solid #b08742;border-bottom:0;border-radius:18px 18px 0 0}.r9-drawer-view .drawer-head{padding:6px 10px 8px 12px}.r9-drawer-view .drawer-head .ttl{min-width:0}.r9-drawer-view .drawer-head .ttl>span:last-child{min-width:0}.r9-drawer-kicker{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-brass-light)}.r9-drawer-view .drawer-head h2{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r9-drawer-view .drawer-head .close-btn{min-width:44px;width:44px;height:44px;text-decoration:none}.r9-drawer-view .drawer-body{padding:10px 12px 12px}.r9-drawer-section,.r9-card-list,.r9-journal-list{display:flex;flex-direction:column;gap:8px}.r9-card-kicker{font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#7a5a26;margin-bottom:4px}.r9-journal-card h3,.r9-quest-card h3,.r9-empty-card h3{margin:0 0 4px;font-family:var(--font-display);font-size:16px;color:#2a1f17}.r9-journal-card p,.r9-quest-card p,.r9-empty-card p{margin:0;color:#3b2a1d;line-height:1.35}.r9-quest-card small{display:block;margin-top:6px;color:#6b4a20;font-style:italic}.r9-drawer-segmented{margin-bottom:2px}.r9-drawer-view .segmented button{min-height:44px}.r9-drawer-view .party-row{min-height:82px;text-decoration:none}.r9-party-row.active{border-color:#d6ae6a;box-shadow:0 0 0 1px #d6ae6a73,0 0 22px #b0874242,var(--shadow-ember)}.portrait-arch--initial{display:grid;place-items:center;font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--accent-brass-light)}.r9-npc-row{cursor:default}.r9-quest-card[data-status=completed],.r9-quest-card[data-status=complete]{opacity:.9;border-color:#3e5b3aa6;background:linear-gradient(180deg,#e9e2c6f7,#cadab5eb),var(--tex-parchment)}.r9-quest-card[data-status=completed] .r9-card-kicker:before,.r9-quest-card[data-status=complete] .r9-card-kicker:before{content:"Done "}.r9-quest-card[data-status=failed]{border-color:#8b1a1a9e;background:linear-gradient(180deg,#f1e3c7f5,#dab5aae6),var(--tex-parchment)}.r9-npc-row[data-disposition*=ally]{border-color:#3e5b3ab8;box-shadow:0 0 0 1px #3e5b3a2e,var(--shadow-ember)}.r9-npc-row[data-disposition*=hostile],.r9-npc-row[data-disposition*=enemy]{border-color:#8b1a1a9e;box-shadow:0 0 0 1px #8b1a1a2e,var(--shadow-ember)}.r9-npc-row[data-disposition*=wary] .pturn{color:#7a5a26}.r9-npc-row .pinfo p{margin:2px 0 0;color:#3b2a1d;font-size:13px;line-height:1.25}.r9-drawer-view .gold-bar{min-height:62px}.r9-drawer-view .hex-slot,.r9-drawer-view .item-row{cursor:default}.r9-spellcasting-block{display:flex;flex-direction:column;gap:8px;margin:8px 0 12px}.r9-spellcasting-block .cond-row{margin-bottom:2px}.r9-readonly-spell{cursor:default}.r9-spell-state{justify-self:end;padding:4px 8px;border:1px solid rgba(122,90,38,.45);border-radius:99px;background:#2a1f1714;font-family:var(--font-display);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#5a3e1a}.r9-drawer-nav{flex:0 0 auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:7px 8px max(8px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#1e1610e0,#0f0b08f5),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;border-top:1px solid rgba(176,135,66,.45);position:relative;z-index:4}.r9-drawer-nav__link{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:8px;color:#f1e3c78c;text-decoration:none;position:relative}.r9-drawer-nav__link.is-current{color:var(--accent-brass-light)}.r9-drawer-nav__link.is-current:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:28px;height:2px;border-radius:99px;background:var(--accent-brass);box-shadow:0 0 8px #b0874299}.r9-drawer-nav__link span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase}.r9-drawer-nav__link:focus-visible{outline:2px solid var(--accent-brass-light);outline-offset:-2px}.surface.r9-sheet-view{height:100dvh;max-width:430px;margin:0 auto;padding:54px 8px max(10px,env(safe-area-inset-bottom));border-left:1px solid rgba(176,135,66,.18);border-right:1px solid rgba(176,135,66,.18);box-shadow:0 0 80px #00000073;overflow:hidden}.r9-sheet-scroll{height:100%;overflow-y:auto;padding:0 4px 18px;scrollbar-width:thin;scrollbar-color:rgba(176,135,66,.4) transparent}.r9-sheet-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.r9-back-link,.r9-sheet-pill,.r9-primary-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(176,135,66,.45);border-radius:8px;background:#140f0ab8;color:var(--accent-brass-light);text-decoration:none;font-family:var(--font-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:0 12px}.r9-back-link svg{transform:rotate(180deg)}.r9-sheet-view .sheet-hero{margin-bottom:10px}.r9-sheet-view .sheet-hero .info p{margin:4px 0 0;color:#f1e3c7ad;font-size:13px;line-height:1.25}.r9-sheet-xp{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:44px;margin-bottom:10px;padding:8px 10px;border:1px solid rgba(176,135,66,.45);border-radius:8px;background:#140f0aad;color:#f1e3c7;font-family:var(--font-display)}.r9-sheet-xp span,.r9-sheet-xp b{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-brass-light)}.r9-sheet-xp i{grid-column:1 / -1;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--accent-brass) var(--sheet-xp),rgba(176,135,66,.2) var(--sheet-xp));box-shadow:0 0 8px #b0874240}.r9-level-ready{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:9px 10px;border:1px solid rgba(176,135,66,.55);border-radius:8px;background:linear-gradient(180deg,#b087422e,#140f0abf);color:#f1e3c7}.r9-level-ready span{display:block;font-family:var(--font-display);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-brass-light)}.r9-level-ready strong{font-family:var(--font-display)}.r9-sheet-view .stat-row{margin:10px 0 12px}.r9-sheet-view .stat-block{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #b08742;cursor:pointer;min-height:112px;position:relative}.r9-sheet-view .stat-block .num span{color:#7a5a26;font-size:14px;font-weight:600}.r9-sheet-view .formula-badge{position:relative}.r9-sheet-view .formula-badge:not(.r9-formula-stat):not(.r9-formula-ability){display:inline-grid;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:7px 10px;border:1px solid rgba(176,135,66,.45);border-radius:8px;background:#b0874229;color:#2a1f17;font-family:var(--font-display)}.r9-sheet-view .formula-badge__popover{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:12;width:min(260px,calc(100vw - 48px));transform:translate(-50%) translateY(4px);opacity:0;pointer-events:none;padding:8px 10px;border:1px solid rgba(176,135,66,.65);border-radius:8px;background:linear-gradient(180deg,#21170f,#120c08);color:#f1e3c7;font-family:var(--font-body);font-size:12px;line-height:1.25;box-shadow:0 14px 24px #0000006b}.r9-sheet-view .formula-badge[data-open=true] .formula-badge__popover{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.r9-sheet-view .ability-grid{margin-bottom:8px}.r9-sheet-view .ability{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;min-height:84px;position:relative}.r9-sheet-view .ability[data-active=true]{border-color:#d6ae6a;box-shadow:0 0 0 1px #d6ae6a59,0 0 14px #b087422e}.r9-sheet-detail{margin-bottom:10px}.r9-sheet-detail h2{margin:0 0 4px;font-family:var(--font-display);font-size:17px;color:#2a1f17}.r9-sheet-detail p{margin:0 0 6px;color:#3b2a1d;line-height:1.35}.r9-sheet-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.r9-sheet-row{grid-template-columns:36px minmax(0,1fr) auto}.r9-sheet-row .formula-badge{min-width:44px;min-height:44px;border:1px solid rgba(176,135,66,.45);border-radius:8px;background:#b0874229;color:var(--accent-brass-light);font-family:var(--font-display)}.r9-feature-card summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-family:var(--font-display);font-weight:700}.r9-feature-card p{margin:0;color:#3b2a1d}.r9-sheet-view .hex-slot,.r9-sheet-view .item-row,.r9-sheet-view .spell-card{cursor:default}.r9-sheet-view .map-card{margin-bottom:10px}.surface.r9-level-up-view{height:100dvh;max-width:430px;margin:0 auto;padding:54px 12px max(16px,env(safe-area-inset-bottom));border-left:1px solid rgba(176,135,66,.18);border-right:1px solid rgba(176,135,66,.18);box-shadow:0 0 80px #00000073;overflow-y:auto}.r9-level-up-view .sheet-hero{margin-bottom:10px}.r9-level-up-view .level-up-progress{display:flex;gap:7px;overflow-x:auto;margin:0 -2px 10px;padding:2px 2px 8px;scrollbar-width:none}.r9-level-up-view .level-up-progress::-webkit-scrollbar{display:none}.r9-level-up-view .level-up-progress button{flex:0 0 auto;min-height:56px;min-width:82px;border:1px solid rgba(176,135,66,.42);border-radius:8px;background:#140f0ab8;color:#f1e3c7a3;font-family:var(--font-display);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase}.r9-level-up-view .level-up-progress button span{display:grid;place-items:center;width:28px;height:28px;margin:0 auto 4px;border-radius:50%;background:#b087422e;color:var(--accent-brass-light)}.r9-level-up-view .level-up-progress .is-current{border-color:#d6ae6a;color:var(--accent-brass-light);box-shadow:0 0 16px #b0874238}.r9-level-up-view .level-up-panel{display:flex;flex-direction:column;gap:10px}.r9-level-up-view .panel-frame{padding:12px;border:1px solid #b08742;border-radius:8px;background:linear-gradient(180deg,#f1e3c7f5,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17;box-shadow:var(--shadow-ember)}.r9-level-up-view .panel-frame h2{margin:2px 0 10px;color:#2a1f17}.r9-level-up-marker{margin:-4px 0 10px;color:#5a3e1a;font-family:var(--font-display);font-size:11px;text-transform:uppercase}.r9-level-up-view .eyebrow-label{color:#7a5a26}.r9-level-up-view .level-class-grid,.r9-level-up-view .level-spell-grid,.r9-level-up-view .creator-inline-list{display:grid;gap:8px}.r9-level-up-view .level-class-grid button,.r9-level-up-view .creator-inline-list button,.r9-level-up-view .level-spell-grid label,.r9-level-up-view .creator-segment button{min-height:54px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#2a1f1714;color:#2a1f17}.r9-level-up-view .level-class-grid button{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:8px;text-align:left}.r9-level-up-view .level-class-grid button>span{min-width:0;display:grid;gap:3px}.r9-level-up-view .level-class-grid button strong,.r9-level-up-view .level-class-grid button small{display:block;min-width:0;overflow-wrap:anywhere;line-height:1.15}.r9-level-up-view .level-class-grid button strong{font-family:var(--font-display);font-size:14px;color:#2a1f17}.r9-level-up-view .level-class-grid button small{font-size:12px;color:#5a3e1a}.r9-level-up-view .level-class-grid button.is-selected,.r9-level-up-view .creator-inline-list button.is-selected,.r9-level-up-view .level-spell-grid label.is-selected,.r9-level-up-view .creator-segment button.is-selected{border-color:#7a5a26;background:#2a1f1714;box-shadow:0 0 0 2px #b087426b,0 0 18px #b087422e}.r9-level-up-view .creator-segment{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.r9-level-up-view label{display:grid;gap:5px;font-family:var(--font-display);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#5a3e1a}.r9-level-up-view input,.r9-level-up-view textarea{min-height:44px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#ffffff3d;color:#2a1f17;font:inherit;letter-spacing:0;text-transform:none;padding:8px}.r9-level-up-view textarea{min-height:96px}.r9-level-up-view .level-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.r9-level-up-view .level-spell-grid label{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 34px;grid-template-rows:auto auto;align-items:center;column-gap:10px;row-gap:2px;padding:10px 12px;text-align:left}.r9-level-up-view .level-spell-grid label>span,.r9-level-up-view .level-spell-grid label>small{grid-column:1;min-width:0}.r9-level-up-view .level-spell-grid label>span{font-family:var(--font-display);font-size:13px;color:#2a1f17}.r9-level-up-view .level-spell-grid label>small{font-size:11px;color:#5a3e1a}.r9-level-up-view .level-spell-grid input{-webkit-appearance:none;-moz-appearance:none;appearance:none;grid-column:2;grid-row:1 / span 2;width:30px;height:30px;justify-self:end;border:1px solid rgba(122,90,38,.62);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff8e5e0,#d6ae6a3d 60%,#2a1f1729),var(--tex-parchment);box-shadow:inset 0 1px 3px #ffffff52,0 2px 6px #00000029}.r9-level-up-view .level-spell-grid input:checked{border-color:#7a5a26;background:radial-gradient(circle at 35% 30%,#ead07a,#b08742 58%,#5a3a10)}.r9-level-up-view .level-spell-grid input:checked:after{content:"";display:block;width:10px;height:16px;margin:4px auto 0;border:solid #2a1f17;border-width:0 2px 2px 0;transform:rotate(42deg)}.r9-level-up-view .formula-badge{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;justify-content:center;min-height:50px;padding:7px 9px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#b0874229;color:#2a1f17;font-family:var(--font-display);text-align:center}.r9-level-up-view .formula-badge__value{min-width:0;overflow-wrap:anywhere;font-size:13px;line-height:1.12}.r9-level-up-view .formula-badge__popover{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:12;width:min(260px,calc(100vw - 48px));transform:translate(-50%) translateY(4px);opacity:0;pointer-events:none;padding:8px 10px;border:1px solid rgba(176,135,66,.58);border-radius:8px;background:linear-gradient(180deg,#21170f,#120c08);color:#f1e3c7;font-family:var(--font-body);font-size:12px;line-height:1.25;box-shadow:0 14px 24px #0000006b}.r9-level-up-view .formula-badge[data-open=true] .formula-badge__popover{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.r9-level-up-view .level-up-panel button[type=submit]{min-height:48px;width:100%;border:1px solid #7a5a26;border-radius:8px;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7;font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase}.r9-level-up-view .success{min-height:44px;display:flex;align-items:center;margin:10px 0 0;padding:8px 10px;border:1px solid rgba(176,135,66,.55);border-radius:8px;background:#140f0ab8;color:var(--accent-brass-light)}.surface.r9-creator-view{height:100dvh;max-width:430px;margin:0 auto;padding:54px 12px max(118px,calc(env(safe-area-inset-bottom) + 112px));border-left:1px solid rgba(176,135,66,.18);border-right:1px solid rgba(176,135,66,.18);box-shadow:0 0 80px #00000073;overflow-y:auto;scroll-padding-top:14px;scroll-padding-bottom:max(118px,calc(env(safe-area-inset-bottom) + 112px));scrollbar-width:thin;scrollbar-color:rgba(176,135,66,.4) transparent}.surface.r9-creator-view>*{position:relative;z-index:2}.r9-creator-view .creator-header{margin:0 -2px 10px;padding:10px 8px;border:1px solid rgba(176,135,66,.45);border-radius:10px;background-image:linear-gradient(180deg,#2a2018e6,#120d09f0),var(--tex-walnut),url(/assets/ui-textures/walnut-panel-grain.png);background-size:cover,280px,cover;background-blend-mode:normal,multiply,multiply;box-shadow:var(--shadow-ember)}.r9-creator-view .creator-header .crest{width:36px;height:36px;flex:0 0 36px}.r9-creator-view .creator-header .crest svg{width:22px;height:22px}.r9-creator-view .creator-header .title{margin:0;max-width:240px;overflow:visible;text-overflow:clip;white-space:normal;font-size:15px;line-height:1.1}.r9-creator-view .creator-back-link{flex-shrink:0;min-width:44px;width:44px;height:44px}.r9-creator-view .creator-back-link svg{transform:rotate(180deg)}.r9-creator-view .creator-summary-strip{margin:0 -2px 10px}.r9-creator-view .creator-progress{position:relative;z-index:4;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:0 -2px 10px;padding:0 2px;overflow:visible;scrollbar-width:none}.r9-creator-view .creator-progress::-webkit-scrollbar{display:none}.r9-creator-view .creator-progress button{display:grid;place-items:center;align-content:center;gap:2px;min-width:0;min-height:38px;padding:4px 2px;border:1px solid rgba(176,135,66,.42);border-radius:8px;background:#140f0ab8;color:#f1e3c7a3;font-family:var(--font-display);font-size:7.5px;letter-spacing:0;line-height:1.05;text-transform:uppercase;box-shadow:var(--shadow-ember);white-space:normal;overflow-wrap:anywhere}.r9-creator-view .creator-progress button span{display:grid;place-items:center;width:18px;height:18px;margin:0;border-radius:50%;background:#b087422e;color:var(--accent-brass-light);font-size:10px}.r9-creator-view .creator-progress button.is-current{border-color:#d6ae6a;color:var(--accent-brass-light);box-shadow:0 0 16px #b0874238}.r9-creator-view .creator-progress button.is-complete span{background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7}.r9-creator-view .creator-step-panel,.r9-creator-view .creator-detail-panel,.r9-creator-view .creator-generator{padding:12px;border:1px solid #b08742;border-radius:8px;background:linear-gradient(180deg,#f1e3c7f5,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17;box-shadow:var(--shadow-ember)}.r9-creator-view .creator-step-panel{margin-bottom:10px;overflow:visible}.r9-creator-view .creator-step-panel h2{margin:2px 0 6px;color:#2a1f17;font-family:var(--font-display);font-size:19px;line-height:1.12}.r9-creator-view .creator-step-panel>p,.r9-creator-view .creator-detail-panel p,.r9-creator-view .creator-generator p{margin:0 0 10px;color:#3b2a1d;line-height:1.35}.r9-creator-view .eyebrow-label{color:#7a5a26}.r9-creator-view .creator-secondary-action{justify-self:start;min-height:36px;margin:0 0 10px;padding:7px 11px;border:1px solid rgba(122,90,38,.34);border-radius:8px;background:#442f1c14;color:#4a3420;font-family:var(--font-display);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.r9-creator-view .creator-form-grid,.r9-creator-view .creator-option-grid,.r9-creator-view .creator-skill-grid,.r9-creator-view .creator-spell-grid,.r9-creator-view .creator-ability-grid,.r9-creator-view .creator-gallery{display:grid;gap:8px}.r9-creator-view .creator-form-grid,.r9-creator-view .creator-option-grid--race,.r9-creator-view .creator-option-grid--class{grid-template-columns:1fr}.r9-creator-view label{display:grid;gap:5px;font-family:var(--font-display);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#5a3e1a}.r9-creator-view input,.r9-creator-view select,.r9-creator-view textarea{width:100%;min-height:48px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#ffffff3d;color:#2a1f17;font-family:var(--font-body);font-size:16px;letter-spacing:0;text-transform:none;padding:9px 10px}.r9-creator-view textarea{min-height:96px;resize:vertical}.r9-creator-view .creator-choice,.r9-creator-view .creator-spell,.r9-creator-view .creator-check,.r9-creator-view .creator-pill,.r9-creator-view .creator-portrait-card,.r9-creator-view .creator-segment button,.r9-creator-view .creator-generator-actions button,.r9-creator-view .creator-finish,.r9-creator-view .creator-footer button{min-height:48px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#2a1f1714;color:#2a1f17}.r9-creator-view .creator-choice{display:grid;grid-template-columns:60px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:8px 10px;text-align:left}.r9-creator-view .creator-choice>span{display:grid;gap:2px;min-width:0}.r9-creator-view .creator-choice strong,.r9-creator-view .creator-spell strong,.r9-creator-view .creator-review-hero h3{color:#2a1f17;font-family:var(--font-display);font-size:15px;line-height:1.08}.r9-creator-view .creator-choice small,.r9-creator-view .creator-choice em,.r9-creator-view .creator-spell span,.r9-creator-view .creator-spell small,.r9-creator-view .creator-score small,.r9-creator-view .creator-summary-list dd,.r9-creator-view .creator-summary-list dt,.r9-creator-view .creator-inventory-list span{color:#5a3e1a;line-height:1.22}.r9-creator-view .creator-choice small+small{margin-top:3px;color:#6a4a2a;font-size:12px}.r9-creator-view .creator-source-badge,.r9-creator-view .creator-choice-note{justify-self:end;padding:4px 7px;border:1px solid rgba(122,90,38,.38);border-radius:99px;background:#b0874221;font-family:var(--font-display);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase}.r9-creator-view .creator-choice.is-selected,.r9-creator-view .creator-spell.is-selected,.r9-creator-view .creator-check.is-selected,.r9-creator-view .creator-pill.is-selected,.r9-creator-view .creator-portrait-card.is-selected,.r9-creator-view .creator-segment .is-selected{border-color:#7a5a26;background:#b087422e;box-shadow:0 0 0 1px #b0874233,0 0 14px #b087421f}.r9-creator-view .creator-choice .portrait-chip{width:56px;height:66px;margin:0}.r9-creator-view .creator-choice .portrait-chip__caption{display:none}.r9-creator-view .portrait-chip{margin:0}.r9-creator-view .portrait-chip__image,.r9-creator-view .portrait-chip__fallback{border-color:#b08742}.r9-creator-view .creator-choice .class-badge{width:52px;height:52px}.r9-creator-view .creator-choice-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(122,90,38,.48);border-radius:8px;background:radial-gradient(circle at 42% 34%,rgba(255,236,181,.24),transparent 48%),linear-gradient(145deg,#7a5a2642,#2a1f171f);color:#5a3e1a;box-shadow:inset 0 0 0 1px #ffecb529}.r9-creator-view .creator-inline-list,.r9-creator-view .creator-generator-actions,.r9-creator-view .creator-spell-counts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.r9-creator-view .creator-choice-helper{display:grid;gap:3px;margin-top:10px}.r9-creator-view .creator-choice-helper h3{margin:0;color:#2a1f17;font-family:var(--font-display);font-size:15px;line-height:1.12}.r9-creator-view .creator-choice-helper p,.r9-creator-view .creator-choice-progress{margin:0;color:#4a3420;line-height:1.3}.r9-creator-view .creator-pill,.r9-creator-view .creator-segment button,.r9-creator-view .creator-generator-actions button,.r9-creator-view .creator-finish{padding:0 12px;font-family:var(--font-display);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase}.r9-creator-view .creator-pill{align-content:center;display:grid;gap:2px;min-width:min(100%,188px);padding:9px 12px;text-align:left}.r9-creator-view .creator-pill strong,.r9-creator-view .creator-pill small{display:block}.r9-creator-view .creator-pill strong{color:#2a1f17;font-size:11px}.r9-creator-view .creator-pill small{margin-top:3px;font-family:var(--font-body);font-size:13px;line-height:1.2;letter-spacing:0;text-transform:none}.r9-creator-view .creator-segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}.r9-creator-view .creator-budget{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;min-height:52px;margin-bottom:10px;padding:8px 10px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#b0874221}.r9-creator-view .creator-budget strong{font-family:var(--font-display);font-size:28px;color:#2a1f17}.r9-creator-view .creator-budget span{color:#5a3e1a}.r9-creator-view .creator-ancestry-choice-panel{display:grid;gap:10px;margin:0 0 12px;padding:10px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#f1e3c785}.r9-creator-view .creator-ability-choice-group{display:grid;gap:8px}.r9-creator-view .creator-ability-choice-group>small{color:#5a3e1a}.r9-creator-view .creator-ability-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.r9-creator-view .creator-ability-grid{grid-template-columns:1fr}.r9-creator-view .creator-score{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:76px;padding:8px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#2a1f1714}.r9-creator-view .creator-score .hex-slot{width:48px;height:48px;cursor:default}.r9-creator-view .creator-score input{min-height:44px}.r9-creator-view .creator-score>div{text-align:right}.r9-creator-view .creator-score>div strong{display:block;font-family:var(--font-display);font-size:20px}.r9-creator-view .creator-skill-grid,.r9-creator-view .creator-spell-grid{grid-template-columns:1fr}.r9-creator-view .creator-check{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;font-family:var(--font-body);font-size:15px;letter-spacing:0;text-transform:none}.r9-creator-view .creator-check input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;place-items:center;width:24px;height:24px;min-height:24px;margin:0;border:1px solid rgba(89,62,28,.55);border-radius:5px;background:linear-gradient(180deg,#f6e8c5fa,#d7be8fe0);box-shadow:inset 0 1px #fff8e28c}.r9-creator-view .creator-check input:after{content:"";width:12px;height:7px;border-left:2px solid #2a1f17;border-bottom:2px solid #2a1f17;transform:rotate(-45deg) scale(0);transform-origin:center;transition:transform .16s ease-out}.r9-creator-view .creator-check input:checked{border-color:#b08742f2;background:linear-gradient(180deg,#caa35b,#9b7434)}.r9-creator-view .creator-check input:checked:after{transform:rotate(-45deg) scale(1)}.r9-creator-view .creator-check input:disabled{opacity:.68;background:linear-gradient(180deg,#d2c4a5bf,#ac9976b3)}.r9-creator-view .creator-inventory-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.r9-creator-view .creator-loadout-groups{display:grid;gap:10px;margin-top:12px}.r9-creator-view .creator-loadout-group{display:grid;gap:4px;padding:10px;border:1px solid rgba(122,90,38,.28);border-radius:8px;background:#3c2a180d}.r9-creator-view .creator-loadout-group h4{margin:0;color:#2a1f17;font-family:var(--font-display);font-size:14px;line-height:1.12}.r9-creator-view .creator-loadout-group p{margin:0;color:#4a3420;line-height:1.3}.r9-creator-view .creator-inventory-list span,.r9-creator-view .creator-spell-counts span,.r9-creator-view .creator-status,.r9-creator-view .creator-alerts{min-height:44px;display:inline-flex;align-items:center;padding:7px 10px;border:1px solid rgba(122,90,38,.42);border-radius:999px;background:#b0874224;color:#5a3e1a}.r9-creator-view .creator-spell{display:grid;gap:2px;padding:10px 12px;text-align:left;position:relative}.r9-creator-view .creator-selected-mark{position:absolute;top:8px;right:10px;padding:3px 7px;border:1px solid rgba(122,90,38,.5);border-radius:999px;background:#3e5b3a29;color:#3e5b3a;font-size:11px;font-weight:700}.r9-creator-view .creator-portrait-layout{display:grid;gap:10px}.r9-creator-view .creator-portrait-current{display:grid;justify-items:center;gap:8px;color:#3b2a1d}.r9-creator-view .creator-portrait-current p{margin:2px 0 0;color:#2a1f17;font-weight:700;text-shadow:0 1px 0 rgba(255,244,218,.52)}.r9-creator-view .creator-portrait-current .portrait-chip__caption{margin-top:6px;color:#2a1f17;text-shadow:0 1px 0 rgba(255,244,218,.58)}.r9-creator-view .creator-gallery{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible;align-items:start;padding-right:0}.r9-creator-view .creator-portrait-card{display:grid;grid-template-rows:auto;gap:6px;align-content:start;min-height:132px;padding:7px;font-family:var(--font-display);font-size:9px;line-height:1.1;letter-spacing:.08em;text-transform:uppercase;overflow:hidden}.r9-creator-view .creator-portrait-card img{display:block;width:100%;height:118px;object-fit:cover;object-position:center 18%;border:1px solid rgba(122,90,38,.45);border-radius:8px}.r9-creator-view .creator-portrait-card span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}.r9-creator-view .creator-portrait-card small{display:block;min-width:0;color:#5a3e1a;font-family:var(--font-body);font-size:12px;letter-spacing:0;line-height:1.15;text-transform:none}.r9-creator-view .creator-generator{margin-top:10px}.r9-creator-view .creator-generator p{word-break:break-word}.r9-creator-view .creator-generator-actions button:disabled,.r9-creator-view .creator-footer button:disabled,.r9-creator-view .creator-finish:disabled{opacity:.45}.r9-creator-view .creator-footer button:not(:disabled){border-color:#7a5a26;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7;box-shadow:inset 0 1px #ffdca047,0 2px 8px #00000057}.r9-creator-view .creator-warning,.r9-creator-view .creator-alerts{border-color:#8b1a1a73;background:#8b1a1a1f;color:#7a1818}.r9-creator-view .creator-warning{margin:0;padding:9px 10px;border:1px solid rgba(139,26,26,.42);border-radius:8px;font-size:14px;line-height:1.3}.r9-creator-view .creator-inline-action{width:max-content;min-height:40px;padding:0 12px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#b0874229;color:#5a3e1a;font-family:var(--font-display);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.r9-creator-view .creator-review-hero{display:grid;grid-template-columns:116px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:10px}.r9-creator-view .creator-review-hero>div{min-width:0}.r9-creator-view .creator-review-hero .portrait-chip{width:110px;margin:0}.r9-creator-view .creator-review-grid,.r9-creator-view .creator-companion-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}.r9-creator-view .formula-badge{min-height:50px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#b0874229;color:#2a1f17}.r9-creator-view .formula-badge__popover{position:absolute;left:50%;bottom:calc(100% + 8px);z-index:12;width:min(260px,calc(100vw - 48px));transform:translate(-50%) translateY(4px);opacity:0;pointer-events:none;padding:8px 10px;border:1px solid rgba(176,135,66,.65);border-radius:8px;background:linear-gradient(180deg,#21170f,#120c08);color:#f1e3c7;font-family:var(--font-body);font-size:12px;line-height:1.25;box-shadow:0 14px 24px #0000006b}.r9-creator-view .formula-badge[data-open=true] .formula-badge__popover{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.r9-creator-view .creator-summary-list{display:grid;gap:8px}.r9-creator-view .creator-summary-list div{padding:8px 10px;border:1px solid rgba(122,90,38,.35);border-radius:8px;background:#2a1f1712}.r9-creator-view .creator-summary-list dt{font-family:var(--font-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.r9-creator-view .creator-finish{width:100%;margin-top:10px;border-color:#7a5a26;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7}.r9-creator-view .creator-companion-card{margin-bottom:10px}.r9-creator-view .creator-companion-card>.panel-frame{padding:12px;border:1px solid #b08742;border-radius:8px;background:linear-gradient(180deg,#2a2018,#15100b),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;color:#f1e3c7;box-shadow:var(--shadow-ember)}.r9-creator-view .creator-companion-card h2{margin:8px 0 4px;font-family:var(--font-display);font-size:19px;color:#f1e3c7}.r9-creator-view .creator-companion-card p{margin:0 0 4px;color:#f1e3c7b8}.r9-creator-view .creator-companion-portrait{display:flex;align-items:flex-end;justify-content:center;gap:10px}.r9-creator-view .creator-companion-portrait .portrait-chip{width:110px}.r9-creator-view .creator-companion-portrait .class-badge{width:58px;height:58px}.r9-creator-view .creator-status,.r9-creator-view .creator-alerts{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 10px;border-radius:8px}.r9-creator-view .creator-footer{position:relative;z-index:20;width:auto;margin:10px -12px 0;display:grid;grid-template-columns:92px 1fr 92px;gap:8px;align-items:center;padding:8px 12px max(10px,env(safe-area-inset-bottom));border-top:1px solid rgba(176,135,66,.45);background:linear-gradient(180deg,#1e1610fa,#0f0b08),var(--tex-walnut);background-size:cover,280px;background-blend-mode:normal,multiply;box-shadow:0 -16px 40px #00000073}.r9-creator-view .creator-footer span{color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.18em;text-align:center;text-transform:uppercase}.r9-creator-view button:focus-visible,.r9-creator-view a:focus-visible,.r9-creator-view input:focus-visible,.r9-creator-view select:focus-visible,.r9-creator-view textarea:focus-visible{outline:2px solid var(--accent-brass-light);outline-offset:2px}@media(min-width:900px){.surface.r9-creator-view{width:min(1120px,calc(100vw - 40px));max-width:none;min-height:100vh;height:auto;display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"head head" "strip strip" "progress progress" "step companion" "footer companion" "status companion";gap:0 14px;padding:64px 18px 118px}.r9-creator-view .creator-header{grid-area:head}.r9-creator-view .creator-summary-strip{grid-area:strip}.r9-creator-view .creator-progress{grid-area:progress;grid-template-columns:repeat(10,minmax(0,1fr));overflow:visible}.r9-creator-view .creator-step-panel{grid-area:step}.r9-creator-view .creator-footer{grid-area:footer}.r9-creator-view .creator-companion-card{grid-area:companion;position:sticky;top:76px;align-self:start}.r9-creator-view .creator-option-grid--race,.r9-creator-view .creator-option-grid--class,.r9-creator-view .creator-option-grid,.r9-creator-view .creator-ability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.r9-creator-view .creator-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}.r9-creator-view .creator-footer{grid-column:1 / -1;margin:10px 0 0;width:auto}.r9-creator-view .creator-step-panel{margin-bottom:24px}}.surface.r9-home-view{min-height:100vh;max-width:1180px;margin:0 auto;padding:24px 14px max(28px,env(safe-area-inset-bottom));overflow-y:auto;gap:12px}.surface.r9-home-view>*{position:relative;z-index:2}.r9-home-hero{min-height:260px;display:grid;align-content:end;gap:8px;padding:22px 18px;border:1px solid rgba(176,135,66,.55);border-radius:10px;background:linear-gradient(180deg,#120d092e,#120d09e6),url(/assets/design/orn/compass.png) right 12px top 14px/132px auto no-repeat,var(--tex-walnut);background-size:cover,132px auto,360px;background-blend-mode:normal,screen,multiply;box-shadow:var(--shadow-candle);overflow:hidden}.r9-home-hero:before{content:"";position:absolute;top:10px;right:10px;width:74px;height:74px;background:url(/assets/design/orn/corner-filigree.png) center/contain no-repeat;opacity:.45;transform:scaleX(-1)}.r9-home-hero .crest{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#d6ae6a,#7a5a26 65%,#3a2912);color:#f1e3c7;border:1px solid rgba(255,220,160,.36);box-shadow:inset 0 0 0 1px #00000047,0 4px 14px #00000073}.r9-home-hero .eyebrow,.r9-home-section-head .eyebrow{margin:0;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.22em;text-transform:uppercase}.r9-home-hero h1{max-width:14ch;margin:0;color:#f1e3c7;font-family:var(--font-display);font-size:clamp(34px,9vw,58px);line-height:.98}.r9-home-hero p:not(.eyebrow){max-width:34rem;margin:0;color:#f1e3c7c7;font-size:17px;line-height:1.35}.r9-home-hero button,.r9-home-primary{width:max-content;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:1px solid #7a5a26;border-radius:8px;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7;font-family:var(--font-display);font-size:11px;letter-spacing:.14em;text-decoration:none;text-transform:uppercase;box-shadow:inset 0 1px #ffdca047,0 2px 8px #00000057}.r9-home-hero button svg,.r9-home-primary svg{color:#f1e3c7;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45))}.r9-home-choice-grid{display:grid;gap:10px}.r9-home-choice{width:100%;min-height:128px;display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:12px;padding:14px;border:1px solid rgba(176,135,66,.55);border-radius:10px;background:linear-gradient(180deg,#201811eb,#0e0a07f5),var(--tex-walnut);background-size:cover,340px;background-blend-mode:normal,multiply;color:#f1e3c7;text-align:left;box-shadow:var(--shadow-ember)}.r9-home-choice-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(176,135,66,.58);background:radial-gradient(circle at 30% 30%,#d6ae6a,#7a5a26 65%,#3a2912);color:#f1e3c7;box-shadow:inset 0 0 0 1px #ffdca038,0 4px 12px #00000052}.r9-home-choice strong{display:block;color:#f1e3c7;font-family:var(--font-display);font-size:22px;line-height:1.1}.r9-home-choice small{display:block;margin-top:5px;color:#f1e3c7b8;font-size:15px;line-height:1.32}.r9-home-subnav{display:grid;grid-template-areas:"back" "title" "action";gap:10px;padding:12px;border:1px solid rgba(176,135,66,.48);border-radius:10px;background:#140f0ac2;box-shadow:var(--shadow-ember)}.r9-home-subnav>div{grid-area:title;min-width:0}.r9-home-subnav .r9-home-primary{grid-area:action;max-width:100%;justify-self:start;white-space:normal;text-align:center}.r9-home-subnav>button:not(.r9-home-primary){grid-area:back;min-height:44px;width:max-content;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid rgba(176,135,66,.45);border-radius:8px;background:linear-gradient(180deg,#2a2018,#15100b);color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.r9-home-subnav .eyebrow{margin:0;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.22em;text-transform:uppercase}.r9-home-subnav h2{margin:2px 0 0;color:#f1e3c7;font-family:var(--font-display);font-size:23px;line-height:1.1}.r9-home-panel,.r9-home-section{border:1px solid rgba(176,135,66,.55);border-radius:10px;background:linear-gradient(180deg,#201811e6,#0e0a07f0),var(--tex-walnut);background-size:cover,340px;background-blend-mode:normal,multiply;color:#f1e3c7;box-shadow:var(--shadow-ember)}.r9-home-panel{padding:12px}.r9-home-section{padding:14px 12px}.r9-home-panel h2,.r9-home-section h2{margin:0;color:#f1e3c7;font-family:var(--font-display);font-size:20px;line-height:1.12}.r9-home-panel form{display:grid;gap:10px}.r9-home-panel label{display:grid;gap:5px;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.r9-home-panel input,.r9-home-panel select,.r9-home-panel textarea{width:100%;min-height:48px;border:1px solid rgba(122,90,38,.5);border-radius:8px;background:linear-gradient(180deg,#f1e3c7f5,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17;font-family:var(--font-body);font-size:16px;letter-spacing:0;text-transform:none;padding:9px 10px}.r9-home-panel textarea{min-height:96px;resize:vertical}.r9-home-template,.r9-home-tabs{margin-bottom:2px}.r9-home-form-pair{display:grid;gap:10px}.r9-home-party-box{display:grid;gap:10px;padding:12px;border:1px solid rgba(176,135,66,.42);border-radius:8px;background:#140f0a80}.r9-home-party-box .eyebrow{margin:0;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase}.r9-home-party-box h3{margin:2px 0 0;color:#f1e3c7;font-family:var(--font-display);font-size:17px;line-height:1.15}.r9-home-party-note{margin:0;color:#f1e3c7b8;font-size:14px;line-height:1.35}.r9-home-panel .r9-home-checkline{grid-template-columns:22px minmax(0,1fr);align-items:start;gap:10px;padding:10px;border:1px solid rgba(176,135,66,.34);border-radius:8px;background:#0e0a076b;color:#f1e3c7;font-family:var(--font-body);font-size:15px;letter-spacing:0;text-transform:none}.r9-home-panel .r9-home-checkline input{width:20px;height:20px;min-height:20px;margin:2px 0 0;padding:0;accent-color:#b08742}.r9-home-checkline strong{display:block;color:#f1e3c7;font-family:var(--font-display);font-size:14px;line-height:1.2}.r9-home-checkline small{display:block;margin-top:3px;color:#f1e3c7ad;line-height:1.3}.r9-level-range{display:grid;grid-template-columns:1fr 1fr;gap:8px}.r9-home-section-head{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:12px}.r9-home-tabs{min-width:174px}.r9-home-tabs button{min-height:44px}.r9-campaign-list{display:grid;gap:9px}.r9-campaign-card{position:relative;display:grid;gap:5px;min-height:92px;padding:12px 82px 12px 13px;text-decoration:none}.r9-campaign-card-link{display:grid;gap:5px;min-width:0;color:inherit;text-decoration:none}.r9-campaign-card strong{color:#2a1f17;font-family:var(--font-display);font-size:17px;line-height:1.12}.r9-campaign-card small{color:#4a3420;line-height:1.3}.r9-campaign-card .status-pill{position:absolute;top:12px;right:12px;max-width:74px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 8px;border:1px solid rgba(122,90,38,.45);border-radius:99px;background:#b0874229;color:#5a3e1a;font-family:var(--font-display);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.r9-campaign-delete{position:absolute;right:12px;bottom:12px;min-height:34px;padding:0 8px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#8b1a1a1f;color:#6f201b;font-family:var(--font-display);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.r9-home-archive-note{margin:2px 0 0;padding:8px 10px;border:1px solid rgba(176,135,66,.38);border-radius:8px;background:#140f0a8f;color:#f1e3c7ad;font-size:14px;line-height:1.3}.r9-home-import .creator-form{display:grid;gap:10px;margin-top:10px}.r9-vault-list{display:grid;gap:9px}.r9-vault-card{min-height:100px;display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px}.r9-vault-card .portrait-arch{width:54px;height:62px;border-radius:27px 27px 6px 6px;border:1.5px solid #b08742;display:grid;place-items:center;overflow:hidden;background:linear-gradient(180deg,#2a2018,#15100b);color:var(--accent-brass-light);font-family:var(--font-display);font-size:22px}.r9-vault-card .portrait-arch img{width:100%;height:100%;object-fit:cover}.r9-vault-card strong{display:block;color:#2a1f17;font-family:var(--font-display);font-size:17px;line-height:1.1}.r9-vault-card small{display:block;color:#4a3420;line-height:1.25}.r9-vault-card button{min-height:44px;padding:0 10px;border:1px solid rgba(122,90,38,.45);border-radius:8px;background:#8b1a1a1f;color:#6f201b;font-family:var(--font-display);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.r9-portable-strip{display:flex;gap:8px;overflow-x:auto;margin-top:10px;padding-bottom:4px;scrollbar-width:none}.r9-portable-strip::-webkit-scrollbar{display:none}.r9-portable-strip button{flex:0 0 118px;min-height:136px;display:grid;justify-items:center;align-content:start;gap:6px;padding:9px 8px;border:1px solid rgba(176,135,66,.45);border-radius:8px;background:#140f0ab8;color:#f1e3c7}.r9-portable-empty{flex:1 0 100%;min-height:136px;display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:10px;padding:12px;border:1px dashed rgba(176,135,66,.5);border-radius:8px;background:#140f0a9e;color:#f1e3c7}.r9-portable-empty strong,.r9-portable-empty small{grid-column:2}.r9-portable-empty .portrait-arch{grid-row:1 / span 2}.r9-portable-empty strong{font-family:var(--font-display);font-size:14px}.r9-portable-empty small{color:#f1e3c7ad;line-height:1.3}.r9-portable-strip button.is-selected{border-color:#d6ae6a;box-shadow:0 0 16px #b0874238}.r9-portable-strip .portrait-arch,.r9-portable-empty .portrait-arch{width:54px;height:62px;border-radius:27px 27px 6px 6px;border:1.5px solid #b08742;background:linear-gradient(180deg,#2a2018,#15100b);color:var(--accent-brass-light)}.r9-portable-strip strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:13px}.r9-portable-strip small{color:#f1e3c7a8}.r9-home-signin{min-height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.18em;text-transform:uppercase}.r9-home-view .helper-text{margin:10px 0 0;color:var(--accent-brass-light)}.r9-home-view button:focus-visible,.r9-home-view a:focus-visible,.r9-home-view input:focus-visible,.r9-home-view select:focus-visible,.r9-home-view textarea:focus-visible{outline:2px solid var(--accent-brass-light);outline-offset:2px}@media(min-width:860px){.surface.r9-home-view{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:start;padding:32px}.r9-home-hero{grid-row:span 2;min-height:calc(100vh - 64px)}.r9-home-start,.r9-home-campaigns,.r9-home-import,.r9-home-choice-grid,.r9-home-subnav,.r9-home-vault,.r9-home-vault-add,.r9-home-signin{grid-column:2}.r9-home-form-pair,.r9-home-choice-grid{grid-template-columns:1fr}.r9-home-subnav{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"back action" "title title";align-items:start}.r9-home-subnav .r9-home-primary{justify-self:end}}.surface.r9-sign-in-view{min-height:100vh;align-items:center;justify-content:center;padding:72px 16px 42px;overflow-y:auto}.surface.r9-sign-in-view>*{position:relative;z-index:2}.r9-auth-card{width:min(100%,430px);position:relative;display:grid;justify-items:center;gap:12px;padding:18px 14px 14px;border:1px solid rgba(176,135,66,.68);border-radius:12px;background:radial-gradient(circle at 50% 0%,rgba(214,174,106,.18),transparent 170px),linear-gradient(180deg,#2a1f17f0,#0d0906fa),var(--tex-walnut);background-size:cover,cover,340px;background-blend-mode:normal,normal,multiply;box-shadow:var(--shadow-candle);color:#f1e3c7;text-align:center}.r9-auth-card:before{content:"";position:absolute;top:6px;right:6px;width:54px;height:54px;background:url(/assets/design/orn/corner-filigree.png) center/contain no-repeat;opacity:.48;transform:scaleX(-1);pointer-events:none}.r9-auth-crest,.r9-admin-hero-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(214,174,106,.5);border-radius:50%;background:radial-gradient(circle at 32% 24%,#d6ae6a,#7a5a26 62%,#2a1f17),var(--tex-walnut);background-size:cover,220px;background-blend-mode:normal,multiply;color:#f1e3c7;box-shadow:inset 0 0 0 1px #ffdca02e,0 8px 20px #00000057}.r9-auth-card .eyebrow,.r9-admin-view .eyebrow{margin:0;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase}.r9-auth-card h1{margin:0;color:#f1e3c7;font-family:var(--font-display);font-size:30px;line-height:1.04}.r9-auth-inset{width:100%;display:grid;gap:10px;padding:14px;border:1px solid #b08742;border-radius:8px;background:linear-gradient(180deg,#f1e3c7f7,#dcc8a5fa),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17;box-shadow:inset 0 0 0 1px #ffffff38}.r9-auth-inset p{margin:0;color:#4a3420;font-size:16px;line-height:1.38}.r9-sign-in-form{display:grid;gap:9px;margin:0;padding:0;border:0;background:none;box-shadow:none;text-align:left}.r9-sign-in-form label{color:#5a3e1a;font-family:var(--font-display);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.r9-sign-in-form input{min-height:48px;width:100%;border:1px solid rgba(122,90,38,.5);border-radius:8px;background:#fff8e57a;color:#2a1f17;font-family:var(--font-body);font-size:16px;padding:9px 10px}.r9-sign-in-form button,.r9-auth-link{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #7a5a26;border-radius:8px;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7;font-family:var(--font-display);font-size:11px;letter-spacing:.14em;text-decoration:none;text-transform:uppercase;box-shadow:inset 0 1px #ffdca047,0 2px 8px #0000003d}.r9-auth-inset .r9-auth-status{color:#3e5b3a}.r9-auth-inset .r9-auth-error{color:#8b1a1a}.r9-auth-magic-link{display:grid;gap:9px;padding:10px;border:1px solid rgba(122,90,38,.42);border-radius:8px;background:#4a342014;text-align:left}.r9-auth-magic-link a{display:block;min-height:44px;padding:8px;border:1px dashed rgba(122,90,38,.46);border-radius:7px;background:#fff8e580;color:#2a1f17;font-size:13px;line-height:1.25;overflow-wrap:anywhere}.r9-auth-magic-link button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(122,90,38,.66);border-radius:8px;background:#2a1f17eb;color:#f1e3c7;font-family:var(--font-display);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.surface.r9-admin-view{min-height:100vh;display:grid;align-content:start;gap:14px;padding:64px 12px 42px;overflow-y:auto}.surface.r9-admin-view>*{position:relative;z-index:2}.r9-admin-hero{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:14px;border-radius:12px;border:1px solid rgba(176,135,66,.64);background:radial-gradient(circle at 86% 0%,rgba(214,174,106,.16),transparent 160px),linear-gradient(180deg,#2a1f17f0,#0f0b08fa),var(--tex-walnut);background-size:cover,cover,340px;background-blend-mode:normal,normal,multiply;color:#f1e3c7;box-shadow:var(--shadow-ember)}.r9-admin-hero:after{content:"";position:absolute;top:6px;right:6px;width:58px;height:58px;background:url(/assets/design/orn/corner-filigree.png) center/contain no-repeat;opacity:.42;transform:scaleX(-1);pointer-events:none}.r9-admin-hero-copy{min-width:0;display:grid;gap:6px}.r9-admin-hero h1,.r9-admin-panel h2,.r9-admin-section-head h2{margin:0;color:#f1e3c7;font-family:var(--font-display);font-size:23px;line-height:1.08}.r9-admin-hero p:not(.eyebrow),.r9-admin-panel p{margin:0;color:#f1e3c7c2;font-size:15px;line-height:1.38}.r9-admin-hero .quiet-link,.r9-admin-empty .quiet-link{width:max-content;min-height:44px;display:inline-flex;align-items:center;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.16em;text-decoration:none;text-transform:uppercase}.r9-admin-panel,.r9-admin-view .admin-cost-metric{border:1px solid #b08742;border-radius:10px;background:linear-gradient(180deg,#f1e3c7f5,#dcc8a5f7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17;box-shadow:var(--shadow-ember)}.r9-admin-panel{display:grid;gap:12px;padding:13px}.r9-admin-empty{align-content:center;justify-items:center}.r9-admin-empty-card{width:min(100%,390px);justify-items:center;text-align:center}.r9-admin-empty-card .r9-admin-hero-icon{margin-bottom:2px}.r9-admin-empty-card h1{margin:0;color:#2a1f17;font-family:var(--font-display);font-size:26px}.r9-admin-empty-card .quiet-link{color:#7a5a26}.admin-cost-window{max-width:100%;display:grid;gap:6px;color:var(--accent-brass-light);font-family:var(--font-display);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.admin-cost-window select,.r9-admin-panel input,.r9-admin-panel select{width:100%;min-height:48px;border:1px solid rgba(122,90,38,.5);border-radius:8px;background:linear-gradient(180deg,#fff8e5b8,#e7d1acc7),var(--tex-parchment);background-size:cover,320px;background-blend-mode:normal,multiply;color:#2a1f17;font-family:var(--font-body);font-size:16px;letter-spacing:0;padding:9px 10px;text-transform:none}.admin-cost-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.r9-admin-view .admin-cost-metric{min-height:112px;display:grid;align-content:start;gap:5px;padding:12px}.r9-admin-view .admin-cost-metric span,.r9-admin-view .admin-cost-table th,.r9-admin-view .admin-cost-row span{color:#6c4a1d;font-family:var(--font-display);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.r9-admin-view .admin-cost-metric strong{color:#2a1f17;font-family:var(--font-display);font-size:24px;line-height:1.04}.r9-admin-view .admin-cost-metric small,.r9-admin-view .admin-cost-section p{color:#4a3420;font-size:14px;line-height:1.34}.r9-admin-view .admin-cost-section h2,.r9-encounter-panel h2{margin:0;color:#2a1f17;font-family:var(--font-display);font-size:19px;line-height:1.12}.admin-cost-list{display:grid;gap:7px}.r9-admin-view .admin-cost-row{display:flex;align-items:center;justify-content:space-between;min-height:46px;gap:12px;padding:8px 10px;border:1px solid rgba(122,90,38,.32);border-radius:8px;background:#fff8e552}.r9-admin-view .admin-cost-row span{text-transform:none}.admin-cost-table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;font-size:14px}.r9-admin-view .admin-cost-section:has(.admin-cost-table){overflow-x:auto}.r9-admin-view .admin-cost-table th,.r9-admin-view .admin-cost-table td{border-bottom:1px solid rgba(122,90,38,.28);padding:9px 6px;text-align:right;overflow:hidden;text-overflow:ellipsis}.r9-admin-view .admin-cost-table th:first-child,.r9-admin-view .admin-cost-table td:first-child{text-align:left}.r9-admin-view .admin-cost-table td{color:#2a1f17}.r9-admin-view .admin-cost-table tbody tr:last-child td{border-bottom:0}.admin-audit-table th:first-child,.admin-audit-table td:first-child{width:78px}.admin-audit-table th:nth-child(3),.admin-audit-table td:nth-child(3){width:72px}.admin-audit-table td:last-child{white-space:normal;overflow-wrap:anywhere}.audit-severity{min-height:28px;display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;border:1px solid rgba(122,90,38,.36);background:#fff8e561;font-family:var(--font-display);font-size:10px;line-height:1}.audit-severity--p1{border-color:#8b1a1ab8;background:#8b1a1a29;color:#6e1414}.audit-severity--p2{border-color:#b08742b8;background:#b087422e;color:#6c4a1d}.audit-severity--p3{border-color:#3e5b3a94;background:#3e5b3a29;color:#2f4f2b}.admin-portrait-uploader form{display:grid;gap:10px}.admin-portrait-uploader label{display:grid;gap:5px;color:#6c4a1d;font-family:var(--font-display);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}.admin-portrait-uploader label>span{display:inline-flex;width:max-content;padding:3px 7px;border:1px solid rgba(122,90,38,.36);border-radius:99px;background:#f1e3c7e0;color:#3b2a1d}.admin-portrait-uploader button,.r9-admin-controls button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #7a5a26;border-radius:8px;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7;font-family:var(--font-display);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;box-shadow:inset 0 1px #ffdca047,0 2px 8px #0000003d}.admin-portrait-uploader button:disabled,.r9-admin-controls button:disabled{cursor:not-allowed;opacity:.52}.r9-admin-controls button[data-confirming=true]{border-color:#8b1a1ab8;background:linear-gradient(180deg,#8b1a1a,#4f1111);color:#f1e3c7}.admin-portrait-dropzone{position:relative;align-items:center;display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;min-height:92px;padding:11px;border:1px dashed #7a5a26;border-radius:8px;background:linear-gradient(180deg,#2a1f17f0,#0d0906f5),var(--tex-walnut);background-size:cover,260px;background-blend-mode:normal,multiply;color:#f1e3c7;cursor:pointer;overflow:hidden}.admin-portrait-uploader .admin-portrait-dropzone{color:#f1e3c7;letter-spacing:.08em}.admin-portrait-dropzone-icon{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(214,174,106,.42);border-radius:50%;color:var(--accent-brass-light);background:#0f0b089e}.admin-portrait-dropzone-copy{min-width:0;display:grid;gap:3px}.admin-portrait-uploader label.admin-portrait-dropzone>.admin-portrait-dropzone-copy{width:auto;display:grid;padding:0;border:0;border-radius:0;background:transparent}.admin-portrait-dropzone-copy strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f1e3c7;font-family:var(--font-display);font-size:10px;line-height:1.15;text-transform:uppercase}.admin-portrait-dropzone-copy small{color:#d6ae6a;font-size:12px;line-height:1.2;letter-spacing:0;text-transform:none}.admin-portrait-dropzone input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.admin-portrait-dropzone:focus-within{outline:2px solid var(--accent-brass-light);outline-offset:3px}.r9-admin-panel .admin-portrait-status{color:#2f4f2b}.r9-admin-section-head{display:grid;gap:3px}.r9-admin-section-head .eyebrow-label,.admin-portraits-hero .eyebrow-label{color:var(--accent-brass-light);font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase}.admin-portrait-gallery .r9-admin-section-head h2{color:#2a1f17}.admin-portrait-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-portrait-preview figure{display:grid;gap:6px;min-width:0;margin:0;padding:7px;border:1px solid rgba(122,90,38,.42);border-radius:8px;background:linear-gradient(180deg,#2a1f17eb,#0f0b08f5),var(--tex-walnut);background-size:cover,260px;background-blend-mode:normal,multiply;color:#f1e3c7}.admin-portrait-preview img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border:1px solid rgba(214,174,106,.45);border-radius:999px 999px 6px 6px;background:#15110c}.admin-portrait-preview figcaption{min-height:32px;color:#f1e3c7;font-size:12px;line-height:1.2;overflow-wrap:anywhere;text-shadow:0 1px 2px rgba(0,0,0,.7)}.admin-portrait-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.admin-portrait-actions button{min-height:44px;border:1px solid rgba(214,174,106,.42);border-radius:6px;background:#140f0ab8;color:var(--accent-brass-light);font-family:var(--font-display);font-size:9px;text-transform:uppercase}.r9-encounter-panel p{color:#3f2e20}.r9-encounter-panel .option-list{display:grid;gap:7px}.r9-combatant-row{min-height:54px;display:grid;gap:3px;padding:9px 10px;border:1px solid rgba(122,90,38,.34);border-radius:8px;background:#fff8e552}.r9-combatant-row[data-active=true]{border-color:#d6ae6a;background:#b087422e;box-shadow:0 0 0 1px #d6ae6a59,0 0 16px #b0874238}.r9-combatant-row[data-active=true] strong:after{content:" active";color:#7a5a26;font-size:10px;text-transform:uppercase}.r9-combatant-row[data-side=party]{border-color:#3e5b3aa6}.r9-combatant-row[data-side=enemy]{border-color:#8b1a1a9e}.r9-combatant-row strong{color:#2a1f17;font-family:var(--font-display);font-size:14px}.r9-combatant-row span{color:#4a3420;font-size:13.5px}.r9-admin-controls{position:sticky;left:auto;right:auto;bottom:8px;display:grid;grid-template-columns:1fr;gap:8px;padding:9px;border:1px solid rgba(176,135,66,.58);border-radius:12px;background:linear-gradient(180deg,#201811f0,#0e0a07fa),var(--tex-walnut);background-size:cover,340px;background-blend-mode:normal,multiply;box-shadow:0 -8px 26px #00000070;z-index:4}.r9-admin-view .success{margin:0;color:var(--accent-brass-light)}.r9-sign-in-view button:focus-visible,.r9-sign-in-view a:focus-visible,.r9-sign-in-view input:focus-visible,.r9-admin-view button:focus-visible,.r9-admin-view a:focus-visible,.r9-admin-view input:focus-visible,.r9-admin-view select:focus-visible{outline:2px solid var(--accent-brass-light);outline-offset:2px}@media(min-width:760px){.surface.r9-admin-view{grid-template-columns:minmax(0,1fr);padding:32px}.r9-admin-cost-view .admin-cost-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.r9-admin-portraits-view{grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr)}.r9-admin-portraits-view .r9-admin-hero{grid-column:1 / -1}.admin-portrait-preview{grid-template-columns:repeat(4,minmax(0,1fr))}.r9-admin-controls{grid-template-columns:repeat(3,minmax(0,1fr))}}.r9-roll-dock{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;margin:0 12px 12px;position:relative;z-index:4}.r9-roll-dock .beat{display:block}.r9-manual-roll{display:grid;grid-template-columns:1fr 70px auto;align-items:center;gap:8px;padding:8px;border:1px solid rgba(176,135,66,.4);border-radius:8px;background:#140f0ab8}.r9-manual-roll label{font-family:var(--font-display);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-brass-light)}.r9-manual-roll input{min-height:42px;width:100%;border:1px solid rgba(176,135,66,.45);border-radius:6px;background:#f1e3c7f0;color:#2a1f17;font-family:var(--font-display);font-size:18px;text-align:center}.r9-manual-roll button{min-height:42px;padding:0 10px;border-radius:6px;border:1px solid #7a5a26;background:linear-gradient(180deg,#b08742,#7a5a26);color:#f1e3c7;font-family:var(--font-display);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.r9-question-card{flex:0 0 auto;margin:0 12px 8px;padding:12px 14px;position:relative;z-index:4;border:1px solid rgba(120,160,200,.55);border-radius:8px;background:linear-gradient(180deg,#3a5a7840,#22344859),var(--tex-grunge);background-size:cover,220px;background-blend-mode:normal,multiply;box-shadow:var(--shadow-ember);color:#dde8f2}.r9-question-card .dm-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-family:var(--font-display);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#94b5d0}.r9-question-card .dm-eyebrow .dot{width:6px;height:6px;border-radius:99px;background:#94b5d0}.r9-question-card h2{margin:0 0 4px;font-family:var(--font-display);font-size:15px;line-height:1.2;color:#f1e3c7}.r9-question-card p{margin:0 0 8px;color:#d9e5ef;font-size:14.5px;line-height:1.4}.r9-question-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border:1px solid rgba(148,181,208,.55);border-radius:7px;background:#080e1447;color:#c4d9eb;font-family:var(--font-display);font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
