:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app-shell{background:var(--bg);min-height:100vh;color:var(--text);flex-direction:column;display:flex}.app-header{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding:.85rem 1.25rem;display:flex}.app-header-title{color:var(--text-h);margin:0;font-size:1.15rem}.app-nav{flex-wrap:wrap;gap:.5rem 1rem;display:flex}.app-nav a{color:var(--text);font-weight:600;text-decoration:none}.app-nav a:hover,.app-nav a.active{color:var(--accent)}.app-header-spacer{flex:1;min-width:.5rem}.app-sign-out{font:inherit;color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:.4rem .85rem;font-weight:600}.app-sign-out:hover{border-color:var(--accent-border);color:var(--text-h)}.app-main{box-sizing:border-box;flex:1;padding:1.5rem}.app-panel{border:1px solid var(--border);background:var(--bg);max-width:36rem;box-shadow:var(--shadow);border-radius:12px;padding:1.25rem 1.5rem}.app-panel-wide{max-width:48rem}.app-panel h2{color:var(--text-h);margin:0 0 .5rem;font-size:1.2rem}.game-detail-header{margin-bottom:.75rem}.game-detail-header h2{margin:0 0 .35rem}.game-detail-meta{margin:.25rem 0 0;line-height:1.45}.game-detail-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.35rem;margin:.75rem 0 1rem;padding-bottom:.5rem;display:flex}.game-detail-tabs .tab{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:.4rem .75rem;font-weight:600}.game-detail-tabs .tab:hover{color:var(--accent);border-color:var(--border)}.game-detail-tabs .tab.active{color:var(--accent);border-color:var(--accent-border,var(--border));background:var(--surface-emphasis,#0000000d)}.game-tab-panel{gap:1rem;display:grid}.game-tab-panel[hidden]{display:none!important}.game-tab-panel section{margin:0}.game-tab-placeholder h3{margin:0 0 .35rem}.phase-badge{border:1px solid var(--border);border-radius:6px;padding:.2rem .5rem;font-size:.85rem;font-weight:600;display:inline-block}.game-detail-back{margin-top:1.25rem}.create-game-ruleset-hint{text-align:left;margin:0}.tools-coming-list{text-align:left;margin:.75rem 0 1rem;padding-left:1.25rem}.tools-coming-list li{margin:.35rem 0}.game-card-list{text-align:left;gap:.65rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.game-card{border:1px solid var(--border);background:var(--surface-emphasis,#0000000d);border-radius:10px;overflow:hidden}.game-card-summary{cursor:pointer;align-items:center;gap:.6rem;padding:.65rem .85rem;list-style:none;display:flex}.game-card-summary::-webkit-details-marker{display:none}.game-card-summary::marker{content:""}.game-card-chevron{border-right:2px solid var(--text);border-bottom:2px solid var(--text);flex-shrink:0;width:.45rem;height:.45rem;margin-top:-.15rem;transition:transform .15s;transform:rotate(-45deg)}.game-card[open] .game-card-chevron{margin-top:.1rem;transform:rotate(45deg)}.game-card-summary-main{flex:1;gap:.2rem;min-width:0;display:grid}.game-card-title{color:var(--text-h);word-break:break-word;font-size:1rem;font-weight:700;line-height:1.3}.game-card-meta{color:var(--text);opacity:.9;font-size:.85rem;line-height:1.35}.game-card-open{white-space:nowrap;flex-shrink:0;font-weight:600}.game-card-body{border-top:1px solid var(--border);padding:0 .85rem .75rem 2rem}.game-card-description{white-space:pre-wrap;word-break:break-word;margin:.65rem 0 0;font-size:.95rem;line-height:1.45}.game-session-layout,.dice-tools-layout{gap:1.25rem;margin-top:.5rem;display:grid}@media (width>=52rem){.game-session-layout,.dice-tools-layout{grid-template-columns:minmax(0,1fr) minmax(14rem,22rem);align-items:start}.game-session-side{gap:1rem;display:grid}}.encounter-helper{text-align:left}.encounter-helper-form{gap:.65rem;margin:.75rem 0;display:grid}@media (width>=32rem){.encounter-helper-form{grid-template-columns:repeat(2,minmax(0,1fr))}}.encounter-helper-actions{flex-wrap:wrap;gap:.4rem;display:flex}.encounter-result{border:1px solid var(--border);background:var(--surface-emphasis,#0000000d);border-radius:8px;margin-top:.75rem;padding:.65rem .85rem}.encounter-result ul{margin:.5rem 0;padding-left:1.1rem}.initiative-tracker{text-align:left;margin-bottom:1rem}.initiative-list{gap:.35rem;margin:.5rem 0;padding:0;list-style:none;display:grid}.initiative-row{border:1px solid var(--border);border-radius:6px;grid-template-columns:1.5rem 1fr auto auto;align-items:center;gap:.5rem;padding:.4rem .55rem;display:grid}.initiative-rank{opacity:.7;font-weight:700}.initiative-value{text-align:right;min-width:1.5rem;font-weight:700}.initiative-remove{padding:.1rem .45rem;line-height:1}.initiative-add-form{gap:.5rem;margin-top:.75rem;display:grid}.initiative-add-row{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.bestiary-filters{gap:.65rem;margin:.75rem 0;display:grid}@media (width>=32rem){.bestiary-filters{grid-template-columns:1fr 12rem}}.bestiary-list{text-align:left;gap:.4rem;max-height:28rem;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.bestiary-item{border:1px solid var(--border);border-radius:6px;gap:.1rem;padding:.45rem .6rem;display:grid}.dice-tray{text-align:left;gap:.75rem;display:grid}.dice-tray--compact{gap:.55rem}.dice-tray-d20-block{gap:.4rem;display:grid}.dice-tray-mod-label{font-size:.85rem;font-weight:600}.dice-tray-mod-input{width:5rem}.dice-tray-adv-row{flex-wrap:wrap;gap:.4rem;display:flex}.dice-tray-presets{flex-wrap:wrap;gap:.35rem;display:flex}.dice-preset-btn{padding:.3rem .55rem;font-size:.85rem}.dice-tray-form{gap:.6rem;display:grid}.dice-tray-hint{margin:0;font-size:.85rem}.dice-tray-error{color:#f87171;margin:0}.dice-result{border:1px solid var(--border);background:var(--surface-emphasis,#0000000d);border-radius:8px;padding:.65rem .85rem}.dice-result-total{margin:0;font-size:1.75rem;line-height:1.2}.dice-result-breakdown{margin:.35rem 0 0;font-size:.9rem}.roll-log-panel{border:1px solid var(--border);background:var(--surface-emphasis,#0000000d);text-align:left;border-radius:10px}.roll-log-summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .75rem;font-weight:600;list-style:none;display:flex}.roll-log-summary::-webkit-details-marker{display:none}.roll-log-body{max-height:24rem;padding:0 .75rem .65rem;overflow-y:auto}.roll-log-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.roll-log-item{border:1px solid var(--border);border-radius:8px;padding:.5rem .6rem}.roll-log-item-head{align-items:baseline;gap:.5rem;display:flex}.roll-log-item-head strong{font-size:1.15rem}.roll-log-item-meta,.roll-log-item-detail{margin:.2rem 0 0;font-size:.85rem}.dice-tools-reference{text-align:left;margin-top:1.5rem}.conditions-ref summary{cursor:pointer;margin:.5rem 0;font-weight:600}.conditions-list{gap:.45rem;margin:.5rem 0 0;padding-left:1.1rem;font-size:.9rem;display:grid}.app-panel p{margin:0;line-height:1.45}.create-game-form{gap:.75rem;width:min(100%,32rem);margin:.75rem auto 0;display:grid}.form-row{text-align:left;gap:.35rem;display:grid}.form-row input[type=text],.form-row input[type=number],.form-row select,.form-row textarea{box-sizing:border-box;width:100%}.form-row textarea{resize:vertical;min-height:5.5rem}.form-row-inline{justify-content:flex-start;align-items:center;gap:.5rem;display:flex}.search-form,.search-status{margin-top:.75rem}.search-results{gap:.75rem;margin-top:.75rem;padding:0;list-style:none;display:grid}.search-results li{text-align:left}.mailbox-tabs{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.mailbox-tabs .tab{cursor:pointer;padding:.4rem .75rem}.mailbox-tabs .tab.active{font-weight:600;text-decoration:underline}.mailbox-actions{margin:.5rem 0 .75rem}.mailbox-list{gap:.75rem;padding:0;list-style:none;display:grid}.mailbox-item{text-align:left;border:1px solid var(--border,#ccc);border-radius:6px;padding:.6rem .75rem}.mailbox-item.unread{background:var(--surface-emphasis,#0000000d)}.members-list{gap:.5rem;padding:0;list-style:none;display:grid}.member-row{border:1px solid var(--border,#ccc);text-align:left;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.member-meta{min-width:0}.member-actions{flex-wrap:wrap;gap:.5rem;display:flex}.leave-game-row{gap:.4rem;margin-top:1rem;display:grid}.leave-game-row .danger{background:#dc26261a;border-color:#dc262680}.leave-game-row .danger:disabled{opacity:.55;cursor:not-allowed}.leave-hint{opacity:.85;margin:0;font-size:.85rem}.muted{opacity:.85;font-size:.9rem}.reference-block{text-align:left;margin-top:.75rem}.reference-block h4{margin:0 0 .35rem}.reference-body{background:var(--surface-emphasis,#0000000d);border:1px solid var(--border,#ccc);white-space:pre-wrap;word-break:break-word;font:inherit;border-radius:6px;margin:0;padding:.6rem .75rem;font-size:.95rem;line-height:1.4}.game-characters{text-align:left}.game-characters-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.game-characters-toolbar h3{margin:0}.character-card-list{gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.character-card{text-align:left;border:1px solid var(--border);background:var(--surface-emphasis,#0000000d);cursor:pointer;width:100%;font:inherit;color:inherit;border-radius:8px;gap:.15rem;padding:.6rem .75rem;display:grid}.character-card--active{border-color:var(--accent-border,var(--accent,#7c9cff));box-shadow:0 0 0 1px var(--accent-border,var(--accent,#7c9cff))}.character-card--compact{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.character-card-main{gap:.1rem;display:grid}.character-card-owner{font-size:.8rem}.attach-characters-panel{border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;padding:.5rem .75rem}.attach-characters-panel summary{cursor:pointer;font-weight:600}.character-detail{border-top:1px solid var(--border);margin-top:1rem;padding-top:1rem}.character-detail-toolbar{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.character-wizard{border:1px solid var(--border);background:var(--surface-emphasis,#0000000d);border-radius:10px;margin:.75rem 0 1rem;padding:.85rem}.character-wizard-steps{flex-wrap:wrap;gap:.5rem .75rem;margin-bottom:.75rem;font-size:.85rem;display:flex}.character-wizard-steps .active{color:var(--accent,#7c9cff);font-weight:700}.character-wizard-steps .done{opacity:.7}.character-wizard-panel{gap:.65rem;display:grid}.character-wizard-actions{flex-wrap:wrap;gap:.4rem;margin-top:.75rem;display:flex}.character-editor-row{gap:.65rem;display:grid}@media (width>=36rem){.character-editor-row{grid-template-columns:repeat(3,minmax(0,1fr))}}.character-fieldset{border:1px solid var(--border);border-radius:8px;margin:0;padding:.6rem .75rem}.character-fieldset legend{padding:0 .25rem;font-weight:600}.ability-editor-grid,.standard-array-grid{gap:.5rem;display:grid}@media (width>=28rem){.ability-editor-grid,.standard-array-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.skill-editor-grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.35rem .75rem;display:grid}.skill-check-label{cursor:pointer;align-items:center;gap:.35rem;font-size:.9rem;display:flex}.character-assign-mode{gap:.35rem;display:grid}.character-assign-mode label{cursor:pointer;align-items:center;gap:.4rem;display:flex}.character-review-dl{gap:.4rem;margin:0;display:grid}.character-review-dl div{grid-template-columns:6rem 1fr;gap:.5rem;display:grid}.character-review-dl dt{margin:0;font-weight:600}.character-review-dl dd{margin:0}.character-suggest-hp{justify-self:start;margin-bottom:.5rem}.character-sheet-header h3{margin:0 0 .25rem}.character-sheet-subtitle{margin:0 0 .75rem}.character-sheet-grid{gap:.75rem;display:grid}@media (width>=40rem){.character-sheet-grid{grid-template-columns:1fr 1fr}.character-sheet-block--wide{grid-column:1/-1}}.character-sheet-block h4{margin:0 0 .5rem;font-size:.95rem}.ability-scores{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.ability-scores li{grid-template-columns:1fr auto auto;align-items:center;gap:.5rem;display:grid}.ability-label{font-size:.9rem}.ability-score{text-align:center;min-width:1.5rem;font-weight:700}.ability-mod{opacity:.9;text-align:right;min-width:2rem;font-size:.9rem}.character-sheet-prof{margin:.5rem 0 0;font-size:.85rem}.character-stat-dl{gap:.35rem;margin:0;display:grid}.character-stat-dl div{justify-content:space-between;gap:.5rem;display:flex}.character-stat-dl dt{font-weight:600}.character-stat-dl dd{margin:0}.character-skill-list{flex-wrap:wrap;gap:.35rem .75rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.character-sheet-pre{background:var(--surface-emphasis,#0000000d);border:1px solid var(--border);white-space:pre-wrap;font:inherit;border-radius:6px;margin:0;padding:.5rem .65rem;font-size:.9rem}.session-presence{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.session-presence ul{flex-wrap:wrap;gap:.4rem .75rem;margin:0;padding:0;list-style:none;display:flex}.session-presence li{align-items:center;gap:.35rem;display:inline-flex}.presence-dot{background:#4ade80;border-radius:999px;width:.55rem;height:.55rem;display:inline-block;box-shadow:0 0 0 2px #4ade8040}.session-chat{border:1px solid var(--border);background:var(--surface-emphasis,#0000000d);text-align:left;border-radius:10px;gap:.5rem;padding:.65rem .75rem;display:grid}.session-chat h3{margin:0;font-size:1rem}.session-chat-list{gap:.4rem;max-height:16rem;margin:0;padding:.25rem 0;list-style:none;display:grid;overflow-y:auto}.session-chat-row{border:1px solid var(--border);background:var(--surface,transparent);border-radius:8px;padding:.35rem .5rem}.session-chat-meta{margin-bottom:.15rem;font-size:.75rem}.session-chat-body{white-space:pre-wrap;word-break:break-word;font-size:.92rem}.session-chat-form{gap:.4rem;display:flex}.session-chat-form input[type=text]{flex:1;min-width:0}.session-chat-error{color:#dc2626;margin:0;font-size:.85rem}.vtt-panel{text-align:left;gap:.75rem;display:grid}.vtt-canvas-wrapper{gap:.5rem;display:grid}.vtt-canvas-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.vtt-spike-badge{color:#fbbf24;letter-spacing:.04em;text-transform:uppercase;background:#1e293b;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.vtt-canvas-host{border:1px solid var(--border);cursor:crosshair;background:#111827;border-radius:12px;width:100%;height:clamp(20rem,60vh,40rem);position:relative;overflow:hidden}.vtt-canvas-host canvas{width:100%;height:100%;display:block}.vtt-canvas-error{color:#dc2626;margin:0;font-size:.85rem}.vtt-skeleton{background:linear-gradient(90deg, var(--surface-emphasis,#0000000f) 0%, #ffffff14 50%, var(--surface-emphasis,#0000000f) 100%);background-size:200% 100%;border-radius:12px;width:100%;height:clamp(20rem,60vh,40rem);animation:1.2s ease-in-out infinite vtt-skeleton-shimmer}@keyframes vtt-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.vtt-setup-form,.vtt-gm-tools{text-align:left;max-width:28rem}.vtt-gm-tools{border:1px solid var(--border);border-radius:10px;margin-bottom:.75rem;padding:.5rem .75rem}.vtt-gm-tools summary{cursor:pointer;font-weight:600}.vtt-grid-form,.vtt-replace-form{gap:.5rem;margin-top:.75rem;display:grid}.vtt-canvas-loading{margin:.35rem 0 0}.vtt-stage{grid-template-columns:minmax(12rem,16rem) 1fr;align-items:start;gap:.75rem;display:grid}@media (width<=768px){.vtt-stage{grid-template-columns:1fr}}.vtt-token-tray{border:1px solid var(--border);background:var(--surface,#00000005);border-radius:10px;gap:.75rem;max-height:clamp(20rem,60vh,40rem);padding:.65rem .75rem;display:grid;overflow-y:auto}.vtt-tray-heading{margin:0 0 .35rem;font-size:.85rem;font-weight:600}.vtt-tray-section{gap:.35rem;display:grid}.vtt-placement-hint{color:#e2e8f0;background:#1e3a5f;border-radius:8px;margin:0;padding:.45rem .55rem;font-size:.85rem}.vtt-cancel-place{color:#93c5fd;cursor:pointer;font:inherit;background:0 0;border:none;margin-left:.35rem;padding:0;text-decoration:underline}.vtt-npc-form{gap:.45rem;display:grid}.vtt-place-list,.vtt-token-list{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.vtt-place-btn,.vtt-token-row{text-align:left;width:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:.45rem;padding:.35rem .45rem;display:flex}.vtt-place-btn:hover,.vtt-token-row:hover{background:#ffffff0f}.vtt-token-list li{align-items:center;gap:.25rem;display:flex}.vtt-token-list li.is-selected .vtt-token-row{background:#facc151f;border-color:#facc15}.vtt-token-swatch{border:1px solid #ffffff40;border-radius:999px;flex-shrink:0;width:1.1rem;height:1.1rem}.vtt-token-row-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.vtt-token-remove{color:#f87171;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;width:1.75rem;height:1.75rem;font-size:1.1rem;line-height:1}.vtt-token-remove:hover{background:#f8717126}.vtt-stage .vtt-canvas-wrapper{min-width:0}.vtt-canvas-host{cursor:default}.session-loading-screen{box-sizing:border-box;background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.session-loading-card{border:1px solid var(--border);background:var(--bg);width:100%;max-width:20rem;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;align-items:center;gap:1rem;padding:1.75rem;display:flex}.session-loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:2rem;height:2rem;animation:.65s linear infinite session-loading-spin}@keyframes session-loading-spin{to{transform:rotate(360deg)}}.session-loading-text{text-align:center;color:var(--text-h);margin:0;font-size:.95rem}.auth-page{box-sizing:border-box;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{border:1px solid var(--border);background:var(--bg);width:100%;max-width:22rem;box-shadow:var(--shadow);border-radius:12px;padding:1.75rem}.auth-card h1{color:var(--text-h);margin:0 0 .35rem;font-size:1.35rem}.auth-lede{margin:0 0 1.25rem;font-size:.95rem}.auth-form label{color:var(--text-h);margin-bottom:.35rem;font-size:.9rem;display:block}.auth-form input{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);box-sizing:border-box;border-radius:8px;margin-bottom:1rem;padding:.5rem .65rem}.auth-form input:focus{outline:2px solid var(--accent-border);outline-offset:1px}.auth-form .password-field{align-items:stretch;margin-bottom:1rem;display:flex}.auth-form .password-field input{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0;flex:1;min-width:0;margin-bottom:0}.auth-form .password-field input:focus{z-index:1;position:relative}.auth-form .password-peek{font:inherit;color:var(--text-h);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-top-right-radius:8px;border-bottom-right-radius:8px;flex-shrink:0;padding:.5rem .75rem;font-size:.85rem}.auth-form .password-peek:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.auth-form .password-peek:disabled{opacity:.6;cursor:not-allowed}.auth-form button[type=submit]{width:100%;font:inherit;color:var(--text-h);background:var(--accent-bg);border:1px solid var(--accent-border);cursor:pointer;border-radius:8px;margin-top:.25rem;padding:.55rem 1rem;font-weight:600}.auth-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-button-secondary{width:100%;font:inherit;color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;padding:.55rem 1rem;font-weight:600}.auth-button-secondary:hover{border-color:var(--accent-border);color:var(--text-h)}.auth-footer{text-align:center;margin-top:1.25rem;font-size:.9rem}.auth-footer a{color:var(--accent);font-weight:600}.auth-callout{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--text-h);border-radius:8px;margin:0 0 1rem;padding:.65rem .75rem;font-size:.88rem}.auth-error{color:var(--text-h);background:#dc262614;border:1px solid #dc262673;border-radius:8px;margin:0 0 1rem;padding:.65rem .75rem;font-size:.88rem}.die-graphic{flex-direction:column;align-items:center;gap:.15rem;display:inline-flex}.die-graphic-svg{width:100%;height:auto;display:block;overflow:visible}.die-graphic--sm .die-graphic-svg{width:2.25rem}.die-graphic--md .die-graphic-svg{width:3.25rem}.die-graphic--lg .die-graphic-svg{width:4.5rem}.die-graphic-shape{fill:var(--die-fill,#3d4f6f);stroke:var(--die-stroke,#8eb4e8);stroke-width:2px;transition:fill .2s,stroke .2s}.die-graphic-shape--d4{fill:var(--die-d4-fill,#5c4a7a);stroke:var(--die-d4-stroke,#b8a0e8)}.die-graphic-shape--d6{fill:var(--die-d6-fill,#2d6a4f);stroke:var(--die-d6-stroke,#95d5b2)}.die-graphic-shape--d8{fill:var(--die-d8-fill,#6b3a2a);stroke:var(--die-d8-stroke,#e8a87c)}.die-graphic-shape--d10{fill:var(--die-d10-fill,#1d4e6f);stroke:var(--die-d10-stroke,#7ec8e3)}.die-graphic-shape--d12{fill:var(--die-d12-fill,#5c4a1a);stroke:var(--die-d12-stroke,#e8d47c)}.die-graphic-shape--d20{fill:var(--die-d20-fill,#4a2d6b);stroke:var(--die-d20-stroke,#c9a0e8)}.die-graphic-shape--d100{fill:var(--die-d100-fill,#1a3d52);stroke:var(--die-d100-stroke,#7ec8e3)}.die-graphic-d100-mark{fill:var(--die-d100-stroke,#9ed8f0);opacity:.85;pointer-events:none;font-size:11px;font-weight:700}.die-graphic-value{fill:var(--die-text,#f4f7fb);pointer-events:none;font-family:inherit;font-size:18px;font-weight:700}.die-graphic--d100 .die-graphic-value{font-size:16px}.die-graphic-label{color:var(--text);opacity:.85;font-size:.65rem;font-weight:600}.die-graphic--rolling .die-graphic-svg{animation:.48s ease-in-out die-tumble}.die-graphic--rolling .die-graphic-value{opacity:.6}.die-graphic--revealed .die-graphic-svg{animation:.35s ease-out die-settle}.die-graphic--dropped{opacity:.4}.die-graphic--dropped .die-graphic-value{text-decoration:line-through}@keyframes die-tumble{0%{transform:rotate(0)scale(1)}35%{transform:rotate(120deg)scale(1.12)}70%{transform:rotate(260deg)scale(.95)}to{transform:rotate(360deg)scale(1)}}@keyframes die-settle{0%{transform:scale(1.15)}60%{transform:scale(.96)}to{transform:scale(1)}}.dice-roll-display{border:1px solid var(--border);background:var(--surface-emphasis,#0000000d);text-align:center;border-radius:10px;padding:.85rem 1rem}.dice-roll-display-faces{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:.65rem;display:flex}.dice-roll-display-total{flex-direction:column;align-items:center;gap:.1rem;display:flex}.dice-roll-display-total-label{text-transform:uppercase;letter-spacing:.06em;opacity:.75;font-size:.75rem}.dice-roll-display-total-value{color:var(--text-h);font-size:2rem;line-height:1.1}.dice-roll-display-breakdown{margin:.5rem 0 0;font-size:.85rem;line-height:1.4}.dice-roll-display--compact .dice-roll-display-total-value{font-size:1.5rem}.dice-tray-graphics-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.45rem;font-size:.9rem;display:flex}.dice-tray-graphics-toggle input{accent-color:var(--accent,#7c9cff)}.dice-preset-btn--graphic{flex-direction:column;align-items:center;gap:.2rem;min-width:2.75rem;padding:.35rem .5rem;display:inline-flex}.dice-preset-btn--text{min-width:3rem;padding:.45rem .55rem;font-size:.85rem;font-weight:600}.dice-tray-presets--graphic{gap:.5rem}
