:root,:root[data-theme=dark]{--color-bg: #0a0a14;--color-bg-raised: #14141f;--color-card: rgba(255, 255, 255, .05);--color-card-hover: rgba(255, 255, 255, .08);--color-card-active: rgba(255, 255, 255, .12);--color-border: rgba(255, 255, 255, .08);--color-border-strong:rgba(255, 255, 255, .18);--color-text: #eeeeee;--color-text-muted: #aaaaaa;--color-text-faint: #666666;--color-accent: #ffd76a;--color-accent-soft: rgba(255, 215, 106, .18);--color-accent-line: rgba(255, 215, 106, .5);--color-village: #8ab8ff;--color-village-soft: rgba(138, 184, 255, .15);--color-wolf: #ff8a8a;--color-wolf-soft: rgba(255, 138, 138, .15);--color-neutral: #cccccc;--color-neutral-soft: rgba(204, 204, 204, .12);--color-phase-day: #ffd76a;--color-phase-night: #6a8aff;--color-phase-vote: #ff8aaa;--color-phase-end: #cccccc;--color-success: #a8e6a8;--color-warn: #ffb86a;--color-danger: #ff6a6a;--font-family: system-ui, -apple-system, "Segoe UI", "Pretendard", "NanumSquare", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-xs: 11px;--font-sm: 12px;--font-md: 14px;--font-lg: 16px;--font-xl: 20px;--font-2xl: 24px;--font-3xl: 32px;--line-tight: 1.3;--line-normal: 1.5;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-pill: 999px;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--z-base: 1;--z-overlay: 100;--z-modal: 200;--z-toast: 300;--z-boot: 1000;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--motion-fast: .1s ease;--motion-normal: .2s ease;--motion-slow: .4s ease;--brand-gradient-primary: linear-gradient(135deg, #6a8aff 0%, #ff8a8a 100%);--brand-gradient-soft: linear-gradient(135deg, rgba(106, 138, 255, .18) 0%, rgba(255, 138, 138, .18) 100%);--brand-gradient-night: linear-gradient(180deg, #14141f 0%, #0a0a14 100%);--brand-gradient-day: linear-gradient(180deg, #1a1a2a 0%, #0f0f18 100%);--elevation-0: 0 0 0 1px var(--color-border);--elevation-1: 0 1px 3px rgba(0, 0, 0, .2), 0 1px 2px rgba(0, 0, 0, .1);--elevation-2: 0 4px 8px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .15);--elevation-3: 0 12px 24px rgba(0, 0, 0, .4), 0 6px 12px rgba(0, 0, 0, .2);--font-4xl: 40px;--font-5xl: 56px;--font-display-weight: 800;--font-heading-weight: 700;--font-body-weight: 400;--font-meta-weight: 500;--motion-bounce: cubic-bezier(.34, 1.56, .64, 1);--motion-spring: cubic-bezier(.5, 1.5, .5, 1);--motion-emphasis: cubic-bezier(.2, 0, 0, 1);--bp-mobile-max: 599px;--bp-tablet-min: 600px;--bp-tablet-max: 1023px;--bp-desktop-min: 1024px;--bp-wide-min: 1440px}:root[data-theme=cb-dark]{--color-village: #4ea3ff;--color-village-soft: rgba(78, 163, 255, .18);--color-wolf: #ff9933;--color-wolf-soft: rgba(255, 153, 51, .18);--color-neutral: #cccccc;--color-neutral-soft: rgba(204, 204, 204, .12);--color-success: #79e0e8;--color-warn: #ffd76a;--color-danger: #ff9933;--color-phase-vote: #d97aff}:root[data-theme=cb-light]{--color-bg: #f5f5f0;--color-bg-raised: #ffffff;--color-card: rgba(0, 0, 0, .04);--color-card-hover: rgba(0, 0, 0, .06);--color-border: rgba(0, 0, 0, .12);--color-border-strong:rgba(0, 0, 0, .22);--color-text: #1a1a24;--color-text-muted: #555568;--color-village: #2a5fc8;--color-village-soft: rgba(42, 95, 200, .15);--color-wolf: #c87a00;--color-wolf-soft: rgba(200, 122, 0, .15);--color-success: #00777a;--color-warn: #b07000;--color-danger: #c87a00}:root[data-theme=light]{--color-bg: #f5f5f0;--color-bg-raised: #ffffff;--color-card: rgba(0, 0, 0, .04);--color-card-hover: rgba(0, 0, 0, .06);--color-card-active: rgba(0, 0, 0, .1);--color-border: rgba(0, 0, 0, .1);--color-border-strong:rgba(0, 0, 0, .22);--color-text: #1a1a24;--color-text-muted: #555568;--color-text-faint: #999999;--color-accent: #8b5400;--color-accent-soft: rgba(139, 84, 0, .12);--color-accent-line: rgba(139, 84, 0, .55);--color-village: #2a5fc8;--color-village-soft: rgba(42, 95, 200, .12);--color-wolf: #c83a3a;--color-wolf-soft: rgba(200, 58, 58, .12);--color-neutral: #444444;--color-neutral-soft: rgba(68, 68, 68, .1);--color-phase-day: #c87a00;--color-phase-night: #4060c8;--color-phase-vote: #c83a78;--color-phase-end: #444444;--color-success: #2a8a2a;--color-warn: #c87a00;--color-danger: #c83a3a;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .18)}:root,:root[data-theme=dark]{--bg: #0E0B09;--bg-deep: #06050A;--bg-elev: #1A1411;--surface: #221C18;--surface-2: #2C251F;--surface-3: #382F27;--ink: #E8DDC8;--ink-2: #BFAF94;--ink-mute: #8B7E68;--ink-faint: #5A4F40;--ink-ghost: rgba(232,221,200,.06);--line: rgba(201,169,97,.14);--line-2: rgba(201,169,97,.28);--line-strong: rgba(201,169,97,.55);--blood: #B0211E;--blood-glow: #E84B4B;--blood-deep: #6B0F0E;--gold: #C9A961;--gold-soft: #8B7642;--gold-glow: #E8C77A;--moon: #6E7FA8;--moon-glow: #A8B8DC;--phase-day-bg: radial-gradient(ellipse at 50% 0%, #2A1F15 0%, #0E0B09 65%);--phase-night-bg: radial-gradient(ellipse at 50% 0%, #0E1428 0%, #04060F 65%);--phase-vote-bg: radial-gradient(ellipse at 50% 0%, #2A0B0A 0%, #0A0303 65%);--font-display: "Apple SD Gothic Neo", "Pretendard", "Nanum Myeongjo", "Noto Serif KR", "Times New Roman", serif;--font-text: "Pretendard", "Apple SD Gothic Neo", "Malgun Gothic", -apple-system, system-ui, sans-serif;--r-xs: 4px;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 28px;--shadow-1: 0 1px 0 rgba(255,255,255,.04) inset, 0 2px 6px rgba(0,0,0,.5);--shadow-2: 0 1px 0 rgba(255,255,255,.05) inset, 0 8px 24px rgba(0,0,0,.55);--shadow-3: 0 1px 0 rgba(255,255,255,.06) inset, 0 18px 48px rgba(0,0,0,.65);--shadow-blood: 0 0 0 1px rgba(176,33,30,.4), 0 12px 32px rgba(176,33,30,.25);--shadow-gold: 0 0 0 1px rgba(201,169,97,.35), 0 8px 24px rgba(201,169,97,.12);--ease: cubic-bezier(.2,.7,.3,1)}[data-theme=light]{--bg: #F1EBDB;--bg-deep: #E2D9C0;--bg-elev: #EDE4CD;--surface: #F6F0E0;--surface-2: #FBF5E6;--surface-3: #FFFAEC;--ink: #2A1F15;--ink-2: #4A3826;--ink-mute: #6B5841;--ink-faint: #8A7858;--ink-ghost: rgba(42,31,21,.06);--line: rgba(80,55,30,.18);--line-2: rgba(80,55,30,.32);--line-strong: rgba(80,55,30,.55);--blood: #8B1A17;--blood-glow: #B92A26;--blood-deep: #4A0907;--gold: #8B6F2F;--gold-soft: #5C4A1F;--phase-day-bg: radial-gradient(ellipse at 50% 0%, #F6E8C8 0%, #E0D2A8 65%);--phase-night-bg: radial-gradient(ellipse at 50% 0%, #2C2F47 0%, #0E1024 65%);--phase-vote-bg: radial-gradient(ellipse at 50% 0%, #E8C9C5 0%, #C18A85 65%);--shadow-1: 0 1px 0 rgba(255,255,255,.6) inset, 0 2px 6px rgba(80,55,30,.12);--shadow-2: 0 1px 0 rgba(255,255,255,.7) inset, 0 8px 24px rgba(80,55,30,.18);--shadow-3: 0 1px 0 rgba(255,255,255,.8) inset, 0 18px 48px rgba(80,55,30,.22)}:root{text-wrap:pretty;word-break:keep-all;line-height:1.5}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100vh;height:100dvh;height:var(--app-h, 100dvh);overflow:hidden;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-md);line-height:var(--line-normal);touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}button{cursor:pointer;min-height:36px}button:disabled{cursor:not-allowed}@media (hover: none) and (pointer: coarse){button,input[type=text],input[type=number]{min-height:44px}}a{color:var(--color-accent);text-decoration:none}html{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--gold, #C9A961) 75%,transparent) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,color-mix(in srgb,var(--gold-glow, #E8C879) 55%,transparent),color-mix(in srgb,var(--gold, #C9A961) 68%,transparent));border:2px solid transparent;background-clip:padding-box;border-radius:var(--radius-pill, 999px)}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--gold-glow, #E8C879),var(--gold, #C9A961));border-width:1px;background-clip:padding-box}#app{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.app-shell{width:100%;height:100%;display:flex;flex-direction:column;padding-top:var(--safe-top);padding-right:var(--safe-right);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);background:var(--color-bg);color:var(--color-text)}.app-header{flex:0 0 auto;padding:var(--space-sm) var(--space-md);background:var(--color-bg-raised);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);min-height:44px}.app-main{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow:hidden}.app-footer{flex:0 0 auto;padding:var(--space-sm) var(--space-md);background:var(--color-bg-raised);border-top:1px solid var(--color-border)}@media (min-width: 768px){.app-header,.app-footer{padding:var(--space-md) var(--space-lg)}}@media (min-width: 1024px){.app-main{flex-direction:row}.app-main-left{flex:0 0 360px;border-right:1px solid var(--color-border);overflow:hidden;display:flex;flex-direction:column}.app-main-right{flex:1;overflow:hidden;display:flex;flex-direction:column}}@media (min-width: 1440px){.app-main-left{flex:0 0 420px}}@media (max-width: 1023px){.app-main-left{flex:0 0 auto;max-height:50vh;overflow:hidden;display:flex;flex-direction:column;border-bottom:1px solid var(--color-border)}.app-main-right{flex:1;overflow:hidden;display:flex;flex-direction:column}}.section-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.section-title{font-size:var(--font-sm);font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:.5px}#main-menu{background:var(--color-bg)}#main-menu:not(.is-shown){display:none}.menu-shell{flex-direction:column}.app-shell.menu-shell{background:radial-gradient(ellipse at 50% 0%,#1a1411,#06050a 70%)!important}.menu-area{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.menu-icon-rail{display:none}@media (min-width: 1024px){.menu-shell{display:grid;grid-template-columns:64px 1fr;grid-template-rows:1fr;height:100vh}.menu-area{height:100%;align-self:stretch;min-height:0;overflow-y:auto;overflow-x:hidden}.menu-main{align-content:start;height:auto;min-height:100%;overflow:visible}.app-main.menu-main{flex-direction:column}.menu-icon-rail{display:flex;flex-direction:column;width:64px;background:var(--color-bg-raised, var(--bg-elev));border-right:1px solid var(--color-border, var(--line));padding:var(--space-sm) 0;gap:var(--space-xs);align-items:center;overflow-y:auto;overflow-x:hidden}.menu-icon-rail-sigil{margin-bottom:var(--space-md);color:var(--gold, var(--color-accent))}.menu-rail-btn{width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.menu-header .menu-icon-btn:not(.menu-rail-btn){display:none}.menu-rail-btn-label{display:none}.menu-rail-toggle{margin-bottom:var(--space-xs);color:var(--gold-soft, var(--color-accent))}.menu-rail-toggle-icon{font-family:var(--font-mono, ui-monospace);font-size:16px;line-height:1;transition:transform var(--motion-fast, .18s) ease}.menu-shell.rail-expanded{grid-template-columns:220px 1fr}.rail-expanded .menu-icon-rail{width:220px;align-items:stretch}.rail-expanded .menu-rail-btn{width:100%;height:40px;justify-content:flex-start;gap:var(--space-sm);padding:0 var(--space-md)}.rail-expanded .menu-rail-btn-label{display:block;flex:1 1 auto;min-width:0;text-align:left;font-size:var(--font-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-expanded .menu-rail-toggle-icon{transform:rotate(180deg)}.menu-icon-rail{background:var(--bg-deep, var(--color-bg));border-right:1px solid var(--line, var(--color-border))}.menu-icon-rail-sigil:after{content:"";display:block;width:24px;height:1px;margin:var(--space-sm) auto 0;background:var(--line-2, var(--color-border-strong))}.menu-icon-rail .menu-rail-btn{background:transparent;border:1px solid transparent;border-radius:8px;color:var(--ink-mute, var(--color-text-muted));transition:background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast)}.menu-icon-rail .menu-rail-btn:hover{background:linear-gradient(180deg,var(--surface-2, #2C251F),var(--surface, #1A1410));border-color:var(--line-2, var(--color-border-strong));color:var(--gold, var(--color-accent));box-shadow:inset 0 1px #ffffff0d,0 0 14px color-mix(in srgb,var(--gold, #C9A961) 14%,transparent)}.menu-icon-rail .menu-rail-btn:active{filter:brightness(.94)}.menu-icon-rail .menu-rail-toggle{color:var(--gold-soft, var(--color-accent))}.menu-icon-rail .menu-rail-toggle:hover{color:var(--gold, var(--color-accent))}.rail-expanded .menu-icon-rail .menu-rail-btn:hover{box-shadow:inset 3px 0 0 var(--gold, #C9A961),0 0 14px color-mix(in srgb,var(--gold, #C9A961) 16%,transparent)}.rail-expanded .menu-rail-btn-label{font-family:var(--font-display, "Cinzel", serif);letter-spacing:.02em}.menu-header{position:sticky;top:0;z-index:5;background:var(--color-bg-raised, var(--bg-elev))}}.menu-header{background:var(--bg-deep, var(--color-bg-raised));border-bottom:1px solid var(--line-2, var(--color-border-strong));overflow:hidden}.menu-header>*{min-width:0}.menu-title{min-width:0;flex-shrink:1}.menu-nick{min-width:0}.menu-title{font-size:var(--font-lg);font-weight:700;color:var(--color-accent);display:flex;align-items:center;gap:var(--space-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sigil{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--gold, var(--color-accent)) 35%,transparent)) drop-shadow(0 1px 0 rgba(0,0,0,.5))}.menu-title .brand-sigil{flex-shrink:0;color:var(--gold, var(--color-accent))}.menu-icon-rail-sigil .brand-sigil{color:var(--gold, var(--color-accent))}.menu-title-text{font-family:var(--font-display);letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis}.menu-title-sub{font-family:var(--font-mono, ui-monospace);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft, var(--color-text-muted));margin-left:var(--space-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-topbar-rule{flex:1;min-width:24px;margin:0 var(--space-md)}.menu-topbar-online{display:flex;align-items:center;gap:5px;flex-shrink:0}.menu-topbar-online-dot{width:6px;height:6px;border-radius:50%;background:var(--color-success, #5fb85f);box-shadow:0 0 6px var(--color-success, #5fb85f)}.menu-topbar-online-text{font-family:var(--font-mono, ui-monospace);font-size:11px;color:var(--gold-soft, var(--color-text-muted));white-space:nowrap}.menu-topbar-online-text:empty{display:none}@media (max-width: 1023px){.menu-topbar-rule,.menu-topbar-online{display:none}}@media (max-width: 1023px){.menu-title{flex-wrap:wrap;row-gap:2px}.menu-title-sub{flex-basis:100%;margin-left:0;margin-top:2px}.menu-header .menu-icon-btn:not([data-mobile-show]){display:none}.menu-nick{flex:0 0 auto;max-width:none}.menu-nick>input,.menu-nick>.menu-main-role-chip{display:none}.menu-header.mobile-nav-open{position:relative}.menu-header.mobile-nav-open .menu-nick{position:absolute;top:100%;left:0;right:0;display:flex;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-md);max-height:72vh;overflow-y:auto;background:var(--surface-2, var(--color-bg-raised));border:1px solid var(--line-2, var(--color-border-strong));border-top:none;box-shadow:0 8px 24px #00000080;z-index:calc(var(--z-modal, 1000) - 1)}.menu-header.mobile-nav-open .menu-nick>.menu-icon-btn{display:flex}.menu-header.mobile-nav-open .menu-nick>input{display:block;flex:1 0 100%;min-width:0;order:-1}.menu-header.mobile-nav-open .menu-nick>.menu-main-role-chip{display:inline-flex}}.menu-nick{flex:1;display:flex;justify-content:flex-end;gap:var(--space-sm);max-width:400px}.menu-nick-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:#000000b3}.menu-nick-gate{width:100%;max-width:420px;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);border-color:var(--gold, var(--color-accent));box-shadow:0 0 0 1px color-mix(in srgb,var(--gold, var(--color-accent)) 35%,transparent),var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, .5))}.menu-nick-gate-label{font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-lg);font-weight:700;color:var(--gold, var(--color-accent));text-align:center}.menu-nick-gate-row{display:flex;gap:var(--space-sm);align-items:stretch}.menu-nick-gate-input{flex:1;min-width:0;background:var(--color-card, var(--surface));border:1px solid var(--color-border-strong, var(--line-2));border-radius:var(--radius-md);color:var(--color-text, var(--ink));font-family:inherit;font-size:var(--font-md);padding:var(--space-sm) var(--space-md)}.menu-nick-gate-input:focus{outline:none;border-color:var(--gold, var(--color-accent))}.menu-nick-gate-save{flex:0 0 auto;padding:var(--space-sm) var(--space-lg);font-size:var(--font-md)}.lang-select{background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);padding:var(--space-sm);font-size:var(--font-sm);cursor:pointer;flex-shrink:0}.menu-nick input{width:100%;min-width:168px;padding:var(--space-sm) var(--space-md);background:var(--surface-2, var(--color-bg));border:1px solid var(--line-2, var(--color-border-strong));border-radius:var(--radius-md);color:var(--ink, var(--color-text));font-size:var(--font-md);letter-spacing:.02em;outline:none;box-shadow:inset 0 1px 2px #00000059;transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.menu-nick input::placeholder{color:var(--ink-faint, var(--color-text-faint))}.menu-nick input:focus{border-color:var(--gold, var(--color-accent));box-shadow:inset 0 1px 2px #00000059,0 0 0 2px color-mix(in srgb,var(--gold, #C9A961) 40%,transparent)}@media (max-width: 480px){.menu-nick{max-width:none}.menu-nick input{min-width:0}}.menu-main{padding:var(--space-md);gap:var(--space-md);overflow-y:auto}.menu-hero{position:relative;padding:var(--space-lg) var(--space-md);margin-bottom:var(--space-lg);border-radius:var(--radius-lg);background:var(--brand-gradient-soft);text-align:center;overflow:hidden;animation:hero-fade-in .5s var(--motion-emphasis)}.menu-hero:before{content:"ᚺ";position:absolute;font-family:var(--font-display, "Cinzel", "Noto Serif KR", serif);font-weight:700;font-size:180px;color:var(--gold, var(--color-accent));opacity:.07;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:-.05em;text-shadow:0 0 12px color-mix(in srgb,var(--gold, var(--color-accent)) 30%,transparent)}.menu-hero-title{margin:0;font-size:var(--font-3xl);font-weight:var(--font-display-weight);color:var(--color-text);letter-spacing:-.02em;line-height:var(--line-tight);position:relative}@media (min-width: 1024px){.menu-hero-title{font-size:var(--font-5xl)}}@media (max-width: 1023px){.menu-hero{display:none}}.menu-hero-sub{margin:var(--space-sm) 0 var(--space-xs);font-size:var(--font-md);color:var(--color-text-muted);font-weight:var(--font-meta-weight);position:relative}@media (min-width: 1024px){.menu-hero-sub{font-size:var(--font-lg)}}@keyframes hero-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.menu-action-btn .icon{width:18px;height:18px;flex-shrink:0}.menu-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs)}.menu-action-btn.match-tile{flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;gap:6px;padding:16px 16px 14px;min-height:110px}.match-tile-row1{display:flex;align-items:center;justify-content:space-between;width:100%}.match-tile-row1 .icon{width:22px;height:22px}.match-tile-accent{font-family:var(--font-mono, ui-monospace);font-size:9.5px;letter-spacing:.18em;color:var(--ink-faint, var(--color-text-faint))}.match-tile-ko{font-family:var(--font-display, "Cinzel", serif);font-size:19px;font-weight:700;line-height:1.1}.match-tile-sub{font-size:11px;color:var(--ink-mute, var(--color-text-muted))}.menu-action-btn.match-tile.tw-btn-primary .match-tile-sub{color:#fff8f0b3}.menu-action-btn.match-tile.tw-btn-primary .match-tile-accent{color:#fff8f08c}.season-banner{margin:0 0 var(--space-md);padding:var(--space-md) var(--space-lg);isolation:isolate}.season-banner.season-hero{min-height:200px;padding:22px;border:1px solid var(--line-2, var(--color-border-strong));background:radial-gradient(ellipse at 80% 20%,rgba(176,33,30,.35),transparent 60%),radial-gradient(ellipse at 20% 80%,rgba(201,169,97,.18),transparent 60%),linear-gradient(180deg,#1a0a09,#0e0b09)}.season-banner.season-hero .season-banner-body{flex-direction:row;align-items:flex-start;gap:18px}.season-hero-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.season-hero-badge{align-self:flex-start;margin-bottom:6px}.season-hero-title{font-family:var(--font-display, "Cinzel", serif);font-size:30px;font-weight:700;letter-spacing:-.01em;margin:0 0 4px;color:var(--ink, var(--color-text))}.season-hero-body{font-size:13px;color:var(--ink-2, var(--color-text-muted));max-width:380px;margin:0 0 10px;line-height:var(--line-normal)}.season-hero-bar{margin:4px 0}.season-hero-cta-row{display:flex;gap:8px;margin-top:14px}.season-hero-cta{padding:10px 16px}.season-hero-art{flex-shrink:0;width:110px;aspect-ratio:5 / 7;border-radius:var(--r-md, 12px);display:grid;place-items:center;background:radial-gradient(ellipse at 50% 30%,#28324A 0%,transparent 65%),linear-gradient(180deg,#1f1812,#080b14);border:1px solid #1F1612}.season-hero-art-rune{font-family:var(--font-display, "Cinzel", serif);font-size:56px;font-weight:700;color:var(--moon-glow, #A8B8DC);opacity:.5;text-shadow:0 0 16px rgba(168,184,220,.4);-webkit-user-select:none;user-select:none}@media (max-width: 1023px){.season-banner.season-hero .season-banner-body{flex-direction:column}.season-hero-art{width:80px;align-self:center}.season-hero-title{font-size:24px}}.season-banner-body{display:flex;flex-direction:column;gap:var(--space-sm);position:relative;z-index:2}.season-banner-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.season-banner-title{margin:0;font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-lg);font-weight:700;color:var(--gold, var(--color-accent));display:flex;align-items:center;gap:var(--space-xs)}.season-banner-tier{align-self:center}.season-banner-bar{width:100%;height:6px;background:var(--ink-ghost, rgba(232, 221, 200, .06));border:1px solid var(--line, rgba(201, 169, 97, .14));border-radius:999px;overflow:hidden}.season-banner-bar-fill{height:100%;background:linear-gradient(90deg,var(--gold-glow, var(--color-accent)) 0%,var(--gold, var(--color-accent)) 100%);border-radius:inherit;transition:width var(--motion-slow, .35s)}.season-banner-xp{font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute));font-family:var(--font-mono)}.season-banner-track{align-self:flex-start}.season-banner-cta{align-self:stretch;margin-top:var(--space-xs)}.daily-missions{margin:0 0 var(--space-md);padding:var(--space-md) var(--space-lg);isolation:isolate}.daily-missions-body{display:flex;flex-direction:column;gap:var(--space-sm);position:relative;z-index:2}.daily-missions-head{display:flex;align-items:center;justify-content:space-between}.daily-missions-title{margin:0;font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-md);font-weight:700;color:var(--gold, var(--color-accent));display:flex;align-items:center;gap:var(--space-xs)}.daily-missions-list{display:flex;flex-direction:column;gap:var(--space-xs)}.daily-missions-row{display:grid;grid-template-columns:1fr auto auto;gap:var(--space-xs);align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);background:var(--ink-ghost, rgba(232, 221, 200, .04));border:1px solid transparent;font-size:var(--font-sm)}.daily-missions-row.claimable{border-color:var(--gold, var(--color-accent));background:color-mix(in srgb,var(--gold, var(--color-accent)) 10%,transparent)}.daily-missions-row.claimed{opacity:.55}.daily-missions-label{color:var(--color-text, var(--ink));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-missions-progress{font-family:var(--font-mono);font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute))}.daily-missions-bar{grid-column:1 / -1;height:3px;margin-top:4px;border-radius:2px;overflow:hidden;background:color-mix(in srgb,var(--color-text, #fff) 12%,transparent)}.daily-missions-bar-fill{height:100%;background:var(--blood-glow, #E84B4B);transition:width var(--motion-fast, .18s) ease}.daily-missions-bar-fill.done{background:var(--gold, var(--color-accent))}.daily-missions-empty{font-size:var(--font-sm);color:var(--color-text-muted, var(--ink-mute));padding:var(--space-md) 0;text-align:center}.daily-missions-cta{align-self:stretch;margin-top:var(--space-xs);font-size:var(--font-sm)}.recent-matches{margin:0 0 var(--space-md);padding:var(--space-md) var(--space-lg);isolation:isolate}.recent-matches-body{display:flex;flex-direction:column;gap:var(--space-sm);position:relative;z-index:2}.recent-matches-head{display:flex;align-items:center;justify-content:space-between}.recent-matches-title{margin:0;font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-md);font-weight:700;color:var(--gold, var(--color-accent));display:flex;align-items:center;gap:var(--space-xs)}.recent-matches-meta{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute));letter-spacing:.04em}.recent-matches-list{display:flex;flex-direction:column}.recent-matches-row{display:flex;align-items:center;gap:var(--space-sm);padding:6px 0;font-size:var(--font-sm);border-bottom:1px solid var(--line, var(--color-border))}.recent-matches-row:last-child{border-bottom:none}.recent-matches-row-bar{width:4px;height:18px;flex-shrink:0;background:var(--blood-glow, #E84B4B)}.recent-matches-row-bar.win{background:var(--gold, var(--color-accent))}.recent-matches-row-name{flex:1;min-width:0;color:var(--color-text, var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-matches-row-games{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute));flex-shrink:0}.recent-matches-row-rate{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);font-weight:600;color:var(--blood-glow, #E84B4B);flex-shrink:0;min-width:36px;text-align:right}.recent-matches-row-rate.win{color:var(--gold, var(--color-accent))}.recent-matches-empty{font-size:var(--font-sm);color:var(--color-text-muted, var(--ink-mute));padding:var(--space-md) 0;text-align:center}.recent-matches-cta{align-self:stretch;margin-top:var(--space-xs);font-size:var(--font-sm)}.guild-card{margin:0 0 var(--space-md);padding:var(--space-md) var(--space-lg);isolation:isolate}.guild-card-body{display:flex;flex-direction:column;gap:var(--space-sm);position:relative;z-index:2}.guild-card-head{display:flex;align-items:center;justify-content:space-between}.guild-card-title{margin:0;font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-md);font-weight:700;color:var(--gold, var(--color-accent));display:flex;align-items:center;gap:var(--space-xs)}.guild-card-row{display:flex;align-items:center;gap:var(--space-sm)}.guild-card-avatar{width:40px;height:40px;flex-shrink:0;border-radius:8px;background:radial-gradient(circle at 50% 40%,var(--guild-avatar-from, #2C2A52),var(--guild-avatar-to, #0B0A1A));border:1px solid var(--line-2, var(--color-border-strong));display:grid;place-items:center;font-family:var(--font-display, "Cinzel", serif);font-size:20px;font-weight:700;color:var(--moon-glow, #A8B8DC);-webkit-user-select:none;user-select:none}.guild-card-info{flex:1;min-width:0}.guild-card-name{font-size:var(--font-sm);font-weight:600;color:var(--color-text, var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guild-card-meta{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guild-card-desc{font-size:var(--font-sm);color:var(--color-text-muted, var(--ink-2));display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.guild-card-empty{font-size:var(--font-sm);color:var(--color-text-muted, var(--ink-mute));padding:var(--space-sm) 0;text-align:center}.guild-card-cta{align-self:stretch;margin-top:var(--space-xs);font-size:var(--font-sm)}.friends-card{margin:0 0 var(--space-md);padding:0;isolation:isolate;overflow:hidden}.friends-card-body{display:flex;flex-direction:column;position:relative;z-index:2}.friends-card-head{display:flex;align-items:center;gap:var(--space-xs);padding:10px var(--space-md);border-bottom:1px solid var(--line, var(--color-border));font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute));letter-spacing:.08em;text-transform:uppercase}.friends-card-count{margin-left:auto;color:var(--gold-soft, var(--color-accent))}.friends-card-list{display:flex;flex-direction:column;gap:2px;padding:var(--space-xs)}.friends-card-row{display:flex;align-items:center;gap:var(--space-sm);padding:6px var(--space-xs);border-radius:var(--radius-sm, 6px)}.friends-card-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--color-text-faint, var(--ink-faint))}.friends-card-dot.online{background:#56c271;box-shadow:0 0 6px #56c2718c}.friends-card-name{font-size:var(--font-sm);font-weight:500;color:var(--color-text, var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.friends-card-status{margin-left:auto;font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute));flex-shrink:0}.friends-card-empty,.friends-card .inline-unauth-cta{font-size:var(--font-sm);color:var(--color-text-muted, var(--ink-mute));padding:var(--space-md);text-align:center}.friends-card-cta{align-self:stretch;margin:0 var(--space-xs) var(--space-xs);font-size:var(--font-sm)}.menu-hero-title .tw-seal{vertical-align:middle;margin-left:var(--space-sm)}.menu-section-rule{margin:var(--space-md) 0;font-family:var(--font-mono, ui-monospace);font-size:10px;letter-spacing:.2em;color:var(--gold-soft, var(--color-text-muted));text-transform:uppercase}@media (min-width: 1024px){.menu-main .menu-section-rule{display:none}}@media (min-width: 1024px){.menu-main{max-width:1280px;margin:0 auto;width:100%;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.menu-hero{text-align:left;padding:var(--space-2xl);margin-bottom:0}.menu-cols{display:grid;grid-template-columns:380px 1fr 320px;gap:var(--space-lg)}.menu-col{display:flex;flex-direction:column;gap:var(--space-lg);min-width:0;min-height:0}.menu-col-left .friends-card,.menu-col-center .menu-list-section,.menu-col-right .menu-global-chat-section{flex:1 1 auto;min-height:0}.menu-list-section{max-height:none}.menu-global-chat-section{margin-top:0}.menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.menu-action-btn{min-height:56px;font-size:var(--font-lg)}.menu-action-btn.primary{grid-column:span 2}}@media (max-width: 1023px){.menu-main{display:flex;flex-direction:column}.menu-cols{display:flex;flex-direction:column;gap:var(--space-md)}.menu-col{display:contents}}@media (min-width: 1024px) and (max-width: 1199px){.menu-cols{display:flex;flex-direction:column;gap:var(--space-lg)}}@media (min-width: 1440px){.menu-main{max-width:1280px}}.menu-bottom-nav{display:none}@media (max-width: 1023px){.menu-bottom-nav{display:flex;justify-content:space-around;align-items:center;padding:10px 8px calc(16px + var(--safe-bottom, 0px));border-top:1px solid var(--line, var(--color-border));background:var(--bg-deep, var(--color-bg));position:sticky;bottom:0;z-index:var(--z-overlay, 100)}.menu-main{padding-bottom:80px}}.menu-bottom-nav-btn{display:flex;flex-direction:column;align-items:center;gap:3px;background:transparent;border:0;color:var(--ink-faint, var(--color-text-muted));font-size:10px;font-family:var(--font-mono);letter-spacing:.05em;cursor:pointer;padding:4px 8px;min-width:56px;transition:color var(--motion-fast)}.menu-bottom-nav-btn:hover,.menu-bottom-nav-btn:focus-visible{color:var(--gold, var(--color-accent))}.menu-bottom-nav-btn.active{color:var(--gold, var(--color-accent))}.menu-bottom-nav-btn.active .icon{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--gold, var(--color-accent)) 40%,transparent))}.menu-bottom-nav-btn .icon{width:22px;height:22px}.menu-bottom-nav-label{line-height:1}.menu-action-btn{transition:transform var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast),border-color var(--motion-fast)}@media (hover: hover){.menu-action-btn:hover{transform:translateY(-1px);box-shadow:var(--elevation-2)}}.menu-action-btn:active{transform:translateY(1px) scale(.98);transition:transform 60ms var(--motion-emphasis)}.menu-action-btn.primary{position:relative}.menu-action-btn.primary:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;border:1px solid var(--color-accent-line);opacity:0;pointer-events:none;transition:opacity var(--motion-normal)}.menu-action-btn.primary:hover:after{opacity:1}.menu-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.menu-action-btn{flex:1 1 0;min-width:140px;padding:var(--space-md) var(--space-lg);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-md);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);background:var(--color-card);color:var(--color-text);transition:background var(--motion-fast),border-color var(--motion-fast)}.menu-action-btn:hover{background:var(--color-card-hover)}.menu-action-btn.primary{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-accent)}.menu-action-btn.primary:hover{background:#ffd76a4d}.menu-action-btn.secondary{border-color:var(--color-border-strong)}.menu-action-btn.ghost{background:transparent;color:var(--color-text);border-color:var(--color-border)}.menu-action-btn.ghost:hover{background:var(--color-card);border-color:var(--color-border-strong)}.menu-onboarding{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-md)}.menu-onboarding-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.menu-onboarding-title{color:var(--color-accent);font-weight:700}.menu-onboarding-close{width:28px;height:28px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-card);color:var(--color-text-muted)}.menu-onboarding-copy{color:var(--color-text-muted);font-size:var(--font-sm);line-height:1.45}.menu-onboarding-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:var(--space-xs)}.menu-onboarding-chip{padding:var(--space-xs) var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-xs);line-height:1.35}.menu-list-section{flex:1;display:flex;flex-direction:column;min-height:200px;overflow:hidden}.menu-list-header{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}.menu-category-filter{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-top:var(--space-xs)}.menu-category-chip{padding:2px var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-xs);color:var(--color-text-muted);cursor:pointer}.menu-category-chip.active{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.menu-room-list{flex:1;overflow-y:auto;padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-xs)}.menu-room-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--motion-fast),border-color var(--motion-fast)}.menu-room-card:hover{background:var(--color-card-hover);border-color:var(--color-border-strong)}.menu-room-card.playing{cursor:not-allowed;opacity:.5}.menu-room-card.playing:hover{background:var(--color-card);border-color:var(--color-border)}.menu-room-card-main{flex:1;min-width:0}.menu-room-card-name{font-weight:600;font-size:var(--font-md);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-room-card-meta{font-size:var(--font-sm);color:var(--color-text-muted);margin-top:2px}.menu-room-card-right{text-align:right;flex-shrink:0}.menu-room-card-count{font-size:var(--font-md);font-weight:600;color:var(--color-text)}.menu-room-card-status{font-size:var(--font-xs);font-weight:600;margin-top:2px}.status-waiting{color:var(--color-success)}.status-playing{color:var(--color-wolf)}.status-ended{color:var(--color-text-faint)}.menu-footer-business{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);line-height:1.8;color:var(--ink-faint, var(--color-text-faint));text-align:center;letter-spacing:.02em;padding-top:var(--space-xs)}.menu-footer-business a{color:inherit;text-decoration:none}.menu-footer-business a:hover{color:var(--gold-soft, var(--color-accent))}.menu-footer-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xs) var(--space-md);padding-top:var(--space-xs)}.menu-footer-legal-link{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--ink-faint, var(--color-text-faint));text-decoration:underline;text-underline-offset:2px;letter-spacing:.02em}.menu-footer-legal-link:hover{color:var(--gold, var(--color-accent))}.menu-status{text-align:center;font-size:var(--font-sm);min-height:18px}.menu-status-info{color:var(--color-village)}.menu-status-warn{color:var(--color-warn)}.menu-status-error{color:var(--color-danger)}.menu-footer-info{margin-top:var(--space-sm);border-top:1px solid var(--color-border, rgba(255, 255, 255, .08))}.menu-footer-toggle{display:block;width:100%;background:none;border:none;color:var(--ink-faint, var(--color-text-faint));font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);letter-spacing:.04em;text-align:center;padding:var(--space-xs);cursor:pointer}.menu-footer-toggle:hover{color:var(--gold-soft, var(--color-accent))}.menu-footer-collapsible[hidden]{display:none}.menu-footer-collapsible{padding-bottom:var(--space-xs)}.menu-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.menu-modal-dialog{width:100%;max-width:400px;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);box-shadow:var(--shadow-lg)}.menu-modal-dialog h2{font-size:var(--font-xl);color:var(--color-accent);margin-bottom:var(--space-xs)}.menu-modal-dialog input[type=text]{padding:var(--space-md);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-md);outline:none}.menu-modal-dialog input[type=text]:focus{border-color:var(--color-accent-line)}.menu-modal-checkbox{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-sm);color:var(--color-text-muted);cursor:pointer}.menu-modal-checkbox input{accent-color:var(--color-accent)}.menu-modal-select{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-sm);color:var(--color-text-muted)}.menu-modal-select>span{flex:0 0 108px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-modal-select select,.menu-modal-select input{flex:1;min-width:0;background:var(--color-bg-raised);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);font-family:inherit;font-size:var(--font-sm)}.menu-modal-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}@media (max-width: 480px){.menu-modal-select{flex-direction:column;align-items:stretch;gap:var(--space-xs)}.menu-modal-select>span{flex:0 0 auto;overflow:visible;white-space:normal;letter-spacing:.08em;color:var(--ink-mute, var(--color-text-muted))}.menu-modal-select select,.menu-modal-select input{width:100%}}.menu-icon-btn{background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);padding:var(--space-sm);font-size:var(--font-md);cursor:pointer;flex-shrink:0;min-width:36px}.menu-icon-btn:hover{background:var(--color-card-hover)}.menu-icon-btn .icon{display:block;vertical-align:middle;width:18px;height:18px;color:currentColor}.menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px}.menu-icon-btn{position:relative}.menu-icon-btn.has-unread:after{content:"";position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--color-wolf);box-shadow:0 0 0 2px var(--color-bg)}.menu-icon-btn[data-tooltip]:before,.collection-card[data-tooltip]:before{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(-2px);white-space:nowrap;background:var(--color-bg-raised);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:4px 8px;font-size:var(--font-xs);font-weight:var(--font-meta-weight);box-shadow:var(--elevation-2);pointer-events:none;opacity:0;transition:opacity var(--motion-fast),transform var(--motion-fast);z-index:var(--z-overlay)}@media (hover: hover){.menu-icon-btn[data-tooltip]:hover:before,.collection-card[data-tooltip]:hover:before{transition-delay:.35s;opacity:1;transform:translate(-50%) translateY(0)}}.menu-icon-btn[data-tooltip].show-tooltip:before,.collection-card[data-tooltip].show-tooltip:before{opacity:1;transform:translate(-50%) translateY(0)}.menu-shell.rail-expanded .menu-rail-btn[data-tooltip]:before{content:none}.menu-icon-rail .menu-rail-btn[data-tooltip]:before,.menu-icon-rail .menu-rail-btn[data-tooltip].show-tooltip:before{content:none}.rail-popover{position:fixed;z-index:calc(var(--z-modal, 1000) + 50);padding:5px 10px;background:var(--surface-2, var(--color-bg-raised));color:var(--ink, var(--color-text));border:1px solid var(--line-2, var(--color-border-strong));border-left:2px solid var(--gold, var(--color-accent));border-radius:var(--radius-sm);font-size:var(--font-xs);font-family:var(--font-mono, ui-monospace);white-space:nowrap;box-shadow:0 4px 14px #00000080;pointer-events:none;opacity:0;transform:translateY(-50%) translate(-4px);transition:opacity var(--motion-fast, .15s) ease,transform var(--motion-fast, .15s) ease}.rail-popover.is-visible{opacity:1;transform:translateY(-50%) translate(0)}.menu-global-chat-section{margin-top:var(--space-md)}.global-chat{display:flex;flex-direction:column;height:240px;background:var(--bg-elev, var(--color-bg-raised));border:1px solid var(--line, var(--color-border));border-radius:var(--r-md, var(--radius-md));overflow:hidden}.global-chat-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--line, var(--color-border));display:flex;align-items:center;gap:var(--space-xs)}.global-chat-dot{width:5px;height:5px;border-radius:50%;background:var(--blood-glow, var(--color-wolf));box-shadow:0 0 6px var(--blood-glow, var(--color-wolf));flex-shrink:0}.global-chat-title{font-family:var(--font-mono, ui-monospace);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute, var(--color-text-muted));flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-chat-count{font-family:var(--font-mono, ui-monospace);font-size:10px;color:var(--gold-soft, var(--color-text-muted));flex-shrink:0}.global-chat-name{font-weight:600;color:var(--ink-2, var(--color-text));margin-right:2px}.global-chat-name.is-me{color:var(--gold, var(--color-accent))}.global-chat-name.is-system{color:var(--blood-glow, var(--color-wolf))}.global-chat-line.is-system{font-style:italic;opacity:.85}.global-chat-body{color:var(--color-text, var(--ink))}.global-chat-log{flex:1;overflow-y:auto;padding:var(--space-sm) var(--space-md);font-size:var(--font-sm);color:var(--color-text);scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--gold, #C9A961) 75%,transparent) transparent}.global-chat-log::-webkit-scrollbar,.settings-scroll::-webkit-scrollbar,.daily-scroll::-webkit-scrollbar{width:9px;height:9px}.global-chat-log::-webkit-scrollbar-track,.settings-scroll::-webkit-scrollbar-track,.daily-scroll::-webkit-scrollbar-track{background:transparent}.global-chat-log::-webkit-scrollbar-thumb,.settings-scroll::-webkit-scrollbar-thumb,.daily-scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg,color-mix(in srgb,var(--gold-glow, #E8C879) 60%,transparent),color-mix(in srgb,var(--gold, #C9A961) 70%,transparent));border:2px solid transparent;background-clip:padding-box;border-radius:999px}.global-chat-log::-webkit-scrollbar-thumb:hover,.settings-scroll::-webkit-scrollbar-thumb:hover,.daily-scroll::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--gold-glow, #E8C879),var(--gold, #C9A961));border-width:1px}.global-chat-line{padding:2px 0;word-break:break-word}.global-chat-input-row{border-top:1px solid var(--line, var(--color-border));display:flex;align-items:center}.global-chat-input{flex:1;min-width:0;padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--color-text);font-size:var(--font-sm);outline:none}.global-chat-send{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--gold, var(--color-accent));cursor:pointer;transition:color var(--motion-fast),transform var(--motion-fast)}.global-chat-send:hover{color:var(--gold-glow, var(--color-accent));transform:translate(1px)}.global-chat-send:active{transform:scale(.92)}.ann-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.ann-dialog{width:100%;max-width:480px;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.ann-dialog h2{color:var(--color-accent)}.ann-body{white-space:pre-wrap;color:var(--color-text)}.ann-ts{font-size:var(--font-xs);color:var(--color-text-muted);font-family:var(--font-mono)}.payments-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.payments-dialog{width:100%;max-width:480px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);overflow:hidden}.payments-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-xs)}.payment-card{padding:var(--space-sm) var(--space-md);background:var(--color-card);border-left:3px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-sm)}.payment-card[data-status=succeeded]{border-left-color:var(--color-success)}.payment-card[data-status=refunded]{border-left-color:var(--color-wolf)}.payment-card[data-status=pending]{border-left-color:var(--color-warn)}.payment-head{display:flex;justify-content:space-between;font-weight:600}.payment-meta{color:var(--color-text-muted);font-size:var(--font-xs)}.payment-ref{color:var(--color-text-faint);font-family:var(--font-mono);font-size:var(--font-xs)}.pass-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.pass-dialog{width:100%;max-width:480px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);overflow:hidden}.pass-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.pass-progress{padding:var(--space-md);background:var(--color-card);border-radius:var(--radius-md);text-align:center}.pass-tier{font-size:var(--font-lg)}.pass-xp{color:var(--color-text-muted);font-size:var(--font-sm)}.pass-bar{margin:var(--space-sm) 0;height:8px;background:var(--color-bg);border-radius:4px;overflow:hidden}.pass-bar-fill{height:100%;background:var(--color-accent);transition:width .3s ease}.pass-premium{color:var(--color-accent);font-weight:700}.pass-free{color:var(--color-text-muted)}.pass-reward-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-card);border-radius:var(--radius-sm);font-size:var(--font-sm)}.pass-reward-card[data-track=premium]{border-left:2px solid var(--color-accent)}.pass-reward-tier{font-weight:700;min-width:32px}.pass-reward-track{color:var(--color-text-muted);min-width:60px}.pass-reward-id{flex:1;font-family:var(--font-mono);font-size:var(--font-xs)}.pass-reward-claimed{color:var(--color-success);font-size:var(--font-lg)}.tournament-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.tournament-dialog{width:100%;max-width:720px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);overflow:hidden}.tournament-bracket{flex:1;overflow:auto;padding:var(--space-sm)}.tournament-bracket-svg{width:100%;height:auto;font-family:var(--font-family);font-size:12px}.tournament-winner{text-align:center;padding:var(--space-sm);font-size:var(--font-xl);color:var(--color-accent);font-weight:700}.titles-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.titles-dialog{width:100%;max-width:360px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);overflow:hidden}.titles-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.title-row{text-align:left;padding:var(--space-sm) var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:inherit;cursor:pointer}.title-row:hover:not(:disabled){background:var(--color-card-hover)}.title-row.locked{opacity:.4;cursor:not-allowed}.title-row.active{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.skins-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.skins-dialog{width:100%;max-width:560px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.skins-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.skins-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-sm)}.skin-card{display:flex;flex-direction:column;gap:4px;padding:var(--space-sm);background:var(--color-card);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center}.skin-card.locked{opacity:.4;cursor:not-allowed}.skin-card.active{box-shadow:0 0 0 2px var(--color-accent)}.skin-swatch{width:100%;height:40px;border-radius:var(--radius-sm)}.skin-name{font-weight:600}.skin-hint{font-size:var(--font-xs);color:var(--color-text-muted)}.dm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.dm-dialog{width:100%;max-width:480px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);overflow:hidden}.dm-dialog h2{font-size:var(--font-lg);color:var(--color-accent)}.dm-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.dm-conv-card{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm) var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;font-family:inherit;color:var(--color-text)}.dm-conv-card:hover{background:var(--color-card-hover)}.dm-conv-name{font-weight:600}.dm-conv-last{font-size:var(--font-xs);color:var(--color-text-muted)}.dm-log{flex:1;min-height:200px;overflow-y:auto;padding:var(--space-sm);background:var(--color-bg);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:4px}.dm-line{max-width:80%;padding:6px 10px;border-radius:var(--radius-md);font-size:var(--font-sm);word-break:break-word}.dm-line.self{align-self:flex-end;background:var(--color-accent-soft);color:var(--color-accent)}.dm-line.other{align-self:flex-start;background:var(--color-card)}.dm-input-row{display:flex;gap:var(--space-sm)}.dm-input{flex:1;padding:var(--space-sm);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text)}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.admin-dialog{width:100%;max-width:720px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.admin-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.admin-filter{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.admin-filter-chip{padding:var(--space-xs) var(--space-md);background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);font-size:var(--font-sm);color:var(--color-text-muted);cursor:pointer}.admin-filter-chip.active{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.admin-select{min-height:34px;padding:var(--space-xs) var(--space-sm);background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font:inherit;font-size:var(--font-sm)}.admin-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.admin-list h3{margin:var(--space-sm) 0 0;color:var(--color-text-muted);font-size:var(--font-md)}.admin-empty{min-height:96px;padding:var(--space-lg);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--color-text-muted);background:transparent;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.admin-error{color:var(--color-danger);background:var(--color-wolf-soft);border-color:var(--color-danger)}.admin-report-card{padding:var(--space-sm) var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-xs)}.admin-report-head{display:flex;justify-content:space-between;align-items:center;font-weight:600}.admin-report-ts{font-family:var(--font-mono);font-size:var(--font-xs);color:var(--color-text-muted)}.admin-report-detail{font-size:var(--font-sm);color:var(--color-text-muted)}.admin-note-input{width:100%;min-height:52px;padding:var(--space-xs) var(--space-sm);resize:vertical;background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font:inherit;font-size:var(--font-sm)}.admin-report-actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.admin-moderation-timeline{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-moderation-quick-filter{padding:var(--space-xs);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-empty-state{padding:var(--space-lg);color:var(--color-text-muted);text-align:center;background:var(--color-card);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.admin-moderation-timeline-title{color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700}.admin-moderation-timeline-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.admin-moderation-timeline-head .menu-action-btn{padding:4px 8px;font-size:var(--font-xs)}.admin-moderation-timeline-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:var(--space-xs);align-items:center;font-size:var(--font-xs)}.admin-moderation-dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent)}.admin-moderation-timeline-item.status-resolved .admin-moderation-dot{background:var(--color-success)}.admin-moderation-timeline-item.status-dismissed .admin-moderation-dot{background:var(--color-text-faint)}.admin-moderation-body{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.admin-moderation-time{color:var(--color-text-muted);font-family:var(--font-mono)}.admin-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-sm)}.admin-season-meta{font-family:var(--font-mono);font-size:var(--font-sm);color:var(--color-text-muted);padding:var(--space-sm);background:var(--color-card);border-radius:var(--radius-md)}.admin-season-start{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.admin-season-start input{flex:1;padding:var(--space-xs) var(--space-sm);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text)}.admin-flag-form{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-card);border-radius:var(--radius-md);margin-bottom:var(--space-sm)}.admin-flag-form input{flex:1;min-width:100px;padding:var(--space-xs) var(--space-sm);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text)}.admin-flag-list{display:flex;flex-direction:column;gap:var(--space-xs)}.admin-flag-card{padding:var(--space-sm);background:var(--color-card);border-left:3px solid var(--color-border);border-radius:var(--radius-sm)}.admin-flag-head{display:flex;justify-content:space-between;align-items:center}.admin-flag-key{font-family:var(--font-mono);font-weight:600}.admin-flag-state.on{color:var(--color-success)}.admin-flag-state.off{color:var(--color-text-faint)}.admin-flag-meta{font-size:var(--font-xs);color:var(--color-text-muted);margin-top:4px}.admin-flag-variants{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.admin-flag-variant-chip{padding:2px 6px;background:var(--color-bg-raised);border-radius:var(--radius-sm);font-size:var(--font-xs);font-family:var(--font-mono)}.admin-flag-segments{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.admin-flag-segment-chip{padding:2px 6px;background:var(--color-accent-soft);border-radius:var(--radius-sm);font-size:var(--font-xs);font-family:var(--font-mono)}.admin-flag-segments-quick{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;font-size:var(--font-xs)}.admin-flag-segment-chip-quick{cursor:pointer;border:1px solid var(--color-border);background:transparent;color:var(--color-text);font-family:var(--font-mono);padding:2px 8px;border-radius:var(--radius-sm)}.admin-flag-segment-chip-quick:hover{background:var(--color-accent-soft)}.admin-winrate-wrap{overflow-x:auto;margin-top:var(--space-sm);padding:var(--space-xs);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-winrate-table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.admin-winrate-table th,.admin-winrate-table td{padding:var(--space-xs) var(--space-sm);text-align:left;border-bottom:1px solid var(--color-border)}.admin-winrate-table th{background:var(--color-card);font-weight:600;color:var(--color-text-muted)}.admin-winrate-table .wr-high{color:var(--color-success);font-weight:600}.admin-winrate-table .wr-low{color:var(--color-wolf);font-weight:600}.anticheat-row.priority-high td:first-child{border-left:3px solid var(--color-wolf)}.anticheat-row.priority-medium td:first-child{border-left:3px solid var(--color-accent)}.anticheat-row.priority-low td:first-child{border-left:3px solid var(--color-text-faint);opacity:.85}.admin-anticheat-chart{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.admin-anticheat-chart-title{color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700}.admin-anticheat-bar-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,2fr) 32px;gap:var(--space-sm);align-items:center;font-size:var(--font-xs)}.admin-anticheat-bar-label{min-width:0;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-anticheat-bar-track{height:8px;overflow:hidden;background:var(--color-bg-raised);border-radius:var(--radius-pill)}.admin-anticheat-bar-fill{display:block;height:100%;background:var(--color-accent)}.admin-anticheat-bar-count{text-align:right;color:var(--color-accent);font-family:var(--font-mono);font-weight:700}.admin-broadcast-form{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--color-card);border-radius:var(--radius-md)}.admin-broadcast-form input{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text)}.admin-broadcast-result{font-family:var(--font-mono);font-size:var(--font-sm);padding:var(--space-sm);background:var(--color-bg-raised);border-radius:var(--radius-sm);color:var(--color-text-muted);word-break:break-word}.guild-league-list{display:flex;flex-direction:column;gap:var(--space-xs)}.guild-league-card{padding:var(--space-sm);background:var(--color-card);border-left:3px solid var(--color-border);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--space-xs)}.guild-league-card.status-registering{border-left-color:var(--color-success)}.guild-league-card.status-group_stage{border-left-color:var(--color-accent)}.guild-league-card.status-knockout{border-left-color:var(--color-warn)}.guild-league-card.status-ended{border-left-color:var(--color-text-faint)}.guild-league-head{display:flex;justify-content:space-between;align-items:center}.guild-league-name{font-weight:600}.guild-league-status{font-size:var(--font-xs);padding:2px 6px;background:var(--color-bg-raised);border-radius:var(--radius-sm)}.guild-league-meta{font-size:var(--font-xs);color:var(--color-text-muted)}.guild-league-detail{margin-top:var(--space-xs);padding:var(--space-sm);background:var(--color-bg-raised);border-radius:var(--radius-sm)}.guild-league-detail h4{margin:var(--space-xs) 0 4px;font-size:var(--font-sm);color:var(--color-text-muted)}.guild-league-matches{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.guild-league-matches li{font-family:var(--font-mono);font-size:var(--font-xs);padding:4px}.guild-league-matches li.league-match-pending{color:var(--color-warn)}.guild-league-live{margin-top:var(--space-xs);font-size:var(--font-xs);color:var(--color-text-muted);text-align:right;animation:pulse-fade 2s ease-in-out infinite}@keyframes pulse-fade{0%,to{opacity:.5}50%{opacity:1}}.report-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.report-dialog{width:100%;max-width:420px;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.report-dialog h2{font-size:var(--font-xl);color:var(--color-wolf)}.report-subject{font-size:var(--font-sm);color:var(--color-text-muted)}.report-reasons{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.report-reason-chip{background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);color:var(--color-text-muted);cursor:pointer}.report-reason-chip:hover{background:var(--color-card-hover)}.report-reason-chip.selected{background:var(--color-wolf-soft);color:var(--color-wolf);border-color:var(--color-wolf)}.report-detail{width:100%;padding:var(--space-sm);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:inherit;resize:vertical;min-height:80px}.daily-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.daily-dialog{width:100%;max-width:360px;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:0;display:flex;flex-direction:column;max-height:85vh;overflow:hidden}.daily-dialog>.daily-header,.daily-dialog>.daily-footer{flex:0 0 auto}.daily-header{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--bg-deep, var(--color-bg));border-bottom:1px solid var(--line-2, var(--color-border-strong))}.daily-header-title{margin:0;flex:1;min-width:0;font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-lg);font-weight:700;letter-spacing:.08em;color:var(--gold, var(--color-accent))}.daily-close{width:32px;height:32px;flex-shrink:0;border-radius:8px;border:1px solid var(--line, var(--color-border));background:transparent;color:var(--ink-2, var(--color-text-muted));cursor:pointer;display:grid;place-items:center;transition:color var(--motion-fast, .15s),border-color var(--motion-fast, .15s)}.daily-close:hover{color:var(--ink, var(--color-text));border-color:var(--gold, var(--color-accent))}.daily-footer{padding:12px 18px 16px;background:var(--bg-deep, var(--color-bg));border-top:1px solid var(--line-2, var(--color-border-strong))}.daily-claim-btn{width:100%}.daily-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:var(--space-md) var(--space-sm) var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--gold, #C9A961) 75%,transparent) transparent}.daily-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.daily-body{display:flex;flex-direction:column;gap:var(--space-xs);text-align:center;padding:var(--space-md);background:var(--color-card);border-radius:var(--radius-md)}.daily-streak{font-size:var(--font-xl);font-weight:700;color:var(--color-wolf)}.daily-total{font-size:var(--font-sm);color:var(--color-text-muted)}.daily-unauth{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) 0}.daily-unauth-title{font-size:var(--font-lg);font-weight:700;color:var(--gold, var(--color-accent))}.daily-unauth-hint{font-size:var(--font-sm);color:var(--color-text, var(--ink));line-height:var(--line-normal)}.inline-unauth{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);padding:var(--space-sm) 0}.inline-unauth-title{font-family:var(--font-mono, ui-monospace);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-soft, var(--color-text-muted))}.inline-unauth-cta{font-size:var(--font-sm);color:var(--color-text-muted, var(--ink-mute));font-style:italic;line-height:var(--line-normal)}.inline-unauth-cta:before{content:"› ";color:var(--gold, var(--color-accent));font-style:normal;margin-right:2px}.daily-challenges{display:flex;flex-direction:column;gap:var(--space-xs)}.daily-challenges h3{font-size:var(--font-md);color:var(--color-text-muted)}.daily-challenge-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-sm)}.daily-challenge-row.claimed{opacity:.65}.daily-challenge-progress{font-family:var(--font-mono);color:var(--color-accent)}.daily-challenge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-sm);margin-bottom:var(--space-sm)}.daily-challenge-card{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .15s}.daily-challenge-card.can-claim{border-color:var(--color-accent, #4af)}.daily-challenge-card.claimed{opacity:.6}.daily-challenge-card .daily-challenge-label{font-weight:600;font-size:var(--font-sm)}.daily-challenge-bar-wrap{height:8px;background:var(--color-border);border-radius:4px;overflow:hidden}.daily-challenge-bar{height:100%;background:linear-gradient(90deg,var(--color-accent, #4af),#6bf);transition:width .3s}.daily-challenge-bar.complete{background:linear-gradient(90deg,var(--color-success, #4f4),#6f6)}.daily-challenge-meta{display:flex;justify-content:space-between;font-size:var(--font-xs)}.daily-challenge-reward{color:var(--color-success, #4f4);font-weight:600}.daily-milestone-list{display:flex;flex-direction:column;gap:4px;margin-top:var(--space-xs)}.daily-milestone-item{padding:6px 10px;background:var(--color-bg-raised);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--color-text-muted)}.daily-milestone-item.achieved{background:var(--color-card);color:var(--color-success, #4f4);font-weight:600}.settings-overlay,.ranking-overlay,.guild-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.guild-dialog{width:100%;max-width:640px;max-height:84vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);box-shadow:var(--shadow-lg);overflow-y:auto}.guild-create-form{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:linear-gradient(180deg,var(--surface-2, #2C251F),var(--surface, #1A1410));border:1px solid var(--line-2, var(--color-border-strong));border-radius:var(--radius-md)}.guild-create-title{font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-md);font-weight:700;color:var(--gold, var(--color-accent));letter-spacing:.04em}.guild-create-form input{width:100%;box-sizing:border-box;padding:var(--space-sm);background:var(--bg-deep, var(--color-bg-raised));border:1px solid var(--line-2, var(--color-border-strong));border-radius:var(--radius-md);color:var(--ink, var(--color-text));font-size:var(--font-sm)}.guild-create-form input:focus-visible{outline:none;border-color:var(--gold, #C9A961);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold, #C9A961) 45%,transparent)}.guild-create-row{display:flex;gap:var(--space-sm);align-items:stretch}.guild-create-tag{flex:0 0 96px;text-transform:uppercase;text-align:center;letter-spacing:.12em}.guild-create-btn{flex:1 1 auto;min-height:0;padding:var(--space-sm) var(--space-lg);font-size:var(--font-sm);white-space:nowrap}.guild-create-hint{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);letter-spacing:.04em;color:var(--ink-faint, var(--color-text-faint));padding:0 var(--space-xs)}.guild-create-err{font-size:var(--font-sm);color:var(--blood-glow, var(--color-wolf));background:color-mix(in srgb,var(--blood, #b0211e) 14%,transparent);border:1px solid color-mix(in srgb,var(--blood, #b0211e) 45%,transparent);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm)}.guild-create-err[hidden]{display:none}.settings-dialog,.ranking-dialog{width:100%;max-width:520px;max-height:80vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);box-shadow:var(--shadow-lg);overflow:hidden}.settings-dialog{max-width:560px;padding:0;gap:0;background:linear-gradient(180deg,var(--bg-elev, var(--color-bg-raised)),var(--surface, var(--color-bg)));border:1px solid var(--line-2, var(--color-border-strong));border-radius:var(--r-lg, var(--radius-lg));box-shadow:var(--shadow-3, var(--shadow-lg))}.settings-layout{flex:1;min-height:0;display:flex;gap:var(--space-md);padding:var(--space-md)}.settings-nav{flex:0 0 168px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding-right:var(--space-sm);border-right:1px solid var(--line-2, var(--color-border-strong))}.settings-nav-btn{text-align:left;padding:10px 12px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--ink-mute, var(--color-text-muted));font-family:inherit;font-size:var(--font-sm);cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast)}.settings-nav-btn:hover{background:linear-gradient(180deg,var(--surface-2, #2C251F),var(--surface, #1A1410));color:var(--ink, var(--color-text))}.settings-nav-btn[aria-current=true]{background:linear-gradient(180deg,var(--surface-2, #2C251F),var(--surface, #1A1410));border-color:var(--line-2, var(--color-border-strong));color:var(--gold, var(--color-accent));box-shadow:inset 3px 0 0 var(--gold, #C9A961)}.settings-group{display:none;flex-direction:column;gap:var(--space-md)}.settings-dialog[data-group=general] .settings-group[data-group=general],.settings-dialog[data-group=audio] .settings-group[data-group=audio],.settings-dialog[data-group=notif] .settings-group[data-group=notif],.settings-dialog[data-group=notices] .settings-group[data-group=notices],.settings-dialog[data-group=account] .settings-group[data-group=account]{display:flex}.settings-back{display:none;align-self:flex-start;margin-bottom:var(--space-sm);padding:6px 10px;background:transparent;border:1px solid var(--line-2, var(--color-border-strong));border-radius:var(--radius-md);color:var(--gold-soft, var(--color-accent));font-family:inherit;font-size:var(--font-sm);cursor:pointer}@media (max-width: 1023px){.settings-layout{flex-direction:column;gap:0}.settings-nav{flex:1;border-right:none;padding-right:0}.settings-dialog[data-view=nav] .settings-scroll,.settings-dialog[data-view=group] .settings-nav{display:none}.settings-dialog[data-view=group] .settings-back{display:block}}@media (min-width: 1024px){.settings-dialog .settings-nav,.settings-dialog .settings-scroll{display:flex}.settings-back{display:none!important}}.settings-dialog>h2,.settings-dialog>.settings-header{flex:0 0 auto}.settings-header{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--bg-deep, var(--color-bg));border-bottom:1px solid var(--line-2, var(--color-border-strong))}.settings-header-icon{width:32px;height:32px;flex-shrink:0;border-radius:8px;border:1px solid var(--line-2, var(--color-border-strong));background:var(--surface, var(--color-bg-raised));display:grid;place-items:center;color:var(--gold, var(--color-accent))}.settings-close{width:32px;height:32px;flex-shrink:0;border-radius:8px;border:1px solid var(--line, var(--color-border));background:transparent;color:var(--ink-2, var(--color-text-muted));cursor:pointer;display:grid;place-items:center;transition:color var(--motion-fast, .15s),border-color var(--motion-fast, .15s)}.settings-close:hover{color:var(--ink, var(--color-text));border-color:var(--gold, var(--color-accent))}.settings-header-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.settings-dialog .settings-header-title{font-family:var(--font-display, "Cinzel", serif);font-size:16px;font-weight:700;color:var(--ink, var(--color-text));line-height:1.15;margin:0}.settings-header-sub{font-family:var(--font-mono, ui-monospace);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft, var(--color-text-muted))}.settings-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:var(--space-md);padding:3px 6px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--gold, #C9A961) 75%,transparent) transparent}.settings-scroll .menu-action-btn:hover{transform:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold, #C9A961) 55%,transparent)}.settings-scroll .menu-action-btn:active{transform:translateY(1px) scale(.99)}.settings-notices-list{display:flex;flex-direction:column;gap:var(--space-sm)}.settings-notice-card{padding:var(--space-md);background:linear-gradient(180deg,var(--surface-2, #2C251F),var(--surface, #1A1410));border:1px solid var(--line-2, var(--color-border-strong));border-radius:var(--radius-md);display:flex;flex-direction:column;gap:4px}.settings-notice-title{font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-md);font-weight:700;color:var(--gold, var(--color-accent))}.settings-notice-body{font-size:var(--font-sm);color:var(--ink, var(--color-text));white-space:pre-wrap;word-break:break-word}.settings-notice-date{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--ink-faint, var(--color-text-faint))}.settings-notices-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-2xl) var(--space-md);color:var(--ink-mute, var(--color-text-muted));font-size:var(--font-sm);text-align:center}.settings-notices-empty svg{color:var(--gold-soft, var(--color-accent));opacity:.7}.settings-legal-links{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--line, var(--color-border))}.settings-legal-link{font-size:var(--font-xs);font-family:var(--font-mono, ui-monospace);color:var(--ink-faint, var(--color-text-faint));text-decoration:underline;text-underline-offset:2px;letter-spacing:.02em}.settings-legal-link:hover{color:var(--gold, var(--color-accent))}.settings-dialog h2,.ranking-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.ranking-tabs{display:flex;gap:var(--space-xs)}.ranking-tab{flex:1;padding:var(--space-xs) var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-family:inherit;font-size:var(--font-sm);cursor:pointer}.ranking-tab:hover{background:var(--color-card-hover)}.ranking-tab.active{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.ranking-season-meta{font-size:var(--font-xs);color:var(--color-text-muted);font-family:var(--font-mono)}.settings-dialog h3{font-size:var(--font-md);color:var(--color-text-muted);margin-top:var(--space-sm)}.settings-row{display:flex;align-items:center;gap:var(--space-md)}.settings-row label{flex:0 0 80px;color:var(--color-text-muted)}.settings-row input[type=range]{flex:1}.settings-row{flex-wrap:wrap}.settings-row .tw-segmented{display:flex;width:100%;overflow:visible}.settings-row .tw-segmented-btn{flex:1;padding:8px 6px;font-size:12px;white-space:normal;word-break:keep-all;text-align:center;line-height:1.2;letter-spacing:.08em}.settings-scroll input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:999px;background:linear-gradient(180deg,var(--bg-deep, #0A0605),var(--surface-2, #2C251F));border:1px solid var(--line-2, var(--color-border-strong));outline:none;cursor:pointer}.settings-scroll input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--blood-glow, #E84B4B),var(--blood, #B0211E));border:1px solid var(--bg-deep, #0A0605);box-shadow:0 0 6px color-mix(in srgb,var(--blood-glow, #E84B4B) 40%,transparent),inset 0 1px #ffffff4d;cursor:pointer}.settings-scroll input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--blood-glow, #E84B4B),var(--blood, #B0211E));border:1px solid var(--bg-deep, #0A0605);box-shadow:0 0 6px color-mix(in srgb,var(--blood-glow, #E84B4B) 40%,transparent);cursor:pointer}.settings-scroll input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:linear-gradient(180deg,var(--bg-deep, #0A0605),var(--surface-2, #2C251F));border:1px solid var(--line-2, var(--color-border-strong))}.settings-scroll input[type=range]:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--blood-glow, #E84B4B) 45%,transparent)}.settings-dialog select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:7px 30px 7px 11px;font-family:inherit;font-size:var(--font-sm);color:var(--ink, var(--color-text));background-color:var(--surface-2, #2C251F);background-image:linear-gradient(180deg,color-mix(in srgb,var(--surface-2, #2C251F) 70%,#000 0%),var(--surface-2, #2C251F)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23C9A961' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat,no-repeat;background-position:center,right 11px center;background-size:auto,12px 12px;border:1px solid var(--line-2, var(--color-border-strong));border-radius:var(--radius-md);cursor:pointer;outline:none}.settings-dialog select:hover{border-color:color-mix(in srgb,var(--gold, #C9A961) 60%,var(--line-2, #555))}.settings-dialog select:focus-visible{border-color:var(--gold, #C9A961);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold, #C9A961) 45%,transparent)}.settings-dialog select option{background:var(--surface-2, #2C251F);color:var(--ink, var(--color-text))}[dir=rtl] .settings-dialog select{padding:7px 11px 7px 30px;background-position:center,left 11px center}.settings-vol-pct{flex:0 0 38px;text-align:right;font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute))}.settings-vol-row.muted .settings-vol-pct,.settings-vol-row.muted input[type=range]{opacity:.4}.settings-vol-row .tw-toggle{flex:0 0 auto}.settings-vol-row{flex-wrap:wrap}.settings-vol-preview{flex:0 0 auto;font-size:10px;padding:2px var(--space-xs);letter-spacing:0;min-height:0}.settings-checkbox{cursor:pointer}.settings-checkbox input{accent-color:var(--color-accent)}.voice-stats-overlay{position:fixed;bottom:80px;right:12px;z-index:9999;background:#000000d9;color:#fff;font-family:var(--font-mono, monospace);font-size:11px;padding:8px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.2);pointer-events:none;max-width:280px}.voice-stats-head{font-weight:600;margin-bottom:4px;color:#ffd400}.voice-stats-body{display:flex;flex-direction:column;gap:2px}.voice-stats-row{white-space:nowrap;display:flex;align-items:center;gap:4px}.voice-stats-row.ok{color:#4f4}.voice-stats-row.warn{color:#fa0}.voice-stats-row.bad{color:#f44}.voice-stats-quality-chip{display:inline-block;padding:0 4px;border-radius:3px;font-size:11px;font-weight:700;line-height:14px;background:#ffffff14}.voice-stats-quality-chip.quality-high{background:#50dc5033}.voice-stats-quality-chip.quality-medium{background:#dcc83c33}.voice-stats-quality-chip.quality-low{background:#dc8c3c33}.voice-stats-text{flex:1}.settings-push-denied-hint{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-warn-bg, rgba(255, 170, 0, .1));border-left:3px solid var(--color-warn, #fa0);border-radius:var(--radius-sm);margin:var(--space-xs) 0}.settings-push-denied-text{font-size:var(--font-sm);color:var(--color-text)}.settings-push-topics{margin-left:var(--space-md);padding:var(--space-xs) var(--space-sm);border-left:2px solid var(--color-border);display:flex;flex-direction:column;gap:2px}.settings-push-topics h4{margin:0 0 4px;font-size:var(--font-xs);color:var(--color-text-muted);text-transform:uppercase}.settings-mute-list{display:flex;flex-wrap:wrap;gap:4px;min-height:32px}.settings-mute-empty{font-size:var(--font-sm);color:var(--color-text-faint);font-style:italic}.settings-mute-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-sm);color:var(--color-text-muted)}.settings-mute-x{width:18px;height:18px;border-radius:50%;background:transparent;color:var(--color-wolf);border:none;font-weight:700;cursor:pointer;line-height:1}.settings-mute-x:hover{background:var(--color-wolf-soft)}.settings-mute-add{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}.settings-mute-add input{flex:1 1 200px;min-width:0;padding:var(--space-xs) var(--space-sm);background:var(--surface-2, var(--color-bg-raised));border:1px solid var(--line-2, var(--color-border-strong));border-radius:var(--radius-md);color:var(--ink, var(--color-text));font-size:var(--font-sm)}.settings-mute-add input:focus-visible{outline:none;border-color:var(--gold, #C9A961);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold, #C9A961) 45%,transparent)}.settings-mute-add .menu-action-btn{flex:0 0 auto;min-height:0;padding:var(--space-xs) var(--space-lg);font-size:var(--font-sm);white-space:nowrap}@media (max-width: 480px){.settings-mute-add input,.settings-mute-add .menu-action-btn{flex:1 1 100%;min-height:44px}}.ranking-list{flex:1;overflow-y:auto;font-size:var(--font-sm);color:var(--color-text-muted)}.ranking-table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.ranking-table th,.ranking-table td{padding:var(--space-xs) var(--space-sm);text-align:left;border-bottom:1px solid var(--color-border)}.ranking-table th{color:var(--color-accent);font-weight:600}.ranking-table tr:hover td{background:var(--color-card)}.friends-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.friends-dialog{width:100%;max-width:520px;max-height:80vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.friends-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.friends-tabs{display:flex;gap:var(--space-xs);border-bottom:1px solid var(--color-border)}.friends-tab{background:transparent;border:none;padding:var(--space-sm) var(--space-md);color:var(--color-text-muted);font-size:var(--font-sm);border-bottom:2px solid transparent;cursor:pointer}.friends-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.friends-add-row{display:flex;gap:var(--space-sm)}.friends-add-row input{flex:1;min-width:0;padding:var(--space-sm) var(--space-md);background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text)}.friends-add-row .menu-action-btn{flex:0 0 auto;min-height:0;padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);white-space:nowrap}@media (max-width: 480px){.friends-add-row{flex-direction:column}.friends-add-row input,.friends-add-row .menu-action-btn{width:100%;min-height:44px}.friends-add-row .menu-action-btn{padding:var(--space-sm) var(--space-md)}}.friends-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-xs)}.friend-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.friend-name{color:var(--color-text);font-weight:600}.friend-elo{font-size:var(--font-sm);color:var(--color-text-muted)}.replay-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.replay-dialog{width:100%;max-width:720px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.replay-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.replay-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-xs)}.replay-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,auto) minmax(130px,auto);gap:var(--space-xs)}.replay-filter-input,.replay-filter-select{min-width:0;padding:6px 8px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font:inherit;font-size:var(--font-xs)}.replay-preview-card{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.replay-preview-meta{color:var(--color-text);font-size:var(--font-sm)}.replay-preview-summary{color:var(--color-text-muted);font-size:var(--font-xs)}.replay-preview-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.replay-game-card{display:grid;grid-template-columns:auto minmax(72px,auto) minmax(0,1fr);align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--motion-fast)}.replay-game-card:hover{background:var(--color-card-hover)}.replay-game-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.replay-game-code{font-family:var(--font-mono);font-weight:700;color:var(--color-accent);flex-shrink:0;min-width:80px}.replay-game-meta{min-width:0;font-size:var(--font-sm);color:var(--color-text-muted)}.replay-result-badge{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:3px 8px;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-raised);color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700;white-space:nowrap}.replay-result-badge.result-village{color:var(--color-success);border-color:var(--color-success);background:var(--color-village-soft)}.replay-result-badge.result-wolf{color:var(--color-wolf);border-color:var(--color-wolf);background:var(--color-wolf-soft)}.replay-result-badge.result-draw{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-soft)}.replay-ctrl{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.replay-ctrl .menu-action-btn{min-height:34px}.replay-seek-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0}.replay-seek-bar{flex:1;height:6px;cursor:pointer;accent-color:var(--color-success)}.replay-pos-label{font-family:var(--font-mono);font-size:var(--font-xs);color:var(--color-text-muted);min-width:70px;text-align:right}.replay-tags{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;padding:var(--space-xs);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.replay-tags-label{color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700}.replay-tag-chip,.replay-feature-btn,.replay-bookmark-feature{padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-bg-raised);color:var(--color-text-muted);font-size:var(--font-xs)}.replay-tag-chip.active{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent)}.replay-highlights{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-xs);max-height:180px;overflow-y:auto;padding:var(--space-xs);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.replay-highlights-label{color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700}.replay-highlight-mode-toggle{font-size:var(--font-xs);padding:2px 8px;background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;margin-left:auto}.replay-highlight-mode-toggle:hover{background:var(--color-card)}.replay-highlight-item{display:grid;grid-template-columns:32px 1fr;gap:var(--space-sm);align-items:center;padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-raised);color:var(--color-text-muted);font-size:var(--font-xs);text-align:left}.replay-highlight-item:hover{background:var(--color-card-hover);color:var(--color-text)}.replay-highlight-item.active,.replay-bookmark-row.active .replay-bookmark-seek,.replay-compare-card.active{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent);background:var(--color-accent-soft)}.replay-highlight-order{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--color-accent-soft);color:var(--color-accent);font-family:var(--font-mono);font-weight:700}.replay-highlight-body{min-width:0;display:flex;flex-direction:column;gap:1px}.replay-highlight-text{color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-highlight-meta,.replay-empty-message{color:var(--color-text-muted);font-size:var(--font-xs)}.replay-highlight-row{box-shadow:inset 3px 0 0 var(--color-accent);background:var(--color-accent-soft)}.replay-bookmarks{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xs);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.replay-bookmarks-label{color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700}.replay-bookmark-row{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xs);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.replay-bookmark-main{display:grid;grid-template-columns:minmax(0,1fr) auto 28px;gap:var(--space-xs);align-items:center}.replay-bookmark-tags{display:flex;gap:var(--space-xs);flex-wrap:wrap}.replay-bookmark-seek,.replay-bookmark-remove{min-width:0;padding:5px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-raised);color:var(--color-text);font-size:var(--font-xs)}.replay-bookmark-seek{text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-bookmark-remove{color:var(--color-text-muted)}.replay-bookmark-note{width:100%;min-height:52px;resize:vertical;padding:6px 8px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--font-xs)}.replay-compare{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xs);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.replay-compare-title{color:var(--color-text);font-size:var(--font-sm);font-weight:700}.replay-compare-hint{color:var(--color-text-muted);font-size:var(--font-xs)}.replay-compare-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs)}.replay-compare-select-wrap{min-width:0;display:flex;flex-direction:column;gap:2px;color:var(--color-text-muted);font-size:var(--font-xs)}.replay-compare-select{min-width:0;padding:5px 8px;background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-size:var(--font-xs)}.replay-compare-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs)}.replay-compare-card{min-width:0;display:flex;flex-direction:column;gap:2px;padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-raised);text-align:left;color:var(--color-text)}.replay-compare-card-title,.replay-compare-card-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-compare-card-meta{color:var(--color-accent);font-size:var(--font-xs);font-family:var(--font-mono)}.replay-compare-card-preview{color:var(--color-text-muted);font-size:var(--font-xs)}.replay-timeline-separator{margin:var(--space-xs) 0 2px;padding:3px 8px;border-radius:var(--radius-pill);background:var(--color-bg-raised);color:var(--color-accent);font-size:var(--font-xs);font-weight:700}@media (max-width: 560px){.replay-game-card{grid-template-columns:1fr auto;gap:var(--space-xs)}.replay-result-badge{grid-column:2;grid-row:1 / span 2}.replay-game-code,.replay-game-meta{min-width:0;overflow-wrap:anywhere}.replay-filters{grid-template-columns:1fr}.replay-ctrl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.replay-ctrl .menu-action-btn{min-width:0;padding:var(--space-xs)}.replay-highlights{max-height:220px;padding:var(--space-sm)}.replay-highlight-item{grid-template-columns:28px minmax(0,1fr);align-items:flex-start;gap:var(--space-xs);padding:6px 8px}.replay-highlight-order{width:22px;height:22px;font-size:11px}.replay-highlight-text{white-space:normal;line-height:1.25}.replay-highlight-meta{line-height:1.25;overflow-wrap:anywhere}.replay-bookmark-main{grid-template-columns:minmax(0,1fr) 28px}.replay-bookmark-feature{grid-column:1 / -1}.replay-compare-controls,.replay-compare-cards{grid-template-columns:1fr}.replay-compare-card-title,.replay-compare-card-preview{white-space:normal}}.replay-log{flex:1;overflow-y:auto;padding:var(--space-sm) var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:2px;font-size:var(--font-sm)}.settings-section-header{font-family:var(--font-mono, ui-monospace);font-size:10px;font-weight:600;color:var(--gold-soft, var(--color-text-muted));letter-spacing:.08em;text-transform:uppercase;margin:var(--space-md) 0 var(--space-xs);padding-bottom:var(--space-xs);border-bottom:1px solid var(--line, var(--color-border))}.settings-section-header:first-child{margin-top:0}.settings-payments{display:flex;flex-direction:column;gap:var(--space-xs)}.settings-payments-list{display:flex;flex-direction:column;font-size:var(--font-sm);color:var(--color-text-muted, var(--ink-mute))}.settings-payment-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--line, var(--color-border))}.settings-payment-row:last-child{border-bottom:none}.settings-payment-info{flex:1;min-width:0}.settings-payment-prov{font-size:var(--font-sm);color:var(--color-text, var(--ink))}.settings-payment-date{font-family:var(--font-mono, ui-monospace);font-size:10px;color:var(--color-text-faint, var(--ink-faint));letter-spacing:.05em}.settings-payment-amt{font-family:var(--font-mono, ui-monospace);font-size:var(--font-sm);font-weight:600;color:var(--gold, var(--color-accent));flex-shrink:0}.settings-payments-all{align-self:flex-start;font-size:var(--font-sm)}.settings-account-actions{display:flex;align-items:center;gap:var(--space-sm)}.settings-account-delete{color:var(--blood-glow, var(--color-wolf));border-color:color-mix(in srgb,var(--blood, var(--color-wolf)) 40%,transparent)}.settings-account-version{flex:0 0 auto;align-self:center;font-family:var(--font-mono, ui-monospace);font-size:11px;letter-spacing:.04em;color:var(--ink-mute, var(--color-text-muted))}.settings-info-row{justify-content:space-between}.settings-info-label{color:var(--ink-2, var(--color-text-muted));font-size:var(--font-sm);letter-spacing:.08em}.account-delete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-overlay, 100) + 20);display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:#06050ab3;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.account-delete-dialog{width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);border:1px solid color-mix(in srgb,var(--blood, var(--color-wolf)) 45%,var(--line-2, var(--color-border-strong)));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg, 0 12px 40px rgba(0, 0, 0, .5))}.account-delete-title{margin:0;font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-lg);font-weight:700;color:var(--blood-glow, var(--color-wolf))}.account-delete-body{margin:0;font-size:var(--font-sm);line-height:var(--line-normal);color:var(--color-text, var(--ink));white-space:pre-line}.account-delete-email{font-family:var(--font-mono, ui-monospace);font-size:var(--font-sm);color:var(--gold, var(--color-accent));word-break:break-all}.account-delete-proc{font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute))}.account-delete-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-xs)}.account-delete-cta{flex:1;text-align:center}.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) 0;border-bottom:1px solid var(--line, var(--color-border));cursor:pointer}.settings-toggle-row:last-of-type{border-bottom:0}.settings-toggle-row:hover{background:color-mix(in srgb,var(--gold, var(--color-accent)) 5%,transparent)}.lang-select-overflow{margin-left:var(--space-xs);min-width:160px;width:max-content;max-width:100%}.collection-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.collection-dialog{width:100%;max-width:720px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.collection-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.collection-header{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.collection-header .brand-sigil{flex-shrink:0;color:var(--gold, var(--color-accent))}.collection-header-text{display:flex;flex-direction:column;gap:1px;min-width:0}.collection-header-title{font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-xl);font-weight:700;color:var(--gold, var(--color-accent));line-height:1.1}.collection-header-sub{font-family:var(--font-mono, ui-monospace);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft, var(--color-text-muted))}.collection-grid{flex:1;min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);padding:var(--space-xs);grid-auto-rows:max-content;align-items:start}.collection-card{padding:var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-xs);text-align:center}.collection-card.locked{opacity:.4;filter:grayscale(1)}.active-game-card{margin:0 0 var(--space-md);padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs);border-color:var(--blood-deep, var(--color-wolf))!important;background:radial-gradient(ellipse at 50% 0%,rgba(176,33,30,.18),transparent 70%),linear-gradient(180deg,var(--surface-2, var(--color-card)),var(--surface, var(--color-card)))}.active-game-head{display:flex;align-items:center;gap:var(--space-xs)}.active-game-dot{width:8px;height:8px;border-radius:50%;background:var(--blood-glow, var(--color-wolf));box-shadow:0 0 6px var(--blood-glow, var(--color-wolf));animation:tw-pulse 1.4s ease-in-out infinite;flex-shrink:0}@keyframes tw-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}.active-game-title{font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-md);font-weight:700;color:var(--blood-glow, var(--color-wolf))}.active-game-meta{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute))}.active-game-resume{align-self:stretch;margin-top:var(--space-xs)}@media (prefers-reduced-motion: reduce){.active-game-dot{animation:none}}.collection-filter{display:flex;gap:var(--space-xs);flex-wrap:wrap;padding:0 0 var(--space-sm)}.collection-filter-chip{cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px;opacity:.55;transition:opacity var(--motion-fast),box-shadow var(--motion-fast)}.collection-filter-chip:hover{opacity:.85}.collection-filter-chip.active{opacity:1;box-shadow:inset 0 -2px 0 currentColor}.collection-filter-count{font-family:var(--font-mono, ui-monospace);font-size:9px;opacity:.6}.collection-card.tw-role-card{padding:0;background:none;border:0;gap:0;text-align:left}.collection-card.tw-role-card.locked{opacity:1;filter:grayscale(.75) brightness(.6)}.collection-card.unlocked[data-team=village]{border-color:var(--color-village)}.collection-card.unlocked[data-team=wolf]{border-color:var(--color-wolf)}.collection-card.unlocked[data-team=neutral]{border-color:var(--color-neutral)}.collection-card.main{box-shadow:0 0 0 2px var(--color-accent)}.collection-main-star{font-size:var(--font-xs);color:var(--color-accent);font-weight:700;margin-top:2px}.collection-illust{display:flex;justify-content:center;align-items:center;margin:4px auto 6px;width:56px;height:56px;color:var(--color-text-muted);border-radius:var(--radius-md);background:var(--color-card);transition:color var(--motion-fast),background var(--motion-fast)}.collection-card.unlocked[data-team=village] .collection-illust{color:var(--color-village)}.collection-card.unlocked[data-team=wolf] .collection-illust{color:var(--color-wolf)}.collection-card.unlocked[data-team=neutral] .collection-illust{color:var(--color-neutral)}.collection-card.locked .collection-illust{color:var(--color-text-faint);opacity:.5}.collection-tagline{font-size:var(--font-xs);color:var(--color-text-muted);line-height:var(--line-tight);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.collection-card.locked .collection-tagline{opacity:.5}.menu-main-role-chip{display:inline-flex;align-items:center;padding:2px var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--font-xs);color:var(--color-text);white-space:nowrap}.menu-main-role-chip[data-team=village]{color:var(--color-village);border-color:var(--color-village);background:var(--color-village-soft)}.menu-main-role-chip[data-team=wolf]{color:var(--color-wolf);border-color:var(--color-wolf);background:var(--color-wolf-soft)}.menu-main-role-chip[data-team=neutral]{color:var(--color-neutral);border-color:var(--color-neutral);background:var(--color-neutral-soft)}.collection-name{font-weight:600;color:var(--color-text)}.collection-card.unlocked[data-team=village] .collection-name{color:var(--color-village)}.collection-card.unlocked[data-team=wolf] .collection-name{color:var(--color-wolf)}.collection-meta{font-size:var(--font-xs);color:var(--color-text-muted)}.collection-body{flex:1;display:flex;flex-direction:column;gap:var(--space-md);min-height:0;overflow:hidden;position:relative}.collection-hero{display:none}.collection-hero-back{display:none;align-self:flex-start;background:transparent;border:1px solid var(--color-border-strong);color:var(--color-text);width:36px;height:36px;border-radius:var(--radius-pill);font-size:var(--font-lg);cursor:pointer;transition:background var(--motion-fast)}.collection-hero-back:hover{background:var(--color-card-hover)}.collection-card.focused{outline:2px solid var(--color-accent);outline-offset:2px}.collection-card.tw-role-card.focused{outline:none;outline-offset:0}@media (min-width: 1024px){.collection-dialog[data-layout=hero-grid]{max-width:1080px}.collection-dialog[data-layout=hero-grid] .collection-body{flex-direction:row;gap:var(--space-lg)}.collection-dialog[data-layout=hero-grid] .collection-hero{display:flex;flex-direction:column;gap:var(--space-md);width:340px;flex-shrink:0;overflow-y:auto;padding:var(--space-lg);background:linear-gradient(180deg,var(--bg-elev),var(--bg-deep));border-right:2px solid var(--line-2, var(--color-border-strong))}.collection-dialog[data-layout=hero-grid] .collection-grid{grid-template-columns:repeat(4,1fr);align-content:start}}.collection-hero-card{width:100%;max-width:280px;margin:0 auto}.collection-hero-meta{display:flex;flex-direction:column;gap:var(--space-xs)}.collection-hero-name{font-size:var(--font-xl);font-weight:700;font-family:var(--font-display, "Cinzel", serif);margin:0}.collection-hero-name[data-team=village]{color:var(--color-village)}.collection-hero-name[data-team=wolf]{color:var(--color-wolf)}.collection-hero-name[data-team=neutral]{color:var(--color-neutral)}.collection-hero-team{display:inline-block;align-self:flex-start;font-size:var(--font-xs);padding:2px var(--space-sm);border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);color:var(--color-text-muted)}.collection-hero-team[data-team=village]{color:var(--color-village);border-color:var(--color-village);background:var(--color-village-soft)}.collection-hero-team[data-team=wolf]{color:var(--color-wolf);border-color:var(--color-wolf);background:var(--color-wolf-soft)}.collection-hero-team[data-team=neutral]{color:var(--color-neutral);border-color:var(--color-neutral);background:var(--color-neutral-soft)}.collection-hero-tagline{font-size:var(--font-sm);color:var(--color-text);line-height:var(--line-normal);margin:0}.collection-hero-ability{font-size:var(--font-sm);color:var(--color-text-muted);line-height:var(--line-normal);margin:0}.collection-hero-win{font-size:var(--font-xs);color:var(--color-text-faint);font-style:italic;margin:0}.collection-hero-shortcut{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:linear-gradient(180deg,var(--surface-2, #1F1812),var(--bg-deep, #0A0605));border:2px solid var(--line-2, var(--color-border-strong));border-radius:var(--radius-sm, 4px)}.collection-hero-shortcut-head{font-family:var(--font-mono, ui-monospace);font-size:9.5px;color:var(--gold, var(--color-accent));letter-spacing:.22em;text-transform:uppercase;padding-bottom:6px;margin-bottom:var(--space-xs);border-bottom:1px solid var(--line-2, var(--color-border))}.collection-hero-shortcut-row{display:flex;align-items:center;gap:var(--space-sm)}.collection-hero-keycap{width:30px;height:30px;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(180deg,var(--surface-3, #2C241D),var(--bg-elev, #14100D));border:1px solid var(--line-2, var(--color-border-strong));border-radius:3px;box-shadow:inset 0 1px #c9a9612e,0 1px #000;font-family:var(--font-mono, ui-monospace);font-size:13px;font-weight:700;color:var(--gold, var(--color-accent));-webkit-user-select:none;user-select:none}.collection-hero-keycap-label{font-size:var(--font-xs);color:var(--color-text-muted, var(--ink-mute));line-height:var(--line-normal)}.collection-hero-hint{font-size:var(--font-sm);color:var(--color-text-faint);text-align:center;padding:var(--space-xl) var(--space-md)}@media (max-width: 1023px){.collection-dialog[data-layout=hero-grid] .collection-grid{grid-template-columns:repeat(3,1fr)}.collection-dialog[data-layout=hero-grid][data-detail-open=true] .collection-hero{display:flex;flex-direction:column;gap:var(--space-md);position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% -10%,#1a130e,#06030a 60%),repeating-linear-gradient(45deg,transparent 0 8px,rgba(0,0,0,.06) 8px 9px);z-index:2;padding:var(--space-md);overflow-y:auto;animation:collection-detail-in .28s var(--ease, cubic-bezier(.2, .7, .3, 1))}.collection-dialog[data-layout=hero-grid][data-detail-open=true] .collection-grid{overflow:hidden}.collection-dialog[data-layout=hero-grid][data-detail-open=true] .collection-hero-back{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:0;border:2px solid #1F1612;background:linear-gradient(180deg,#1f1812,#0a0605);color:var(--gold, #C9A961);box-shadow:inset 0 1px #c9a96126;font-size:18px;font-weight:700}.collection-dialog[data-layout=hero-grid][data-detail-open=true] .collection-hero-back:hover{border-color:var(--gold, #C9A961);color:var(--gold-glow, #E8C77A)}@keyframes collection-detail-in{0%{opacity:0;transform:translate(32px) scale(.98)}60%{opacity:1;transform:translate(-4px) scale(1.01)}to{opacity:1;transform:translate(0) scale(1)}}.collection-dialog[data-layout=hero-grid][data-detail-open=true] .collection-hero-card{max-width:320px;margin-inline:auto}@media (prefers-reduced-motion: reduce){.collection-dialog[data-layout=hero-grid][data-detail-open=true] .collection-hero{animation:collection-detail-fade .15s ease-out}@keyframes collection-detail-fade{0%{opacity:0}to{opacity:1}}}}@media (max-width: 380px){.collection-dialog[data-layout=hero-grid] .collection-grid{grid-template-columns:repeat(2,1fr)}}.trophy-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.trophy-dialog{width:100%;max-width:560px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.trophy-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.trophy-controls{display:flex;flex-direction:column;gap:var(--space-xs)}.trophy-progress{display:flex;flex-direction:column}.trophy-progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-xs)}.trophy-progress-card{min-width:0;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.trophy-progress-label{color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700}.trophy-progress-value{color:var(--color-accent);font-size:var(--font-xl);font-family:var(--font-mono);font-weight:800}.trophy-filter-row,.trophy-sort-row,.trophy-badges{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.trophy-control-label{font-size:var(--font-xs);color:var(--color-text-muted);font-weight:700}.trophy-filter-chip,.trophy-sort-select{padding:4px 8px;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text-muted);font-size:var(--font-xs)}.trophy-filter-chip.active{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.trophy-sort-select{border-radius:var(--radius-md);font-family:inherit}.trophy-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.trophy-card{display:grid;grid-template-columns:44px 1fr;gap:var(--space-md);align-items:center;padding:var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-left:3px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer}.trophy-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.trophy-card.status-minted{border-left-color:var(--color-success)}.trophy-card.status-requested{border-left-color:var(--color-accent)}.trophy-card.status-failed{border-left-color:var(--color-danger)}.trophy-card.rarity-legendary{box-shadow:inset 0 0 0 1px #ffd76a47}.trophy-card.rarity-common{border-left-color:var(--color-border-strong)}.trophy-card.rarity-custom{box-shadow:inset 0 0 0 1px var(--color-border)}.trophy-card.pinned{border-color:var(--color-accent);background:linear-gradient(180deg,var(--color-card),var(--color-accent-soft))}.trophy-icon{font-size:28px;text-align:center}.trophy-name{font-weight:700;color:var(--color-text)}.trophy-badge{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg-raised);color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700}.trophy-badge.status-minted,.trophy-badge.rarity-legendary,.trophy-badge.rarity-rare{color:var(--color-success);border-color:var(--color-success);background:var(--color-village-soft)}.trophy-badge.status-requested,.trophy-badge.rarity-pending,.trophy-badge.rarity-uncommon{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-soft)}.trophy-badge.status-failed,.trophy-badge.rarity-failed{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-wolf-soft)}.trophy-pin-badge{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-soft)}.trophy-milestone-badge{opacity:.62}.trophy-milestone-badge.complete{opacity:1;color:var(--color-success);border-color:var(--color-success);background:var(--color-village-soft)}.trophy-meta,.trophy-chain,.trophy-empty{font-size:var(--font-sm);color:var(--color-text-muted)}.trophy-empty{min-height:120px;padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);text-align:center;background:var(--color-card);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.trophy-empty:before{content:"🏅";width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent);font-size:20px}.trophy-chain{font-family:var(--font-mono);font-size:var(--font-xs)}.trophy-error{color:var(--color-danger);border-color:var(--color-danger)}.trophy-error:before{content:"!";background:var(--color-wolf-soft);color:var(--color-danger);font-weight:700}.trophy-detail{display:grid;grid-template-columns:160px minmax(0,1fr);gap:var(--space-md);align-items:center;padding:var(--space-lg);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px #ffd76a2e}.trophy-detail-visual svg{width:100%;max-width:160px;display:block}.trophy-svg-glow{fill:var(--color-accent-soft);stroke:var(--color-accent);stroke-width:2}.trophy-svg-medal{fill:var(--color-card-hover);stroke:var(--color-accent);stroke-width:4;stroke-linejoin:round}.trophy-svg-mark{fill:var(--color-accent);font:700 32px var(--font-mono)}.trophy-detail-body{min-width:0;display:flex;flex-direction:column;gap:var(--space-sm)}.trophy-detail-name{color:var(--color-text);font-size:var(--font-lg);font-weight:700;overflow-wrap:anywhere}.trophy-detail-desc{color:var(--color-text-muted);font-size:var(--font-sm);line-height:1.45}.trophy-detail-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}@media (max-width: 560px){.menu-actions .menu-action-btn{min-width:calc(50% - var(--space-xs));padding:var(--space-sm)}.menu-onboarding{padding:var(--space-sm)}.menu-onboarding-grid{grid-template-columns:1fr}.trophy-card{grid-template-columns:36px minmax(0,1fr);gap:var(--space-sm);padding:var(--space-sm)}.trophy-icon{font-size:24px}.trophy-detail{grid-template-columns:1fr;padding:var(--space-md)}.trophy-detail-visual svg{margin:0 auto;max-width:128px}.trophy-progress-grid{grid-template-columns:1fr}.admin-select{width:100%}.admin-moderation-timeline-item{grid-template-columns:10px minmax(0,1fr)}.admin-moderation-time{grid-column:2}.admin-anticheat-bar-row{grid-template-columns:minmax(0,1fr) 40px}.admin-anticheat-bar-track{grid-column:1 / -1}.admin-winrate-table{font-size:var(--font-xs)}}.stats-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.stats-dialog{width:100%;max-width:640px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.stats-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.stats-dialog h3{font-size:var(--font-md);color:var(--color-text-muted);margin-top:var(--space-sm)}.stats-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.stats-empty{text-align:center;color:var(--color-text-faint);font-style:italic;padding:var(--space-xl) 0}.stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-sm)}.stats-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);text-align:center}.stats-card-key{font-size:var(--font-xs);color:var(--color-text-muted)}.stats-card-val{font-size:var(--font-lg);font-weight:700;color:var(--color-accent);font-family:var(--font-mono)}.profile-hero{display:grid;grid-template-columns:56px minmax(0,1fr);gap:var(--space-sm);align-items:center;padding:var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.profile-avatar{grid-row:1 / span 2;width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--font-xl);font-weight:700}.profile-name{min-width:0;color:var(--color-text);font-size:var(--font-lg);font-weight:700;overflow:hidden;text-overflow:ellipsis}.profile-sub{color:var(--color-text-muted);font-size:var(--font-sm)}.profile-summary{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.profile-streak-card,.profile-showcase-card,.profile-activity-card{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.profile-streak-title{color:var(--color-text);font-size:var(--font-sm);font-weight:700}.profile-streak-count{color:var(--color-accent);font-size:var(--font-xl);font-weight:800;font-family:var(--font-mono)}.profile-streak-state,.profile-streak-reward{color:var(--color-text-muted);font-size:var(--font-sm)}.profile-showcase-card h3,.profile-activity-card h3{margin:0}.profile-activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-xs)}.profile-activity-item{min-width:0;display:flex;flex-direction:column;gap:2px;padding:var(--space-sm);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.profile-activity-item span{color:var(--color-text-muted);font-size:var(--font-xs)}.profile-activity-item strong{color:var(--color-text);overflow:hidden;text-overflow:ellipsis}.profile-showcase{display:flex;flex-direction:column;gap:var(--space-xs);color:var(--color-text-muted);font-size:var(--font-sm)}.profile-showcase-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-raised);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm)}.profile-showcase-replay{align-items:flex-start}.profile-showcase-replay-body{min-width:0;display:flex;flex-direction:column;gap:2px}.profile-showcase-note{color:var(--color-text-muted);font-size:var(--font-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-showcase-item>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-weight:700}.profile-showcase-replay-body>span:first-child{color:var(--color-text);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-recent{display:flex;flex-direction:column;gap:var(--space-xs);color:var(--color-text-muted);font-size:var(--font-sm)}.profile-recent-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-sm);align-items:center;padding:var(--space-xs) var(--space-sm);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.stats-team-rows,.stats-role-rows{display:flex;flex-direction:column;gap:2px}.stats-team-row,.stats-role-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) var(--space-sm);background:var(--color-card);border-left:3px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-sm)}.stats-team-row[data-team=village],.stats-role-row[data-team=village]{border-left-color:var(--color-village)}.stats-team-row[data-team=wolf],.stats-role-row[data-team=wolf]{border-left-color:var(--color-wolf)}.stats-team-row[data-team=neutral],.stats-role-row[data-team=neutral]{border-left-color:var(--color-neutral)}.stats-team-name,.stats-role-name{font-weight:600}.stats-team-meta,.stats-role-meta{font-family:var(--font-mono);color:var(--color-text-muted);font-size:var(--font-xs)}.stats-ability-rows{display:flex;flex-direction:column;gap:2px}.stats-ability-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--color-card);border-radius:var(--radius-sm);font-size:var(--font-sm)}.stats-ability-icon{font-size:16px;text-align:center}.stats-ability-name{color:var(--color-text)}.stats-ability-count{font-family:var(--font-mono);color:var(--color-accent);font-weight:700}.stats-timeline{display:flex;flex-direction:column;gap:var(--space-xs)}.stats-timeline-svg{width:100%;height:auto;color:var(--color-text-muted);background:var(--color-card);border-radius:var(--radius-md);padding:var(--space-xs)}.stats-timeline-legend{display:flex;flex-wrap:wrap;gap:var(--space-sm);font-size:var(--font-xs);color:var(--color-text-muted)}.stats-timeline-legend-item{display:inline-flex;align-items:center;gap:4px}.stats-timeline-legend-item i{display:inline-block;width:10px;height:10px;border-radius:2px}.achievements-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.achievements-dialog{width:100%;max-width:560px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.achievements-dialog h2{font-size:var(--font-xl);color:var(--color-accent)}.achievements-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.achievement-card{display:flex;gap:var(--space-md);align-items:center;padding:var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.achievement-card.locked{opacity:.45;filter:grayscale(1)}.achievement-card.unlocked{border-color:var(--color-accent)}.achievement-icon{font-size:28px;width:44px;text-align:center}.achievement-body{flex:1;display:flex;flex-direction:column;gap:2px}.achievement-name{font-weight:700;color:var(--color-text)}.achievement-card.unlocked .achievement-name{color:var(--color-accent)}.achievement-desc{font-size:var(--font-sm);color:var(--color-text-muted)}.achievement-status{font-size:var(--font-xs);color:var(--color-text-muted);font-family:var(--font-mono)}.referral-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md)}.referral-dialog{width:100%;max-width:460px;max-height:86vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);overflow:hidden}.referral-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.referral-my-card{padding:var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-xs);align-items:center}.referral-label{font-size:var(--font-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.referral-code{font-family:var(--font-mono);font-size:1.6rem;font-weight:700;letter-spacing:.15em;color:var(--color-success)}.referral-meta{font-size:var(--font-sm);color:var(--color-text-muted)}.referral-input-row{display:flex;gap:var(--space-xs)}.referral-input-row input{flex:1;padding:var(--space-sm) var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-mono);letter-spacing:.1em}.referral-reward{font-size:var(--font-xs);color:var(--color-text-muted);text-align:center;padding:var(--space-sm);background:var(--color-card);border-radius:var(--radius-sm)}.referral-leaderboard{display:flex;flex-direction:column;gap:var(--space-xs)}.referral-leaderboard-list{list-style:decimal inside;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.referral-leaderboard-list li{display:flex;justify-content:space-between;padding:var(--space-xs) var(--space-sm);background:var(--color-card);border-radius:var(--radius-sm);font-size:var(--font-sm)}.referral-rank-name{color:var(--color-text)}.referral-rank-count{color:var(--color-success);font-family:var(--font-mono);font-weight:600}.tw-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-2xl) var(--space-md);text-align:center;color:var(--ink-mute, var(--color-text-muted))}.tw-empty-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,var(--surface-2, var(--color-bg-raised)),var(--surface, var(--color-bg)));border:1px solid var(--line-2, var(--color-border-strong));color:var(--gold-soft, var(--color-accent));opacity:.85}.tw-empty-msg{font-size:var(--font-sm);line-height:1.55;letter-spacing:.08em;color:var(--ink-mute, var(--color-text-muted));max-width:280px}.tw-empty-action{margin-top:var(--space-xs);font-size:var(--font-sm);min-height:0;padding:var(--space-xs) var(--space-lg)}.tw-empty-state--compact{gap:var(--space-xs);padding:var(--space-lg) var(--space-md)}.tw-empty-state--compact .tw-empty-icon{width:32px;height:32px}.tw-empty-state--compact .tw-empty-msg{font-size:var(--font-xs)}@keyframes tw-spin{to{transform:rotate(360deg)}}.tw-loading-spinner{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--ink-mute, var(--color-text-muted))}.tw-loading-rune{display:inline-block;font-family:var(--font-display, "Cinzel", serif);font-size:28px;line-height:1;color:var(--gold-soft, var(--color-accent));animation:tw-spin 1.4s linear infinite;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--gold, #C9A961) 30%,transparent))}.tw-loading-label{font-size:var(--font-sm);letter-spacing:.08em;color:var(--ink-mute, var(--color-text-muted))}@keyframes tw-skel-pulse{0%,to{opacity:.6}50%{opacity:1}}.tw-skeleton{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm) 0}.tw-skeleton-bar{border-radius:var(--radius-sm, 4px);background:linear-gradient(90deg,var(--surface, var(--color-bg-raised)) 0%,var(--surface-2, var(--color-card)) 40%,var(--surface, var(--color-bg-raised)) 80%);animation:tw-skel-pulse 1.6s ease-in-out infinite}.tw-skeleton--card{gap:var(--space-sm)}.tw-skeleton-card{border:1px solid var(--line, var(--color-border));border-radius:var(--radius-md, 8px)}.tw-skeleton-avatar{border-radius:50%}.tw-skeleton-button{border-radius:999px}@media (prefers-reduced-motion: reduce){.tw-loading-rune{animation:none}.tw-skeleton-bar{animation:none;opacity:.7}}.notices-modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--line, var(--color-border))}.notices-modal-title{margin:0;font-family:var(--font-display, "Cinzel", serif);font-size:var(--font-lg);font-weight:700;letter-spacing:.08em;color:var(--gold, var(--color-accent))}.notices-modal-close{flex:0 0 auto;width:32px;height:32px;padding:0;font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-mute, var(--color-text-muted))}.notices-modal-list{flex:1;min-height:0;overflow-y:auto;padding:var(--space-md) var(--space-lg)}.login-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-boot, 1000);display:flex;align-items:center;justify-content:center;padding:var(--space-lg, 16px);background:radial-gradient(1200px 600px at 50% -10%,rgba(255,215,106,.06),transparent 60%),var(--color-bg, #0a0a14);overflow-y:auto}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-md, 12px);padding:var(--space-2xl, 32px) var(--space-xl, 24px);text-align:center}.login-logo{align-self:center;color:var(--color-accent, #ffd76a)}.login-title{margin:0;font-size:var(--font-2xl, 24px);font-weight:700;color:var(--color-text, #eee);letter-spacing:.02em}.login-subtitle{margin:0 0 var(--space-sm, 8px);font-size:var(--font-sm, 12px);color:var(--color-text-muted, #aaa);line-height:var(--line-normal, 1.5)}.login-form{display:flex;flex-direction:column;gap:var(--space-sm, 8px);text-align:start}.login-label{font-size:var(--font-xs, 11px);color:var(--color-text-muted, #aaa)}.login-input{width:100%;box-sizing:border-box;padding:12px 14px;font-size:var(--font-lg, 16px);color:var(--color-text, #eee);background:var(--color-bg-raised, #14141f);border:1px solid var(--color-border-strong, rgba(255, 255, 255, .18));border-radius:var(--radius-md, 6px);outline:none}.login-input:focus{border-color:var(--color-accent-line, rgba(255, 215, 106, .5));box-shadow:0 0 0 2px var(--color-accent-soft, rgba(255, 215, 106, .18))}.login-code-input{text-align:center;letter-spacing:.4em;font-variant-numeric:tabular-nums}.login-submit{margin-top:var(--space-xs, 4px);padding:12px 16px;font-size:var(--font-md, 14px);font-weight:600;cursor:pointer}.login-submit:disabled{opacity:.55;cursor:default}.login-status{min-height:1.2em;font-size:var(--font-sm, 12px);color:var(--color-text-muted, #aaa)}.login-status-error{color:var(--color-danger, #ff6a6a)}.login-code-actions{display:flex;justify-content:space-between;gap:var(--space-sm, 8px)}.login-link{background:none;border:none;color:var(--color-accent, #ffd76a);font-size:var(--font-sm, 12px);cursor:pointer;padding:4px 2px}.login-link:disabled{color:var(--color-text-faint, #666);cursor:default}.login-or{display:flex;align-items:center;gap:var(--space-sm, 8px);color:var(--color-text-faint, #666);font-size:var(--font-xs, 11px)}.login-or:before,.login-or:after{content:"";flex:1;height:1px;background:var(--color-border, rgba(255, 255, 255, .08))}.login-sso{display:flex;flex-direction:column;gap:var(--space-sm, 8px)}.login-sso-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm, 8px);padding:11px 14px;font-size:var(--font-md, 14px);font-weight:600;border:1px solid transparent;border-radius:var(--radius-md, 6px);cursor:pointer}.login-sso-btn:disabled{opacity:.6;cursor:default}.login-sso-logo{width:18px;height:18px;flex:none}.login-sso-google{background:#fff;color:#1f1f1f;border-color:#dadce0}.login-sso-apple{background:#000;color:#fff}.login-sso-kakao{background:#fee500;color:#000}.login-guest{margin-top:var(--space-sm, 8px);background:none;border:none;color:var(--color-text-muted, #aaa);font-size:var(--font-sm, 12px);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.login-guest:hover{color:var(--color-text, #eee)}@media (max-width: 420px){.login-card{max-width:100%;padding:var(--space-xl, 24px) var(--space-lg, 16px)}}#game-screen{display:none;background:var(--bg, var(--color-bg));transition:background var(--motion-slow);position:relative}#game-screen[data-phase=night]{background:var(--phase-night-bg)}.game-night-scan{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}#game-screen[data-phase=day]{background:var(--phase-day-bg)}#game-screen[data-phase=vote]{background:var(--phase-vote-bg)}#game-screen[data-phase=vote]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse at 50% 50%,transparent 40%,rgba(106,11,10,.22) 72%,rgba(106,11,10,.4) 100%);animation:vote-vignette-pulse 2.4s ease-in-out infinite}@keyframes vote-vignette-pulse{0%,to{opacity:.85}50%{opacity:1}}#game-screen[data-phase=ended]{background:var(--bg, var(--color-bg))}#game-screen>*:not(:before):not(.game-night-scan):not(.game-phase-fx){position:relative;z-index:1}.game-phase-fx{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;pointer-events:none;opacity:0;--fx-accent: var(--gold, var(--color-accent))}.game-phase-fx[data-phase=day]{--fx-accent: var(--gold, #C9A961)}.game-phase-fx[data-phase=night]{--fx-accent: var(--moon-glow, #A8B8DC)}.game-phase-fx[data-phase=vote]{--fx-accent: var(--blood-glow, #E84B4B)}.game-phase-fx.playing{animation:game-phase-fx-flash .7s ease-out}.game-phase-fx.playing:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 50%,color-mix(in srgb,var(--fx-accent) 28%,transparent) 0%,transparent 60%);animation:game-phase-fx-pulse .7s ease-out}.game-phase-fx.playing:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 38%,color-mix(in srgb,var(--fx-accent) 32%,transparent) 50%,transparent 62%);transform:translate(-120%);animation:game-phase-fx-wipe .7s ease-out}@keyframes game-phase-fx-flash{0%{opacity:0}20%{opacity:1}to{opacity:0}}@keyframes game-phase-fx-pulse{0%{transform:scale(.6);opacity:.2}35%{opacity:1}to{transform:scale(1.15);opacity:0}}@keyframes game-phase-fx-wipe{to{transform:translate(120%)}}@media (prefers-reduced-motion: reduce){.game-phase-fx.playing,.game-phase-fx.playing:before,.game-phase-fx.playing:after{animation:none}}.game-header{background:color-mix(in srgb,var(--color-bg-raised, var(--bg-elev)) 75%,transparent);backdrop-filter:blur(6px) saturate(140%);-webkit-backdrop-filter:blur(6px) saturate(140%);gap:var(--space-md);border-bottom:1px solid var(--line, var(--color-border))}@media (max-width: 768px){.game-header{background:var(--color-bg-raised, var(--bg-elev));backdrop-filter:none;-webkit-backdrop-filter:none}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.game-header{background:var(--color-bg-raised, var(--bg-elev))}}.game-header-left{display:flex;align-items:baseline;gap:var(--space-sm);flex:1;min-width:0}.game-header-right{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.game-phase{font-size:var(--font-md);font-weight:700;white-space:nowrap;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:var(--color-card)}.game-phase-seal{margin-left:var(--space-xs);vertical-align:middle;flex-shrink:0}.game-phase[data-tone=night]{color:var(--color-phase-night);background:#6a8aff26}.game-phase[data-tone=day]{color:var(--color-phase-day);background:var(--color-accent-soft)}.game-phase[data-tone=vote]{color:var(--color-phase-vote);background:#ff8aaa26}.game-phase[data-tone=ended]{color:var(--color-phase-end);background:var(--color-neutral-soft)}.game-phase[data-tone=lobby]{color:var(--color-text-muted)}.game-phase-icon-wrap{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-text-muted)}.game-phase-icon-wrap[data-tone=night]{color:var(--color-phase-night)}.game-phase-icon-wrap[data-tone=day]{color:var(--color-phase-day)}.game-phase-icon-wrap[data-tone=vote]{color:var(--color-phase-vote)}.game-phase-icon-wrap[data-tone=ended]{color:var(--color-phase-end)}.game-phase-icon{display:block;filter:drop-shadow(0 0 4px color-mix(in srgb,currentColor 35%,transparent))}.game-survivor{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;flex-shrink:0}.game-survivor-tag{font-family:var(--font-mono);font-size:var(--font-xs);color:var(--color-text-faint);letter-spacing:.15em;text-transform:uppercase}.game-survivor-count{font-family:var(--font-display, var(--font-mono));font-size:var(--font-md);font-weight:700;color:var(--color-text)}.game-survivor-alive{color:var(--color-text)}.game-survivor-total{color:var(--color-text-faint);font-weight:400}.game-timer-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;color:var(--gold, var(--color-accent))}.game-timer-wrap>svg{position:absolute;top:0;right:0;bottom:0;left:0;filter:drop-shadow(0 0 4px color-mix(in srgb,currentColor 40%,transparent))}.game-timer-wrap>.game-timer{position:relative;z-index:1}.game-timer{font-family:var(--font-mono);font-size:var(--font-md);color:var(--color-text-muted);min-width:38px;transition:color var(--motion-fast)}.game-timer.urgent{color:var(--color-danger);font-weight:700;animation:timer-pulse .8s ease-in-out infinite}@keyframes timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.game-host{font-size:var(--font-sm);color:var(--color-text-muted);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}.game-host.self{color:var(--color-accent);font-weight:600}.game-leave-btn{padding:var(--space-xs) var(--space-md);background:transparent;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-sm);transition:background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast)}.game-leave-btn:hover{background:var(--color-wolf-soft);border-color:var(--color-wolf);color:var(--color-wolf)}.game-main-left,.game-main-right{display:flex;flex-direction:column;min-height:0}.v2-placeholder{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;white-space:pre-wrap;color:var(--color-text-faint);font-size:var(--font-sm);padding:var(--space-xl)}#game-screen.dead .game-main{filter:saturate(.6);opacity:.85;transition:filter var(--motion-slow),opacity var(--motion-slow)}.death-toast{position:fixed;top:25%;left:50%;transform:translate(-50%,-50%);background:#000000eb;border:1px solid var(--color-wolf);color:var(--color-wolf);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-md);font-size:var(--font-md);font-weight:700;z-index:var(--z-toast);box-shadow:var(--shadow-lg);animation:death-toast-in .3s ease-out;pointer-events:none;max-width:90vw;text-align:center}.death-toast.fade-out{animation:death-toast-out .5s ease-out forwards}@keyframes death-toast-in{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes death-toast-out{0%{opacity:1}to{opacity:0}}.game-memo{margin:var(--space-md) 0 0;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);min-height:0}.game-memo-head{font-family:var(--font-mono, ui-monospace);font-size:10px;color:var(--gold-soft, var(--color-accent));letter-spacing:.18em;text-transform:uppercase}.game-memo-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;max-height:180px}.game-memo-line{display:flex;align-items:baseline;gap:var(--space-sm);font-size:var(--font-sm)}.game-memo-day{font-family:var(--font-mono, ui-monospace);font-size:10px;color:var(--gold-soft, var(--color-accent));flex-shrink:0}.game-memo-text{flex:1;min-width:0;color:var(--color-text, var(--ink));word-break:break-word}.game-memo-del{flex-shrink:0;background:transparent;border:0;color:var(--color-text-faint, var(--ink-faint));cursor:pointer;font-size:var(--font-md);line-height:1;padding:0 2px}.game-memo-del:hover{color:var(--color-wolf, var(--blood-glow))}.game-memo-empty{font-size:var(--font-xs);color:var(--color-text-faint, var(--ink-faint));padding:var(--space-sm) 0;font-style:italic}.game-memo-input-row{display:flex;gap:var(--space-xs)}.game-memo-input{flex:1;min-width:0;background:var(--color-card, var(--surface));border:1px solid var(--color-border, var(--line));border-radius:var(--radius-sm, 4px);color:var(--color-text, var(--ink));font-family:inherit;font-size:var(--font-sm);padding:var(--space-xs) var(--space-sm)}.game-memo-input:focus{outline:none;border-color:var(--gold, var(--color-accent))}.game-memo-add{flex-shrink:0;font-size:var(--font-xs);padding:var(--space-xs) var(--space-sm)}.player-grid-section{flex:1;display:flex;flex-direction:column;margin:var(--space-md);overflow:hidden;min-height:0}.player-grid-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border)}.player-grid{flex:1;overflow-y:auto;padding:var(--space-sm);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-xs)}.player-grid[data-variant=list]{grid-template-columns:1fr 1fr;gap:var(--space-sm)}.player-grid[data-variant=list] .pg-card{flex-direction:row;text-align:left;align-items:center;padding:var(--space-sm);min-height:48px;gap:var(--space-sm)}.player-grid[data-variant=list] .pg-card-name{flex:1;text-align:left}.player-grid[data-variant=circle]{grid-template-columns:1fr;position:relative;aspect-ratio:1;max-width:480px;margin:0 auto;overflow:visible;container-type:size}.player-grid[data-variant=circle] .pg-card{position:absolute;width:76px;height:76px;top:50%;left:50%;margin:-38px 0 0 -38px;border-radius:50%;padding:0;gap:2px;transform:rotate(var(--pg-angle, 0deg)) translateY(calc(-1 * var(--pg-radius, 38cqmin))) rotate(calc(-1 * var(--pg-angle, 0deg)))}@supports not (width: 1cqmin){.player-grid[data-variant=circle] .pg-card{--pg-radius: 150px}}.player-grid[data-variant=circle] .pg-card-status,.player-grid[data-variant=circle] .pg-card-badge,.player-grid[data-variant=circle] .pg-card .tw-corner{display:none}.player-grid[data-variant=circle] .pg-card-avatar{width:40px;height:40px;font-size:18px}.player-grid[data-variant=circle] .pg-card-name{font-size:10px;max-width:72px;text-shadow:0 1px 2px rgba(0,0,0,.8)}.player-grid[data-variant=circle] .pg-card-tally{top:-2px;right:-2px}@media (max-width: 599px){#game-screen[data-phase=vote] .player-grid:not([data-variant=circle]){grid-template-columns:1fr 1fr}}.player-grid-hint{padding:var(--space-xs) var(--space-md);font-size:var(--font-xs);color:var(--color-text-faint);border-top:1px solid var(--color-border);min-height:22px}.pg-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:var(--space-sm) var(--space-xs);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);text-align:center;cursor:pointer;font-family:inherit;font-size:var(--font-sm);box-shadow:var(--elevation-1);transition:background var(--motion-fast),border-color var(--motion-fast),box-shadow var(--motion-fast),transform var(--motion-fast);min-height:80px}.pg-card-avatar{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;--avatar-accent: var(--gold, var(--color-accent));background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--avatar-accent) 25%,var(--surface, var(--color-card))),var(--surface, var(--color-card)) 70%);border:1px solid var(--line, var(--color-border));font-family:var(--font-display, "Cinzel", serif);font-size:22px;font-weight:700;color:var(--avatar-accent);text-shadow:0 0 8px color-mix(in srgb,var(--avatar-accent) 35%,transparent);-webkit-user-select:none;user-select:none;flex-shrink:0;transition:color var(--motion-slow, .35s),background var(--motion-slow, .35s)}#game-screen[data-phase=night] .pg-card-avatar{--avatar-accent: var(--moon-glow, #A8B8DC)}#game-screen[data-phase=vote] .pg-card-avatar{--avatar-accent: var(--blood-glow, #E84B4B)}#game-screen[data-phase=day] .pg-card-avatar{--avatar-accent: var(--gold, #C9A961)}.pg-card.self .pg-card-avatar{background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--avatar-accent) 45%,var(--surface, var(--color-card))),var(--surface, var(--color-card)) 70%);color:var(--avatar-accent);border-color:var(--avatar-accent)}.pg-card.dead .pg-card-avatar{filter:grayscale(.7) opacity(.6)}@media (max-width: 360px){.pg-card-avatar{width:36px;height:36px;font-size:18px}}@media (hover: hover){.pg-card:hover:not(.dead):not(.self):not(.pg-card-empty){background:var(--color-card-hover);border-color:var(--color-border-strong);box-shadow:var(--elevation-2);transform:translateY(-1px)}}.pg-card:active:not(.dead):not(.self):not(.pg-card-empty){transform:translateY(0) scale(.97);transition:transform 60ms var(--motion-emphasis)}.pg-card.self{cursor:default;border-color:var(--color-accent-line);background:var(--color-accent-soft)}.pg-card.dead{cursor:not-allowed;opacity:.5;background:var(--color-card)}.pg-card.ready{border-color:#a8e6a866}.pg-card.night-target{border-color:var(--color-wolf);box-shadow:0 0 0 1px var(--color-wolf) inset}.pg-card.outed{border-color:#d44;box-shadow:0 0 0 2px #dc3c3c8c inset;animation:pg-outed-pulse 1.6s ease-in-out infinite}.pg-card-badge.outed{background:#dc3c3cd9;color:#fff}.pg-card.outed-night-locked{cursor:not-allowed;opacity:.7}@keyframes pg-outed-pulse{0%,to{box-shadow:0 0 0 2px #dc3c3c8c inset}50%{box-shadow:0 0 0 3px #dc3c3ce6 inset}}.pg-card.vote-target{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent) inset}.pg-card.vote-suspect{border-color:var(--blood, var(--color-wolf));box-shadow:0 0 0 1px var(--blood, var(--color-wolf)),0 0 16px #b0211e4d}.pg-card.speaking{animation:pg-speaking-pulse 1s ease-in-out infinite;border-color:var(--color-success)}@keyframes pg-speaking-pulse{0%,to{box-shadow:0 0 #a8e6a899}50%{box-shadow:0 0 0 8px #a8e6a800}}.pg-card-empty{cursor:default;color:var(--color-text-faint);font-style:italic;background:transparent;border-style:dashed;display:flex;align-items:center;justify-content:center}.pg-card-empty:hover{background:transparent}.pg-card-name{font-weight:600;font-size:var(--font-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}.pg-card.self .pg-card-name{color:var(--color-accent)}.pg-card.dead .pg-card-name{color:var(--color-text-muted)}.pg-card-status{font-size:var(--font-xs);color:var(--color-text-muted);min-height:14px}.pg-card.ready .pg-card-status{color:var(--color-success)}.pg-card-tally{position:absolute;top:4px;right:4px;font-size:var(--font-xs);font-weight:700;color:var(--color-accent)}.pg-card-badge{display:none}@media (max-width: 360px){.pg-card{font-size:var(--font-xs);padding:var(--space-xs);min-height:56px}}@media (min-width: 1024px) and (max-width: 1439px){.player-grid{grid-template-columns:repeat(3,1fr)}}.chat-box{flex:1;display:flex;flex-direction:column;min-height:0;background:color-mix(in srgb,var(--surface, var(--color-bg)) 80%,transparent);backdrop-filter:blur(6px) saturate(140%);-webkit-backdrop-filter:blur(6px) saturate(140%)}@media (max-width: 768px){.chat-box{background:var(--surface, var(--color-bg));backdrop-filter:none;-webkit-backdrop-filter:none}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.chat-box{background:var(--surface, var(--color-bg))}}.chat-tabs{flex:0 0 auto;display:flex;align-items:center;gap:2px;padding:var(--space-xs) var(--space-sm) 0;background:var(--color-bg-raised);border-bottom:1px solid var(--color-border)}.chat-phase-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin:0 var(--space-xs) var(--space-xs) 0;align-self:center;background:var(--color-text-faint, var(--ink-faint));transition:background var(--motion-slow, .35s)}#game-screen[data-phase=day] .chat-phase-dot{background:var(--gold, var(--color-phase-day));box-shadow:0 0 5px var(--gold, var(--color-phase-day))}#game-screen[data-phase=night] .chat-phase-dot{background:var(--moon-glow, var(--color-phase-night));box-shadow:0 0 5px var(--moon-glow, var(--color-phase-night))}#game-screen[data-phase=vote] .chat-phase-dot{background:var(--blood-glow, var(--color-phase-vote));box-shadow:0 0 5px var(--blood-glow, var(--color-phase-vote))}#game-screen[data-phase=ended] .chat-phase-dot{background:var(--color-phase-end, var(--color-neutral))}.chat-tab{background:var(--color-card);color:var(--color-text-muted);border:1px solid var(--color-border);border-bottom:none;padding:var(--space-xs) var(--space-md);font-size:var(--font-sm);border-radius:var(--radius-sm) var(--radius-sm) 0 0;position:relative;font-family:inherit}.chat-tab:hover{background:var(--color-card-hover)}.chat-tab.active{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent-line)}.chat-tab.disabled{color:var(--color-text-faint)}.chat-tab.unread:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:var(--radius-pill);background:var(--color-wolf)}.chat-tab[data-channel=wolf].active{background:var(--color-wolf-soft);color:var(--color-wolf);border-color:var(--color-wolf)}.chat-tab[data-channel=ghost].active{background:#a8e6a82e;color:var(--color-success);border-color:var(--color-success)}.chat-log-box{flex:1;overflow:hidden;position:relative;mask-image:linear-gradient(180deg,transparent 0,black 12px,black calc(100% - 12px),transparent 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0,black 12px,black calc(100% - 12px),transparent 100%)}.chat-log{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:var(--space-sm) var(--space-md);line-height:var(--line-normal);font-size:var(--font-sm);scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--gold, var(--color-accent)) transparent}.chat-log::-webkit-scrollbar{width:6px}.chat-log::-webkit-scrollbar-track{background:transparent}.chat-log::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--gold, var(--color-accent)) 50%,transparent);border-radius:3px}.chat-log::-webkit-scrollbar-thumb:hover{background:var(--gold, var(--color-accent))}.chat-line{word-break:break-word;padding:1px 0}.chat-from{color:var(--color-accent);font-weight:600}.chat-line-system{color:var(--color-wolf);font-style:italic;opacity:.85}.chat-log[data-channel=wolf]{background:radial-gradient(ellipse at 50% 0%,rgba(176,33,30,.1),transparent 70%)}.chat-log[data-channel=wolf] .chat-from,.chat-log[data-channel=wolf] .chat-line-system{color:var(--blood-glow, var(--color-wolf))}.chat-mention{color:var(--color-accent);background:var(--color-accent-soft);padding:0 4px;border-radius:var(--radius-sm, 3px);font-weight:600}.chat-mention.self{color:var(--color-wolf);background:var(--color-wolf-soft)}.chat-line-mentioned{background:var(--color-wolf-soft);border-left:2px solid var(--color-wolf);padding-left:6px}.chat-tab.mentioned{animation:chat-mention-pulse 1.2s ease-out 1}@keyframes chat-mention-pulse{0%{box-shadow:0 0 0 0 var(--color-wolf)}60%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.chat-input-row{position:relative;display:flex;border-top:1px solid var(--color-border);background:var(--color-bg-raised)}.chat-input-row .chat-input{flex:1;border:none;border-top:none}.chat-emoji-btn{flex:0 0 auto;width:44px;background:transparent;border:none;border-left:1px solid var(--color-border);font-size:20px;cursor:pointer;color:var(--color-text);padding-bottom:max(0px,var(--safe-bottom))}.chat-emoji-btn:hover{background:var(--color-card-hover)}.chat-voice-btn{flex:0 0 auto;width:44px;background:transparent;border:none;border-left:1px solid var(--color-border);font-size:18px;cursor:pointer;color:var(--color-text-muted);padding-bottom:max(0px,var(--safe-bottom))}.chat-voice-btn:hover{background:var(--color-card-hover)}.chat-voice-btn.on{color:var(--color-wolf);background:var(--color-wolf-soft)}.chat-voice-btn.muted{color:var(--color-text-faint);background:var(--color-card)}.chat-emoji-popup{position:absolute;bottom:100%;right:0;width:min(280px,90vw);max-height:50vh;overflow-y:auto;display:none;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-xs);z-index:30}.chat-emoji-popup.open{display:block}.chat-emoji-section{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.chat-emoji-cell{width:100%;aspect-ratio:1;background:transparent;border:none;font-size:18px;cursor:pointer;border-radius:4px}.chat-emoji-cell:hover{background:var(--color-accent-soft)}.chat-input{flex:0 0 auto;padding:var(--space-md) var(--space-md);background:var(--color-bg-raised);border:none;border-top:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-md);outline:none;padding-bottom:max(var(--space-md),var(--safe-bottom))}.chat-input:disabled{color:var(--color-text-faint);background:var(--color-bg)}.chat-input::placeholder{color:var(--color-text-faint)}.chat-hint{flex:0 0 auto;padding:var(--space-xs) var(--space-md) var(--space-xs);background:var(--color-bg);font-size:var(--font-xs);color:var(--color-text-faint);border-top:1px solid var(--color-border);min-height:22px}.role-card{flex:0 0 auto;margin:0 var(--space-md) var(--space-md);display:flex;flex-direction:column}.role-card-body{padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:4px}.role-card-name{font-size:var(--font-xl);font-weight:700}.role-card-name.team-village{color:var(--color-village)}.role-card-name.team-wolf{color:var(--color-wolf)}.role-card-name.team-neutral{color:var(--color-neutral)}.role-card-team{font-size:var(--font-xs);font-weight:600}.role-card-team.team-village{color:var(--color-village)}.role-card-team.team-wolf{color:var(--color-wolf)}.role-card-team.team-neutral{color:var(--color-neutral)}.role-card-ability{font-size:var(--font-sm);color:var(--color-text-muted);margin-top:var(--space-xs);line-height:var(--line-normal)}.role-card-seal{align-self:flex-end;margin-top:var(--space-sm)}.role-card-tile{align-self:center;margin-bottom:var(--space-sm)}.role-card-tile.tw-role-card{flex-shrink:0}.role-card-body.revealing{animation:role-reveal .8s var(--ease, cubic-bezier(.2, .7, .3, 1));transform-origin:center center;perspective:800px;position:relative;overflow:hidden}@keyframes role-reveal{0%{transform:rotateY(-90deg) scale(.8);opacity:0;filter:brightness(2.5)}35%{transform:rotateY(15deg) scale(1.05);opacity:1;filter:brightness(1.4)}70%{transform:rotateY(-5deg) scale(1.02);filter:brightness(1.1)}to{transform:rotateY(0) scale(1);opacity:1;filter:brightness(1)}}.role-card-body.revealing:before{content:"ᛟ";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center;font-family:var(--font-display, "Cinzel", serif);font-size:64px;font-weight:700;color:var(--gold, var(--color-accent));text-shadow:0 0 24px color-mix(in srgb,var(--gold, var(--color-accent)) 45%,transparent);background:radial-gradient(circle at 50% 40%,#2c2a52,#0b0a1a 75%);border:1px solid var(--gold-soft, var(--color-accent-line));border-radius:var(--radius-md);box-shadow:inset 0 0 40px #0009;pointer-events:none;animation:role-reveal-back .8s var(--ease, cubic-bezier(.2, .7, .3, 1)) forwards}@keyframes role-reveal-back{0%{opacity:1;transform:scale(1)}35%{opacity:1;transform:scale(1.02)}55%{opacity:0;transform:scale(1.08) rotateX(10deg)}to{opacity:0;transform:scale(1.08)}}.role-card-body.revealing:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:linear-gradient(115deg,transparent 42%,color-mix(in srgb,var(--gold, var(--color-accent)) 35%,transparent) 50%,transparent 58%);transform:translate(-130%);animation:role-reveal-shine .7s ease-out .35s}@keyframes role-reveal-shine{to{transform:translate(130%)}}@media (prefers-reduced-motion: reduce){.role-card-body.revealing{animation:role-reveal-reduced .3s ease-out}.role-card-body.revealing:before,.role-card-body.revealing:after{display:none}@keyframes role-reveal-reduced{0%{opacity:0}to{opacity:1}}}.role-card-empty{font-size:var(--font-md);color:var(--color-text);font-weight:600}.role-card-empty-sub{font-size:var(--font-xs);color:var(--color-text-muted)}.ability-bar{flex:0 0 auto;margin:0 var(--space-md) var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-bg-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.ability-label{flex:1;font-size:var(--font-sm)}.ability-label.muted{color:var(--color-text-muted)}.ability-label.active{color:var(--color-accent);font-weight:600}.ability-btn{flex-shrink:0;padding:var(--space-xs) var(--space-md);background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-sm);font-family:inherit;transition:background var(--motion-fast)}.ability-btn:hover{background:var(--color-card-hover)}.ability-btn.abstain{color:var(--color-text-muted)}.tw-role-card{aspect-ratio:5 / 8;position:relative;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 30%,var(--role-hue-a, #2A1F15) 0%,transparent 65%),linear-gradient(180deg,#1f1812,#0a0605);border:1px solid #1F1612;box-shadow:inset 0 1px #c9a9612e,inset 0 -1px #000000b3,inset 0 0 0 1px #00000080,0 3px #000;transition:transform .15s var(--ease, cubic-bezier(.2, .7, .3, 1));cursor:default;container-type:inline-size;font-family:inherit;color:inherit;padding:0}.tw-role-card.focused{border-color:var(--role-accent, #C9A961);position:relative;z-index:2;box-shadow:0 0 0 1px var(--role-accent, #C9A961),inset 0 1px #c9a96140,inset 0 0 0 1px #00000080,0 0 14px color-mix(in srgb,var(--role-accent, #C9A961) 28%,transparent)}@media (hover: hover){.tw-role-card:hover:not(.locked){transform:translateY(-2px);border-color:color-mix(in srgb,var(--role-accent, #C9A961) 60%,#1F1612)}}.tw-role-card:focus-visible{outline:2px solid var(--role-accent, #C9A961);outline-offset:2px}.tw-role-card-scratch{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(45deg,transparent 0 3px,rgba(0,0,0,.1) 3px 4px),repeating-linear-gradient(-30deg,transparent 0 17px,rgba(255,255,255,.02) 17px 18px);mix-blend-mode:overlay;opacity:.7}.tw-role-card-rivet{position:absolute;z-index:3;width:5px;height:5px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#6b5841,#1a1411);box-shadow:inset 0 0 0 .5px #000000b3,0 1px #ffffff0f;pointer-events:none}.tw-role-card-rivet-tl{top:5px;left:5px}.tw-role-card-rivet-tr{top:5px;right:5px}.tw-role-card-rivet-bl{bottom:5px;left:5px}.tw-role-card-rivet-br{bottom:5px;right:5px}.tw-role-card-tag{position:relative;z-index:2;padding:10px 12px 0;display:flex;align-items:center;gap:5px}.tw-role-card.compact .tw-role-card-tag{padding:7px 8px 0}.tw-role-card-tag-dot{width:6px;height:6px;border-radius:50%;background:var(--role-accent, #C9A961);box-shadow:0 0 6px var(--role-accent, #C9A961)}.tw-role-card-tag-label{font-family:var(--font-mono, ui-monospace);font-size:9px;font-weight:600;color:var(--role-accent, #C9A961);letter-spacing:.22em;text-transform:uppercase}.tw-role-card.compact .tw-role-card-tag-label{font-size:8px}.tw-role-card-art{flex:1;position:relative;overflow:hidden;margin:6px 10px}.tw-role-card.compact .tw-role-card-art{margin:4px 6px}.tw-role-card-rune{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--font-display, "Cinzel", "Times New Roman", serif);font-size:80cqw;font-weight:700;color:var(--role-accent, #C9A961);opacity:.16;letter-spacing:-.05em;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 0 rgba(0,0,0,.9)) drop-shadow(0 -1px 0 rgba(255,255,255,.04));z-index:1}.tw-role-card-rune-locked{color:#e8ddc866;opacity:.4;font-size:60cqw}.tw-role-card-halo{position:absolute;left:50%;top:62%;width:70%;height:20%;transform:translate(-50%,-50%);background:radial-gradient(ellipse at center,color-mix(in srgb,var(--role-accent, #C9A961) 20%,transparent) 0%,transparent 70%);pointer-events:none;z-index:1}.tw-role-card-silhouette-wrap{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:end center;padding-bottom:8px;z-index:2;pointer-events:none}.tw-role-card.compact .tw-role-card-silhouette-wrap{padding-bottom:4px}.tw-role-card-silhouette{width:62%;filter:drop-shadow(0 0 12px color-mix(in srgb,var(--role-accent, #C9A961) 33%,transparent)) drop-shadow(0 4px 6px rgba(0,0,0,.7));color:var(--role-accent, #C9A961)}.tw-role-card.compact .tw-role-card-silhouette{width:60%}.tw-role-card-stats{position:relative;z-index:2;margin:0 10px 4px;padding:8px 0;border-top:1px solid rgba(201,169,97,.18);display:flex;flex-direction:column;gap:5px}.tw-role-card-stat-row{display:flex;align-items:center;gap:7px}.tw-role-card-stat-label{font-family:var(--font-display, "Cinzel", serif);font-size:11px;font-weight:700;width:14px;text-align:center;text-shadow:0 0 6px currentColor}.tw-role-card-stat-bar{flex:1;height:6px;background:#0a0605;border:1px solid #1F1612;box-shadow:inset 0 1px 2px #000c;position:relative;overflow:hidden}.tw-role-card-stat-fill{height:100%;transition:width var(--motion-slow, .35s)}.tw-role-card-stat-num{font-family:var(--font-mono, ui-monospace);font-size:9px;color:#8b7e68;width:18px;text-align:right}.tw-role-card-nameplate{position:relative;z-index:2;margin:0 10px 10px;padding:10px 12px;background:linear-gradient(180deg,#2a211a,#1a130e,#0a0605);border:1px solid #1F1612;box-shadow:inset 0 1px #c9a96140,inset 0 -1px #000c,0 1px #ffffff0d;text-align:center}.tw-role-card.compact .tw-role-card-nameplate{margin:0 6px 6px;padding:6px 8px}.tw-role-card-nameplate-notch{position:absolute;top:50%;width:6px;height:6px;background:#1a1411;border:1px solid #2A211A;transform:translateY(-50%) rotate(45deg)}.tw-role-card-nameplate-notch-l{left:-3px}.tw-role-card-nameplate-notch-r{right:-3px}.tw-role-card-nameplate-ko{font-family:var(--font-display, "Cinzel", "Times New Roman", serif);font-size:15px;font-weight:700;color:#e8ddc8;letter-spacing:.04em;line-height:1.1;text-shadow:0 1px 0 rgba(0,0,0,.8),0 -1px 0 rgba(255,255,255,.05)}.tw-role-card.compact .tw-role-card-nameplate-ko{font-size:12px}.tw-role-card-nameplate-en{font-family:var(--font-mono, ui-monospace);font-size:8.5px;color:#8b7642;letter-spacing:.22em;text-transform:uppercase;margin-top:2px}.tw-role-card.locked{filter:grayscale(.75) brightness(.6);cursor:pointer}.tw-role-card.locked:hover{filter:grayscale(.55) brightness(.75)}.lobby-panel{display:none;flex-direction:column;gap:var(--space-sm);margin:0 var(--space-md) var(--space-md);flex:0 0 auto}.lobby-panel .section-card{padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.lobby-panel .section-title{margin-bottom:var(--space-xs)}.lobby-code-btn{font-family:var(--font-mono);font-size:var(--font-lg);font-weight:700;color:var(--color-accent);background:var(--color-bg-raised);border:1px dashed var(--color-accent-line);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);letter-spacing:2px;transition:background var(--motion-fast)}.lobby-code-btn:hover{background:var(--color-accent-soft)}.lobby-invite-btn{margin-top:var(--space-xs);font-size:var(--font-sm);font-weight:600;color:var(--color-text-muted);background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);transition:background var(--motion-fast),color var(--motion-fast)}.lobby-invite-btn:hover{background:var(--color-accent-soft);color:var(--color-accent)}.lobby-info{position:relative}.lobby-friend-popup{position:absolute;top:100%;left:0;right:0;z-index:10;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-xs);margin-top:4px;display:flex;flex-direction:column;gap:2px;max-height:200px;overflow-y:auto}.lobby-friend-empty{color:var(--color-text-faint);font-size:var(--font-sm);padding:var(--space-xs) var(--space-sm)}.lobby-friend-row{background:transparent;border:none;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);text-align:left;color:var(--color-text);font-family:inherit;font-size:var(--font-sm);cursor:pointer}.lobby-friend-row:hover{background:var(--color-card-hover)}.lobby-friend-row:disabled{opacity:.6;cursor:default}.lobby-meta{font-size:var(--font-sm);color:var(--color-text-muted)}.lobby-ready-btn{padding:var(--space-md);background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-md);font-weight:600;font-family:inherit;transition:background var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast)}.lobby-ready-btn:hover{background:var(--color-card-hover)}.lobby-ready-btn.on{background:#a8e6a826;border-color:var(--color-success);color:var(--color-success)}.lobby-comp-list{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.lobby-comp-empty{font-size:var(--font-sm);color:var(--color-text-faint);font-style:italic}.lobby-comp-chip{padding:2px var(--space-sm);border-radius:var(--radius-pill);font-size:var(--font-xs);font-weight:600;background:var(--color-card)}.lobby-comp-chip.team-village{background:var(--color-village-soft);color:var(--color-village)}.lobby-comp-chip.team-wolf{background:var(--color-wolf-soft);color:var(--color-wolf)}.lobby-comp-chip.team-neutral{background:var(--color-neutral-soft);color:var(--color-neutral)}.lobby-start-btn{padding:var(--space-md);background:var(--color-accent-soft);border:1px solid var(--color-accent-line);border-radius:var(--radius-md);color:var(--color-accent);font-size:var(--font-md);font-weight:700;font-family:inherit;transition:background var(--motion-fast)}.lobby-start-btn:hover:not(:disabled){background:#ffd76a4d}.lobby-start-btn:disabled{opacity:.4;cursor:not-allowed}.lobby-start-hint{font-size:var(--font-xs);color:var(--color-text-muted);text-align:center}#end-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:var(--z-modal);display:none;align-items:center;justify-content:center;padding:var(--space-md);padding-top:max(var(--space-md),var(--safe-top));padding-bottom:max(var(--space-md),var(--safe-bottom))}.end-screen-dialog{position:relative;width:100%;max-width:560px;max-height:90vh;background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);box-shadow:var(--shadow-lg);overflow:hidden}.end-screen-dialog:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.72;pointer-events:none;background:linear-gradient(45deg,transparent 46%,rgba(255,215,106,.65) 47%,rgba(255,215,106,.65) 53%,transparent 54%) 12% 10% / 14px 14px no-repeat,linear-gradient(-35deg,transparent 46%,rgba(128,221,175,.55) 47%,rgba(128,221,175,.55) 53%,transparent 54%) 82% 14% / 12px 12px no-repeat,linear-gradient(20deg,transparent 46%,rgba(255,120,120,.45) 47%,rgba(255,120,120,.45) 53%,transparent 54%) 24% 84% / 10px 10px no-repeat,linear-gradient(-20deg,transparent 46%,rgba(255,215,106,.5) 47%,rgba(255,215,106,.5) 53%,transparent 54%) 76% 78% / 16px 16px no-repeat;animation:end-celebration-confetti .9s ease-out both}.end-screen-title{position:relative;font-size:var(--font-2xl);font-weight:700;text-align:center;padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.end-screen-title:after{content:"";position:absolute;left:50%;bottom:6px;width:80px;height:3px;border-radius:var(--radius-pill);background:linear-gradient(90deg,transparent,var(--color-accent),transparent);transform:translate(-50%);animation:end-celebration-badge 1.2s ease-out both}.end-screen-title[data-tone=village]{color:var(--color-village)}.end-screen-title[data-tone=wolf]{color:var(--color-wolf)}.end-screen-title[data-tone=neutral]{color:var(--color-neutral)}.end-screen-stats{display:flex;justify-content:center;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.end-screen-stat{font-family:var(--font-mono, ui-monospace);font-size:var(--font-xs);letter-spacing:.08em;color:var(--color-text-muted, var(--ink-mute));padding:2px var(--space-sm);border:1px solid var(--line, var(--color-border));border-radius:var(--radius-pill, 999px)}.end-screen-stat-outcome{font-weight:700}.end-screen-stats[data-tone=village] .end-screen-stat-outcome{color:var(--color-village);border-color:color-mix(in srgb,var(--color-village) 45%,transparent)}.end-screen-stats[data-tone=wolf] .end-screen-stat-outcome{color:var(--color-wolf);border-color:color-mix(in srgb,var(--color-wolf) 45%,transparent)}.end-screen-stats[data-tone=neutral] .end-screen-stat-outcome{color:var(--color-neutral);border-color:color-mix(in srgb,var(--color-neutral) 45%,transparent)}.end-screen-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-xs);padding-right:var(--space-xs)}.end-screen-card{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.end-screen-actions{display:flex;gap:4px}.end-screen-action-btn{background:transparent;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);padding:2px var(--space-sm);font-size:var(--font-xs);cursor:pointer}.end-screen-action-btn:hover:not(:disabled){background:var(--color-accent-soft);color:var(--color-accent)}.end-screen-action-btn:disabled{opacity:.5;cursor:not-allowed}.end-screen-card.self{background:var(--color-accent-soft);border-color:var(--color-accent-line)}.end-screen-card.dead{opacity:.6}.end-screen-name{color:var(--color-text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.end-screen-card.self .end-screen-name{color:var(--color-accent)}.end-screen-role{font-size:var(--font-sm);font-weight:600;padding:2px var(--space-sm);border-radius:var(--radius-pill);background:var(--color-card)}.end-screen-role.team-village{background:var(--color-village-soft);color:var(--color-village)}.end-screen-role.team-wolf{background:var(--color-wolf-soft);color:var(--color-wolf)}.end-screen-role.team-neutral{background:var(--color-neutral-soft);color:var(--color-neutral)}.end-screen-status{font-size:var(--font-xs);color:var(--color-text-muted);min-width:36px;text-align:right}.end-screen-card.dead .end-screen-status{color:var(--color-wolf)}.end-screen-timeline{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 var(--space-md)}.end-screen-timeline>summary{cursor:pointer;padding:var(--space-sm) 0;font-size:var(--font-sm);font-weight:600;color:var(--color-accent);list-style:none;-webkit-user-select:none;user-select:none}.end-screen-timeline>summary::-webkit-details-marker{display:none}.end-screen-timeline-list{max-height:200px;overflow-y:auto;padding:var(--space-xs) 0 var(--space-sm);display:flex;flex-direction:column;gap:2px;font-size:var(--font-xs)}.end-timeline-row{display:flex;align-items:baseline;gap:var(--space-xs);padding:2px var(--space-xs);color:var(--color-text)}.end-timeline-row.phase-divider{justify-content:center;color:var(--color-text-faint);font-weight:600;padding:var(--space-xs) 0}.end-timeline-icon{width:18px;text-align:center;flex-shrink:0}.end-timeline-text{flex:1}.end-timeline-row.type-death .end-timeline-text{color:var(--color-wolf)}.end-timeline-row.type-save .end-timeline-text{color:var(--color-success)}.end-timeline-row.type-investigation .end-timeline-text{color:var(--color-village)}.end-timeline-row.type-vote_result .end-timeline-text{color:var(--color-accent)}.end-screen-timeline-empty{color:var(--color-text-faint);font-style:italic;text-align:center;padding:var(--space-sm) 0}.end-screen-footer{display:flex;gap:var(--space-sm);align-items:center;padding-top:var(--space-md);border-top:1px solid var(--color-border)}.end-screen-restart-btn{flex:1;padding:var(--space-md);background:var(--color-accent-soft);border:1px solid var(--color-accent-line);border-radius:var(--radius-md);color:var(--color-accent);font-size:var(--font-md);font-weight:700;font-family:inherit}.end-screen-restart-btn:hover{background:#ffd76a4d}.end-screen-host-hint{flex:1;text-align:center;font-size:var(--font-sm);color:var(--color-text-muted)}.end-screen-spectate-btn{padding:var(--space-md) var(--space-lg);background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-sm);font-family:inherit}.end-screen-spectate-btn:hover{background:var(--color-card-hover)}@keyframes end-celebration-confetti{0%{opacity:0;transform:translateY(-10px) scale(.96)}45%{opacity:1}to{opacity:.72;transform:translateY(0) scale(1)}}@keyframes end-celebration-badge{0%{opacity:0;width:20px}to{opacity:1;width:80px}}@media (prefers-reduced-motion: reduce){.end-screen-dialog:before,.end-screen-title:after{animation:none}}.tw-toast-stack{position:fixed;top:max(var(--space-md),env(safe-area-inset-top));right:max(var(--space-md),env(safe-area-inset-right));z-index:9999;display:flex;flex-direction:column;gap:var(--space-xs);pointer-events:none}.tw-toast{pointer-events:auto;min-width:220px;max-width:min(360px,calc(100vw - 32px));padding:var(--space-sm) var(--space-md);background:var(--color-bg-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--color-text);font-size:var(--font-sm);opacity:0;transform:translateY(-8px);transition:opacity .22s ease,transform .22s ease}.tw-toast.show{opacity:1;transform:translateY(0)}.tw-toast-title{font-weight:700;margin-bottom:2px}.tw-toast-body{font-size:var(--font-xs);color:var(--color-text-muted)}.tw-toast-info{border-left:3px solid var(--color-accent)}.tw-toast-success{border-left:3px solid var(--color-success)}.tw-toast-warn{border-left:3px solid var(--color-wolf)}.tw-toast-error{border-left:3px solid var(--color-wolf);background:var(--color-wolf-soft)}.tw-noise{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.025) 1px,transparent 1px),radial-gradient(rgba(0,0,0,.04) 1px,transparent 1px);background-size:3px 3px,5px 5px;background-position:0 0,1px 2px;mix-blend-mode:overlay;opacity:.5}.tw-corner{position:absolute;width:14px;height:14px;border:1px solid var(--line-2);pointer-events:none}.tw-corner-tl{top:6px;left:6px;border-right:0;border-bottom:0}.tw-corner-tr{top:6px;right:6px;border-left:0;border-bottom:0}.tw-corner-bl{bottom:6px;left:6px;border-right:0;border-top:0}.tw-corner-br{bottom:6px;right:6px;border-left:0;border-top:0}.tw-rule{display:flex;align-items:center;gap:10px;color:var(--gold);opacity:.6}.tw-rule:before,.tw-rule:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--line-2),transparent)}.tw-rule-diamond{width:5px;height:5px;background:var(--gold);transform:rotate(45deg);opacity:.7}.tw-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line-2);background:linear-gradient(180deg,var(--surface-2),var(--surface));color:var(--ink);font-family:var(--font-text);font-size:14px;font-weight:600;letter-spacing:.01em;padding:12px 18px;border-radius:var(--r-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease);position:relative}.tw-btn:hover{border-color:var(--line-strong);transform:translateY(-1px)}.tw-btn:active{transform:translateY(0)}.tw-btn:focus-visible{outline:2px solid var(--gold-glow);outline-offset:2px}.tw-btn-primary{background:linear-gradient(180deg,var(--blood-glow) -20%,var(--blood) 50%,var(--blood-deep) 120%);border-color:var(--blood-deep);color:#fff8f0;box-shadow:var(--shadow-blood)}.tw-btn-primary:hover{box-shadow:var(--shadow-blood),0 0 24px #e84b4b59}.tw-btn-ghost{background:transparent;border-color:var(--line)}.tw-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);background:var(--ink-ghost)}.tw-chip-blood{color:var(--blood-glow);border-color:#b0211e66;background:#b0211e14}.tw-chip-gold{color:var(--gold-glow);border-color:#c9a96166;background:#c9a96114}.tw-chip-moon{color:var(--moon-glow);border-color:#6e7fa866;background:#6e7fa81a}.tw-card{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:var(--r-md);position:relative;overflow:hidden}.tw-parchment{background:radial-gradient(ellipse at 50% 50%,var(--surface-2),var(--surface) 70%);border:1px solid var(--line);position:relative}.tw-parchment:before,.tw-parchment:after{content:"";position:absolute;left:0;right:0;height:8px;background-image:radial-gradient(circle at 4px 0,var(--bg) 4px,transparent 4.5px);background-size:8px 8px;background-repeat:repeat-x;pointer-events:none;z-index:1}.tw-parchment:before{top:-1px}.tw-parchment:after{bottom:-1px;transform:scaleY(-1)}.tw-seal{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:radial-gradient(circle at 30% 30%,var(--blood-glow),var(--blood) 60%,var(--blood-deep));box-shadow:0 0 0 1px var(--blood-deep),0 2px 4px #00000080;color:#fff8f0;font-family:var(--font-display);font-weight:700;font-size:12px;position:relative}.tw-seal:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px dashed rgba(255,248,240,.3);border-radius:999px}.tw-timer-ring{transform:rotate(-90deg)}[dir=rtl] .tw-mirror{transform:scaleX(-1)}.tw-segmented{display:inline-flex;gap:0;border:1px solid var(--line, rgba(201, 169, 97, .14));border-radius:var(--r-sm, 8px);overflow:hidden;background:var(--surface, var(--color-bg-raised))}.tw-segmented-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-right:1px solid var(--line, rgba(201, 169, 97, .14));color:var(--ink-mute, var(--color-text-muted));font-family:inherit;font-size:13px;font-weight:600;padding:8px 14px;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}.tw-segmented-btn:last-child{border-right:0}.tw-segmented-btn:hover{background:color-mix(in srgb,var(--gold, var(--color-accent)) 8%,transparent);color:var(--ink, var(--color-text))}.tw-segmented-btn.active{background:var(--surface-2, var(--color-card));border:1px solid var(--line-2, var(--color-border-strong));color:var(--gold, var(--color-accent))}.tw-toggle{display:inline-flex;align-items:center;position:relative;flex-shrink:0}.tw-toggle-input{position:absolute;opacity:0;width:44px;height:26px;margin:0;cursor:pointer;z-index:2}.tw-toggle-track{display:inline-block;position:relative;width:44px;height:26px;border-radius:999px;background:var(--surface, var(--color-card));border:1px solid var(--line, rgba(201, 169, 97, .14));transition:background .2s var(--ease),border-color .2s var(--ease);pointer-events:none}.tw-toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:linear-gradient(180deg,#6b5841,#1a1411);box-shadow:inset 0 1px #ffffff1a,0 1px 2px #0009;transition:transform .2s var(--ease)}.tw-toggle-input:checked~.tw-toggle-track{background:linear-gradient(180deg,var(--blood-glow, #E84B4B),var(--blood, #B0211E));border-color:var(--blood-deep, #6B0F0E);box-shadow:inset 0 0 4px #00000080}.tw-toggle-input:checked~.tw-toggle-track>.tw-toggle-knob{transform:translate(18px);background:linear-gradient(180deg,#fff8f0,#c9a961)}.tw-toggle-input:disabled~.tw-toggle-track{opacity:.4;cursor:not-allowed}.tw-toggle-input:focus-visible~.tw-toggle-track{outline:2px solid var(--gold-glow, var(--color-accent));outline-offset:2px}.tw-night-scan{background-image:repeating-linear-gradient(0deg,rgba(110,127,168,.025) 0px,rgba(110,127,168,.025) 1px,transparent 1px,transparent 3px)}
