@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fredoka-latin-600-normal-C4zohCW5.woff2) format("woff2"),url(/assets/fredoka-latin-600-normal-CcrEjrB4.woff) format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fredoka-latin-700-normal-BOIZVyIN.woff2) format("woff2"),url(/assets/fredoka-latin-700-normal-C8FeHd3X.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2) format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(/assets/nunito-latin-600-normal-Cd0eNu1l.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff")}:root{color-scheme:light;--rr-obsidian: #140100;--rr-ember: #580700;--rr-flame: #E72706;--rr-blaze: #F65C09;--rr-amber: #FCA006;--rr-gold: #FDD918;--rr-ivory: #FDF8E9;--rr-primary: #F65C09;--rr-fire-gradient: linear-gradient(135deg, #FDD918 0%, #FCA006 35%, #F65C09 65%, #E72706 100%);--bg-soft: #FFF8EF;--bg: #F7F1E8;--bg-deep: #EFE3D2;--surface: rgba(255, 255, 255, .88);--surface-strong: #FFFFFF;--surface-tint: #FFF3DF;--surface-sunken: #F3EADF;--text-main: #2B2B2B;--text-muted: #585E6B;--text-soft: #676C79;--text-on-primary: #FFFFFF;--primary: #1E9A46;--primary-hover: #1A8C3F;--primary-press: #167D38;--primary-edge: #0F6B2E;--accent-blue: #4DA6FF;--accent-yellow: #FFCC4D;--accent-coral: #FF7A59;--accent-red: #FF5D73;--accent-purple: #8B5CF6;--accent-orange: #FF9F1C;--focus: #1D4ED8;--danger: #E0343F;--team-red: #DC2B20;--team-green: #319A2E;--team-yellow: #F2A207;--team-blue: #1D5BE8;--team-text: #FFFFFF;--line: rgba(43, 43, 43, .1);--line-strong: rgba(43, 43, 43, .18);--radius-xl: 24px;--radius-lg: 18px;--radius-md: 12px;--radius-sm: 8px;--radius-pill: 999px;--shadow-soft: 0 10px 24px rgba(0, 0, 0, .12);--shadow-light: 0 4px 12px rgba(0, 0, 0, .1);--shadow-press: 0 2px 4px rgba(0, 0, 0, .1);--edge: 0 3px 0 rgba(0, 0, 0, .08);--font-display: "Fredoka", "Nunito", ui-rounded, system-ui, sans-serif;--font-body: "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--veil-a: rgba(255, 248, 239, .62);--veil-b: rgba(255, 248, 239, .82);--veil-menu-a: rgba(255, 248, 239, .18);--veil-menu-b: rgba(255, 248, 239, .62);--veil-game-a: rgba(247, 241, 232, .9);--veil-game-b: rgba(247, 241, 232, .95);--board-frame: #C98F4E;--board-wood: #E9CFA6;--ease-pop: cubic-bezier(.2, .9, .3, 1.3);--dur-fast: .14s;--dur-base: .22s}:root,.app-shell{--sheet-bg: var(--surface);--sheet-text: var(--text-main);--sheet-muted: var(--text-muted);--sheet-row: var(--surface-strong);--sheet-row-hover: var(--surface-tint);--sheet-line: var(--line);--sheet-fill: var(--surface-sunken);--sheet-fill-hover: var(--surface-tint);--sheet-ok: #1F7A36;--sheet-ok-strong: #14532D;--sheet-warn: #6B4A00;--sheet-danger: #C62828;--sheet-link: #1D4ED8;--sheet-story: #6A3FC0}:root[data-theme=dark]{color-scheme:dark;--bg-soft: #262230;--bg: #1E1B26;--bg-deep: #17141F;--surface: rgba(38, 34, 49, .9);--surface-strong: #2B2735;--surface-tint: #352F42;--surface-sunken: #1B1823;--text-main: #F4EFE7;--text-muted: #B9B3C4;--text-soft: #9C97A8;--primary-edge: #1A7A35;--focus: #8DB8FF;--line: rgba(255, 255, 255, .1);--line-strong: rgba(255, 255, 255, .22);--shadow-soft: 0 12px 28px rgba(0, 0, 0, .45);--shadow-light: 0 4px 12px rgba(0, 0, 0, .35);--shadow-press: 0 2px 4px rgba(0, 0, 0, .3);--edge: 0 3px 0 rgba(0, 0, 0, .35);--veil-a: rgba(24, 20, 32, .66);--veil-b: rgba(24, 20, 32, .86);--veil-menu-a: rgba(24, 20, 32, .3);--veil-menu-b: rgba(24, 20, 32, .78);--veil-game-a: rgba(30, 27, 38, .92);--veil-game-b: rgba(30, 27, 38, .96);--board-frame: #7A5A33;--board-wood: #4A3826}:root[data-theme=dark],:root[data-theme=dark] .app-shell{--sheet-bg: rgba(30, 27, 38, .9);--sheet-row: rgba(255, 255, 255, .06);--sheet-row-hover: rgba(255, 255, 255, .1);--sheet-line: rgba(255, 255, 255, .12);--sheet-fill: rgba(255, 255, 255, .08);--sheet-fill-hover: rgba(255, 255, 255, .16);--sheet-ok: #7BE39A;--sheet-ok-strong: #CDF5DA;--sheet-warn: #FFE9A8;--sheet-danger: #FF9AA8;--sheet-link: #8DB8FF;--sheet-story: #E0C8FF}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100dvh;background:var(--bg);color:var(--text-main);font-family:var(--font-body);font-size:16px;line-height:1.5;font-synthesis:none;-webkit-font-smoothing:antialiased;transition:background-color var(--dur-base),color var(--dur-base)}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}}@keyframes fade-in{0%{opacity:0}}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:.01em;margin:0 0 .5em;color:var(--text-main)}h1{font-size:clamp(1.6rem,3.6vw,2.2rem);line-height:1.15}h2{font-size:1.15rem}p{margin-top:0;line-height:1.6}a{color:var(--accent-blue)}small,.muted{color:var(--text-muted);font-size:.85rem}.eyebrow{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.16em;color:var(--accent-orange);font-size:.66rem;font-weight:600}.ui-icon{display:inline-block;width:22px;height:22px;flex:0 0 22px;vertical-align:middle}button .ui-icon,summary .ui-icon,h2 .ui-icon{margin-right:9px}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{position:relative;isolation:isolate;max-width:1600px;margin:auto;min-height:100dvh;padding:env(safe-area-inset-top) max(24px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(24px,env(safe-area-inset-left))}.app-shell:before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(var(--veil-a),var(--veil-b)),url(/assets/scenes/game-room.webp) center / cover no-repeat,var(--bg)}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0}.top-bar img{display:block;max-width:100%;height:auto;width:200px}.notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:10px 0;padding:12px 16px;background:#fff3c4;color:#5b4300;border:2px solid #F2C94C;border-radius:var(--radius-md);font-size:.9rem;line-height:1.5;box-shadow:var(--shadow-light);animation:rise-in var(--dur-base) ease-out both}footer{font-size:.72rem;color:var(--text-muted);text-align:center;padding:24px 0 16px}.effects-off,.effects-off *,.effects-off *:before,.effects-off *:after{animation:none!important;transition:none!important}.effects-reduced,.effects-reduced *,.effects-reduced *:before,.effects-reduced *:after{animation:none!important}.high-contrast{--text-muted: #3F4450;--text-soft: #3F4450;--line: rgba(0, 0, 0, .55);--line-strong: #000;--surface: #FFFFFF}.high-contrast button,.high-contrast select,.high-contrast input{border-color:#000}:root[data-theme=dark] .high-contrast{--text-muted: #DAD5E3;--text-soft: #DAD5E3;--line: rgba(255, 255, 255, .55);--line-strong: #FFF;--surface: var(--surface-strong)}:root[data-theme=dark] .high-contrast button,:root[data-theme=dark] .high-contrast select,:root[data-theme=dark] .high-contrast input{border-color:#fff}@media(max-width:760px){html:has(.sheet-layer .page-panel),html:has(.modal-backdrop){overflow:hidden}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.app-shell{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.top-bar{padding:10px 0}.top-bar img{width:165px}}@media(max-width:360px){.top-bar img{width:145px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}button,input,select{font:inherit;color:inherit}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]),select,textarea{font-size:max(16px,1rem)}button,select,input:not([type=checkbox]):not([type=range]){min-height:48px;padding:10px 16px;border:2px solid transparent;border-radius:var(--radius-lg);background:var(--surface-strong);color:var(--text-main)}button{cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:1rem;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:var(--edge),var(--shadow-light);transition:transform var(--dur-fast) var(--ease-pop),box-shadow var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--edge),var(--shadow-soft);background:var(--surface-tint)}button:active:not(:disabled){transform:translateY(1px);box-shadow:var(--shadow-press)}button:disabled{cursor:default;opacity:.55;box-shadow:none}button .ui-icon{margin-right:0}.primary{background:var(--primary);color:var(--text-on-primary);box-shadow:0 4px 0 var(--primary-edge),var(--shadow-soft);text-shadow:0 1px 0 rgba(0,0,0,.18)}.primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 0 var(--primary-edge),var(--shadow-soft)}.primary:active:not(:disabled){background:var(--primary-press);box-shadow:0 1px 0 var(--primary-edge),var(--shadow-press)}.primary .ui-icon{color:#fff}.primary:disabled{opacity:1;background:var(--surface-sunken);color:var(--text-muted);border-color:var(--line);text-shadow:none}.primary:disabled .ui-icon{color:currentColor}.danger{color:var(--danger)}.quiet{background:transparent;box-shadow:none;border-color:transparent;color:var(--text-muted);font-family:var(--font-body);font-weight:700;font-size:.85rem;min-height:40px}.quiet:hover:not(:disabled){background:var(--surface);transform:none;box-shadow:none;color:var(--text-main)}label{display:grid;gap:7px;min-width:0;margin-bottom:16px;font-weight:700;font-size:.85rem;color:var(--text-muted)}label select,label input{width:100%;min-width:0;font-weight:600;color:var(--text-main)}select,input:not([type=checkbox]):not([type=range]){border-color:var(--line-strong);box-shadow:inset 0 2px 4px #0000000a}select:focus,input:focus{border-color:var(--accent-blue)}input[type=range]{accent-color:var(--primary);width:100%}.toggle{position:relative;display:flex;align-items:center;gap:12px;min-height:48px;margin:0 0 6px;padding:4px 8px;border-radius:var(--radius-md);cursor:pointer;font-size:1rem;font-weight:700;color:var(--text-main);transition:background var(--dur-fast)}.toggle:hover{background:var(--surface-tint)}.toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.toggle-track{position:relative;flex:0 0 52px;width:52px;height:30px;border-radius:var(--radius-pill);background:#8e929c;box-shadow:inset 0 2px 4px #0000001f;transition:background var(--dur-base),box-shadow var(--dur-base)}.toggle-track:after{content:"✓";position:absolute;left:10px;top:4px;font-size:14px;font-weight:800;color:#fff;opacity:0;transition:opacity var(--dur-fast)}.toggle-knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000040;transition:transform var(--dur-base) var(--ease-pop),width var(--dur-fast)}.toggle input:checked+.toggle-track{background:var(--primary);box-shadow:inset 0 2px 4px #0000001f,0 0 0 4px #34c7592e}.toggle input:checked+.toggle-track:after{opacity:1}.toggle input:checked+.toggle-track .toggle-knob{transform:translate(22px)}.toggle input:active:not(:disabled)+.toggle-track .toggle-knob{width:30px}.toggle input:checked:active:not(:disabled)+.toggle-track .toggle-knob{transform:translate(16px)}.toggle input:focus-visible+.toggle-track{outline:3px solid var(--focus);outline-offset:3px}.toggle input:disabled+.toggle-track{opacity:.5}:root[data-theme=dark] .toggle-track{background:#ffffff47}.toggle input:disabled~.toggle-text{color:var(--text-muted)}.select{position:relative;min-width:0}.select-field{display:grid;gap:7px;margin-bottom:16px}.select-label{font-weight:700;font-size:.85rem;color:var(--text-muted)}.select-trigger{width:100%;justify-content:flex-start;gap:10px;text-align:left;position:relative;font-family:var(--font-body);font-weight:700;font-size:1rem;padding:8px 44px 8px 14px;border:2px solid var(--line-strong);background:var(--surface-strong);box-shadow:inset 0 2px 4px #0000000a}.select-trigger:hover:not(:disabled){transform:none;background:var(--surface-strong);border-color:var(--accent-blue);box-shadow:inset 0 2px 4px #0000000a}.select-trigger:active:not(:disabled){transform:none}.select.open .select-trigger{border-color:var(--accent-blue)}.select-icon{display:inline-flex;color:var(--text-main)}.select-icon .ui-icon{margin:0;width:20px;height:20px;flex-basis:20px}.select-value{display:inline-flex;align-items:center;gap:10px;min-width:0;flex:1}.select-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-chevron{position:absolute;right:18px;top:50%;width:9px;height:9px;pointer-events:none;border-right:2.5px solid var(--text-main);border-bottom:2.5px solid var(--text-main);transform:translateY(-70%) rotate(45deg);transition:transform var(--dur-base) var(--ease-pop)}.select.open .select-chevron{transform:translateY(-30%) rotate(-135deg)}.select-list{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;max-height:290px;overflow:auto;background:var(--surface-strong);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);transform-origin:top center;animation:pop-in var(--dur-fast) var(--ease-pop) both;scrollbar-width:thin}.select.up .select-list{top:auto;bottom:calc(100% + 6px);transform-origin:bottom center}.select-option{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border-radius:var(--radius-md);cursor:pointer;font-weight:700;color:var(--text-main);transition:background var(--dur-fast),transform var(--dur-fast)}.select-option.active{background:var(--surface-tint)}.select-option[aria-selected=true]{color:var(--primary-press)}.select-option[aria-selected=true]:after{content:"✓";margin-left:auto;font-weight:800}.select-option-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;overflow:hidden;background:var(--surface-tint);flex-shrink:0}.select-option-icon img{width:100%;height:100%;display:block}.select-option-icon .ui-icon{margin:0;width:18px;height:18px;flex-basis:18px}.team-dot{display:inline-block;width:16px;height:16px;border-radius:50%;background:var(--team, var(--text-muted));box-shadow:inset 0 -2px #0000002e}.select-pill .select-trigger{width:auto;border-radius:var(--radius-pill);border-color:transparent;padding:6px 40px 6px 14px;box-shadow:var(--edge),var(--shadow-light);font-family:var(--font-display);font-weight:600;font-size:.95rem}.select-pill .select-trigger:hover:not(:disabled){border-color:transparent;box-shadow:var(--edge),var(--shadow-soft);transform:translateY(-1px)}.select-pill .select-chevron{right:15px}.select-pill .select-list{left:auto;right:0;min-width:210px}:root[data-theme=dark] .select-option[aria-selected=true]{color:#7be39a}.card{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}details{margin:16px 0}summary{cursor:pointer;min-height:44px;padding:10px 32px 10px 0;font-family:var(--font-display);font-weight:600;color:var(--text-main);display:flex;align-items:center;position:relative;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:"";position:absolute;right:10px;top:50%;width:9px;height:9px;border-right:2.5px solid var(--text-muted);border-bottom:2.5px solid var(--text-muted);transform:translateY(-70%) rotate(45deg);transition:transform var(--dur-fast)}details[open]>summary:after{transform:translateY(-30%) rotate(-135deg)}.button-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.modal.confirm-dialog{width:min(100%,380px);text-align:center}.modal.confirm-dialog h2{margin:0;font-size:1.15rem;line-height:1.4;font-weight:700}.confirm-actions{margin-top:6px}.modal .confirm-actions button{margin-top:12px}.modal .confirm-actions .danger{background:color-mix(in srgb,var(--danger, #E5484D) 18%,var(--surface-strong));border-color:color-mix(in srgb,var(--danger, #E5484D) 55%,var(--line));color:var(--danger, #E5484D)}.modal-backdrop{position:fixed;inset:0;background:#2b2b2b73;z-index:50;display:grid;place-items:center;padding:20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:backdrop-in var(--dur-base) ease-out both}.modal{width:min(100%,430px);max-height:90dvh;overflow:auto;background:var(--surface-strong);border-radius:var(--radius-xl);padding:28px;box-shadow:var(--shadow-soft);text-align:center;animation:modal-in .28s var(--ease-pop) both}.modal{scrollbar-width:none}.modal::-webkit-scrollbar{display:none}.modal-backdrop.closing{animation:backdrop-out var(--dur-base) ease-in both;pointer-events:none}.modal-backdrop.closing .modal{animation:modal-out var(--dur-base) ease-in both}@keyframes backdrop-in{0%{opacity:0}}@keyframes backdrop-out{to{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(18px) scale(.94)}}@keyframes modal-out{to{opacity:0;transform:translateY(10px) scale(.96)}}@media(max-width:760px){.modal-backdrop{padding:0;place-items:end stretch}.modal{width:100%;max-height:92dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:12px 20px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -12px 32px #00000040;animation:sheet-in .36s var(--ease-pop);overscroll-behavior:contain}.select-list{scrollbar-width:none}.select-list::-webkit-scrollbar{display:none}.modal:before{content:"";display:block;width:44px;height:5px;margin:0 auto 18px;border-radius:3px;background:var(--line-strong)}.modal.dragging{animation:none;transition:none}.modal-backdrop.closing .modal{animation:sheet-out var(--dur-base) ease-in both}.modal h2{font-size:1.5rem}.modal button{max-width:420px;margin-inline:auto}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{0%{transform:translateY(var(--sheet-y, 0px))}to{transform:translateY(100%)}}.modal p{color:var(--text-muted)}.modal button{width:100%;margin-top:12px}.trophy{display:block;font-size:4rem;line-height:1;color:var(--accent-yellow);text-shadow:0 3px 0 #D99A00}.license-notice{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem;color:var(--text-muted)}.screen-menu{max-width:none;display:flex;flex-direction:column;align-items:center}.screen-menu:before{background:linear-gradient(180deg,var(--veil-menu-a) 0%,var(--veil-menu-b) 100%),url(/assets/scenes/game-room.webp) center / cover no-repeat,var(--bg)}.screen-menu .top-bar{width:100%;height:clamp(210px,30dvh,270px);align-items:start;justify-content:end}.screen-menu .top-bar>a{position:absolute;left:50%;translate:-50% 0;top:14px;width:clamp(280px,30vw,440px)}.screen-menu .top-bar img{width:100%;height:auto;filter:drop-shadow(0 10px 10px rgba(60,20,0,.28))}.screen-menu .top-bar>a{animation:title-logo-in .45s var(--ease-pop) both}@keyframes title-logo-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.menu-tools{display:flex;align-items:center;gap:8px;position:relative;z-index:1}.menu-tool-button{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;background:var(--surface-strong);box-shadow:var(--shadow-light)}.menu-tool-button .ui-icon{width:22px;height:22px;margin:0}.menu-tool-button:hover:not(:disabled){transform:none;background:var(--surface-tint)}.menu-rules-button{color:var(--accent-red)}.menu-about-button{color:var(--accent-blue)}.menu-settings-button{color:var(--accent-purple)}.main-menu{width:min(100%,440px);text-align:center;margin:0 auto}.hero-copy>p{display:none}.menu-buttons{display:grid;gap:12px}.menu-buttons>button,.menu-resume>button{position:relative;min-height:56px;font-size:1.15rem;border-radius:var(--radius-lg);padding-left:60px;padding-right:24px}.menu-buttons>button,.menu-resume{animation:rise-in .38s var(--ease-pop) both}.menu-tagline{animation:fade-in .5s ease-out .35s both}.menu-buttons>button .ui-icon,.menu-resume>.menu-continue .ui-icon{position:absolute;left:22px;top:50%;transform:translateY(-50%);width:26px;height:26px}.menu-resume{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:10px}.menu-delete{width:56px;min-height:56px;padding:0;color:var(--danger)}.menu-delete .ui-icon{position:static;width:22px;height:22px;margin:0;transform:none}.menu-delete:hover:not(:disabled),.menu-delete:hover:not(:disabled) .ui-icon{transform:none}.menu-buttons>.primary{min-height:68px;font-size:1.5rem}.menu-buttons>.primary:hover:not(:disabled){box-shadow:0 4px 0 var(--primary-edge),0 14px 28px #34c75961}.menu-continue{--btn-accent: var(--accent-blue)}.menu-roster{--btn-accent: var(--accent-orange)}.menu-settings{--btn-accent: var(--accent-purple)}.menu-statistics{--btn-accent: var(--accent-blue)}.menu-learning{--btn-accent: var(--accent-yellow)}.menu-rivalries{--btn-accent: var(--accent-coral)}.menu-moments{--btn-accent: var(--accent-purple)}.menu-collection{--btn-accent: var(--accent-orange)}.menu-journey{--btn-accent: var(--accent-yellow)}.menu-buttons>button .ui-icon,.menu-resume>button .ui-icon{color:var(--btn-accent, var(--text-main));transition:transform var(--dur-fast) var(--ease-pop)}.menu-buttons>.primary .ui-icon{color:#fff}.menu-buttons>button:not(.primary):not(.quiet):hover:not(:disabled),.menu-resume>button:not(.primary):not(.quiet):hover:not(:disabled){background:color-mix(in srgb,var(--btn-accent) 18%,var(--surface-strong));box-shadow:0 3px color-mix(in srgb,var(--btn-accent) 55%,transparent),var(--shadow-soft);border-color:color-mix(in srgb,var(--btn-accent) 45%,transparent)}.menu-buttons>button:not(.quiet):hover:not(:disabled) .ui-icon,.menu-resume>.menu-continue:hover:not(:disabled) .ui-icon{transform:translateY(-50%) scale(1.18)}.menu-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-shortcuts button{min-height:76px;padding:12px 10px;flex-direction:column;gap:6px;font-size:.98rem}.menu-shortcuts button .ui-icon{position:static;width:26px;height:26px;margin:0;transform:none;color:var(--btn-accent, var(--text-main))}.menu-shortcuts button:hover:not(:disabled) .ui-icon{transform:scale(1.12)}.menu-buttons .quiet{width:100%;justify-self:stretch;min-height:56px;font-size:1.05rem;padding-left:60px;padding-right:24px;white-space:nowrap}.menu-buttons .quiet .ui-icon{position:absolute;left:22px;top:50%;width:22px;height:22px;transform:translateY(-50%)}.menu-buttons .quiet:hover:not(:disabled){transform:none;background:color-mix(in srgb,var(--danger) 14%,var(--surface-strong));box-shadow:none;color:var(--danger)}.menu-buttons .quiet:hover:not(:disabled) .ui-icon{transform:translateY(-50%)}.menu-resume>.menu-delete{width:56px;min-width:56px;min-height:56px;padding:0;justify-self:stretch;background:var(--surface-strong);border-color:transparent;box-shadow:var(--edge),var(--shadow-light);color:var(--danger)}.menu-buttons>.primary:disabled .ui-icon{color:currentColor}.menu-resume>.menu-delete .ui-icon{position:static;left:auto;top:auto;width:22px;height:22px;margin:0;transform:none}.menu-resume>.menu-delete:hover:not(:disabled) .ui-icon{transform:none}.menu-tagline{display:block;margin:26px 0 4px;font-family:var(--font-body);font-weight:600;font-size:1.05rem;color:var(--text-muted)}.screen-menu footer{margin-top:auto;font-weight:400;font-size:.72rem;color:var(--text-soft)}@media(max-width:760px){.screen-menu:before{background:linear-gradient(180deg,var(--veil-menu-a) 0%,var(--veil-menu-b) 60%,var(--veil-b) 100%),url(/assets/scenes/game-room.webp) 58% center / cover no-repeat,var(--bg)}.screen-menu .top-bar{height:240px}.screen-menu .top-bar>a{top:66px;width:min(84%,320px)}.main-menu{width:min(92%,360px)}.menu-buttons{gap:10px}.menu-buttons>button,.menu-resume>button{min-height:50px;font-size:1.02rem}.menu-resume{grid-template-columns:minmax(0,1fr) 50px}.menu-resume>.menu-delete{width:50px;min-width:50px;min-height:50px}.menu-shortcuts button{min-height:68px;font-size:.92rem}.menu-buttons>.primary{min-height:62px;font-size:1.32rem}.menu-tagline{font-size:.92rem;margin-top:20px}.screen-menu footer{padding-top:18px;font-size:.62rem}}@media(max-height:520px)and (min-width:560px){.screen-menu .top-bar{height:118px}.screen-menu .top-bar>a{top:4px;width:190px}.main-menu{width:min(100%,560px)}.menu-tagline{display:none}.menu-buttons>.primary,.menu-resume,.menu-challenges,.menu-journey{grid-column:1 / -1}.menu-buttons>.primary{min-height:52px;font-size:1.2rem}.menu-buttons>button,.menu-resume>.menu-continue{min-height:46px;font-size:.9rem;padding-left:46px}.menu-buttons>button .ui-icon,.menu-resume>.menu-continue .ui-icon{left:14px;width:20px;height:20px}.menu-shortcuts button{min-height:64px;padding:8px;font-size:.82rem}.menu-shortcuts button .ui-icon{width:20px;height:20px}}.page-panel{max-width:640px;margin:24px auto;padding:30px;color:var(--sheet-text);background:var(--sheet-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:rise-in .32s var(--ease-pop) both}.page-panel a{color:var(--sheet-link)}.page-panel.wide{max-width:1100px}.page-panel>h1{text-align:center}.identity{display:flex;align-items:center;gap:20px}.identity>div{flex:1;min-width:0}.identity>img{border-radius:50%;background:var(--surface-tint);box-shadow:var(--shadow-light)}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.setup-heading{font-size:1rem;margin:6px 0 2px}.setup-note{font-size:.82rem;margin-bottom:10px}.identity .quiet{margin-top:-6px}.setup .rival-preview{margin:0 0 6px;display:grid;grid-template-columns:1fr;gap:8px}.setup .rival-preview .rival-card{padding:10px 14px;gap:14px;animation:none}.setup .rival-preview .rival-portrait{width:52px;height:52px}.setup .rival-preview .rival-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;min-width:0}.setup .rival-preview .rival-copy strong{flex:1 1 auto;font-size:1.02rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup .rival-preview .style-chip{flex:0 0 auto}.page-panel:not(.glass-sheet) .rival-card:hover{background:var(--sheet-row);transform:none;box-shadow:none}@media(max-width:480px){.setup-grid{grid-template-columns:1fr}}.rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rule-group-heading{font-size:.95rem;margin:16px 0 6px}.rule-cell{display:grid;align-content:start;min-width:0}.rule-cell .toggle{margin-bottom:0}.rule-hint{display:block;padding:0 8px 6px 72px;font-size:.78rem;line-height:1.4;color:var(--text-muted)}.hazard-help-toggle{margin:8px 0 0}.hazard-help-toggle>summary{font-size:.9rem}.hazard-help-toggle>summary .ui-icon{width:20px;height:20px;color:var(--accent-blue)}.hazard-help{padding:12px 14px;background:var(--surface-tint);border:1px solid var(--line);border-radius:var(--radius-lg)}.hazard-help h2{font-size:1.05rem;margin:0 0 6px}.hazard-help ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.hazard-help li{position:relative;padding-left:32px;font-size:.86rem;line-height:1.45}.hazard-help li:before{content:"";position:absolute;left:10px;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.hazard-help li.hazard-help-mine:before,.hazard-help li.hazard-help-portal:before{display:none}.hazard-mark{position:absolute;left:0;top:0;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font-weight:900;font-size:.85rem;line-height:1;color:#fff}.hazard-mark-mine{background:#e53935;border:2px solid #7A1010}.hazard-mark-portal{background:#7e57c2;border:2px dashed #3A1F78}.page-panel>.hazard-help{margin-top:18px}.bonus-rules{grid-template-columns:1fr}.reserve-help-toggle>summary .ui-icon{color:#1e6fd9}.hazard-help+.reserve-help{margin-top:14px}.reserve-help h2{display:flex;align-items:center}.reserve-help h2 .ui-icon{color:#1e6fd9}.reserve-help li:before{background:#1e6fd9}:root[data-theme=dark] .reserve-help-toggle>summary .ui-icon,:root[data-theme=dark] .reserve-help h2 .ui-icon{color:#8dc4ff}:root[data-theme=dark] .reserve-help li:before{background:#8dc4ff}.credits{color:var(--text-muted);font-size:.9rem}.credits ul{padding-left:18px}.glass-sheet{max-width:680px;padding:24px 28px 28px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.glass-sheet h1,.glass-sheet strong,.glass-sheet summary{color:var(--sheet-text)}.glass-sheet .muted,.glass-sheet small{color:var(--sheet-muted)}.sheet-head{--title-size: 2rem;position:relative;text-align:center;margin-bottom:18px;padding:0 48px}.sheet-head h1{margin:6px 0 0;font-size:var(--title-size)}.icon-button{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;background:var(--sheet-fill);color:var(--sheet-text);border:1px solid var(--sheet-line);box-shadow:none}.icon-button:hover:not(:disabled){background:var(--sheet-fill-hover);border-color:var(--line-strong);transform:scale(1.06);box-shadow:none}.icon-button:active:not(:disabled){transform:scale(.96);box-shadow:none}.icon-button .ui-icon{margin:0}.head-back,.head-action{position:absolute;top:calc(var(--title-size) * .575 - 22px)}.head-back{left:-8px}.head-action{right:-8px}.sheet-actions{display:flex;gap:10px;margin-top:18px}.sheet-actions .primary{flex:1;min-height:56px;font-size:1.15rem}.setting-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;margin:0 0 12px;background:var(--sheet-row);border:1px solid var(--sheet-line);border-radius:var(--radius-lg);transition:background var(--dur-fast),border-color var(--dur-fast)}@media(hover:hover){.setting-row:not(.setting-more):hover,.setting-more:not([open]):hover{background:var(--sheet-row-hover)}}button.journey-row{width:100%;margin:0;justify-content:stretch;text-align:left;box-shadow:none;color:var(--sheet-text);transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast) var(--ease-pop)}button.journey-row:after{content:"";width:9px;height:9px;margin:0 6px 0 4px;border-right:2.5px solid var(--sheet-muted);border-bottom:2.5px solid var(--sheet-muted);transform:rotate(-45deg);transition:transform var(--dur-fast) var(--ease-pop),border-color var(--dur-fast)}button.journey-row:hover:not(:disabled){background:var(--sheet-row-hover);border-color:var(--line-strong);transform:none;box-shadow:none}button.journey-row:hover:not(:disabled):after{border-color:var(--sheet-text);transform:translate(3px) rotate(-45deg)}button.journey-row:active:not(:disabled){background:var(--sheet-fill);transform:scale(.99);box-shadow:none}button.journey-row:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.journey-note{margin:0 0 14px;text-align:left}.journey-list{display:grid;gap:12px}.setting-icon{display:grid;place-items:center;width:40px;height:40px}.setting-icon .ui-icon{width:26px;height:26px;margin:0}.setting-copy{min-width:0}.setting-copy strong{display:block;font-family:var(--font-display);font-weight:600;font-size:1.05rem}.setting-copy small,small.setting-sub{display:block;font-family:var(--font-body);font-weight:400;font-size:.8rem;line-height:1.45}.setting-copy small{margin-top:2px}.setting-sub{grid-column:2 / -1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding-top:12px;margin-top:4px;border-top:1px solid var(--sheet-line);font-weight:700}.setting-value{color:var(--sheet-muted);min-width:3.5ch;text-align:right;font-variant-numeric:tabular-nums}.glass-sheet input[type=range]{margin:0}:root[data-theme=dark] .glass-sheet input[type=range]{accent-color:var(--accent-yellow)}.glass-sheet .toggle{margin:0;padding:0}.glass-sheet .toggle:hover{background:transparent}.glass-sheet .select-trigger{min-width:200px}.setting-row>.select{margin:0}.segmented{display:inline-flex;gap:2px;padding:4px;background:var(--sheet-fill);border:1px solid var(--sheet-line);border-radius:var(--radius-pill)}.segmented button{min-height:44px;padding:6px 16px;border-radius:var(--radius-pill);background:transparent;color:var(--sheet-text);box-shadow:none;font-size:.95rem;gap:8px}.segmented button .ui-icon{width:18px;height:18px;margin:0}.segmented button:hover:not(:disabled){background:var(--sheet-fill-hover);transform:none;box-shadow:none}.segmented button[aria-checked=true]{background:linear-gradient(#ffd75e,#f7b500);color:#3a2a00;box-shadow:0 2px #b27f00,var(--shadow-light)}.theme-switch{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.setting-appearance .theme-switch{grid-column:1 / -1}.theme-switch:before{content:"";position:absolute;z-index:0;top:4px;bottom:4px;left:4px;pointer-events:none;width:calc((100% - 12px) / 3);border-radius:var(--radius-pill);background:linear-gradient(#ffd75e,#f7b500);box-shadow:0 2px #b27f00,var(--shadow-light);transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.theme-switch:has(button:nth-child(2)[aria-checked=true]):before{transform:translate(calc(100% + 2px))}.theme-switch:has(button:nth-child(3)[aria-checked=true]):before{transform:translate(calc(200% + 4px))}.theme-switch button{position:relative;z-index:1;justify-content:center;transition:color .12s ease}.segmented.theme-switch button:hover:not(:disabled),.segmented.theme-switch button:active:not(:disabled),.segmented.theme-switch button[aria-checked=true]{background:transparent;box-shadow:none;transform:none}.theme-switch button[aria-checked=true]{color:#3a2a00}.setting-group{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sheet-muted);margin:18px 4px 8px}.setting-more{display:block;padding:0}.setting-more>summary{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:center;padding:14px 48px 14px 16px;min-height:0}.setting-more>summary:after{right:20px;border-color:var(--sheet-text)}.setting-more-body{display:grid;gap:4px;padding:4px 16px 16px;border-top:1px solid var(--sheet-line);animation:fade-in var(--dur-base) ease-out both}.setting-more-body .select-field{margin:10px 0 0}.setting-more-body .select-trigger{min-width:0}.glass-sheet .credits{margin:4px 0 0}.setting-note{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--sheet-muted);font-size:.85rem;margin:8px 0 20px}.setting-note .ui-icon{width:18px;height:18px;margin:0;flex-basis:18px}@media(max-width:600px){.glass-sheet{padding:20px 16px 22px}.setting-row{grid-template-columns:32px minmax(0,1fr) auto;gap:10px;padding:12px}.setting-icon{width:32px;height:32px}.setting-icon .ui-icon{width:22px;height:22px}.setting-appearance{grid-template-columns:32px minmax(0,1fr)}.setting-row:has(>.select){grid-template-columns:32px minmax(0,1fr)}.setting-row>.select{grid-column:1 / -1}.setting-row>.select .select-trigger{min-width:0}.segmented{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr)}.segmented button{padding:6px 8px;font-size:.85rem}.glass-sheet .select-trigger{min-width:150px}.setting-sub{grid-column:1 / -1}.setting-more>summary{grid-template-columns:32px minmax(0,1fr);gap:10px;padding:12px 40px 12px 12px}.setting-more-body{padding:4px 12px 12px}}@media(max-width:360px){.segmented button{gap:4px;padding:6px 4px}}@media(max-width:760px){.page-panel{padding:20px;margin:12px 0}.rule-grid{grid-template-columns:1fr}}@media(max-width:360px){.identity{gap:10px}.identity>img{width:64px;height:64px}}.roster-sheet{max-width:1100px}.sheet-sub{margin:6px 0 0;font-size:.95rem;color:var(--sheet-muted)}.icon-button.active{background:var(--sheet-fill-hover);border-color:var(--line-strong)}.rival-grid{list-style:none;margin:20px 0 8px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.rival-card{display:flex;align-items:center;gap:12px;padding:10px 12px;min-width:0;background:var(--sheet-row);border:1px solid var(--sheet-line);border-radius:var(--radius-lg);transition:transform var(--dur-fast),background var(--dur-fast),box-shadow var(--dur-fast);animation:rise-in .3s var(--ease-pop) both}.rival-card:hover{background:var(--sheet-row-hover);transform:translateY(-2px);box-shadow:var(--shadow-light)}.rival-portrait{width:64px;height:64px;border-radius:50%;flex-shrink:0;background:color-mix(in srgb,var(--team) 38%,#FFF);border:3px solid var(--team);box-shadow:0 0 0 3px color-mix(in srgb,var(--team) 30%,transparent)}.rival-copy{min-width:0;display:grid;gap:6px}.rival-copy strong{display:flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:600;font-size:1rem}.style-chip{display:inline-flex;align-items:center;gap:6px;width:fit-content;max-width:100%;padding:5px 10px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--style, var(--team)) 22%,transparent);border:1px solid color-mix(in srgb,var(--style, var(--team)) 45%,transparent);color:var(--sheet-text);font-size:.78rem;font-weight:700;white-space:nowrap}.style-chip .ui-icon{width:15px;height:15px;flex-basis:15px;margin:0;color:var(--style, var(--team))}[data-style=aggressive]{--style: var(--team-red)}[data-style=cautious]{--style: var(--team-green)}[data-style=opportunist]{--style: var(--team-yellow)}[data-style=speedrunner]{--style: var(--accent-blue)}[data-style=balanced]{--style: var(--accent-purple)}.help-card{margin:14px 0 4px;padding:14px 16px;background:var(--sheet-fill);border:1px solid var(--sheet-line);border-radius:var(--radius-lg);animation:rise-in .25s var(--ease-pop) both}.help-card h2{font-size:1rem;margin-bottom:10px}.help-card ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.help-card li{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--sheet-muted);line-height:1.45}.help-card li .ui-icon,.help-card li .team-icon{flex:0 0 18px;width:18px;height:18px;margin:2px 0 0;color:var(--accent-yellow)}.help-card li[data-style] .ui-icon,.profile-block p[data-style] .ui-icon{color:var(--style)}.help-card li[data-style] strong,.profile-block p[data-style] strong{color:color-mix(in srgb,var(--style) 45%,var(--sheet-text))}.help-card strong{margin-right:6px}.roster-note{color:var(--sheet-muted);font-size:.85rem;text-align:center;margin:10px 0 18px}@media(max-width:1000px){.rival-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.rival-grid{grid-template-columns:1fr;gap:10px}.rival-card{padding:10px 12px;gap:12px}.rival-copy strong{font-size:.95rem}.style-chip{font-size:.72rem;padding:3px 8px}}.learning-sheet{max-width:1100px}.learning-privacy{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;padding:12px 14px;font-size:.86rem;line-height:1.45;color:var(--sheet-muted);background:var(--sheet-row);border:1px solid var(--sheet-line);border-radius:var(--radius-lg)}.learning-privacy .ui-icon{flex:0 0 18px;width:18px;height:18px;margin:3px 0 0;color:var(--sheet-warn)}.learning-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 12px;padding:10px 14px;border-radius:var(--radius-md);font-size:.88rem;font-weight:700}.learning-notice.ok{background:color-mix(in srgb,var(--sheet-ok) 16%,transparent);color:var(--sheet-ok-strong);border:1px solid color-mix(in srgb,var(--sheet-ok) 45%,transparent)}.learning-notice.warn{background:color-mix(in srgb,var(--accent-yellow) 16%,transparent);color:var(--sheet-warn);border:1px solid color-mix(in srgb,var(--accent-yellow) 55%,transparent)}.learning-notice .quiet{margin-left:auto;min-height:44px;color:inherit}.learning-tools{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.learning-tools>button{background:var(--sheet-fill);color:var(--sheet-text);border:1px solid var(--sheet-line);box-shadow:none}.learning-tools>button:hover:not(:disabled){background:var(--sheet-fill-hover);border-color:var(--line-strong);box-shadow:none}.learning-tools .danger{color:var(--sheet-danger)}.learning-tools>.danger:not(:first-child){margin-left:auto}.learning-tools .import-mode{margin:0;min-width:160px}.learning-hint{display:block;margin:8px 2px 0;font-size:.8rem;line-height:1.4}.learning-empty{margin:24px 0;text-align:center;color:var(--sheet-muted)}.learning-grid{list-style:none;margin:18px 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.learning-card{display:grid;align-content:start;gap:8px;padding:14px}.learning-card:hover{transform:none}.learning-head{display:flex;align-items:center;gap:12px}.learning-head .rival-portrait{width:56px;height:56px}.learning-stats{margin:0;display:grid;gap:4px;font-size:.82rem}.learning-stats>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:8px}.learning-stats dt{color:var(--sheet-muted)}.learning-stats dd{margin:0;font-weight:700;overflow-wrap:anywhere}.learning-subhead{font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sheet-muted);margin:6px 0 0}.learning-line{margin:0;font-size:.84rem;line-height:1.45;color:var(--sheet-text)}.opponent-model{list-style:none;margin:0;padding:0;display:grid;gap:4px}.opponent-row{display:grid;grid-template-columns:minmax(0,1.6fr) auto auto auto;align-items:center;gap:6px 10px;font-size:.8rem;padding:4px 0;border-bottom:1px solid var(--sheet-line)}.opponent-dimension{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-counts{color:var(--sheet-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.opponent-estimate{font-weight:800;font-variant-numeric:tabular-nums}.confidence-chip{padding:2px 8px;border-radius:var(--radius-pill);font-size:.68rem;font-weight:700;white-space:nowrap;border:1px solid var(--sheet-line);color:var(--sheet-muted)}.confidence-chip.confidence-medium{color:var(--sheet-warn);border-color:color-mix(in srgb,var(--sheet-warn) 50%,transparent)}.confidence-chip.confidence-high{color:var(--sheet-ok-strong);border-color:color-mix(in srgb,var(--sheet-ok) 55%,transparent)}.learning-card>.quiet,.learning-panel-inner>.quiet{justify-self:start;min-height:44px;color:var(--sheet-danger)}.learning-card>.quiet:hover:not(:disabled),.learning-panel-inner>.quiet:hover:not(:disabled){color:var(--sheet-danger);background:color-mix(in srgb,var(--sheet-danger) 10%,transparent)}.story-note{display:block;font-size:.74rem;line-height:1.4;color:var(--sheet-muted)}.story-highlights{list-style:none;margin:0;padding:0;display:grid;gap:4px}.story-highlights li{display:flex;justify-content:space-between;align-items:baseline;gap:4px 10px;flex-wrap:wrap;padding:4px 0;font-size:.8rem;line-height:1.4;border-bottom:1px solid var(--sheet-line)}.story-highlights time{font-size:.7rem;color:var(--sheet-muted);white-space:nowrap}.story-personality{font-style:italic}.learning-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;margin:0;padding:0;min-height:44px;text-align:left;cursor:pointer;background:transparent;border:0;box-shadow:none;color:inherit;border-radius:0}.learning-toggle:hover:not(:disabled),.learning-toggle:active:not(:disabled){transform:none;background:transparent;box-shadow:none}.learning-toggle .learning-head{min-width:0}.learning-chevron{width:9px;height:9px;margin-right:2px;flex-shrink:0;border-right:2.5px solid var(--sheet-muted);border-bottom:2.5px solid var(--sheet-muted);transform:translateY(-2px) rotate(45deg);transition:transform var(--dur-base) var(--ease-pop)}.learning-card.open .learning-chevron{transform:translateY(2px) rotate(-135deg)}.learning-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-base) ease}.learning-card.open .learning-panel{grid-template-rows:1fr}.learning-panel-inner{display:grid;gap:8px;min-height:0;overflow:hidden;opacity:0;padding-top:0;transition:opacity var(--dur-base) ease,padding-top var(--dur-base) ease}.learning-card.open .learning-panel-inner{opacity:1;padding-top:8px}@media(prefers-reduced-motion:reduce){.learning-chevron,.learning-panel,.learning-panel-inner{transition:none}}.met-chip{flex:0 0 auto;padding:2px 8px;border-radius:var(--radius-pill);font-size:.7rem;font-weight:700;white-space:nowrap;border:1px solid var(--sheet-line);color:var(--sheet-muted)}.met-chip.met-before{border-color:color-mix(in srgb,var(--team) 55%,transparent);color:var(--sheet-text)}.setup .rival-preview .rival-copy{flex-wrap:wrap}@media(max-width:600px){.learning-grid{grid-template-columns:1fr}.opponent-row{grid-template-columns:minmax(0,1fr) auto}.opponent-dimension{white-space:normal}.opponent-counts{grid-column:1}.learning-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.learning-tools .import-mode,.learning-tools .danger{grid-column:1 / -1}.learning-tools .import-mode,.learning-tools .select-trigger{min-width:0}.learning-tools>.danger:not(:first-child){margin-left:0}.learning-tools>button{padding-inline:10px}}.sheet-backdrop{display:none}.sheet-layer .page-panel{scrollbar-width:none}.sheet-layer .page-panel::-webkit-scrollbar{display:none}@media(max-width:760px){.sheet-backdrop{display:block;position:fixed;inset:0;z-index:29;background:#14121c73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in var(--dur-base) ease-out both}.sheet-layer .page-panel{position:fixed;left:0;right:0;bottom:0;z-index:30;margin:0;max-width:none;max-height:92dvh;overflow:auto;overscroll-behavior:contain;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -12px 32px #00000040;animation:sheet-in .36s var(--ease-pop)}.sheet-layer .page-panel.dragging{animation:none;transition:none}.sheet-layer .page-panel:before{content:"";display:block;width:44px;height:5px;margin:0 auto 14px;border-radius:3px;background:var(--line-strong)}.sheet-layer .sheet-head{--title-size: 1.6rem;margin-bottom:12px}.sheet-layer .head-back{left:-4px}.sheet-layer .head-action{right:-4px}.sheet-layer .page-panel.has-actions{padding-bottom:0}.sheet-layer .sheet-actions{position:sticky;bottom:0;z-index:2;margin:18px -18px 0;padding:12px 18px calc(14px + env(safe-area-inset-bottom));background:var(--surface-strong);border-top:1px solid var(--line);box-shadow:0 -8px 16px #00000014}.sheet-layer.closing .sheet-backdrop{animation:fade-out var(--dur-base) ease-in both;pointer-events:none}.sheet-layer.closing .page-panel{animation:sheet-out var(--dur-base) ease-in both;pointer-events:none}}@keyframes fade-out{to{opacity:0}}.best-moments{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);text-align:left}.best-moments h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:1rem}.best-moments h3 .ui-icon{width:18px;height:18px;color:var(--accent-purple)}.best-moments-off{display:flex;gap:8px;align-items:flex-start;margin:16px 0 0;font-size:.84rem;text-align:left}.best-moments-off .ui-icon,.share-privacy .ui-icon{flex:0 0 16px;width:16px;height:16px;margin:2px 0 0}.moment-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.moment-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;text-align:left;border-radius:var(--radius-md);background:var(--surface-tint);border:1px solid var(--line);border-left:4px solid var(--team, var(--line-strong))}.moment-portraits{position:relative;width:52px;height:48px}.moment-portraits img,.replay-actor,.moments-player{display:block;border-radius:50%;border:2px solid var(--team, var(--line-strong));background:color-mix(in srgb,var(--team, #FFF) 30%,#FFF)}.moment-actor{width:44px;height:44px}.moment-portraits .moment-target{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;box-shadow:0 0 0 2px var(--surface-strong)}.moment-copy{min-width:0;display:grid;gap:2px}.moment-copy strong{font-family:var(--font-display);font-weight:600;font-size:.95rem}.moment-why{min-width:0;font-size:.82rem;line-height:1.35;color:var(--text-main);overflow-wrap:anywhere}.moment-meta,.replay-labels{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:.72rem;font-weight:700;color:var(--text-muted)}.moment-meta>span,.replay-labels>span{white-space:nowrap}.moment-die{font-variant-numeric:tabular-nums}.moment-story{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-width:0;margin:0;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--accent-purple) 60%,transparent);background:color-mix(in srgb,var(--accent-purple) 18%,transparent);color:var(--sheet-story);font-size:.68rem;font-weight:800;line-height:1.2}.moment-story .ui-icon{width:11px;height:11px;margin:0;flex:0 0 auto}.moment-story-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.modal .moment-watch,.moment-watch{width:44px;height:44px;min-height:44px;margin:0;padding:0}.moment-watch .ui-icon{margin:0;width:18px;height:18px}.moment-empty{margin:0;font-size:.86rem}.modal .best-moments-actions button{margin-top:10px}.page-panel .moment-card{background:var(--sheet-row);border-color:var(--sheet-line);border-left-color:var(--team, var(--sheet-line))}.page-panel .moment-why{color:var(--sheet-text)}.page-panel .moment-meta,.page-panel .moment-empty{color:var(--sheet-muted)}.page-panel .moment-portraits .moment-target{box-shadow:0 0 0 2px var(--sheet-bg)}.moments-matches{list-style:none;margin:18px 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}.moments-match{display:grid;gap:10px;align-content:start;padding:14px}.moments-match:hover{transform:none}.moments-match-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.moments-match-copy{display:grid;gap:2px;min-width:0}.moments-players{list-style:none;margin:0;padding:0;display:flex}.moments-players li+li{margin-left:-8px}.moments-actions{display:flex;flex-wrap:wrap;gap:8px}.moments-actions button{flex:1 1 auto;min-height:44px;font-family:var(--font-display);font-weight:600;font-size:.88rem;background:var(--sheet-fill);color:var(--sheet-text);border:1px solid var(--sheet-line);box-shadow:none}.moments-actions button:hover:not(:disabled){background:var(--sheet-fill-hover);border-color:var(--line-strong);box-shadow:none;transform:none}.moments-actions .danger,.moments-actions .danger:hover:not(:disabled){color:var(--sheet-danger)}@media(max-width:600px){.moments-matches{grid-template-columns:1fr}.moment-card{gap:8px;padding:8px}.moment-story{padding:2px 7px;font-size:.64rem}.moment-story .ui-icon{width:10px;height:10px}}.modal.replay-viewer{width:min(100%,640px);padding:20px;text-align:left}.replay-body{display:grid;gap:10px;outline:none}.replay-head h2{margin:0;font-size:1.35rem}.modal .replay-kicker{margin:0;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.replay-stage{display:grid;place-items:center}.replay-board{width:min(100%,max(240px,calc(90dvh - 340px)))}.modal .replay-unavailable,.modal .replay-loading{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;min-height:160px;margin:0;padding:16px;text-align:center;border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-main)}.replay-unavailable .ui-icon{flex:0 0 18px;width:18px;height:18px;margin:0}.replay-caption{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--radius-md);background:var(--surface-tint);border-left:4px solid var(--team, var(--line-strong))}.replay-actor{flex:none;width:40px;height:40px}.replay-copy{min-width:0;display:grid;gap:2px}.modal .replay-labels{margin:0}.replay-actor-name{display:inline-flex;align-items:center;gap:4px;color:var(--text-main);font-size:.82rem}.modal .replay-why{margin:2px 0 0;color:var(--text-main);font-size:.9rem;line-height:1.4}.replay-controls,.replay-nav{display:flex;flex-wrap:wrap;gap:8px}.modal .replay-controls button,.modal .replay-nav button{flex:1 1 auto;width:auto;max-width:none;min-height:40px;margin:0;padding:8px 12px;font-size:.86rem}.replay-controls button[aria-pressed=true]{border-color:var(--focus)}.replay-next-icon{display:inline-flex;transform:scaleX(-1)}.replay-next-icon .ui-icon{margin:0 0 0 9px}.replay-keys{color:var(--text-soft);font-size:.72rem;text-align:center}@media(max-width:760px){.modal.replay-viewer{padding:10px 14px calc(16px + env(safe-area-inset-bottom))}.replay-board{width:min(100%,max(220px,calc(92dvh - 380px)))}.replay-keys{display:none}.replay-caption{align-items:flex-start;gap:8px;padding:8px}.replay-labels{gap:4px 6px}}.modal.share-dialog{text-align:left}.modal .share-privacy{display:flex;gap:8px;align-items:flex-start;font-size:.84rem}.share-option{display:grid;gap:4px;margin:12px 0}.share-option small,.share-hint{display:block;color:var(--text-muted);font-size:.78rem;line-height:1.4}.share-alt{display:block;margin-top:8px;font-weight:700}.share-alt-text{box-sizing:border-box;width:100%;margin-top:6px;padding:10px;font:inherit;font-size:max(16px,1rem);line-height:1.4;resize:vertical;border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-strong);color:var(--text-main)}.modal .share-notice{min-height:1.4em;margin:8px 0 0;font-size:.86rem;font-weight:700;color:var(--text-main)}.modal .share-notice.warn{color:var(--danger)}.high-contrast .moment-card,.high-contrast .replay-caption{border:2px solid #000;border-left-width:6px;border-left-color:var(--team, #000)}.high-contrast .share-alt-text{border:2px solid #000}.screen-game:before{background:linear-gradient(var(--veil-game-a),var(--veil-game-b)),url(/assets/scenes/game-room.webp) center / cover no-repeat,var(--bg)}.game-screen{padding-top:12px;animation:fade-in .3s ease-out both}.color-red{--team: var(--team-red)}.color-green{--team: var(--team-green)}.color-yellow{--team: var(--team-yellow);--team-text: #3A2A00}.color-blue{--team: var(--team-blue)}.match-tools{order:2;display:flex;gap:8px;align-items:center;flex-shrink:0}.toolbar-icon{background:var(--surface-strong);color:var(--text-main);border-color:transparent;box-shadow:var(--edge),var(--shadow-light)}.toolbar-icon:hover:not(:disabled){background:var(--surface-tint);transform:translateY(-2px);box-shadow:var(--edge),var(--shadow-soft)}.toolbar-icon .ui-icon{width:22px;height:22px}.match-layout{display:grid;grid-template-columns:minmax(0,calc(100dvh - 124px)) minmax(280px,340px);grid-template-areas:"plates plates" "board dock";gap:16px 22px;align-items:start;justify-content:center}.plates-row{grid-area:plates;display:flex;align-items:center;gap:12px;min-width:0}.player-strip{flex:1;min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.board-frame{grid-area:board}.dock{grid-area:dock;display:flex;flex-direction:column;gap:12px;min-width:0}.player-card{position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:8px 12px 8px 8px;background:linear-gradient(color-mix(in srgb,var(--team) 10%,var(--surface-strong)),var(--surface-strong) 70%);border-radius:var(--radius-lg);border:2px solid color-mix(in srgb,var(--team) 35%,transparent);border-bottom-width:4px;box-shadow:var(--shadow-light);transition:box-shadow var(--dur-base),transform var(--dur-base),border-color var(--dur-base),opacity var(--dur-base)}.player-card:not(.active){opacity:.92}.player-card.active{border-color:var(--team);transform:translateY(-3px);box-shadow:0 0 0 4px color-mix(in srgb,var(--team) 22%,transparent),var(--shadow-soft)}.player-card.active:after{content:"";position:absolute;right:10px;top:10px;width:9px;height:9px;border-radius:50%;background:var(--team);box-shadow:0 0 0 3px color-mix(in srgb,var(--team) 25%,transparent);animation:turn-pin 1.6s ease-in-out infinite;will-change:transform}@keyframes turn-pin{50%{transform:scale(1.35)}}.avatar-ring{position:relative;flex-shrink:0}.avatar{display:block;width:56px;height:56px;border-radius:50%;background:var(--surface-tint);border:3px solid var(--team);transition:transform var(--dur-base) var(--ease-pop)}.player-card.active .avatar{transform:scale(1.04)}.avatar-ring .team-icon{position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;padding:3px;border-radius:50%;background:var(--surface-strong);box-shadow:0 1px 3px #00000040}.plate-copy{min-width:0}.plate-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-weight:600;font-size:.98rem;line-height:1.2}.plate-copy small{display:block;margin-top:2px;font-size:.68rem;font-weight:700;line-height:1.3}.plate-style{color:var(--text-soft)}.player-progress{display:flex;gap:4px;margin-top:5px}.player-progress i{display:block;width:12px;height:7px;border-radius:3px;background:transparent;border:1.5px solid var(--text-soft);transition:background var(--dur-base),border-color var(--dur-base)}.player-progress i.home{background:var(--team);border-color:color-mix(in srgb,var(--team) 62%,var(--text-main))}.player-card.hit{animation:plate-shake .5s ease-in-out}.player-card.strike{animation:plate-strike .5s var(--ease-pop)}@keyframes plate-shake{20%{transform:translate(-5px) rotate(-1deg)}40%{transform:translate(5px) rotate(1deg)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes plate-strike{40%{transform:translateY(-6px) scale(1.04)}}.plate-fx{position:absolute;inset:-2px;border-radius:inherit;pointer-events:none;animation:flash .55s ease-out both}.plate-fx.hit{background:color-mix(in srgb,var(--accent-red) 40%,transparent)}.plate-fx.strike{background:color-mix(in srgb,var(--team) 35%,transparent)}@keyframes flash{0%{opacity:1}to{opacity:0}}.board-frame{position:relative;width:100%;min-width:0;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-lg);border:4px solid var(--board-frame);background:var(--board-wood);box-shadow:var(--shadow-soft)}.board-frame[data-board-theme=desert]{border-color:#d6aa66;background:#e7b46d}.board-frame[data-board-theme=rocky-islands]{border-color:#83cfc4;background:#1aa8bd}.board-frame[data-board-theme=kingdom]{border-color:#e7e2d8;background:#5fa832}.board-frame[data-board-theme=islands]{border-color:#7ccb45;background:#2fa3ea}.board-frame[data-board-theme=fortress]{border-color:#d2cdc3;background:#4f9d2b}.board-host{width:100%;height:100%}.board-host canvas{display:block;width:100%!important;height:100%!important;margin:0!important}.board-fallback{position:absolute;inset:0;width:100%;height:100%}.board-notice{position:absolute;bottom:10px;left:5%;right:5%;font-size:.78rem;font-weight:700;background:var(--surface);border-radius:var(--radius-sm);padding:7px;text-align:center;pointer-events:none}.ticker{display:flex;align-items:center;gap:8px;margin:0;padding:8px 14px;border-radius:var(--radius-pill);background:var(--surface-strong);color:var(--text-main);box-shadow:var(--shadow-light);font-size:.8rem;font-weight:800;line-height:1.3;animation:ticker-in .35s var(--ease-pop) both}.ticker .ui-icon{width:18px;height:18px;flex-basis:18px;margin:0;color:var(--accent-orange)}.ticker-piece-captured{background:#ffe4e4;color:#7a1f1f}.ticker-piece-captured .ui-icon{color:#c62828}.ticker-match-won,.ticker-piece-finished{background:#fff3c4;color:#5b4300}.ticker-match-won .ui-icon,.ticker-piece-finished .ui-icon{color:#b27f00}.ticker-bonus-roll-awarded{background:#ddf5e4;color:#14532d}.ticker-bonus-roll-awarded .ui-icon{color:var(--primary-press)}.ticker-landmine-triggered{background:#ffe4e4;color:#7a1f1f}.ticker-landmine-triggered .ui-icon{color:#c62828}.ticker-portal-triggered{background:#ede4ff;color:#3a1f78}.ticker-portal-triggered .ui-icon{color:#6a3fc0}@keyframes ticker-in{0%{opacity:0;transform:translateY(-8px) scale(.96)}}.die-dock{display:grid;grid-template-columns:88px minmax(0,1fr);grid-template-areas:"die copy" "button button" "skip skip";align-items:center;gap:4px 12px;padding:14px;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);transition:box-shadow var(--dur-base)}.die-dock.armed{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 28%,transparent),var(--shadow-soft)}.die{grid-area:die;position:relative;width:88px;height:88px;display:grid;place-items:center}.die-dock.armed .die{cursor:pointer}.die-cube{width:70px;height:70px;position:relative;transform:rotate(-8deg);transition:transform var(--dur-base) var(--ease-pop)}.die-dock.armed .die-cube{animation:die-ready 1.6s ease-in-out infinite;will-change:transform}.die-dock.armed .die:hover .die-cube{transform:rotate(-2deg) scale(1.06)}.die-dock.rival .die-cube{opacity:.8;filter:saturate(.75)}.die.rolling .die-cube{animation:die-tumble .32s linear infinite}.die.rolling .pip{opacity:0}.die-face{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:11px;border-radius:16px;background:linear-gradient(135deg,#fff,#fff6e6 70%,#ebd9bf);border:2px solid #FFF;box-shadow:inset 3px 3px 5px #fff,inset -4px -4px 8px #78501e40,4px 7px #d8c19b,0 12px 18px #0000002e}.pip{width:100%;aspect-ratio:1;border-radius:50%;background:var(--text-main);box-shadow:inset 1px 2px 3px #0009;opacity:0;transition:opacity var(--dur-fast)}.pip.visible{opacity:1}.die-face>.ui-icon{position:absolute;width:40px;height:40px;left:13px;top:13px;color:var(--accent-orange)}@keyframes die-ready{50%{transform:rotate(-8deg) translateY(-4px)}}@keyframes die-tumble{0%{transform:rotate(-8deg) scale(1)}25%{transform:rotate(82deg) scale(1.1) translateY(-6px)}50%{transform:rotate(172deg) scale(1)}75%{transform:rotate(262deg) scale(1.1) translateY(-6px)}to{transform:rotate(352deg) scale(1)}}.die-copy{grid-area:copy;min-width:0}.dock>.die-copy{grid-area:auto;display:grid;gap:2px;padding:0 4px}.die-copy strong{display:block;font-family:var(--font-display);font-weight:600;font-size:1.05rem;line-height:1.2;overflow-wrap:anywhere}.die-copy small{display:block;margin-top:3px;font-size:.78rem;font-weight:700;color:var(--text-muted)}.roll-button{grid-area:button;width:100%;min-height:54px;font-size:1.1rem;margin-top:8px}.die-dock.armed .roll-button{position:relative}.die-dock.armed .roll-button:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:0 10px 26px #34c75980;opacity:0;animation:glow-fade 1.8s ease-in-out infinite;will-change:opacity}@keyframes glow-fade{50%{opacity:1}}.skip-button{grid-area:skip;justify-self:center}.die-dock.turn-card{position:relative;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"die pieces";align-items:center}.die-dock.turn-card .die .skip-button{position:absolute;top:2px;left:2px;right:auto;z-index:4;transform:none;grid-area:auto;width:26px;height:26px;min-height:26px;margin:0;padding:0;border-radius:50%;background:var(--surface-strong);color:var(--text-muted);box-shadow:var(--shadow-light)}.die-dock.turn-card .die .skip-button .ui-icon{position:static;width:14px;height:14px;margin:0;transform:none}.die-dock.turn-card .die .skip-button:hover:not(:disabled),.die-dock.turn-card .die .skip-button:active:not(:disabled){transform:none;background:var(--surface-strong);box-shadow:var(--shadow-light);color:var(--text-main)}.die-dock.turn-card .die{width:84px;height:84px;border-radius:20px;background:color-mix(in srgb,var(--accent-blue) 18%,var(--surface-strong))}.die-dock.turn-card .die-cube{width:62px;height:62px}.die-dock.turn-card .roll-button{position:absolute;width:1px;height:1px;min-height:0;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.die-dock.turn-card .squad{grid-area:pieces;min-width:0;padding:0;background:none;box-shadow:none}.die-dock.turn-card .squad h2{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.die-dock.turn-card .piece-buttons{gap:8px;height:100%;align-items:stretch}.die-dock.turn-card .piece-buttons .squad-piece{height:100%;min-height:84px;padding:8px 4px 16px;border-radius:14px;background:var(--surface);justify-content:flex-end}.die-dock.turn-card .squad-piece img{height:52px}.die-dock.turn-card .accent-host[data-accent]:after{bottom:6px;height:12px}.die-dock.turn-card .chip-zone{display:none}.die-dock.turn-card .piece-buttons .squad-piece.legal{border-color:var(--accent-blue);background:var(--surface-strong);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-blue) 35%,transparent)}.dock-pills{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.dock-pill,.dock-pills .rule-help-button{display:flex;align-items:center;gap:8px;width:100%;min-height:52px;margin:0;padding:8px 12px;border-radius:16px;background:var(--surface-strong);color:var(--text-main);border:1px solid var(--line);box-shadow:none;font-family:var(--font-body);font-size:.92rem;font-weight:700;text-align:left;white-space:normal}.dock-pills .rule-help-button:hover:not(:disabled){transform:none;background:var(--surface-tint);box-shadow:none}.dock-pill .ui-icon,.dock-pills .rule-help-button .ui-icon{flex:none;width:22px;height:22px;margin:0;color:var(--accent-blue)}.dock-pill span,.dock-pills .rule-help-button>span:first-of-type{min-width:0}.dock-chevron{flex:none;margin-left:auto;width:8px;height:8px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(-45deg)}.rule-help-button .dock-chevron{transform:rotate(45deg)}.rule-help-button[aria-expanded=true] .dock-chevron{transform:rotate(225deg)}.squad h2{display:flex;align-items:center;gap:8px;font-size:.95rem;margin:0 0 8px}.squad h2 .team-icon{flex-shrink:0}.piece-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.piece-buttons .squad-piece{position:relative;flex-direction:column;gap:2px;padding:8px 4px 6px;min-height:94px;min-width:0;font-family:var(--font-body);background:var(--surface-strong);border-radius:var(--radius-md);border:2px solid var(--line);box-shadow:var(--shadow-light)}.squad-piece img{display:block;width:100%;height:52px;object-fit:contain;filter:drop-shadow(0 3px 2px rgba(0,0,0,.25))}.chip-zone{font-size:.66rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.piece-buttons .squad-piece[aria-disabled=true]{opacity:.72;box-shadow:none;cursor:default}.piece-buttons .squad-piece[aria-disabled=true]:hover,.piece-buttons .squad-piece[aria-disabled=true]:active{transform:none;background:var(--surface-strong);box-shadow:none}.piece-buttons .squad-piece.legal{border-color:var(--team);background:color-mix(in srgb,var(--team) 12%,var(--surface-strong));box-shadow:0 0 0 3px color-mix(in srgb,var(--team) 22%,transparent),var(--shadow-light)}.piece-buttons .squad-piece.legal .chip-zone{color:var(--text-main)}.piece-buttons .squad-piece.legal:hover:not(:disabled){transform:translateY(-3px)}.piece-buttons .squad-piece.legal img{animation:bob 1.4s ease-in-out infinite;will-change:transform}@keyframes bob{50%{transform:translateY(-3px)}}.piece-buttons .selected{outline:3px solid var(--focus);outline-offset:2px}.piece-buttons .shake{animation:chip-shake .4s ease-in-out}@keyframes chip-shake{25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.piece-finished{position:absolute;top:2px;right:5px;font-size:1rem;font-weight:800;color:var(--primary)}.hazard-badge{position:absolute;top:3px;left:4px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:.8rem;font-weight:900;line-height:1;color:#fff;pointer-events:none}.hazard-badge.hazard-landmine{background:#e53935;border:2px solid #7A1010}.hazard-badge.hazard-portal{background:#7e57c2;border:2px dashed #3A1F78}.hazard-warnings{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}.hazard-warning{padding:6px 10px;border-radius:var(--radius-md);font-size:.76rem;font-weight:800;line-height:1.35;border-left:4px solid}.hazard-warning.hazard-landmine{background:#ffe4e4;color:#7a1f1f;border-left-style:solid;border-color:#c62828}.hazard-warning.hazard-portal{background:#ede4ff;color:#3a1f78;border-left-style:dashed;border-color:#6a3fc0}.hazard-note{display:inline;font-weight:900}.move-chooser{padding:14px;background:var(--surface-strong);border:2px solid var(--accent-yellow);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);animation:rise-in .28s var(--ease-pop) both}.move-chooser h2{display:flex;align-items:center;font-size:1rem;margin-bottom:4px}.move-chooser h2 .ui-icon{color:var(--accent-orange)}.move-chooser>p{font-size:.76rem;color:var(--text-muted);margin-bottom:10px}.route-options{display:grid;gap:8px}.route-options button{width:100%;justify-content:flex-start;text-align:left;gap:12px;padding:10px 14px;min-height:60px}.route-options button .ui-icon{flex-basis:24px;width:24px;height:24px;margin:0}.route-copy{display:grid;gap:2px;min-width:0}.route-title{font-family:var(--font-display);font-weight:600;font-size:1rem;line-height:1.2}.route-note{font-family:var(--font-body);font-weight:700;font-size:.72rem;line-height:1.3;opacity:.85;white-space:normal}.around-choice{background:#ffe4d6;color:#7a2e12;box-shadow:0 3px #e9a08a,var(--shadow-light)}.home-choice{background:#ddf5e4;color:#14532d;box-shadow:0 3px #9cd6b0,var(--shadow-light)}.around-choice:hover:not(:disabled){background:#ffd6c2}.home-choice:hover:not(:disabled){background:#cdefd8}.feedback{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-tint);color:var(--text-main);font-size:.78rem;font-weight:700;line-height:1.4;animation:rise-in .25s var(--ease-pop) both}.feedback .ui-icon{flex-basis:18px;width:18px;height:18px;margin:1px 0 0;color:var(--accent-orange)}.decision-explanation{display:flex;gap:8px;align-items:flex-start;margin:0;padding:8px 12px;border-radius:var(--radius-md);background:var(--surface);color:var(--text-muted);font-size:.74rem;font-weight:700;line-height:1.4;box-shadow:var(--shadow-light)}.decision-explanation .ui-icon{flex-basis:16px;width:16px;height:16px;margin:1px 0 0;color:var(--accent-blue)}.decision-explanation strong{color:var(--text-main)}.high-contrast .decision-explanation,.high-contrast .recognition-card,.high-contrast .story-milestone{border:2px solid #000}.recognition-card{position:relative;margin:0;padding:8px 40px 8px 10px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-light);animation:rise-in .25s var(--ease-pop) both}.recognition-card ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.recognition-row{display:flex;align-items:center;gap:8px;min-width:0}.recognition-portrait{flex:0 0 36px;width:36px;height:36px;border-radius:50%;border:2px solid var(--team);background:color-mix(in srgb,var(--team) 30%,#FFF)}.recognition-copy{display:grid;min-width:0;line-height:1.3}.recognition-copy strong{font-size:.8rem;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recognition-copy small{font-size:.7rem;font-weight:700;color:var(--text-muted);overflow-wrap:anywhere}.recognition-close{position:absolute;top:4px;right:4px;width:32px;height:32px;min-height:0;padding:0}.recognition-close .ui-icon{width:16px;height:16px;margin:0}.story-milestone{display:flex;gap:8px;align-items:flex-start;margin:0;padding:8px 12px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent-purple) 14%,var(--surface));color:var(--text-main);font-size:.78rem;font-weight:700;line-height:1.4;box-shadow:var(--shadow-light);animation:rise-in .25s var(--ease-pop) both}.story-milestone .ui-icon{flex-basis:16px;width:16px;height:16px;margin:1px 0 0;color:var(--accent-purple)}.event-log,.match-rules{margin:0;padding:0 14px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-light)}.event-log summary,.match-rules summary{font-size:.9rem}.event-log ol{list-style:none;padding:0;margin:0 0 10px;max-height:190px;overflow:auto;font-size:.74rem;line-height:1.5;color:var(--text-muted);scrollbar-width:thin}@media(max-width:760px){.event-log ol{scrollbar-width:none}.event-log ol::-webkit-scrollbar{display:none}}.event-log li{display:flex;align-items:center;gap:8px;padding:7px 0 7px 6px;border-bottom:1px solid var(--line);border-left:3px solid var(--accent-yellow)}.event-log li:first-child{color:var(--text-main);font-weight:700;animation:fade-in .3s ease-out both}.event-log li img{flex:0 0 30px;width:30px;height:30px;object-fit:contain;border-radius:50%;background:var(--surface-tint)}.modal .match-rules{text-align:left;background:var(--surface-tint);box-shadow:none;margin:0 0 6px}.match-rules ul{list-style:none;padding:0;margin:0 0 10px}.match-rules li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.74rem;color:var(--text-muted);padding:5px 0}.rule-on,.rule-off{display:inline-grid;place-items:center;width:30px;height:20px;border-radius:var(--radius-pill);background:#ddf5e4;color:#14532d;font-weight:800}.rule-off{background:var(--surface-sunken);color:var(--text-muted)}.save-hint,.fictional-note{color:var(--text-soft);font-size:.68rem!important}.save-hint{margin:0;text-align:center}.fictional-note{text-align:center;margin:16px 0}.overlay-badge{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--accent-yellow);color:#3a2a00;box-shadow:0 4px #d99a00,var(--shadow-light);margin:0 auto 12px}.overlay-badge .ui-icon{width:30px;height:30px;margin:0}.pause-badge{animation:pop-in .35s var(--ease-pop) both}.standings{list-style:none;margin:6px 0 14px;padding:0;display:grid;gap:6px;text-align:left}.standings li{display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"avatar name pips" "avatar count pips";align-items:center;gap:0 10px;padding:6px 10px;border-radius:var(--radius-md);background:var(--surface-tint);border-left:4px solid var(--team);animation:rise-in .3s var(--ease-pop) both}.standings li:nth-child(2){animation-delay:60ms}.standings li:nth-child(3){animation-delay:.12s}.standings li:nth-child(4){animation-delay:.18s}.standings img{grid-area:avatar;width:36px;height:36px;border-radius:50%;background:var(--surface-strong);border:2px solid var(--team)}.standings strong{grid-area:name;font-family:var(--font-display);font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.standings small{grid-area:count;font-size:.76rem}.standings .player-progress{grid-area:pips;margin:0}.standings .winner{background:#fff3c4}.capture-recap{margin:2px 0 14px;text-align:left}.capture-recap h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:1.05rem}.capture-recap h3 .ui-icon{margin:0;color:var(--accent-orange)}.capture-lead{margin:0 0 8px;font-weight:800;line-height:1.35}.capture-lead small{display:block;margin-top:2px;font-weight:700;color:var(--text-muted)}.capture-rows{list-style:none;margin:0;padding:0;display:grid;gap:6px}.capture-rows li{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border-radius:var(--radius-md);background:var(--surface-tint);border-left:4px solid var(--team)}.capture-rows img{flex:none;width:32px;height:32px;border-radius:50%;background:var(--surface-strong);border:2px solid var(--team)}.capture-rows strong{flex:0 1 auto;min-width:0;font-family:var(--font-display);font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.capture-rows small{flex:1 1 auto;min-width:0;font-size:.76rem;color:var(--text-muted);text-align:right}.capture-rows .leader{background:#fff3c4}.capture-rows .leader small{color:#6b4a00;font-weight:800}.overlay-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal .overlay-row button{margin-top:10px}.game-overlay>.primary{min-height:56px;font-size:1.15rem}.game-overlay>.primary .ui-icon{width:24px;height:24px;flex-basis:24px}.game-overlay .overlay-row{display:flex;flex-wrap:wrap}.game-overlay .overlay-row>button{flex:1 1 140px;min-width:0}.reward{position:relative;height:150px;margin:-6px auto 6px;display:grid;place-items:center;overflow:visible}.reward-rays{position:absolute;width:220px;height:220px;border-radius:50%;background:repeating-conic-gradient(rgba(255,204,77,.4) 0 10deg,transparent 10deg 26deg);-webkit-mask:radial-gradient(circle,#000 20%,transparent 70%);mask:radial-gradient(circle,#000 20%,transparent 70%);animation:rays-spin 16s linear infinite}@keyframes rays-spin{to{transform:rotate(360deg)}}.reward .crown-badge{position:absolute;top:0;left:50%;z-index:2;width:52px;height:52px;margin:0;transform:translate(-50%) rotate(-12deg);animation:crown-drop .7s var(--ease-pop) both}.reward .crown-badge .ui-icon{width:26px;height:26px}@keyframes crown-drop{0%{transform:translate(-50%,-40px) rotate(-30deg);opacity:0}}.reward-avatar{position:relative;z-index:1;width:96px;height:96px;margin-top:26px;border-radius:50%;background:var(--surface-strong);border:4px solid var(--team);box-shadow:var(--shadow-soft);animation:pop-in .4s var(--ease-pop) both}.reward.defeat .reward-rays{opacity:.45;filter:saturate(.3);animation-duration:30s}.reward.defeat .crown-badge{background:var(--surface-sunken);color:var(--text-muted);box-shadow:0 4px 0 var(--line-strong)}:root[data-theme=dark] .around-choice{background:#5a2d1e;color:#ffd9c8;box-shadow:0 3px #3a1a10,var(--shadow-light)}:root[data-theme=dark] .home-choice{background:#1f4a30;color:#cdf5da;box-shadow:0 3px #123020,var(--shadow-light)}:root[data-theme=dark] .around-choice:hover:not(:disabled){background:#6b3826}:root[data-theme=dark] .home-choice:hover:not(:disabled){background:#27593b}:root[data-theme=dark] .rule-on,:root[data-theme=dark] .ticker-bonus-roll-awarded{background:#1f4a30;color:#cdf5da}:root[data-theme=dark] .notice,:root[data-theme=dark] .ticker-match-won,:root[data-theme=dark] .ticker-piece-finished,:root[data-theme=dark] .standings .winner,:root[data-theme=dark] .capture-rows .leader{background:#4a3a0f;color:#ffe9a8;border-color:#b8912a}:root[data-theme=dark] .capture-rows .leader small{color:#ffe9a8}:root[data-theme=dark] .ticker-piece-captured{background:#5a1f1f;color:#ffd0d0}:root[data-theme=dark] .ticker-landmine-triggered,:root[data-theme=dark] .hazard-warning.hazard-landmine{background:#5a1f1f;color:#ffd0d0}:root[data-theme=dark] .ticker-portal-triggered,:root[data-theme=dark] .hazard-warning.hazard-portal{background:#34245c;color:#e4d8ff}.high-contrast .hazard-warning{border:2px solid #000;border-left-width:6px}:root[data-theme=dark] .die-face{background:linear-gradient(135deg,#fff,#f3e9da 70%,#d9c6a8)}.high-contrast .player-card,.high-contrast .die-dock,.high-contrast .move-chooser,.high-contrast .ticker{border:2px solid #000}.high-contrast .player-card:not(.active){opacity:1}.high-contrast .die-dock.rival .die-cube{opacity:1;filter:none}.high-contrast .die-face{border-color:#000}@media(min-width:1400px){.match-layout{grid-template-columns:minmax(0,calc(100dvh - 128px)) minmax(300px,380px);gap:16px 28px}}@media(max-width:1100px)and (min-width:761px){.match-layout{grid-template-columns:minmax(0,calc(100dvh - 120px)) 260px;gap:14px 16px}.player-card{padding:6px 8px 6px 6px;gap:8px}.avatar{width:48px;height:48px}.plate-copy strong{font-size:.86rem}.plate-style{display:none}.die-dock{grid-template-columns:76px minmax(0,1fr);padding:12px}.die{width:76px;height:76px}.die-cube{width:62px;height:62px}.piece-buttons{gap:6px}.squad-piece img{height:44px}}@media(max-width:760px){.game-screen{padding-top:8px}.plates-row{gap:6px;align-items:stretch}.match-tools{flex-direction:column;justify-content:center;gap:6px}.toolbar-icon{width:40px;height:40px;min-height:40px}.toolbar-icon .ui-icon{width:20px;height:20px}.match-layout{grid-template-columns:1fr;grid-template-areas:"plates" "board" "dock";gap:12px}.player-strip{gap:6px}.player-card{flex-direction:column;text-align:center;padding:8px 4px 6px;gap:4px;border-radius:12px}.player-card.active{transform:translateY(-2px)}.player-card.active:after{right:5px;top:5px;width:7px;height:7px}.avatar{width:48px;height:48px}.avatar-ring .team-icon{width:18px;height:18px;padding:2px;right:-3px;bottom:-3px}.plate-copy{width:100%}.plate-copy strong{font-size:.76rem}.plate-copy small{display:none}.player-progress{justify-content:center;gap:3px;margin-top:4px}.player-progress i{width:8px;height:5px}.board-frame{border-radius:11px;border-width:3px}.ticker{font-size:.74rem;padding:7px 12px}.die-dock{grid-template-columns:72px minmax(0,1fr);padding:12px;gap:2px 12px}.die{width:72px;height:72px}.die-cube{width:58px;height:58px}.die-face{padding:9px;gap:3px;border-radius:13px}.die-face>.ui-icon{width:32px;height:32px;left:11px;top:11px}.die-copy strong{font-size:.98rem}.die-copy small{font-size:.74rem}.roll-button{min-height:54px}.piece-buttons{gap:6px}.piece-buttons .squad-piece{min-height:86px;padding:6px 2px 5px}.squad-piece img{height:44px}.chip-zone{font-size:.62rem;letter-spacing:0}.move-chooser{position:fixed;left:0;right:0;bottom:0;z-index:35;border:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:12px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -12px 32px #00000040;animation:sheet-in .36s var(--ease-pop)}.move-chooser:before{content:"";display:block;width:44px;height:5px;margin:0 auto 12px;border-radius:3px;background:var(--line-strong)}.route-options button{min-height:56px}.fictional-note{font-size:.6rem!important}.reward{height:130px}.reward-avatar{width:84px;height:84px}}@media(max-width:360px){.plate-copy strong{font-size:.7rem}.avatar{width:48px;height:48px}.squad-piece img{height:38px}.piece-buttons .squad-piece{min-height:78px}.die-dock{grid-template-columns:64px minmax(0,1fr)}.die{width:64px;height:64px}.die-cube{width:52px;height:52px}}@media(max-height:520px)and (min-width:560px){.game-screen{padding-top:6px}.match-layout{grid-template-columns:minmax(0,calc(100dvh - 24px)) minmax(240px,1fr);grid-template-areas:"board plates" "board dock";gap:8px 14px}.board-frame{max-width:calc(100dvh - 24px)}.plates-row{align-items:stretch}.match-tools{flex-direction:column;justify-content:center}.player-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.player-card{flex-direction:row;text-align:left;padding:5px 8px;gap:8px}.avatar{width:40px;height:40px}.plate-copy strong{font-size:.72rem}.plate-copy small,.plate-style{display:none}.player-progress{justify-content:flex-start;margin-top:2px}.die-dock{grid-template-columns:60px minmax(0,1fr) auto;grid-template-areas:"die copy button" "skip skip skip";padding:8px 10px;gap:4px 10px}.die{width:60px;height:60px}.die-cube{width:48px;height:48px}.die-face{padding:7px;gap:3px;border-radius:11px}.die-face>.ui-icon{width:26px;height:26px;left:9px;top:9px}.roll-button{width:auto;min-height:46px;font-size:.95rem;margin:0;padding:8px 14px}.piece-buttons{gap:5px}.piece-buttons .squad-piece{min-height:70px;padding:5px 2px 4px}.squad-piece img{height:34px}.move-chooser{position:static;border:2px solid var(--accent-yellow);border-radius:var(--radius-lg);padding:10px;box-shadow:var(--shadow-soft);animation:rise-in .28s var(--ease-pop) both}.move-chooser:before{display:none}}.die-dock.rival .die-cube{opacity:1;filter:none}.die.rolling .die-cube{animation:paced-die-throw calc(var(--roll-duration) * var(--throw-share, 1) * var(--roll-tempo, 1)) var(--throw-ease, ease-out) both}.die.rolling.throw-energetic .die-cube{animation-name:throw-energetic}.die.rolling.throw-careful .die-cube{animation-name:throw-careful}.die.rolling.throw-playful .die-cube{animation-name:throw-playful}.die.rolling.throw-confident .die-cube{animation-name:throw-confident}@keyframes throw-energetic{0%{transform:rotate(-8deg) scale(1)}10%{transform:translateY(5px) rotate(-24deg) scale(1.12,.86)}38%{transform:translate(2px,-22px) rotate(400deg) scale(.96,1.06)}62%{transform:translateY(2px) rotate(740deg) scale(1.1,.9)}74%{transform:translate(-2px,-8px) rotate(980deg)}86%{transform:translateY(1px) rotate(1068deg) scale(1.06,.94)}93%{transform:translateY(-3px) rotate(1078deg)}to{transform:translate(var(--roll-drift, 0px)) rotate(calc(1072deg + var(--roll-tilt, 0deg))) scale(1)}}@keyframes throw-careful{0%{transform:rotate(-8deg) scale(1)}20%{transform:translateY(2px) rotate(-14deg) scale(1.03,.97)}60%{transform:translate(6px,-6px) rotate(150deg)}88%{transform:translateY(0) rotate(348deg) scale(1.02,.98)}to{transform:translate(var(--roll-drift, 0px)) rotate(calc(352deg + var(--roll-tilt, 0deg))) scale(1)}}@keyframes throw-playful{0%{transform:rotate(-8deg) scale(1)}12%{transform:translate(-6px,3px) rotate(-30deg) scale(1.08,.92)}35%{transform:translate(9px,-16px) rotate(260deg) scale(.94,1.08)}55%{transform:translate(-8px,-4px) rotate(470deg)}70%{transform:translate(5px,-11px) rotate(620deg) scale(1.06,.94)}85%{transform:translate(-2px,1px) rotate(712deg) scale(1.08,.92)}to{transform:translate(var(--roll-drift, 0px)) rotate(calc(712deg + var(--roll-tilt, 0deg))) scale(1)}}@keyframes throw-confident{0%{transform:rotate(-8deg) scale(1)}12%{transform:translateY(2px) rotate(-18deg) scale(1.06,.94)}50%{transform:translateY(-10px) rotate(500deg)}78%{transform:translateY(0) rotate(712deg) scale(1.05,.95)}to{transform:translate(var(--roll-drift, 0px)) rotate(calc(712deg + var(--roll-tilt, 0deg))) scale(1)}}@keyframes paced-die-throw{0%{transform:rotate(-8deg) scale(1)}15%{transform:translateY(3px) rotate(-20deg) scale(1.05,.95)}55%{transform:translateY(-12px) rotate(195deg)}80%{transform:translateY(1px) rotate(350deg) scale(1.04,.96)}95%{transform:translateY(-1px) rotate(352deg)}to{transform:translate(var(--roll-drift, 0px)) rotate(calc(352deg + var(--roll-tilt, 0deg))) scale(1)}}@keyframes die-settle{0%{transform:translate(var(--roll-drift, 0px)) rotate(calc(-8deg + var(--roll-tilt, 0deg))) scale(1)}40%{transform:translate(calc(var(--roll-drift, 0px) * .3),1px) rotate(calc(var(--roll-tilt, 0deg) * .25)) scale(calc(1 + var(--throw-impact, .6) * .14),calc(1 - var(--throw-impact, .6) * .14))}72%{transform:translateY(calc(var(--throw-impact, .6) * -4px)) rotate(calc(var(--roll-tilt, 0deg) * -.1)) scale(calc(1 - var(--throw-impact, .6) * .03),calc(1 + var(--throw-impact, .6) * .03))}to{transform:translate(0) rotate(0) scale(1)}}@keyframes throw-minimal{0%,to{transform:translateY(0) rotate(-8deg)}30%{transform:translateY(-3px) rotate(-14deg)}60%{transform:translateY(0) rotate(-3deg)}80%{transform:translateY(-1px) rotate(-10deg)}}@keyframes die-settle-min{0%{transform:rotate(-8deg) scale(.96)}to{transform:rotate(0) scale(1)}}.presented-number{position:absolute;right:-2px;bottom:-2px;min-width:32px;padding:2px 5px;border:2px solid #211916;border-radius:9px;background:#fff;color:#211916;font-size:1.4rem;font-weight:900;text-align:center}.die-copy .presented-owner{display:flex;align-items:center;gap:4px;color:var(--text-main)}.dialogue-stage{display:contents}.die-dock:not(.armed) .die:not(.rolling) .die-cube{animation:none;transform:rotate(0)}.die-dock:not(.armed) .die.landing .die-cube{animation:die-settle calc(.15s + 90ms * var(--throw-impact, .6)) ease-out both}@media(prefers-reduced-motion:no-preference){.game-screen.effects-reduced .die.rolling .die-cube{animation:throw-minimal calc(var(--roll-duration) * .5) ease-in-out both!important}.game-screen.effects-reduced .die-dock:not(.armed) .die.landing .die-cube{animation:die-settle-min .14s ease-out both!important}}.game-screen.effects-off .die.rolling .die-cube,.game-screen.effects-off .die.landing .die-cube{animation:none}@media(prefers-reduced-motion:reduce){.game-screen .die-dock .die.rolling .die-cube,.game-screen .die-dock .die.landing .die-cube{animation:none}}.die .pip{background:#211916}.player-card.retired{border-style:dashed;background:var(--surface-sunken)}.placement-badge{position:absolute;top:-5px;right:-6px;z-index:5;border:2px solid var(--surface-strong);display:inline-block;color:var(--rr-obsidian);background:var(--accent-yellow);border-radius:var(--radius-pill);font-weight:800;font-size:.72rem;padding:1px 6px}.rule-help{font-size:.85rem;line-height:1.5}.match-mode{color:var(--text-muted);font-size:.72rem;margin:0}.ticker-player-completed,.ticker-placement-awarded{background:var(--surface-tint);color:var(--text-main)}.standings small{overflow-wrap:anywhere}@media(max-width:760px){.placement-badge{font-size:.6rem}}@media(max-width:760px)and (min-height:521px){.dock{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 0}.dock>*{grid-column:1 / -1}.dock>.ticker{grid-row:auto}.dock:before{content:"";grid-row:2;grid-column:1 / -1;background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft)}.dock>.die-dock.turn-card{grid-column:1 / -1;grid-row:2;background:var(--surface);box-shadow:var(--shadow-soft)}.dock:has(>.die-dock.turn-card):before{display:none}.dock>.die-dock,.dock>.squad{grid-row:2;position:relative;z-index:1;background:none;box-shadow:none}.dock>.die-dock.turn-card .roll-button{position:absolute}.dock>.die-dock{grid-column:1;grid-template-columns:auto;grid-template-areas:"die";place-content:center;padding:12px 14px;border-radius:0}.dock>.die-dock.armed{box-shadow:none}.dock>.die-dock .die{border-radius:18px;box-shadow:0 0 0 3px var(--team)}.dock>.die-dock.armed .die{box-shadow:0 0 0 3px var(--team),0 0 0 7px color-mix(in srgb,var(--primary) 35%,transparent)}.dock>.die-dock .presented-number{border-color:var(--team)}.dock>.die-dock .die-copy{display:none}.dock>.die-dock.turn-card{grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"die pieces";place-content:stretch;padding:12px;border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-soft)}.dock>.die-dock.turn-card .die-copy{display:block}.dock>.die-dock.turn-card .die{box-shadow:none;border-radius:20px}.dock>.die-dock .roll-button{grid-area:auto;position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.dock>.die-dock .skip-button{grid-area:auto;position:absolute;top:-14px;left:50%;transform:translate(-50%);min-height:28px;padding:2px 10px;font-size:.72rem;white-space:nowrap}.dock>.die-dock.turn-card .die .skip-button{top:2px;left:2px;right:auto;transform:none}.dock:has(>.die-dock.turn-card){display:flex;flex-direction:column;gap:12px}.dock:has(>.die-dock.turn-card)>.die-dock.turn-card{grid-row:auto;z-index:auto}.dock>.die-copy .skip-button{position:static;top:auto;left:auto;transform:none;grid-area:auto}.dock>.squad{grid-column:2;padding:12px 12px 12px 14px;background:linear-gradient(var(--line),var(--line)) left center / 2px calc(100% - 28px) no-repeat}.squad h2{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.piece-buttons{gap:8px}.piece-buttons .squad-piece{min-height:72px;padding:6px 2px}.squad-piece img{height:46px}.squad-piece .chip-zone{display:none}}.die-dock.turn-card.armed .die{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 70%,transparent)}.die-dock.turn-card.armed .die:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.4;box-shadow:0 0 0 7px color-mix(in srgb,var(--primary) 24%,transparent),0 8px 22px color-mix(in srgb,var(--primary) 40%,transparent);animation:glow-fade 1.8s ease-in-out infinite;will-change:opacity}.die-dock.turn-card.armed .die-cube{translate:0 -6px}.die-dock.turn-card .presented-number{transition:opacity var(--dur-fast)}.die-dock.turn-card.armed .presented-number{opacity:0}.die-cta{position:absolute;left:50%;bottom:-6px;z-index:3;transform:translate(-50%);padding:3px 9px;border-radius:var(--radius-pill);border:2px solid var(--rr-ivory);background:var(--primary-press);color:#fff;box-shadow:0 2px 0 var(--primary-edge),var(--shadow-light);font-family:var(--font-display);font-weight:600;font-size:.76rem;line-height:1.2;letter-spacing:.01em;white-space:nowrap}.die-cta-pointer{display:none}@media(hover:hover)and (pointer:fine){.die-cta-touch{display:none}.die-cta-pointer{display:inline}}.die-dock.turn-card:has(.roll-button:focus-visible) .die{outline:3px solid var(--focus);outline-offset:3px}.high-contrast .die-cta{border-color:#000}:root[data-theme=dark] .piece-buttons .squad-piece,:root[data-theme=dark] .piece-buttons .squad-piece[aria-disabled=true]:hover,:root[data-theme=dark] .piece-buttons .squad-piece[aria-disabled=true]:active{background:radial-gradient(ellipse 72% 58% at 50% 52%,rgba(255,244,226,.28),rgba(255,244,226,.08) 62%,transparent 82%),var(--surface-strong)}:root[data-theme=dark] .die-dock.turn-card .piece-buttons .squad-piece.legal{background:radial-gradient(ellipse 72% 58% at 50% 52%,rgba(255,244,226,.36),rgba(255,244,226,.1) 62%,transparent 82%),color-mix(in srgb,var(--accent-blue) 16%,var(--surface-strong))}:root[data-theme=dark] .piece-buttons .squad-piece[aria-disabled=true]{opacity:.86}:root[data-theme=dark] .squad-piece img{filter:drop-shadow(0 0 1px rgba(255,255,255,.6)) drop-shadow(0 3px 2px rgba(0,0,0,.45))}.reserve-badge{position:absolute;left:-4px;top:-4px;z-index:5;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-strong);color:#1e6fd9;border:2px solid #1E6FD9;box-shadow:0 1px 3px #00000040}.reserve-badge .ui-icon{width:14px;height:14px;flex-basis:14px;margin:0}.reserve-status{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;min-width:0}.reserve-chip{display:flex;align-items:center;gap:8px;min-width:0;margin:0;padding:5px 12px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--accent-blue) 14%,var(--surface-strong));color:var(--text-main);border:2px solid color-mix(in srgb,#1E6FD9 45%,transparent);font-size:.74rem;font-weight:800;line-height:1.3}.reserve-round{color:var(--text-muted)}.reserve-countdown{flex:1 1 210px;border-radius:var(--radius-md);padding:6px 12px}.reserve-countdown>.ui-icon{width:22px;height:22px;flex-basis:22px;margin:0;color:#1e6fd9}.reserve-chip-copy{display:grid;min-width:0}.reserve-chip-copy strong{font-family:var(--font-display);font-weight:600;font-size:.9rem}.reserve-chip-copy small{font-size:.7rem;font-weight:700;color:var(--text-muted);overflow-wrap:anywhere}.reserve-time{font-variant-numeric:tabular-nums}.reserve-countdown.imminent{background:#ffe9c7;color:#6b3600;border-color:#e67e00;box-shadow:0 0 0 2px color-mix(in srgb,#E67E00 35%,transparent)}.reserve-countdown.imminent>.ui-icon{color:#c25e00}.reserve-countdown.imminent .reserve-chip-copy small{color:inherit}.reserve-soon{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-weight:900;white-space:nowrap}.reserve-soon-mark{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#c25e00;color:#fff;font-size:.72rem;line-height:1;animation:reserve-pulse 1s ease-in-out infinite}@keyframes reserve-pulse{50%{transform:scale(1.18)}}.reserve-news{display:flex;gap:8px;align-items:flex-start;margin:0;padding:8px 12px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent-blue) 14%,var(--surface));color:var(--text-main);font-size:.78rem;font-weight:700;line-height:1.4;box-shadow:var(--shadow-light);animation:rise-in .25s var(--ease-pop) both}.reserve-news .ui-icon{flex-basis:18px;width:18px;height:18px;margin:1px 0 0;color:#1e6fd9}.ticker-reserve-entry-used,.ticker-reserve-entry-collected{background:#e3f1ff;color:#0b3d6b}.ticker-reserve-entry-used .ui-icon,.ticker-reserve-entry-collected .ui-icon{color:#1e6fd9}.reserve-action{display:grid;gap:8px;min-width:0}.reserve-use{width:100%;min-height:48px;background:color-mix(in srgb,var(--accent-blue) 16%,var(--surface-strong));color:var(--text-main);border-color:#1e6fd9;box-shadow:0 3px color-mix(in srgb,#1E6FD9 45%,transparent),var(--shadow-light)}.reserve-use .ui-icon{color:#1e6fd9}.reserve-use:hover:not([aria-disabled=true]){background:color-mix(in srgb,var(--accent-blue) 26%,var(--surface-strong))}.reserve-use[aria-disabled=true]{opacity:.6;cursor:default;box-shadow:none}.reserve-use[aria-disabled=true]:hover,.reserve-use[aria-disabled=true]:active{transform:none;box-shadow:none}.reserve-chooser{border-color:#1e6fd9}.reserve-chooser h2 .ui-icon{color:#1e6fd9}.reserve-bonus-lost{color:var(--text-main)}.reserve-choice{background:color-mix(in srgb,var(--accent-blue) 14%,var(--surface-strong));box-shadow:0 3px color-mix(in srgb,#1E6FD9 40%,transparent),var(--shadow-light)}.reserve-choice img{flex:0 0 auto;width:40px;height:46px;object-fit:contain;filter:drop-shadow(0 3px 2px rgba(0,0,0,.25))}.reserve-cancel{width:100%;margin-top:8px}.reserve-cancel .ui-icon{width:18px;height:18px;flex-basis:18px}:root[data-theme=dark] .reserve-badge{color:#8dc4ff;border-color:#8dc4ff}:root[data-theme=dark] .reserve-countdown>.ui-icon,:root[data-theme=dark] .reserve-news .ui-icon,:root[data-theme=dark] .reserve-use .ui-icon,:root[data-theme=dark] .reserve-chooser h2 .ui-icon{color:#8dc4ff}:root[data-theme=dark] .reserve-countdown.imminent{background:#4a2a0a;color:#ffe0b8;border-color:#ffa040}:root[data-theme=dark] .reserve-countdown.imminent>.ui-icon{color:#ffa040}:root[data-theme=dark] .ticker-reserve-entry-used,:root[data-theme=dark] .ticker-reserve-entry-collected{background:#173a5c;color:#d6ebff}:root[data-theme=dark] .ticker-reserve-entry-used .ui-icon,:root[data-theme=dark] .ticker-reserve-entry-collected .ui-icon{color:#8dc4ff}.high-contrast .reserve-chip,.high-contrast .reserve-news,.high-contrast .reserve-use,.high-contrast .reserve-badge{border:2px solid #000}.high-contrast .reserve-countdown.imminent{box-shadow:0 0 0 2px #000}@media(max-width:760px){.reserve-badge{width:18px;height:18px;left:-3px;top:-3px;border-width:1px}.reserve-badge .ui-icon{width:12px;height:12px;flex-basis:12px}.reserve-chip{font-size:.7rem;padding:4px 10px}.reserve-countdown{flex-basis:100%}}.board-frame[data-board-theme=frozen-world]{border-color:#c7f5fb;background:#80c5e0}.board-frame[data-board-theme=volcano]{border-color:#d78957;background:#39232c}.board-frame[data-board-theme=cosmic-arena]{border-color:#9e9ade;background:#171b40}.board-frame[data-board-theme=candy-chaos]{border-color:#e6b7cf;background:#edb8c6}.board-frame[data-board-theme=underwater]{border-color:#9bcfc8;background:#267f9c}.board-frame[data-board-theme=clockwork]{border-color:#d7b37a;background:#544536}.board-frame[data-board-theme=neon-city]{border-color:#72dbe9;background:#18263d}.board-frame[data-board-theme=haunted-grounds]{border-color:#ada7bc;background:#403c55}.board-frame[data-board-theme=lost-temple]{border-color:#b9c28d;background:#426c49}.game-screen{position:relative}.speech-layer{position:absolute;inset:0;pointer-events:none;z-index:20;overflow:visible}.speech-bubble{position:absolute;left:0;top:0;width:max-content;max-width:min(190px,62vw);padding:5px 10px 6px;pointer-events:none;background:var(--surface-strong);color:var(--text-main);border:2px solid var(--team);border-left-width:5px;border-radius:var(--radius-md);font-size:.74rem;font-weight:800;line-height:1.25;box-shadow:var(--shadow-light)}.speech-name{display:block;font-family:var(--font-display);font-size:.62rem;font-weight:600;letter-spacing:.03em;color:color-mix(in srgb,var(--team) 75%,var(--text-main))}.speech-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere}.speech-bubble[data-compact=true]{padding:3px 6px;font-size:.64rem}.speech-bubble[data-compact=true] .speech-name{display:none}.speech-bubble[data-compact=true] .speech-text{-webkit-line-clamp:2;line-clamp:2}.speech-layer.effects-full .speech-bubble{animation:speech-in .18s var(--ease-pop) both}@keyframes speech-in{0%{opacity:0;scale:.9}}.high-contrast .speech-bubble{background:#fff;color:#000;border-color:#000;border-left-color:var(--team);box-shadow:0 0 0 2px #fff}.high-contrast .speech-name{color:#000}.speech-tail{position:absolute;width:0;height:0;left:calc(var(--tail, 24px) - 5px);top:-2px;background:inherit;transform:rotate(var(--tail-turn, 0deg)) scale(var(--tail-scale, 1))}.speech-tail:before,.speech-tail:after{content:"";position:absolute;clip-path:polygon(50% 0,100% 100%,0 100%)}.speech-tail:before{left:-7px;top:-7px;width:14px;height:9px;background:var(--team)}.speech-tail:after{left:-6px;top:-3.75px;width:12px;height:7.75px;background:inherit}.speech-bubble[data-side=above] .speech-tail{top:calc(100% + 2px);--tail-turn: 180deg}.speech-bubble[data-side=right] .speech-tail{left:-5px;top:calc(var(--tail, 20px) - 2px);--tail-turn: -90deg}.speech-bubble[data-side=left] .speech-tail{left:calc(100% + 2px);top:calc(var(--tail, 20px) - 2px);--tail-turn: 90deg}.speech-bubble:is([data-side=card],[data-side=""]) .speech-tail,.speech-bubble:not([data-side]) .speech-tail{display:none}.high-contrast .speech-tail:before{background:#000}.reaction-sparkle{position:absolute;top:-12px;left:-6px;width:30px;height:30px;pointer-events:none;z-index:2;background:radial-gradient(circle,var(--rr-ivory) 0 2px,transparent 3px) 4px 6px / 12px 12px,radial-gradient(circle,var(--rr-gold) 0 2px,transparent 3px) 16px 14px / 14px 14px;animation:sparkle .9s ease-out forwards}@keyframes sparkle{0%{opacity:0;transform:scale(.4) rotate(-20deg)}30%{opacity:1}to{opacity:0;transform:scale(1.3) rotate(20deg)}}.rival-personality{display:block;margin-top:2px;font-size:.7rem;font-weight:700;color:var(--text-soft)}.idle-hint{font-style:italic}.effects-full[data-idle=quiet] .roll-button:not(:disabled),.effects-full[data-idle=quiet] .die-dock.turn-card.armed .die,.effects-full[data-idle=quiet] [data-testid=legal-piece]{animation:idle-glow 2.4s ease-in-out infinite alternate}@keyframes idle-glow{to{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-yellow) 45%,transparent),var(--shadow-soft)}}@media(max-width:760px){.speech-bubble{max-width:min(280px,calc(100vw - 104px));font-size:.68rem;padding:3px 8px 4px}.speech-tail{--tail-scale: .85}.speech-name{display:none}.speech-text{-webkit-line-clamp:2;line-clamp:2}}.dialogue-float{display:contents}.menu-challenges{--btn-accent: var(--accent-orange)}.challenges-sheet{max-width:1100px;--warm-ink: color-mix(in srgb, var(--accent-orange) 62%, var(--sheet-text))}.challenge-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;margin:0;font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--sheet-muted)}.challenge-kicker .ui-icon{width:16px;height:16px;flex-basis:16px;margin:0;color:var(--warm-ink, var(--accent-orange))}.challenge-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;font-size:.78rem;font-weight:700;color:var(--sheet-muted)}.challenge-difficulty{display:inline-flex;align-items:center;gap:6px}.difficulty-pips{display:inline-flex;gap:3px}.difficulty-pips i{display:block;width:8px;height:8px;border-radius:2px;border:1.5px solid currentColor}.difficulty-pips i.on{background:currentColor}.challenge-stars{display:inline-flex;gap:1px;color:#c08400;font-size:.95rem;line-height:1;letter-spacing:0}.challenge-stars .star:not(.earned){color:var(--text-soft)}.challenge-stars.large{font-size:2rem;gap:6px;justify-content:center}:root[data-theme=dark] .challenge-stars{color:var(--accent-yellow)}.challenge-daily{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 18px;margin:0 0 22px;padding:16px 18px;border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--accent-orange) 50%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-yellow) 20%,var(--sheet-row)),color-mix(in srgb,var(--accent-orange) 12%,var(--sheet-row)))}.challenge-daily-copy{display:grid;gap:6px;min-width:0}.challenge-daily h2{margin:0;font-size:1.3rem;color:var(--sheet-text)}.challenge-daily-brief{margin:0;font-size:.9rem;line-height:1.45;color:var(--sheet-text)}.challenge-daily-status{display:flex;align-items:center;gap:6px;margin:0;font-size:.8rem;font-weight:700;color:var(--sheet-muted)}.challenge-daily.solved .challenge-daily-status{color:var(--sheet-ok-strong)}.challenge-daily-status .ui-icon{width:16px;height:16px;flex-basis:16px;margin:0;color:var(--sheet-ok)}.challenge-daily>.primary{min-height:52px;padding:10px 22px}.challenge-category{--cat: var(--accent-yellow);--cat-ink: color-mix(in srgb, var(--cat) 62%, var(--sheet-text));margin:0 0 20px}.challenge-category[data-category=learn]{--cat: var(--accent-yellow)}.challenge-category[data-category=tactics]{--cat: var(--accent-coral)}.challenge-category[data-category=go-around]{--cat: var(--accent-blue)}.challenge-category[data-category=advanced]{--cat: var(--accent-purple)}.challenge-category-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;margin-bottom:10px}.challenge-category-head h2{display:flex;align-items:center;margin:0;font-size:1.15rem;color:var(--sheet-text)}.challenge-category-head h2 .ui-icon{color:var(--cat-ink)}.challenge-mastery{margin:0;font-size:.8rem;font-weight:700;color:var(--sheet-muted);text-align:right}.challenge-mastery-bar{grid-column:1 / -1;display:block;height:6px;border-radius:var(--radius-pill);overflow:hidden;background:var(--sheet-fill);box-shadow:inset 0 0 0 1px var(--sheet-line)}.challenge-mastery-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sheet-ok),var(--primary))}.challenge-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.challenge-card{width:100%;height:100%;min-height:108px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px 12px;padding:12px 14px;text-align:left;font-family:var(--font-body);background:var(--sheet-row);color:var(--sheet-text);border:1px solid var(--sheet-line);border-radius:var(--radius-lg);box-shadow:none}.challenge-card:hover:not(:disabled){background:var(--sheet-row-hover);box-shadow:var(--shadow-light)}.challenge-card-lead{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--sheet-fill);border:1px solid var(--sheet-line);color:var(--cat-ink)}.challenge-card-lead .ui-icon{width:22px;height:22px;flex-basis:22px;margin:0}.challenge-card-body{display:grid;align-content:start;justify-items:start;gap:8px;min-width:0}.challenge-card-title{font-family:var(--font-display);font-weight:600;font-size:1rem;line-height:1.25;color:var(--sheet-text)}.challenge-mode{display:inline-flex;align-items:center;gap:4px;padding:1px 8px 1px 6px;border-radius:var(--radius-pill);background:var(--sheet-fill);border:1px solid var(--sheet-line);color:var(--sheet-text)}.challenge-mode .ui-icon{width:14px;height:14px;flex-basis:14px;margin:0;color:var(--cat-ink)}.challenge-status{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:.78rem;font-weight:700;color:var(--sheet-muted)}.challenge-status>.ui-icon{width:14px;height:14px;flex-basis:14px;margin:0}.challenge-card.status-new .challenge-status>.ui-icon{color:var(--cat-ink)}.challenge-card.status-tried .challenge-status>.ui-icon{color:var(--warm-ink, var(--accent-orange))}.challenge-card.status-solved{border-color:color-mix(in srgb,var(--sheet-ok) 50%,transparent)}.challenge-card.status-solved .challenge-card-lead{background:color-mix(in srgb,var(--sheet-ok) 14%,transparent);border-color:color-mix(in srgb,var(--sheet-ok) 45%,transparent);color:var(--sheet-ok)}.challenge-card.status-solved .challenge-status{color:var(--sheet-ok-strong)}.challenge-check{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--primary-press);color:#fff;font-size:.7rem;font-weight:900}.high-contrast .challenge-card,.high-contrast .challenge-daily{border:2px solid var(--sheet-text)}.challenge-footnote{text-align:center}@media(max-width:600px){.challenge-daily{grid-template-columns:1fr;padding:14px}.challenge-daily>.primary{width:100%}.challenge-category-head{grid-template-columns:1fr}.challenge-mastery{text-align:left}.challenge-grid{grid-template-columns:1fr}}.screen-challenge:before{background:linear-gradient(var(--veil-game-a),var(--veil-game-b)),url(/assets/scenes/game-room.webp) center / cover no-repeat,var(--bg)}.challenge-banner{grid-area:plates;display:flex;align-items:center;gap:12px;min-width:0;padding:8px 10px 8px 12px;background:var(--surface-strong);border:2px solid var(--accent-orange);border-radius:var(--radius-lg);box-shadow:var(--shadow-light)}.challenge-badge{flex:none;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);background:var(--accent-orange);color:#3a1a00;font-family:var(--font-display);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.challenge-badge .ui-icon{width:18px;height:18px;flex-basis:18px;margin:0}.challenge-banner-copy{flex:1;min-width:0;display:grid;gap:2px}.challenge-banner-copy h1{margin:0;font-size:1.2rem;line-height:1.2;overflow-wrap:anywhere}.challenge-banner .challenge-meta{color:var(--text-muted)}.challenge-banner .match-tools{order:0}.challenge-dock{grid-area:dock;display:flex;flex-direction:column;gap:12px;min-width:0}.challenge-dock .die-dock:not(:has(>.roll-button,>.skip-button)){grid-template-areas:"die copy"}.challenge-objective,.challenge-conditions{margin:0;padding:12px 14px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-light)}.challenge-objective h2{display:flex;align-items:center;margin:0 0 4px;font-size:1rem}.challenge-objective h2 .ui-icon{color:var(--accent-orange)}.challenge-objective p{margin:0;font-weight:700;line-height:1.45}.challenge-objective small,.challenge-conditions small{display:block;margin-top:6px;font-size:.74rem;line-height:1.4}.challenge-conditions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px}.challenge-conditions>p{margin:0;padding:3px 10px;border-radius:var(--radius-pill);background:var(--surface-sunken);border:1px solid var(--line);color:var(--text-main);font-size:.82rem;font-weight:800;line-height:1.35}.challenge-conditions .puzzle-dice{flex-basis:100%}.puzzle-dice{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:.86rem;font-weight:800}.puzzle-dice ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.puzzle-die{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 6px;border-radius:var(--radius-sm);background:var(--surface-strong);border:2px solid var(--line-strong);font-variant-numeric:tabular-nums}.puzzle-die.used{opacity:.5;text-decoration:line-through}.puzzle-die.next{border-color:var(--accent-orange);background:color-mix(in srgb,var(--accent-orange) 18%,var(--surface-strong));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-orange) 30%,transparent)}.puzzle-dice small{flex-basis:100%;margin-top:2px;font-weight:700}.challenge-moves h2{margin-bottom:10px}.challenge-moves .selected-piece{outline:3px solid var(--focus);outline-offset:2px}.challenge-controls{display:flex;flex-wrap:wrap;gap:8px}.challenge-controls button{flex:1 1 auto;min-height:44px;padding:8px 12px;font-size:.88rem}.challenge-hint-cost{display:block;margin-top:-6px;font-size:.72rem;text-align:center}.challenge-result{display:grid;gap:8px;padding:16px;text-align:center;border-radius:var(--radius-lg);background:var(--surface-strong);border:2px solid var(--line-strong);box-shadow:var(--shadow-soft);animation:rise-in .3s var(--ease-pop) both}.challenge-result.won{border-color:var(--primary)}.challenge-result.lost{border-color:var(--accent-coral)}.challenge-result h2{display:flex;align-items:center;justify-content:center;margin:0;font-size:1.3rem;outline:none}.challenge-result h2 .ui-icon{color:var(--accent-orange)}.challenge-result.won h2 .ui-icon{color:var(--accent-yellow)}.challenge-result-line{margin:0;font-weight:700;line-height:1.45}.challenge-result .challenge-explain{justify-self:center;min-height:44px}.challenge-explanation{margin:0;padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-tint);text-align:left;line-height:1.5}.challenge-result-actions{display:grid;gap:8px}.challenge-result-actions button{width:100%;min-height:48px}.high-contrast .challenge-banner,.high-contrast .challenge-objective,.high-contrast .challenge-conditions,.high-contrast .challenge-result{border:2px solid #000}.high-contrast .puzzle-die{border-color:#000}:root[data-theme=dark] .challenge-badge{color:#2a1200}@media(max-width:760px){.challenge-banner{flex-wrap:wrap;gap:8px;padding:8px}.challenge-banner-copy{order:3;flex-basis:100%}.challenge-banner .match-tools{flex-direction:row;margin-left:auto}.challenge-banner-copy h1{font-size:1.05rem}.challenge-moves.move-chooser{position:static;border:2px solid var(--accent-yellow);border-radius:var(--radius-lg);padding:12px;box-shadow:var(--shadow-soft);animation:rise-in .28s var(--ease-pop) both}.challenge-moves.move-chooser:before{display:none}.challenge-dock:not(.tutorial-dock)>.challenge-result,.challenge-dock:not(.tutorial-dock)>.die-dock{order:1}.challenge-dock:not(.tutorial-dock)>.challenge-moves{order:2}.challenge-dock:not(.tutorial-dock)>.challenge-tap-hint{order:3}.challenge-dock:not(.tutorial-dock)>.ticker{order:4}.challenge-dock:not(.tutorial-dock)>.challenge-objective{order:5}.challenge-dock:not(.tutorial-dock)>.challenge-conditions{order:6}.challenge-dock:not(.tutorial-dock)>.challenge-hint{order:7}.challenge-dock:not(.tutorial-dock)>.challenge-controls{order:8}.challenge-dock:not(.tutorial-dock)>.challenge-hint-cost{order:9}.challenge-objective{padding:10px 12px}.challenge-objective h2{font-size:.95rem;margin-bottom:2px}.challenge-objective p{font-size:.92rem;line-height:1.4}}@media(max-height:520px)and (min-width:560px){.challenge-layout{grid-template-areas:"board plates" "board dock"}}.screen-tutorial:before{background:linear-gradient(var(--veil-game-a),var(--veil-game-b)),url(/assets/scenes/game-room.webp) center / cover no-repeat,var(--bg)}.tutorial-invite{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 12px;margin:0 0 14px;padding:12px 14px;text-align:left;border-radius:var(--radius-lg);background:var(--surface-strong);border:2px solid var(--accent-yellow);box-shadow:var(--shadow-soft);animation:rise-in .32s var(--ease-pop) both}.tutorial-invite-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--accent-yellow) 30%,var(--surface-strong));color:var(--accent-orange)}.tutorial-invite-icon .ui-icon{width:22px;height:22px;margin:0}.tutorial-invite h2{margin:0;font-size:1.05rem}.tutorial-invite p{margin:2px 0 0;font-size:.82rem;line-height:1.4;color:var(--text-muted)}.tutorial-invite-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.tutorial-invite-actions button{flex:1 1 auto;min-height:44px;font-size:.95rem}.tutorial-invite-start{background:var(--accent-yellow);color:#3a2a00;box-shadow:0 3px #c99a1e,var(--shadow-light)}.tutorial-invite-start:hover:not(:disabled){background:color-mix(in srgb,var(--accent-yellow) 85%,#FFF)}.high-contrast .tutorial-invite{border-color:#000}.tutorial-page{max-width:760px}.tutorial-lessons,.tutorial-rules{margin:0 0 22px}.tutorial-lessons-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin-bottom:6px}.tutorial-page h2{display:flex;align-items:center;margin:0 0 6px;font-size:1.2rem}.tutorial-page .tutorial-lessons-head h2{margin:0}.tutorial-page h2 .ui-icon{color:var(--accent-orange)}.tutorial-lessons-count{margin:0;font-size:.82rem;font-weight:800;color:var(--sheet-muted)}.tutorial-lessons-intro{margin:0 0 12px;font-size:.9rem;color:var(--sheet-muted)}.tutorial-resume{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:0 0 12px;padding:10px 12px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent-yellow) 16%,var(--sheet-row));border:1px solid color-mix(in srgb,var(--accent-orange) 45%,transparent);color:var(--sheet-text);font-weight:700}.tutorial-resume p{margin:0}.tutorial-resume button{min-height:44px}.tutorial-lesson-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.tutorial-lesson{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px 12px;padding:12px;border-radius:var(--radius-lg);background:var(--sheet-row);border:1px solid var(--sheet-line)}.tutorial-lesson.completed{border-color:color-mix(in srgb,var(--sheet-ok) 50%,transparent)}.tutorial-lesson-number{align-self:start;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-family:var(--font-display);font-weight:700;background:var(--sheet-fill);border:1px solid var(--sheet-line);color:var(--sheet-text)}.tutorial-lesson.completed .tutorial-lesson-number{background:var(--primary-press);border-color:transparent;color:#fff}.tutorial-lesson-copy{display:grid;gap:2px;min-width:0}.tutorial-lesson-copy strong{font-family:var(--font-display);font-weight:600;line-height:1.3;color:var(--sheet-text)}.tutorial-lesson-copy small{font-size:.8rem;line-height:1.35;color:var(--sheet-muted)}.tutorial-lesson-status{font-weight:800}.tutorial-lesson.completed .tutorial-lesson-status{color:var(--sheet-ok)}.tutorial-lesson button{min-height:44px;padding:8px 16px}.tutorial-lesson button:not(.primary){background:var(--sheet-fill);color:var(--sheet-text);border-color:var(--sheet-line);box-shadow:none}.tutorial-lesson button:not(.primary):hover:not(:disabled){background:var(--sheet-fill-hover);box-shadow:none}.tutorial-start-over{display:grid;justify-items:center;gap:4px;margin-top:14px;text-align:center}.tutorial-start-over button{min-height:44px}.tutorial-start-over small{font-size:.76rem;color:var(--sheet-muted)}.high-contrast .tutorial-lesson,.high-contrast .tutorial-resume{border:2px solid var(--sheet-text)}@media(max-width:480px){.tutorial-lesson{grid-template-columns:32px minmax(0,1fr);padding:12px 12px 14px}.tutorial-lesson button{grid-column:1 / -1;width:100%}.tutorial-resume button{width:100%}}.tutorial-badge{background:var(--accent-yellow)}.tutorial-coach,.tutorial-complete{display:grid;gap:8px;margin:0;padding:12px 14px;border-radius:var(--radius-lg);background:var(--surface-strong);border:2px solid var(--accent-yellow);box-shadow:var(--shadow-soft)}.tutorial-coach-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tutorial-coach h2,.tutorial-complete h2{display:flex;align-items:center;margin:0;font-size:1rem;outline:none}.tutorial-coach h2 .ui-icon,.tutorial-complete h2 .ui-icon{color:var(--accent-orange)}.tutorial-step-count{font-size:.78rem;font-weight:800;color:var(--text-muted);white-space:nowrap}.tutorial-progress{list-style:none;margin:0;padding:0;display:flex;gap:4px}.tutorial-progress li{flex:1;height:5px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text-soft) 45%,transparent)}.tutorial-progress li.done{background:var(--primary)}.tutorial-progress li.current{background:var(--accent-orange)}.tutorial-step-text{margin:0;font-weight:700;line-height:1.45;outline:none}.tutorial-step-hint{display:flex;gap:6px;align-items:flex-start;margin:0;font-size:.78rem;font-weight:700;color:var(--text-muted)}.tutorial-step-hint .ui-icon{flex-basis:16px;width:16px;height:16px;margin:1px 0 0;color:var(--accent-blue)}.tutorial-coach-actions,.tutorial-complete-actions{display:flex;flex-wrap:wrap;gap:6px 8px}.tutorial-coach-actions button{min-height:44px}.tutorial-coach-actions .tutorial-next{flex:1 1 100%;background:var(--accent-yellow);color:#3a2a00;box-shadow:0 3px #c99a1e,var(--shadow-light)}.tutorial-coach-actions .tutorial-next:hover:not(:disabled){background:color-mix(in srgb,var(--accent-yellow) 85%,#FFF);box-shadow:0 3px #c99a1e,var(--shadow-soft)}.tutorial-coach-actions .quiet{flex:1 1 auto}.tutorial-complete{text-align:center;border-color:var(--primary)}.tutorial-complete h2{justify-content:center;font-size:1.2rem}.tutorial-complete p{margin:0;line-height:1.45}.tutorial-complete-actions{display:grid}.tutorial-complete-actions button{width:100%;min-height:48px}.tutorial-players{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;border-radius:var(--radius-lg)}.tutorial-players .player-card{padding:6px 10px 6px 6px}.tutorial-players .avatar{width:40px;height:40px}.tutorial-players .plate-style{display:none}:root[data-theme=dark] .tutorial-coach-actions .tutorial-next,:root[data-theme=dark] .tutorial-invite-start{color:#2a1e00}.high-contrast .tutorial-coach,.high-contrast .tutorial-complete{border-color:#000}.tutorial-screen[data-tutorial-target=players] .tutorial-players,.tutorial-screen[data-tutorial-target=die] .die-dock .die,.tutorial-screen[data-tutorial-target=roll] .roll-button,.tutorial-screen[data-tutorial-target=moves] .tutorial-moves,.tutorial-screen[data-tutorial-target=pieces] .board-frame,.tutorial-screen[data-tutorial-target=pieces] .tutorial-moves,.tutorial-screen[data-tutorial-target=board] .board-frame,.tutorial-screen[data-tutorial-target=go-around] .route-compare,.tutorial-screen[data-tutorial-target=help] .tutorial-help-button{outline:3px solid var(--accent-orange);outline-offset:3px;animation:tutorial-pulse 1.6s ease-in-out infinite}@keyframes tutorial-pulse{50%{outline-color:var(--accent-yellow);outline-offset:6px}}.high-contrast .tutorial-screen[data-tutorial-target] :is(.tutorial-players,.die,.roll-button,.tutorial-moves,.board-frame,.route-compare,.tutorial-help-button){outline-color:#000;outline-style:dashed}.tutorial-moves.move-chooser{position:static;animation:none}.tutorial-moves.move-chooser:before{display:none}.tutorial-moves [aria-disabled=true],.route-card[aria-disabled=true]{opacity:.6;cursor:default}@media(max-width:760px){.tutorial-moves.move-chooser{border:2px solid var(--accent-yellow);border-radius:var(--radius-lg);padding:12px;box-shadow:var(--shadow-soft)}.tutorial-players{grid-template-columns:repeat(2,minmax(0,1fr))}.tutorial-players .player-card{flex-direction:row;text-align:left}}.route-compare{margin:0;padding:12px;border-radius:var(--radius-lg);background:var(--surface-strong);border:2px solid var(--accent-yellow);box-shadow:var(--shadow-light)}.route-compare h3{display:flex;align-items:center;margin:0 0 8px;font-size:.95rem}.route-compare h3 .ui-icon{color:var(--accent-orange)}.route-compare-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.route-card{width:100%;height:100%;justify-content:flex-start;align-items:flex-start;text-align:left;gap:10px;padding:10px 12px;min-height:64px}.route-card .ui-icon{flex:0 0 22px;width:22px;height:22px;margin:2px 0 0}.route-capture,.route-ends{font-weight:900}.route-compare-why{margin:8px 0 0;font-size:.76rem;line-height:1.4;color:var(--text-muted)}.high-contrast .route-compare{border-color:#000}@media(max-width:420px){.route-compare-cards{grid-template-columns:1fr}}.rule-help-button{align-self:flex-start;justify-self:start;min-height:44px;padding:6px 12px;gap:6px;font-size:.85rem}.rule-help-button .ui-icon{width:18px;height:18px;color:var(--accent-blue)}.rule-help-button[aria-expanded=true]{background:var(--surface);color:var(--text-main)}.rule-help-panel{display:grid;gap:10px;margin:0;padding:12px 14px;border-radius:var(--radius-lg);background:var(--surface-strong);border:2px solid var(--accent-blue);box-shadow:var(--shadow-soft);animation:rise-in .25s var(--ease-pop) both}.rule-help-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.rule-help-head h2{display:flex;align-items:center;margin:0;font-size:1rem;outline:none}.rule-help-head h2 .ui-icon{color:var(--accent-blue)}.rule-help-panel .rule-help-close{flex:none;background:var(--surface-sunken);color:var(--text-main);border-color:var(--line)}.rule-help-die{margin:0;font-size:.86rem;font-weight:800}.piece-explain-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.piece-explain{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:8px 10px;border-radius:var(--radius-md);background:var(--surface-sunken);border-left:4px solid var(--line-strong)}.piece-explain.can-move{background:color-mix(in srgb,var(--primary) 12%,var(--surface-strong));border-left-color:var(--primary)}.piece-explain.cannot-move{border-left-style:dashed}.piece-explain:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.piece-explain-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-strong)}.piece-explain-icon .ui-icon{width:16px;height:16px;margin:0}.piece-explain.can-move .piece-explain-icon{color:var(--primary-edge)}.piece-explain-copy{display:grid;gap:2px;min-width:0;font-size:.8rem;line-height:1.4}.piece-explain-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.piece-explain-verdict{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.piece-explain.can-move .piece-explain-verdict{color:var(--primary-edge)}.piece-explain-reason{font-weight:700}.piece-explain-facts{color:var(--text-muted);font-weight:700}.rule-help-rules summary{cursor:pointer;display:flex;align-items:center;gap:6px;min-height:44px;font-weight:800}.rule-help-rules p{margin:0 0 8px;font-size:.82rem;line-height:1.5}.rule-help-note{margin:0;font-size:.72rem;color:var(--text-muted)}.high-contrast .rule-help-panel{border-color:#000}.high-contrast .piece-explain{border:2px solid #000;border-left-width:6px}:root[data-theme=dark] .piece-explain.can-move .piece-explain-icon,:root[data-theme=dark] .piece-explain.can-move .piece-explain-verdict{color:#7be39a}.rule-tip-slot:empty{display:none}.rule-tip{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;margin:0;padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-tint);border:2px solid color-mix(in srgb,var(--accent-yellow) 70%,transparent);box-shadow:var(--shadow-light);animation:rise-in .25s var(--ease-pop) both}.rule-tip>.ui-icon{width:20px;height:20px;margin:2px 0 0;color:var(--accent-orange)}.rule-tip-copy{display:grid;gap:4px;min-width:0}.rule-tip-copy strong{font-size:.9rem}.rule-tip-copy p{margin:0;font-size:.8rem;line-height:1.45}.rule-tip-actions{display:flex;flex-wrap:wrap;gap:6px}.rule-tip-actions button{min-height:44px;padding:6px 12px;font-size:.85rem}.rule-tip-actions button:not(.quiet){padding-inline:16px;border-color:var(--line-strong)}.high-contrast .rule-tip{border-color:#000}.seat-list{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:10px}.local-seat{display:grid;gap:10px;padding:12px;border-radius:var(--radius-lg);background:var(--sheet-row-hover);border:2px solid color-mix(in srgb,var(--team) 35%,transparent);border-left-width:6px;border-left-color:var(--team)}.local-seat.invalid{border-color:var(--sheet-danger);border-left-color:var(--team)}.seat-head{display:flex;align-items:center;gap:10px;min-width:0}.seat-head .team-icon{flex-shrink:0}.seat-number{font-family:var(--font-display);font-weight:600;flex:1 1 auto;min-width:0;white-space:nowrap}.seat-kind{grid-template-columns:1fr 1fr;grid-column:auto}.seat-kind button{padding:6px 12px;font-size:.88rem}.seat-remove{flex-shrink:0}.seat-body{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:start}.seat-portrait{width:64px;height:64px;border-radius:50%;background:var(--surface-strong);border:3px solid var(--team)}.seat-fields{display:grid;gap:4px;min-width:0}.seat-fields label,.seat-fields .select-field{margin-bottom:0}.seat-name input[aria-invalid=true]{border-color:var(--sheet-danger)}.seat-count{justify-self:end;font-size:.74rem;color:var(--sheet-muted);font-variant-numeric:tabular-nums}.seat-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:end}.seat-row>.quiet{min-height:48px}.seat-rival{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:4px 0 0}.seat-issues{list-style:none;margin:0;padding:0;display:grid;gap:4px}.seat-issues li{display:flex;align-items:flex-start;gap:6px;color:var(--sheet-danger);font-size:.8rem;font-weight:700;line-height:1.35}.seat-issues .ui-icon{flex:0 0 16px;width:16px;height:16px;margin:1px 0 0}.seat-actions{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0}.seat-actions .quiet{min-height:44px}.seat-summary:empty{display:none}.seat-warning{margin:6px 0 0}.local-private{margin:10px 0 0}@media(max-width:480px){.seat-head{flex-wrap:wrap}.seat-kind{order:3;flex:1 0 100%;display:grid;grid-template-columns:1fr 1fr}.seat-row{grid-template-columns:1fr}.seat-row>.quiet{justify-self:start;min-height:44px;padding-inline:8px}}@media(max-width:360px){.seat-body{grid-template-columns:48px minmax(0,1fr);gap:8px}.seat-portrait{width:48px;height:48px}.local-seat{padding:10px}}.modal-backdrop:has(>.handoff-modal){background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}.handoff-modal{width:min(100%,460px)}.handoff-body{display:grid;justify-items:center;gap:6px}.handoff-portrait{position:relative;display:inline-block;margin:4px 0 6px}.handoff-portrait img{display:block;width:112px;height:112px;border-radius:50%;background:var(--surface-tint);border:5px solid var(--team);box-shadow:0 0 0 8px color-mix(in srgb,var(--team) 20%,transparent),var(--shadow-soft)}.handoff-portrait .team-icon{position:absolute;right:-2px;bottom:-2px;padding:4px;width:38px;height:38px;border-radius:50%;background:var(--surface-strong);box-shadow:0 1px 4px #0000004d}.handoff-body h2{margin:6px 0 0;font-size:1.6rem;overflow-wrap:anywhere}.handoff-team{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:700}.handoff-team .team-icon{flex-shrink:0}.handoff-body .handoff-ready{min-height:60px;font-size:1.15rem;margin-top:14px}.handoff-body .handoff-pause{margin-top:4px}@media(max-width:760px){.modal-backdrop:has(>.handoff-modal){place-items:stretch}.modal.handoff-modal{width:100%;height:100dvh;max-height:none;border-radius:0;display:grid;align-content:center;padding:calc(20px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));box-shadow:none;animation-name:fade-in}.modal.handoff-modal:before{display:none}}@media(max-height:480px)and (orientation:landscape){.handoff-portrait img{width:72px;height:72px}.handoff-body h2{font-size:1.3rem}.handoff-body .handoff-ready{min-height:48px;margin-top:8px}}.high-contrast .modal.handoff-modal{border:3px solid #000}.high-contrast .local-seat{border-color:#000}.player-card.spotlight{border-width:3px;border-bottom-width:5px;box-shadow:0 0 0 6px color-mix(in srgb,var(--team) 32%,transparent),var(--shadow-soft)}.player-card.spotlight strong{color:var(--text-main);text-decoration:underline;text-decoration-color:var(--team);text-decoration-thickness:3px;text-underline-offset:3px}.high-contrast .player-card.spotlight{border:4px solid #000}.squad.hotseat h2{min-width:0}.squad-portrait{width:28px;height:28px;border-radius:50%;border:2px solid var(--team);background:var(--surface-tint);flex-shrink:0}.standings-heading{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;font-size:1rem;margin:8px 0 0}.private-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-pill);background:var(--surface-sunken);font-size:.76rem}.private-badge .ui-icon{width:14px;height:14px;margin:0}.standing-seat{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-family:var(--font-body);font-size:.74rem;font-weight:700;color:var(--text-muted);vertical-align:middle}.menu-online{display:grid;gap:6px;animation:rise-in .38s var(--ease-pop) both}.menu-online>button{position:relative;min-height:56px;font-size:1.15rem;border-radius:var(--radius-lg);padding-left:60px;padding-right:24px}.menu-online>button .ui-icon{position:absolute;left:22px;top:50%;transform:translateY(-50%);width:26px;height:26px;color:var(--btn-accent, var(--text-main));transition:transform var(--dur-fast) var(--ease-pop)}.menu-play-online{--btn-accent: var(--accent-blue)}.menu-continue-room{--btn-accent: var(--accent-purple);font-size:1rem!important;min-height:48px!important}.menu-online>button:not(.quiet):hover:not(:disabled){background:color-mix(in srgb,var(--btn-accent) 18%,var(--surface-strong));box-shadow:0 3px color-mix(in srgb,var(--btn-accent) 55%,transparent),var(--shadow-soft);border-color:color-mix(in srgb,var(--btn-accent) 45%,transparent)}.menu-online>button:hover:not(:disabled) .ui-icon{transform:translateY(-50%) scale(1.18)}.menu-online-reason{color:var(--text-soft);font-size:.82rem;line-height:1.35;padding:0 8px}.online-lobby{display:grid;gap:14px;align-content:start}.online-lobby .identity{margin-bottom:0}.online-entry{display:grid;gap:12px}.online-card{display:grid;gap:8px;padding:14px;border-radius:var(--radius-lg);background:var(--surface-tint);border:1px solid var(--line)}.online-card h2{display:flex;align-items:center;gap:8px;margin:0;font-size:1.1rem}.online-card h2 .ui-icon{width:22px;height:22px;flex-shrink:0}.online-card p{margin:0}.online-card button{min-height:48px;width:100%}.online-error{border-color:var(--danger)}.online-error p{display:flex;align-items:flex-start;gap:8px;color:var(--danger);font-weight:700}.online-error p .ui-icon{flex:0 0 18px;width:18px;height:18px;margin-top:2px}.online-unavailable{display:flex;align-items:flex-start;gap:8px;margin:0}.online-verify{display:grid;gap:6px;justify-items:center;min-width:0}.online-verify[data-state=interactive]{padding:12px;border-radius:var(--radius-lg);background:var(--surface-tint);border:1px solid var(--accent-blue)}.online-verify-label{display:flex;align-items:center;gap:8px;margin:0;font-weight:700}.online-verify-label[hidden]{display:none}.online-verify-label .ui-icon{flex:0 0 18px;width:18px;height:18px}.online-verify-status{margin:0;color:var(--text-soft);font-size:.9rem;text-align:center}.online-verify-widget{width:100%;max-width:100%;display:flex;justify-content:center;overflow:hidden}.online-connecting,.online-closed{justify-items:center;text-align:center;padding:24px 16px}.online-spinner{width:36px;height:36px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--accent-blue);animation:online-spin 1s linear infinite}@keyframes online-spin{to{transform:rotate(360deg)}}.code-field{font-weight:700;margin:0}.code-input{width:100%;min-height:52px;padding:6px 10px;font-family:ui-monospace,Cascadia Mono,Menlo,monospace;font-size:1.6rem;font-weight:700;letter-spacing:.45em;text-transform:uppercase;text-align:center;background:repeating-linear-gradient(90deg,transparent 0 34px,var(--line) 34px 36px,transparent 36px 40px) center / 240px 70% no-repeat,var(--surface-strong)}.code-input[aria-invalid=true]{border-color:var(--danger)}.code-error{color:var(--danger);font-weight:700}.room-code-panel{display:grid;gap:8px;justify-items:center;text-align:center}.room-code{display:flex;gap:6px;margin:0}.room-code-slot{display:grid;place-items:center;width:40px;height:52px;border-radius:var(--radius-md);background:var(--surface-strong);border:2px solid var(--line-strong);font-family:ui-monospace,Cascadia Mono,Menlo,monospace;font-size:1.6rem;font-weight:700;color:var(--text-main)}.room-code-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;width:100%}.room-code-actions button{min-height:44px}.room-code-copied{min-height:1.4em;margin:0;color:var(--text-soft);font-size:.85rem}.room-code-copied span{display:inline-flex;align-items:center;gap:4px}.lobby{display:grid;gap:14px}.lobby-count{color:var(--text-muted);font-weight:600;font-size:.85rem}.lobby-seat-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.lobby-seat{--team: var(--team-blue);display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px;border-radius:var(--radius-lg);background:var(--surface-tint);border:2px solid color-mix(in srgb,var(--team) 35%,transparent);border-left-width:6px;border-left-color:var(--team)}.lobby-seat.color-red{--team: var(--team-red)}.lobby-seat.color-green{--team: var(--team-green)}.lobby-seat.color-yellow{--team: var(--team-yellow)}.lobby-seat.mine{box-shadow:0 0 0 3px color-mix(in srgb,var(--team) 22%,transparent)}.lobby-seat.away{opacity:.72}.lobby-portrait{width:48px;height:48px;border-radius:50%;background:var(--surface-strong);border:3px solid var(--team)}.lobby-seat-copy{display:grid;gap:4px;min-width:0}.lobby-seat-name{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;min-width:0}.lobby-seat-name>span:not(.lobby-chip){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.lobby-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:var(--radius-pill);font-size:.72rem;font-weight:700;background:var(--surface-strong);border:1px solid var(--line);color:var(--text-soft)}.lobby-chip .ui-icon{width:14px;height:14px}.host-chip{color:var(--rr-amber);border-color:color-mix(in srgb,var(--rr-amber) 45%,transparent)}.lobby-seat-state{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;color:var(--text-soft);font-size:.8rem}.connection-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.connection-dot.connection-connected{background:var(--team-green)}.connection-dot.connection-disconnected{background:var(--accent-yellow)}.lobby-ready{display:inline-flex;align-items:center;gap:3px}.lobby-ready[data-ready=true]{color:var(--team-green);font-weight:700}.lobby-ready .ui-icon{width:14px;height:14px}.lobby-own{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:4px}.lobby-own .select-field,.lobby-own label{margin-bottom:0}.lobby-remove{flex-shrink:0;min-width:44px;min-height:44px;color:var(--danger)}.lobby-host-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:end}.lobby-host-actions>button{min-height:48px}.lobby-ruleset{display:grid;grid-template-columns:1fr 1fr;width:100%}.lobby-ruleset button{min-height:44px}.lobby-rules .setup-heading{display:flex;align-items:center;gap:8px}.lobby-mode{display:flex;align-items:center;gap:8px;margin:0;font-weight:700}.lobby-mode .ui-icon{width:20px;height:20px;flex-shrink:0}.lobby-actions{display:grid;gap:8px}.lobby-actions>button{width:100%;min-height:48px}.lobby-waiting{text-align:center;margin:0}.connection-banner:empty,.connection-banner:not(:has(.connection-note)){display:none}.room-notices:not(:has(.room-notice)){display:none}.connection-note{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 auto 6px;padding:6px 12px;width:fit-content;max-width:100%;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--accent-yellow) 22%,var(--surface-strong));color:var(--text-main);font-size:.85rem;font-weight:700}.connection-note .ui-icon{width:18px;height:18px;flex-shrink:0}.connection-note.connection-closed{background:color-mix(in srgb,var(--danger) 18%,var(--surface-strong))}.connection-note button{min-height:36px}.lobby .connection-note{margin:0 auto}.player-card.away{opacity:.6;filter:grayscale(.5)}.away-badge{position:absolute;right:-4px;bottom:-4px;z-index:5;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface-strong);border:2px solid var(--accent-yellow);color:var(--text-main)}.away-badge .ui-icon{width:14px;height:14px;flex-basis:14px;margin:0}.stand-in-note{display:flex;align-items:center;gap:6px}.stand-in-note .ui-icon{width:16px;height:16px;flex-shrink:0}.online-paused-note,.room-code-badge{display:flex;align-items:center;justify-content:center;gap:6px;margin:4px 0}.room-code-badge strong{font-family:ui-monospace,Cascadia Mono,Menlo,monospace;letter-spacing:.12em}.rematch-status{margin:0;text-align:center;color:var(--text-soft)}@media(min-width:640px){.online-entry{grid-template-columns:1fr 1fr;align-items:stretch}}@media(max-width:380px){.lobby-own,.lobby-host-actions{grid-template-columns:1fr}.room-code{gap:4px}.room-code-slot{width:40px;height:48px;font-size:1.4rem}.code-input{letter-spacing:.35em;font-size:1.4rem}}@media(prefers-reduced-motion:reduce){.online-spinner{animation-duration:3s}.menu-online{animation:none}}.effects-off .online-spinner{animation:none}.format-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 12px}.format-card{--format: var(--accent-yellow);--format-ink: color-mix(in srgb, var(--format) 62%, var(--sheet-text));position:relative;flex-direction:column;align-items:flex-start;gap:8px;min-height:148px;padding:16px 14px 14px 18px;text-align:left;color:var(--sheet-text);background:var(--sheet-row);border:2px solid var(--sheet-line);border-left-color:var(--format);border-radius:var(--radius-lg);box-shadow:var(--shadow-light);overflow:hidden}.format-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--format)}.format-card[data-mode=solo][data-ruleset=quick]{--format: var(--accent-orange)}.format-card[data-mode=local][data-ruleset=classic]{--format: var(--accent-blue)}.format-card[data-mode=local][data-ruleset=quick]{--format: var(--accent-purple)}.format-mark{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:color-mix(in srgb,var(--format) 20%,transparent);color:var(--format-ink)}.format-mark .ui-icon{width:22px;height:22px;margin:0}.format-card strong{font-family:var(--font-display);font-size:1.05rem;line-height:1.2;color:var(--sheet-text)}.format-blurb{font-family:var(--font-body);font-size:.82rem;font-weight:700;line-height:1.35;color:var(--sheet-muted)}.format-time{display:inline-flex;align-items:center;gap:4px;margin-top:auto;padding:3px 10px;white-space:nowrap;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--format) 18%,transparent);font-family:var(--font-body);font-size:.78rem;font-weight:800;color:var(--sheet-text)}.format-time .ui-icon{width:14px;height:14px;margin:0;color:var(--format-ink)}.format-card:hover:not(:disabled),.format-card:active:not(:disabled){transform:none}.format-card:hover:not(:disabled){background:var(--sheet-row);box-shadow:var(--shadow-soft);border-color:color-mix(in srgb,var(--format) 40%,var(--sheet-line));border-left-color:var(--format)}.format-card[aria-checked=true],.format-card[aria-checked=true]:hover:not(:disabled){border-color:var(--format);background:color-mix(in srgb,var(--format) 12%,var(--sheet-row));box-shadow:0 0 0 3px color-mix(in srgb,var(--format) 30%,transparent),var(--shadow-light)}.format-card[aria-checked=true] .format-mark:after{content:"✓";content:"✓" / "";position:absolute;right:-6px;bottom:-6px;width:20px;height:20px;border-radius:50%;background:var(--format);color:var(--rr-obsidian);box-shadow:0 0 0 2px var(--surface-strong);font:800 .72rem/20px var(--font-body);text-align:center}.high-contrast .format-card[aria-checked=true]{border-color:#000}@media(max-width:520px){.format-grid{grid-template-columns:minmax(0,1fr);gap:10px}.format-card{display:grid;grid-template-columns:42px minmax(0,1fr);justify-content:stretch;align-items:start;align-content:center;gap:4px 14px;min-height:0;padding:14px 14px 14px 18px}.format-mark{grid-row:1 / span 3;align-self:center}.format-card strong,.format-blurb,.format-time{grid-column:2}.format-time{justify-self:start;margin-top:4px}}.format-chosen{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0 0 8px;text-align:left}.format-chosen>span{color:var(--sheet-muted)}.format-chosen .quiet{min-height:44px;margin-left:auto;padding:4px 8px;white-space:nowrap}@media(max-width:520px){.format-chosen{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 8px}.format-chosen>strong,.format-chosen>span{grid-column:1}.format-chosen>span{font-size:.85rem}.format-chosen .quiet{grid-column:2;grid-row:1 / span 2;margin:0}}.format-differences{margin:0 0 14px;text-align:left}.format-differences>summary{min-height:44px;font-weight:800;cursor:pointer}.setup .rival-preview .rival-copy{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"name name met" "style trait trait";align-items:center;gap:4px 10px}.setup .rival-preview .rival-copy>strong{grid-area:name}.setup .rival-preview .style-chip{grid-area:style}.setup .rival-preview .rival-personality{grid-area:trait;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup .rival-preview .met-chip{grid-area:met;justify-self:end}.ruleset-notice:empty{display:none}.ruleset-notice{margin:0 0 10px}.ruleset-notice>span{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:var(--radius-md);background:var(--sheet-row-hover);border:1px solid var(--line-strong);font-size:.84rem;font-weight:700;line-height:1.4}.ruleset-notice .ui-icon{width:18px;height:18px;flex-basis:18px;margin:1px 0 0;color:var(--sheet-link)}.ruleset-compare-wrap{position:relative;margin:0 0 8px}.ruleset-compare-wrap:before{content:"";position:absolute;z-index:0;top:0;bottom:0;left:28%;width:36%;border-radius:var(--radius-sm);pointer-events:none;background:var(--sheet-row-hover);box-shadow:inset 0 3px 0 var(--accent-yellow);transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.format-chosen[data-ruleset=quick]~.format-differences .ruleset-compare-wrap:before{transform:translate(100%)}.ruleset-compare{position:relative;z-index:1;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin:0;font-size:.82rem;line-height:1.35}.ruleset-compare th,.ruleset-compare td{padding:7px 8px;text-align:left;vertical-align:top;border-bottom:1px solid var(--sheet-line);overflow-wrap:anywhere;background:transparent}.ruleset-compare thead th{font-family:var(--font-display);font-weight:600;font-size:.86rem;border-bottom-color:var(--line-strong)}.ruleset-compare thead th:first-child,.ruleset-compare tbody th{color:var(--sheet-muted);font-weight:700;width:28%}.ruleset-compare thead .ui-icon{width:16px;height:16px;flex-basis:16px;margin:-2px 4px 0 0;color:var(--accent-orange)}.ruleset-compare .chosen{font-weight:700}.ruleset-same{font-size:.84rem;line-height:1.45;margin:0 0 6px}.ruleset-pace{display:flex;align-items:flex-start;gap:6px}.ruleset-pace .ui-icon{width:16px;height:16px;flex-basis:16px;margin:2px 0 0}.ruleset-badge{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 6px;padding:3px 10px;border-radius:var(--radius-pill);background:linear-gradient(#ffe58a,#ffcc4d);color:#3a2a00;border:1px solid #B27F00;font-family:var(--font-body);font-size:.76rem;font-weight:800;line-height:1.3;vertical-align:middle}.ruleset-badge .ui-icon{width:14px;height:14px;flex-basis:14px;margin:0}.ruleset-target{font-weight:700}.ruleset-target:before{content:"·";margin-right:6px}.hud-ruleset{margin:0}.overlay-ruleset{margin:4px 0 8px}.moments-match-copy .ruleset-badge{font-size:.7rem;padding:1px 8px}.stat-group{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:18px 4px 8px}.stat-group:first-of-type{margin-top:0}.stat-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:4px 0 0}.stat-list>div{display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-width:0;padding:14px;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-strong) 72%,transparent);border:1px solid var(--line)}.stat-list>div:nth-child(n+3){grid-column:1 / -1;flex-direction:row;align-items:center}.stat-list dt{margin:0;font-size:.84rem;font-weight:700;line-height:1.3;color:var(--text-muted)}.stat-list dd{margin:0;font-family:var(--font-display);font-size:1.8rem;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;color:var(--text-main)}.stat-list>div:nth-child(n+3) dd{font-size:1.35rem}.stat-list>div[data-stat=games] dd{color:var(--accent-blue)}.stat-list>div[data-stat=wins] dd{color:var(--accent-yellow)}.sheet-layer .stat-list>div,.glass-sheet .stat-list>div{background:var(--sheet-row);border-color:var(--sheet-line)}.sheet-layer .stat-list dt,.glass-sheet .stat-list dt{color:var(--sheet-muted)}.sheet-layer .stat-list dd,.glass-sheet .stat-list dd{color:var(--sheet-text)}.sheet-layer .stat-list>div[data-stat=games] dd,.glass-sheet .stat-list>div[data-stat=games] dd{color:var(--accent-blue)}.sheet-layer .stat-list>div[data-stat=wins] dd,.glass-sheet .stat-list>div[data-stat=wins] dd{color:var(--accent-yellow)}.sheet-layer .stat-group,.glass-sheet .stat-group{color:var(--sheet-muted)}.quick-help{margin:14px 0;padding:12px 14px;background:var(--surface-tint);border:1px solid var(--line);border-radius:var(--radius-lg)}.quick-help h2{font-size:1.05rem;margin:0 0 6px}.quick-help h2 .ui-icon{color:var(--accent-orange)}.quick-help ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.quick-help li{position:relative;padding-left:32px;font-size:.86rem;line-height:1.45}.quick-help li:before{content:"";position:absolute;left:10px;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--text-muted)}:root[data-theme=dark] .ruleset-compare-wrap:before{box-shadow:inset 0 3px #b8912a}.high-contrast .ruleset-badge{border:2px solid #000}.high-contrast .ruleset-notice>span,.high-contrast .quick-help{border:2px solid #000}.high-contrast .ruleset-compare th,.high-contrast .ruleset-compare td{border-bottom-color:#000}.high-contrast .ruleset-compare-wrap:before{outline:2px solid #000;outline-offset:-2px}@media(max-width:360px){.ruleset-compare{font-size:.76rem}.ruleset-compare th,.ruleset-compare td{padding:6px 5px}}.die.skinned .die-face{background:linear-gradient(135deg,var(--die-face),color-mix(in srgb,var(--die-face) 86%,var(--die-edge)));border-color:var(--die-edge);box-shadow:inset 3px 3px 5px #ffffff4d,inset -4px -4px 8px #00000029,4px 7px 0 var(--die-edge),0 12px 18px #0000002e}.die.skinned .pip{background:var(--die-pip);box-shadow:inset 1px 2px 3px #0000004d}.die.skinned .die-face>.ui-icon{color:var(--die-pip)}.accent-host[data-accent]:after{content:"";position:absolute;left:12%;right:12%;bottom:24px;height:15px;border-radius:50%;pointer-events:none;border:3px solid #FFD23F;box-shadow:0 0 0 2px #3a2a00,inset 0 0 0 2px #3a2a00}.accent-host[data-accent=spark]:after{border-color:#fff;box-shadow:0 0 0 2px #2b2433,inset 0 0 0 2px #2b2433;background:radial-gradient(circle at 0 50%,#FFD23F 0 4px,transparent 5px),radial-gradient(circle at 100% 50%,#FFD23F 0 4px,transparent 5px),radial-gradient(circle at 50% 0,#FFD23F 0 4px,transparent 5px),radial-gradient(circle at 50% 100%,#FFD23F 0 4px,transparent 5px)}.accent-host[data-accent=dots]:after{border:4px dotted #FFFFFF;box-shadow:0 0 0 2px #2b2433,inset 0 0 0 2px #2b2433}.burst{position:absolute;inset:0;pointer-events:none;z-index:0}.burst i{position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;opacity:.95;transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}.burst.playing i{animation:burst-out 1.1s var(--delay, 0ms) cubic-bezier(.2,.8,.3,1) both}@keyframes burst-out{0%{transform:translate(0) rotate(0) scale(.3);opacity:0}15%{opacity:1}}.burst[data-burst=confetti] i{width:8px;height:14px;border-radius:2px;background:#ff5d73}.burst[data-burst=confetti] i:nth-child(4n+2){background:#4da6ff}.burst[data-burst=confetti] i:nth-child(4n+3){background:#ffcc4d}.burst[data-burst=confetti] i:nth-child(4n){background:#34c759}.burst[data-burst=stars] i{background:#ffcc4d;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);width:16px;height:16px}.burst[data-burst=hearts] i{background:#ff5d73;clip-path:path("M6 11C-2 5 1 -1 6 3 11 -1 14 5 6 11Z")}.burst[data-burst=bolts] i{background:#ff9f1c;clip-path:polygon(55% 0,15% 55%,45% 55%,35% 100%,85% 40%,55% 40%);width:14px;height:18px}.speech-bubble[data-frame=cloud],.mini-bubble[data-frame=cloud]{border-radius:26px;background:color-mix(in srgb,var(--team) 10%,var(--surface-strong));box-shadow:0 0 0 3px color-mix(in srgb,var(--team) 25%,transparent),var(--shadow-light)}.speech-bubble[data-frame=comic],.mini-bubble[data-frame=comic]{border-radius:3px;box-shadow:3px 3px 0 var(--team);font-weight:900}.speech-bubble[data-frame=star],.mini-bubble[data-frame=star]{outline:2px dashed var(--team);outline-offset:2px}.speech-bubble[data-frame=star]:after,.mini-bubble[data-frame=star]:after{content:"★";content:"★" / "";position:absolute;top:-11px;right:-8px;font-size:.9rem;line-height:1;color:#ffcc4d;text-shadow:-1px 0 #2B2433,1px 0 #2B2433,0 -1px #2B2433,0 1px #2B2433}.cosmetic-art{display:grid;place-items:center}.mini-die{grid-template-columns:repeat(3,1fr);gap:3px;width:62px;height:62px;padding:9px;border-radius:14px;background:var(--die-face, #FFFDF8);border:3px solid var(--die-edge, #D9CFC2);box-shadow:3px 5px 0 var(--die-edge, #D9CFC2)}.mini-die .pip{background:var(--die-pip, #2B2433);box-shadow:none}.mini-pawn{position:relative;width:64px;height:72px}.mini-pawn img{width:100%;height:56px;object-fit:contain;filter:drop-shadow(0 3px 2px rgba(0,0,0,.25));position:relative;z-index:1}.mini-pawn.accent-host[data-accent]:after{bottom:3px;left:4%;right:4%;z-index:0}.mini-burst{position:relative;width:100%;height:100%;transform:scale(.55)}.mini-bubble{position:relative;display:inline-block;max-width:100%;padding:5px 10px 6px;background:var(--surface-strong);color:var(--text-main);border:2px solid var(--team);border-left-width:5px;border-radius:var(--radius-md);font-size:.74rem;font-weight:800;line-height:1.25;box-shadow:var(--shadow-light)}.mini-board{position:relative;width:74px;height:74px;border-radius:10px;overflow:hidden;border:3px solid #C98F4E;background:linear-gradient(#f3e6d0,#f3e6d0) center / 16px 100% no-repeat,linear-gradient(#f3e6d0,#f3e6d0) center / 100% 16px no-repeat,#e9cfa6}.mini-board i{position:absolute;width:20px;height:20px;border-radius:4px}.mini-board .y1{left:5px;top:5px;background:#dc2b20}.mini-board .y2{right:5px;top:5px;background:#319a2e}.mini-board .y3{right:5px;bottom:5px;background:#f2a207}.mini-board .y4{left:5px;bottom:5px;background:#1d5be8}.mini-board[data-board=kingdom]{border-color:#e7e2d8;background:linear-gradient(#fbf9f4,#fbf9f4) center / 14px 100% no-repeat,linear-gradient(#fbf9f4,#fbf9f4) center / 100% 14px no-repeat,#6fbe3c}.mini-board[data-board=kingdom] i{box-shadow:inset 0 0 0 3px #e7e2d8}.mini-board[data-board=islands]{border-color:#7ccb45;background:linear-gradient(#7ccb45,#7ccb45) center / 18px 100% no-repeat,linear-gradient(#7ccb45,#7ccb45) center / 100% 18px no-repeat,#2fa3ea}.mini-board[data-board=islands] i{box-shadow:0 0 0 4px #7ccb45,0 3px 0 4px #a8672f}.mini-board[data-board=fortress]{border-color:#d2cdc3;background:linear-gradient(#c8c3b8,#c8c3b8) center / 18px 100% no-repeat,linear-gradient(#c8c3b8,#c8c3b8) center / 100% 18px no-repeat,#6dbe3c}.mini-board[data-board=fortress] i{border-radius:2px;box-shadow:inset 0 0 0 4px #d2cdc3,0 0 0 2px #8e887e}.mini-board[data-board=rocky-islands]{border-color:#83cfc4;background:#1aa8bd}.mini-board[data-board=desert]{border-color:#d6aa66;background:#e7b46d}.mini-board[data-board=shuffle]{border-color:#c9b48a;background:linear-gradient(135deg,#e9cfa6 25%,#6fbe3c 25% 50%,#2fa3ea 50% 75%,#c8c3b8 75%)}.collection-sheet,.roster-sheet{--collection-gold: color-mix(in srgb, var(--accent-yellow) 45%, var(--sheet-warn))}.collection-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:6px 0 8px}.collection-controls .select-field{margin:0;min-width:180px}@media(min-width:761px){.collection-controls .select-trigger,.collection-reset{min-height:54px}}.collection-status{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:1 1 240px}.collection-status:before{content:"";position:absolute;z-index:0;top:4px;bottom:4px;left:4px;pointer-events:none;width:calc((100% - 12px) / 3);border-radius:var(--radius-pill);background:linear-gradient(#ffd75e,#f7b500);box-shadow:0 2px #b27f00,var(--shadow-light);transition:transform .22s cubic-bezier(.34,1.56,.64,1)}.collection-status:has(button:nth-child(2)[aria-checked=true]):before{transform:translate(calc(100% + 2px))}.collection-status:has(button:nth-child(3)[aria-checked=true]):before{transform:translate(calc(200% + 4px))}.collection-status button{position:relative;z-index:1;transition:color .12s ease}.segmented.collection-status button:hover:not(:disabled),.segmented.collection-status button:active:not(:disabled),.segmented.collection-status button[aria-checked=true]{background:transparent;box-shadow:none;transform:none}.collection-status button[aria-checked=true]{color:#3a2a00}.collection-count{margin:0;font-weight:800;color:var(--sheet-text);flex:1 1 100%}.collection-reset{margin-left:auto;background:var(--sheet-fill);color:var(--sheet-text);border:1px solid var(--sheet-line);box-shadow:none}.collection-reset:hover:not(:disabled){background:var(--sheet-fill-hover);border-color:var(--line-strong);box-shadow:none;transform:none}.collection-reset:active:not(:disabled){transform:scale(.98);box-shadow:none}.collection-reset:disabled{opacity:1;background:transparent;border-style:dashed;border-color:var(--line-strong);color:var(--sheet-muted)}.collection-note,.collection-empty{color:var(--sheet-muted);font-size:.85rem;margin:4px 0 12px}.collection-group h2{display:flex;align-items:center;margin:18px 0 8px;color:var(--sheet-text)}.collection-group h2 .ui-icon{color:var(--collection-gold)}.cosmetic-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.cosmetic-card{display:grid;grid-template-columns:88px minmax(0,1fr);grid-template-rows:1fr auto;gap:10px 12px;padding:12px;min-width:0;background:var(--sheet-row);border:1px solid var(--sheet-line);border-radius:var(--radius-lg)}.cosmetic-card.is-equipped{border-color:var(--sheet-ok);box-shadow:0 0 0 2px color-mix(in srgb,var(--sheet-ok) 25%,transparent)}.cosmetic-card.is-locked .cosmetic-stage>*{opacity:.85;filter:saturate(.55)}.cosmetic-stage{width:88px;height:88px;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--sheet-fill);overflow:hidden}.cosmetic-copy{display:grid;gap:4px;min-width:0;align-content:start}.cosmetic-copy strong{font-family:var(--font-display);font-weight:600}.cosmetic-unlock{color:var(--sheet-text)}.cosmetic-card>button{grid-column:1 / -1;align-self:end;width:100%;min-height:44px;margin:0}.cosmetic-card>button .ui-icon{width:18px;height:18px;flex-basis:18px;margin:0}.cosmetic-card>button:not(.primary):not(:disabled){background:var(--sheet-fill);color:var(--sheet-text);border:1px solid var(--sheet-line);box-shadow:none}.cosmetic-card>button:not(.primary):not(:disabled):hover{background:var(--sheet-fill-hover);border-color:var(--line-strong);box-shadow:none;transform:none}.cosmetic-card>button:disabled{opacity:1;background:transparent;border:1px dashed var(--line-strong);box-shadow:none;color:var(--sheet-muted);font-family:var(--font-body);font-weight:800;font-size:.88rem}.cosmetic-card.is-equipped>button:disabled{border-style:solid;border-color:color-mix(in srgb,var(--sheet-ok) 50%,transparent);background:color-mix(in srgb,var(--sheet-ok) 8%,transparent);color:var(--sheet-ok)}.state-chip{display:inline-flex;align-items:center;gap:4px;width:fit-content;padding:2px 10px 2px 6px;border-radius:var(--radius-pill);font-size:.74rem;font-weight:800;color:var(--sheet-text);border:1px solid var(--sheet-line);background:var(--sheet-fill)}.state-chip .ui-icon{width:14px;height:14px;flex-basis:14px;margin:0}.state-chip.state-equipped{border-color:color-mix(in srgb,var(--sheet-ok) 55%,transparent);background:color-mix(in srgb,var(--sheet-ok) 8%,transparent);color:var(--sheet-ok)}.state-chip.state-unlocked{border-color:color-mix(in srgb,var(--accent-yellow) 75%,transparent);background:color-mix(in srgb,var(--accent-yellow) 16%,transparent);color:var(--sheet-warn)}.state-chip.state-locked{border-style:dashed;border-color:var(--line-strong);background:transparent;color:var(--sheet-muted)}.cosmetic-progress{display:grid;gap:2px}.cosmetic-progress progress{width:100%;height:8px;accent-color:var(--sheet-text)}.roster-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:10px 0 0}.roster-controls .select-field{margin:0;min-width:190px}.roster-count{margin:0 0 6px auto;font-size:.85rem;color:var(--sheet-muted)}.roster-sheet .rival-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;align-items:start;column-gap:12px;row-gap:6px}.roster-sheet .rival-card .rival-copy{display:contents}.roster-sheet .rival-portrait{grid-column:1;grid-row:1 / span 3}.roster-sheet .rival-card .rival-copy>strong,.roster-sheet .rival-card .style-chip,.roster-sheet .rival-card .rival-personality{grid-column:2}.roster-sheet .rival-bio,.roster-sheet .rival-toggle,.roster-sheet .rival-profile{grid-column:1 / -1}.roster-sheet .rival-toggle{align-self:end}.roster-sheet .rival-card.open:hover{transform:none;box-shadow:none}.rival-bio{margin:2px 0 0;font-size:.8rem;line-height:1.4;color:var(--sheet-text)}.rival-bio .fiction-tag{display:flex;width:fit-content;max-width:100%;margin:0 0 8px}.fiction-tag,.verified-tag{display:inline-flex;align-items:center;gap:4px;margin-right:6px;padding:0 8px;border-radius:var(--radius-pill);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;border:1px dashed var(--sheet-muted);color:var(--sheet-muted)}.verified-tag{border:1px solid color-mix(in srgb,var(--sheet-ok) 60%,transparent);color:var(--sheet-ok)}.verified-tag .ui-icon{width:12px;height:12px;flex-basis:12px;margin:0}.rival-toggle{justify-self:start;min-height:44px;padding:6px 12px;font-size:.8rem;background:var(--sheet-fill);color:var(--sheet-text);border:1px solid var(--sheet-line);box-shadow:none}.rival-toggle:hover:not(:disabled){background:var(--sheet-fill-hover);border-color:var(--line-strong);box-shadow:none;transform:none}.rival-toggle .ui-icon{width:16px;height:16px;flex-basis:16px}.rival-card.open{grid-column:1 / -1;background:var(--sheet-row-hover);border-color:var(--line-strong)}.rival-profile{flex:1 0 100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;padding-top:8px;border-top:1px solid var(--sheet-line)}.profile-block{min-width:0}.profile-block h3{font-size:.9rem;margin:0 0 6px;color:var(--sheet-text)}.profile-block p{margin:0 0 6px;font-size:.85rem;line-height:1.45;color:var(--sheet-text)}.profile-block .ui-icon{width:16px;height:16px;flex-basis:16px;margin-right:6px;color:var(--collection-gold)}.profile-fair{color:var(--sheet-muted)}.profile-habits{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.82rem;line-height:1.4}.profile-habits li{display:flex;align-items:flex-start;gap:6px}.profile-habits .ui-icon{margin-top:2px}.expression-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.expression-row li{display:grid;justify-items:center;gap:2px;width:84px;text-align:center}.expression-portrait{width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--team) 38%,#FFF);border:3px solid var(--team)}.expression-row small{font-size:.7rem;line-height:1.25}.unlock-note,.modal .unlock-note{display:flex;align-items:center;gap:8px;margin:6px 0;padding:6px 6px 6px 12px;border-radius:var(--radius-md);background:#fff3c4;color:#2c1a00;border:2px solid #A87400;font-size:.85rem;font-weight:700;line-height:1.35;animation:rise-in var(--dur-base) ease-out both}.unlock-note>span,.modal .unlock-note>span{flex:1;min-width:0;color:#2c1a00}.unlock-note .ui-icon,.modal .unlock-note .ui-icon{margin:0;color:#6b4500}.unlock-note .icon-button,.modal .unlock-note .icon-button{flex:0 0 44px;width:44px;max-width:44px;margin:0;background:transparent;color:#2c1a00;border-color:#6b4500}.unlock-floating{position:fixed;top:max(8px,env(safe-area-inset-top));left:50%;translate:-50% 0;z-index:70;width:max-content;max-width:min(92vw,460px);box-shadow:var(--shadow-soft)}@media(max-width:760px){.cosmetic-grid{grid-template-columns:1fr}.cosmetic-card{grid-template-columns:76px minmax(0,1fr);padding:10px}.cosmetic-stage{width:76px;height:76px}.collection-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:end;gap:10px 12px}.collection-controls .select-field,.collection-controls .select-trigger{min-width:0}.collection-count,.collection-reset{grid-column:1 / -1}.collection-reset{justify-self:end;margin:0}.roster-controls .select-field{flex:1 1 auto;min-width:0}.roster-count{margin-left:0;flex:1 1 100%}}@media(max-width:480px){.collection-controls{grid-template-columns:minmax(0,1fr)}.collection-reset{justify-self:start}.roster-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.roster-controls .select-trigger{min-width:0}.roster-count{margin:0}}.mini-board[data-board=frozen-world]{border-color:#c7f5fb;background:#80c5e0}.mini-board[data-board=volcano]{border-color:#d78957;background:#39232c}.mini-board[data-board=cosmic-arena]{border-color:#9e9ade;background:#171b40}.mini-board[data-board=candy-chaos]{border-color:#e6b7cf;background:#edb8c6}.mini-board[data-board=underwater]{border-color:#9bcfc8;background:#267f9c}.mini-board[data-board=clockwork]{border-color:#d7b37a;background:#544536}.mini-board[data-board=neon-city]{border-color:#72dbe9;background:#18263d}.mini-board[data-board=haunted-grounds]{border-color:#ada7bc;background:#403c55}.mini-board[data-board=lost-temple]{border-color:#b9c28d;background:#426c49}.mini-board img{display:block;width:100%;height:100%;object-fit:cover}.progression-page{max-width:880px}.progression-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin-block:20px;align-items:start}.progression-filters .select-field{margin:0;min-width:0}.progression-filters .select-trigger{min-width:0;width:100%}.progression-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.progression-counts div{min-width:0;padding:12px;border:1px solid var(--sheet-line);border-radius:var(--radius-lg);background:var(--sheet-row)}.progression-counts dt{font-size:.85rem;color:var(--sheet-muted);line-height:1.3;overflow-wrap:anywhere}.progression-counts dd{margin:4px 0 0;font-size:1.35rem;font-weight:800;line-height:1.15;color:var(--sheet-text);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.progression-records{list-style:none;padding:0;display:grid;gap:10px}.progression-records>li{padding:12px;border:1px solid var(--sheet-line);border-radius:var(--radius-lg);background:var(--sheet-row);overflow-wrap:anywhere}.progression-records span{display:block}.progression-records summary{cursor:pointer;min-height:44px}.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;padding:0;gap:12px}.achievement-grid li{padding:14px;border:1px solid var(--sheet-line);border-radius:var(--radius-lg);background:var(--sheet-row);min-width:0}.achievement-grid li.earned{border-color:color-mix(in srgb,var(--sheet-ok) 55%,transparent);background:var(--sheet-row-hover)}.achievement-grid p{font-size:.9rem;overflow-wrap:anywhere}.achievement-grid span{display:block;font-size:.8rem;color:var(--sheet-muted)}.achievement-grid progress{width:100%;height:8px;margin-top:10px;accent-color:var(--sheet-text)}.achievement-grid li.earned progress{accent-color:var(--sheet-ok)}.progression-data{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.progression-import{display:grid;gap:6px;max-width:100%}.progression-import input{max-width:100%}.match-recap{padding-block:8px;text-align:left;font-size:.9rem;overflow-wrap:anywhere}.match-recap ul{padding-left:20px}.achievement-notice{border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px;margin-block:10px;background:var(--surface-tint)}@media(max-width:760px){.progression-filters{grid-template-columns:1fr;gap:12px;margin-block:16px}.progression-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.progression-counts div{padding:10px}.progression-counts dd{font-size:1.1rem}.achievement-grid{grid-template-columns:1fr}}@media(max-width:360px){.progression-counts{grid-template-columns:1fr}.progression-counts dd{font-size:1.2rem}}.commentator-slot{block-size:7.75rem;min-inline-size:0;flex:none}.dock-pill.commentator-caption{align-items:flex-start;block-size:100%;min-block-size:0;min-inline-size:0;overflow:auto;overflow-wrap:anywhere;padding:10px 12px;border:1px solid transparent;border-inline-start:4px solid transparent;box-shadow:none;background:transparent;color:var(--text-main)}.dock-pill.commentator-caption[data-active=true]{border-color:var(--line);border-inline-start-color:var(--accent-purple);background:var(--surface-strong);box-shadow:var(--shadow-light)}.commentator-caption .ui-icon{flex:0 0 20px;width:20px;height:20px;margin:2px 0 0;color:var(--accent-purple)}.commentator-copy{flex:1 1 auto;min-inline-size:0}.commentator-copy strong{display:block;margin:0 0 4px;color:var(--text-muted);font-family:var(--font-display);font-size:.8rem;line-height:1.25;font-weight:600}.commentator-copy p{margin:0;font-family:var(--font-body);font-size:.85rem;line-height:1.4;font-weight:700}.dock-pill.commentator-caption[data-active=true]{gap:10px;padding:6px 4px;border-color:transparent;background:transparent;box-shadow:none}.commentator-caption[data-active=true]>.ui-icon{flex:0 0 38px;width:38px;height:38px;margin:0;padding:8px;border-radius:50%;background:color-mix(in srgb,var(--accent-purple) 16%,var(--surface-strong));border:2px solid color-mix(in srgb,var(--accent-purple) 55%,var(--line))}.commentator-caption[data-active=true] .commentator-copy{--bubble-edge: color-mix(in srgb, var(--accent-purple) 55%, var(--line));position:relative;padding:8px 12px;border-radius:var(--radius-md);background:var(--surface-strong);border:2px solid var(--bubble-edge);box-shadow:var(--shadow-light)}.commentator-caption[data-active=true] .commentator-copy:before,.commentator-caption[data-active=true] .commentator-copy:after{content:"";position:absolute;clip-path:polygon(0 50%,100% 0,100% 100%)}.commentator-caption[data-active=true] .commentator-copy:before{left:-9px;top:10px;width:9px;height:14px;background:var(--bubble-edge)}.commentator-caption[data-active=true] .commentator-copy:after{left:-5.75px;top:11px;width:7.75px;height:12px;background:var(--surface-strong)}.high-contrast .commentator-caption[data-active=true] .commentator-copy{--bubble-edge: currentColor}.high-contrast .commentator-copy strong{color:var(--text-main)}.modal .commentator-slot{margin-block:8px;text-align:left}.modal .commentator-slot[data-active=false]{block-size:0;margin-block:0;overflow:hidden}.commentator-setting{grid-template-columns:40px minmax(0,1fr)}.commentator-setting>.select-field,.commentator-setting .setting-sub{grid-column:1 / -1;grid-template-columns:minmax(0,1fr)}.commentator-setting .select-field{min-width:0;margin-bottom:0}.commentator-setting .select-trigger{min-width:0;width:100%}@media(max-width:600px){.commentator-setting{grid-template-columns:32px minmax(0,1fr)}}.privacy-banner{position:fixed;inset:auto max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));z-index:90;width:min(420px,calc(100% - 24px));margin:0 auto;border-radius:16px;border:2px solid color-mix(in srgb,var(--accent-yellow) 60%,var(--line-strong));background:color-mix(in srgb,var(--accent-yellow) 9%,var(--surface-strong));color:var(--text-main);box-shadow:0 8px 24px #231a3566;padding:12px 14px;display:flex;flex-direction:column;gap:8px;align-items:stretch;text-align:left;animation:privacy-banner-in .32s var(--ease-pop) both}.privacy-banner.closing{animation:privacy-banner-out .28s ease-in both;pointer-events:none}@keyframes privacy-banner-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes privacy-banner-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(14px)}}.privacy-banner-copy{flex:1;min-width:0}.privacy-banner strong{display:block;font-family:var(--font-display);font-size:.98rem;line-height:1.2}.privacy-banner p{margin:4px 0 0;font-size:.78rem;line-height:1.35}.privacy-banner-links{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px}.privacy-banner a{color:var(--sheet-story);font-weight:800;font-size:.78rem;text-underline-offset:2px}.privacy-banner-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.privacy-banner-actions button{min-height:44px;margin:0;width:100%;padding:6px 8px;font-size:.88rem;line-height:1.15;box-shadow:none}@media(min-width:1100px){.privacy-banner{inset:auto max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) auto;margin:0}}@media(max-width:1099px){.screen-menu:has(>.privacy-banner) .main-menu{padding-bottom:230px}}.privacy-banner-actions button:hover:not(:disabled),.privacy-banner-actions button:active:not(:disabled){transform:none}.privacy-banner-actions .primary{box-shadow:0 2px 0 var(--primary-edge)}.privacy-banner-actions .primary:hover:not(:disabled){box-shadow:0 2px 0 var(--primary-edge)}.legal-footer{display:flex;flex-direction:column;align-items:stretch;width:min(720px,100%);margin:12px auto 8px;padding:0;text-align:center;color:var(--text-main)}.screen-menu footer.legal-footer{margin-top:auto;margin-bottom:8px;padding:0;font-size:1rem;font-weight:600;color:var(--text-main)}@media(max-width:340px){.privacy-banner-actions{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.privacy-banner,.privacy-banner *{animation:none!important;transition:none!important}}.seo-footer-intro{width:100%;padding:20px 22px 16px}.seo-footer-intro h2{font-family:var(--font-display);font-size:1.28rem;line-height:1.2;margin:0 0 8px;color:var(--text-main)}.seo-footer-intro p{max-width:58ch;margin:0 auto 14px;font-size:.95rem;font-weight:700;line-height:1.5;color:var(--text-muted)}.seo-footer-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.seo-footer-links a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 14px;border-radius:var(--radius-pill);border:2px solid color-mix(in srgb,var(--accent-orange) 50%,var(--line));background:var(--surface-tint);box-shadow:var(--edge);color:var(--text-main);font-family:var(--font-display);font-size:.92rem;font-weight:600;text-decoration:none}.seo-footer-links a:hover{color:var(--text-main);background:color-mix(in srgb,var(--accent-orange) 16%,var(--surface-strong));border-color:var(--accent-orange)}.legal-footer-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:12px 16px 14px;background:color-mix(in srgb,var(--surface-sunken) 78%,transparent);border-top:1px solid var(--line)}.legal-footer-bar .legal-footer-tagline{flex-basis:100%}.legal-footer:not(:has(.seo-footer-intro)) .legal-footer-bar{border-top:0;background:transparent;padding:8px 16px}.legal-footer-tagline{margin:0;font-family:var(--font-body);font-size:.9rem;font-weight:600;letter-spacing:0;color:var(--text-muted)}.legal-footer-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}.legal-footer-links a,.legal-footer-choices{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.88rem;font-weight:600;min-height:40px;margin:0;padding:6px 14px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-tint);box-shadow:none;color:var(--text-main);text-decoration:none;cursor:pointer}.legal-footer-links a:hover,.legal-footer-choices:hover,.legal-footer-choices:active{transform:none;box-shadow:none;color:var(--text-main);background:var(--surface-strong);border-color:var(--accent-blue)}@media(max-width:760px){.screen-menu footer.legal-footer{font-size:1rem;padding:0}.legal-footer{margin-top:16px}.sheet-layer~.legal-footer{display:none}.seo-footer-links{flex-direction:column;align-items:stretch}.seo-footer-links a{width:100%}}.modal.about-game{width:min(100%,520px)}.modal.about-game h2{font-size:1.28rem;line-height:1.2;margin:0 0 8px}.modal.about-game .seo-footer-links{margin:0 0 4px}.modal.about-game .legal-footer-tagline{margin-top:14px}.modal.about-game .legal-footer-choices{width:auto;margin:4px auto 0}.modal.about-game .quiet{margin-top:8px}.privacy-banner-actions .quiet{border:1px solid var(--line-strong);color:var(--text-main);background:var(--surface-strong)}.privacy-banner-actions .quiet:hover:not(:disabled){background:var(--surface-tint)}.analytics-choices{display:grid;gap:9px;padding:10px 0}.analytics-choices label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.9rem}.analytics-choices input{width:20px;height:20px;accent-color:#7142a0}.analytics-choices button{min-height:44px;justify-self:start;padding:8px 14px}
