/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.block{display:block}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}:root{--ink:#f5e8cc;--ink-deep:#e8d5ac;--card:#f0ddb8;--border:#9b7726;--border-light:#c49b2e;--gold:#8b1a1a;--gold-light:#b02020;--gold-pale:#e8a8a8;--accent-a18:#8b1a1a2e;--accent-a10:#8b1a1a1a;--accent-a08:#8b1a1a14;--accent-a07:#8b1a1a12;--accent-a04:#8b1a1a0a;--accent-stat-glow:#b020204d;--text:#1c0e06;--text-muted:#6b4020;--text-dim:#a07040;--green-text:#1a5a1a;--green-bg:#d8ecda;--green-border:#3a7a3a;--red-text:#7d1a1a;--red-bg:#f0d0d0;--red-border:#a52020;--die-face-bg:linear-gradient(145deg, #faf8f0 0%, #f5ead8 55%, #e8d4b8 100%);--die-border-color:#9b7726;--die-pip-color:#1c0e06;--die-number-color:#7d1a1a;--die-inner-glow:#fff8dcd9;--die-inner-shade:#50320a33;--die-highlight-bg:#ffffff8c;--die-pip-shadow:inset 0 1px 2px #0006, 0 1px 1px #ffdc781a;--die-roll-glow:#8b1a1a66;--die-roll-glow-wide:#8b1a1a26;--btn-gradient:linear-gradient(160deg, #4a0e0e 0%, #6b1414 40%, #8b1a1a 70%, #b02020 100%);--btn-rolling-gradient:linear-gradient(160deg, #350a0a 0%, #4a0e0e 100%);--btn-glow:#8b1a1a4d;--btn-glow-hover:#8b1a1a80;--btn-text:linen;--body-glow:#64280a14}[data-theme=classic]{--ink:#0c0404;--ink-deep:#060202;--card:#130606;--border:#4d0c0c;--border-light:#882020;--gold:#c20;--gold-light:#e83318;--gold-pale:#ffa088;--accent-a18:#cc22002e;--accent-a10:#cc22001a;--accent-a08:#cc220014;--accent-a07:#cc220012;--accent-a04:#cc22000a;--accent-stat-glow:#e8331873;--text:#f5e8d0;--text-muted:#c09878;--text-dim:#7a5838;--green-text:#8d6;--green-bg:#0a1a06;--green-border:#1a4010;--red-text:#fa8;--red-bg:#1a0404;--red-border:#4d0c0c;--die-face-bg:linear-gradient(145deg, #c81e0a 0%, #8b0a06 55%, #600606 100%);--die-border-color:#d21;--die-pip-color:#f5e8d0;--die-number-color:#f5e8d0;--die-inner-glow:#ff643c38;--die-inner-shade:#000000a6;--die-highlight-bg:#ffb47838;--die-pip-shadow:inset 0 1px 2px #00000080, 0 0 4px #f5e8d080;--die-roll-glow:#cc2200bf;--die-roll-glow-wide:#cc22004d;--btn-gradient:linear-gradient(160deg, #5a0a04 0%, #880e08 40%, #aa1a10 70%, #c20 100%);--btn-rolling-gradient:linear-gradient(160deg, #3a0804 0%, #5a0a04 100%);--btn-glow:#cc22006b;--btn-glow-hover:#cc22009e;--btn-text:#f5e8d0;--body-glow:#b41c0824}[data-theme=dungeon]{--ink:#0a0a0d;--ink-deep:#050508;--card:#111118;--border:#2e2e3e;--border-light:#454560;--gold:#c97c10;--gold-light:#e09020;--gold-pale:#f8d890;--accent-a18:#c97c102e;--accent-a10:#c97c101a;--accent-a08:#c97c1014;--accent-a07:#c97c1012;--accent-a04:#c97c100a;--accent-stat-glow:#e0902066;--text:#d8d0bc;--text-muted:#8a7a60;--text-dim:#50453a;--green-text:#6ee7b7;--green-bg:#0a2218;--green-border:#1a4a35;--red-text:#fca5a5;--red-bg:#220a0a;--red-border:#4a1a1a;--die-face-bg:linear-gradient(145deg, #2a2420 0%, #201c18 55%, #161210 100%);--die-border-color:#9b7726;--die-pip-color:#c97c10;--die-number-color:#e09020;--die-inner-glow:#c8821e26;--die-inner-shade:#00000080;--die-highlight-bg:#c8821e1f;--die-pip-shadow:inset 0 1px 2px #0009, 0 0 5px #c97c1066;--die-roll-glow:#c97c1099;--die-roll-glow-wide:#c97c1038;--btn-gradient:linear-gradient(160deg, #5a3a04 0%, #7a5008 40%, #a06c10 70%, #c97c10 100%);--btn-rolling-gradient:linear-gradient(160deg, #3a2202 0%, #5a3a04 100%);--btn-glow:#c97c1059;--btn-glow-hover:#c97c108c;--btn-text:#fff8e0;--body-glow:#c97c1017}[data-theme=dragon]{--ink:#0d0604;--ink-deep:#070302;--card:#150a08;--border:#4a1a10;--border-light:#7a2c1a;--gold:#e05a10;--gold-light:#f07020;--gold-pale:#fbc090;--accent-a18:#e05a102e;--accent-a10:#e05a101a;--accent-a08:#e05a1014;--accent-a07:#e05a1012;--accent-a04:#e05a100a;--accent-stat-glow:#f070206b;--text:#f0d8c0;--text-muted:#9a6040;--text-dim:#5a3020;--green-text:#6ee7b7;--green-bg:#081a10;--green-border:#143828;--red-text:#fa8;--red-bg:#1a0804;--red-border:#4a1a08;--die-face-bg:linear-gradient(145deg, #2a1a10 0%, #200e08 55%, #160806 100%);--die-border-color:#7a3010;--die-pip-color:#e05a10;--die-number-color:#f07020;--die-inner-glow:#dc5a142e;--die-inner-shade:#0000008c;--die-highlight-bg:#dc641e24;--die-pip-shadow:inset 0 1px 2px #000000b3, 0 0 6px #e05a1080, 0 0 14px #e05a1033;--die-roll-glow:#e05a10a6;--die-roll-glow-wide:#e05a1040;--btn-gradient:linear-gradient(160deg, #4a1408 0%, #701c0c 40%, #9a2810 70%, #e05a10 100%);--btn-rolling-gradient:linear-gradient(160deg, #300c06 0%, #4a1408 100%);--btn-glow:#e05a1061;--btn-glow-hover:#e05a1094;--btn-text:#fff4ec;--body-glow:#e05a101a}[data-theme=arcane]{--ink:#060818;--ink-deep:#030410;--card:#0c1030;--border:#2a1a5a;--border-light:#4a3090;--gold:#9b59d4;--gold-light:#b87ae0;--gold-pale:#ddb8f4;--accent-a18:#9b59d42e;--accent-a10:#9b59d41a;--accent-a08:#9b59d414;--accent-a07:#9b59d412;--accent-a04:#9b59d40a;--accent-stat-glow:#b87ae066;--text:#d8d0f0;--text-muted:#6a5a90;--text-dim:#3a2a60;--green-text:#6ee7b7;--green-bg:#081a14;--green-border:#143a28;--red-text:#fca5d8;--red-bg:#180412;--red-border:#4a1038;--die-face-bg:linear-gradient(145deg, #1c1840 0%, #141030 55%, #0c0c22 100%);--die-border-color:#4a3090;--die-pip-color:#9b59d4;--die-number-color:#b87ae0;--die-inner-glow:#9b59d433;--die-inner-shade:#00003280;--die-highlight-bg:#9b59d424;--die-pip-shadow:inset 0 1px 2px #0009, 0 0 6px #9b59d480, 0 0 16px #9b59d433;--die-roll-glow:#9b59d4a6;--die-roll-glow-wide:#9b59d440;--btn-gradient:linear-gradient(160deg, #2a0a50 0%, #4a1880 40%, #6a2aaa 70%, #9b59d4 100%);--btn-rolling-gradient:linear-gradient(160deg, #1a0635 0%, #2a0a50 100%);--btn-glow:#9b59d459;--btn-glow-hover:#9b59d48c;--btn-text:#f0e8ff;--body-glow:#9b59d417}[data-theme=shadow]{--ink:#060608;--ink-deep:#030304;--card:#0d0d12;--border:#1e1e28;--border-light:#32323e;--gold:#a0b4cc;--gold-light:#c0d0e4;--gold-pale:#dce8f4;--accent-a18:#a0b4cc2e;--accent-a10:#a0b4cc1a;--accent-a08:#a0b4cc14;--accent-a07:#a0b4cc12;--accent-a04:#a0b4cc0a;--accent-stat-glow:#c0d0e459;--text:#d0d8e8;--text-muted:#606878;--text-dim:#353840;--green-text:#90d0b0;--green-bg:#0a1814;--green-border:#1a3828;--red-text:#c09898;--red-bg:#140c0c;--red-border:#302020;--die-face-bg:linear-gradient(145deg, #1e2028 0%, #161820 55%, #101218 100%);--die-border-color:#2e3048;--die-pip-color:#a0b4cc;--die-number-color:#c0d0e4;--die-inner-glow:#a0b4cc24;--die-inner-shade:#0000148c;--die-highlight-bg:#a0b4cc1a;--die-pip-shadow:inset 0 1px 2px #0009, 0 0 4px #a0b4cc4d;--die-roll-glow:#a0b4cc80;--die-roll-glow-wide:#a0b4cc2e;--btn-gradient:linear-gradient(160deg, #1a1a22 0%, #282834 40%, #383848 70%, #484860 100%);--btn-rolling-gradient:linear-gradient(160deg, #101018 0%, #1a1a22 100%);--btn-glow:#a0b4cc40;--btn-glow-hover:#a0b4cc66;--btn-text:#d8e4f4;--body-glow:#a0b4cc0f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--ink);background-image:radial-gradient(ellipse 100% 60% at 50% 110%, var(--body-glow) 0%, transparent 65%), url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z' fill='%23a07040' fill-opacity='0.055'/%3E%3C/svg%3E");min-height:100vh;color:var(--text);font-family:IM Fell English,Crimson Pro,Georgia,serif;transition:background-color .4s,color .3s}[data-theme=dungeon] body,[data-theme=dragon] body,[data-theme=arcane] body,[data-theme=shadow] body{background-image:radial-gradient(ellipse 80% 50% at 50% -5%, var(--body-glow) 0%, transparent 65%), url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='20' cy='20' r='0.8' fill='white' fill-opacity='0.025'/%3E%3C/svg%3E")}.page-wrapper{flex-direction:column;gap:1.25rem;max-width:860px;min-height:100vh;margin:0 auto;padding:2rem 1.25rem 3rem;display:flex}.game-header{text-align:center;flex-direction:column;align-items:center;gap:.55rem;padding:1.5rem 0 .75rem;display:flex}.game-title{color:var(--gold);text-shadow:0 0 40px var(--accent-a18), 0 2px 0 #0000001f;letter-spacing:.06em;font-family:Cinzel Decorative,Cinzel,serif;font-size:clamp(1.75rem,5vw,3.25rem);font-weight:700;line-height:1.2;transition:color .4s,text-shadow .4s}.header-ornament{align-items:center;gap:.875rem;width:100%;max-width:400px;display:flex}.ornament-line{background:linear-gradient(90deg, transparent, var(--border-light), transparent);opacity:.7;flex:1;height:1px;transition:background .4s}.ornament-diamond{color:var(--border-light);opacity:.8;letter-spacing:.6em;font-family:serif;font-size:.5rem;transition:color .4s}.theme-switcher{justify-content:center;align-items:center;gap:.625rem;margin-top:.125rem;display:flex}.theme-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:18px;height:18px;transition:transform .18s,border-color .18s,box-shadow .18s}.theme-swatch:hover{transform:scale(1.3)}.theme-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--ink), 0 0 0 4px var(--text);transform:scale(1.2)}.codex-card{background:var(--card);border:2px solid var(--border);box-shadow:inset 0 0 0 4px var(--card), inset 0 0 0 6px var(--border-light), 0 4px 20px #0000001f;border-radius:5px;padding:1.5rem;transition:background .4s,border-color .4s;position:relative}.codex-card:before{content:"";border:1px solid var(--border-light);pointer-events:none;opacity:.5;border-radius:2px;transition:border-color .4s;position:absolute;inset:8px}[data-theme=dungeon] .codex-card,[data-theme=dragon] .codex-card,[data-theme=arcane] .codex-card,[data-theme=shadow] .codex-card{border-radius:10px;box-shadow:0 4px 24px #00000080,inset 0 1px #ffc8500a,inset 0 -1px #0006}[data-theme=dungeon] .codex-card:before,[data-theme=dragon] .codex-card:before,[data-theme=arcane] .codex-card:before,[data-theme=shadow] .codex-card:before{background:linear-gradient(90deg, transparent, var(--gold) 50%, transparent);opacity:.6;border:none;border-radius:0;height:1px;inset:-1px 15% auto}.controls-grid{flex-wrap:wrap;justify-content:center;gap:1.25rem 2rem;margin-bottom:1.5rem;display:flex}.control-group{flex-direction:column;gap:.35rem;min-width:130px;display:flex}.control-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.2em;align-items:center;gap:.35rem;font-family:Cinzel,serif;font-size:.6rem;font-weight:600;transition:color .4s;display:flex}.control-label svg{opacity:.7}.cs-wrapper{width:100%;position:relative}.cs-trigger{background:var(--ink-deep);border:1px solid var(--border);border-bottom:1.5px solid var(--gold);width:100%;color:var(--text);cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .7rem;font-family:IM Fell English,Crimson Pro,serif;font-size:1.05rem;transition:border-color .18s,box-shadow .18s,background .18s,color .3s;display:flex}.cs-trigger:hover:not(:disabled){border-color:var(--gold-light);border-bottom-color:var(--gold-light);background:var(--card)}.cs-trigger.is-open{border-color:var(--gold-light);border-bottom-color:var(--gold-pale);background:var(--card);box-shadow:0 0 0 2px var(--accent-a18);border-radius:4px 4px 0 0}.cs-trigger:disabled{opacity:.4;cursor:not-allowed;border-bottom-color:var(--border)}.cs-trigger:focus-visible{box-shadow:0 0 0 2px var(--btn-glow);outline:none}.cs-value{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.cs-chevron{color:var(--gold);opacity:.8;flex-shrink:0;transition:transform .2s,color .4s}.cs-chevron.is-open{opacity:1;transform:rotate(180deg)}.cs-dropdown{z-index:200;background:var(--card);border:1.5px solid var(--gold);transform-origin:top;border-top:none;border-radius:0 0 6px 6px;animation:.14s ease-out csDropdownIn;position:absolute;top:100%;left:0;right:0;box-shadow:0 12px 40px #00000040,0 4px 12px #00000026}@keyframes csDropdownIn{0%{opacity:0;transform:scaleY(.88)}to{opacity:1;transform:scaleY(1)}}.cs-dropdown-inner{max-height:200px;padding:.2rem 0;overflow-y:auto}.cs-dropdown-inner::-webkit-scrollbar{width:4px}.cs-dropdown-inner::-webkit-scrollbar-track{background:0 0}.cs-dropdown-inner::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.cs-dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--gold)}.cs-option{color:var(--text-muted);cursor:pointer;justify-content:space-between;align-items:center;padding:.42rem .875rem;font-family:IM Fell English,Crimson Pro,serif;font-size:1rem;transition:background .1s,color .1s;display:flex}.cs-option:hover{background:var(--accent-a10);color:var(--text)}.cs-option.is-selected{color:var(--gold-light);background:var(--accent-a08)}.cs-check{color:var(--gold);opacity:.85;margin-left:.5rem;font-size:.45rem}.action-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;display:flex}.roll-button{background:var(--btn-gradient);color:var(--btn-text);letter-spacing:.12em;cursor:pointer;box-shadow:0 4px 18px var(--btn-glow), 0 2px 4px #00000040, inset 0 1px 0 #ffffff1a, inset 0 -1px 0 #00000040;text-shadow:0 1px 2px #00000059;border:none;border-radius:4px;align-items:center;gap:.625rem;padding:.8rem 2.5rem;font-family:Cinzel,serif;font-size:.9rem;font-weight:600;transition:transform .15s,box-shadow .15s,background .3s,color .3s;display:flex;position:relative;overflow:hidden}.roll-button:before{content:"";pointer-events:none;border:1px solid #ffffff14;border-radius:4px;position:absolute;inset:0}.roll-button:after{content:"";background:linear-gradient(90deg,#0000,#ffffff12,#0000);width:60%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%;transform:skew(-20deg)}.roll-button:hover:not(:disabled):after{left:150%}.roll-button:hover:not(:disabled){box-shadow:0 8px 28px var(--btn-glow-hover), 0 2px 4px #00000040, inset 0 1px 0 #ffffff1f;transform:translateY(-2px)}.roll-button:active:not(:disabled){box-shadow:0 2px 8px var(--btn-glow), 0 1px 2px #00000040;transform:translateY(1px)}.roll-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.roll-button.is-rolling{background:var(--btn-rolling-gradient);animation:.6s ease-in-out infinite alternate buttonGlow}@keyframes buttonGlow{0%{box-shadow:0 4px 18px var(--btn-glow), 0 2px 4px #00000040}to{box-shadow:0 6px 28px var(--btn-glow-hover), 0 2px 8px #00000040}}.roll-icon{font-size:1.2rem;line-height:1}.stats-cluster{background:var(--ink-deep);border:1px solid var(--border);border-radius:4px;align-items:center;transition:background .4s,border-color .4s;display:flex;overflow:hidden}.stat-item{flex-direction:column;align-items:center;gap:.1rem;padding:.6rem 1.25rem;display:flex}.stat-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.2em;font-family:Cinzel,serif;font-size:.52rem;font-weight:600;transition:color .4s}.stat-value{color:var(--gold-light);text-shadow:0 0 16px var(--accent-stat-glow);font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:600;line-height:1;transition:color .4s,text-shadow .4s}.stat-divider{background:var(--border);flex-shrink:0;width:1px;height:3rem;transition:background .4s}.dice-table{flex-wrap:wrap;place-content:center;gap:.75rem;min-height:130px;max-height:46vh;padding:1.75rem 1.25rem;display:flex;overflow-y:auto}.die-face{background:var(--die-face-bg);border:2px solid var(--die-border-color);box-shadow:inset 0 2px 5px var(--die-inner-glow), inset -2px -2px 4px var(--die-inner-shade), 0 4px 12px #00000040, 0 8px 20px #00000026;cursor:default;-webkit-user-select:none;user-select:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s,background .4s,border-color .4s;display:flex;position:relative}.die-face:hover{box-shadow:inset 0 2px 5px var(--die-inner-glow), inset -2px -2px 4px var(--die-inner-shade), 0 10px 24px #0000004d, 0 0 16px var(--accent-a18);transform:translateY(-3px)scale(1.06)}.die-highlight{background:linear-gradient(180deg, var(--die-highlight-bg) 0%, transparent 100%);pointer-events:none;z-index:1;border-radius:6px 0 0;height:38%;transition:background .4s;position:absolute;top:3px;left:3px;right:55%}.die-pip-container{position:absolute;inset:0}.die-pip{background:var(--die-pip-color);width:17%;height:17%;box-shadow:var(--die-pip-shadow);border-radius:50%;transition:background .4s,box-shadow .4s;position:absolute}.die-number-display{z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.die-number{color:var(--die-number-color);font-family:Cinzel,serif;font-weight:700;line-height:1;transition:color .4s}@keyframes diceShake{0%{transform:rotate(0)scale(1)translate(0)}12%{transform:rotate(-14deg)scale(1.09)translate(-2px,-4px)}25%{transform:rotate(11deg)scale(1.07)translate(3px,-3px)}37%{transform:rotate(-9deg)scale(1.1)translate(-1px,-5px)}50%{transform:rotate(13deg)scale(1.07)translate(2px,-3px)}62%{transform:rotate(-7deg)scale(1.09)translate(-3px,-4px)}75%{transform:rotate(9deg)scale(1.06)translate(1px,-2px)}87%{transform:rotate(-4deg)scale(1.05)translate(-1px,-2px)}to{transform:rotate(0)scale(1)translate(0)}}.dice-rolling{box-shadow:inset 0 2px 5px var(--die-inner-glow), inset -2px -2px 4px var(--die-inner-shade), 0 4px 12px #00000040, 0 0 24px var(--die-roll-glow), 0 0 48px var(--die-roll-glow-wide);animation:.18s ease-in-out infinite diceShake}.history-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;transition:border-color .4s;display:flex}.history-title{color:var(--text);letter-spacing:.07em;align-items:center;gap:.5rem;font-family:Cinzel,serif;font-size:.95rem;font-weight:600;transition:color .4s;display:flex}.history-title svg{color:var(--gold);transition:color .4s}.history-actions{gap:.5rem;display:flex}.codex-btn{letter-spacing:.07em;cursor:pointer;border:1px solid;border-radius:4px;align-items:center;gap:.35rem;padding:.35rem .8rem;font-family:Cinzel,serif;font-size:.65rem;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.codex-btn-export{color:var(--green-text);border-color:var(--green-border);background:var(--green-bg)}.codex-btn-export:hover{filter:brightness(1.1)}.codex-btn-clear{color:var(--red-text);border-color:var(--red-border);background:var(--red-bg)}.codex-btn-clear:hover{filter:brightness(1.08)}.history-list{flex-direction:column;max-height:34vh;display:flex;overflow-y:auto}.history-entry{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.875rem;padding:.55rem .5rem;transition:background .15s;display:flex}.history-entry:hover{background:var(--accent-a04)}.history-entry:first-child{background:var(--accent-a07);border-radius:2px 2px 0 0}.entry-time{color:var(--text-dim);flex-shrink:0;min-width:68px;font-family:JetBrains Mono,monospace;font-size:.68rem;transition:color .4s}.entry-dice{color:var(--gold);flex-shrink:0;min-width:36px;font-family:Cinzel,serif;font-size:.72rem;font-weight:600;transition:color .4s}.entry-values{color:var(--text);overflow-wrap:break-word;word-break:break-all;flex:1;min-width:80px;font-family:JetBrains Mono,monospace;font-size:.78rem;transition:color .4s}.entry-stats{color:var(--text-muted);flex-shrink:0;gap:.875rem;font-family:IM Fell English,Crimson Pro,serif;font-size:.9rem;transition:color .4s;display:flex}.entry-stats strong{color:var(--text);font-weight:600}.empty-history{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.empty-icon{opacity:.2;font-size:2rem}.empty-history p{color:var(--text-dim);font-family:IM Fell English,serif;font-size:1.1rem;font-style:italic;transition:color .4s}@media (width<=520px){.page-wrapper{gap:.875rem;padding:.875rem .75rem 2rem}.game-header{padding:.5rem 0 .25rem}.codex-card{padding:1.125rem 1rem}.controls-grid{flex-direction:column;align-items:stretch;gap:.875rem}.control-group{min-width:unset;width:100%}.action-row{flex-direction:column;align-items:stretch;gap:.875rem}.roll-button{justify-content:center;width:100%}.stats-cluster{justify-content:space-around;width:100%}.history-entry{gap:.5rem;padding:.5rem .25rem}.entry-values{min-width:60px}.entry-stats{flex-shrink:1;gap:.5rem;font-size:.8rem}.empty-history{padding:2rem 1rem}}@media (width<=360px){.page-wrapper{padding:.75rem .625rem 1.5rem}.codex-card{padding:1rem .875rem}.stat-value{font-size:1.3rem}.stat-item{padding:.5rem 1rem}}.history-list::-webkit-scrollbar{width:4px}.dice-table::-webkit-scrollbar{width:4px}.history-list::-webkit-scrollbar-track{background:var(--ink-deep);border-radius:10px}.dice-table::-webkit-scrollbar-track{background:var(--ink-deep);border-radius:10px}.history-list::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:10px}.dice-table::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:10px}.history-list::-webkit-scrollbar-thumb:hover{background:var(--gold)}.dice-table::-webkit-scrollbar-thumb:hover{background:var(--gold)}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:500;background:#0000008c;justify-content:center;align-items:center;animation:.15s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--card);border:2px solid var(--border);min-width:260px;box-shadow:inset 0 0 0 4px var(--card), inset 0 0 0 6px var(--border-light), 0 12px 40px #0006;border-radius:5px;flex-direction:column;align-items:center;gap:1.25rem;padding:1.75rem 2rem;animation:.15s ease-out modalSlideIn;display:flex}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-ornament{align-items:center;gap:.75rem;width:100%;display:flex}.modal-message{color:var(--text);text-align:center;font-family:IM Fell English,Crimson Pro,serif;font-size:1.05rem}.modal-actions{gap:.75rem;display:flex}.codex-btn-cancel{color:var(--text-muted);border-color:var(--border);background:var(--ink-deep)}.codex-btn-cancel:hover{filter:brightness(1.1)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
