:root{--color-bg-app: #14161f;--color-bg-deep: #0f1118;--color-bg-glow: #1f2230;--color-bg-void: #090a10;--color-bg-art: #090a10;--color-surface: rgba(26, 28, 40, .93);--color-surface-heavy: rgba(26, 28, 40, .97);--color-surface-solid: #1a1c28;--color-surface-inset: #171923;--color-surface-raised: #282b3c;--color-surface-raised-hover: #20233a;--color-chip: #262c42;--color-chip-alt: #222639;--color-border: #363c54;--color-border-subtle: #2a2f45;--color-border-strong: #454c68;--color-text: #f0ece0;--color-text-soft: #dcd6c6;--color-text-muted: #bcb6a4;--color-text-dim: #9a9384;--color-text-faint: #9a9486;--color-accent: #bc3f28;--color-accent-hover: #b23a24;--color-accent-border: #e87a5c;--color-accent-contrast: #fff4ec;--color-accent-soft: rgba(188, 63, 40, .14);--color-link: #e87a5c;--color-highlight: #e6b422;--highlight-surface: rgba(70, 54, 10, .5);--highlight-border: #7a5f1a;--color-success: #6fae72;--color-success-soft: rgba(111, 174, 114, .16);--color-danger: #e57365;--color-danger-contrast: #1a0e0c;--color-danger-soft: rgba(229, 115, 101, .14);--color-warning: #dc9a3a;--color-warning-border: #8a5520;--color-warning-contrast: #1a1206;--color-focus: #e6c25f;--color-scrim: rgba(7, 8, 14, .62);--color-scrim-light: rgba(7, 8, 14, .45);--color-scrim-heavy: rgba(7, 8, 14, .88);--color-scrim-art: rgba(0, 0, 0, .55);accent-color:var(--color-accent);--shadow-kept: 0 0 8px rgba(230, 180, 34, .35);--shadow-inspiration: 0 0 14px rgba(230, 180, 34, .38);--shadow-tense: 0 0 16px rgba(214, 58, 44, .45);--shadow-spotlight: 0 0 12px rgba(230, 180, 34, .5);--shadow-card: 0 6px 18px rgba(0, 0, 0, .35);--shadow-ink-soft: rgba(0, 0, 0, .35);--shadow-ink: rgba(0, 0, 0, .45);--shadow-ink-strong: rgba(0, 0, 0, .6);--shadow-ink-art: rgba(0, 0, 0, .9);--ring-selection: #f7e2a0;--ring-turn: #f5f1e6;--ring-target: #d1205a;--ring-base: #0b0d14;--template-invalid: #e05a4a;--wall-2d: #4a4636;--fog-hidden: #080a12;--fog-gm: rgba(8, 10, 20, .6);--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 12px;--space-6: 16px;--space-7: 24px;--space-8: 32px;--text-xs: 12px;--text-sm: 13px;--text-md: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--text-3xl: 40px;--text-display: 64px;--text-hero: clamp(64px, 9vw, 128px);--font-display: "Shippori Mincho", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", Georgia, serif;--font-ui: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic UI", "Segoe UI", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--weight-normal: 400;--weight-semibold: 500;--weight-bold: 700;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 7px;--radius-xl: 9px;--radius-2xl: 11px;--radius-round: 50%;--radius-pill: 999px;--motion-fast: .16s;--motion-move: .26s;--ease-standard: ease-in-out;--shell-top: 10px;--rail-width: 78px;--rail-left: 66px;--chat-width: 248px;--z-panels: 10;--z-floating: 25;--z-overlay: 30;--z-dice: 40;--z-tooltip: 45;--z-tour: 60;--dice-kept: #e6b422;--dice-discarded: #6b6656;--dice-inspiration: #e6b422;--dice-tense: #d63a2c;--dice-hud-bg: rgba(26, 28, 40, .93);--dice-hud-border: #363c54;--dock-text: #f2ede0;--dock-text-muted: #c6bfae;--dock-text-dim: #a49c8b;--dock-border: #8f8878;--dock-surface: #272430;--dock-surface-raised: #332f3c;--dock-focus: #e6c25f;--dock-danger: #ea8072;--dock-danger-contrast: #1a0e0c;--dock-warning: #dc9a3a;--dock-warning-contrast: #1a1206;--dock-success: #6fae72;--dock-highlight: #e6b422;--dock-link: #e87a5c}html.ui-light{--color-bg-app: #ede8db;--color-bg-deep: #e2dccc;--color-bg-glow: #f5f1e6;--color-bg-void: #d8d2c2;--color-surface: rgba(250, 247, 240, .93);--color-surface-heavy: rgba(250, 247, 240, .97);--color-surface-solid: #faf7f0;--color-surface-inset: #f0ebe0;--color-surface-raised: #e6e0d2;--color-surface-raised-hover: #f0ebe0;--color-chip: #e4ddc9;--color-chip-alt: #eae4d4;--color-border: #c9c2ae;--color-border-subtle: #d8d2c0;--color-border-strong: #b0a890;--color-text: #262433;--color-text-soft: #3a3847;--color-text-muted: #5a5766;--color-text-dim: #625f6c;--color-text-faint: #635f6d;--color-accent: #a8351f;--color-accent-hover: #bc3f28;--color-accent-border: #c55c40;--color-accent-soft: rgba(168, 53, 31, .12);--color-link: #a8351f;--color-highlight: #795d12;--highlight-surface: rgba(230, 180, 34, .2);--highlight-border: #96771b;--color-success: #376c3c;--color-success-soft: rgba(55, 108, 60, .12);--color-danger: #ad3927;--color-danger-contrast: #fff4ec;--color-danger-soft: rgba(173, 57, 39, .1);--color-warning: #855717;--color-warning-border: #a37136;--color-warning-contrast: #fff4ec;--color-focus: #795d12;--color-scrim: rgba(40, 38, 50, .4);--color-scrim-light: rgba(40, 38, 50, .25);--color-scrim-heavy: rgba(40, 38, 50, .62);--shadow-kept: 0 0 8px rgba(121, 93, 18, .35);--shadow-inspiration: 0 0 14px rgba(121, 93, 18, .38);--shadow-tense: 0 0 16px rgba(173, 57, 39, .45);--shadow-spotlight: 0 0 12px rgba(121, 93, 18, .5);--shadow-card: 0 6px 18px rgba(38, 36, 51, .16);--shadow-ink-soft: rgba(38, 36, 51, .14);--shadow-ink: rgba(38, 36, 51, .2);--shadow-ink-strong: rgba(38, 36, 51, .3);--dice-hud-bg: rgba(250, 247, 240, .93);--dice-hud-border: #c9c2ae}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/shippori-mincho-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Shippori Mincho;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/shippori-mincho-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Kaku Gothic New;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/zen-kaku-gothic-new-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Kaku Gothic New;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/zen-kaku-gothic-new-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Zen Kaku Gothic New;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/zen-kaku-gothic-new-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}h1,h2,.landing-title,.landing-section-title,.landing-card-title,.camp-title,.camp-card h2,.story-curtain-name,.map-reveal-title,.join-card h1,.creation-header h1,.creation-heading,.cm-step-heading,.creation-section-title,.workspace-dock-heading,.tour-title,.details-title,.srd-detail-title,.binder-section-title{font-family:var(--font-display)}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{margin:0;height:100%;overflow:hidden;background:var(--color-bg-app);color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-md)}button{font:inherit;color:inherit;background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);cursor:pointer}button:hover{background:var(--color-surface-raised-hover)}input{font:inherit;color:inherit;background:var(--color-surface-inset);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.scene-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.scene-wrap canvas{display:block;touch-action:none}.scene-wrap canvas:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.join-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,var(--color-bg-glow),var(--color-bg-deep));z-index:var(--z-overlay)}.join-card{width:320px;padding:28px;background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-2xl);display:flex;flex-direction:column;gap:14px}.join-card h1{margin:0 0 var(--space-3);font-size:var(--text-xl);text-align:center}.join-card label{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-md);color:var(--color-text-muted)}.swatch-row{display:flex;gap:var(--space-4);justify-content:center}.swatch{width:26px;height:26px;border-radius:var(--radius-round);border:2px solid transparent;padding:0;box-shadow:0 0 0 1px var(--color-text-faint)}.swatch.selected{border-color:var(--color-text)}button.primary{background:var(--color-accent);border-color:var(--color-accent-border);color:var(--color-accent-contrast);font-weight:var(--weight-semibold)}button.primary:hover{background:var(--color-accent-hover)}.join-divider{text-align:center;color:var(--color-text-faint);font-size:var(--text-sm);border-top:1px solid var(--color-border-subtle);line-height:0}.join-divider span{background:var(--color-surface-solid);padding:0 var(--space-5)}.join-code-row{display:flex;gap:var(--space-4)}.join-code-row input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:2px}.join-error{margin:0;min-height:16px;color:var(--color-danger);font-size:var(--text-md);text-align:center}.rejoin-status{margin:0;text-align:center;color:var(--color-text-muted);font-size:var(--text-md)}.rejoin-code{margin:0;text-align:center;font-size:var(--text-xl);letter-spacing:4px;font-weight:var(--weight-semibold)}.rejoin-actions{display:flex;flex-direction:column;gap:var(--space-3)}.rejoin-actions[hidden]{display:none}.rail{position:fixed;top:0;bottom:0;left:0;width:var(--rail-width);display:flex;flex-direction:column;align-items:center;gap:var(--space-5);padding:var(--space-5) 0;background:linear-gradient(to right,#101019,#14161f 70%,#14161fd9);border-right:1px solid var(--color-border-subtle);box-shadow:2px 0 18px var(--shadow-ink);z-index:calc(var(--z-panels) + 1)}.rail:before{content:"";position:absolute;top:8px;bottom:8px;left:3px;width:2px;border-radius:2px;background:linear-gradient(to bottom,transparent,var(--color-accent) 12%,var(--color-accent) 82%,transparent);opacity:.55;pointer-events:none}.rail-groups{display:flex;flex-direction:column;gap:var(--space-4);flex:1}.rail-group{position:relative}.rail-group-btn{width:72px;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-2) 0;background:transparent;border:1px solid transparent;border-radius:var(--radius-lg);position:relative;transition:background var(--motion-fast),border-color var(--motion-fast)}.rail-group-icon{display:grid;place-items:center;width:22px;height:22px;font-size:var(--text-lg);line-height:1}.rail-group-label{font-size:var(--text-md);letter-spacing:.02em;line-height:1.1;text-align:center;color:var(--color-text-soft)}.rail-group-btn:hover .rail-group-label,.rail-group-btn.open .rail-group-label,.rail-group-btn.active .rail-group-label{color:var(--color-text)}.rail-group-btn{position:relative}.rail-group-btn.active{background:var(--highlight-surface);border-color:var(--highlight-border)}.rail-group-btn:hover{background:var(--color-surface-raised);border-color:var(--color-border)}.rail-group-btn.open{background:var(--color-surface-raised);border-color:var(--color-accent-border)}.rail-group-btn.lit:after{content:"";position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--color-highlight);box-shadow:0 0 6px var(--color-highlight)}.rail-flyout{position:absolute;left:calc(100% + 10px);top:0;width:224px;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--color-surface-solid);border:1px solid var(--color-border-strong);border-left:3px solid var(--color-accent);border-radius:var(--radius-lg);box-shadow:6px 10px 30px var(--shadow-ink);z-index:1;animation:rail-flyout-in var(--motion-fast) ease-out}@keyframes rail-flyout-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.rail-flyout-title{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-faint);padding:0 var(--space-3) var(--space-2);border-bottom:1px solid var(--color-border-subtle);margin-bottom:var(--space-2)}.rail-row{display:flex;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);text-align:left;font-size:var(--text-md);color:var(--color-text-soft)}.rail-row:hover{background:var(--color-surface-raised);border-color:var(--color-border)}.rail-row.active{background:var(--highlight-surface);border-color:var(--highlight-border);color:var(--color-text)}.rail-row:disabled{opacity:.45;cursor:not-allowed}.rail-row-icon{width:20px;text-align:center;flex-shrink:0}.rail-row-label{flex:1}.rail-shape-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.rail-fields{display:flex;flex-direction:column;gap:var(--space-3)}.rail-bottom{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.rail-save{font-size:var(--text-md);color:var(--color-success)}.rail-toasts{position:fixed;bottom:64px;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:var(--space-3);z-index:calc(var(--z-panels) - 1);pointer-events:none}.rail-toasts>*{pointer-events:auto}.rail-toasts.station-placement-active{z-index:calc(var(--z-panels) + 5)}.rail-armed-pill{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--color-surface-heavy);border:1px solid var(--color-accent-border);border-radius:var(--radius-2xl);box-shadow:0 6px 24px var(--shadow-ink)}.rail-armed-label{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap}.tool-btn.active{background:var(--color-accent);border-color:var(--color-accent-border)}.tool-btn:disabled{opacity:.45;cursor:not-allowed}.view-lock{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-highlight);background:linear-gradient(var(--highlight-surface),var(--highlight-surface)),var(--color-surface-solid);border:1px solid var(--highlight-border);border-radius:var(--radius-2xl);padding:var(--space-2) var(--space-5);white-space:nowrap}.preview-pill{display:flex;align-items:center;gap:var(--space-2);font:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-highlight);background:linear-gradient(var(--highlight-surface),var(--highlight-surface)),var(--color-surface-solid);border:1px solid var(--highlight-border);border-radius:var(--radius-2xl);padding:var(--space-2) var(--space-5);white-space:nowrap;cursor:pointer}.preview-pill:hover{color:var(--color-text);border-color:var(--color-border-strong)}.battlemap-2d{display:block;touch-action:none}.toolbar-field{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-md);color:var(--color-text-muted)}.toolbar-field input{width:64px}.preset-row{display:flex;gap:var(--space-2)}.preset-chip{padding:var(--space-2) var(--space-4);font-size:var(--text-md);border-radius:var(--radius-2xl)}.toolbar-hint{text-align:center;font-size:var(--text-sm);color:var(--color-highlight);background:var(--color-surface-heavy);border:1px solid var(--highlight-border);border-radius:var(--radius-2xl);padding:var(--space-2) var(--space-5);opacity:0;transition:opacity var(--motion-fast)}.toolbar-hint.visible{opacity:1}.chat-panel{position:absolute;right:10px;top:var(--shell-top);bottom:10px;width:var(--chat-width);display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;z-index:var(--z-panels)}.chat-roster{display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.roster-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-md);background:var(--color-chip-alt);border-radius:var(--radius-xl);padding:var(--space-1) var(--space-4)}.roster-chip.offline{opacity:.45}.roster-dot{width:9px;height:9px;border-radius:var(--radius-round);box-shadow:0 0 0 1px var(--color-text-faint)}.roster-transfer{border:none;background:none;cursor:pointer;padding:0 2px;margin-left:1px;font-size:var(--text-md);line-height:1;opacity:.55}.roster-transfer:hover{opacity:1}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.chat-row{font-size:var(--text-md);line-height:1.35;overflow-wrap:anywhere}.chat-row.system{color:var(--color-text-dim);font-style:italic;font-size:var(--text-md)}.chat-row.roll .chat-text{color:var(--color-highlight)}.chat-name{font-weight:var(--weight-semibold)}.chat-name-dot{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;vertical-align:baseline;box-shadow:0 0 0 1px var(--color-text-faint);flex:none}.chat-emote-text{font-style:italic;color:var(--color-text-soft)}.chat-input{margin:var(--space-4);border-radius:var(--radius-lg)}.builder-card{gap:var(--space-4)}.builder-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.builder-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text-muted)}.builder-toggle.active{background:var(--color-accent);border-color:var(--color-accent-border)}.builder-body{display:flex;flex-direction:column;gap:var(--space-5)}.builder-section{display:flex;flex-direction:column;gap:var(--space-3)}.builder-section-title{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-faint)}.builder-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.builder-row .tool-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-md)}.floor-swatch{width:26px;height:26px;border-radius:var(--radius-md);border:2px solid transparent;padding:0}.floor-swatch.active{border-color:var(--color-text)}.builder-help{font-size:var(--text-xs);color:var(--color-text-faint)}.builder-name{flex:1;min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--text-md)}.builder-dim{width:52px;padding:var(--space-2) var(--space-3);font-size:var(--text-md)}.builder-mini{padding:3px 7px;font-size:var(--text-md);border-radius:var(--radius-sm)}.builder-mini:disabled{opacity:.4;cursor:default}.builder-map-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:150px;overflow-y:auto}.builder-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--space-3);max-height:330px;overflow-y:auto;padding:2px}.shelf-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--color-border-subtle);border-radius:6px;background:var(--color-surface-inset);color:var(--color-text);overflow:visible}.shelf-card:hover{border-color:var(--color-border-strong)}.shelf-card:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.shelf-thumb{position:relative;aspect-ratio:3 / 2;display:grid;place-items:center;border-radius:5px 5px 0 0;overflow:hidden;background:var(--color-surface-raised);color:var(--color-text-dim)}.shelf-thumb-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;image-rendering:auto}.shelf-badges{position:absolute;top:4px;left:4px;right:4px;display:flex;flex-wrap:wrap;gap:4px;pointer-events:none}.shelf-badge{padding:1px 5px;border-radius:3px;background:var(--color-scrim);pointer-events:auto}.shelf-name-row{display:flex;align-items:baseline;gap:var(--space-2);min-width:0;padding:var(--space-2);font-size:var(--text-md)}.shelf-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--weight-semibold)}.shelf-sub{flex-shrink:0;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);color:var(--color-text-dim)}.shelf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:0 var(--space-2) var(--space-2);opacity:0;pointer-events:none;transition:opacity .12s ease-in-out}.shelf-card:hover .shelf-actions,.shelf-card:focus-within .shelf-actions{opacity:1;pointer-events:auto}.builder-mini.shelf-primary{border-color:var(--color-accent-border);color:var(--color-accent-contrast);background:var(--color-accent)}.builder-mini.shelf-primary:hover{background:var(--color-accent-hover)}.shelf-menu-wrap{position:relative;margin-left:auto}.shelf-menu{position:absolute;right:0;top:calc(100% + 2px);z-index:5;min-width:130px;display:flex;flex-direction:column;padding:4px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-surface-solid);box-shadow:0 6px 22px var(--shadow-ink-soft)}.shelf-menu-item{text-align:left;padding:5px 8px;border:none;border-radius:4px;background:none;color:var(--color-text);font-size:var(--text-md);cursor:pointer}.shelf-menu-item:hover,.shelf-menu-item:focus-visible{background:var(--color-surface-raised-hover)}.shelf-menu-item.danger{color:var(--color-danger)}.shelf-menu-item:disabled{color:var(--color-text-faint);cursor:default}.shelf-menu-item:disabled:hover{background:none}@media(prefers-reduced-motion:reduce){.shelf-actions{transition:none}}.builder-map-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md)}.builder-map-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.builder-badge{color:var(--color-success);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.5px}.gen-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--color-scrim);z-index:var(--z-overlay)}.gen-card{width:420px;max-width:94vw;max-height:92vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6);background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-2xl)}.gen-header{display:flex;align-items:center;justify-content:space-between}.gen-params{display:flex;flex-direction:column;gap:var(--space-3)}.icon-picker-card{width:560px}.icon-picker-tabs{display:flex;gap:var(--space-2);flex-wrap:wrap}.icon-picker-tab{padding:var(--space-2) var(--space-4);font-size:var(--text-md);border-radius:var(--radius-sm);background:var(--color-surface-inset);border:1px solid var(--color-border);color:var(--color-text-muted)}.icon-picker-tab.active{background:var(--color-accent);border-color:var(--color-accent-border);color:var(--color-accent-contrast)}.icon-picker-filter{width:100%}.icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:var(--space-3);max-height:46vh;overflow-y:auto;padding:var(--space-1)}.icon-cell{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-md)}.icon-cell:hover{border-color:var(--color-accent-border);background:var(--color-surface-inset)}.icon-cell img{width:56px;height:56px;border-radius:50%;object-fit:cover;background:var(--color-surface-inset)}.icon-cell-label{font-size:var(--text-md);color:var(--color-text-muted);text-align:center;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.icon-picker-empty{grid-column:1 / -1;text-align:center;padding:var(--space-6)}.icon-picker-footer{flex-wrap:wrap;gap:var(--space-3)}.gen-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);font-size:var(--text-md);color:var(--color-text-muted)}.gen-controls{display:flex;align-items:center;gap:var(--space-3)}.gen-seed{width:140px;padding:var(--space-2) var(--space-3);font-size:var(--text-md);font-family:var(--font-mono)}.gen-preview{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.gen-canvas{border:1px solid var(--color-border);border-radius:var(--radius-md);image-rendering:pixelated}.gen-status{font-size:var(--text-md);color:var(--color-text-faint);font-family:var(--font-mono)}.gen-actions{justify-content:flex-end}.srd-card{width:680px;height:min(560px,92vh)}.srd-search{flex:1;min-width:120px;padding:5px var(--space-4);font-size:var(--text-md)}.srd-select{font:inherit;font-size:var(--text-md);color:inherit;background:var(--color-surface-inset);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.srd-main{flex:1;min-height:0;display:flex;gap:var(--space-5)}.srd-list{width:220px;flex-shrink:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-1)}.srd-row{display:flex;align-items:center;gap:var(--space-3);text-align:left;padding:var(--space-2) var(--space-4);font-size:var(--text-md);background:transparent;border:none;border-radius:var(--radius-md)}.srd-row.active{background:var(--color-chip)}.srd-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srd-chip{font-size:var(--text-md);color:var(--color-text-dim);background:var(--color-chip-alt);border-radius:var(--radius-lg);padding:1px var(--space-3);flex-shrink:0}.srd-detail{flex:1;min-width:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4);padding-right:var(--space-2)}.srd-detail-title{font-size:var(--text-base);font-weight:var(--weight-bold)}.srd-row-art,.srd-detail-art{display:block;flex-shrink:0;overflow:hidden;background:var(--color-chip-alt);border:1px solid var(--color-border-subtle)}.srd-row-art{width:26px;height:26px;border-radius:var(--radius-md)}.srd-detail-art{align-self:flex-start;width:128px;height:128px;border-radius:var(--radius-lg)}.srd-row-art img,.srd-detail-art img{width:100%;height:100%;object-fit:cover;display:block}.srd-facts{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-5);font-size:var(--text-md)}.srd-fact-label{color:var(--color-text-dim);white-space:nowrap}.srd-action{align-self:flex-start}.srd-para{margin:0;font-size:var(--text-md);line-height:1.45;color:var(--color-text-soft)}.srd-notice{font-size:var(--text-md);color:var(--color-text-dim);padding:var(--space-3)}.srd-form{display:flex;flex-direction:column;gap:var(--space-3);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-4)}.srd-hb-name{flex:1;min-width:80px;padding:var(--space-2) var(--space-3);font-size:var(--text-md)}.hb-proficient{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-md);color:var(--color-text-muted);white-space:nowrap;cursor:pointer}.hb-preview{font-size:var(--text-md);color:var(--color-text-faint);font-variant-numeric:tabular-nums}.hb-spell-fold{margin-top:var(--space-2)}.hb-spell-fold>summary{cursor:pointer;-webkit-user-select:none;user-select:none}.hb-spell-fold .builder-row{margin-top:var(--space-2)}.hb-import-hint{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-faint)}.hb-spell-resolution,.hb-spell-res-opt{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--color-text-muted)}.hb-spell-conditions{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin:var(--space-2) 0}.hb-spell-cond-opt{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-md);color:var(--color-text-muted);white-space:nowrap;cursor:pointer}.hb-spell-desc{display:block;width:100%;margin-top:var(--space-2);resize:vertical}.srd-credits{font-size:var(--text-xs);color:var(--color-text-faint);text-align:center;margin:0}.char-name{flex:1;min-width:0;font-weight:var(--weight-bold);padding:5px var(--space-4)}.char-mode{padding:3px var(--space-4);font-size:var(--text-md)}.char-score{width:52px;text-align:center;padding:3px;font-size:var(--text-md)}.char-save{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--color-text-dim)}.char-skills{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1) var(--space-5)}.char-skill{display:flex;align-items:center;gap:var(--space-3)}.atk-name{flex:2}.atk-hit{width:54px}.atk-dice,.atk-type{flex:1}.floating-window{position:fixed;z-index:var(--z-floating);display:flex;flex-direction:column}.floating-card{background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:0 10px 40px var(--shadow-ink);overflow:hidden}.floating-window .gen-header{cursor:grab;flex:0 0 auto}.floating-window .gen-header:active{cursor:grabbing}.fw-anchor-top-right{top:var(--shell-top);right:12px}.fw-anchor-top-left{top:var(--shell-top);left:var(--rail-left)}.fw-anchor-center{top:50%;left:50%;transform:translate(-50%,-50%)}.floating-window.fw-focused>.gen-card,.floating-window.fw-focused.floating-card{outline:2px solid var(--color-accent-border);outline-offset:-1px}.floating-window.fw-unfocused{opacity:.86}@keyframes fw-pulse-kf{0%{box-shadow:0 0 0 3px var(--color-accent-border),0 10px 40px var(--shadow-ink)}to{box-shadow:0 0 0 0 transparent,0 10px 40px var(--shadow-ink)}}.floating-window.fw-pulse>.gen-card,.floating-window.fw-pulse.floating-card{animation:fw-pulse-kf .6s ease-out}@media(min-width:900px){.rail-toasts.station-placement-active{left:calc(var(--rail-left) + 300px)}}@media(prefers-reduced-motion:reduce){.floating-window.fw-pulse>.gen-card,.floating-window.fw-pulse.floating-card{animation:none}}.char-window{width:780px;max-width:96vw;height:min(640px,92vh);padding:var(--space-6);gap:var(--space-4)}.char-window .srd-main{flex:1;min-height:0}.floating-window.minimized{width:58px!important;height:58px!important;min-height:0!important;padding:0!important;overflow:visible}.floating-window.minimized>*:not(.floating-puck){display:none!important}.floating-puck{display:none}.floating-window.minimized .floating-puck{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;font-size:var(--text-base);font-weight:var(--weight-bold);cursor:grab;color:var(--color-accent-contrast);background:var(--color-accent);border:2px solid var(--color-border);box-shadow:0 6px 20px var(--shadow-ink)}.atk-dice-grid{display:flex;align-items:center;gap:3px}.atk-dice-grid .atk-qty{width:40px;text-align:center}.atk-dice-grid .atk-flat{width:46px;text-align:center}.atk-dice-grid .atk-die{padding:3px var(--space-2)}.atk-dice-x{color:var(--color-text-faint);font-size:var(--text-xs)}.atk-hit-btn,.atk-dmg-btn{white-space:nowrap}@keyframes attack-focus-flash-kf{0%{background:color-mix(in srgb,var(--color-accent, #c9a227) 42%,transparent)}to{background:transparent}}.inv-qty-cell{display:flex;align-items:center;gap:2px;flex:0 0 auto}.inv-qty{width:46px;padding:3px 4px;text-align:center}.inv-wt{width:56px;padding:3px 4px}.inv-notes{flex:2;min-width:40px;padding:3px 5px}.inv-src{flex:0 0 auto}.cm-window{gap:var(--space-3)}.cm-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4)}.cm-footer{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle)}.cm-spacer{flex:1}.cm-crumbs{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-md)}.cm-crumb{padding:2px var(--space-3);border-radius:999px;background:var(--color-surface-inset);color:var(--color-text-faint)}.cm-crumb.active{background:var(--color-accent);color:var(--color-accent-contrast)}.cm-crumb.done{color:var(--color-text-dim)}.cm-step{display:flex;flex-direction:column;gap:var(--space-4)}.cm-row{align-items:center;gap:var(--space-3)}.cm-row-label{min-width:90px;color:var(--color-text-dim);font-size:var(--text-md)}.cm-info{font-size:var(--text-md);color:var(--color-text-dim);display:flex;flex-direction:column;gap:2px}.cm-seed-note{border-left:3px solid var(--color-highlight);padding:var(--space-2) var(--space-3);background:var(--color-bg-deep);border-radius:var(--radius-md);color:var(--color-text)}.cm-line{display:flex;gap:var(--space-3)}.cm-line-label{min-width:130px;flex-shrink:0;color:var(--color-text-faint)}.cm-ability-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-2)}.cm-ability{display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-2)}.cm-ability-name{font-size:var(--text-md);font-weight:var(--weight-bold)}.cm-ability .char-score,.cm-ability .srd-select{width:56px;text-align:center}.cm-ability-total{font-size:var(--text-md);color:var(--color-text-faint)}.cm-spell-list{display:grid;grid-template-columns:1fr 1fr;gap:2px var(--space-4);max-height:280px;overflow-y:auto;padding-right:var(--space-2)}.cm-spell{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md)}.cm-archetype{display:flex;flex-direction:column;gap:var(--space-2)}.cm-archetype-feature{align-items:center;gap:var(--space-2)}.cm-archetype-feature .char-name{flex:1;min-width:0}.cm-archetype-desc{font:inherit;font-size:var(--text-md);color:inherit;background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-2);resize:vertical;width:100%}.char-text{font:inherit;font-size:var(--text-md);color:inherit;background:var(--color-surface-inset);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);min-height:56px;resize:vertical}.status-popup{position:absolute;bottom:44px;left:50%;transform:translate(-50%);width:320px;display:flex;flex-direction:column;gap:var(--space-3);background:var(--color-surface-heavy);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5)}.status-conditions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1) var(--space-5)}.status-condition{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-md);text-transform:capitalize}.handout-image{max-width:100%;max-height:300px;object-fit:contain;cursor:zoom-in;border-radius:var(--radius-lg);border:1px solid var(--color-border)}.handout-link{font-size:var(--text-md);color:var(--color-link)}.handout-text{white-space:pre-wrap}.handout-detail-header{display:flex;align-items:center;gap:var(--space-2)}.handout-detail-header .srd-detail-title{flex:1}.handout-pin-bar{width:100%;border:0;border-bottom:1px solid var(--color-border);padding:var(--space-2) var(--space-4);color:var(--color-link);background:var(--color-surface-raised);text-align:left}.srd-row.pinned:after{content:"pin";color:var(--color-link);font-size:var(--text-xs)}.handout-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:grid;place-items:center;padding:3rem 1rem 1rem;background:var(--color-scrim-heavy);overflow:auto}.handout-lightbox img{max-width:none;max-height:none;min-width:min(90vw,720px);object-fit:contain}.handout-lightbox-close{position:fixed;top:1rem;right:1rem}.jukebox-playback{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border)}.jukebox-playback strong{flex:1 1 12rem}.jukebox-playback input[type=range]{min-width:8rem}.hp-chip{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);z-index:var(--z-panels);font-size:var(--text-md)}.hp-chip-name{font-weight:var(--weight-bold)}.hp-chip input{width:58px;padding:3px 5px;font-size:var(--text-md);text-align:center}.hp-chip input.hp-chip-amount{width:44px}@media(max-width:900px){.hp-chip{flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 12px)}}.hp-chip-max{color:var(--color-text-dim)}.templates-panel{position:absolute;left:var(--rail-left);bottom:10px;width:250px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-4);z-index:var(--z-panels)}.templates-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text-muted);margin-bottom:var(--space-3)}.templates-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:180px;overflow-y:auto}.templates-row{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-md)}.templates-swatch{width:10px;height:10px;border-radius:var(--radius-sm);flex-shrink:0}.templates-label{flex:1}.templates-delete{padding:0 7px;line-height:18px;border-radius:var(--radius-round)}.dice-tray{position:fixed;left:50%;transform:translate(-50%);bottom:24px;width:560px;max-width:92vw;height:300px;z-index:var(--z-dice);pointer-events:none}.dice-tray canvas{width:100%;height:100%;display:block}.roll-hud{position:fixed;left:50%;transform:translate(-50%);bottom:324px;z-index:calc(var(--z-dice) + 1);pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-4) 14px;background:var(--dice-hud-bg);border:1px solid var(--dice-hud-border);border-radius:var(--radius-xl);max-width:92vw}.roll-hud.tense{border-color:var(--dice-tense);animation:roll-hud-pulse 1.1s var(--ease-standard) infinite}.roll-hud.inspiration{border-color:var(--dice-inspiration);box-shadow:var(--shadow-inspiration)}@keyframes roll-hud-pulse{50%{box-shadow:var(--shadow-tense)}}.roll-hud-label{font-size:var(--text-md);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80vw}.roll-hud-dice{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;max-width:520px}.roll-die-chip{display:flex;flex-direction:column;align-items:center;min-width:34px;padding:var(--space-1) var(--space-3);background:var(--color-chip);border:1px solid var(--color-border-strong);border-radius:var(--radius-md)}.roll-die-chip.rolling .roll-die-face{animation:roll-chip-shimmer .7s var(--ease-standard) infinite}@keyframes roll-chip-shimmer{50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.roll-die-chip.rolling .roll-die-face,.roll-hud.tense{animation:none}}.roll-die-kind{font-size:var(--text-xs);color:var(--color-text-faint)}.roll-die-face{font-size:var(--text-base);font-weight:var(--weight-bold)}.roll-die-chip.kept{border-color:var(--dice-kept);box-shadow:var(--shadow-kept)}.roll-die-chip.discarded{opacity:.55}.roll-die-chip.discarded .roll-die-face{text-decoration:line-through;color:var(--dice-discarded)}.roll-die-chip.crit{border-color:var(--dice-inspiration)}.roll-die-chip.crit .roll-die-face{color:var(--dice-inspiration)}.roll-die-chip.fumble .roll-die-face{color:var(--color-danger)}.roll-die-chip.modifier{background:transparent}.roll-hud-total{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-highlight)}.roll-hud-hint{font-size:var(--text-xs);color:var(--color-text-faint);pointer-events:auto;background:none;border:none;border-bottom:1px dotted var(--color-text-faint);padding:0;cursor:pointer;font-family:inherit}.roll-hud-hint:hover,.roll-hud-hint:focus-visible{color:var(--color-text);border-bottom-color:var(--color-text)}.casting-panel{position:fixed;right:calc(var(--chat-width) + 20px);bottom:10px;width:268px;max-height:46vh;overflow-y:auto;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);z-index:calc(var(--z-panels) + 4);display:flex;flex-direction:column;gap:var(--space-4)}.casting-aiming,.casting-row{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-solid);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg)}.casting-row.history{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4)}.casting-spell-name{font-weight:var(--weight-semibold);font-size:var(--text-md)}.casting-row-head{font-size:var(--text-md);font-weight:var(--weight-semibold)}.casting-row-detail{font-size:var(--text-md);color:var(--color-text-muted)}.casting-effects{color:var(--color-text-dim)}.casting-caster-stats{font-size:var(--text-md);color:var(--color-text-muted)}.casting-caster-stats:empty{display:none}.casting-conc-warning{color:var(--color-warning);font-weight:var(--weight-semibold)}.casting-conc-warning:empty{display:none}.builder-mini.casting-confirm-warn{background:var(--color-warning);border-color:var(--color-warning);color:var(--color-warning-contrast)}.casting-target-list{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.casting-target-hint{font-size:var(--text-xs);color:var(--color-text-dim)}.casting-target-ticks{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-1)}.casting-attack-row{display:flex;align-items:center;gap:var(--space-1);margin-top:var(--space-1)}.casting-attack-row .srd-select{flex:1;min-width:0}.casting-undo-stale{font-size:var(--text-md);color:var(--color-text-dim);font-style:italic}.casting-target-opt{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-md);cursor:pointer}.casting-target-down{color:var(--color-danger);font-weight:var(--weight-semibold)}.casting-target-outcome{color:var(--color-success);font-size:var(--text-md);font-weight:var(--weight-semibold)}.log-list{display:flex;flex-direction:column;gap:var(--space-3)}.log-row{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4)}.log-row .casting-row-detail{flex:1 1 auto;color:var(--color-text)}.log-meta{font-size:var(--text-xs);color:var(--color-text-dim);white-space:nowrap}.log-row.log-reverted{opacity:.55}.log-row.log-reverted .casting-row-detail{text-decoration:line-through}.casting-dice{width:64px;padding:3px var(--space-3);font-size:var(--text-md)}.casting-conc{display:flex;align-items:center;gap:3px;font-size:var(--text-md)}.casting-note{font-size:var(--text-md);color:var(--color-highlight);align-self:center}.casting-approval{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-md);color:var(--color-text-muted)}.status-effect-btn{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-md);padding:3px var(--space-3);text-align:left;border-radius:var(--radius-sm)}.status-glyph{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.5em;height:1.55em;border-radius:var(--radius-sm);border:1px solid currentColor;background:var(--dock-surface);color:var(--dock-text);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1}.status-effect-btn.active{background:var(--color-accent);border-color:var(--color-accent-border)}.status-rounds{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}.status-rounds input{width:52px;padding:var(--space-1) var(--space-2)}.token-tooltip{position:fixed;z-index:var(--z-tooltip);pointer-events:none;min-width:150px;max-width:230px;padding:7px 9px;background:var(--color-surface-heavy);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-md);display:flex;flex-direction:column;gap:3px}.token-tooltip-title{font-weight:var(--weight-semibold);margin-bottom:var(--space-1)}.token-tooltip-row{display:flex;justify-content:space-between;gap:var(--space-5)}.token-tooltip-meta{color:var(--color-text-dim)}.practice-drawer{position:fixed;left:calc(var(--rail-left) + 60px);top:var(--shell-top);width:min(320px,calc(100vw - 2 * var(--space-5)));max-height:min(70dvh,640px);overflow-y:auto;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 14px 40px var(--shadow-ink-soft);z-index:calc(var(--z-panels) + 2);display:flex;flex-direction:column;gap:7px}.practice-suggestion{margin:0;font-size:var(--text-md);color:var(--color-text);padding:var(--space-3) var(--space-4);background:var(--highlight-surface);border:1px solid var(--highlight-border);border-radius:var(--radius-lg)}.practice-list{display:flex;flex-direction:column;gap:var(--space-2)}.practice-row{display:flex;align-items:baseline;gap:var(--space-3);font-size:var(--text-md)}.practice-row>span:last-child{display:flex;flex-direction:column;min-width:0}.practice-row small{color:var(--color-text-dim);font-size:var(--text-xs)}.practice-row.done{opacity:.55}.practice-row.done strong{text-decoration:line-through}.practice-mark{color:var(--color-text-dim);width:1em;flex-shrink:0}.practice-row.done .practice-mark{color:var(--color-success)}.practice-controls{flex-wrap:wrap}.sandbox-reset{align-self:flex-start;border-color:var(--color-warning-border)}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-tour);background:var(--color-scrim-light)}.tour-spotlight{position:fixed;border:2px solid var(--color-highlight);border-radius:var(--radius-xl);box-shadow:var(--shadow-spotlight);pointer-events:none}.tour-card{position:fixed;width:330px;max-width:92vw;padding:var(--space-5) 14px;background:var(--color-surface-solid);border:1px solid var(--color-accent-border);border-radius:var(--radius-2xl);display:flex;flex-direction:column;gap:var(--space-4)}.tour-title{font-weight:var(--weight-bold);font-size:var(--text-base)}.tour-body{font-size:var(--text-md);color:var(--color-text-soft);line-height:1.45}.tour-buttons{justify-content:space-between;align-items:center}.tour-progress{font-size:var(--text-md);color:var(--color-text-faint)}.help-card{width:640px;max-width:94vw;max-height:84vh;overflow-y:auto}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5) 18px;padding:var(--space-5) 14px 14px}.help-section{display:flex;flex-direction:column;gap:var(--space-2)}.help-row{display:flex;justify-content:space-between;gap:var(--space-5);font-size:var(--text-md)}.help-keys{color:var(--color-text-muted);text-align:right}#join-sandbox{width:100%;margin-top:var(--space-3)}.theme-card-panel{width:440px;max-width:94vw}.theme-list{display:flex;flex-direction:column;gap:var(--space-4)}.theme-choice{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);text-align:left;padding:var(--space-5);background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg)}.theme-choice:hover{background:var(--color-surface-raised)}.theme-choice.selected{border-color:var(--color-accent-border);background:var(--color-chip)}.theme-choice.committed .theme-choice-name:after{content:" · active";color:var(--color-success);font-weight:var(--weight-normal);font-size:var(--text-sm)}.theme-swatches{display:flex;gap:var(--space-2)}.theme-swatch{width:22px;height:22px;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong)}.theme-choice-name{font-weight:var(--weight-bold);font-size:var(--text-base)}.theme-choice-desc{font-size:var(--text-md);color:var(--color-text-muted)}.theme-hint{font-size:var(--text-sm);color:var(--color-text-dim)}.assetlib-card{width:560px}.assetlib-theme{font-size:var(--text-md);color:var(--color-text-muted);display:flex;align-items:center;gap:var(--space-2)}.assetlib-filters{flex-wrap:wrap}.assetlib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:var(--space-3);max-height:40vh;overflow-y:auto}.assetlib-item{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);cursor:pointer;text-align:left}.assetlib-item:hover{border-color:var(--color-border)}.assetlib-item.active{border-color:var(--color-accent)}.assetlib-item img{width:100%;aspect-ratio:1;object-fit:contain;background:var(--color-surface-solid);border-radius:var(--radius-md)}.assetlib-name{font-size:var(--text-md);font-weight:var(--weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assetlib-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.assetlib-detail,.assetlib-assignments{display:flex;flex-direction:column;gap:var(--space-3)}.assetlib-assign-row{flex-wrap:wrap}.assetlib-card .builder-mini.active{border-color:var(--color-accent);color:var(--color-link)}.conn-banner{position:fixed;top:0;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-5);padding:var(--space-3) var(--space-6);border-radius:0 0 var(--radius-lg) var(--radius-lg);font-size:var(--text-md);font-weight:var(--weight-semibold);z-index:var(--z-tour);border:1px solid var(--color-border-strong);border-top:none;background:var(--color-surface-heavy)}.conn-banner.reconnecting{color:var(--color-warning);border-color:var(--color-warning-border)}.conn-banner.ok{color:var(--color-success)}.conn-banner.lost{color:var(--color-danger)}.conn-rejoin{padding:var(--space-1) var(--space-4);font-size:var(--text-md)}.import-notes{position:fixed;top:var(--space-6);left:50%;transform:translate(-50%);z-index:var(--z-tour);max-width:min(480px,90vw);padding:var(--space-3) var(--space-5);border:1px solid var(--color-warning-border);border-radius:var(--radius-lg);background:var(--color-surface-heavy);color:var(--color-text);font-size:var(--text-md);box-shadow:var(--shadow-card)}.import-notes-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.import-notes-title{font-weight:var(--weight-semibold);color:var(--color-warning)}.import-notes ul{margin:var(--space-2) 0 0;padding-left:1.2em}.staging-banner{position:fixed;top:0;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);border-radius:0 0 var(--radius-lg) var(--radius-lg);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-highlight);background:var(--highlight-surface);border:1px solid var(--highlight-border);border-top:none;z-index:var(--z-overlay)}.builder-badge.staging{color:var(--color-highlight)}.scene-toast{position:fixed;top:calc(var(--shell-top) + 8px);left:50%;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);text-align:center;color:var(--color-accent-contrast);background:var(--color-accent);border:1px solid var(--color-accent-border);box-shadow:0 10px 40px var(--shadow-ink);z-index:var(--z-tooltip);opacity:0;transform:translate(-50%,-12px);transition:opacity var(--motion-fast),transform var(--motion-fast);pointer-events:none}.scene-toast.show{opacity:1;transform:translate(-50%)}.scene-toast-title{font-size:var(--text-md);font-weight:var(--weight-semibold)}.scene-toast-note{font-size:var(--text-md);opacity:.92}@media(prefers-reduced-motion:reduce){.scene-toast{transition:opacity var(--motion-fast);transform:translate(-50%)}}.menu-card{width:380px;max-height:92vh;overflow-y:auto}.menu-room{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);font-size:var(--text-md)}.menu-room-meta{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted)}.menu-room-date{color:var(--color-text-faint);font-size:var(--text-xs)}@keyframes char-downed-pulse{0%,to{opacity:1}50%{opacity:.55}}.wiz-card{width:520px}.wiz-tabs{display:flex;gap:var(--space-2)}.wiz-abilities{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.wiz-ability{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-md);background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3)}.wiz-ability input{width:58px}.wiz-mod{margin-left:auto;font-family:var(--font-mono);color:var(--color-text-muted)}.wiz-note{font-size:var(--text-xs);color:var(--color-text-faint)}.wiz-footer{display:flex;justify-content:flex-end;gap:var(--space-3)}.wiz-footer .wiz-cancel{margin-right:auto}.sheet-picker{position:fixed;z-index:var(--z-tooltip);display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1);max-height:240px;overflow-y:auto;padding:var(--space-2);background:var(--color-surface-heavy);border:1px solid var(--color-border);border-radius:var(--radius-md)}.hb-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-1)}.hb-row{cursor:grab}.macro-bar{display:flex;gap:var(--space-2);padding:var(--space-1) var(--space-3);overflow-x:auto;scrollbar-width:thin}.jb-row.active{background:var(--color-chip);border-radius:var(--radius-md)}.hp-chip .builder-mini.active{border-color:var(--color-accent);color:var(--color-link)}.chat-row.whisper{background:var(--color-chip-alt);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3)}.chat-whisper-to{color:var(--color-text-dim);font-size:var(--text-md)}.chat-row.emote{font-style:italic}.chat-as-chip{margin-left:var(--space-1)}.chat-as-row{display:flex;align-items:center;gap:var(--space-3);margin:0 var(--space-4);font-size:var(--text-md);color:var(--color-text-muted)}.chat-as-row .srd-select{flex:1;min-width:0}.save-chip{font-size:var(--text-md);color:var(--color-success);opacity:0;transition:opacity .4s}.save-chip.visible{opacity:1}.creation-page{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-overlay) + 5);overflow-y:auto;overflow-x:hidden;background:radial-gradient(circle at 50% 20%,var(--color-bg-glow),var(--color-bg-deep))}.creation-shell{max-width:1060px;margin:0 auto;padding:28px 20px 60px;display:flex;flex-direction:column;gap:var(--space-6)}.creation-header{display:flex;align-items:baseline;gap:var(--space-4)}.creation-header h1{margin:0;font-size:var(--text-xl)}.creation-sub{color:var(--color-text-muted);font-size:var(--text-md)}.creation-header .creation-close{margin-left:auto}.creation-heading{margin:0;font-size:var(--text-xl);outline-offset:4px}.creation-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);align-items:stretch}.creation-choice-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.creation-choice-body{display:flex;flex-direction:column;gap:var(--space-3);flex:1}.creation-choice-title{margin:0;font-size:var(--text-base)}.creation-choice-text{margin:0;color:var(--color-text-muted);font-size:var(--text-md);flex:1}.creation-choice-cta{min-height:44px;align-self:flex-start;padding-inline:var(--space-5)}.creation-back-row{display:flex}.creation-secondary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.creation-import{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}@media(max-height:760px){.creation-choice-card .creator-art{display:none}.creation-shell{gap:var(--space-4);padding-top:16px}}@media(max-width:700px){.creation-choice-grid{grid-template-columns:1fr}.creation-choice-card{flex-direction:row;align-items:center}.creation-choice-card .creator-art{display:none}.creation-page button{min-height:44px}}.creation-section-title{font-size:var(--text-base);font-weight:var(--weight-semibold);display:flex;align-items:center;gap:var(--space-3)}.creation-section-title .creation-hintline{font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--color-text-faint)}.creation-sheets{display:flex;flex-wrap:wrap;gap:var(--space-3)}.kit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.kit-card{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;text-align:left;transition:border-color .15s,transform .15s}.kit-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.kit-card.selected{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.kit-card .kit-role{position:absolute;top:var(--space-3);right:var(--space-3);font-size:var(--text-xs);padding:1px 8px;border-radius:var(--radius-pill);background:var(--color-bg-deep);border:1px solid var(--color-border);color:var(--color-text-muted)}.kit-title{font-weight:var(--weight-semibold)}.kit-tagline{font-size:var(--text-xs);color:var(--color-text-muted);min-height:2.4em}.creator-art{aspect-ratio:3 / 4;width:100%;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-bg-deep);border:1px dashed var(--color-border);display:grid;place-items:center;position:relative}.creator-art img{width:100%;height:100%;object-fit:cover;display:block}.creator-art.square{aspect-ratio:1 / 1}.creator-art-fallback{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--color-text-faint);font-size:var(--text-xs);padding:var(--space-2);text-align:center}.creator-art-fallback .art-emoji{font-size:var(--text-3xl)}.creator-art-fallback code{font-size:var(--text-xs);opacity:.7;word-break:break-all}.kit-detail{display:grid;grid-template-columns:240px 1fr;gap:var(--space-5);padding:var(--space-5);background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-xl)}@media(max-width:700px){.kit-detail{grid-template-columns:1fr}}.kit-detail-body{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.kit-detail-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.kit-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3);font-size:var(--text-md)}.kit-preview-cell{background:var(--color-bg-deep);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);display:flex;flex-direction:column;gap:2px}.kit-preview-cell .cell-label{font-size:var(--text-xs);color:var(--color-text-faint)}.kit-substitutions{display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-bg-deep);border:1px solid var(--color-border);border-left:3px solid var(--color-highlight);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-size:var(--text-md)}.kit-substitution-row{display:grid;grid-template-columns:108px 1fr;gap:var(--space-3);align-items:baseline}.kit-substitution-row .cell-label{font-size:var(--text-xs);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em}@media(max-width:640px){.kit-substitution-row{grid-template-columns:1fr;gap:0}}@media(max-width:640px){.cm-ability-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cm-ability{min-width:0}.cm-ability .char-score,.cm-ability .srd-select{width:min(56px,100%)}}@media(max-width:360px){.creation-shell{padding-inline:12px}.kit-grid{grid-template-columns:1fr;gap:var(--space-2)}.kit-card{min-height:72px;display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:2px var(--space-3);padding:var(--space-3)}.kit-card .creator-art{grid-row:1 / 3;width:52px;aspect-ratio:1}.kit-card .kit-role{top:6px;right:8px}.kit-card .kit-title,.kit-card .kit-tagline{grid-column:2;padding-right:52px}.kit-card .kit-tagline{min-height:0}.kit-detail{padding:var(--space-3);gap:var(--space-3)}.kit-detail>.creator-art{display:none}.kit-detail-body,.kit-detail-body>*,.kit-preview-cell{min-width:0}.kit-detail-body{overflow-wrap:anywhere}.kit-detail .creation-section-title,.kit-detail .creation-level-row{flex-wrap:wrap}.kit-detail .char-name{flex:1 1 130px;width:100%;min-width:0}.kit-preview-grid{grid-template-columns:1fr 1fr}.cm-ability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.char-window{padding:var(--space-3)}}.creation-level-row{display:flex;align-items:center;gap:var(--space-3)}.creation-custom{background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.creation-custom .cm-body{max-height:none}.rec-badge{display:inline-block;align-self:flex-start;font-size:var(--text-xs);padding:0 7px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-accent) 18%,transparent);border:1px solid var(--color-accent);color:var(--color-text);cursor:help}.glossary-term{position:relative;border-bottom:1px dotted var(--color-text-faint);cursor:help}.glossary-dot{border-bottom:none;color:var(--color-text-faint);font-size:var(--text-xs);margin-left:4px}.glossary-term:after{content:none}.glossary-popover{position:fixed;width:max-content;max-width:min(280px,calc(100vw - 24px));padding:var(--space-3) var(--space-4);background:var(--color-bg-deep);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-normal);line-height:1.45;text-align:left;white-space:normal;pointer-events:none;box-shadow:0 10px 30px var(--shadow-ink-soft);z-index:calc(var(--z-tour) + 2)}.glossary-popover[hidden]{display:none}.glossary-term.tt-open{color:var(--color-text);border-bottom-color:var(--color-highlight)}.cm-embedded{display:flex;flex-direction:column;gap:var(--space-4)}.cm-embedded .cm-body{max-height:none;overflow:visible}.creator-art.cm-art{width:132px;align-self:flex-start}.landing{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);overflow-y:auto;overflow-x:hidden;background:var(--color-bg-void);scroll-behavior:smooth}.landing:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}.landing-hero{position:relative;min-height:86vh;display:grid;place-items:center;overflow:hidden}.landing-hero-art{position:absolute;top:0;right:0;bottom:0;left:0}.landing-hero-art picture,.landing-hero-art img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.landing-hero-art img{animation:landing-drift 36s ease-in-out infinite alternate}.landing-hero-art.missing{background:radial-gradient(ellipse 70% 45% at 24% 18%,rgba(74,91,140,.35),transparent 65%),radial-gradient(ellipse 55% 40% at 78% 30%,rgba(188,63,40,.16),transparent 60%),radial-gradient(ellipse 85% 60% at 55% 85%,rgba(31,34,48,.9),transparent 75%),radial-gradient(ellipse 45% 35% at 60% 55%,rgba(230,180,34,.07),transparent 60%),var(--color-bg-art)}.landing-hero-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 58% 42% at 50% 50%,rgba(9,10,16,.5),transparent 75%),linear-gradient(to bottom,rgba(9,10,16,.3),transparent 28%,transparent 50%,color-mix(in srgb,var(--color-bg-deep) 22%,transparent) 68%,color-mix(in srgb,var(--color-bg-deep) 60%,transparent) 84%,var(--color-bg-deep) 100%)}.landing-hero-inner{position:relative;text-align:center;padding:24px;max-width:760px;animation:landing-ink-reveal 1.4s ease-out both}.landing-title{margin:0 -.08em 10px 0;font-size:var(--text-hero);line-height:1;letter-spacing:.08em;font-weight:var(--weight-bold);color:#f0ece0;text-shadow:0 2px 24px var(--shadow-ink-art),0 0 60px rgba(188,63,40,.25)}.landing-tagline{margin:0 auto;max-width:min(560px,90vw);font-family:var(--font-ui);font-size:clamp(var(--text-lg),2vw,var(--text-xl));line-height:1.5;color:#f0ece0;text-shadow:0 1px 10px var(--shadow-ink-art)}.landing-reassure{margin:14px 0 0;font-family:var(--font-ui);font-size:var(--text-md);letter-spacing:.04em;color:#f0ece0;text-shadow:0 1px 8px var(--shadow-ink-art)}.landing-cta{margin-top:26px;min-height:48px;padding:12px 34px;font-size:var(--text-base);font-family:var(--font-ui);background:var(--color-accent);border:1px solid var(--color-accent-border);border-radius:var(--radius-lg);color:var(--color-accent-contrast);font-weight:var(--weight-semibold);letter-spacing:.04em;box-shadow:0 4px 30px #bc3f2866;transition:transform var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}.landing-cta:hover{background:var(--color-accent-hover);transform:translateY(-2px);box-shadow:0 8px 40px #c8452c8c}.landing-top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;justify-content:flex-end;padding:14px 20px;pointer-events:none}.landing-signin{pointer-events:auto;min-height:44px;padding:10px 14px;border:0;background:transparent;color:#f0ece0;font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:.04em;text-decoration:underline;text-underline-offset:4px;text-shadow:0 1px 8px var(--shadow-ink-art);cursor:pointer}.landing-top :focus-visible,.landing-hero :focus-visible{outline-color:#e6c25f}.landing-brush{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:90px;display:block}.landing-below{position:relative;background:var(--color-bg-deep)}.landing-product,.landing-how{max-width:1080px;margin:0 auto;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}.landing-section-title{margin:0;font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);text-align:center}.landing-still{margin:0;width:100%;display:flex;flex-direction:column;gap:var(--space-4)}.landing-still picture,.landing-still img{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-xl);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-card);background:var(--color-bg-art)}.landing-still.missing:before{content:"";display:block;width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-xl);border:1px solid var(--color-border-strong);background:linear-gradient(135deg,var(--color-bg-glow),var(--color-bg-art))}.landing-still figcaption{text-align:center;font-size:var(--text-md);color:var(--color-text-muted)}.landing-steps{list-style:none;margin:0;padding:0;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}.landing-step{display:flex;align-items:flex-start;gap:var(--space-5);padding:var(--space-6);background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.landing-step-body{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.landing-kicker{flex:none;font-family:var(--font-display);font-size:var(--text-2xl);line-height:1;color:var(--color-link);font-weight:var(--weight-bold)}.landing-step-title{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.25;color:var(--color-text)}.landing-step-text{margin:0;font-size:var(--text-md);line-height:1.55;color:var(--color-text-muted)}.landing-art{position:relative;aspect-ratio:3 / 4;overflow:hidden;background:var(--color-bg-void)}.landing-art picture,.landing-art img{display:block;width:100%;height:100%;object-fit:cover}.landing-art.missing{background:radial-gradient(ellipse 70% 55% at 30% 25%,rgba(74,91,140,.3),transparent 65%),radial-gradient(ellipse 60% 50% at 75% 70%,rgba(188,63,40,.14),transparent 60%),var(--color-bg-art)}.landing-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-5) var(--space-7);padding:var(--space-7) var(--space-5) var(--space-8);border-top:1px solid var(--color-border-subtle);background:var(--color-bg-deep);color:var(--color-text-muted)}.landing-more{position:relative}.landing-more-summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:8px 14px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-soft);font-size:var(--text-md);font-weight:var(--weight-semibold)}.landing-more-summary::-webkit-details-marker{display:none}.landing-more[open] .landing-more-summary{border-color:var(--color-border-strong)}.landing-more-items{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);padding-top:var(--space-3)}.landing-more-items .builder-mini,.landing-footer .landing-mode-toggle,.landing-footer .landing-howdnd{min-height:44px;padding:8px 14px}.landing-footer .landing-howdnd{border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-soft);font-size:var(--text-md);font-weight:var(--weight-semibold)}.landing-legal{flex-basis:100%;display:flex;justify-content:center;gap:var(--space-5);font-size:var(--text-xs)}.landing-legal a{color:var(--color-text-faint);text-underline-offset:.15em}.landing-legal a:hover{color:var(--color-text-muted)}.landing-footer .srd-credits{flex-basis:100%}.landing-gm-row{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;justify-content:center;color:var(--color-text-faint);font-size:var(--text-md)}.landing .join-error{min-height:18px;margin:0;color:var(--color-danger);font-size:var(--text-md);text-align:center}.landing .srd-credits{margin:0;max-width:640px;text-wrap:balance;text-align:center;font-size:var(--text-xs);color:var(--color-text-faint)}.home-top{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:14px 24px;border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-deep)}.home-brand{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:.06em;color:var(--color-text-soft)}.home-top-actions{display:flex;align-items:center;gap:var(--space-5)}.home-new{position:relative}.home-new-button{min-height:44px;padding:8px 16px;font-size:var(--text-md);font-weight:var(--weight-semibold);border-radius:var(--radius-lg)}.home-signout{align-self:center;margin:0}.home-main{max-width:1120px;margin:0 auto;padding:var(--space-7) var(--space-7) var(--space-8);display:flex;flex-direction:column;gap:var(--space-7)}.home-title{margin:0;font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:1.15;color:var(--color-text)}.home-title strong{font-weight:inherit}.home-notices{display:flex;flex-direction:column;gap:var(--space-2);margin-top:calc(-1 * var(--space-6))}.home-notices .join-status,.home-notices .join-error{min-height:0;text-align:left}.home-section{display:flex;flex-direction:column;gap:var(--space-5)}.home-section-title{margin:0;font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text)}.home-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-5)}.home-card{display:flex;flex-direction:column;background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:visible}.home-card-art{position:relative;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:linear-gradient(135deg,var(--color-bg-glow),var(--color-bg-art))}.home-card-art picture,.home-card-art img{display:block;width:100%;height:100%;object-fit:cover}.home-card-art.missing picture{display:none}.home-badge{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:var(--radius-pill);background:var(--color-surface-heavy);border:1px solid var(--color-border-strong);color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase}.home-live{position:absolute;bottom:10px;left:10px;display:inline-flex;align-items:center;gap:var(--space-3);padding:3px 10px;border-radius:var(--radius-pill);background:var(--color-surface-heavy);border:1px solid var(--color-success);color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold)}.home-live:before{content:"";width:8px;height:8px;border-radius:var(--radius-round);background:var(--color-success)}.home-card-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-5);flex:1}.home-card-head{display:flex;align-items:baseline;gap:var(--space-3);min-width:0}.home-card-name{margin:0;min-width:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.25;color:var(--color-text);overflow-wrap:anywhere}.home-card-code{flex:none;padding:1px 8px;border-radius:var(--radius-pill);background:var(--color-chip);border:1px solid var(--color-border-subtle);font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-text-muted)}.home-card-meta{margin:0;font-size:var(--text-md);color:var(--color-text-muted)}.home-card-actions{position:relative;display:flex;align-items:center;gap:var(--space-3);margin-top:auto;padding-top:var(--space-2)}.home-card-primary{flex:1;min-height:44px;padding:8px 14px;font-size:var(--text-md);font-weight:var(--weight-semibold);border-radius:var(--radius-lg)}.home-card-primary:not(.primary){background:transparent;border:1px solid var(--color-border-strong);color:var(--color-text)}.home-card-primary:not(.primary):hover{background:var(--color-surface-raised-hover)}.home-card-people{display:flex;flex-wrap:wrap;gap:var(--space-2)}.home-person{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-round);background:var(--color-chip);border:1px solid var(--color-border-strong);color:var(--color-text);font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-bold)}.home-person-more{font-family:var(--font-ui);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.home-card-more{flex:none;width:44px;min-height:44px;padding:0;font-size:var(--text-lg);line-height:1;border-radius:var(--radius-lg)}.home-menu{position:absolute;right:0;bottom:calc(100% + 6px);z-index:4;min-width:200px;display:flex;flex-direction:column;padding:var(--space-2);background:var(--color-surface-heavy);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.home-new .home-menu{top:calc(100% + 6px);bottom:auto;min-width:280px}.home-menu [role=menuitem]{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-md);font-weight:var(--weight-semibold);text-align:left;text-decoration:none;cursor:pointer}.home-menu [role=menuitem]:hover,.home-menu [role=menuitem]:focus-visible{background:var(--color-surface-raised-hover)}.home-menu-hint{font-size:var(--text-md);font-weight:var(--weight-normal);color:var(--color-text-muted)}.home-menu .home-menu-danger{color:var(--color-danger)}.home-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-5);border:1px dashed var(--color-border);border-radius:var(--radius-lg);text-align:center}.home-empty-title{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text)}.home-empty-text{margin:0;max-width:46ch;font-size:var(--text-md);line-height:1.5;color:var(--color-text-muted)}.home-empty .primary{margin-top:var(--space-3);min-height:44px;padding:8px 20px;font-size:var(--text-md);border-radius:var(--radius-lg)}.home-starters{margin-top:var(--space-2)}.home-badge[data-role=template]{text-transform:none;letter-spacing:.02em}.home-unhide{align-self:flex-start;margin:0;color:var(--color-text-muted)}.home-heroes{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.home-hero{display:flex;align-items:center;gap:var(--space-4);min-height:84px;padding:var(--space-4) var(--space-5);background:var(--color-surface-solid);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.home-hero-portrait{flex:none;width:52px;height:52px;display:grid;place-items:center;border-radius:var(--radius-round);background:var(--color-chip);border:1px solid var(--color-border-strong);font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text)}.home-hero-body{min-width:0;display:flex;flex-direction:column;gap:2px}.home-hero-name{margin:0;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);overflow-wrap:anywhere}.home-hero-summary,.home-hero-where{margin:0;font-size:var(--text-md);color:var(--color-text-muted)}.home-hero-new{justify-content:center;border-style:dashed;color:var(--color-text-soft);font-size:var(--text-base);font-weight:var(--weight-semibold);text-decoration:none}.home-hero-new:hover,.home-hero-new:focus-visible{border-color:var(--color-accent-border);color:var(--color-text)}.home-invite{display:flex;flex-direction:column;gap:var(--space-4);max-width:560px;padding:var(--space-6);background:var(--color-surface-heavy);border:1px solid var(--color-accent-border);border-radius:var(--radius-xl)}.home-invite-title{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.25;color:var(--color-text)}.home-invite .join-error:empty{display:none}.home-invite-meta{margin:0;font-size:var(--text-md);color:var(--color-text-muted)}.home-invite-actions{display:flex;gap:var(--space-3)}.home-invite-actions button{min-height:44px;padding:8px 18px;font-size:var(--text-md);border-radius:var(--radius-lg)}.home-colour{display:flex;align-items:center;gap:var(--space-4)}.home-colour-label{font-size:var(--text-md);color:var(--color-text-muted)}@media(pointer:coarse),(hover:none){.home-colour,.home-colour .swatch-row{flex-wrap:wrap;justify-content:center}.home-colour .swatch{width:44px;height:44px}}.home-claim{flex-basis:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.menu-rooms{display:flex;flex-direction:column;gap:var(--space-2)}.landing-scroll-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-overlay) + 2);display:grid;place-items:center;background:var(--color-scrim);padding:20px}.landing-scroll-card{width:min(560px,92vw);max-height:84vh;overflow-y:auto;background:var(--color-surface-solid);border:1px solid var(--color-border-strong);border-radius:var(--radius-2xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5);box-shadow:0 18px 60px var(--shadow-ink-strong)}.landing-scroll-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:var(--space-4);font-size:var(--text-md);line-height:1.55;color:var(--color-text-soft)}.landing-scroll-note{margin:0;font-size:var(--text-md);color:var(--color-text-muted);font-style:italic}.landing-scroll-title{margin:0;font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text)}.landing-scroll-steps strong{color:var(--color-text)}.landing-scroll-close{align-self:flex-end;min-height:44px;padding:8px 18px;border-radius:var(--radius-lg)}@keyframes landing-ink-reveal{0%{opacity:0;filter:blur(10px);transform:translateY(12px);letter-spacing:.2em}to{opacity:1;filter:blur(0);transform:translateY(0)}}@keyframes landing-drift{0%{transform:scale(1) translateY(0)}to{transform:scale(1.06) translateY(-12px)}}@media(prefers-reduced-motion:reduce){.landing-hero-art img,.landing-hero-inner{animation:none}.landing{scroll-behavior:auto}}.landing-ink-drift{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;pointer-events:none;mix-blend-mode:screen;opacity:.5}.landing-ink-drift-a{background:radial-gradient(ellipse 40% 28% at 20% 30%,rgba(90,110,170,.16),transparent 70%),radial-gradient(ellipse 34% 22% at 70% 60%,rgba(120,130,190,.1),transparent 70%),radial-gradient(ellipse 26% 20% at 45% 80%,rgba(90,110,170,.08),transparent 70%);animation:ink-drift-a 46s ease-in-out infinite alternate}.landing-ink-drift-b{background:radial-gradient(ellipse 30% 22% at 80% 25%,rgba(188,63,40,.1),transparent 70%),radial-gradient(ellipse 38% 26% at 30% 65%,rgba(90,110,170,.12),transparent 70%);animation:ink-drift-b 64s ease-in-out infinite alternate}@keyframes ink-drift-a{0%{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(3%,2%,0) scale(1.08)}}@keyframes ink-drift-b{0%{transform:translate3d(2%,3%,0) scale(1.05)}to{transform:translate3d(-2%,-3%,0) scale(1)}}.landing-embers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.landing-embers span{position:absolute;bottom:-12px;width:5px;height:5px;border-radius:50%;background:#e6b422b3;filter:blur(1px);opacity:0;animation:ember-rise 16s linear infinite}.landing-embers span:nth-child(2n){width:3px;height:3px;background:#c4cdeb8c;animation-duration:22s}.landing-embers span:nth-child(1){left:6%;animation-delay:0s}.landing-embers span:nth-child(2){left:14%;animation-delay:7s}.landing-embers span:nth-child(3){left:22%;animation-delay:3s}.landing-embers span:nth-child(4){left:31%;animation-delay:12s}.landing-embers span:nth-child(5){left:38%;animation-delay:5s}.landing-embers span:nth-child(6){left:47%;animation-delay:15s}.landing-embers span:nth-child(7){left:54%;animation-delay:1s}.landing-embers span:nth-child(8){left:61%;animation-delay:9s}.landing-embers span:nth-child(9){left:68%;animation-delay:4s}.landing-embers span:nth-child(10){left:75%;animation-delay:13s}.landing-embers span:nth-child(11){left:82%;animation-delay:6s}.landing-embers span:nth-child(12){left:88%;animation-delay:17s}.landing-embers span:nth-child(13){left:93%;animation-delay:2s}.landing-embers span:nth-child(14){left:97%;animation-delay:10s}@keyframes ember-rise{0%{transform:translateY(0) translate(0);opacity:0}8%{opacity:1}60%{opacity:.7}to{transform:translateY(-92vh) translate(24px);opacity:0}}.ink-cursor-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:calc(var(--z-tooltip) - 1)}@media(prefers-reduced-motion:reduce){.landing-ink-drift,.landing-embers span{animation:none;opacity:0}}.landing-mode-toggle{font-size:var(--text-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-soft)}.ink-icon{display:inline-grid;place-items:center;width:1.1em;height:1.1em;vertical-align:-.18em}.ink-icon svg{width:100%;height:100%}.ink-glyph{display:inline-block;width:1.3em;height:1.3em;vertical-align:-.25em;flex:none;background-color:currentColor;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat}.char-window{border-left:3px solid var(--color-accent)}.char-window .gen-header{border-bottom:1px solid var(--color-border-subtle);padding-bottom:var(--space-3)}.srd-row:hover{background:var(--color-surface-raised)}.srd-row.selected{border-left:2px solid var(--color-accent)}@media(max-width:640px){.landing-hero-inner{padding:64px 16px 16px}.landing-cta{width:min(320px,88vw)}.landing-product,.landing-how{padding:var(--space-7) var(--space-5)}.landing-steps{grid-template-columns:1fr}.landing-gm-row{flex-direction:column;gap:var(--space-3)}.home-top{padding:10px 16px}.home-main{padding:var(--space-6) var(--space-5) var(--space-8)}.home-template{grid-template-columns:1fr}.home-template .landing-art{max-width:160px}.menu-room{flex-wrap:wrap;row-gap:var(--space-2)}}.builder-variants{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) 0;max-height:132px;overflow-y:auto}.variant-swatch{width:26px;height:26px;padding:0;border-radius:var(--radius-sm);border:2px solid transparent}.variant-swatch.active{border-color:var(--color-highlight)}.turn-banner{position:fixed;top:10px;left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:10px;padding:6px 14px;border-radius:999px;background:color-mix(in srgb,var(--color-bg-deep, #14161d) 88%,transparent);border:1px solid var(--color-border, #333a46);box-shadow:0 4px 18px var(--shadow-ink-soft);font-family:inherit}.turn-banner[hidden]{display:none}.turn-banner-name{font-weight:var(--weight-bold);letter-spacing:.06em}.turn-banner-round{opacity:.65;font-size:var(--text-md)}.turn-banner.turn-banner-mine{border-color:var(--color-accent, #e67e22)}.turn-banner.turn-banner-mine .turn-banner-name{color:var(--color-link)}.chat-counter{align-self:flex-end;font-size:var(--text-xs);opacity:.7;padding:2px 6px 4px}.chat-counter-max{color:var(--color-danger);opacity:1}.chat-input.chat-input-over{border-color:var(--color-danger);box-shadow:0 0 0 1px color-mix(in srgb,var(--color-danger) 55%,transparent)}.chat-hint{align-self:stretch;margin:0 var(--space-2, 6px) var(--space-2, 6px);padding:4px 8px;font-size:var(--text-xs);color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-danger) 40%,transparent);border-radius:var(--radius-sm, 4px)}.chat-manual-chip{margin-left:6px;font-size:var(--text-md);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint)}.landing-scroll-primer{margin:0 0 12px;padding:10px 12px 10px 32px;border-left:3px solid var(--color-accent, #e67e22);background:color-mix(in srgb,var(--color-bg-deep, #14161d) 60%,transparent)}.landing-scroll-primer p{margin:0 0 8px;line-height:1.5}.landing-scroll-primer p:last-child{margin-bottom:0}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;display:flex;align-items:center;justify-content:center;background:var(--color-scrim)}.confirm-card{min-width:260px;max-width:min(90vw,420px);padding:16px 18px;border-radius:10px;background:var(--color-surface-heavy);border:1px solid var(--color-border, #333a46);border-left:3px solid var(--color-accent, #bc3f28);box-shadow:0 10px 40px var(--shadow-ink)}.confirm-message{margin:0 0 12px;line-height:1.5;display:block}.confirm-input{width:100%;box-sizing:border-box;margin-bottom:12px;padding:6px 8px;border-radius:6px;border:1px solid var(--color-border, #333a46);background:var(--color-bg-deep, #14161f);color:inherit;font:inherit}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-danger{background:var(--color-danger, #ff6b61);color:var(--color-danger-contrast, #1a0e0c);font-weight:var(--weight-bold)}.craft-list{display:flex;flex-direction:column;gap:var(--space-4)}.craft-section{display:flex;flex-direction:column;gap:var(--space-3)}.craft-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.craft-empty{font-size:var(--text-md);color:var(--color-text-dim);padding:var(--space-3) 0}.craft-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:var(--radius-md)}.craft-row-main{display:flex;flex-direction:column;gap:var(--space-2);flex:1 1 auto;min-width:0}.craft-row-name{display:flex;align-items:center;gap:var(--space-3);font-weight:var(--weight-semibold);color:var(--color-text)}.craft-row-detail{font-size:var(--text-md);color:var(--color-text-dim)}.craft-row-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);flex:0 0 auto}@media(max-width:640px){.craft-row{flex-direction:column}.craft-row-actions{width:100%;justify-content:flex-start}}.craft-badge{font-size:var(--text-md);padding:0 var(--space-2);border-radius:var(--radius-sm);font-weight:var(--weight-semibold)}.craft-badge-visible{background:var(--color-accent-soft);color:var(--color-link)}.craft-badge-hidden{background:var(--color-chip-alt);color:var(--color-text-dim)}.craft-ing-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.craft-need{font-size:var(--text-md);padding:0 var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.craft-have{background:var(--color-success-soft);color:var(--color-success)}.craft-short{background:var(--color-danger-soft);color:var(--color-danger)}.craft-need-hint{text-decoration:underline dotted;text-underline-offset:2px;cursor:help}.craft-editor{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:var(--radius-md)}.craft-subsection{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2)}.craft-field{display:flex;flex-direction:column;gap:var(--space-1)}.craft-field-label{font-size:var(--text-md);color:var(--color-text-dim)}.craft-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md)}.craft-ing-row{display:flex;align-items:center;gap:var(--space-2)}.craft-input,.craft-select{flex:1 1 auto;min-width:0}.craft-qty{width:4.5em;flex:0 0 auto}.craft-editor-actions{display:flex;gap:var(--space-2)}.craft-notice{margin-top:var(--space-2)}.shop-list{display:flex;flex-direction:column;gap:var(--space-4)}.shop-section{display:flex;flex-direction:column;gap:var(--space-3)}.shop-section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.shop-empty{font-size:var(--text-md);color:var(--color-text-dim);padding:var(--space-3) 0}.shop-manage{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:var(--radius-md)}.shop-manage-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.shop-name-input{flex:1 1 8em;min-width:6em}.shop-items-manage{display:flex;flex-direction:column;gap:var(--space-2);padding-left:var(--space-3);border-left:2px solid var(--color-border, rgba(255, 255, 255, .1))}.shop-item-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border, rgba(255, 255, 255, .08));border-radius:var(--radius-md)}.shop-item-main{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);min-width:0}.shop-item-name{font-weight:var(--weight-semibold);color:var(--color-text)}.shop-item-price{font-size:var(--text-md);color:var(--color-highlight);font-weight:var(--weight-semibold)}.shop-item-stock{font-size:var(--text-xs);color:var(--color-text-dim)}.shop-item-stock.shop-out{color:var(--color-danger, #e05a4a)}.shop-item-note{font-size:var(--text-md);color:var(--color-text-dim);font-style:italic}.shop-item-actions{display:flex;gap:var(--space-2);flex:0 0 auto}.shop-look{font-size:var(--text-md);color:var(--color-text-dim)}.shop-item-editor{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px dashed var(--color-border, rgba(255, 255, 255, .14));border-radius:var(--radius-md)}.shop-editor-actions{display:flex;gap:var(--space-2)}.shop-field{display:flex;flex-direction:column;gap:var(--space-1)}.shop-field-label{font-size:var(--text-md);color:var(--color-text-dim)}.shop-stock-field{display:flex;align-items:center;gap:var(--space-3)}.shop-check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md)}.shop-input,.shop-select{flex:1 1 auto;min-width:0}.shop-qty{width:6em;flex:0 0 auto}.shop-notice{margin-top:var(--space-2)}.shop-request-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-accent-border);border-radius:var(--radius-md)}.shop-request-main{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.shop-request-title{font-weight:var(--weight-semibold);color:var(--color-text)}.shop-request-detail{font-size:var(--text-md);color:var(--color-text-dim)}.shop-request-actions{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.shop-request-price{width:5.5em}.shop-buyer-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-2)}.shop-buyer-name{font-weight:var(--weight-semibold);color:var(--color-text)}.shop-buyer-gp{font-size:var(--text-md);color:var(--color-highlight);font-weight:var(--weight-semibold)}.shop-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.shop-tab{font-size:var(--text-md);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--radius-sm);background:transparent;color:var(--color-text-dim);cursor:pointer}.shop-tab-active{color:var(--color-text);border-color:var(--color-accent);background:var(--color-accent-soft)}.shop-tab-hidden{color:var(--color-danger, #e05a4a);font-size:var(--text-md)}.shop-catalogue{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3)}.shop-mode-note{font-size:var(--text-md);color:var(--color-text-dim);font-style:italic}.shop-station-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.shop-station-where{flex:1 1 12em;font-size:var(--text-md);color:var(--color-text-dim)}.shop-reach-select{flex:0 0 auto;width:auto;min-width:4.5em}.panel-flash{margin:0 0 var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-accent-border);background:var(--color-accent-soft);color:var(--color-text);font-size:var(--text-md)}.shop-item-short{font-size:var(--text-md);color:var(--color-danger);font-weight:var(--weight-semibold)}.shop-request-context{font-size:var(--text-md);color:var(--color-text-dim)}.shop-offer-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:var(--radius-md)}.shop-offer-note{font-size:var(--text-md);color:var(--color-text-dim);font-style:italic}.shop-status{flex:0 0 auto;font-size:var(--text-md);font-weight:var(--weight-semibold);padding:0 var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.shop-status-pending{background:var(--highlight-surface);color:var(--color-highlight)}.shop-status-approved{background:var(--color-success-soft);color:var(--color-success)}.shop-status-declined{background:var(--color-danger-soft);color:var(--color-danger)}.craft-at-station{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold);color:var(--color-text)}.craft-bench-note{font-size:var(--text-md);color:var(--color-text-dim);font-style:italic}.craft-row-hint{font-size:var(--text-xs);color:var(--color-warning)}.loot-list{display:flex;flex-direction:column;gap:var(--space-4)}.loot-section{display:flex;flex-direction:column;gap:var(--space-3)}.loot-empty,.loot-note{font-size:var(--text-md);color:var(--color-text-dim)}.loot-field{display:flex;align-items:center;gap:var(--space-2)}.loot-field-label{font-size:var(--text-md);color:var(--color-text-dim)}.loot-select{flex:1 1 auto;min-width:0}.loot-recipient-name{font-weight:var(--weight-semibold);color:var(--color-text)}.loot-roll-bar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.loot-roll-btn{flex:1 1 auto}.loot-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-left:3px solid var(--color-accent, #c9a54a);border-radius:var(--radius-sm)}.loot-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.loot-card-title{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.loot-d100{font-weight:var(--weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums}.loot-tier{color:var(--color-highlight);font-weight:var(--weight-semibold)}.loot-party{font-size:var(--text-md);color:var(--color-text-dim)}.loot-card-actions{display:flex;gap:var(--space-2);flex:0 0 auto}.loot-line{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.loot-line-main{font-size:var(--text-md);color:var(--color-text)}.loot-card-foot{display:flex;justify-content:flex-end;padding-top:var(--space-1);border-top:1px solid var(--color-border, rgba(255, 255, 255, .08))}.map-reveal{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:55}.map-reveal-cover{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition-property:opacity;transition-timing-function:ease-in-out;background:radial-gradient(ellipse 70% 45% at 24% 18%,rgba(74,91,140,.38),transparent 65%),radial-gradient(ellipse 55% 40% at 78% 30%,rgba(188,63,40,.16),transparent 60%),radial-gradient(ellipse 85% 60% at 55% 85%,rgba(31,34,48,.95),transparent 75%),var(--color-bg-art)}.map-reveal-cover.show{opacity:1}.map-reveal-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}.map-reveal-card{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) translateY(16px);text-align:center;max-width:min(720px,86vw);opacity:0;transition:opacity .32s ease-in-out,transform .32s ease-in-out}.map-reveal-card.show{opacity:1;transform:translate(-50%,-50%)}.map-reveal-kicker{font-size:var(--text-sm);letter-spacing:.42em;margin-right:-.42em;text-transform:uppercase;color:#cfc9ba;text-shadow:0 1px 8px var(--shadow-ink-art)}.map-reveal-title{margin-top:10px;font-size:clamp(var(--text-2xl),6vw,var(--text-display));line-height:1.1;letter-spacing:.12em;margin-right:-.12em;font-weight:var(--weight-bold);color:#f0ece0;text-shadow:0 2px 24px var(--shadow-ink-art),0 0 60px rgba(188,63,40,.25)}.map-reveal-note{margin-top:8px;font-size:var(--text-base);color:#dcd6c6;text-shadow:0 1px 10px var(--shadow-ink-art)}@media(prefers-reduced-motion:reduce){.map-reveal-card{transform:translate(-50%,-50%);transition:opacity .32s ease-in-out}}.story-curtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:56;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .6s ease-in-out;background:radial-gradient(ellipse 70% 45% at 24% 18%,rgba(74,91,140,.38),transparent 65%),radial-gradient(ellipse 55% 40% at 78% 30%,rgba(188,63,40,.16),transparent 60%),radial-gradient(ellipse 85% 60% at 55% 85%,rgba(31,34,48,.95),transparent 75%),var(--color-bg-art)}.story-curtain.show{opacity:1}body.story-curtain-up .confirm-overlay,body.story-curtain-up .gen-overlay,body.story-curtain-up .creation-page{z-index:58}.story-curtain:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.05;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E")}.story-curtain-frame{margin:0;max-width:min(1100px,92vw);max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:12px;transform:translateY(10px);transition:transform .6s ease-out}.story-curtain.show .story-curtain-frame{transform:translateY(0)}.story-curtain-art{max-width:100%;max-height:min(74vh,100%);object-fit:contain;border:1px solid rgba(240,236,224,.18);box-shadow:0 12px 60px var(--shadow-ink-strong);background:var(--color-bg-art)}.story-curtain-text{text-align:center;max-width:min(720px,86vw)}.story-curtain-name{font-size:var(--text-base);letter-spacing:.24em;margin-right:-.24em;text-transform:uppercase;color:#f0ece0;text-shadow:0 1px 10px var(--shadow-ink-art)}.story-curtain-caption{margin-top:6px;font-size:var(--text-md);color:#cfc9ba;text-shadow:0 1px 8px var(--shadow-ink-art)}.story-curtain-dismiss{position:absolute;top:14px;right:16px}.story-curtain-preview-badge{position:absolute;top:14px;left:50%;transform:translate(-50%);padding:4px 14px;font-size:var(--text-md);font-weight:var(--weight-bold);letter-spacing:.22em;color:#e8e2d2;background:var(--color-scrim-art);border:1px solid #cfc9ba;border-radius:var(--radius-xl);text-shadow:0 1px 8px var(--shadow-ink-art)}@media(prefers-reduced-motion:reduce){.story-curtain{transition:opacity .2s ease-in-out}.story-curtain-frame,.story-curtain.show .story-curtain-frame{transform:none;transition:none}}:root{--workspace-dock-width: 364px;--workspace-dock-collapsed: 34px;--workspace-dock-slide: .18s}body.curtain-inset .workspace-dock,body.curtain-inset .rail{z-index:57}body.curtain-beside-dock .confirm-overlay,body.curtain-beside-dock .gen-overlay{z-index:58}.workspace-dock{position:fixed;inset:0 0 0 auto;width:var(--workspace-dock-width);display:flex;flex-direction:column;color:var(--color-text);background:linear-gradient(180deg,#2a242af5,#14161ffb),var(--color-surface-solid);border-left:1px solid var(--color-border-strong);box-shadow:-10px 0 34px var(--shadow-ink);z-index:calc(var(--z-panels) + 3);overflow:hidden}.workspace-dock:before{content:"";position:absolute;inset:0 auto 0 3px;width:2px;background:linear-gradient(to bottom,transparent,var(--color-accent) 12%,rgba(188,63,40,.45) 88%,transparent);opacity:.78;pointer-events:none}.workspace-dock.collapsed{width:var(--workspace-dock-collapsed);background:var(--color-bg-deep)}.workspace-dock.collapsed .workspace-dock-identity,.workspace-dock.collapsed .workspace-dock-nav,.workspace-dock.collapsed .workspace-dock-body{display:none}.workspace-dock-identity,.workspace-dock-nav,.workspace-dock-body{transition:transform var(--workspace-dock-slide) var(--ease-standard),opacity var(--workspace-dock-slide) var(--ease-standard)}.workspace-dock.opening .workspace-dock-identity,.workspace-dock.opening .workspace-dock-nav,.workspace-dock.opening .workspace-dock-body,.workspace-dock.closing .workspace-dock-identity,.workspace-dock.closing .workspace-dock-nav,.workspace-dock.closing .workspace-dock-body{transform:translate(22px);opacity:0}.workspace-dock.opening .workspace-dock-identity,.workspace-dock.opening .workspace-dock-nav,.workspace-dock.opening .workspace-dock-body{transition:none}@media(prefers-reduced-motion:reduce){.workspace-dock-identity,.workspace-dock-nav,.workspace-dock-body{transition:none}}.workspace-dock-header{min-height:64px;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-4) var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border-subtle);background:linear-gradient(100deg,rgba(188,63,40,.08),transparent 52%),#0a0b104d}.workspace-dock.collapsed .workspace-dock-header{min-height:100%;justify-content:center;padding:0;border:0}.workspace-dock-identity{flex:1;min-width:0}.workspace-dock-heading{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-base);font-weight:var(--weight-bold);letter-spacing:.04em}.workspace-dock-subtitle{display:block;margin:var(--space-2) 0 0 30px;overflow:hidden;color:var(--color-text-dim);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap}.workspace-dock-collapse{flex:0 0 auto;width:28px;height:32px;padding:0;color:var(--color-text-muted);background:var(--color-surface-inset);border-color:var(--color-border);font-family:var(--font-ui);font-size:var(--text-xl);line-height:1}.workspace-dock.collapsed .workspace-dock-collapse{width:26px;height:54px}.workspace-dock-nav{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-subtle)}.workspace-tab-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.player-workspace-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.workspace-tab{min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:var(--space-3) var(--space-1);color:var(--color-text-dim);background:transparent;border-color:transparent;font-size:var(--text-md)}.workspace-tab .ink-glyph{width:17px;height:17px}.workspace-tab:hover{color:var(--color-text);background:var(--color-chip-alt)}.workspace-tab.active{color:var(--color-highlight);background:var(--highlight-surface);border-color:var(--highlight-border)}.workspace-dock-body{flex:1;min-height:0;overflow:auto;padding:var(--space-5);scrollbar-color:var(--color-border-strong) transparent}.workspace-section,.workspace-player-content{display:flex;flex-direction:column;gap:var(--space-4)}.workspace-section-heading{display:flex;flex-direction:column;gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-subtle)}.workspace-section-heading>strong{font-size:var(--text-md);letter-spacing:.06em;text-transform:uppercase}.workspace-section-heading>span{color:var(--color-text-dim);font-size:var(--text-xs);line-height:1.35}.workspace-note{margin:0;padding:var(--space-4);color:var(--color-text-muted);background:var(--color-surface-inset);border-left:2px solid var(--color-border-strong);font-size:var(--text-md);line-height:1.45}.workspace-entity-list,.workspace-initiative-list,.workspace-history-list{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-entity-row,.workspace-command-row{width:100%;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);text-align:left;background:var(--color-surface-inset);border-color:var(--color-border-subtle)}.workspace-entity-row:hover,.workspace-command-row:hover{background:var(--color-surface-raised);border-color:var(--color-border-strong)}.workspace-entity-row.selected{background:var(--highlight-surface);border-color:var(--color-highlight);box-shadow:inset 3px 0 0 var(--color-highlight)}.workspace-disposition{flex:0 0 auto;width:10px;height:10px;background:var(--color-highlight);border:2px solid var(--color-highlight);border-radius:var(--radius-round)}.workspace-disposition.hostile{background:var(--color-danger);border-color:var(--color-danger)}.workspace-disposition.friendly{background:var(--color-success);border-color:var(--color-success)}.workspace-entity-copy,.workspace-command-row>span:first-child{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.workspace-entity-copy strong,.workspace-command-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md)}.workspace-entity-copy small,.workspace-command-row small{color:var(--color-text-dim);font-size:var(--text-md)}.workspace-status-count,.workspace-current-chip,.workspace-use-chip{flex:0 0 auto;color:var(--color-highlight);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em}.workspace-status-count:not(:empty){min-width:20px;height:20px;display:grid;place-items:center;background:var(--highlight-surface);border:1px solid var(--highlight-border);border-radius:var(--radius-round)}.workspace-initiative-row{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);text-align:left;background:var(--color-surface-inset);border-color:var(--color-border-subtle)}.workspace-initiative-row.current{background:var(--highlight-surface);border-color:var(--color-highlight)}.workspace-initiative-row:disabled{opacity:.72;cursor:default}.workspace-control-row{display:flex;flex-wrap:wrap;gap:var(--space-3)}.workspace-compact-button{padding:var(--space-2) var(--space-4);font-size:var(--text-md)}.workspace-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg)}.workspace-selected-card{border-color:var(--highlight-border);box-shadow:inset 3px 0 0 var(--color-highlight)}.workspace-pending-casts{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.workspace-pending-cast{gap:var(--space-2);border-color:var(--color-warning);box-shadow:inset 3px 0 0 var(--color-warning)}.workspace-pending-cast .workspace-note{margin:0}.workspace-save-ruling{align-items:center;font-size:var(--text-md)}.workspace-save-ruling-name{color:var(--color-text-muted)}.workspace-eyebrow{color:var(--color-highlight);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:.1em}.workspace-reference-row{padding-top:var(--space-3);color:var(--color-text-soft);border-top:1px solid var(--color-border-subtle);font-size:var(--text-md)}.workspace-history-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--color-surface-inset);border-left:2px solid var(--color-border-strong);font-size:var(--text-md);line-height:1.35}.workspace-history-row small{color:var(--color-text-dim);font-size:var(--text-xs)}.workspace-muted{color:var(--color-text-dim);font-size:var(--text-md)}.workspace-history-row.cast{border-left-color:var(--color-accent)}.workspace-history-row.spent{opacity:.62}.workspace-history-row .workspace-undo{align-self:flex-start}.workspace-undo-reason{align-self:flex-start;color:var(--color-text-dim);font-style:italic}.workspace-action-button{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-3);color:var(--color-accent-contrast);background:var(--color-accent);border-color:var(--color-accent-border);font-weight:var(--weight-semibold)}.workspace-turn-strip{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-4);color:var(--color-text-muted);background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md)}.workspace-turn-strip strong{font-size:var(--text-md);letter-spacing:.07em}.workspace-turn-strip span{color:var(--color-text-dim);font-size:var(--text-md)}.workspace-turn-strip.mine{color:var(--color-highlight);background:var(--highlight-surface);border-color:var(--highlight-border)}.workspace-use-chip{padding:var(--space-2) var(--space-3);border:1px solid var(--highlight-border);border-radius:var(--radius-sm)}.workspace-story-preview{max-height:160px;overflow:auto;color:var(--color-text-soft);font-size:var(--text-md);line-height:1.5;white-space:pre-wrap}.workspace-party-strip{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle)}.workspace-party-strip>strong{margin-right:var(--space-2);color:var(--color-text-dim);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.workspace-party-chip{padding:var(--space-2) var(--space-3);color:var(--color-text-muted);background:var(--color-chip-alt);border-color:var(--color-border-subtle);font-size:var(--text-md)}@media(min-width:1280px){.workspace-dock-open .scene-wrap{right:var(--workspace-dock-width)}.workspace-dock-open .chat-panel{right:calc(var(--workspace-dock-width) + 10px)}.workspace-dock-open .casting-panel{right:calc(var(--workspace-dock-width) + var(--chat-width) + 20px)}.workspace-dock-open .turn-banner{left:calc((100% - var(--workspace-dock-width)) / 2)}}@media(max-width:1279px){.workspace-dock{width:min(390px,92vw)}.workspace-dock-open .scene-wrap{right:0}.workspace-dock-open .chat-panel{right:10px}.workspace-dock-open .casting-panel{right:12px;width:min(320px,calc(100vw - 24px))}}@media(max-width:900px){.workspace-dock{width:100vw}.workspace-dock.collapsed{width:var(--workspace-dock-collapsed)}.workspace-dock-header{padding-left:var(--space-5)}.workspace-dock-body{padding:var(--space-4)}}.sr-live{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.workspace-dock,.rail{--color-focus: var(--dock-focus);--color-danger: var(--dock-danger);--color-danger-contrast: var(--dock-danger-contrast);--color-warning: var(--dock-warning);--color-warning-contrast: var(--dock-warning-contrast);--color-success: var(--dock-success);--color-highlight: var(--dock-highlight);--color-link: var(--dock-link)}.workspace-dock,.workspace-dock .workspace-note,.workspace-dock .workspace-history-row,.workspace-dock .workspace-card,.workspace-dock .workspace-section-heading strong{color:var(--dock-text)}.workspace-dock .workspace-note,.workspace-dock .workspace-muted,.workspace-dock .workspace-history-row small,.workspace-dock .workspace-dock-subtitle,.workspace-dock .workspace-section-heading span,.workspace-dock .workspace-entity-copy small,.workspace-dock .workspace-command-row small{color:var(--dock-text-muted)}.workspace-dock .workspace-eyebrow,.workspace-dock .srd-credits{color:var(--dock-text-dim)}.workspace-dock .workspace-dock-header,.workspace-dock .workspace-section-heading,.workspace-dock .workspace-card,.workspace-dock .workspace-history-row,.workspace-dock .workspace-entity-row,.workspace-dock .workspace-command-row,.workspace-dock .workspace-initiative-row,.workspace-dock .workspace-tab,.workspace-dock .workspace-compact-button,.workspace-dock .workspace-party-chip{border-color:var(--dock-border)}.workspace-dock .workspace-entity-row,.workspace-dock .workspace-command-row,.workspace-dock .workspace-initiative-row,.workspace-dock .workspace-card,.workspace-dock .workspace-note,.workspace-dock .workspace-story-preview,.workspace-dock .workspace-reference-row,.workspace-dock .workspace-turn-strip,.workspace-dock .workspace-compact-button,.workspace-dock .workspace-action-button,.workspace-dock .workspace-party-chip,.workspace-dock .workspace-use-chip,.workspace-dock .workspace-status-count{background:var(--dock-surface)}.workspace-dock .workspace-entity-row:hover,.workspace-dock .workspace-command-row:hover,.workspace-dock .workspace-initiative-row:hover,.workspace-dock .workspace-compact-button:hover,.workspace-dock .workspace-action-button:hover,.workspace-dock .workspace-party-chip:hover{background:var(--dock-surface-raised)}.workspace-dock .workspace-tab{color:var(--dock-text-muted)}.workspace-dock .workspace-tab:hover{color:var(--dock-text);background:var(--dock-surface)}.workspace-dock .workspace-tab.active,.workspace-dock .workspace-entity-row.selected{color:var(--dock-text);background:var(--dock-surface-raised);border-color:var(--color-accent-border)}.mobile-bar,.mobile-scrim{display:none}@media(max-width:900px){.mobile-bar{position:fixed;left:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));display:flex;gap:var(--space-3);z-index:calc(var(--z-panels) + 6)}.mobile-bar-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:52px;min-height:48px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-xl);background:var(--color-surface-heavy);border:1px solid var(--color-border-strong);box-shadow:0 4px 16px var(--shadow-ink);font-size:var(--text-base);line-height:1}.mobile-bar-btn.active{background:var(--color-accent);border-color:var(--color-accent-border);color:var(--color-accent-contrast)}.mobile-bar-label{font-size:var(--text-md);letter-spacing:.06em;text-transform:uppercase}.mobile-scrim{position:fixed;top:0;right:0;bottom:0;left:0;display:block;background:var(--color-scrim);z-index:calc(var(--z-panels) + 4)}.mobile-scrim[hidden]{display:none}.rail{width:min(260px,80vw);align-items:stretch;padding:var(--space-5) var(--space-4);overflow-y:auto;transform:translate(-100%);transition:transform var(--motion-move) var(--ease-standard);z-index:calc(var(--z-panels) + 5)}.mobile-rail-open .rail{transform:translate(0)}.rail-groups,.rail-group,.rail-bottom{align-items:stretch;width:100%}.rail-group-btn{width:100%;height:44px;min-height:44px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--space-4);padding:0 var(--space-4)}.rail-group-label{font-size:var(--text-md);text-align:left}.rail{padding-bottom:68px}.rail-flyout{position:static;width:100%;box-shadow:none;animation:none}.chat-panel{position:fixed;top:0;right:0;bottom:0;left:auto;width:min(340px,88vw);max-width:88vw;border-radius:0;transform:translate(100%);transition:transform var(--motion-move) var(--ease-standard);z-index:calc(var(--z-panels) + 5)}.mobile-chat-open .chat-panel{right:0;transform:translate(0);padding-bottom:calc(62px + env(safe-area-inset-bottom,0px))}.scene-wrap{top:0;right:0;bottom:0;left:0}.workspace-dock.collapsed{width:var(--workspace-dock-collapsed)}.workspace-dock:not(.collapsed){top:38dvh;right:0;bottom:0;left:0;width:100vw;border-left:0;border-top:1px solid var(--color-border-strong);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}.practice-drawer,.casting-panel,.templates-panel{right:calc(var(--workspace-dock-collapsed) + var(--space-3))}.practice-drawer{top:auto;left:var(--space-3);bottom:calc(70px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;max-height:42dvh}.tour-card{width:min(330px,calc(100vw - 24px))}.casting-panel,.templates-panel{left:var(--space-3);width:auto;max-width:none}.rail-toasts{max-width:94vw}}.join-status{margin:0;min-height:16px;text-align:center;font-size:var(--text-md);color:var(--color-text-muted)}.creation-status{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-inset);font-size:var(--text-md)}.creation-status.busy{border-color:var(--highlight-border);color:var(--color-highlight)}.creation-status.error{border-color:var(--color-danger);color:var(--color-danger)}.field-label{font-size:var(--text-md);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);align-self:center;white-space:nowrap}.field-hint{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-text-dim)}.swatch-row[role=radiogroup] .swatch[aria-checked=true],.builder-variants[role=radiogroup] .variant-swatch[aria-checked=true]{outline:2px solid var(--color-focus);outline-offset:2px}.theme-list[role=radiogroup] .theme-choice[aria-checked=true]{border-color:var(--color-accent-border)}.workspace-dock-body:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.workspace-downed-banner{padding:var(--space-2) var(--space-3);border-left:3px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-chip);color:var(--color-danger);font-size:var(--text-md);font-weight:var(--weight-semibold)}.workspace-downed-chip{flex:0 0 auto;padding:0 var(--space-2);border:1px solid var(--color-danger);border-radius:var(--radius-round);color:var(--color-danger);font-family:var(--font-mono);font-size:var(--text-md);letter-spacing:.06em}.downed-stable .workspace-downed-chip{border-color:var(--color-warning);color:var(--color-warning)}.workspace-entity-row.downed,.workspace-initiative-row.downed{border-left:3px solid var(--color-danger)}.workspace-entity-row.downed-stable,.workspace-initiative-row.downed-stable{border-left-color:var(--color-warning)}.workspace-initiative-row.downed{grid-template-columns:36px 1fr auto auto}.workspace-party-chip.downed{border-color:var(--color-danger);color:var(--color-danger)}.workspace-party-chip.downed-stable{border-color:var(--color-warning);color:var(--color-warning)}.workspace-objective-list{display:flex;flex-direction:column;gap:var(--space-3)}.workspace-objective{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-objective-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.workspace-objective-progress{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--color-highlight)}.workspace-objective-bar{display:block;height:4px;border-radius:var(--radius-round);background:var(--color-chip);overflow:hidden}.workspace-objective-bar>span{display:block;height:100%;background:var(--color-highlight);transition:width .16s ease-out}.workspace-objective.complete .workspace-objective-bar>span{background:var(--color-success)}.workspace-objective.complete .workspace-objective-progress{color:var(--color-success)}.workspace-objective-meta{font-size:var(--text-xs);color:var(--color-text-dim)}.workspace-objective-note{font-size:var(--text-md);color:var(--color-text-dim);font-style:italic}.workspace-objective-form{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.workspace-objective-form input[type=text],.workspace-objective-form input[type=number],.workspace-objective-form select{font-size:var(--text-md);min-width:0}.workspace-objective-form input[type=number]{width:68px}.workspace-objective-share{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--color-text-dim)}.workspace-dock .workspace-objective-meta,.workspace-dock .workspace-objective-note,.workspace-dock .workspace-objective-share{color:var(--dock-text-muted)}.workspace-dock .workspace-objective-form{border-color:var(--dock-border)}.casting-range-chip{font-size:var(--text-md);font-variant-numeric:tabular-nums;color:var(--color-text-dim)}.casting-range-chip.out-of-range{color:var(--color-danger);font-weight:var(--weight-semibold)}.map-toast{position:absolute;z-index:40;transform:translate(-50%);max-width:min(320px,80vw);padding:var(--space-2) var(--space-3);border:1px solid var(--color-danger);border-radius:var(--radius-lg);background:var(--color-surface-solid);color:var(--color-text);font-size:var(--text-md);text-align:center;box-shadow:var(--shadow-card);animation:map-toast-in .14s ease-out}@keyframes map-toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.map-toast{animation:none}}.console-header{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);color:var(--dock-text);background:var(--dock-surface);border:1px solid var(--dock-border);border-radius:var(--radius-lg)}.console-header.downed{border-color:var(--color-danger)}.console-identity{display:flex;align-items:center;gap:var(--space-3)}.console-portrait{width:40px;height:40px;flex:none;object-fit:cover;border:1px solid var(--dock-border);border-radius:var(--radius-md);background:var(--dock-surface-raised)}.console-names{display:flex;flex-direction:column;min-width:0}.console-name{color:var(--dock-text);font-size:var(--text-base);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.console-class{color:var(--dock-text-muted);font-size:var(--text-md)}.console-stats{display:flex;gap:var(--space-2)}.console-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:var(--space-2);background:var(--dock-surface-raised);border-radius:var(--radius-md)}.console-stat-label{color:var(--dock-text-dim);font-size:var(--text-md);letter-spacing:.1em}.console-stat strong{color:var(--dock-text);font-size:var(--text-md)}.console-hp-bar{height:4px;overflow:hidden;background:var(--dock-surface-raised);border-radius:var(--radius-sm)}.console-hp-bar>span{display:block;height:100%;background:var(--color-success)}.console-hp-bar>span.low{background:var(--color-danger)}.console-flags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.console-flag{padding:var(--space-1) var(--space-3);color:var(--dock-text-muted);background:var(--dock-surface-raised);border:1px solid var(--dock-border);border-radius:var(--radius-sm);font-size:var(--text-md);line-height:1.5}.console-flag.downed{color:var(--color-danger);border-color:var(--color-danger)}.console-flag.concentration,.console-inspiration.has{color:var(--dock-text)}.console-flag.concentration{border-color:var(--color-accent-border)}.console-inspiration.armed{color:var(--dock-text);background:var(--dock-surface);border-color:var(--color-accent-border);box-shadow:inset 2px 0 0 var(--color-accent)}.console-death-saves{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3);background:color-mix(in srgb,var(--color-danger) 10%,var(--dock-surface-raised));border:1px solid var(--color-danger);border-radius:var(--radius-md)}.console-death-copy{display:flex;flex-direction:column;min-width:0}.console-death-copy strong{color:var(--dock-text);font-size:var(--text-md)}.console-death-copy span{color:var(--dock-text-muted);font-size:var(--text-md)}.console-death-tracks{display:flex;flex-direction:column;gap:var(--space-1)}.console-death-track{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);color:var(--dock-text-muted);font-size:var(--text-md)}.console-death-marks{display:inline-flex;gap:3px}.console-death-marks i{width:9px;height:9px;border:1px solid var(--dock-text-dim);border-radius:50%}.console-death-track.success .console-death-marks i.filled{background:var(--color-success);border-color:var(--color-success)}.console-death-track.failure .console-death-marks i.filled{background:var(--color-danger);border-color:var(--color-danger)}.console-death-roll{grid-column:1 / -1;justify-content:center}.console-turn{margin-top:var(--space-1)}.console-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);color:var(--dock-text);background:var(--dock-surface);border:1px solid var(--dock-border);border-radius:var(--radius-md)}.console-row-copy{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.console-row-copy strong{color:var(--dock-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.console-row-copy small{color:var(--dock-text-muted);font-size:var(--text-md)}.console-row-copy .console-cast-reason{color:var(--color-warning)}.console-row-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.console-use{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);color:var(--dock-text);background:var(--dock-surface-raised);border:1px solid var(--dock-border);font-size:var(--text-md);white-space:nowrap}.console-use.primary{color:var(--color-accent-contrast);background:var(--color-accent);border-color:var(--color-accent-border);font-weight:var(--weight-semibold)}button.rolling{opacity:.55;cursor:progress}.console-rolling{font-size:var(--text-md);font-style:italic;opacity:.8}.console-item-row.equipped{box-shadow:inset 2px 0 0 var(--color-accent)}.console-equip{flex:none;width:22px;padding:0;color:var(--dock-text-muted);background:var(--dock-surface-raised);border:1px solid var(--dock-border);line-height:20px;font-size:var(--text-md)}.console-equip.on{color:var(--dock-text);border-color:var(--color-accent-border)}.console-roll-mode{display:flex;gap:var(--space-2)}.console-mode{flex:1;padding:var(--space-2);color:var(--dock-text-muted);background:var(--dock-surface);border:1px solid var(--dock-border);font-size:var(--text-md)}.console-mode.active{color:var(--dock-text);background:var(--dock-surface-raised);border-color:var(--color-accent-border)}.console-slots{display:flex;flex-wrap:wrap;gap:var(--space-2)}.console-slot{padding:var(--space-1) var(--space-3);color:var(--dock-text-muted);background:var(--dock-surface-raised);border:1px solid var(--dock-border);border-radius:var(--radius-sm);font-size:var(--text-md)}.console-slot.empty{color:var(--dock-text-dim)}.console-chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}.console-chip{color:var(--dock-text-muted);background:var(--dock-surface-raised);border-color:var(--dock-border);font-size:var(--text-md)}.console-chip.chip-slot{color:var(--dock-text);border-color:var(--color-accent-border)}.console-chip.chip-slot.empty{color:var(--color-danger);border-color:var(--color-danger)}.console-feature-note{gap:var(--space-2)}.console-feature-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.console-feature-text{margin:0;color:var(--dock-text-muted);font-size:var(--text-md);line-height:1.5;white-space:pre-wrap}.console-notes{width:100%;min-height:220px;padding:var(--space-3);color:var(--dock-text);background:var(--dock-surface);border:1px solid var(--dock-border);border-radius:var(--radius-md);font:inherit;font-size:var(--text-md);line-height:1.5;resize:vertical}.console-notes-chip{margin-left:auto}.console-context{padding-top:var(--space-4);border-top:1px solid var(--dock-border)}.console-context-row{display:flex;flex-direction:column;gap:1px;padding:var(--space-3);color:var(--dock-text);background:var(--dock-surface);border-left:2px solid var(--dock-border);border-radius:var(--radius-sm)}.console-context-row strong{color:var(--dock-text)}.console-context-row small{color:var(--dock-text-muted);font-size:var(--text-md)}.console-context-row.out-of-range{border-left-color:var(--color-danger)}.console-context-row.out-of-range small{color:var(--color-danger)}.console-objective{border-left-color:var(--color-accent)}.console-urgent,.console-target-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.console-urgent-chip,.console-target{padding:var(--space-2) var(--space-3);color:var(--dock-text-muted);background:var(--dock-surface);border:1px solid var(--dock-border);font-size:var(--text-md)}.console-urgent-chip.alert-dying,.console-urgent-chip.alert-dead{color:var(--color-danger);border-color:var(--color-danger)}.console-urgent-chip.alert-critical{color:var(--color-warning);border-color:var(--color-warning)}.console-target.selected{color:var(--dock-text);background:var(--dock-surface-raised);border-color:var(--color-accent-border)}.console-target.out-of-range{color:var(--dock-text-dim)}.console-scene>summary{padding:var(--space-2) 0;color:var(--dock-text-muted);font-size:var(--text-md);cursor:pointer}.console-scene[open]>summary{color:var(--dock-text)}.workspace-dock .workspace-turn-strip,.workspace-dock .workspace-turn-strip span{color:var(--dock-text-muted)}.workspace-dock .workspace-turn-strip strong,.workspace-dock .workspace-turn-strip.mine,.workspace-dock .workspace-turn-strip.mine strong,.workspace-dock .workspace-turn-strip.mine span{color:var(--dock-text)}.workspace-dock .workspace-turn-strip.mine{background:var(--dock-surface-raised);border-color:var(--color-accent-border);box-shadow:inset 2px 0 0 var(--color-accent)}.workspace-dock .save-chip{color:var(--dock-text)}.details-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;flex-direction:column;background:var(--color-surface-solid)}.details-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border-subtle)}.details-title{margin:0;font-size:var(--text-base)}.details-body{flex:1;overflow:auto;display:grid;gap:var(--space-5);padding:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-content:start}.details-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--color-surface-inset);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg)}.details-card h3{margin:0;font-size:var(--text-md)}.details-sub{margin:0;color:var(--color-text-dim);font-size:var(--text-md);line-height:1.5}.details-danger{border-color:var(--color-danger)}.details-abilities{display:grid;gap:var(--space-3);grid-template-columns:repeat(3,1fr)}.details-ability,.details-field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-md)}.details-ability>span,.details-field>span{color:var(--color-text-dim)}.details-ability small{color:var(--color-text-muted)}.details-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.details-status{color:var(--color-text-dim);font-size:var(--text-md)}.details-file{font-size:var(--text-md)}@media(max-width:640px){.details-body{grid-template-columns:1fr;padding:var(--space-4)}}.chat-panel.chat-workspace{z-index:calc(var(--z-panels) + 4)}.chat-panel.chat-workspace:not(.open){width:var(--workspace-dock-collapsed);padding:0;overflow:hidden;background:var(--color-bg-deep)}.chat-panel.chat-workspace:not(.open) .chat-messages{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.chat-panel.chat-workspace:not(.open) .chat-workspace-log{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}.chat-collapsed-strip{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:0;background:transparent;border:none;border-radius:0;cursor:pointer}.chat-collapsed-strip .ink-glyph{width:18px;height:18px}.chat-strip-badge{min-width:18px;padding:1px var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);text-align:center;color:var(--color-bg-app);background:var(--color-accent);border-radius:var(--radius-2xl)}.chat-panel.chat-hidden{width:1px!important;height:1px!important;top:auto!important;margin:-1px;padding:0!important;border:none!important;box-shadow:none!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}.chat-workspace-header{display:flex;align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-raised)}.chat-workspace-title{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:.03em;color:var(--color-text)}.chat-workspace-close{flex:0 0 auto;min-width:36px;min-height:36px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font-size:var(--text-md);cursor:pointer}.chat-workspace-close:hover{background:var(--color-surface-raised-hover);border-color:var(--color-border);color:var(--color-text)}.chat-workspace-log{display:flex;flex-direction:column;min-height:0;flex:1}.chat-workspace-controls{display:flex;flex-direction:column;gap:var(--space-2);padding:0 0 var(--space-3);border-top:1px solid var(--color-border-subtle)}@media(max-width:1279px){.chat-panel.chat-workspace{width:min(390px,92vw)}.chat-panel.chat-workspace:not(.open){width:1px;height:1px;top:auto;margin:-1px;padding:0;border:none;box-shadow:none;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.chat-panel.chat-workspace:not(.open) .chat-collapsed-strip{display:none}.workspace-dock-open .chat-panel.chat-workspace{right:10px}}@media(max-width:900px){.chat-panel.chat-workspace{position:fixed;inset:auto 0 0 auto;width:100vw;height:100dvh;max-height:100dvh;transform:none;transition:none;padding-bottom:calc(62px + env(safe-area-inset-bottom,0px));z-index:calc(var(--z-panels) + 5)}.chat-panel.chat-workspace:not(.open){width:1px;height:1px;padding:0}}.rail-chat-badge,.mobile-bar-badge{position:absolute;top:4px;right:6px;min-width:18px;padding:1px var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);text-align:center;color:var(--color-bg-app);background:var(--color-accent);border-radius:var(--radius-2xl);pointer-events:none}.map-tools{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.map-tool-cluster{position:absolute;left:calc(var(--rail-left, 10px) + var(--space-2));display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);background:var(--color-surface-heavy);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 4px 18px var(--shadow-ink-soft);pointer-events:auto}.map-tool-modes{top:var(--space-4)}.map-tools.stacked{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:var(--space-2);padding:0 0 var(--space-4) calc(var(--rail-left, 10px) + var(--space-2))}.map-tools.stacked .map-tool-cluster{position:static}.map-tool-camera{bottom:var(--space-4)}.map-tool-btn{display:flex;align-items:center;gap:var(--space-3);min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-soft);font-size:var(--text-md)}.map-tool-btn:hover{background:var(--color-surface-raised);border-color:var(--color-border);color:var(--color-text)}.map-tool-btn.active{background:var(--highlight-surface);border-color:var(--highlight-border);color:var(--color-text)}.map-tool-icon{width:20px;display:grid;place-items:center;font-size:var(--text-base);line-height:1;flex:0 0 auto}.map-tool-label{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transition:max-width var(--motion-fast),opacity var(--motion-fast)}.map-tool-cluster:hover .map-tool-label,.map-tool-cluster:focus-within .map-tool-label{max-width:90px;opacity:1}@media(prefers-reduced-motion:reduce){.map-tool-label{transition:none}}@media(max-width:900px){.map-tool-cluster{left:var(--space-2);padding:2px}.map-tool-camera{bottom:calc(70px + env(safe-area-inset-bottom,0px))}.map-tools.stacked{padding:0 0 calc(70px + env(safe-area-inset-bottom,0px)) var(--space-2)}}.workspace-entity-controls{align-items:stretch}.workspace-entity-search{flex:1;min-width:0;padding:var(--space-2) var(--space-3);background:var(--color-chip-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--dock-text, var(--color-text));font-size:var(--text-md)}.workspace-entity-filter{flex:0 0 auto;max-width:40%}.workspace-entity-eyebrow{margin-top:var(--space-4)}.workspace-add-menu{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2)}.workspace-add-item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:40px;padding:var(--space-2) var(--space-3);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--dock-text, var(--color-text));font-size:var(--text-md);text-align:left;cursor:pointer}.workspace-add-item:hover{background:var(--dock-surface-raised);border-color:var(--color-border)}.workspace-entity-back{align-self:flex-start;margin-bottom:var(--space-3)}.workspace-console-nav,.workspace-console-body{display:flex;flex-direction:column;min-width:0}.workspace-creature-inspector,.workspace-token-inspector{display:flex;flex-direction:column;gap:var(--space-3)}.workspace-token-controls{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-vision-input{width:72px;padding:var(--space-1) var(--space-2)}.console-gm-section .console-gm-group{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--dock-border, var(--color-border-subtle))}.console-gm-label{color:var(--dock-text-muted, var(--color-text-muted));font-size:var(--text-md);letter-spacing:.06em;text-transform:uppercase}.console-gm-num{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--dock-text-muted, var(--color-text-muted))}.console-gm-num input{width:64px;padding:var(--space-1) var(--space-2)}.console-checks{border:1px solid var(--dock-border, var(--color-border-subtle));border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-top:var(--space-3)}.console-checks>summary{cursor:pointer;font-size:var(--text-md);letter-spacing:.06em;text-transform:uppercase;color:var(--dock-text-muted, var(--color-text-muted))}.console-checks-grid{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-2)}.console-check-row{display:flex;align-items:center;gap:var(--space-2)}.console-check-row>span{flex:1;min-width:0;font-size:var(--text-md)}.console-skill-roll{margin-top:var(--space-2)}.console-skill-roll .srd-select{flex:1;min-width:0}.console-character-picker{margin-left:auto;max-width:46%;font-size:var(--text-md)}.console-turn-order{border:1px solid var(--dock-border, var(--color-border-subtle));border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}.console-turn-order>summary{cursor:pointer;font-size:var(--text-md);letter-spacing:.06em;text-transform:uppercase;color:var(--dock-text-muted)}.console-turn-list{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-2)}.console-turn-row{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--dock-text);font-size:var(--text-md);text-align:left}.console-turn-row>span{flex:1;min-width:0}.console-turn-row:hover:not(:disabled){background:var(--dock-surface-raised)}.console-turn-row.current{border-color:var(--highlight-border);background:var(--highlight-surface)}.console-turn-row:disabled{opacity:.6;cursor:default}.rail-group-label{color:var(--dock-text-muted)}.rail-group-btn:hover,.rail-group-btn.open,.rail-group-btn.active{background:var(--dock-surface-raised);border-color:var(--dock-border)}.rail-group-btn:hover .rail-group-label,.rail-group-btn.open .rail-group-label,.rail-group-btn.active .rail-group-label,.rail-group-icon{color:var(--dock-text)}.workspace-scene-list{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-scene-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--dock-border);border-radius:var(--radius-md);background:var(--dock-surface-raised)}.workspace-scene-row.active{border-color:var(--color-accent)}.workspace-scene-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.workspace-scene-info strong{color:var(--dock-text);font-size:var(--text-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-scene-meta{color:var(--dock-text-dim);font-size:var(--text-xs)}.workspace-scene-live{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--text-md);letter-spacing:.08em;color:var(--color-link)}.workspace-parking{display:none!important}.workspace-exit-button{flex:0 0 auto;padding:var(--space-3) var(--space-4);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:.04em;white-space:nowrap;color:var(--color-highlight);background:var(--color-surface-inset);border:1px solid var(--highlight-border);border-radius:var(--radius-md)}.workspace-exit-button:hover{background:var(--highlight-surface)}.workspace-active .workspace-dock.workspace-mode{width:calc(var(--workspace-dock-width) + var(--chat-width))}@media(min-width:1280px){.workspace-active .scene-wrap{right:calc(var(--workspace-dock-width) + var(--chat-width))}.workspace-active .turn-banner{left:calc((100% - var(--workspace-dock-width) - var(--chat-width)) / 2)}.workspace-active .casting-panel{right:calc(var(--workspace-dock-width) + var(--chat-width) + 12px)}}@media(max-width:1279px){.workspace-active .workspace-dock.workspace-mode{width:min(612px,96vw)}}@media(max-width:900px){.workspace-active .workspace-dock.workspace-mode{width:100vw}}@media(min-width:1280px){.workspace-active .chat-panel.chat-beside-workspace{right:calc(var(--workspace-dock-width) + var(--chat-width) + 10px)}.chat-panel.chat-beside-workspace~.casting-panel{right:calc(var(--workspace-dock-width) + var(--chat-width) * 2 + 20px)}}@media(max-width:1279px){.chat-panel.chat-beside-workspace{width:1px!important;height:1px!important;top:auto!important;margin:-1px;padding:0!important;border:none!important;box-shadow:none!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}}.workspace-dock-body.workspace-hosting{display:flex;flex-direction:column;padding:0;overflow:hidden}.workspace-surface{flex:1;min-height:0;display:flex;flex-direction:column}.workspace-surface .gen-card,.workspace-surface .workspace-surface-card{flex:1;min-height:0;width:100%;max-width:none;height:auto;max-height:none;border:none;border-radius:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-5);background:var(--color-surface-solid)}.workspace-surface .srd-main{flex:1;min-height:0;min-width:0}.workspace-surface .srd-main{flex-direction:column}.workspace-surface .srd-main>.srd-list{width:100%;max-height:34%;min-height:120px}.workspace-surface .craft-list,.workspace-surface .shop-list{width:100%;flex:1 1 auto;max-height:none;min-height:0;overflow:visible}.workspace-surface .srd-detail{min-width:0}.workspace-initiative-row.workspace-initiative-editable{display:flex;align-items:center;gap:var(--space-3)}.workspace-initiative-value{flex:0 0 auto;width:52px;padding:var(--space-1) var(--space-2);font-size:var(--text-md);text-align:center}.workspace-initiative-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;padding:var(--space-2) 0;color:inherit;background:transparent;border:none;cursor:pointer}.workspace-initiative-name:disabled{cursor:default;opacity:.72}.workspace-initiative-remove,.workspace-initiative-setturn{flex:0 0 auto;padding:var(--space-1) var(--space-3)}.workspace-access-card .workspace-control-row{flex-wrap:wrap}.workspace-access-controllers{gap:var(--space-4)}.workspace-access-controller{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--dock-text, var(--color-text))}.drop-zone-wrap{flex:1;min-width:0}.drop-zone{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5);border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-inset);color:var(--color-text-muted);text-align:center;cursor:pointer}.drop-zone:hover,.drop-zone:focus-visible{border-color:var(--color-accent-border);color:var(--color-text)}.drop-zone.drag-over{border-color:var(--color-accent);background:var(--highlight-surface, var(--color-chip));color:var(--color-highlight)}.drop-zone-label{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);letter-spacing:.02em}.drop-zone-label .ink-glyph{width:16px;height:16px}.drop-zone-hint{font-size:var(--text-xs);color:var(--color-text-dim);line-height:1.4}.jb-src{flex:0 1 auto;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.binder-columns{flex:1;min-height:0;display:flex;gap:var(--space-4)}.binder-rail{flex:0 0 168px;min-width:0;display:flex;flex-direction:column;gap:2px;overflow-y:auto;border-right:1px solid var(--color-border-subtle);padding-right:var(--space-3)}.binder-rail-heading{margin-top:var(--space-3);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim)}.binder-rail-heading:first-child{margin-top:0}.binder-rail-row,.binder-rail-add{display:flex;align-items:center;gap:var(--space-2);padding:5px 7px;border:1px solid transparent;border-radius:6px;background:none;color:var(--color-text);text-align:left;cursor:pointer;font-size:var(--text-md)}.binder-rail-row:hover,.binder-rail-add:hover{background:var(--color-surface-inset)}.binder-rail-row.active{background:var(--color-surface-inset);border-color:var(--color-border-strong)}.binder-rail-row.drop-target{border-color:var(--color-accent-border);background:var(--color-surface-inset)}.binder-rail-label{flex:1;min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.3}.binder-rail-count{font-size:var(--text-xs);color:var(--color-text-dim)}.binder-rail-add{color:var(--color-text-dim)}.binder-list{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-3);overflow-y:auto}.binder-section-header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.binder-section-title{flex:1;min-width:0;margin:0;font-size:var(--text-base)}.binder-entries{display:flex;flex-direction:column;gap:2px;min-height:40px;flex-shrink:0}.binder-entries.drop-target{outline:1px dashed var(--color-accent-border)}.binder-row{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:6px;background:var(--color-surface-inset);padding:3px 6px;flex-wrap:wrap}.binder-row.dragging{opacity:.45}.binder-row.drop-before{box-shadow:0 -2px 0 0 var(--color-accent-border)}.binder-row.drop-after{box-shadow:0 2px 0 0 var(--color-accent-border)}.binder-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);border:none;background:none;color:var(--color-text);text-align:left;cursor:pointer;padding:3px 2px;font-size:var(--text-md)}.binder-row-main:disabled{cursor:default}.binder-thumb{width:34px;height:24px;object-fit:cover;border-radius:3px;flex:0 0 auto}.binder-row-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.binder-row-kind{flex:0 0 auto;font-size:var(--text-md);color:var(--color-text-dim)}.binder-row-controls{display:flex;align-items:center;gap:3px;margin-left:auto}.binder-ghost{border-style:dashed;opacity:.75}.binder-ghost .binder-row-name{font-style:italic;color:var(--color-text-dim)}.binder-session-pick{max-width:132px;font-size:var(--text-md);padding:2px 4px;border-radius:5px;border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text)}.binder-note-editor{flex-basis:100%;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) 2px 4px}.binder-note-title,.binder-note-text{width:100%;font:inherit;font-size:var(--text-md);padding:4px 6px;border-radius:5px;border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text)}.binder-note-text{resize:vertical}.binder-note-save{align-self:flex-end}.binder-note-save[aria-disabled=true]{opacity:.4;cursor:default}.binder-note-editor-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.binder-add-note,.binder-rail-add{align-self:flex-start}.binder-add-note{display:flex;align-items:center;gap:var(--space-2);padding:4px 9px;border:1px dashed var(--color-border);border-radius:6px;background:none;color:var(--color-text-dim);cursor:pointer;font-size:var(--text-md)}.binder-add-note:hover{color:var(--color-text);border-color:var(--color-border-strong)}.binder-empty{margin:var(--space-2) 0;color:var(--color-text-dim);font-size:var(--text-md)}.binder-notice{padding:4px 8px;border:1px solid var(--color-accent-border);border-radius:6px;color:var(--color-text);font-size:var(--text-md)}.binder-header{display:flex;align-items:center;gap:var(--space-3);justify-content:flex-end}.binder-search{flex:1;min-width:0;max-width:280px;margin-right:auto;font:inherit;font-size:var(--text-md);padding:4px 9px;border-radius:7px;border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text)}.binder-search::placeholder{color:var(--color-text-dim)}.binder-search-group{margin:var(--space-2) 0 0;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim)}.binder-new{flex:0 0 auto;font-size:var(--text-xs);color:var(--color-link);align-self:flex-start;line-height:1.6}.binder-mode-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:7px;overflow:hidden}.binder-mode-btn{display:flex;align-items:center;gap:5px;padding:4px 12px;border:none;background:none;color:var(--color-text-dim);cursor:pointer;font-size:var(--text-md)}.binder-mode-btn+.binder-mode-btn{border-left:1px solid var(--color-border)}.binder-mode-btn:hover{background:var(--color-surface-inset)}.binder-mode-btn.active{background:var(--color-surface-inset);color:var(--color-text);font-weight:var(--weight-semibold)}.binder-rail-disclose{border:none;background:none;text-align:left;cursor:pointer;padding:5px 0 2px}.binder-rail-disclose:hover{color:var(--color-text)}.binder-run-row{padding:6px 8px;flex-wrap:wrap}.binder-run-row:focus{outline:2px solid var(--color-focus);outline-offset:1px}.binder-run-main{cursor:default}.binder-run-main{min-width:0;overflow:hidden}.binder-run-main .binder-row-name{flex:0 1 auto;min-width:110px}.binder-run-main .binder-row-kind{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.binder-run-row .binder-thumb{width:46px;height:32px}.binder-run-controls{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.binder-run-controls>button{padding-inline:var(--space-3)}.binder-run-hidden{display:flex;align-items:center;gap:3px;font-size:var(--text-md);color:var(--color-text-dim);cursor:pointer}.binder-run-badge{font-size:var(--text-xs);letter-spacing:.07em;padding:2px 7px;border-radius:9px;border:1px solid var(--color-border-strong);color:var(--color-text-dim);background:var(--color-surface-raised)}.binder-run-badge-showing,.binder-run-badge-playing,.binder-run-badge-on-stage{border-color:var(--color-accent-border);color:var(--color-text)}.binder-play-btn{padding:4px 12px;border:1px solid var(--color-border-strong);border-radius:6px;background:var(--color-surface-raised);color:var(--color-text);cursor:pointer;font-size:var(--text-md);white-space:nowrap}.binder-play-btn:hover:not(:disabled){border-color:var(--color-accent-border)}.binder-play-btn.primary{border-color:var(--color-accent-border);font-weight:var(--weight-semibold)}.binder-play-btn:disabled{opacity:.55;cursor:default}.binder-note-view{flex-basis:100%;padding:var(--space-2) 2px 4px;font-size:var(--text-md);color:var(--color-text);white-space:pre-wrap}.binder-note-view:empty:before{content:"(no text)";color:var(--color-text-dim);font-style:italic}@media(max-width:640px){.binder-columns{flex-direction:column}.binder-rail{flex:0 0 auto;border-right:none;border-bottom:1px solid var(--color-border-subtle);padding-right:0;padding-bottom:var(--space-2)}}.binder-drop .drop-zone{padding:var(--space-3) var(--space-4)}.binder-note-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.confirm-input-multiline{resize:vertical;min-height:10em;font:inherit;font-size:var(--text-md)}.triage-card{max-width:720px;width:min(94vw,720px);max-height:84vh;display:flex;flex-direction:column}.triage-title{margin:0}.triage-intro{margin:var(--space-2) 0 var(--space-3);color:var(--color-text-dim);font-size:var(--text-md)}.triage-grid{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2);padding-right:2px}.triage-item{display:flex;align-items:flex-start;gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:6px;background:var(--color-surface-inset);padding:var(--space-2)}.triage-item.triage-landed{border-color:var(--color-border-strong)}.triage-item.triage-failed{border-color:var(--color-accent-border)}.triage-item.triage-skipped{opacity:.65}.triage-thumb{position:relative;flex:0 0 72px;height:48px;display:grid;place-items:center;border-radius:4px;overflow:hidden;background:var(--color-surface-raised);color:var(--color-text-dim)}.triage-thumb-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.triage-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.triage-name{width:100%;font:inherit;font-size:var(--text-md);padding:3px 6px;border-radius:5px;border:1px solid var(--color-border);background:var(--color-surface-raised);color:var(--color-text)}.triage-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.triage-kind{font-size:var(--text-md);padding:2px 8px;border-radius:999px;border:1px solid var(--color-border-strong);background:none;color:var(--color-text);cursor:pointer}.triage-kind:disabled{cursor:default;opacity:.8}.triage-sub{font-size:var(--text-xs);color:var(--color-text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.triage-status{font-size:var(--text-md)}.triage-status-landed{color:var(--color-text-dim)}.triage-status-failed{color:var(--color-link)}.triage-remove{flex:0 0 auto}.triage-rejected{margin:var(--space-2) 0 0;font-size:var(--text-md);color:var(--color-link)}.triage-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-3)}.triage-session-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--color-text-dim)}@media(max-width:900px){input,select,textarea{font-size:max(16px,1em)!important}}.campaign-shell{display:flex;flex-direction:column;height:100vh;background:var(--color-bg-deep);color:var(--color-text)}.camp-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-solid);position:sticky;top:0;z-index:30}.camp-header .camp-title{font-size:var(--text-lg);margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camp-code{font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-text-dim);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);padding:1px 8px}.camp-home,.camp-enter{min-height:44px}.camp-body{display:flex;flex:1;min-height:0}.camp-nav{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) var(--space-2);border-right:1px solid var(--color-border-subtle);min-width:12.5em}.camp-nav-btn{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);background:none;border:1px solid transparent;border-radius:var(--radius-lg);color:var(--color-text);text-align:left;cursor:pointer}.camp-nav-btn:hover{background:var(--color-surface-raised)}.camp-nav-btn.active{background:var(--color-surface-raised);border-color:var(--color-accent)}.camp-main{flex:1;min-width:0;padding:var(--space-3);overflow-y:auto}.camp-main .binder-surface{height:100%}.camp-main .binder-card{max-width:72em;margin:0 auto;width:100%}.camp-main .binder-drop{flex:0 0 auto}.camp-overview{display:flex;flex-direction:column;gap:var(--space-3);max-width:46em;margin:0 auto}.camp-card{background:var(--color-surface-solid);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--space-3)}.camp-card h2{margin:0 0 var(--space-2);font-size:var(--text-base)}.camp-name-row{display:flex;gap:var(--space-2)}.camp-name-row input{flex:1;min-height:44px}.camp-status-list{margin:0 0 var(--space-2);padding-left:1.2em}.camp-status-list li{margin:2px 0}.camp-quick-links{display:flex;flex-wrap:wrap;gap:var(--space-2)}.camp-quick-links button{min-height:44px}.camp-last-recap{margin-top:var(--space-2)}.camp-last-recap p{white-space:pre-wrap}.camp-setup-skip{margin-top:var(--space-3);background:none;border:none;color:var(--color-text-dim);text-decoration:underline;cursor:pointer;min-height:44px}.char-workspace{max-width:60em;margin:0 auto}.char-workspace-head{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.char-workspace-head input[type=search]{flex:1;min-width:10em;min-height:44px}.char-workspace-head select,.char-workspace-head button{min-height:44px}.char-workspace-roster{display:flex;flex-direction:column;gap:var(--space-2)}.char-roster-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);min-height:56px;background:var(--color-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);color:var(--color-text);cursor:pointer;text-align:left}.char-roster-row:hover{border-color:var(--color-accent)}.char-roster-portrait{width:40px;height:40px;border-radius:var(--radius-round);object-fit:cover}.char-roster-text{display:flex;flex-direction:column;min-width:0}.char-roster-name{font-weight:var(--weight-semibold)}.char-roster-meta{font-size:var(--text-xs);color:var(--color-text-dim)}.binder-zero-guide{border:1px dashed var(--color-border);border-radius:var(--radius-xl);padding:var(--space-3);margin-bottom:var(--space-3)}.binder-zero-name{display:flex;flex-direction:column;gap:var(--space-1);margin:var(--space-2) 0}.binder-zero-name input{min-height:44px}.binder-zero-paths{display:flex;flex-wrap:wrap;gap:var(--space-2)}.binder-zero-path{min-height:44px}.binder-session-lifecycle{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--text-md)}.binder-session-lifecycle input[type=date],.binder-session-lifecycle select{min-height:36px}.binder-session-recap{flex-basis:100%}.binder-session-recap p{white-space:pre-wrap;font-size:var(--text-md)}.binder-run-progress{font-size:var(--text-sm);color:var(--color-text-dim);margin:0 0 var(--space-2)}.binder-run-when{font-size:var(--text-xs);color:var(--color-text-dim)}.binder-beat-done .binder-row-name,.binder-beat-skipped .binder-row-name{color:var(--color-text-soft)}.binder-beat-skipped .binder-row-name{text-decoration:line-through}.binder-beat-current{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.binder-beat-chip-done{color:var(--color-success, #2e7d32)}.binder-beat-chip-skipped{color:var(--color-text-dim)}.binder-session-status-played{opacity:.7}.binder-endsession{max-width:34em}.binder-endsession-summary{color:var(--color-text-dim)}.binder-endsession-carry{margin:var(--space-2) 0;border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-2)}.binder-endsession-carry-row{display:block;margin:4px 0}.binder-endsession textarea{width:100%}.binder-endsession-publish{display:block;margin:var(--space-2) 0}.binder-target-flash{outline:2px solid var(--color-accent);outline-offset:2px;transition:outline-color .4s}@media(prefers-reduced-motion:no-preference){.binder-target-flash{animation:binder-flash 1.2s ease-out 2}@keyframes binder-flash{0%{outline-color:var(--color-accent)}50%{outline-color:transparent}to{outline-color:var(--color-accent)}}}.entity-peek{max-width:30em}.entity-peek-art{max-width:100%;max-height:40vh;object-fit:contain;border-radius:var(--radius-lg)}.entity-peek-line{white-space:pre-wrap}@media(max-width:720px){.camp-body{flex-direction:column}.camp-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;border-right:none;border-bottom:1px solid var(--color-border-subtle);position:sticky;top:0;background:var(--color-bg-deep);z-index:20;padding:var(--space-1) var(--space-2)}.camp-nav-btn{min-width:0;justify-content:center;padding-inline:var(--space-1);white-space:normal;text-align:center}.camp-header .camp-title{font-size:var(--text-base)}}@media(max-width:360px){.camp-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:420px){.binder-rail{flex-direction:row;overflow-x:auto;position:sticky;top:0;background:var(--color-bg);z-index:10;gap:var(--space-1);align-items:center}.binder-rail .binder-rail-heading:not(.binder-rail-disclose){display:none}.binder-rail .binder-rail-disclose{flex:0 0 auto;min-height:44px;white-space:nowrap}.binder-rail-row,.binder-rail-add{flex:0 0 auto;min-height:44px}.binder-play-btn,.binder-mini,.binder-run-mini,.binder-run-lead,.binder-mode-btn{min-height:44px}}.cm-crumbs{list-style:none;padding:0}.cm-crumbs li{display:inline-block}.cm-step-heading{margin:var(--space-2) 0 0;font-size:var(--text-base);outline-offset:4px}.cm-review .cm-line{align-items:center;gap:var(--space-3)}.cm-review-edit{margin-left:auto;min-height:32px}.cm-review-warning{display:flex;align-items:center;gap:var(--space-3);border:1px solid var(--color-danger, #b4544a);border-radius:var(--radius-md);padding:var(--space-3)}.homebrew-badge{display:inline-block;padding:1px 8px;border-radius:var(--radius-full, 999px);border:1px solid var(--color-accent);color:var(--color-link);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em}.cm-custom-feature-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.custom-feature-form summary{cursor:pointer;display:inline-block}.custom-feature-form-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) 0}.custom-feature-desc{min-width:240px;background:var(--color-surface-solid);color:inherit;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2)}.custom-feature-error:not(:empty){color:var(--color-danger, #b4544a)}.console-custom-feature .console-feature-row{border:0;padding-left:0}.cm-hint{color:var(--color-text-faint);font-size:var(--text-xs)}.library-drop-shelf{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:10000;transform:translate(-50%);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2);max-width:min(760px,calc(100vw - 24px));padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-solid);box-shadow:var(--shadow-lg)}.library-drop-shelf[hidden]{display:none}.library-drop-shelf>strong,.library-drop-shelf>span{flex-basis:100%;text-align:center}.library-drop-target{min-width:10rem;padding:var(--space-3);border:2px dashed var(--color-border);border-radius:var(--radius-md);text-align:center}.library-drop-target.drag-over{border-color:var(--color-accent);background:var(--color-accent-soft)}@media(min-width:1280px)and (max-width:1439px){:root{--workspace-dock-width: 320px;--chat-width: 216px}.workspace-dock-body{padding:var(--space-3)}.workspace-dock-header{padding-inline:var(--space-3)}.workspace-dock-nav{gap:2px;padding-inline:var(--space-2)}.workspace-tab{padding-inline:4px;font-size:var(--text-md)}.workspace-card{padding:var(--space-3)}.workspace-initiative-row.workspace-initiative-editable{gap:var(--space-2)}}.workspace-placement-card{border-color:var(--highlight-border)}.workspace-tie-chip{flex:0 0 auto;color:var(--color-highlight);font:var(--weight-bold) var(--text-xs)/1 var(--font-mono);letter-spacing:.08em}.workspace-initiative-row .workspace-tie-chip+.workspace-compact-button,.workspace-initiative-row .workspace-tie-chip~.workspace-compact-button{min-width:28px;padding-inline:var(--space-2)}.camp-main .binder-surface.binder-mode-board .binder-card,.camp-main .binder-surface.binder-wide .binder-card{max-width:none}.binder-list.binder-list-board{overflow:hidden;display:flex;flex-direction:column;container-type:inline-size}.binder-rail-note{margin:var(--space-3) 0 0;font-size:var(--text-xs);color:var(--color-text-dim);line-height:1.4}.binder-row-ringed{outline:2px solid var(--color-highlight);outline-offset:2px;transition:outline-color .4s}.binder-linklines{flex-basis:100%;display:flex;flex-direction:column;gap:1px;padding:0 2px 3px 2.3em;font-size:var(--text-md);color:var(--color-text-muted)}.binder-links{flex-basis:100%;display:grid;min-width:0}.binder-links>.binder-linksentence,.binder-links>.binder-linklines{grid-area:1 / 1;min-width:0}.binder-links>.binder-linklines{flex-direction:row;flex-wrap:wrap;column-gap:var(--space-3);align-items:center}.binder-linksentence{margin:0;padding:0 2px 3px 2.3em;font-size:var(--text-md);color:var(--color-text-muted);overflow-wrap:anywhere}.binder-row-more{display:none}@media(hover:hover){.binder-plan-row:not(.binder-ghost):not(:hover):not(:focus-within):not(.expanded):not(.binder-row-open)>.binder-row-controls,.binder-plan-row:not(:hover):not(:focus-within):not(.binder-row-open) .binder-linklines{opacity:0}.binder-plan-row:is(:hover,:focus-within,.binder-row-open) .binder-linksentence{visibility:hidden}}@media(hover:none){.binder-row-more{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin-left:auto}.binder-plan-row:not(.binder-ghost):not(.binder-row-open):not(.expanded):not(:has(:focus-visible))>.binder-row-controls,.binder-plan-row:not(.binder-row-open):not(:has(:focus-visible)) .binder-linklines{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0;white-space:nowrap}.binder-plan-row{position:relative}.binder-plan-row:is(.binder-row-open,:has(:focus-visible)) .binder-linksentence{display:none}.binder-plan-row:is(.binder-row-open,.expanded,:has(:focus-visible)):not(.binder-ghost)>.binder-row-controls{flex-basis:100%;justify-content:flex-end;flex-wrap:wrap}}.binder-run-extras{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.binder-run-extras>button{padding-inline:var(--space-3)}@media(hover:hover){.binder-run-row:not(.binder-beat-current):not(:hover):not(:focus-within):not(.binder-row-open) .binder-run-extras>:not(.binder-keep-btn[aria-pressed=true]){opacity:0}}@media(hover:none){.binder-run-row:not(.binder-beat-current):not(.binder-row-open):not(:has(.binder-run-extras :focus-visible)) .binder-run-extras{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0;white-space:nowrap}.binder-run-row{position:relative}.binder-run-row:is(.binder-row-open,:has(.binder-run-extras :focus-visible)) .binder-run-controls{flex-wrap:wrap;justify-content:flex-end}.binder-run-row:is(.binder-row-open,:has(.binder-run-extras :focus-visible)) .binder-run-extras{flex-basis:100%;justify-content:flex-end}.binder-run-row.binder-beat-current .binder-run-more{display:none}}.binder-note-box{flex-basis:100%;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);min-width:0}.binder-runsheet .binder-note-view{max-height:35vh;overflow-y:auto;align-self:stretch}.binder-runsheet .binder-note-view:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.binder-run-jumped{font-weight:var(--weight-semibold)}.binder-row-more[aria-expanded=true]{border-color:var(--color-accent-border);color:var(--color-text)}.binder-section-header:not(.binder-session-open)>:is([data-focus="plan:head:rename"],[data-focus="plan:head:up"],[data-focus="plan:head:down"],[data-focus="plan:head:delete"]),.binder-session-lifecycle:not(.binder-session-open)>:not(.binder-session-recap),.binder-section-header.binder-session-open>.binder-session-summary{display:none}.binder-session-lifecycle:not(.binder-session-open):not(:has(>.binder-session-recap)){display:none}.binder-session-summary{font-size:var(--text-md);color:var(--color-text-dim)}.binder-session-more[aria-expanded=true]{border-color:var(--color-accent-border);color:var(--color-text)}.binder-run-legend{margin:calc(-1 * var(--space-2)) 0 0;font-size:var(--text-md);color:var(--color-text-dim)}.binder-empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.binder-empty-state p{margin:0}.binder-empty-action{min-height:44px;padding:6px 14px;border-radius:7px;border:1px solid var(--color-border-strong);background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-size:var(--text-md);cursor:pointer}.binder-empty-action:hover{border-color:var(--color-accent-border)}.binder-linkline{display:flex;align-items:center;flex-wrap:wrap;gap:2px 4px}.binder-linkkey{color:var(--color-text-dim);font-style:italic}.binder-link-jump{border:0;background:none;padding:2px 3px;min-height:24px;color:var(--color-text);font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--color-border-strong);text-underline-offset:2px}.binder-link-jump:hover{color:var(--color-text);text-decoration-color:var(--color-accent-border)}.binder-link-where{color:var(--color-text-dim)}.binder-link-gone{color:var(--color-text-dim);font-style:italic}.binder-link-x{border:0;background:none;color:var(--color-text-dim);font:inherit;font-size:var(--text-md);line-height:1;padding:0 4px;min-height:24px;cursor:pointer}.binder-link-x:hover{color:var(--color-danger)}@media(pointer:coarse){.binder-link-x{min-width:44px;min-height:44px}}.binder-link-picker{flex-basis:100%;display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-2) 0 var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);font-size:var(--text-md)}.binder-link-picker .binder-aside-title{font-size:var(--text-md)}.binder-link-picker select,.binder-link-picker input{font:inherit;font-size:var(--text-md);padding:4px 7px;border-radius:5px;border:1px solid var(--color-border);background:var(--color-surface-inset);color:var(--color-text);min-height:32px}.binder-picker-groups{display:flex;flex-direction:column;gap:var(--space-3);max-height:32vh;overflow-y:auto}.binder-picker-group-name{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim);margin-bottom:2px}.binder-picker-target{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:32px;padding:3px 6px;border:1px solid transparent;border-radius:5px;background:none;color:var(--color-text);font:inherit;text-align:left;cursor:pointer}.binder-picker-target:hover{background:var(--color-surface-inset);border-color:var(--color-border)}.binder-chip{font-size:var(--text-md);padding:0 6px;border:1px solid var(--color-border);border-radius:9px;color:var(--color-text-dim);white-space:nowrap}.binder-aside-actions{display:flex;gap:var(--space-3)}.binder-hint{margin:0;font-size:var(--text-xs);color:var(--color-text-dim)}.binder-run-strip{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-6);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-subtle);border-radius:6px;background:var(--color-surface-inset);font-size:var(--text-md)}.binder-run-cell{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.binder-run-key{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim);margin-right:2px}.binder-run-lead.is-standby{border-color:var(--color-accent-border);color:var(--color-text)}.binder-run-none{color:var(--color-text-dim);font-style:italic}.binder-standby-btn[aria-pressed=true]{border-color:var(--color-accent-border);color:var(--color-text)}@media(min-width:421px){.binder-mini,.binder-run-mini,.binder-run-lead,.binder-mode-btn,.binder-play-btn{min-height:32px}.binder-mini,.binder-run-mini{min-width:32px}}@media(pointer:coarse){.binder-mini,.binder-run-mini,.binder-run-lead,.binder-mode-btn,.binder-play-btn{min-height:44px}.binder-mini,.binder-run-mini{min-width:44px}.binder-rail button,.binder-rail-add,.binder-search,.binder-plan-row>.binder-row-main,.binder-add-note{min-height:44px}}.link-picker .link-picker-best{border-color:var(--color-focus);box-shadow:inset 0 0 0 1px var(--color-focus)}.link-picker .link-picker-best:after{content:"↵";margin-left:auto;padding-left:var(--space-2);color:var(--color-text-dim)}.binder-endsession{max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto}.binder-endsession-nolater{font-size:var(--text-md);color:var(--color-text-dim);margin:0}.binder-endsession-bulk{display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.binder-run-layout>.run-screen{position:sticky;top:0;max-height:80vh;overflow-y:auto;background-color:var(--color-surface-solid, var(--color-bg));z-index:2}.workspace-dock .binder-run-row .binder-run-main{flex:1 1 100%}.workspace-dock .binder-run-row .binder-run-controls{margin-left:0;flex-wrap:wrap}.workspace-dock .binder-standby-btn .binder-btn-label,.workspace-dock .binder-keep-btn .binder-btn-label{display:inline}@media(max-height:560px){.campaign-shell{height:100vh;height:100dvh;overflow-y:auto}.camp-header,.camp-nav{position:static}.camp-main{overflow:visible}.binder-list{min-height:70vh}.binder-run-layout>.run-screen{position:static;max-height:none}}@media(forced-colors:active){.binder-beat-current{border-width:3px;border-style:double}.binder-mode-btn[aria-pressed=true],.binder-standby-btn[aria-pressed=true],.binder-keep-btn[aria-pressed=true]{border:2px solid CanvasText}}@container (max-width: 560px){.binder-run-main{flex-wrap:wrap}.binder-run-main .binder-row-name{flex:1 1 0}.binder-run-main .binder-row-kind{flex-basis:100%;overflow:visible;white-space:normal}}.binder-row .binder-row-name{white-space:normal;overflow-wrap:anywhere}.binder-row>.binder-row-main{min-width:min(100%,16em)}.binder-run-row>.binder-run-main{min-width:min(100%,calc(110px + 1.2em + 2 * var(--space-2) + 8px))}.binder-run-row>.binder-run-main:has(>.binder-thumb){min-width:min(100%,calc(156px + 1.2em + 3 * var(--space-2) + 8px))}@container (min-width: 761px){.binder-run-layout:has(>.run-screen:not([hidden])) .binder-run-row>.binder-run-main{min-width:min(100%,18em)}}@media(max-width:900px){.workspace-dock .workspace-dock-body,.workspace-dock .workspace-dock-body.workspace-hosting{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px));scroll-padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}}.run-screen-chip-item{display:inline-flex}.binder-list.binder-list-run{container-type:inline-size}.binder-list{overflow-anchor:none}.binder-run-layout{display:flex;gap:var(--space-5);align-items:flex-start}.binder-run-layout>.binder-runsheet{flex:1 1 26em;min-width:0}.run-screen{flex:1 1 22em;min-width:0;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:6px;background:var(--color-surface-inset)}.run-screen[hidden]{display:none}.run-screen-head{display:flex;align-items:center;gap:var(--space-3)}.run-screen-title{flex:1;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dim)}.run-screen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13em,1fr));grid-auto-rows:minmax(6em,auto);gap:var(--space-3)}.run-screen.folded .run-screen-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.run-screen-chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:999px;background:none;color:var(--color-text-soft);font:inherit;font-size:var(--text-md);cursor:pointer}.run-screen-chip:hover{background:var(--color-surface-raised);color:var(--color-text)}.run-pane{display:flex;flex-direction:column;min-height:0;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-raised);overflow:hidden}.run-pane.wide{grid-column:1 / -1}.run-pane.torn{border-style:dashed;opacity:.75}.run-pane:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.run-pane-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap}.run-pane-name{font-size:var(--text-md);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-pane-controls{display:flex;align-items:center;gap:3px;margin-left:auto;flex-wrap:wrap}.run-pane-body{flex:1;min-height:0;max-height:8em;overflow:auto;padding:var(--space-3)}.run-pane-text{font-size:var(--text-md);white-space:pre-wrap}.run-pane-dim{color:var(--color-text-dim);font-style:italic}.run-pane-art img{display:block;max-width:100%;max-height:11em;object-fit:contain;border-radius:3px}.run-pane-caption{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--color-text-muted)}.run-pane-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.5em,1fr));gap:var(--space-3)}.run-pane-stat{display:flex;flex-direction:column;gap:1px}.run-pane-stat-key{font-size:var(--text-md);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim)}.run-pane-stat-val{font-size:var(--text-md);font-family:var(--font-mono)}.binder-keep-btn[aria-pressed=true]{border-color:var(--color-accent-border);color:var(--color-text)}@container (max-width: 760px){.run-screen-grid{grid-template-columns:minmax(0,1fr)}.binder-run-layout{flex-direction:column}.binder-run-layout>.binder-runsheet{flex:none;width:100%}.binder-run-layout>.run-screen{flex:none;width:100%;order:-1;max-height:40vh}}.binder-run-layout>.binder-runsheet .binder-run-row{min-width:0;overflow:hidden}@container (max-width: 560px){.binder-standby-btn .binder-btn-label,.binder-keep-btn .binder-btn-label{display:none}}.dock-chat-tabs{display:none}.dock-chat-tab-badge{position:absolute;top:-6px;right:-6px;min-width:18px;padding:0 var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:18px;text-align:center;color:var(--color-bg-app);background:var(--color-accent);border-radius:var(--radius-2xl)}@media(min-width:901px)and (max-width:1279px){.workspace-dock:not(.collapsed):not(.workspace-mode) .dock-chat-tabs{display:inline-flex;flex:0 0 auto;gap:2px;padding:2px;background:var(--dock-surface-raised);border:1px solid var(--dock-border);border-radius:var(--radius-lg)}.dock-chat-tab{position:relative;min-width:64px;min-height:40px;padding:0 var(--space-4);color:var(--dock-text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--text-md)}.dock-chat-tab:hover{color:var(--dock-text)}.dock-chat-tab.active{color:var(--dock-highlight);background:color-mix(in srgb,var(--dock-highlight) 16%,var(--dock-surface));border-color:color-mix(in srgb,var(--dock-highlight) 55%,transparent);font-weight:var(--weight-semibold)}#app.chat-in-dock{--dock-chat-height: 40vh}#app.chat-in-dock.chat-tab-picked{--dock-chat-height: calc(40vh + 96px) }#app.chat-in-dock .workspace-dock .console-attack-row,#app.chat-in-dock .workspace-dock .console-attack-row+.console-out-of-turn{order:-1}#app.chat-in-dock .workspace-dock .console-section>.workspace-section-heading,#app.chat-in-dock .workspace-dock .console-attack-how,#app.chat-in-dock .workspace-dock .console-abilities-caption,#app.chat-in-dock .workspace-dock .console-mode-explain,#app.chat-in-dock .workspace-dock .console-common-explain,#app.chat-in-dock .workspace-dock .console-turn:not(.mine){display:none}#app.chat-in-dock .chat-commands{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#app.chat-in-dock .chat-commands-more{display:none}#app.chat-in-dock .chat-commands-help{display:inline}#app.chat-in-dock .chat-panel.chat-workspace.open{top:auto;right:0;bottom:0;width:min(390px,92vw);height:var(--dock-chat-height);background:var(--color-surface-solid);border-radius:0;border-top:2px solid var(--color-border-strong);border-right:0;border-bottom:0;box-shadow:0 -8px 24px var(--shadow-ink-soft)}#app.chat-in-dock .chat-panel.chat-workspace.open .chat-workspace-header,#app.chat-in-dock .chat-panel.chat-workspace.open .chat-roster{display:none}#app.chat-in-dock .chat-panel.chat-workspace.open .chat-workspace-controls{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-2);row-gap:var(--space-1);padding-top:var(--space-2)}#app.chat-in-dock .chat-panel.chat-workspace.open .chat-workspace-controls>*{grid-column:1 / -1}#app.chat-in-dock .chat-panel.chat-workspace.open .chat-as-row{grid-column:1;grid-row:1;min-width:0;margin-right:0}#app.chat-in-dock .chat-panel.chat-workspace.open .chat-input{grid-column:2;grid-row:1;min-width:0}#app.chat-in-dock .chat-panel.chat-workspace.open .chat-as-row label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#app.chat-in-dock .chat-panel.chat-workspace.open .chat-as-row .srd-select{max-width:9.5em;border-radius:var(--radius-2xl)}#app.chat-in-dock .chat-panel.chat-workspace.open .chat-download{display:none}#app.chat-in-dock .workspace-dock:not(.collapsed):not(.workspace-mode) .workspace-dock-body{margin-bottom:var(--dock-chat-height)}#app.chat-in-dock .workspace-dock .console-identity,#app.chat-in-dock .workspace-dock .console-hp-bar{display:none}#app.chat-in-dock .workspace-dock .workspace-dock-nav{gap:var(--space-2);padding-block:var(--space-3)}#app.chat-in-dock .workspace-dock .console-header{padding:var(--space-3);gap:var(--space-2)}#app.chat-in-dock .workspace-dock .player-workspace-tabs .workspace-tab .ink-glyph{display:none}#app.chat-in-dock .workspace-dock .player-workspace-tabs .workspace-tab{padding-block:var(--space-2)}#app.chat-in-dock .workspace-dock .console-stat{flex-direction:row;justify-content:center;gap:var(--space-2);padding-block:var(--space-1)}#app.chat-in-dock .workspace-dock .console-turn{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-3);padding-block:var(--space-2)}#app.chat-in-dock .workspace-dock .console-inspiration:not(.has){display:none}#app.chat-in-dock .workspace-dock .console-flags:empty{display:none}#app.chat-in-dock .workspace-dock:not(.workspace-mode) .workspace-dock-header{min-height:0;padding-block:var(--space-2)}#app.chat-in-dock .workspace-dock:not(.workspace-mode) .workspace-dock-subtitle{display:none}#app.chat-in-dock .workspace-dock .console-ability-score{display:none}#app.chat-in-dock .workspace-dock .console-ability{flex-direction:row;justify-content:center;gap:var(--space-1)}#app.chat-in-dock .workspace-dock .workspace-dock-body{padding-top:var(--space-3)}}.workspace-dock-heading{min-width:0}.workspace-dock-heading>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-commands{padding:0 var(--space-4);font-size:var(--text-md);line-height:1.35;color:var(--color-text-dim)}.chat-commands-help{display:none}.chat-as-row label{white-space:nowrap}.chat-strip-word{writing-mode:vertical-rl;font-size:var(--text-md);letter-spacing:.08em;color:var(--color-text-dim)}.roll-hud .roll-hud-total{font-size:var(--text-2xl);line-height:1}.roll-hud-verdict{display:flex;flex-direction:column;align-items:center;gap:2px}.roll-hud-verdict[hidden]{display:none}.roll-hud-verdict-word{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:.04em;color:var(--color-text)}.roll-hud-verdict[data-kind=hit] .roll-hud-verdict-word{color:var(--color-success)}.roll-hud-verdict[data-kind=miss] .roll-hud-verdict-word{color:var(--color-text-muted)}.roll-hud-verdict[data-kind=tell] .roll-hud-verdict-word{color:var(--color-highlight)}.roll-hud-verdict-detail{font-size:var(--text-md);color:var(--color-text-muted)}.console-attack-how,.console-mode-explain,.console-common-explain,.console-abilities-caption{margin:0;font-size:var(--text-md);color:var(--dock-text-muted)}.console-roll-mode-wrap,.console-common-wrap,.console-abilities{display:flex;flex-direction:column;gap:var(--space-2)}.console-abilities-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-1)}.console-ability{min-width:0;display:flex;flex-direction:column;align-items:center;gap:0;padding:var(--space-1) 0;color:var(--dock-text);background:var(--dock-surface);border:1px solid var(--dock-border);border-radius:var(--radius-md);line-height:1.2}.console-ability:hover:not(:disabled){border-color:var(--color-accent-border)}.console-ability-key{font-size:var(--text-md);letter-spacing:.08em;color:var(--dock-text-muted)}.console-ability-mod{font-size:var(--text-base)}.console-ability-score{font-size:var(--text-md);color:var(--dock-text-dim)}.console-pips{display:inline-flex;gap:3px;vertical-align:middle}.console-pips i{width:9px;height:9px;border:1px solid var(--dock-text-dim);border-radius:50%}.console-pips i.filled{background:var(--color-highlight);border-color:var(--color-highlight)}.console-slot{display:inline-flex;align-items:center;gap:var(--space-2)}.console-slot strong{color:var(--dock-text);font-size:var(--text-md)}.console-movement-bar{display:block;flex:none;width:100%;height:4px;margin-top:var(--space-1);overflow:hidden;background:var(--dock-surface-raised);border-radius:var(--radius-sm)}.console-movement-bar>i{display:block;height:100%;background:var(--color-highlight)}.console-movement-bar.over>i{background:var(--dock-warning)}.console-movement.over{color:var(--dock-warning);font-weight:var(--weight-semibold)}.console-out-of-turn{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);color:var(--dock-text);background:var(--dock-surface);border:1px solid var(--color-warning);border-radius:var(--radius-md)}.console-out-of-turn p{margin:0;font-weight:var(--weight-semibold)}.console-out-of-turn.console-out-of-turn-top{position:sticky;top:0;z-index:2;box-shadow:0 6px 16px var(--shadow-ink-soft)}.console-out-of-turn small{color:var(--dock-text-muted);font-size:var(--text-md)}.turn-banner{flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px)}.turn-banner.turn-banner-waiting{background:color-mix(in srgb,var(--color-bg-deep, #14161d) 70%,transparent);border-style:dashed}.turn-banner.turn-banner-waiting .turn-banner-name{font-weight:var(--weight-semibold);letter-spacing:.02em}.turn-banner.turn-banner-mine .turn-banner-name{letter-spacing:.02em}.turn-banner.turn-banner-moment{padding:10px 20px;font-size:var(--text-base);border-width:2px;box-shadow:0 0 0 4px color-mix(in srgb,var(--color-accent) 30%,transparent),0 6px 24px var(--shadow-ink-soft);animation:turn-moment-in .42s var(--ease-standard)}.turn-banner.turn-banner-moment-calm{animation:none}@keyframes turn-moment-in{0%{transform:translate(-50%) scale(.92);opacity:.4}to{transform:translate(-50%) scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.turn-banner.turn-banner-moment{animation:none}}.turn-banner-rule{flex-basis:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-3);font-size:var(--text-md);color:var(--color-text)}.turn-banner.turn-banner-has-rule{border-radius:var(--radius-xl);max-width:min(520px,calc(100vw - 24px))}@media(min-width:901px){.rail:has(.rail-flyout:not([hidden])){z-index:calc(var(--z-tour) + 1)}}@media(min-width:901px)and (max-width:1279px){.workspace-dock-open .turn-banner,.workspace-dock-open .turn-banner.turn-banner-has-rule{left:calc((var(--rail-left, 88px) + 70px + 100% - min(390px,92vw)) / 2);max-width:calc(100% - min(390px,92vw) - var(--rail-left, 88px) - 86px)}}@media(min-width:1280px){.workspace-dock-open .hp-chip,body:has(#app.workspace-dock-open) .rail-toasts:not(.station-placement-active){left:calc((var(--rail-left, 88px) + 80px + 100% - var(--workspace-dock-width)) / 2)}.workspace-dock-open .chat-panel:not(.chat-workspace):not(.chat-beside-workspace)~.hp-chip,.workspace-dock-open .chat-panel.chat-workspace.open~.hp-chip{left:calc((var(--rail-left, 88px) + 80px + 100% - var(--workspace-dock-width) - var(--chat-width) - 10px) / 2)}}@media(min-width:901px)and (max-width:1279px){.workspace-dock-open .hp-chip,body:has(#app.workspace-dock-open) .rail-toasts:not(.station-placement-active){left:calc((var(--rail-left, 88px) + 80px + 100% - min(390px,92vw)) / 2);max-width:calc(100% - min(390px,92vw) - var(--rail-left, 88px) - 96px)}.workspace-dock-open .hp-chip{flex-wrap:wrap;justify-content:center}}.casting-shape-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.casting-shape-row[hidden]{display:none}.casting-shape-label{margin-right:var(--space-2);font-size:var(--text-md);font-weight:var(--weight-semibold)}.casting-preset.active{color:var(--color-highlight);background:var(--highlight-surface);border-color:var(--highlight-border)}.casting-slot-single{display:none}.casting-slot-note{font-size:var(--text-md);color:var(--color-text-muted)}.casting-slot-note[hidden]{display:none}.casting-aim-row{align-items:center}.casting-advanced>summary{cursor:pointer;font-size:var(--text-md);color:var(--color-text-muted)}.casting-advanced[hidden]{display:none}.casting-adv-field{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--color-text-muted)}.casting-conc{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-md)}@media(min-width:901px){.casting-panel{top:104px;bottom:auto;max-height:calc(100vh - 190px)}}@media(min-width:901px)and (max-width:1279px){.casting-panel{top:124px;max-height:calc(100vh - 210px)}.chat-panel.chat-workspace~.casting-panel{right:12px}#app.workspace-dock-open>.chat-panel.chat-workspace~.casting-panel{top:var(--dock-head-h, 72px);right:0;bottom:0;width:min(390px,92vw);max-height:none;border-radius:0;border-right:0;border-bottom:0;background:var(--color-surface-solid);box-shadow:-10px 0 24px var(--shadow-ink-soft)}#app.workspace-dock-open.chat-in-dock>.chat-panel.chat-workspace~.casting-panel{bottom:var(--dock-chat-height)}#app.workspace-dock-open>.chat-panel:not(.chat-workspace)~.casting-panel{right:calc(min(390px,92vw) + 12px);width:min(300px,calc(100vw - min(390px,92vw) - 180px))}}.casting-panel{overflow-x:hidden}.casting-target-opt{flex-wrap:wrap;row-gap:var(--space-2)}.casting-target-opt>.casting-target-name{flex:1 1 calc(100% - 32px);min-width:0;overflow-wrap:anywhere}.casting-target-opt>.casting-save-result{flex:1 1 auto;min-width:0;max-width:100%}.casting-roll-controls{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);max-width:100%;min-width:0}.casting-roll-controls>.srd-select{min-width:0}.casting-slot-note.casting-slot-empty{color:var(--color-warning);font-weight:var(--weight-semibold)}.roll-hud .roll-hud-label{max-width:100%}@media(min-width:901px){#app:has(>.casting-panel:not([hidden]))>.roll-hud{left:calc((var(--rail-left, 88px) + 70px + 100% - var(--chat-width) - 288px) / 2);max-width:calc(100% - var(--chat-width) - 288px - var(--rail-left, 88px) - 86px)}}@media(min-width:901px)and (max-width:1279px){#app.workspace-dock-open>.roll-hud,#app.workspace-dock-open:has(>.chat-panel.chat-workspace):has(>.casting-panel:not([hidden]))>.roll-hud{left:calc((var(--rail-left, 88px) + 70px + 100% - min(390px,92vw)) / 2);max-width:calc(100% - min(390px,92vw) - var(--rail-left, 88px) - 86px)}#app.workspace-dock-open:has(>.chat-panel:not(.chat-workspace)):has(>.casting-panel:not([hidden]))>.roll-hud{left:calc((var(--rail-left, 88px) + 70px + 100% - min(390px,92vw) - 312px) / 2);max-width:calc(100% - min(390px,92vw) - 312px - var(--rail-left, 88px) - 86px)}}@media(min-width:1280px){#app.workspace-dock-open>.roll-hud{left:calc((var(--rail-left, 88px) + 70px + 100% - var(--workspace-dock-width)) / 2)}#app.workspace-dock-open:has(>.casting-panel:not([hidden]))>.roll-hud{left:calc((var(--rail-left, 88px) + 70px + 100% - var(--workspace-dock-width) - var(--chat-width) - 288px) / 2);max-width:calc(100% - var(--workspace-dock-width) - var(--chat-width) - 288px - var(--rail-left, 88px) - 86px)}}@media(min-width:901px){.templates-panel{left:calc(var(--rail-left, 10px) + 76px)}}.map-tool-svg{display:block}.map-tool-zoom{display:block;padding:0 var(--space-1);font-size:var(--text-md);font-variant-numeric:tabular-nums;text-align:center;color:var(--color-text-muted)}@media(min-width:1280px){.map-tool-btn[data-mode=hand]{display:none}}@media(hover:none){.map-tool-btn{flex-direction:column;gap:2px;min-width:56px;padding:var(--space-2) var(--space-1)}.map-tool-label{max-width:none;opacity:1;font-size:var(--text-md)}}@media(pointer:coarse){.console-use,.console-mode,.console-ability,.workspace-dock .workspace-compact-button,.workspace-dock .workspace-tab,.workspace-dock .workspace-action-button,.console-inspiration,.console-flag.condition,.workspace-dock-collapse,.dock-chat-tab,.chat-workspace-close,.chat-download,.chat-as-row .srd-select,.chat-input,.roll-hud-hint,.turn-banner-done,.turn-banner-rule-ok,.casting-panel button,.casting-panel select,.casting-panel input,.casting-advanced>summary,.hp-chip button,.hp-chip input,.tour-buttons button,.console-checks>summary{min-height:44px}.console-use,.turn-banner-done,.turn-banner-rule-ok,.roll-hud-hint,.hp-chip button,.workspace-dock-collapse{min-width:44px}.roll-hud-hint{padding:0 var(--space-3)}}.spell-level-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.spell-level-chip.active{color:var(--color-highlight);background:var(--highlight-surface);border-color:var(--highlight-border)}@media(pointer:coarse){.spell-level-chip{min-height:44px}}@media(min-width:901px){#app.gm-seat{--workspace-dock-collapsed: 44px}.workspace-dock.gm.collapsed .workspace-dock-collapse{width:40px;height:auto;min-height:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) 0;color:var(--color-text-soft)}.workspace-dock.gm.collapsed .workspace-dock-collapse:hover{color:var(--color-text)}.workspace-dock.gm.collapsed .dock-handle-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:var(--text-md);font-weight:var(--weight-semibold);letter-spacing:.06em;white-space:nowrap}.workspace-dock.gm.collapsed .dock-handle-chevron{font-size:var(--text-xl);line-height:1}}@media(max-width:900px){.workspace-dock.gm.collapsed .dock-handle-label{display:none}}body:has(#app.gm-seat) .rail-toasts:not(.station-placement-active){left:var(--map-center-x, 50%)}@media(min-width:1280px){#app.gm-seat:not(.workspace-dock-open) .chat-panel{right:calc(var(--workspace-dock-collapsed) + 10px)}#app.gm-seat:not(.workspace-dock-open) .scene-wrap{right:calc(var(--workspace-dock-collapsed) + var(--chat-width) + 20px)}#app.gm-seat.workspace-dock-open .scene-wrap{right:calc(var(--workspace-dock-width) + var(--chat-width) + 20px)}#app.gm-seat.workspace-dock-open .turn-banner{left:calc((100% - var(--workspace-dock-width) - var(--chat-width) - 20px) / 2)}#app.gm-seat.workspace-active{--gm-ws-dock: min(40vw, calc(var(--workspace-dock-width) + var(--chat-width)));--gm-ws-chat: 216px}.workspace-active .workspace-dock.gm.workspace-mode:not(.collapsed){width:var(--gm-ws-dock)}#app.gm-seat.workspace-active .chat-panel.chat-beside-workspace{width:var(--gm-ws-chat);right:calc(var(--gm-ws-dock) + 10px)}#app.gm-seat.workspace-active .chat-panel.chat-beside-workspace~.casting-panel{right:calc(var(--gm-ws-dock) + var(--gm-ws-chat) + 20px)}#app.gm-seat.workspace-active .scene-wrap{right:calc(var(--gm-ws-dock) + var(--gm-ws-chat) + 20px)}#app.gm-seat.workspace-active .turn-banner{left:calc((100% - var(--gm-ws-dock) - var(--gm-ws-chat) - 20px) / 2)}}@media(min-width:901px)and (max-width:1279px){.workspace-dock.gm:not(.collapsed){width:min(40vw,390px)}.workspace-active .workspace-dock.gm.workspace-mode:not(.collapsed){width:min(40vw,612px)}#app.gm-seat.workspace-dock-open .scene-wrap{right:min(40vw,390px)}#app.gm-seat.workspace-active .scene-wrap{right:min(40vw,612px)}#app.gm-seat.workspace-dock-open .turn-banner{left:calc((100% - min(40vw,390px))/2)}#app.gm-seat.workspace-active .turn-banner{left:calc((100% - min(40vw,612px))/2)}.workspace-dock.gm:not(.collapsed) .dock-chat-tabs{display:inline-flex;flex:0 0 auto;gap:2px;padding:2px;background:var(--dock-surface-raised);border:1px solid var(--dock-border);border-radius:var(--radius-lg)}.workspace-dock.gm.workspace-mode .workspace-dock-header{flex-wrap:wrap;row-gap:var(--space-2);padding-block:var(--space-3)}.workspace-dock.gm.workspace-mode .workspace-dock-identity{flex:1 1 100%}.workspace-dock.gm.workspace-mode .workspace-dock-subtitle{display:none}.workspace-dock.gm.workspace-mode .dock-chat-tabs{order:2}.workspace-dock.gm.workspace-mode .workspace-exit-button{order:3;margin-left:auto}.workspace-dock.gm.workspace-mode .binder-columns{flex-direction:column}.workspace-dock.gm.workspace-mode .binder-rail{flex:0 0 auto;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;align-items:center;gap:var(--space-1);padding:0 0 var(--space-2);border-right:none;border-bottom:1px solid var(--color-border-subtle)}.workspace-dock.gm.workspace-mode .binder-rail .binder-rail-heading:not(.binder-rail-disclose){display:none}.workspace-dock.gm.workspace-mode .binder-rail .binder-rail-disclose{flex:0 0 auto;min-height:44px;padding-inline:var(--space-2);white-space:nowrap}.workspace-dock.gm.workspace-mode .binder-rail-row{flex:0 0 auto;min-height:44px;max-width:14em}#app.gm-seat:not(.chat-in-dock) .chat-panel{width:1px!important;height:1px!important;top:auto!important;margin:-1px;padding:0!important;border:none!important;box-shadow:none!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap}#app.gm-seat.chat-in-dock .chat-panel{top:auto!important;right:0!important;bottom:0!important;left:auto!important;width:min(40vw,390px)!important;height:var(--dock-chat-height)!important;margin:0;padding:0 var(--space-3) var(--space-3)!important;background:var(--color-surface-solid);border-radius:0;border:0!important;border-top:2px solid var(--color-border-strong)!important;box-shadow:0 -8px 24px var(--shadow-ink-soft)!important;overflow:hidden!important;clip-path:none;transform:none;z-index:calc(var(--z-panels) + 4)}#app.gm-seat.chat-in-dock.workspace-active .chat-panel{width:min(40vw,612px)!important}#app.gm-seat.chat-in-dock .chat-panel .chat-roster,#app.gm-seat.chat-in-dock .chat-panel .chat-download{display:none}#app.gm-seat.chat-in-dock .chat-panel .chat-messages{flex:1;min-height:0}#app.gm-seat.chat-in-dock .chat-panel .chat-as-row{margin-top:var(--space-2)}#app.gm-seat.chat-in-dock .chat-panel .chat-as-row .srd-select{max-width:12em}#app.gm-seat.chat-in-dock .workspace-dock.gm:not(.collapsed) .workspace-dock-body{margin-bottom:var(--dock-chat-height)}#app.gm-seat.chat-in-dock.chat-tab-picked.workspace-active{--dock-chat-height: calc(34vh + 96px) }#app.gm-seat.chat-in-dock .workspace-dock.gm.workspace-mode:has(.binder-runsheet) .binder-header,#app.gm-seat.chat-in-dock .workspace-dock.gm.workspace-mode:has(.binder-runsheet) .binder-rail,#app.gm-seat.chat-in-dock .workspace-dock.gm.workspace-mode .binder-runsheet~.binder-run-strip,#app.gm-seat.chat-in-dock .workspace-dock.gm.workspace-mode .binder-run-strip,#app.gm-seat.chat-in-dock .workspace-dock.gm.workspace-mode .binder-run-legend,#app.gm-seat.chat-in-dock .workspace-dock.gm.workspace-mode .binder-section-header .binder-run-badge{display:none}#app.gm-seat.chat-in-dock .workspace-dock.gm.workspace-mode .binder-section-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#app.gm-seat.chat-in-dock .workspace-dock.gm.workspace-mode .binder-run-row.binder-beat-current{position:sticky;top:0;z-index:2}}.map-tool-cluster[hidden],.map-edit-bar[hidden],.map-edit-popover[hidden]{display:none}.map-edit-bar{position:absolute;top:var(--space-4);left:calc(var(--rail-left, 10px) + var(--space-2));max-width:calc(100% - var(--rail-left, 10px) - var(--space-6));display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);z-index:3;pointer-events:none}.map-edit-bar>*{pointer-events:auto}#app:has(.turn-banner:not([hidden])) .map-edit-bar{top:calc(10px + var(--turn-banner-h, 58px) + var(--space-2))}@media(hover:none){.map-edit-tool kbd{display:none}}.map-edit-tools{display:flex;flex-wrap:wrap;align-items:stretch;gap:var(--space-1);max-width:100%;padding:var(--space-2);background:var(--color-surface-heavy);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 4px 18px var(--shadow-ink-soft)}.map-edit-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:56px;min-height:44px;padding:var(--space-1) var(--space-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-soft);font-size:var(--text-md);line-height:1.15}.map-edit-tool kbd{margin-left:0!important}.map-edit-icon{display:grid;place-items:center;width:20px;height:20px}.map-edit-tool:hover{background:var(--color-surface-raised);border-color:var(--color-border);color:var(--color-text)}.map-edit-tool.active{background:var(--highlight-surface);border-color:var(--highlight-border);color:var(--color-text)}.map-edit-tool.needs-3d{color:var(--color-text-faint)}.map-edit-tool.needs-3d .map-edit-label:after{content:" · 3D";font-size:var(--text-xs)}.map-edit-undo,.map-edit-done{flex-direction:row;gap:var(--space-2);align-self:center;min-height:44px}.map-edit-undo:disabled{opacity:.45;cursor:default}.map-edit-done{margin-left:var(--space-2);padding-inline:var(--space-4);color:var(--color-highlight);background:var(--highlight-surface);border-color:var(--highlight-border);font-weight:var(--weight-semibold)}.map-edit-popover{max-width:100%;padding:var(--space-3);background:var(--color-surface-heavy);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 4px 18px var(--shadow-ink-soft)}.map-edit-panel{display:flex;flex-direction:column;gap:var(--space-3)}.map-edit-precondition{margin:0;max-width:40ch;font-size:var(--text-md);color:var(--color-text)}.map-edit-switch-3d{align-self:flex-start}.map-edit-hint{max-width:min(64ch,100%);padding:var(--space-1) var(--space-3);background:var(--color-surface-heavy);border-radius:var(--radius-md);color:var(--color-text-muted)}.builder-fog-row{padding-top:var(--space-2)}@media(pointer:coarse){.builder-body button,.builder-body [role=radio],.builder-body input[type=range],.scenes-surface button,.scenes-surface select,.scenes-surface input:not([type=file]){min-height:44px}.builder-body .floor-swatch,.scenes-surface .floor-swatch{width:44px;height:44px}.map-edit-tool{min-width:60px}}.workspace-fog,.workspace-encounters{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle)}.workspace-fog-row{flex-wrap:wrap}.workspace-initiative-empty{display:flex;flex-direction:column;gap:var(--space-2)}.workspace-initiative-empty>strong{color:var(--dock-text)}.workspace-initiative-empty .workspace-note{margin:0}.workspace-encounter-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3);background:var(--dock-surface-raised);border:1px solid var(--dock-border);border-radius:var(--radius-md)}.workspace-encounter-name{flex:1 1 auto;min-width:0;font-weight:var(--weight-semibold);color:var(--dock-text)}.workspace-encounter-meta{flex:1 1 100%;order:3;font-size:var(--text-md);color:var(--dock-text-muted)}.workspace-dock .workspace-compact-button.workspace-encounter-deploy{color:var(--color-accent-contrast);background:var(--color-accent);border-color:var(--color-accent-border);font-weight:var(--weight-semibold)}.workspace-encounter-roll{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;color:var(--dock-text);cursor:pointer}.workspace-encounter-roll input{width:20px;height:20px;margin:0;accent-color:var(--dock-highlight)}.builder-asset-row{align-items:center;gap:var(--space-3)}@media(pointer:coarse){.workspace-encounter-deploy,.workspace-fog-row .workspace-compact-button{min-height:44px}.workspace-dock .workspace-compact-button,.workspace-dock .workspace-initiative-row .workspace-compact-button,.workspace-dock .workspace-initiative-row .workspace-tie-chip~.workspace-compact-button{min-width:44px}.workspace-dock input.workspace-initiative-value{min-height:44px;width:60px}.workspace-dock .workspace-initiative-name,.workspace-dock .workspace-exit-button{min-height:44px}.scenes-surface button,.scenes-surface .builder-mini{min-width:44px;min-height:44px}.workspace-dock .binder-rail-disclose,.workspace-dock .binder-rail-row{min-height:44px}}.workspace-dock .workspace-surface .gen-card,.workspace-dock .workspace-surface .workspace-surface-card{color:var(--color-text)}.workspace-dock .workspace-surface .workspace-note{color:var(--color-text-muted);background:var(--color-surface-inset);border-color:var(--color-border-subtle)}.workspace-dock .workspace-surface .workspace-section-heading strong{color:var(--color-text)}.workspace-dock .workspace-surface .workspace-section-heading span,.workspace-dock .workspace-surface .workspace-muted{color:var(--color-text-muted)}.workspace-dock .workspace-dock-body:not(.workspace-hosting) input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),.workspace-dock .workspace-dock-body:not(.workspace-hosting) select,.workspace-dock .workspace-dock-body:not(.workspace-hosting) textarea,.workspace-dock input.workspace-initiative-value{color:var(--dock-text);background:var(--dock-surface-raised);border-color:var(--dock-border)}.workspace-dock .workspace-dock-body:not(.workspace-hosting) button:not([class]){color:var(--dock-text);background:var(--dock-surface-raised);border-color:var(--dock-border)}.tour-card-welcome .tour-buttons{justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap}.tour-card-welcome .tour-explore{margin-right:auto}.tour-buttons-left,.tour-buttons-right{display:inline-flex;gap:var(--space-2);align-items:center}.tour-buttons .tour-primer{border-color:var(--highlight-border)}.coach-card{position:fixed;width:300px;max-width:calc(100vw - 24px);padding:var(--space-4) 14px;background:var(--color-surface-solid);border:1px solid var(--color-accent-border);border-radius:var(--radius-2xl);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:0 14px 40px var(--shadow-ink-soft);z-index:var(--z-tour)}.coach-card[hidden]{display:none}.coach-card-title{font-weight:var(--weight-bold);font-size:var(--text-base)}.coach-card-title[hidden]{display:none}.coach-card-body{font-size:var(--text-md);color:var(--color-text-soft);line-height:1.45}.coach-card-buttons{display:flex;justify-content:flex-end;gap:var(--space-2);align-items:center}.coach-card.coach-instruct{border-color:var(--highlight-border);background:var(--color-surface-heavy);padding-right:40px}.coach-card.coach-instruct .coach-card-body{color:var(--color-highlight)}.coach-card.coach-instruct .coach-card-buttons{position:absolute;top:6px;right:6px}.coach-card.coach-instruct .coach-card-close{min-width:28px;padding:2px 6px}.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4) var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-inset)}.empty-state-title{font-size:var(--text-md);color:var(--color-text)}.empty-state-body{margin:0;font-size:var(--text-md);color:var(--color-text-muted);line-height:1.45}.empty-state-action{margin-top:var(--space-1);min-height:32px}.empty-state.empty-state-inline{padding:var(--space-3);gap:var(--space-1)}.workspace-dock .empty-state{background:var(--dock-surface);border-color:var(--dock-border)}.workspace-dock .empty-state-title{color:var(--dock-text)}.workspace-dock .empty-state-body{color:var(--dock-text-muted)}.help-tabs{padding:var(--space-3) 14px 0}.help-body{min-height:120px}.help-section-here{padding:var(--space-3);border:1px solid var(--highlight-border);border-radius:var(--radius-lg);background:var(--highlight-surface)}.help-here{margin-left:var(--space-3);padding:1px var(--space-3);border-radius:var(--radius-pill);background:var(--color-highlight);color:var(--color-bg-deep);font-size:var(--text-md);letter-spacing:.08em;text-transform:uppercase;font-weight:var(--weight-bold)}.help-what{color:var(--color-text);flex:0 0 42%}.help-keys kbd{display:inline-block;min-width:1.4em;padding:0 5px;margin-right:3px;border:1px solid var(--color-border-strong);border-bottom-width:2px;border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-family:var(--font-mono);font-size:var(--text-md);line-height:1.5;text-align:center}.help-game{padding:var(--space-5) 14px 14px;display:flex;flex-direction:column;gap:var(--space-4)}.help-game-intro{margin:0;font-size:var(--text-md);color:var(--color-text-muted);line-height:1.5}.help-ideas{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-md);line-height:1.5;color:var(--color-text-soft)}.help-ideas strong{color:var(--color-text)}.help-primer{align-self:flex-start}.help-words{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-5);font-size:var(--text-md)}.help-words dt{color:var(--color-text);font-weight:var(--weight-bold)}.help-words dd{margin:0;color:var(--color-text-soft);line-height:1.45}@media(max-width:640px){.help-words{grid-template-columns:1fr}.help-words dd{margin-bottom:var(--space-2)}}.workspace-help-btn{flex:none;width:32px;height:32px;border-radius:var(--radius-round);border:1px solid var(--dock-border);background:var(--dock-surface-raised);color:var(--dock-text);font-weight:var(--weight-bold);font-size:var(--text-base);line-height:1}.workspace-help-btn:hover{border-color:var(--dock-highlight);color:var(--dock-highlight)}.workspace-dock.collapsed .workspace-help-btn{display:none}.rail-pills{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.rail-pills:empty{display:none}.rail-pill{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:56px;min-height:44px;padding:var(--space-2) var(--space-2);border-radius:var(--radius-lg);border:1px solid var(--highlight-border);background:var(--highlight-surface);color:var(--dock-text);font-size:var(--text-md);line-height:1.2}.rail-pill-label{letter-spacing:.04em}.rail-pill-count{font-weight:var(--weight-bold);color:var(--dock-highlight);font-size:var(--text-md)}.rail-pill.all-done .rail-pill-count{color:var(--dock-success)}.rail-pill[hidden]{display:none}.rail-row-hinted{align-items:flex-start}.rail-row-label .rail-row-hint{display:block;font-size:var(--text-md);color:var(--color-text-muted);line-height:1.3;margin-top:1px;white-space:normal}.practice-count{font-size:var(--text-md);color:var(--color-text-muted);font-weight:var(--weight-normal)}.practice-row.current{padding:var(--space-2) var(--space-3);margin:0 calc(-1 * var(--space-3));border-radius:var(--radius-lg);background:var(--highlight-surface)}.practice-row-action{align-self:flex-start;margin-top:var(--space-2)}.practice-row:not(.current) .practice-row-action{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}.practice-row:not(.current):hover .practice-row-action,.practice-row:not(.current):focus-within .practice-row-action{position:static;width:auto;height:auto;margin-top:var(--space-2);padding:var(--space-2) var(--space-3);overflow:visible;clip-path:none;opacity:1;pointer-events:auto}@media(hover:none){.practice-row:not(.current) .practice-row-action{position:static;width:auto;height:auto;margin-top:var(--space-2);padding:var(--space-2) var(--space-3);overflow:visible;clip-path:none;opacity:1;pointer-events:auto}}.practice-footnote{margin:0;font-size:var(--text-md);color:var(--color-text-faint)}.gm-setup-hide{align-self:flex-start}.invite-how-dnd{margin-top:var(--space-2)}@media(pointer:coarse){.empty-state-action,.practice-row-action,.coach-card-ok,.coach-card-extra,.help-primer,.tour-back,.tour-skip,.tour-explore,.tour-take{min-height:44px}.coach-card-close,.coach-card.coach-instruct .coach-card-close{min-width:44px;min-height:44px;padding:2px 6px}.coach-card.coach-instruct{padding-right:56px;min-height:56px}.workspace-help-btn{width:44px;height:44px}}#app:has(.turn-banner:not([hidden])) .practice-drawer{top:calc(10px + var(--turn-banner-h, 58px) + var(--space-3));max-height:min(calc(70dvh - var(--turn-banner-h, 58px)),640px)}@media(min-width:901px)and (max-width:1279px){.workspace-active .turn-banner,.workspace-active .turn-banner.turn-banner-has-rule{left:calc((var(--rail-left, 88px) + 70px + 100% - min(612px,96vw)) / 2);max-width:calc(100% - min(612px,96vw) - var(--rail-left, 88px) - 86px);min-width:0}.workspace-active .turn-banner .turn-banner-name{white-space:normal;text-align:center}}@media(max-width:1279px){.workspace-dock:not(.collapsed):not(.workspace-mode) .workspace-dock-subtitle{white-space:normal;overflow:visible;text-overflow:clip}.workspace-dock:not(.collapsed):not(.workspace-mode) .workspace-dock-header{gap:var(--space-3)}}.cd-ac-mode{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-3)}.cd-ac-mode-now{font-size:var(--text-md);color:var(--color-text-muted)}.help-setup .ink-glyph{margin-right:2px}.auth-landing.card-open{overflow:hidden}.auth-landing.card-open .landing-main,.auth-landing.card-open .landing-hero{min-height:100vh}.auth-landing.card-open .landing-hero-inner{align-self:start;padding-top:clamp(28px,6vh,64px);animation:none}.auth-landing.card-open .landing-title{font-size:clamp(var(--text-3xl),6vw,var(--text-display))}.auth-landing.card-open .landing-tagline,.auth-landing.card-open .landing-cta,.auth-landing.card-open .landing-reassure,.auth-landing.card-open .landing-signin{visibility:hidden}.auth-card-wrap{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px 16px;pointer-events:none}.auth-landing.from-landing.card-open .auth-card-wrap{pointer-events:auto;background:var(--color-scrim-art);cursor:default}.invite-page .auth-card-wrap{pointer-events:auto}.invite-card{gap:var(--space-4)}.invite-title{font-size:var(--text-2xl)}.invite-detail,.invite-meta{margin:0;font-size:var(--text-md);line-height:1.5;color:var(--color-text-soft)}.invite-meta{color:var(--color-text-muted)}.invite-card .primary{min-height:48px;font-size:var(--text-base);border-radius:var(--radius-lg)}.invite-later{align-self:center;margin:0;color:var(--color-text-muted)}.auth-card{pointer-events:auto;width:min(400px,100%);max-height:calc(100vh - 48px);overflow-y:auto;padding:24px 24px 20px;display:flex;flex-direction:column;gap:var(--space-5);background:var(--color-surface-heavy);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);font-family:var(--font-ui);color:var(--color-text);margin-top:clamp(72px,14vh,150px)}@media(max-height:820px){.auth-landing .landing-hero-inner{padding-top:20px}.auth-card{margin-top:clamp(56px,10vh,110px);gap:var(--space-4)}}.auth-card.busy{cursor:progress}.auth-invite{margin:0;align-self:stretch;color:var(--color-text);font-size:var(--text-md);line-height:1.5}.auth-invite-lead{display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.auth-invite-verb{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.25;color:var(--color-text)}.auth-invite-detail{margin:0;font-size:var(--text-md);color:var(--color-text-soft)}.auth-invite-unknown{padding:var(--space-3) var(--space-5);border-left:3px solid var(--color-highlight);background:var(--highlight-surface)}.auth-card-frame{position:relative;width:min(400px,100%)}.auth-card-frame .auth-card{width:100%}.auth-close{position:absolute;top:4px;right:8px;z-index:1;margin:0;padding:0 var(--space-4);color:var(--color-text-muted);text-decoration:none}.auth-close:hover,.auth-close:focus-visible{color:var(--color-text);text-decoration:underline}.auth-close+.auth-card{padding-top:40px}.auth-title{margin:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.25;color:var(--color-text)}.auth-notice,.auth-text,.auth-identity{margin:0;font-size:var(--text-md);line-height:1.5;color:var(--color-text-soft)}.auth-notice{padding:var(--space-3) var(--space-5);border-left:3px solid var(--color-highlight);background:var(--highlight-surface);color:var(--color-text)}.auth-loading{margin:0;font-size:var(--text-md);color:var(--color-text-dim)}.auth-address{color:var(--color-text);font-weight:var(--weight-bold);overflow-wrap:anywhere}.auth-card button{font-family:var(--font-ui)}.auth-provider,.auth-submit{display:flex;align-items:center;justify-content:center;gap:var(--space-4);width:100%;min-height:48px;padding:10px 16px;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--motion-fast),border-color var(--motion-fast)}.auth-provider{background:var(--color-surface-raised);border:1px solid var(--color-border-strong);color:var(--color-text)}.auth-provider:hover,.auth-provider:focus-visible{background:var(--color-surface-raised-hover);border-color:var(--color-text-faint)}.auth-card button.primary.auth-submit{background:var(--color-accent);border:1px solid var(--color-accent-border);color:var(--color-accent-contrast)}.auth-card button.primary.auth-submit:hover,.auth-card button.primary.auth-submit:focus-visible{background:var(--color-accent-hover)}.auth-badge{display:inline-block;padding:1px var(--space-4);border-radius:var(--radius-round);background:var(--color-chip);border:1px solid var(--color-border);color:var(--color-text-soft);font-size:var(--text-xs);font-weight:var(--weight-normal);letter-spacing:.04em;text-transform:uppercase}.auth-card button.primary .auth-badge{background:var(--color-accent-contrast);color:var(--color-accent);border-color:transparent}.auth-divider{display:flex;align-items:center;gap:var(--space-5);color:var(--color-text-faint);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.12em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border-subtle)}.auth-form{display:flex;flex-direction:column;gap:var(--space-3)}.auth-label{font-size:var(--text-md);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.auth-input{width:100%;min-height:48px;padding:10px 14px;border-radius:var(--radius-lg);border:1px solid var(--color-border-strong);background:var(--color-surface-inset);color:var(--color-text);font:inherit;font-size:var(--text-base)}.auth-input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.auth-input[readonly]{opacity:.7}.auth-password-row{position:relative;display:flex}.auth-password-row .auth-input{padding-right:72px}.auth-show{position:absolute;right:6px;top:50%;transform:translateY(-50%);min-height:36px;padding:0 var(--space-5);border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-link);font-size:var(--text-sm);cursor:pointer}.auth-show:hover,.auth-show:focus-visible{border-color:var(--color-border)}.auth-hint{margin:0;font-size:var(--text-sm);color:var(--color-text-dim)}.auth-error{margin:0;min-height:0;font-size:var(--text-md);line-height:1.45;color:var(--color-danger)}.auth-error:empty{display:none}.auth-form .auth-submit{margin-top:var(--space-3)}.auth-link{align-self:flex-start;min-height:44px;padding:0 var(--space-2);margin:-8px 0;border:0;background:none;color:var(--color-link);font-size:var(--text-md);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.auth-link:hover,.auth-link:focus-visible{color:var(--color-text)}.auth-resend .auth-link{display:inline;min-height:0;margin:0;padding:0;font-size:inherit}.auth-resend-status{color:var(--color-success)}.auth-devlink{display:inline-block;color:var(--color-highlight);font-size:var(--text-md);padding:var(--space-3) var(--space-2)}.auth-back{color:var(--color-text-muted);text-decoration:none}.auth-terms{margin:var(--space-3) 0 0;font-size:var(--text-sm);line-height:1.4;color:var(--color-text-dim)}.auth-card button:disabled{opacity:.6;cursor:progress}@media(prefers-reduced-motion:reduce){.auth-provider,.auth-submit{transition:none}}.landing-account{display:flex;align-items:center;justify-content:center;gap:var(--space-5);margin:0;font-size:var(--text-md);color:var(--color-text-muted)}.landing-account strong{color:var(--color-text-soft);font-weight:var(--weight-semibold)}.menu-room-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-base);color:var(--color-text)}.menu-room .menu-room-meta{flex:none;padding:1px var(--space-4);border-radius:var(--radius-round);background:var(--color-chip);border:1px solid var(--color-border-subtle);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}.menu-room .menu-room-date{flex:none;font-size:var(--text-sm)}.menu-rooms-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);padding:var(--space-7) var(--space-5);border:1px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);text-align:center}.menu-rooms-empty p{margin:0;font-size:var(--text-base)}.menu-claim-row{margin-top:var(--space-4)}.menu-claim-row .field-hint{flex-basis:100%;text-align:center}.arrive-card{width:min(400px,calc(100vw - 32px))}.arrive-card .auth-invite{align-self:center}.arrive-label{font-size:var(--text-md);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.arrive-card button{min-height:44px}.auth-card-wrap{align-items:start;justify-items:center}.auth-badge,.auth-show,.auth-hint,.auth-terms,.menu-room .menu-room-meta,.menu-room .menu-room-date,.menu-claim-row .field-hint{font-size:var(--text-md)}.auth-mail-links{margin:0;display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-6)}.auth-mail-links .auth-link{display:inline-flex;align-items:center;min-height:44px;margin:-8px 0;text-decoration:underline}.auth-error .auth-inline-link{display:inline;min-height:0;margin:0;padding:0;font-size:inherit;color:var(--color-link)}.auth-title:focus{outline:none}@media(pointer:coarse){.auth-resend .auth-link{display:inline-flex;align-items:center;min-height:44px}.auth-show{min-height:44px;min-width:44px}.auth-link{min-width:44px}.auth-error .auth-inline-link{display:inline-flex;align-items:center;min-height:44px}.landing-account .builder-mini,.menu-room .builder-mini,.menu-claim-row .builder-mini,#menu-claimkey,.menu-claim-reveal{min-height:44px}}.landing .menu-rooms{width:100%}.landing .menu-room{flex-wrap:wrap;justify-content:space-between;row-gap:var(--space-3);padding:var(--space-3) var(--space-4)}.landing .menu-room-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);flex:1 1 24em;min-width:0}.landing .menu-room-name{flex:0 1 auto;min-width:min(14em,100%)}.landing .menu-room-actions{flex:0 0 auto}.landing .menu-room-code{flex:none;font-family:var(--font-mono);font-size:var(--text-md);letter-spacing:.08em;color:var(--color-text-faint)}.landing .menu-room-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-left:auto}.landing .menu-room .builder-mini.primary{background:var(--color-accent);border-color:var(--color-accent-border);color:var(--color-accent-contrast)}.menu-claim-reveal{align-self:center;margin:0;color:var(--color-text-muted);font-size:var(--text-md)}.menu-claim-row[hidden]{display:none}.menu-claim-row .auth-error{flex-basis:100%;text-align:center}.menu-nick-error{margin:var(--space-2) 0 0;text-align:center}.menu-nick-error:empty{display:none}.legacy-card{width:min(420px,calc(100vw - 32px))}.legacy-text{margin:0;font-size:var(--text-md);line-height:1.5;color:var(--color-text-soft)}.legacy-card button{min-height:44px}.legacy-card.busy{cursor:progress}.auth-card,.auth-card-frame{margin-top:clamp(96px,15vh,160px)}.auth-card-frame .auth-card{margin-top:0}@media(max-height:820px){.auth-card,.auth-card-frame{margin-top:clamp(104px,14vh,130px)}.auth-card-frame .auth-card{margin-top:0}}#account-changed{z-index:calc(var(--z-tour) + 1)}.auth-code-form[hidden],.auth-forgot-row[hidden]{display:none}.auth-code-form{padding:var(--space-3) 0 var(--space-2)}.auth-code-input{max-width:12ch;font-size:var(--text-lg);font-variant-numeric:tabular-nums;letter-spacing:.3ch}.auth-forgot-row{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-border-strong)}.auth-forgot-offline{font-size:var(--text-sm)}.auth-reset-account:empty{display:none}.auth-secondary{align-self:flex-start;min-height:44px;padding:8px 16px;border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-raised);color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-semibold);cursor:pointer}.auth-secondary:hover,.auth-secondary:focus-visible{background:var(--color-surface-raised-hover);border-color:var(--color-text-faint)}.auth-forgot-status{color:var(--color-success)}.auth-forgot-status:empty{display:none}.auth-devcode{margin:0;padding:0 var(--space-2);color:var(--color-highlight);font-size:var(--text-md);font-variant-numeric:tabular-nums}.home-account-row{position:relative;display:flex;align-items:center;gap:var(--space-3);margin:calc(-1 * var(--space-2)) 0 var(--space-3)}.home-account-email{margin:0;color:var(--color-text-dim);font-size:var(--text-md);overflow-wrap:anywhere}.home-account-row .home-menu{top:calc(100% + 6px);bottom:auto;left:0;right:auto}
