:root{color-scheme:dark;--ttg-bg-canvas: #141311;--ttg-bg-panel: #1F1D1A;--ttg-bg-elevated: #2A2622;--ttg-board-surface: #352F28;--ttg-bg-parchment: #D8C8A8;--ttg-text-primary: #EFE6D5;--ttg-text-secondary: #B5A68E;--ttg-text-muted: #7D7264;--ttg-text-on-accent: #1F1D1A;--ttg-accent-primary: #C89B3C;--ttg-side-1: #3B82C4;--ttg-side-2: #B83A3A;--ttg-side-3: #36968C;--ttg-side-4: #9A568A;--ttg-status-legal: #4E9A67;--ttg-status-warn: #C97A2B;--ttg-status-illegal: #A62C2B;--ttg-border-strong: #3D362E;--ttg-border-accent: rgba(200, 155, 60, .28);--ttg-shadow-panel: 0 8px 24px rgba(10, 9, 8, .65);--ttg-font-display: "Cinzel", "Fraunces", Georgia, serif;--ttg-font-sans: "Outfit", "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--ttg-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ttg-text-xs: 12px;--ttg-text-sm: 14px;--ttg-text-base: 16px;--ttg-text-lg: 20px;--ttg-text-xl: 28px;--ttg-text-2xl: 40px;--ttg-radius-sm: 4px;--ttg-radius-md: 6px;--ttg-radius-lg: 8px;--ttg-radius-round: 9999px;--ttg-space-1: 4px;--ttg-space-2: 8px;--ttg-space-3: 12px;--ttg-space-4: 16px;--ttg-space-5: 24px;--ttg-space-6: 32px;accent-color:var(--ttg-accent-primary)}*,*:before,*:after{box-sizing:border-box}::selection{background-color:var(--ttg-accent-primary);color:var(--ttg-text-on-accent)}html,body{margin:0;padding:0;inline-size:100%;block-size:100dvh;background-color:var(--ttg-bg-canvas);color:var(--ttg-text-primary);font-family:var(--ttg-font-sans);font-size:var(--ttg-text-sm);line-height:1.45;overflow:clip}#app{position:relative;inline-size:100%;block-size:100dvh;display:grid;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);grid-template-areas:"board";background-color:var(--ttg-bg-canvas);overflow:clip}.ttg-board-stage{grid-area:board;position:relative;inline-size:100%;block-size:100%;min-inline-size:0;min-block-size:0;background-color:var(--ttg-bg-canvas);touch-action:none;-webkit-user-select:none;user-select:none;overflow:clip}.ttg-board-stage canvas{display:block;inline-size:100%;block-size:100%}.ttg-board-stage[data-panning=true],.ttg-board-stage[data-panning=true] canvas{cursor:grabbing!important}.ttg-board-zoom-controls{position:absolute;inset-block-end:12px;inset-inline-end:12px;z-index:25;display:inline-flex;align-items:safe center;gap:2px;padding:3px;background-color:var(--ttg-bg-panel);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);box-shadow:var(--ttg-shadow-panel)}.ttg-zoom-btn,.ttg-zoom-readout{background-color:var(--ttg-bg-elevated);border:1px solid var(--ttg-border-strong);border-radius:2px;color:var(--ttg-text-primary);font-family:var(--ttg-font-mono);font-size:12px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:safe center;justify-content:safe center}.ttg-zoom-btn{inline-size:26px;block-size:24px;font-size:14px}.ttg-zoom-readout{min-inline-size:46px;block-size:24px;padding-inline:6px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--ttg-accent-primary)}.ttg-zoom-btn:hover:not(:disabled),.ttg-zoom-readout:hover:not(:disabled){border-color:var(--ttg-accent-primary)}.ttg-zoom-btn:disabled{opacity:.4;cursor:not-allowed}.ttg-rivet{inline-size:6px;block-size:6px;border-radius:var(--ttg-radius-round);background:radial-gradient(circle at 30% 30%,var(--ttg-accent-primary),var(--ttg-bg-panel));border:1px solid var(--ttg-border-strong);flex-shrink:0}.ttg-turn-bar{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-3);padding-block:var(--ttg-space-2);padding-inline:var(--ttg-space-4);background-color:var(--ttg-bg-panel);border-block-end:2px solid var(--ttg-border-strong);box-shadow:inset 0 -1px 0 var(--ttg-border-accent),var(--ttg-shadow-panel)}.ttg-turn-cluster{display:flex;align-items:safe center;gap:var(--ttg-space-2);flex-wrap:wrap}.ttg-turn-center{flex:1 1 0;min-inline-size:0;display:flex;justify-content:center}.ttg-active-banner{display:inline-flex;align-items:safe center;gap:var(--ttg-space-2);max-inline-size:100%;min-inline-size:0;overflow:hidden;white-space:nowrap;padding-block:5px;padding-inline:var(--ttg-space-4);background-color:var(--ttg-bg-elevated);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);box-shadow:inset 0 0 0 1px var(--ttg-border-accent)}:where([data-side-slot="1"]){--ttg-side-color: var(--ttg-side-1)}:where([data-side-slot="2"]){--ttg-side-color: var(--ttg-side-2)}:where([data-side-slot="3"]){--ttg-side-color: var(--ttg-side-3)}:where([data-side-slot="4"]){--ttg-side-color: var(--ttg-side-4)}.ttg-active-banner[data-side-slot="1"]{border-color:var(--ttg-side-1)}.ttg-active-banner[data-side-slot="2"]{border-color:var(--ttg-side-2)}.ttg-active-banner[data-side-slot="3"]{border-color:var(--ttg-side-3)}.ttg-active-banner[data-side-slot="4"]{border-color:var(--ttg-side-4)}.ttg-side-dot{inline-size:9px;block-size:9px;border-radius:var(--ttg-radius-round);flex-shrink:0}.ttg-side-dot[data-side-slot="1"]{background-color:var(--ttg-side-1);box-shadow:0 0 6px var(--ttg-side-1)}.ttg-side-dot[data-side-slot="2"]{background-color:var(--ttg-side-2);box-shadow:0 0 6px var(--ttg-side-2)}.ttg-side-dot[data-side-slot="3"]{background-color:var(--ttg-side-3);box-shadow:0 0 6px var(--ttg-side-3)}.ttg-side-dot[data-side-slot="4"]{background-color:var(--ttg-side-4);box-shadow:0 0 6px var(--ttg-side-4)}.ttg-active-player-label{flex-shrink:0;font-family:var(--ttg-font-display);font-size:var(--ttg-text-base);font-weight:700;letter-spacing:.04em;color:var(--ttg-text-primary)}.ttg-active-subtext{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);color:var(--ttg-accent-primary);font-variant-numeric:tabular-nums}.ttg-dossier-panel{flex:1 1 auto;display:flex;flex-direction:column;justify-content:space-between;gap:var(--ttg-space-3);padding:var(--ttg-space-3);background-color:var(--ttg-bg-panel);border-inline-end:2px solid var(--ttg-border-strong);box-shadow:var(--ttg-shadow-panel);overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ttg-border-strong) var(--ttg-bg-panel)}.ttg-piece-subtitle{font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);color:var(--ttg-accent-primary);font-variant-numeric:tabular-nums}.ttg-dossier-footer{flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ttg-meter-card{background-color:var(--ttg-bg-canvas);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);padding:var(--ttg-space-3)}.ttg-meter-header{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-2);white-space:nowrap;margin-block-end:var(--ttg-space-2)}.ttg-meter-label{font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ttg-text-secondary)}.ttg-meter-value{font-family:var(--ttg-font-mono);font-size:var(--ttg-text-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--ttg-text-primary)}.ttg-meter-track{position:relative;inline-size:100%;block-size:12px;background-color:var(--ttg-bg-elevated);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);overflow:clip}.ttg-meter-fill{block-size:100%;background-color:var(--ttg-status-legal);transition:inline-size .14s ease-out,background-color .14s ease-out}.ttg-meter-fill[data-tone=warn]{background-color:var(--ttg-status-warn)}.ttg-meter-fill[data-tone=danger],.ttg-meter-fill[data-tone=muted]{background-color:var(--ttg-status-illegal)}.ttg-meter-meta{display:flex;justify-content:space-between;gap:var(--ttg-space-2);white-space:nowrap;margin-block-start:6px;font-family:var(--ttg-font-mono);font-size:11px;font-variant-numeric:tabular-nums;color:var(--ttg-text-muted)}.ttg-dossier-empty{padding:var(--ttg-space-2);background-color:var(--ttg-bg-canvas);border:1px dashed var(--ttg-border-strong);border-radius:var(--ttg-radius-md);color:var(--ttg-text-secondary);font-size:var(--ttg-text-xs)}.ttg-log-panel{flex:1 1 auto;display:flex;flex-direction:column;min-block-size:0;padding:var(--ttg-space-4);background-color:var(--ttg-bg-panel);border-inline-start:2px solid var(--ttg-border-strong);box-shadow:var(--ttg-shadow-panel)}.ttg-log-header{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-2);flex-wrap:nowrap;padding-block-end:var(--ttg-space-2);margin-block-end:var(--ttg-space-3);border-block-end:1px solid var(--ttg-border-strong)}.ttg-log-title{margin:0;min-inline-size:0;font-family:var(--ttg-font-display);font-size:var(--ttg-text-base);font-weight:700;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ttg-text-primary)}.ttg-log-count{font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;color:var(--ttg-text-muted)}.ttg-log-stream{position:relative;flex:1 1 auto;min-block-size:0;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ttg-border-strong) var(--ttg-bg-panel);display:flex;flex-direction:column;gap:var(--ttg-space-2);padding-inline-end:4px}.ttg-log-stream[data-scrolled-top=true]{-webkit-mask-image:linear-gradient(to bottom,transparent 0px,#000 18px);mask-image:linear-gradient(to bottom,transparent 0px,#000 18px)}.ttg-log-entry{padding:var(--ttg-space-2);background-color:var(--ttg-bg-elevated);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);font-size:var(--ttg-text-xs)}.ttg-log-entry[data-side-slot="1"]{border-inline-start:3px solid var(--ttg-side-1)}.ttg-log-entry[data-side-slot="2"]{border-inline-start:3px solid var(--ttg-side-2)}.ttg-log-entry[data-side-slot="3"]{border-inline-start:3px solid var(--ttg-side-3)}.ttg-log-entry[data-side-slot="4"]{border-inline-start:3px solid var(--ttg-side-4)}.ttg-log-entry[data-type=RoundStarted],.ttg-log-entry[data-type=GameOver]{background-color:var(--ttg-bg-canvas);border-color:var(--ttg-accent-primary)}.ttg-log-entry-head{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-1);margin-block-end:4px}.ttg-log-entry-title{font-family:var(--ttg-font-sans);font-weight:600;color:var(--ttg-text-primary)}.ttg-log-entry-meta{font-family:var(--ttg-font-mono);font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;color:var(--ttg-text-muted)}.ttg-log-entry-summary{margin:0;font-family:var(--ttg-font-mono);font-size:11px;font-variant-numeric:tabular-nums;color:var(--ttg-text-secondary)}.ttg-cursor-bar{display:flex;align-items:safe center;justify-content:center;block-size:32px;min-inline-size:0;overflow:clip;padding-block:4px;padding-inline:var(--ttg-space-4);background-color:var(--ttg-bg-canvas);border-block-start:1px solid var(--ttg-border-strong);font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);font-variant-numeric:tabular-nums}.ttg-cursor-pill{display:inline-block;max-inline-size:100%;min-inline-size:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-block:2px;padding-inline:var(--ttg-space-3);border-radius:var(--ttg-radius-sm);border:1px solid transparent}.ttg-cursor-pill[data-status=legal]{background-color:#4e9a6729;border-color:var(--ttg-status-legal);color:var(--ttg-status-legal);font-weight:600}.ttg-cursor-pill[data-status=illegal]{background-color:#a62c2b33;border-color:var(--ttg-status-illegal);color:#f28b8a;font-weight:600}.ttg-cursor-pill[data-status=neutral]{color:var(--ttg-text-secondary)}.ttg-command-bar{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-3);padding-block:var(--ttg-space-2);padding-inline:var(--ttg-space-5);background-color:var(--ttg-bg-panel);border-block-start:2px solid var(--ttg-border-strong);box-shadow:inset 0 1px 0 var(--ttg-border-accent);flex-wrap:wrap;flex-wrap:balance}.ttg-cmd-group{display:flex;align-items:safe center;gap:var(--ttg-space-2);flex-wrap:wrap;flex-wrap:balance}.ttg-btn{display:inline-flex;align-items:safe center;justify-content:center;gap:var(--ttg-space-2);padding-block:7px;padding-inline:var(--ttg-space-3);background-color:var(--ttg-bg-elevated);color:var(--ttg-text-primary);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);font-family:var(--ttg-font-sans);font-size:var(--ttg-text-xs);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .12s ease,background-color .12s ease,transform 60ms ease}.ttg-btn:hover:not(:disabled){border-color:var(--ttg-accent-primary)}.ttg-btn:active:not(:disabled){transform:translateY(1px)}.ttg-btn:focus-visible{outline:2px solid var(--ttg-accent-primary);outline-offset:2px}.ttg-btn:disabled{color:var(--ttg-text-muted);opacity:.52;cursor:not-allowed}.ttg-btn[data-active=true]{border-color:var(--ttg-accent-primary);box-shadow:inset 0 0 0 1px var(--ttg-accent-primary)}.ttg-btn-primary{background-color:var(--ttg-accent-primary);color:var(--ttg-text-on-accent);border-color:var(--ttg-accent-primary);font-family:var(--ttg-font-display);font-size:var(--ttg-text-sm);font-weight:700;letter-spacing:.04em;padding-inline:var(--ttg-space-5)}.ttg-btn-primary:hover:not(:disabled){filter:brightness(1.08)}.ttg-hotkey-tag{padding-block:1px;padding-inline:5px;border-radius:3px;background-color:#14131173;font-family:var(--ttg-font-mono);font-size:10px;font-variant-numeric:tabular-nums}.ttg-speed-group{display:inline-flex;align-items:safe center;background-color:var(--ttg-bg-canvas);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);padding:2px;gap:2px}.ttg-speed-label{padding-inline:var(--ttg-space-2);font-family:var(--ttg-font-mono);font-size:10px;color:var(--ttg-text-muted);text-transform:uppercase}.ttg-speed-btn{display:inline-flex;align-items:safe center;justify-content:center;min-block-size:24px;min-inline-size:24px;padding-block:4px;padding-inline:7px;background:transparent;color:var(--ttg-text-secondary);border:1px solid transparent;border-radius:3px;font-family:var(--ttg-font-mono);font-size:11px;font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.ttg-speed-btn:hover{border-color:var(--ttg-border-strong);color:var(--ttg-text-primary)}.ttg-speed-btn:focus-visible{outline:2px solid var(--ttg-accent-primary);outline-offset:2px}.ttg-speed-btn[data-active=true]{background-color:var(--ttg-bg-elevated);border-color:var(--ttg-border-strong);color:var(--ttg-accent-primary);font-weight:700}dialog:modal{overscroll-behavior:contain}dialog::backdrop{overflow:hidden;overscroll-behavior:contain;background-color:#141311d6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}input[type=range].ttg-slider{--slider-track-size: 6px;--slider-thumb-size: 14px;--slider-track-radius: var(--ttg-radius-sm);--slider-thumb-radius: 2px;--slider-track-color: var(--ttg-bg-canvas);--slider-fill-color: var(--ttg-accent-primary);--slider-thumb-color: var(--ttg-accent-primary);--slider-direction: to right;--attr-min: 0;--attr-max: 100;--control-value: 80;--slider-progress: calc( (var(--control-value) - var(--attr-min)) / (var(--attr-max) - var(--attr-min)) * 100% );-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:100%;block-size:24px;margin:0;padding:0;border:0;background:transparent;cursor:pointer}input[type=range].ttg-slider:focus-visible{outline:2px solid var(--ttg-accent-primary);outline-offset:2px}input[type=range].ttg-slider:disabled{opacity:.45;cursor:not-allowed}input[type=range].ttg-slider::-webkit-slider-runnable-track{block-size:var(--slider-track-size);border:1px solid var(--ttg-border-strong);border-radius:var(--slider-track-radius);background:linear-gradient(var(--slider-direction),var(--slider-fill-color) var(--slider-progress),var(--slider-track-color) var(--slider-progress))}input[type=range].ttg-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:var(--slider-thumb-size);block-size:var(--slider-thumb-size);margin-block-start:calc((var(--slider-track-size) - var(--slider-thumb-size)) / 2 - 1px);border:1px solid var(--ttg-text-primary);border-radius:var(--slider-thumb-radius);background:var(--slider-thumb-color)}input[type=range].ttg-slider::-moz-range-track{block-size:var(--slider-track-size);border:1px solid var(--ttg-border-strong);border-radius:var(--slider-track-radius);background:var(--slider-track-color)}input[type=range].ttg-slider::-moz-range-progress{block-size:var(--slider-track-size);border-radius:var(--slider-track-radius);background:var(--slider-fill-color)}input[type=range].ttg-slider::-moz-range-thumb{inline-size:var(--slider-thumb-size);block-size:var(--slider-thumb-size);border:1px solid var(--ttg-text-primary);border-radius:var(--slider-thumb-radius);background:var(--slider-thumb-color)}.ttg-shell-links{display:flex;flex-wrap:wrap;gap:var(--ttg-space-3);justify-content:center}.ttg-shell-link{display:inline-flex;align-items:center;gap:var(--ttg-space-2);padding:var(--ttg-space-1) var(--ttg-space-3);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);color:var(--ttg-text-secondary);font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}.ttg-shell-link:hover{border-color:var(--ttg-accent-primary);color:var(--ttg-text-primary)}.ttg-shell-link:focus-visible{outline:2px solid var(--ttg-accent-primary);outline-offset:2px}ttg-decision-prompt{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:block;pointer-events:auto}ttg-decision-prompt[hidden]{display:none}.ttg-decision-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:safe center;padding:var(--ttg-space-4);background-color:#141311b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overflow-y:auto;overscroll-behavior:contain}.ttg-decision-card{inline-size:min(460px,100%);max-block-size:min(82dvh,100%);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--ttg-space-3);padding:var(--ttg-space-4);background-color:var(--ttg-bg-panel);border:2px solid var(--ttg-border-strong);border-inline-start:4px solid var(--ttg-side-color, var(--ttg-accent-primary));border-radius:var(--ttg-radius-md);box-shadow:inset 0 0 0 1px var(--ttg-border-accent),var(--ttg-shadow-panel);color:var(--ttg-text-primary)}.ttg-decision-card:focus-visible{outline:2px solid var(--ttg-accent-primary);outline-offset:2px}.ttg-decision-header{display:flex;flex-direction:column;gap:var(--ttg-space-1);padding-block-end:var(--ttg-space-2);border-block-end:1px solid var(--ttg-border-strong)}.ttg-decision-kicker{display:inline-flex;align-items:safe center;gap:var(--ttg-space-2);font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ttg-text-secondary)}.ttg-decision-title{margin:0;font-family:var(--ttg-font-display);font-size:var(--ttg-text-lg);font-weight:700;letter-spacing:.03em;color:var(--ttg-text-primary)}.ttg-decision-prompt-text{margin:0;font-family:var(--ttg-font-sans);font-size:var(--ttg-text-sm);color:var(--ttg-text-secondary)}.ttg-decision-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--ttg-space-2)}.ttg-decision-option,.ttg-decision-chip{flex-direction:column;align-items:stretch;justify-content:flex-start;text-align:start;padding-block:var(--ttg-space-2);padding-inline:var(--ttg-space-3);gap:4px}.ttg-decision-chip[data-selected=true]{border-color:var(--ttg-accent-primary);background-color:color-mix(in srgb,var(--ttg-accent-primary) 14%,transparent);box-shadow:inset 0 0 0 1px var(--ttg-accent-primary)}.ttg-decision-option-row{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-2);inline-size:100%}.ttg-decision-option-label{min-inline-size:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--ttg-font-sans);font-size:var(--ttg-text-sm);font-weight:600;color:var(--ttg-text-primary)}.ttg-decision-badge{padding-block:2px;padding-inline:6px;border-radius:var(--ttg-radius-sm);background-color:var(--ttg-bg-canvas);border:1px solid var(--ttg-border-strong);font-family:var(--ttg-font-mono);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ttg-accent-primary);flex-shrink:0}.ttg-decision-option-detail{font-family:var(--ttg-font-mono);font-size:11px;color:var(--ttg-text-muted)}.ttg-decision-selection-meta{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-2);min-block-size:20px;white-space:nowrap;font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);font-variant-numeric:tabular-nums;color:var(--ttg-text-secondary)}.ttg-decision-selection-count[data-selection-valid=false]{color:var(--ttg-status-warn)}.ttg-decision-warning{overflow:hidden;text-overflow:ellipsis;color:var(--ttg-status-warn)}.ttg-decision-actions{display:flex;align-items:safe center;justify-content:flex-end;gap:var(--ttg-space-2);flex-wrap:wrap}ttg-dice-roller{position:absolute;top:0;right:0;bottom:0;left:0;z-index:45;display:block;pointer-events:auto}ttg-dice-roller[hidden]{display:none}.ttg-dice-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:safe center;padding:var(--ttg-space-4);background-color:#14131194;cursor:pointer;overscroll-behavior:contain}.ttg-dice-tray{inline-size:min(520px,100%);max-block-size:min(84dvh,100%);display:flex;flex-direction:column;gap:var(--ttg-space-3);padding:var(--ttg-space-4);background-color:var(--ttg-bg-panel);border:2px solid var(--ttg-border-strong);border-inline-start:4px solid var(--ttg-side-color, var(--ttg-accent-primary));border-radius:var(--ttg-radius-md);box-shadow:inset 0 0 0 1px var(--ttg-border-accent),var(--ttg-shadow-panel);color:var(--ttg-text-primary);opacity:1;transform:scale(1);transition-property:opacity,transform,display;transition-duration:.16s;transition-timing-function:ease-out;transition-behavior:allow-discrete}@starting-style{.ttg-dice-tray{opacity:0;transform:scale(.96)}}@media(prefers-reduced-motion:reduce){.ttg-dice-tray{transform:none;transition-duration:.08s}@starting-style{.ttg-dice-tray{transform:none}}}.ttg-dice-header{display:flex;flex-direction:column;gap:var(--ttg-space-1);padding-block-end:var(--ttg-space-2);border-block-end:1px solid var(--ttg-border-strong)}.ttg-dice-kicker{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-2);font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ttg-text-secondary)}.ttg-dice-player-tag{display:inline-flex;align-items:safe center;gap:var(--ttg-space-2)}.ttg-dice-target{padding-block:1px;padding-inline:6px;border-radius:var(--ttg-radius-sm);background-color:var(--ttg-bg-canvas);border:1px solid var(--ttg-border-strong);color:var(--ttg-accent-primary);font-variant-numeric:tabular-nums}.ttg-dice-title{margin:0;font-family:var(--ttg-font-display);font-size:var(--ttg-text-lg);font-weight:700;letter-spacing:.03em;color:var(--ttg-text-primary)}.ttg-dice-subtitle{margin:0;font-family:var(--ttg-font-sans);font-size:var(--ttg-text-xs);color:var(--ttg-text-secondary)}.ttg-dice-pool{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--ttg-space-3);padding-block:var(--ttg-space-1)}.ttg-dice-subrolls{display:flex;flex-direction:column;gap:var(--ttg-space-2);padding-block-start:var(--ttg-space-2);border-block-start:1px dashed var(--ttg-border-strong)}.ttg-dice-subroll-group{display:flex;flex-direction:column;gap:var(--ttg-space-1)}.ttg-dice-subroll-label{text-align:center;font-family:var(--ttg-font-mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ttg-text-secondary)}.ttg-dice-subpool{gap:var(--ttg-space-2)}.ttg-die-card{inline-size:86px;padding:var(--ttg-space-2);display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:6px;background-color:var(--ttg-bg-elevated);border:2px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-md);box-shadow:inset 0 1px #ffffff0a;transition:border-color .14s ease,box-shadow .14s ease,opacity .14s ease}.ttg-die-card[data-outcome=crit]{border-color:var(--ttg-accent-primary);box-shadow:inset 0 0 0 1px var(--ttg-accent-primary)}.ttg-die-card[data-outcome=success]{border-color:var(--ttg-status-legal)}.ttg-die-card[data-outcome=miss]{border-color:var(--ttg-status-illegal);opacity:.86}.ttg-die-top{inline-size:100%;block-size:16px;display:flex;align-items:safe center;justify-content:space-between;gap:4px;white-space:nowrap;font-family:var(--ttg-font-mono);font-size:10px;color:var(--ttg-text-muted)}.ttg-die-sides,.ttg-die-slot-label{text-transform:uppercase;letter-spacing:.04em}.ttg-die-rerolled{padding-inline:4px;border-radius:3px;background-color:color-mix(in srgb,var(--ttg-accent-primary) 16%,transparent);border:1px solid var(--ttg-border-accent);color:var(--ttg-accent-primary);font-size:9px;text-transform:uppercase}@keyframes ttg-die-tumble{0%{transform:rotate(-5deg) translateY(-2px)}50%{transform:rotate(5deg) translateY(2px)}to{transform:rotate(-5deg) translateY(-2px)}}.ttg-die-face{inline-size:52px;block-size:52px;display:grid;place-items:center;background-color:var(--ttg-bg-canvas);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xl);font-weight:700;font-variant-numeric:tabular-nums;color:var(--ttg-text-primary)}.ttg-die-value{display:block;inline-size:100%;text-align:center}.ttg-die-card[data-outcome=spinning] .ttg-die-face{animation:ttg-die-tumble .24s ease-in-out infinite;color:var(--ttg-accent-primary)}@media(prefers-reduced-motion:reduce){.ttg-die-card[data-outcome=spinning] .ttg-die-face{animation:none;transform:none}}.ttg-die-card[data-outcome=crit] .ttg-die-face{color:var(--ttg-accent-primary)}.ttg-die-card[data-outcome=success] .ttg-die-face{color:var(--ttg-status-legal)}.ttg-die-card[data-outcome=miss] .ttg-die-face{color:#f28b8a}.ttg-die-outcome{inline-size:100%;block-size:16px;display:flex;align-items:center;justify-content:center;white-space:nowrap;font-family:var(--ttg-font-mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ttg-text-secondary)}.ttg-die-card[data-outcome=crit] .ttg-die-outcome{color:var(--ttg-accent-primary)}.ttg-die-card[data-outcome=success] .ttg-die-outcome{color:var(--ttg-status-legal)}.ttg-die-card[data-outcome=miss] .ttg-die-outcome{color:#f28b8a}.ttg-dice-summary{block-size:22px;line-height:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--ttg-text-primary)}.ttg-dice-actions{display:flex;align-items:center;justify-content:center;block-size:30px}.ttg-dice-dismiss-btn,.ttg-dice-dismiss-btn.ttg-btn-primary{block-size:28px;min-inline-size:132px;padding-block:0;padding-inline:var(--ttg-space-3);font-family:var(--ttg-font-mono);font-size:11px;font-weight:700;letter-spacing:.04em}.ttg-dice-hint{text-align:center;white-space:nowrap;font-family:var(--ttg-font-mono);font-size:11px;color:var(--ttg-text-muted)}ttg-table-editor{position:absolute;inset-block-start:12px;inset-inline-end:12px;z-index:42;display:flex;flex-direction:column;inline-size:min(312px,calc(100% - 24px));max-block-size:calc(100% - 68px);pointer-events:auto}ttg-table-editor[hidden]{display:none}ttg-table-editor[data-picking=true]{inline-size:auto;max-inline-size:calc(100% - 24px)}.ttg-table-editor-drawer{display:flex;flex-direction:column;flex:0 1 auto;min-block-size:0;max-block-size:100%;background-color:var(--ttg-bg-panel);border:2px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-md);box-shadow:inset 0 0 0 1px var(--ttg-border-accent),var(--ttg-shadow-panel);color:var(--ttg-text-primary);overflow:clip}.ttg-te-header{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-2);padding:var(--ttg-space-3);border-block-end:1px solid var(--ttg-border-strong);background-color:var(--ttg-bg-elevated)}.ttg-te-header-titles{display:flex;flex-direction:column;gap:2px;min-inline-size:0}.ttg-te-kicker{font-family:var(--ttg-font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ttg-accent-primary)}.ttg-te-title{margin:0;font-family:var(--ttg-font-display);font-size:var(--ttg-text-base);font-weight:700;letter-spacing:.03em}.ttg-te-close-btn{inline-size:28px;block-size:28px;padding:0;font-size:16px;line-height:1;flex-shrink:0}.ttg-table-editor-drawer[data-picking=true] .ttg-te-pick-header{border-block-end:0;padding:var(--ttg-space-2) var(--ttg-space-3);gap:var(--ttg-space-3)}.ttg-te-pick-title{font-family:var(--ttg-font-sans);font-size:var(--ttg-text-xs);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ttg-te-pick-actions{display:inline-flex;align-items:safe center;gap:6px;flex-shrink:0}.ttg-te-cancel-pick-btn{block-size:28px;padding-block:0;padding-inline:var(--ttg-space-2);white-space:nowrap;font-family:var(--ttg-font-sans);font-size:11px;letter-spacing:.02em}.ttg-te-feedback{block-size:22px;line-height:22px;padding-inline:var(--ttg-space-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-color:var(--ttg-bg-canvas);border-block-end:1px solid var(--ttg-border-strong);font-family:var(--ttg-font-mono);font-size:11px;color:var(--ttg-text-muted)}.ttg-te-feedback[data-tone=ok]{color:var(--ttg-status-legal)}.ttg-te-feedback[data-tone=error]{color:#f28b8a}.ttg-te-body{display:flex;flex-direction:column;flex:1 1 auto;min-block-size:0;gap:var(--ttg-space-3);padding:var(--ttg-space-3);overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ttg-border-strong) var(--ttg-bg-panel)}.ttg-te-fieldset{margin:0;padding:var(--ttg-space-2) var(--ttg-space-3) var(--ttg-space-3);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);background-color:var(--ttg-bg-canvas);display:flex;flex-direction:column;gap:var(--ttg-space-2)}.ttg-te-legend{padding-inline:6px;font-family:var(--ttg-font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ttg-text-secondary)}.ttg-te-fields-stack{display:flex;flex-direction:column;gap:var(--ttg-space-2)}.ttg-te-field-col{margin:0;display:flex;flex-direction:column;gap:3px}.ttg-te-label{font-family:var(--ttg-font-sans);font-size:var(--ttg-text-xs);font-weight:600;color:var(--ttg-text-secondary)}.ttg-te-input,.ttg-te-select{inline-size:100%;min-inline-size:0;block-size:32px;padding-inline:var(--ttg-space-2);background-color:var(--ttg-bg-elevated);border:1px solid var(--ttg-border-strong);border-radius:var(--ttg-radius-sm);color:var(--ttg-text-primary);font-family:var(--ttg-font-mono);font-size:var(--ttg-text-xs);font-variant-numeric:tabular-nums}.ttg-te-input:focus-visible,.ttg-te-select:focus-visible{outline:2px solid var(--ttg-accent-primary);outline-offset:2px}.ttg-te-input:invalid:user-invalid{border-color:var(--ttg-status-illegal)}.ttg-te-inline-row{display:flex;align-items:safe center;gap:6px}.ttg-te-set-btn{block-size:32px;padding-inline:10px;flex-shrink:0}.ttg-te-pos-form{margin:0;display:flex;flex-direction:column;gap:var(--ttg-space-2)}.ttg-te-coords-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ttg-space-2)}.ttg-te-pos-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ttg-te-pos-btn,.ttg-te-pos-btn.ttg-btn-primary{padding-inline:6px;font-family:var(--ttg-font-sans);font-size:11px;letter-spacing:.02em;white-space:nowrap}.ttg-te-switch-row{display:flex;align-items:safe center;justify-content:space-between;gap:var(--ttg-space-2);padding-block:3px}.ttg-te-switch{accent-color:var(--ttg-accent-primary);inline-size:16px;block-size:16px;margin:0;cursor:pointer;flex-shrink:0}.ttg-te-switch:focus-visible{outline:2px solid var(--ttg-accent-primary);outline-offset:3px}
