:root{color-scheme:light;--bg: #f4eee4;--bg-accent: radial-gradient(1200px 600px at 10% -10%, rgba(179, 38, 30, .07), transparent 60%), radial-gradient(900px 500px at 110% 10%, rgba(200, 150, 43, .08), transparent 60%);--surface: #fffdf9;--surface-2: #f8f2e8;--surface-3: #efe5d4;--surface-raised: #ffffff;--overlay: rgba(28, 18, 10, .5);--border: #e7ddcc;--border-strong: #d4c3a6;--text: #2a211a;--text-2: #5c4e42;--muted: #736353;--on-primary: #ffffff;--primary: #b3261e;--primary-hover: #961e17;--primary-ink: #b3261e;--primary-soft: #f9e5e1;--primary-ring: rgba(179, 38, 30, .28);--gold: #c8962b;--gold-soft: #f8eed6;--gold-ink: #7a5a10;--ok: #2e7d4f;--ok-soft: #e2f2e8;--warn: #a35d00;--warn-soft: #fff0d4;--danger: #c0392b;--danger-soft: #fbe5e2;--info: #2b6cb0;--info-soft: #e4eef9;--medal-gold: #d4a017;--medal-silver: #9aa3a8;--medal-bronze: #b0703c;--clock-bg: var(--surface-2);--clock-text: var(--text-2);--clock-run-bg: #2a211a;--clock-run-text: #ffffff;--clock-low-bg: #c0392b;--radius-xs: 6px;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(60, 40, 20, .08);--shadow: 0 1px 2px rgba(60, 40, 20, .06), 0 4px 16px rgba(60, 40, 20, .07);--shadow-lg: 0 12px 40px rgba(40, 25, 10, .22);--focus-ring: 0 0 0 3px var(--primary-ring);--header-h: 60px;--bottom-nav-h: 0px;--content-max: 1440px;--gutter: 20px;--safe-bottom: env(safe-area-inset-bottom, 0px);--font: "Be Vietnam Pro", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, "Courier New", monospace;--font-han: KaiTi, STKaiti, "Kaiti SC", "Noto Serif SC", "Noto Serif CJK SC", "Songti SC", SimSun, serif;--ease: cubic-bezier(.2, .7, .2, 1);--dur: .16s}:root[data-theme=dark]{color-scheme:dark;--bg: #14110e;--bg-accent: radial-gradient(1200px 600px at 10% -10%, rgba(224, 87, 74, .1), transparent 60%), radial-gradient(900px 500px at 110% 10%, rgba(224, 177, 74, .07), transparent 60%);--surface: #1e1915;--surface-2: #27211c;--surface-3: #312922;--surface-raised: #241e19;--overlay: rgba(0, 0, 0, .6);--border: #372e26;--border-strong: #4b3f34;--text: #f3ebe1;--text-2: #cfc2b3;--muted: #9b8d7e;--on-primary: #ffffff;--primary: #c23a2e;--primary-hover: #b03328;--primary-ink: #ec7064;--primary-soft: rgba(217, 72, 59, .16);--primary-ring: rgba(230, 93, 80, .4);--gold: #e0b14a;--gold-soft: rgba(224, 177, 74, .14);--gold-ink: #f0cf7d;--ok: #5cc08a;--ok-soft: rgba(92, 192, 138, .14);--warn: #e7a74c;--warn-soft: rgba(231, 167, 76, .14);--danger: #f06b5e;--danger-soft: rgba(240, 107, 94, .14);--info: #6aa8e8;--info-soft: rgba(106, 168, 232, .14);--clock-bg: var(--surface-3);--clock-text: var(--text-2);--clock-run-bg: #f3ebe1;--clock-run-text: #14110e;--clock-low-bg: #d9483b;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 2px rgba(0, 0, 0, .35), 0 6px 20px rgba(0, 0, 0, .3);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .55)}@media(max-width:760px){:root{--header-h: 56px;--bottom-nav-h: 62px;--gutter: 12px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;min-height:100vh;min-height:100dvh;font-family:var(--font);font-size:15px;line-height:1.5;color:var(--text);background:var(--bg);background-image:var(--bg-accent);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4{margin:0;line-height:1.25;font-weight:700;letter-spacing:-.01em}p{margin:0 0 10px}a{color:var(--primary-ink);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}button,input,select,textarea{font:inherit;color:inherit}button{-webkit-tap-highlight-color:transparent}img,svg{vertical-align:middle}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::selection{background:var(--primary-soft)}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.75rem}.error{color:var(--danger)}.pos{color:var(--ok);font-weight:700}.neg{color:var(--danger);font-weight:700}.warn-text{color:var(--warn)}.nowrap{white-space:nowrap}.num{font-variant-numeric:tabular-nums}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.row{display:flex;align-items:center}.row.gap{gap:10px}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}.grow{flex:1;min-width:0}.icon{flex:none;display:inline-block}.btn{--btn-h: 40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--btn-h);padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text);font-weight:600;font-size:.95rem;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;user-select:none;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform 80ms var(--ease)}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:0 1px #ffffff26 inset,0 2px 6px #961e1740}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{background:var(--surface-raised);border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}.btn-danger:hover{background:var(--danger-soft)}.btn-ghost{background:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-quiet{background:transparent;border-color:transparent;color:var(--text-2)}.btn-quiet:hover{background:var(--surface-2);color:var(--text)}.btn-soft{background:var(--primary-soft);border-color:transparent;color:var(--primary-ink)}.btn-soft:hover{background:color-mix(in srgb,var(--primary-soft) 70%,var(--primary) 12%)}.btn-sm{--btn-h: 34px;padding:0 12px;font-size:.875rem;gap:6px}.btn-lg{--btn-h: 50px;padding:0 22px;font-size:1.05rem;border-radius:var(--radius)}.btn-block{width:100%}.btn-icon{padding:0;width:var(--btn-h);flex:none}.link-btn{background:none;border:0;padding:0;color:var(--primary-ink);cursor:pointer;font-weight:600;text-decoration:underline;text-underline-offset:2px}.link-btn:disabled{opacity:.6;cursor:default}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);padding:3px;gap:2px;max-width:100%}.seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent;min-height:32px;padding:0 14px;border-radius:var(--radius-pill);cursor:pointer;font-weight:600;font-size:.9rem;color:var(--text-2);white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.seg button:hover{color:var(--text)}.seg button.active{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}.seg-sm button{min-height:28px;padding:0 10px;font-size:.82rem}.seg-block{display:flex;width:100%}.seg-block button{flex:1}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input:not([type]),select,textarea{width:100%;min-height:42px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}input[readonly]{background:var(--surface-2)}input[type=checkbox],input[type=radio]{accent-color:var(--primary);width:18px;height:18px;margin:0}fieldset{min-width:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:18px}.panel+.panel{margin-top:16px}.panel-title{font-size:1.15rem;margin-bottom:12px}.page-title{font-size:1.5rem;margin-bottom:14px}.section-label{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.narrow{max-width:460px;margin:24px auto}.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.82rem;margin:6px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.notice{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:.9rem;margin:0}.notice>.icon{margin-top:1px}.notice.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.notice.warn>.icon{color:var(--warn)}.notice.info{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 28%,transparent)}.notice.info>.icon{color:var(--info)}.notice.offer{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,transparent);justify-content:space-between;align-items:center;flex-wrap:wrap}.notice.danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;background:var(--surface-3);color:var(--text-2);white-space:nowrap}.chip-primary{background:var(--primary-soft);color:var(--primary-ink)}.chip-gold{background:var(--gold-soft);color:var(--gold-ink)}.chip-ok{background:var(--ok-soft);color:var(--ok)}.chip-danger{background:var(--danger-soft);color:var(--danger)}.role-tag{display:inline-flex;align-items:center;font-size:.72rem;font-weight:700;background:var(--primary);color:var(--on-primary);padding:2px 8px;border-radius:var(--radius-pill);letter-spacing:.02em}.avatar{border-radius:50%;object-fit:cover;flex:none;display:inline-block;background:var(--surface-3)}.avatar-initials{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;letter-spacing:.02em}.tier-badge{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;white-space:nowrap}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}.table th{color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2)}.table th:first-child{border-top-left-radius:var(--radius-sm)}.table th:last-child{border-top-right-radius:var(--radius-sm)}.table tbody tr:hover td{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.pager{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:12px}.modal-backdrop{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:fade-in var(--dur) var(--ease);backdrop-filter:blur(2px)}.modal{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:22px;width:min(440px,100%);max-height:calc(100dvh - 32px);overflow:auto;animation:pop-in .2s var(--ease)}.modal-title{font-size:1.35rem;margin-bottom:10px}.modal-body{color:var(--text-2)}.modal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:18px}@media(max-width:760px){.modal-backdrop{align-items:flex-end;padding:0}.modal{width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:20px 18px calc(18px + var(--safe-bottom));animation:sheet-in .22s var(--ease)}.modal-actions{flex-direction:column-reverse}.modal-actions>.btn{width:100%;--btn-h: 46px}}.toasts{position:fixed;bottom:calc(16px + var(--bottom-nav-h) + var(--safe-bottom));left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;width:min(420px,calc(100% - 24px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius);background:#2a211a;color:#fff;box-shadow:var(--shadow-lg);cursor:pointer;font-size:.92rem;font-weight:500;animation:toast-in .22s var(--ease)}:root[data-theme=dark] .toast{background:#3a3029}.toast-success{background:#2e7d4f!important}.toast-error{background:#b3261e!important}.toast-warn{background:#9a5800!important}.toast-info .icon{color:#9cc6f2}.spinner-wrap{display:flex;align-items:center;justify-content:center;gap:10px;padding:28px;color:var(--muted)}.spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.2s linear infinite}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 12px;text-align:center;color:var(--muted)}.empty .icon{color:var(--border-strong)}.form{display:flex;flex-direction:column;gap:14px}.form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.9rem}.hint{font-weight:400;color:var(--muted);font-size:.8rem}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:.4}to{opacity:1}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(6px) scale(.98)}}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes bounce{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-6px);opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:760px){body{font-size:15px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input:not([type]),select,textarea{font-size:16px;min-height:44px}.btn{--btn-h: 44px}.btn-sm{--btn-h: 38px}.btn-lg{--btn-h: 52px}.panel{padding:16px;border-radius:var(--radius)}.page-title{font-size:1.3rem}}.modal-icon{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}.modal-icon.tone-primary{background:var(--primary-soft);color:var(--primary-ink)}.modal-icon.tone-danger{background:var(--danger-soft);color:var(--danger)}.modal-icon.tone-ok{background:var(--ok-soft);color:var(--ok)}.modal-icon.tone-warn{background:var(--warn-soft);color:var(--warn)}.modal-icon.tone-gold{background:var(--gold-soft);color:var(--gold-ink)}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.header{position:sticky;top:0;z-index:40;height:var(--header-h);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border)}.header-inner{height:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;gap:14px}.brand{display:flex;align-items:center;gap:10px;color:var(--text);flex:none}.brand:hover{text-decoration:none}.brand-logo{width:36px;height:36px;flex:none;filter:drop-shadow(0 2px 3px rgba(120,30,20,.25))}.brand-text{display:flex;flex-direction:column;line-height:1.05}.brand-name{font-weight:800;font-size:1.12rem;letter-spacing:-.02em;color:var(--primary-ink)}.brand-sub{font-size:.68rem;font-weight:600;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.header-games .game-icon{width:18px;height:18px}.header-nav{display:flex;align-items:center;gap:2px}.nav-link{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--radius-pill);color:var(--text-2);font-weight:600;font-size:.92rem;white-space:nowrap}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link.active{color:var(--primary-ink);background:var(--primary-soft)}.header-spacer{flex:1;min-width:0}.header-actions{display:flex;align-items:center;gap:6px;flex:none}.conn-status{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:var(--radius-pill);background:var(--warn-soft);color:var(--warn);font-size:.8rem;font-weight:600;white-space:nowrap}.conn-status .icon{animation:pulse .9s infinite alternate}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--text-2);cursor:pointer;flex:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.auth-links{display:flex;gap:6px}.guest-avatar{display:inline-grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--surface-3);color:var(--text-2);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--border-strong)}.guest-avatar.is-lg{width:40px;height:40px;box-shadow:none}.guest-btn .user-name{font-weight:500;font-size:.88rem;color:var(--text-2)}.dropdown-note{margin:0 0 4px;padding:0 10px 6px;font-size:.82rem;color:var(--text-2)}.guest-error>.icon{color:var(--danger)}.guest-error-actions .icon{color:inherit}.guest-error-title{margin:0;font-size:1.15rem;color:var(--text)}.guest-error-msg{margin:0;max-width:36ch;color:var(--text-2)}.guest-error-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px}.user-menu{position:relative}.user-btn{display:flex;align-items:center;gap:8px;height:40px;background:none;border:1px solid transparent;border-radius:var(--radius-pill);padding:2px 10px 2px 2px;cursor:pointer;color:var(--text);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.user-btn:hover,.user-btn[aria-expanded=true]{border-color:var(--border);background:var(--surface-2)}.user-btn .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--border-strong)}.user-name{font-weight:600;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-btn .chevron{color:var(--muted)}.dropdown{position:absolute;right:0;top:calc(100% + 8px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:230px;display:flex;flex-direction:column;padding:6px;z-index:50;animation:pop-in .16s var(--ease)}.dropdown-head{display:flex;align-items:center;gap:10px;padding:8px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}.dropdown-head .grow>div:first-child{font-weight:700}.dropdown a,.dropdown button.menu-item{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:var(--radius-sm);background:none;border:0;text-align:left;cursor:pointer;color:var(--text);font-weight:500;width:100%}.dropdown a .icon,.dropdown button.menu-item .icon{color:var(--muted)}.dropdown a:hover,.dropdown button.menu-item:hover{background:var(--surface-2);text-decoration:none}.dropdown-sep{height:1px;background:var(--border);margin:6px 0}.theme-switch{display:flex;flex-direction:column;gap:6px;padding:6px 10px 8px}.theme-switch .seg{display:flex}.theme-switch .seg button{flex:1;padding:0 8px}.banner{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding:9px var(--gutter);font-size:.9rem;text-align:center}.banner .icon{flex:none}.banner-warn{background:var(--warn-soft);color:var(--text);border-bottom:1px solid color-mix(in srgb,var(--warn) 25%,transparent)}.banner-warn .icon{color:var(--warn)}.banner-info{background:var(--info-soft);color:var(--text);border-bottom:1px solid color-mix(in srgb,var(--info) 25%,transparent)}.banner-info .icon{color:var(--info)}.banner-danger{background:var(--danger-soft);color:var(--text);border-bottom:1px solid color-mix(in srgb,var(--danger) 30%,transparent)}.banner-danger .icon{color:var(--danger)}.banner-danger .btn .icon{color:inherit}.banner-danger>span{flex:0 1 auto;min-width:0}.banner-short{display:none}.header-game-fixed{display:inline-flex;align-items:center;gap:7px;flex:none;height:36px;padding:0 14px 0 12px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-weight:700;font-size:.9rem;white-space:nowrap;cursor:default}.header-game-fixed .game-icon{width:18px;height:18px}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.layout{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:20px var(--gutter) calc(28px + var(--bottom-nav-h) + var(--safe-bottom))}.content{min-width:0;container:content / inline-size}.footer{text-align:center;padding:0 var(--gutter) 22px;color:var(--muted);font-size:.8rem}.footer a{color:var(--text-2);text-decoration:underline;text-underline-offset:2px}.footer a:hover{color:var(--primary-ink)}.bottom-nav,.gnav{display:none}@media(min-width:761px){.app.game-frame{--gnav-w: 216px;--header-h: 0px;flex-direction:row}.app.game-frame.gnav-collapsed{--gnav-w: 68px}.app.game-frame .header,.app.game-frame .footer{display:none}.app.game-frame .layout{max-width:none;padding:20px 20px 16px}.gnav{position:sticky;top:0;z-index:40;flex:none;width:var(--gnav-w);height:100vh;height:100dvh;display:flex;flex-direction:column;gap:4px;padding:14px 10px 12px;background:linear-gradient(180deg,color-mix(in srgb,var(--primary-soft) 55%,var(--surface)),var(--surface) 46%);border-right:1px solid var(--border);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;transition:width .2s var(--ease)}.gnav-brand{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 6px 10px;margin-bottom:6px;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none;white-space:nowrap}.gnav-brand:hover{text-decoration:none}.gnav-logo{flex:none;filter:drop-shadow(0 2px 3px rgba(120,30,20,.25))}.gnav-brand-text{display:flex;flex-direction:column;line-height:1.05;min-width:0}.gnav-items,.gnav-bottom{display:flex;flex-direction:column;gap:2px}.gnav-spacer{flex:1;min-height:12px}.gnav-bottom{padding-top:8px;border-top:1px solid var(--border)}.gnav-item{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:none;color:var(--text-2);font-weight:600;font-size:.92rem;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.gnav-item .icon{flex:none}.gnav-item:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.gnav-item.active{background:var(--primary-soft);color:var(--primary-ink)}.gnav-item:focus-visible{outline:none;box-shadow:var(--focus-ring)}.gnav-user .avatar{margin:0 -4px}.gnav-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.gnav-conn{display:flex;align-items:center;gap:12px;min-height:36px;padding:0 12px;margin-bottom:4px;border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);font-size:.82rem;font-weight:600;white-space:nowrap}.gnav-conn .icon{flex:none;animation:pulse .9s infinite alternate}.gnav.collapsed .gnav-brand-text,.gnav.collapsed .gnav-label{display:none}.gnav.collapsed .gnav-brand{justify-content:center;padding:0 0 10px}.gnav.collapsed .gnav-item,.gnav.collapsed .gnav-conn{justify-content:center;padding:0}.gnav.collapsed .gnav-collapse .icon{transform:scaleX(-1)}}@media(min-width:761px)and (max-width:1199px){.app.game-frame{--gnav-w: 68px}.gnav .gnav-brand-text,.gnav .gnav-label,.gnav .gnav-collapse{display:none}.gnav .gnav-brand{justify-content:center;padding:0 0 10px}.gnav .gnav-item,.gnav .gnav-conn{justify-content:center;padding:0}}@media(min-width:761px)and (max-height:820px){.app.game-frame .layout{padding-bottom:12px}}@media(max-width:1199px){.brand-sub,.guest-btn .user-name,.header-nav .nav-text{display:none}.header-nav .nav-link{padding:0 10px}}@media(max-width:1024px){.guest-register{display:none}}@media(max-width:960px){.brand-text,.user-name,.user-btn .chevron,.header-games .game-icon{display:none}.user-btn{padding:2px}}@media(max-width:760px){.header-inner{gap:8px}.brand-text,.header-nav,.user-name,.user-btn .chevron,.header-theme,.footer{display:none}.brand-logo{width:34px;height:34px}.header-games .game-icon{display:none}.header-games button{padding:0 12px}.user-btn{padding:2px}.conn-status .conn-text{display:none}.conn-status{padding:0 8px}.header-game-fixed{padding:0 12px}.banner-compact{flex-wrap:nowrap;justify-content:flex-start;gap:8px;padding:6px var(--gutter);font-size:.82rem;line-height:1.3;text-align:left}.banner-compact .banner-long{display:none}.banner-compact .banner-short{display:inline;flex:1;min-width:0}.banner-compact .link-btn,.banner-compact .btn{flex:none;white-space:nowrap}.banner-danger{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px 8px;padding:8px var(--gutter);text-align:left;font-size:.85rem;line-height:1.4}.banner-danger>.icon{margin-top:1px}.banner-danger>.btn{grid-column:2;justify-self:start}.layout{padding-top:12px}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:45;height:calc(var(--bottom-nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-top:1px solid var(--border);box-shadow:0 -4px 18px #28190a0f}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;color:var(--muted);font-size:.68rem;font-weight:600;white-space:nowrap;padding:6px 2px 4px;text-decoration:none;position:relative}.bottom-nav a.active{color:var(--primary-ink)}.bottom-nav a.active:before{content:"";position:absolute;top:0;left:28%;right:28%;height:3px;border-radius:0 0 3px 3px;background:var(--primary)}.bottom-nav .nav-ico{display:inline-flex;align-items:center;justify-content:center;width:42px;height:28px;border-radius:var(--radius-pill);transition:background var(--dur) var(--ease)}.bottom-nav a.active .nav-ico{background:var(--primary-soft)}.app.in-game{--bottom-nav-h: 0px}.app.in-game .bottom-nav,.guest-register{display:none}}@media(max-width:380px){.header-games button{padding:0 9px;font-size:.84rem}.bottom-nav a{font-size:.64rem}.bottom-nav .nav-ico{width:38px}}@media(max-width:340px){.header-actions .auth-links{display:none}}@media(min-width:761px){.app.game-frame.focus-mode{--gnav-w: 0px}.app.game-frame.focus-mode .gnav{display:none}}.board-wrap{--board-reserve: 232px;--board-ratio: 1;--board-max: 640px;--board-min: 300px;--xq-wood-1: #f8e0b0;--xq-wood-2: #ecc78f;--xq-wood-3: #d8a768;--xq-ink: #3f2614;--xq-ink-soft: rgba(63, 38, 20, .6);--xq-river: rgba(255, 246, 225, .22);--xq-grain: .34;--xq-face-1: #fffaf0;--xq-face-2: #f7e4c0;--xq-face-3: #e3bf86;--xq-face-line: rgba(122, 76, 32, .55);--xq-edge-1: #c48b4c;--xq-edge-2: #85521f;--xq-red: #b21f19;--xq-black: #1e1915;--cb-frame-1: #74492a;--cb-frame-2: #462913;--cb-light: #efdab6;--cb-dark: #b98a62;--cb-grain: .24;--cb-coord: rgba(255, 238, 210, .82);--cb-last: rgba(214, 205, 58, .5);--cb-sel: rgba(35, 132, 76, .5);--cp-white-1: #ffffff;--cp-white-2: #e5dac7;--cp-white-line: #2b241e;--cp-black-1: #5e5650;--cp-black-2: #1a1714;--cp-black-line: #0d0b09;--cp-black-detail: #efe5d5;--board-move: #1d7d45;--board-last: #1f63cf;--board-check: #e3231a;--board-hint: #e8590c;--board-shadow: 0 1px 2px rgba(70, 40, 10, .22), 0 14px 32px -12px rgba(70, 40, 10, .5);position:relative;width:100%;max-width:min(var(--board-max),max(var(--board-min),calc((100vh - var(--board-reserve)) * var(--board-ratio))));margin-inline:auto}@supports (height: 100dvh){.board-wrap{max-width:min(var(--board-max),max(var(--board-min),calc((100dvh - var(--board-reserve)) * var(--board-ratio))))}}.board-wrap.is-xiangqi{--board-ratio: .9045}:root[data-theme=dark] .board-wrap{--xq-wood-1: #ddb67e;--xq-wood-2: #c99c60;--xq-wood-3: #a87841;--xq-ink: #2c1709;--xq-ink-soft: rgba(44, 23, 9, .62);--xq-river: rgba(255, 240, 210, .12);--xq-grain: .42;--xq-face-1: #f7ecd6;--xq-face-2: #e9d2a6;--xq-face-3: #cba26a;--xq-face-line: rgba(90, 52, 18, .6);--xq-edge-1: #a46f39;--xq-edge-2: #6a3e17;--xq-red: #a81c16;--xq-black: #17120f;--cb-frame-1: #4f3019;--cb-frame-2: #2b180a;--cb-light: #dcc39d;--cb-dark: #9f714c;--cb-coord: rgba(240, 220, 188, .7);--cb-last: rgba(205, 196, 50, .48);--cb-sel: rgba(40, 140, 82, .55);--cp-white-1: #fbf6ee;--cp-white-2: #d9cdb8;--board-move: #1f8a4c;--board-shadow: 0 0 0 1px rgba(255, 214, 160, .07), 0 18px 40px -14px rgba(0, 0, 0, .85)}.board-svg{display:block;width:100%;height:auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation;box-shadow:var(--board-shadow)}.xq-board{aspect-ratio:568 / 628;border-radius:2.817%/2.548%}.chess-board{aspect-ratio:1;border-radius:2.158%}.board-svg:focus{outline:none}.board-svg:focus-visible{box-shadow:0 0 0 3px var(--primary-ring),var(--board-shadow)}.board-grain,.xq-static,.cb-frame,.coords,.last-move,.check-glow,.sq-marks,.hint-mark,.kb-cursor,.pc-shadow,.check-ring,.sel-ring,.xq-gloss,.target-capture,.target-tint,.target-dot{pointer-events:none}.xq-static .board-grain{opacity:var(--xq-grain)}.xq-river-band{fill:var(--xq-river)}.xq-border{fill:none;stroke:var(--xq-ink);stroke-width:3}.xq-lines line{stroke:var(--xq-ink);stroke-width:1.3;stroke-linecap:square}.xq-lines line.edge{stroke-width:2}.xq-marks polyline{fill:none;stroke:var(--xq-ink);stroke-width:1.3}.xq-river{font-family:"LXGW WenKai TC",var(--font-han);font-size:33px;font-weight:700;fill:var(--xq-ink);stroke:var(--xq-ink);stroke-width:.6px;opacity:.66;text-anchor:middle}.coords text{font-family:var(--font);font-size:12px;font-weight:600;fill:var(--xq-ink-soft);text-anchor:middle}.xq-piece,.chess-piece{cursor:default}.board-svg.interactive .mine,.board-svg.interactive .target{cursor:pointer}.pc-move,.pc-lift{transition:transform .15s var(--ease)}.pc-shadow{transform-box:fill-box;transform-origin:center;transition:transform .15s var(--ease),opacity .15s var(--ease)}.arrive,.ghost{pointer-events:none}.arrive .pc-move{animation:piece-arrive .22s var(--ease) both}@keyframes piece-arrive{0%{transform:translate(var(--dx, 0),var(--dy, 0))}to{transform:translate(0)}}.ghost .pc-move{transform-box:fill-box;transform-origin:center;animation:piece-captured .26s var(--ease) forwards}@keyframes piece-captured{0%{opacity:1}to{opacity:0;transform:scale(.82)}}.xq-face{stroke:var(--xq-face-line);stroke-width:.8}.xq-ring{fill:none;stroke-width:1.5}.xq-piece.red .xq-ring{stroke:var(--xq-red)}.xq-piece.black .xq-ring{stroke:var(--xq-black)}.xq-char{font-family:"LXGW WenKai TC",var(--font-han);font-size:31px;font-weight:700;text-anchor:middle;stroke-width:1.1px;stroke-linejoin:round;paint-order:stroke}.xq-piece.red .xq-char{fill:var(--xq-red);stroke:var(--xq-red)}.xq-piece.black .xq-char{fill:var(--xq-black);stroke:var(--xq-black)}.xq-piece .xq-char-hl{fill:#fff;stroke:#fff;opacity:.6}.xq-piece.selected .pc-lift{transform:translateY(-3.5px)}.xq-piece.selected .pc-shadow{transform:translate(1px,2px) scale(1.07);opacity:.75}@media(hover:hover){.board-svg.interactive .xq-piece.mine:not(.selected):hover .pc-lift{transform:translateY(-1.5px)}}.sel-ring{fill:none;stroke:var(--board-move);stroke-width:3;filter:drop-shadow(0 0 2.5px var(--board-move))}.check-ring{fill:none;stroke:var(--board-check);stroke-width:3;animation:check-pulse 1.1s ease-in-out infinite alternate}@keyframes check-pulse{0%{opacity:.45}to{opacity:1}}.last-move path{fill:none;stroke:var(--board-last);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}.last-move .from{opacity:.55}.hit,.target-hit{fill:transparent}.target-dot{fill:var(--board-move);opacity:.8;transform-box:fill-box;transform-origin:center;transition:transform .12s var(--ease),opacity .12s var(--ease)}.xq-board .target-dot{stroke:#ffffff8c;stroke-width:2}.xq-board .target-capture{fill:none;stroke:var(--board-move);stroke-width:4.2;stroke-linecap:round}.target-tint{fill:var(--board-move);opacity:.16}.chess-board .target-capture{fill:var(--board-move);opacity:.45}.chess-board .target-dot{opacity:.62}@media(hover:hover){.target:hover .target-dot{transform:scale(1.45);opacity:.9}.xq-board .target:hover .target-hit{fill:#1d7d4524}.chess-board .target:hover .target-hit{fill:#1d7d4547}}.hint-mark circle{fill:none;stroke:var(--board-hint);stroke-width:3;stroke-dasharray:7 5}.hint-arrow{opacity:.82}.hint-arrow line{stroke:var(--board-hint);stroke-linecap:round}.hint-arrow polygon{fill:var(--board-hint)}.kb-cursor{display:none;fill:none;stroke:var(--primary);stroke-width:3;stroke-dasharray:8 5}.board-svg:focus-visible .kb-cursor{display:inline}.cb-inlay{fill:none;stroke:#1209028c;stroke-width:2}.cb-frame .board-grain{opacity:.55}.cb-grain{opacity:var(--cb-grain)}.sq-light{fill:var(--cb-light)}.sq-dark{fill:var(--cb-dark)}.chess-board .coords text{font-size:13px;fill:var(--cb-coord)}.last-sq{fill:var(--cb-last)}.sel-sq{fill:var(--cb-sel)}.cp-body{stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.cp-detail{fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.chess-piece.white .cp-body,.chess-piece.white .cp-detail{stroke:var(--cp-white-line)}.chess-piece.white .cp-spot{fill:var(--cp-white-line)}.chess-piece.black .cp-body{stroke:var(--cp-black-line)}.chess-piece.black .cp-detail{stroke:var(--cp-black-detail)}.chess-piece.black .cp-spot{fill:var(--cp-black-detail)}.cp-seam{display:none;fill:none;stroke-width:1.7;stroke-linecap:round}.chess-piece.black .cp-seam{display:inline;stroke:var(--cp-black-detail);opacity:.4}.chess-piece.selected .pc-lift{transform:translateY(-5px)}.chess-piece.selected .pc-shadow{transform:scale(1.1);opacity:.7}@media(hover:hover){.board-svg.interactive .chess-piece.mine:not(.selected):hover .pc-lift{transform:translateY(-2.5px)}}.promo-picker{position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:12px;background:#180e0680;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:2.158%;animation:fade-in .16s var(--ease)}.promo-card{display:flex;flex-direction:column;align-items:center;gap:12px;width:min(100%,376px);padding:16px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:pop-in .2s var(--ease)}.promo-title{font-weight:700;font-size:1rem}.promo-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%}.promo-btn{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:6px 6px 8px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);color:var(--text-2);font-weight:600;font-size:.82rem;cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform 80ms var(--ease)}.promo-btn:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--text)}.promo-btn:active{transform:translateY(1px)}.promo-btn:focus-visible{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}.promo-piece{width:100%;aspect-ratio:1;height:auto;border-radius:var(--radius-sm);background:var(--cb-light)}.promo-name{line-height:1.2}.promo-cancel{min-width:120px}@media(max-width:760px){.board-wrap{max-width:none}.promo-picker{padding:10px}.promo-card{padding:12px;gap:10px}.promo-options{gap:6px}.promo-btn{padding:5px 4px 7px}}@media(prefers-reduced-motion:reduce){.arrive .pc-move,.check-ring{animation:none}}.xq-back{stroke-width:.9}.xq-piece.hidden.red .xq-back{fill:#9a2a20;stroke:#5e140e}.xq-piece.hidden.black .xq-back{fill:#3a322d;stroke:#15110e}.xq-back-ring{fill:none;stroke:#e2bd78;stroke-width:1.3;opacity:.85}.xq-back-ring.inner{stroke-width:1;opacity:.6}.xq-back-mark{fill:#e2bd78;opacity:.55}:root[data-theme=dark] .xq-piece.hidden.red .xq-back{fill:#86251c}:root[data-theme=dark] .xq-back-ring,:root[data-theme=dark] .xq-back-mark{stroke:#cfa862}:root[data-theme=dark] .xq-back-mark{fill:#cfa862}.xq-piece.flip .pc-lift{transform-box:fill-box;transform-origin:center;animation:piece-flip .36s var(--ease) .2s both}@keyframes piece-flip{0%{transform:scaleX(1)}45%{transform:scaleX(.05)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.xq-piece.flip .pc-lift{animation:none}}.home{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);grid-template-areas:"main aside";gap:24px;align-items:start}.hm-main{grid-area:main;display:flex;flex-direction:column;gap:16px;min-width:0}.hm-main>.panel+.panel{margin-top:0}.home .hm-hero{position:relative;overflow:hidden;isolation:isolate;container-type:inline-size;padding:26px 24px 22px;background:radial-gradient(460px 240px at 100% 0%,color-mix(in srgb,var(--gold) 16%,transparent),transparent 70%),radial-gradient(420px 260px at 0% 100%,color-mix(in srgb,var(--primary) 9%,transparent),transparent 70%),var(--surface)}.home .hm-hero-art{position:absolute;z-index:-1;top:-34px;right:-22px;font-family:var(--font-han);font-size:200px;font-weight:700;line-height:1;color:var(--primary-ink);opacity:.07;transform:rotate(-10deg);pointer-events:none;user-select:none}.home .hm-hero-art-chess{font-family:Segoe UI Symbol,DejaVu Sans,"Noto Sans Symbols 2",serif;color:var(--text);opacity:.06}.home .hm-hero-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 5px;border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:.78rem;font-weight:700;color:var(--text-2)}.home .hm-hero-eyebrow-icons{display:inline-flex}.home .hm-hero-eyebrow-icons .game-icon+.game-icon{margin-left:-5px}.home .hm-hero-title{margin:16px 0 10px;font-size:1.6rem;font-size:clamp(1.4rem,7.3cqi,1.85rem);font-weight:800;line-height:1.16;letter-spacing:-.028em;text-wrap:balance}.home .hm-hero-title em{font-style:normal;color:var(--primary-ink);white-space:nowrap}.home .hm-hero-sub{margin:0 0 20px;color:var(--text-2);font-size:.98rem;line-height:1.6;max-width:46ch}.home .hm-hero-cta{display:flex;flex-wrap:wrap;gap:10px}.home .hm-hero-cta .btn{flex:1 1 auto}.home .hm-hero-cta .btn-ghost{background:color-mix(in srgb,var(--surface-raised) 70%,transparent)}.home .hm-hero-features{list-style:none;margin:22px 0 0;padding:18px 0 0;border-top:1px solid var(--border);display:grid;gap:14px}.home .hm-hero-features li{display:flex;align-items:center;gap:12px}.home .hm-hf-ico{flex:none;width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}.home .hm-tone-gold{background:var(--gold-soft);color:var(--gold-ink)}.home .hm-tone-primary{background:var(--primary-soft);color:var(--primary-ink)}.home .hm-tone-info{background:var(--info-soft);color:var(--info)}.home .hm-hf-text{display:flex;flex-direction:column;min-width:0;line-height:1.35}.home .hm-hf-text b{font-size:.95rem}.home .hm-hf-text span{font-size:.85rem;color:var(--muted)}.home .hm-lobby{padding:0}.home .hm-lobby-head{display:flex;align-items:center;gap:12px;padding:18px 20px 14px;border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;background:linear-gradient(180deg,color-mix(in srgb,var(--primary-soft) 80%,transparent),transparent)}.home .hm-lobby-emblem{flex:none;width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-raised);box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}.home .hm-lobby-heading{flex:1;min-width:0}.home .hm-lobby-title{font-size:1.3rem;font-weight:800;letter-spacing:-.02em}.home .hm-lobby-sub{margin:1px 0 0;font-size:.88rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home .mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0 20px;padding:4px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.home .mode-tabs button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:62px;padding:7px 4px;border:0;border-radius:calc(var(--radius) - 4px);background:transparent;color:var(--text-2);font-weight:600;font-size:.86rem;line-height:1.2;text-align:center;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.home .mode-tabs button:hover{color:var(--text);background:color-mix(in srgb,var(--surface-raised) 55%,transparent)}.home .mode-tabs button.active{color:var(--primary-ink);background:var(--surface-raised);box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}:root[data-theme=dark] .home .mode-tabs button.active{background:var(--surface-3);box-shadow:var(--shadow-sm),0 0 0 1px var(--border-strong)}.home .mode-tabs button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.home .hm-mode-ico{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:28px;border-radius:var(--radius-pill);transition:background var(--dur) var(--ease)}.home .mode-tabs button.active .hm-mode-ico{background:var(--primary-soft)}.home .hm-mode-dot{position:absolute;top:1px;right:4px;width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 2px var(--surface-2);animation:pulse .9s ease-in-out infinite alternate}.home .hm-mode-label{max-width:100%;overflow-wrap:anywhere}.home .hm-mode-panel{--px: 20px;padding:16px var(--px) 20px;animation:home-rise .22s var(--ease)}.home .hm-body{display:flex;flex-direction:column;gap:14px}.home .hm-note{display:flex;align-items:flex-start;gap:8px;margin:0;color:var(--muted);font-size:.86rem}.home .hm-note .icon{margin-top:2px;color:var(--info)}.home .hm-facts{list-style:none;margin:0;padding:0;display:grid;gap:9px}.home .hm-facts li{display:flex;align-items:center;gap:11px;font-size:.9rem;line-height:1.4;color:var(--text-2)}.home .hm-facts b{color:var(--text);font-weight:700}.home .hm-fact-ico{flex:none;width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);color:var(--primary-ink)}.home .hm-pcard{--tier: var(--muted);position:relative;border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:linear-gradient(140deg,color-mix(in srgb,var(--tier) 14%,var(--surface-raised)) 0%,var(--surface-raised) 62%)}.home .hm-pcard-top{display:flex;align-items:center;gap:12px}.home .hm-pcard-avatar{flex:none;display:inline-flex;border-radius:50%;box-shadow:0 0 0 2px var(--surface-raised),0 0 0 4px var(--tier)}.home .hm-pcard-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.home .hm-pcard-name{align-self:flex-start;max-width:100%;font-weight:700;font-size:1.02rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home .hm-pcard-name:hover{color:var(--primary-ink)}.home .hm-pcard-rating{flex:none;display:flex;flex-direction:column;align-items:flex-end;line-height:1}.home .hm-pcard-rating b{font-size:2rem;font-weight:800;letter-spacing:-.03em}.home .hm-pcard-rating span{margin-top:4px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.home .hm-pcard-meters{display:grid;gap:11px;margin-top:13px;padding-top:12px;border-top:1px dashed var(--border-strong)}.home .hm-pcard-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:.9rem}.home .hm-pcard-status-ico{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--gold-soft);color:var(--gold-ink)}.home .hm-meter{--meter: var(--primary);display:grid;gap:6px}.home .hm-meter-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:.85rem}.home .hm-meter-label{color:var(--text-2);font-weight:600;min-width:0}.home .hm-meter-label b{color:var(--text)}.home .hm-meter-value{flex:none;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.home .hm-meter-track{height:8px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}.home .hm-meter-fill{display:block;height:100%;min-width:8px;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--meter) 70%,transparent),var(--meter));transition:width .6s var(--ease)}.home .hm-pcard.is-loading{background:var(--surface-raised)}.home .hm-sk-avatar{width:46px;height:46px;border-radius:50%;flex:none}.home .hm-sk-text{display:block;height:14px;width:70%}.home .hm-sk-text.short{width:40%}.home .hm-sk-rating{width:64px;height:34px;flex:none}.home .hm-sk-meter{height:30px;margin-top:14px}.home .hm-sk-block{height:112px}.home .hm-sk-line{height:44px}.home .hm-sk-btn{height:44px;width:60%}.home .hm-cta-wrap{display:flex;flex-direction:column;gap:8px}.home .hm-cta{--btn-h: 54px;font-size:1.08rem;font-weight:700;letter-spacing:.01em}.home .hm-cta-note{margin:0;text-align:center;font-size:.76rem;color:var(--muted)}.home .hm-spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid color-mix(in srgb,currentColor 35%,transparent);border-top-color:currentColor;animation:spin .8s linear infinite;flex:none}.home .hm-notice-actions{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:4px}.home .hm-notice-actions .link-btn{min-height:32px}.home .hm-search{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:6px 0 0}.home .hm-radar{position:relative;width:132px;height:132px;margin:2px auto 8px;display:flex;align-items:center;justify-content:center}.home .hm-radar-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--primary);opacity:.18;transform:scale(.94);animation:home-ping 2.4s cubic-bezier(.2,.6,.3,1) infinite}.home .hm-radar-ring:nth-child(3){animation-delay:.8s}.home .hm-radar-ring:nth-child(4){animation-delay:1.6s}.home .hm-radar-sweep{position:absolute;inset:12px;border-radius:50%;background:conic-gradient(from 0deg,color-mix(in srgb,var(--primary) 30%,transparent),transparent 28%),var(--primary-soft);animation:spin 2.6s linear infinite}.home .hm-radar-core{position:relative;width:66px;height:66px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-raised);box-shadow:var(--shadow),0 0 0 5px color-mix(in srgb,var(--surface-raised) 60%,transparent)}.home .hm-search-title{margin:0;font-weight:700;font-size:1.05rem}.home .hm-search-time{font-size:2.3rem;font-weight:800;line-height:1.05;letter-spacing:-.02em;color:var(--primary-ink)}.home .hm-search-hint{margin:0;font-size:.82rem;color:var(--muted)}.home .hm-search-chips,.home .hm-ticket-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:4px 0 6px}.home .hm-search-chips .chip,.home .hm-ticket-facts .chip{font-size:.76rem;padding:3px 9px}.home .hm-range{width:100%;display:grid;gap:7px;padding:12px 14px;margin-bottom:6px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.home .hm-range-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.86rem;color:var(--text-2)}.home .hm-range-track{position:relative;height:10px;border-radius:var(--radius-pill);background:var(--surface-3)}.home .hm-range-band{position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--primary),var(--gold));transition:width .7s var(--ease)}.home .hm-range-you{position:absolute;top:-4px;bottom:-4px;left:50%;width:4px;margin-left:-2px;border-radius:2px;background:var(--text);box-shadow:0 0 0 2px var(--surface-2)}.home .hm-range-scale{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.home .hm-time{display:grid;gap:12px}.home .hm-presets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.home .hm-preset{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:52px;padding:6px 2px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text);cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.home .hm-preset b{font-size:.98rem;font-weight:800;line-height:1.15}.home .hm-preset span{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.home .hm-preset:hover{border-color:var(--primary)}.home .hm-preset.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-ink);box-shadow:inset 0 0 0 1px var(--primary)}.home .hm-preset.active span{color:var(--primary-ink)}.home .hm-preset:focus-visible{outline:none;box-shadow:var(--focus-ring)}.home .hm-steppers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home .hm-stepper{min-width:0}.home .hm-stepper label{display:block;margin-bottom:5px;font-size:.8rem;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home .hm-stepper-ctl{display:flex;align-items:stretch;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);overflow:hidden;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.home .hm-stepper-ctl:focus-within{border-color:var(--primary);box-shadow:var(--focus-ring)}.home .hm-stepper.is-invalid .hm-stepper-ctl{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}.home .hm-stepper.is-invalid label{color:var(--danger)}.home .hm-stepper-ctl input{flex:1;width:auto;min-width:0;min-height:40px;padding:0 2px;border:0;border-radius:0;background:transparent;text-align:center;font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}.home .hm-stepper-ctl input:focus{box-shadow:none}.home .hm-stepper-ctl input::-webkit-outer-spin-button,.home .hm-stepper-ctl input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.home .hm-step-btn{flex:none;width:40px;display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--surface-2);color:var(--text-2);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.home .hm-step-btn:hover:not(:disabled){background:var(--surface-3);color:var(--primary-ink)}.home .hm-step-btn:disabled{opacity:.4;cursor:not-allowed}.home .hm-step-btn:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.home .hm-field-error{display:flex;align-items:flex-start;gap:6px}.home .hm-field-error .icon{margin-top:1px}.home .hm-label{display:block;padding:0;margin:0 0 8px;font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.home .hm-sect-head{display:grid;gap:2px}.home .hm-sect-title{font-size:1rem;font-weight:700}.home .hm-sect-desc{margin:0;font-size:.85rem;color:var(--muted)}.home .divider{margin:2px 0}.home .hm-code-form{display:flex;gap:8px}.home .hm-code-input{flex:1;min-width:0;min-height:48px;padding:8px 12px 8px calc(12px + .3em);border:1.5px dashed var(--border-strong);background:var(--surface-2);font-family:var(--font-mono);font-size:1.3rem;font-weight:700;letter-spacing:.3em;text-align:center;text-transform:uppercase}.home .hm-code-input::placeholder{font-family:var(--font);font-size:.95rem;font-weight:500;letter-spacing:.04em;text-transform:none}.home .hm-code-input:focus{border-style:solid;background:var(--surface-raised)}.home .hm-code-form .btn{--btn-h: 48px;flex:none}.home .hm-room{gap:12px}.home .hm-vs{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:4px}.home .hm-vs-player{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.78rem;font-weight:600;color:var(--muted);width:64px}.home .hm-vs-player .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--primary)}.home .hm-vs-empty{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:2px dashed var(--border-strong);color:var(--muted);background:var(--surface-2);animation:home-breathe 1.8s ease-in-out infinite}.home .hm-vs-dots{display:inline-flex;gap:6px;margin-bottom:18px}.home .hm-vs-dots i{width:8px;height:8px;border-radius:50%;background:var(--primary);opacity:.5;animation:bounce 1.1s ease-in-out infinite}.home .hm-vs-dots i:nth-child(2){animation-delay:.15s}.home .hm-vs-dots i:nth-child(3){animation-delay:.3s}.home .hm-wait-text{margin:-4px 0 2px;text-align:center;font-weight:700}.home .hm-ticket{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 12px 12px;border-radius:var(--radius);border:1.5px dashed color-mix(in srgb,var(--primary) 45%,var(--border-strong));background:linear-gradient(180deg,color-mix(in srgb,var(--primary-soft) 75%,var(--surface-raised)),var(--surface-raised))}.home .hm-ticket-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.home .hm-ticket-code{display:flex;align-items:center;gap:4px;max-width:100%}.home .room-code{padding-left:.24em;font-family:var(--font-mono);font-size:2.2rem;font-weight:800;letter-spacing:.24em;line-height:1.15;color:var(--primary-ink);user-select:all;white-space:nowrap}.home .hm-ticket-facts{margin:2px 0 0}.home .hm-invite{display:grid;gap:8px}.home .hm-invite .hm-label{margin:0}.home .hm-link-row{display:flex;gap:8px}.home .hm-link-row input{flex:1;min-width:0;font-size:.86rem;color:var(--text-2)}.home .hm-link-row .btn{flex:none;min-width:118px}.home .btn.hm-copied{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent);background:var(--ok-soft)}.home .btn-quiet.hm-copied{border-color:transparent}.home .hm-wait-note{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;font-size:.8rem;color:var(--muted);text-align:center}.home .hm-choices{border:0;margin:0;padding:0;min-width:0}.home .hm-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home label.choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-width:0;padding:14px 6px 11px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);text-align:center;cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform 80ms var(--ease)}.home label.choice:hover{border-color:var(--border-strong);background:color-mix(in srgb,var(--surface-2) 50%,var(--surface-raised))}.home label.choice:active{transform:translateY(1px)}.home label.choice.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary-soft) 70%,var(--surface-raised));box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}.home label.choice:has(input:focus-visible){box-shadow:var(--focus-ring)}.home label.choice input[type=radio]{position:absolute;top:7px;right:7px;width:16px;height:16px;margin:0;appearance:none;-webkit-appearance:none;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--surface-raised);cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.home label.choice input[type=radio]:checked{border-color:var(--primary);background:radial-gradient(circle,var(--on-primary) 0 3px,var(--primary) 3.5px)}.home label.choice input[type=radio]:focus-visible{outline:none;box-shadow:var(--focus-ring)}.home .hm-choice-title{font-weight:700;font-size:.93rem;line-height:1.2;color:var(--text)}.home label.choice.active .hm-choice-title{color:var(--primary-ink)}.home .hm-choice-hint{font-size:.74rem;line-height:1.3;color:var(--muted)}.home .hm-diff{display:inline-flex;align-items:flex-end;gap:3px;height:22px;margin-bottom:2px}.home .hm-diff i{width:6px;border-radius:2px;background:var(--border-strong);opacity:.55}.home .hm-diff i:nth-child(1){height:9px}.home .hm-diff i:nth-child(2){height:15px}.home .hm-diff i:nth-child(3){height:21px}.home .hm-diff i.on{opacity:1}.home .hm-diff-easy i.on{background:var(--ok)}.home .hm-diff-medium i.on{background:var(--warn)}.home .hm-diff-hard i.on{background:var(--danger)}.home .hm-swatch{display:block;height:31px;margin:-4px 0 0;filter:drop-shadow(0 1px 1px rgba(60,30,0,.3))}.home .hm-timelimit{display:grid;gap:10px;padding:4px 12px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.home .hm-timelimit.on{background:var(--surface);border-color:var(--border-strong)}.home label.check{display:flex;align-items:center;gap:10px;min-height:46px;cursor:pointer;font-weight:600}.home .hm-check-ico{flex:none;width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-raised);border:1px solid var(--border);color:var(--primary-ink)}.home .hm-check-text{flex:1;min-width:0}.home .hm-check-desc{margin:-8px 0 0 42px;font-size:.82rem;color:var(--muted)}.home label.check input.hm-switch{flex:none;width:44px;height:26px;margin:0;appearance:none;-webkit-appearance:none;border-radius:var(--radius-pill);border:0;background-color:var(--border-strong);background-image:radial-gradient(circle closest-side,var(--on-primary) 0 calc(100% - 1px),transparent 100%);background-size:20px 20px;background-repeat:no-repeat;background-position:3px 50%;cursor:pointer;transition:background-color var(--dur) var(--ease),background-position var(--dur) var(--ease)}.home label.check input.hm-switch:checked{background-color:var(--primary);background-position:calc(100% - 3px) 50%}.home label.check input.hm-switch:focus-visible{outline:none;box-shadow:var(--focus-ring)}.home .hm-login{gap:14px}.home .hm-lp-box{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius);background:var(--gold-soft);border:1px solid color-mix(in srgb,var(--gold) 30%,transparent)}.home .hm-lp-box p{margin:0;font-weight:600;font-size:.92rem}.home .hm-lp-lock{flex:none;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-raised);color:var(--gold-ink);box-shadow:var(--shadow-sm)}.home .hm-lp-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hm-aside{grid-area:aside;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"stage" "cap" "more";gap:14px;align-content:start}.home-board{grid-area:stage;min-width:0}.home-board .board-wrap{--board-reserve: 156px;--board-max: 780px}.home-board .board-svg{pointer-events:none}.hm-cap{grid-area:cap;min-width:0}.hm-cap-head{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 10px;margin:0;font-size:.84rem;color:var(--muted);text-align:center}.hm-cap-name{display:inline-flex;align-items:center;gap:6px}.hm-cap-kicker{white-space:nowrap}.hm-cap-kicker:after{content:":"}.hm-cap-move{min-width:9.5em;padding:3px 12px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);color:var(--text-2);font-weight:700;font-size:.82rem;box-shadow:var(--shadow-sm)}.hm-cap-moves{display:none}.hm-more{grid-area:more;min-width:0}.hm-more-title{margin:0 0 8px;font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.hm-more-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:10px}.hm-more-list>li{container:hm-mc / inline-size;display:flex;min-width:0}.hm-mc{flex:1;min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"art head" "desc desc" "foot foot";align-items:center;gap:8px 10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.hm-mc:hover{text-decoration:none}.hm-mc:focus-visible{outline:none;box-shadow:var(--focus-ring)}.hm-mc:active{transform:translateY(1px)}@media(hover:hover){.hm-mc:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--shadow)}.hm-mc:hover .hm-mc-go{transform:translate(3px)}}.hm-mc-art{grid-area:art;display:inline-flex;width:44px;height:44px}.hm-mc-head{grid-area:head;display:flex;flex-direction:column;gap:1px;min-width:0;line-height:1.2}.hm-mc-title{font-size:1rem;font-weight:800;letter-spacing:-.01em}.hm-mc-tag{font-size:.72rem;font-weight:600;color:var(--muted)}.hm-mc-desc{grid-area:desc;font-size:.8rem;line-height:1.4;color:var(--text-2)}.hm-mc-foot{grid-area:foot;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;font-size:.76rem;font-weight:700;color:var(--primary-ink)}.hm-mc-go{flex:none;transition:transform var(--dur) var(--ease)}@container hm-mc (min-width: 300px){.hm-mc{grid-template-areas:"art head" "art desc" "art foot";align-items:start;gap:3px 14px}.hm-mc-head{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:0 8px}.hm-mc-foot{margin-top:5px}}.hm-mc-art{--art-wood: #efcf98;--art-line: rgba(84, 48, 18, .5);--art-edge: #a06c34;--art-face: #f6e2bb;--art-face-line: #8a5a2b;--art-back: #9a6430;--art-back-ring: rgba(255, 236, 204, .7);--art-red: #b21f19;--art-black: #1e1915}:root[data-theme=dark] .hm-mc-art{--art-wood: #c99c60;--art-line: rgba(44, 23, 9, .6);--art-edge: #6a3e17;--art-face: #ead2a6;--art-face-line: #6a3e17;--art-back: #7d4c22;--art-back-ring: rgba(255, 228, 186, .62);--art-red: #a81c16;--art-black: #17120f}.hm-art{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 1px 1px rgba(60,30,0,.25))}.hm-art .hm-art-wood{fill:var(--art-wood);stroke:var(--art-edge);stroke-width:1.4}.hm-art .hm-art-lines{fill:none;stroke:var(--art-line);stroke-width:1.1}.hm-art .hm-art-arrow{fill:none;stroke:var(--art-red);stroke-width:2;stroke-linecap:round;stroke-dasharray:2.6 3}.hm-art .hm-art-arrow-head{fill:none;stroke:var(--art-red);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.hm-art .hm-art-edge{fill:var(--art-edge)}.hm-art .hm-art-face{fill:var(--art-face);stroke:var(--art-face-line);stroke-width:1}.hm-art .hm-art-ring{fill:none;stroke:var(--art-red);stroke-width:1}.hm-art .hm-art-back{fill:var(--art-back);stroke:var(--art-edge);stroke-width:1}.hm-art .hm-art-back-ring{fill:none;stroke:var(--art-back-ring);stroke-width:1.2;stroke-dasharray:2 2.2}.hm-art text{text-anchor:middle;font-weight:700}.hm-art .hm-art-char{font-family:var(--font-han);font-size:14px;fill:var(--art-red)}.hm-art .hm-art-char.is-sm{font-size:10px}.hm-art .hm-art-char.is-black{fill:var(--art-black)}.hm-art .hm-art-q{font-family:var(--font);font-size:14px;font-weight:800;fill:var(--art-back-ring)}@keyframes home-rise{0%{opacity:0;transform:translateY(4px)}}@keyframes home-ping{0%{transform:scale(.42);opacity:.7}to{transform:scale(1);opacity:0}}@keyframes home-breathe{0%,to{transform:scale(1);border-color:var(--border-strong)}50%{transform:scale(1.06);border-color:var(--primary)}}@media(max-width:1199px){.home{gap:20px}}@media(max-width:760px){.home{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "aside";gap:16px}.hm-main{gap:14px}.home .hm-hero{padding:20px 16px 18px}.home .hm-hero-art{font-size:160px;top:-26px;right:-18px}.home .hm-hero-title{margin:12px 0 8px}.home .hm-hero-sub{font-size:.94rem;margin-bottom:16px}.home .hm-hero-cta{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.home .hm-hero-features{margin-top:18px;padding-top:16px;gap:12px}.home .hm-lobby-head{padding:14px 16px 12px}.home .hm-lobby-emblem{width:42px;height:42px}.home .hm-lobby-title{font-size:1.18rem}.home .mode-tabs{margin:0 12px}.home .mode-tabs button{min-height:58px;font-size:.82rem}.home .hm-mode-panel{--px: 14px;padding:14px var(--px) 16px}.home .hm-cta-dock{position:sticky;bottom:calc(var(--bottom-nav-h) + var(--safe-bottom));z-index:3;margin:-16px calc(-1 * var(--px)) -16px;padding:16px var(--px);background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 0%,transparent),var(--surface) 34%);border-radius:0 0 calc(var(--radius) - 1px) calc(var(--radius) - 1px)}.home .hm-stepper-ctl input{min-height:44px}.home .hm-step-btn{width:42px}.home .hm-code-input{font-size:1.2rem}.home .hm-radar{width:108px;height:108px;margin-bottom:4px}.home .hm-radar-sweep{inset:10px}.home .hm-radar-core{width:58px;height:58px}.home .hm-search-time{font-size:2.05rem}.home .room-code{font-size:2rem}.hm-aside{grid-template-areas:"more" "stage" "cap";gap:12px}.hm-more{margin-bottom:4px}.hm-more-list{grid-template-columns:minmax(0,1fr)}.home-board{justify-self:center;width:100%;max-width:460px}}@media(max-width:380px){.home .mode-tabs{margin:0 10px}.home .mode-tabs button{font-size:.78rem}.home .hm-mode-panel{--px: 12px}.home label.choice{padding:13px 4px 10px}.home .hm-choice-title{font-size:.86rem}.home .hm-choice-hint{font-size:.7rem}.home .hm-preset b{font-size:.9rem}.home .hm-preset span{font-size:.6rem}.home .hm-step-btn{width:38px}.home .hm-pcard-rating b{font-size:1.75rem}}.home .hm-lobby-head{gap:10px;padding:12px 16px 10px}.home .hm-lobby-emblem{width:34px;height:34px}.home .hm-lobby-emblem .game-icon{width:24px;height:24px}.home .hm-lobby-title{font-size:1.1rem}.home .hm-lobby-sub{font-size:.8rem}.home .mode-tabs{display:flex;gap:3px;margin:0 12px;padding:3px}.home .mode-tabs button{flex:1 1 auto;min-width:0;flex-direction:row;gap:4px;min-height:38px;padding:4px;font-size:.79rem}.home .hm-mode-ico{width:auto;height:auto}.home .mode-tabs button.active .hm-mode-ico{background:none}.home .hm-mode-ico .icon{width:16px;height:16px}.home .hm-mode-dot{top:-4px;right:-6px;width:8px;height:8px}.home .hm-mode-label{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}.home .hm-mode-panel{--px: 14px;padding:12px var(--px) 14px}.home .hm-body{gap:10px}.home .hm-pcard{padding:10px 12px}.home .hm-pcard-top{gap:10px}.home .hm-pcard-avatar{box-shadow:0 0 0 2px var(--surface-raised),0 0 0 3px var(--tier)}.home .hm-pcard-name{font-size:.95rem}.home .hm-pcard-rating b{font-size:1.6rem}.home .hm-pcard-rating span{margin-top:2px;font-size:.62rem}.home .hm-pcard-meters{gap:7px;margin-top:9px;padding-top:9px}.home .hm-meter{gap:4px}.home .hm-meter-head{font-size:.8rem}.home .hm-meter-value{font-size:.74rem}.home .hm-meter-track{height:6px}.home .hm-pcard-status{gap:6px;font-size:.84rem}.home .hm-pcard-status-ico{width:22px;height:22px}.home .hm-pcard-next{display:flex;align-items:center;gap:6px;min-width:0;font-size:.78rem;color:var(--text-2)}.home .hm-pcard-next b{color:var(--text)}.home .hm-pcard-next .icon{color:var(--gold)}.home .hm-next-dot{flex:none;width:8px;height:8px;border-radius:50%}.home .hm-rules{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.home .hm-rules li{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);font-size:.78rem;font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums;cursor:help}.home .hm-rules .icon{color:var(--primary-ink)}.home .hm-cta-wrap{gap:6px}.home .hm-cta{--btn-h: 48px;font-size:1.02rem}.home .hm-cta-note{font-size:.7rem;line-height:1.35}.home .hm-search{gap:4px;padding:2px 0 0}.home .hm-radar{width:92px;height:92px;margin:0 auto 4px}.home .hm-radar-sweep{inset:8px}.home .hm-radar-core{width:48px;height:48px}.home .hm-search-title{font-size:.98rem}.home .hm-search-time{font-size:1.8rem}.home .hm-search-hint{font-size:.76rem}.home .hm-search-chips{margin:2px 0 4px}.home .hm-range{gap:5px;margin-bottom:4px;padding:8px 12px}.home .hm-range-head{font-size:.8rem}.home .hm-range-track{height:8px}@media(max-width:1199px){.home{grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:20px}}@media(max-width:760px){.home{grid-template-columns:minmax(0,1fr);gap:16px}.home .mode-tabs button{min-height:44px}.home .hm-cta{--btn-h: 50px}}@media(max-width:380px){.home .mode-tabs button{gap:4px;padding:4px;font-size:.76rem}}@media(max-width:340px){.home .hm-mode-ico .icon{display:none}}.home .hm-top10{padding:14px 14px 12px}@media(max-width:760px){.home .hm-top10{padding:12px}}@media(min-width:1200px){.hm-aside{--board-aspect: .9045;--rail-w: clamp(224px, 100cqi - 408px - (100vh - 100px) * var(--board-aspect), 264px);position:sticky;top:calc(var(--header-h) + 20px);grid-template-columns:minmax(0,1fr) var(--rail-w);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"stage more" "stage cap" "stage .";gap:0 24px}.hm-aside.is-chess{--board-aspect: 1}.home-board .board-wrap{--board-reserve: 100px;--board-max: 960px}.hm-more-list{grid-template-columns:minmax(0,1fr)}.hm-cap{margin-top:14px;padding:12px 12px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.hm-cap-head{display:block;margin-bottom:8px;text-align:left}.hm-cap-name{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 6px}.hm-cap-name .icon{color:var(--primary-ink)}.hm-cap-kicker{font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.hm-cap-kicker:after{content:none}.hm-cap-title{grid-column:1 / -1;font-size:.88rem;font-weight:700;line-height:1.3;color:var(--text);text-wrap:balance}.hm-cap-move{display:none}.hm-cap-moves{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:.8rem}.hm-cap-moves li{display:grid;grid-template-columns:1.5em minmax(0,1fr) minmax(0,1fr);align-items:center;gap:2px}.hm-cap-no{font-size:.74rem;color:var(--muted)}.hm-cap-mv{padding:2px 4px;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--text-2);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.hm-cap-mv.next{color:var(--muted)}.hm-cap-mv.on{background:var(--primary-soft);color:var(--primary-ink);font-weight:700}}@media(min-width:1200px)and (max-height:700px){.hm-cap-moves{display:none}.hm-cap-head{margin-bottom:0}}.home .hm-range-note{margin:0;font-size:.72rem;line-height:1.35;color:var(--muted);text-align:center}.home .hm-notice-sub{margin-top:3px;font-size:.82rem;color:var(--text-2)}.home .hm-wait-head{display:grid;gap:2px;text-align:center}.home .hm-wait-head .hm-wait-text{margin:-4px 0 0}.home .hm-wait-sub{margin:0;font-size:.82rem;line-height:1.4;color:var(--muted)}.home .hm-wait-note{align-items:flex-start;text-align:left;line-height:1.4}.home .hm-wait-note .icon{flex:none;margin-top:2px}.notice.warn.invite-notice>.icon{color:var(--warn)}.invite-recheck{margin-top:4px;min-height:30px}.invite-fact-link{color:var(--primary-ink);font-weight:600}.play{--ratio: .9045;--bar-h: 56px;--col-gap: 10px;--play-gap: 10px;--top-pad: 20px;--bottom-gap: 14px;--dock-h: 66px;--tools-h: 0px;--board-h: calc( 100dvh - var(--header-h) - var(--top-pad) - var(--bottom-gap) - 2 * var(--bar-h) - 2 * var(--col-gap) - var(--dock-h) );--board-w: max(320px, calc(var(--board-h) * var(--ratio)));position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--play-gap)}.play.game-chess{--ratio: 1}.play>*{flex:none;width:100%;max-width:var(--board-w);min-width:0}.play>.board-col{order:1}.play>.dock{order:2}.play>.gs-notices{order:3}.play>.side-col{order:4}.play>.game-head{order:5}.board-col{display:flex;flex-direction:column;gap:var(--col-gap);min-width:0}.board-area{position:relative;width:100%;min-width:0}.board-area .board-wrap{max-width:none}.player-bar{position:relative;display:flex;align-items:center;gap:12px;height:var(--bar-h);padding:0 10px 0 12px;min-width:0;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}.player-bar.active{border-color:color-mix(in srgb,var(--primary) 55%,var(--border));background:linear-gradient(90deg,color-mix(in srgb,var(--primary-soft) 80%,var(--surface)) 0%,var(--surface) 70%);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent),var(--shadow-sm)}.player-bar.active:before{content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:4px;border-radius:0 4px 4px 0;background:var(--primary)}.player-bar.in-check{border-color:color-mix(in srgb,var(--danger) 60%,var(--border))}.player-bar.in-check:before{background:var(--danger)}.pb-avatar{position:relative;flex:none;display:inline-flex}.pb-avatar .avatar{width:40px!important;height:40px!important}.player-bar.offline .pb-avatar .avatar{opacity:.5;filter:grayscale(.7)}.bot-avatar{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-2)}.side-piece{position:absolute;right:-5px;bottom:-4px;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;font-weight:700;background:#fbe9c8;box-shadow:0 0 0 2px var(--surface);pointer-events:none}.side-piece.side-xiangqi-0{color:#b3261e;border:1.5px solid #b3261e;font-family:var(--font-han)}.side-piece.side-xiangqi-1{color:#1f1a17;border:1.5px solid #1f1a17;font-family:var(--font-han)}.side-piece.side-chess-0,.side-piece.side-chess-1{color:#1c1c1c;border:1.5px solid #6b5236;font-family:Segoe UI Symbol,DejaVu Sans,"Noto Sans Symbols 2",sans-serif;font-size:13px}.side-piece.side-chess-1{background:#3a302a;color:#f5efe4;border-color:#1c1c1c}.pb-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.pb-name{display:flex;align-items:center;gap:6px;min-width:0;font-weight:700;font-size:.98rem;line-height:1.2}.pb-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pb-you{flex:none;font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:1px 7px;border-radius:var(--radius-pill);background:var(--primary-soft);color:var(--primary-ink)}:root[data-theme=dark] .pb-you{color:color-mix(in srgb,var(--primary) 55%,var(--text))}.pb-crown{color:var(--gold)}.pb-meta{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;white-space:nowrap;font-size:.8rem;line-height:1.3;color:var(--muted)}.pb-side{display:inline-flex;align-items:center;gap:5px;color:var(--text-2)}.side-dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block}.side-dot.side-xiangqi-0{background:#c0392b}.side-dot.side-xiangqi-1,.side-dot.side-chess-1{background:#1f1a17}.side-dot.side-chess-0{background:#fffdf8;box-shadow:inset 0 0 0 1px #8a7a69}:root[data-theme=dark] .side-dot.side-xiangqi-1,:root[data-theme=dark] .side-dot.side-chess-1{box-shadow:0 0 0 1px var(--border-strong)}.pb-rating{font-weight:700;color:var(--text-2)}.pb-rating-unit{font-weight:500}.pb-delta{font-weight:800}.pb-delta.up{color:var(--ok)}.pb-delta.down{color:var(--danger)}.pb-delta.zero{color:var(--muted)}.pb-thinking{display:inline-flex;align-items:center;gap:5px;color:var(--info);font-weight:700}.pb-offline{display:inline-flex;align-items:center;gap:4px;color:var(--warn);font-weight:700}.pb-flags{flex:none;display:flex;align-items:center;gap:6px;min-width:0;font-size:.8rem;line-height:1.3;white-space:nowrap}.pb-check{flex:none;padding:3px 10px;border-radius:var(--radius-pill);background:var(--danger);color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.02em;animation:pop-in .22s var(--ease)}.dots{display:inline-flex;align-items:center;gap:3px}.dots i{width:5px;height:5px;border-radius:50%;background:currentColor;animation:dot-wave 1.1s ease-in-out infinite}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes dot-wave{0%,70%,to{opacity:.35;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}.clock{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:108px;height:42px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--clock-bg);color:var(--clock-text);font-family:var(--font);font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em;line-height:1;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.clock.running{background:var(--clock-run-bg);color:var(--clock-run-text);border-color:transparent;box-shadow:var(--shadow-sm)}.clock.low{color:var(--danger)}.clock.low.running{background:var(--clock-low-bg);color:#fff}.clock.critical.running{animation:clock-flash 1s ease-in-out infinite}@keyframes clock-flash{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--clock-low-bg) 35%,transparent)}}.gs.is-stale .clock{opacity:.45;animation:none}.game-head{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon title" "icon sub" "icon tc";align-items:center;column-gap:12px;row-gap:1px;min-width:0;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.gh-icon{grid-area:icon;align-self:start;flex:none;width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border)}.gh-text{display:contents}.gh-title{grid-area:title;min-width:0;font-size:1.04rem;font-weight:800;line-height:1.25}.gh-sub{grid-area:sub;min-width:0;font-size:.82rem;line-height:1.35;color:var(--muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.gh-ranked{color:var(--gold-ink);font-weight:700}.gh-tc{grid-area:tc;justify-self:start;margin-top:4px;flex:none;gap:5px;padding:4px 10px;font-size:.82rem;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);font-variant-numeric:tabular-nums}.status-card{display:flex;align-items:center;gap:12px;min-width:0;padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.status-icon{flex:none;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-2)}.status-text{flex:1;min-width:0;animation:status-in .26s var(--ease)}@keyframes status-in{0%{opacity:0;transform:translateY(3px)}}.status-title{font-size:1.22rem;font-weight:800;line-height:1.2;letter-spacing:-.01em}.status-sub{margin-top:2px;font-size:.86rem;color:var(--text-2)}.status-extra{flex:none;text-align:right}.status-delta{font-size:1.6rem;font-weight:800;letter-spacing:-.02em}.status-delta.up{color:var(--ok)}.status-delta.down{color:var(--danger)}.status-delta.zero{color:var(--muted)}.live-dot{width:12px;height:12px;border-radius:50%;background:currentColor;animation:live-ring 1.8s ease-out infinite}@keyframes live-ring{0%{box-shadow:0 0 color-mix(in srgb,currentColor 55%,transparent)}80%,to{box-shadow:0 0 0 9px transparent}}.status-card.tone-turn{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.tone-turn .status-icon{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.tone-turn .status-title{color:color-mix(in srgb,var(--ok) 78%,var(--text))}.tone-think .status-icon{background:var(--info-soft);color:var(--info)}.status-card.tone-check{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.tone-check .status-icon{background:var(--danger);color:#fff}.tone-check .status-title{color:var(--danger)}.status-card.tone-win{background:var(--gold-soft);border-color:color-mix(in srgb,var(--gold) 50%,transparent)}.tone-win .status-icon{background:var(--gold);color:#fff}.tone-win .status-title{color:var(--gold-ink)}.tone-loss .status-icon{background:var(--danger-soft);color:var(--danger)}.status-card.tone-draw{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 30%,transparent)}.tone-draw .status-icon{background:color-mix(in srgb,var(--info) 16%,transparent);color:var(--info)}.save-status{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--text-2)}.save-status.ok .icon{color:var(--ok)}.save-status.error{color:var(--danger)}.dock{display:flex;align-items:center;gap:10px;min-height:var(--dock-h);padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.gs-status{flex:1;align-self:stretch;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px}.gs-status .status-card{flex:1;padding:6px 12px;border-radius:var(--radius-sm)}.gs-status .status-icon{width:32px;height:32px}.gs-status .status-title{font-size:1.05rem}.gs-status .status-sub{font-size:.8rem;margin-top:0}.gs-status .save-status{padding:0 4px}.gs-toolbar{flex:none;display:flex;align-items:center;gap:6px;min-width:0}.gs-view,.gs-toolbar .actions{display:flex;align-items:center;gap:6px;min-width:0}.gs-toolbar .act{min-width:0;gap:6px}.gs-view .act-flip,.gs-view .act-focus{width:var(--btn-h);padding:0}.gs-view .act-flip .act-label,.gs-view .act-focus .act-label{display:none}.act-focus.on{background:var(--primary-soft);color:var(--primary-ink)}.btn.act-hint{background:var(--gold-soft);border-color:color-mix(in srgb,var(--gold) 45%,transparent);color:var(--gold-ink)}.btn.act-hint:hover:not(:disabled){background:color-mix(in srgb,var(--gold-soft) 70%,var(--gold) 18%)}.act-label{overflow:hidden;text-overflow:ellipsis}.act-icon{position:relative;display:inline-flex}.act-badge{position:absolute;top:-7px;right:-10px;min-width:17px;height:17px;padding:0 4px;border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:.66rem;font-weight:800;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--surface)}.play .spinner-sm,.spinner-sm{flex:none;width:16px;height:16px;border-width:2px}.gs-notices-inner{display:flex;flex-direction:column;gap:8px}.gs-notices.overlay-only,.gs-notices .notice.overlay-only{display:none}.gs-notices .notice{align-items:center;min-width:0}.gs-notices .notice>.icon,.gs-notices .notice>.spinner-sm,.gs-notices .notice>.dots{flex:none;margin:0}.gs-notices .notice.warn{background:linear-gradient(var(--warn-soft),var(--warn-soft)),var(--surface)}.gs-notices .notice.info{background:linear-gradient(var(--info-soft),var(--info-soft)),var(--surface)}.gs-notices .notice.offer{background:linear-gradient(var(--ok-soft),var(--ok-soft)),var(--surface);flex-wrap:wrap;justify-content:flex-start;gap:8px 10px}.gs-notices .notice.wait{background:var(--surface)}.gs-notices .notice.think{background:linear-gradient(var(--info-soft),var(--info-soft)),var(--surface);color:var(--text)}.notice.think>.dots{color:var(--info)}.notice.offer>.icon{color:var(--ok)}.notice-text{flex:1;min-width:0}.notice.offer .notice-text{flex:1 1 auto}.offer-actions{display:flex;gap:6px;flex:none}.notice-close{flex:none;width:28px;height:28px;margin:-4px -6px -4px 0;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.notice-close:hover{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}.notice-close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.side-col{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.gs-tabs{flex:none;display:flex;align-items:stretch;gap:2px;padding:0 6px;border-bottom:1px solid var(--border)}.gs-tab{position:relative;flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;margin:0;padding:0 4px;border:0;background:none;color:var(--text-2);font:inherit;font-size:.9rem;font-weight:700;line-height:1.2;letter-spacing:0;white-space:nowrap;cursor:pointer;transition:color var(--dur) var(--ease)}.gs-tab:after{content:"";position:absolute;left:6px;right:6px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:transparent;transition:background var(--dur) var(--ease)}.gs-tab:hover,.gs-tab.active{color:var(--text)}.gs-tab.active>.icon{color:var(--primary-ink)}.gs-tab.active:after{background:var(--primary)}.gs-tab:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:inset 0 0 0 2px var(--primary-ring)}.gs-tab-label{overflow:hidden;text-overflow:ellipsis}.gs-tabs.single{justify-content:flex-start}.gs-tabs.single .gs-tab{flex:none;justify-content:flex-start;padding:0 4px;cursor:default}.gs-tabs.single .gs-tab:after{display:none}.gs-tab-count{flex:none;padding:0 7px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-size:.7rem;font-weight:700;line-height:18px}.gs-tab-badge{flex:none;min-width:19px;height:19px;padding:0 5px;border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:.7rem;font-weight:800;line-height:19px;text-align:center;animation:pop-in .2s var(--ease)}.gs-panel{display:flex;flex-direction:column;height:240px;min-height:0}.gs-panel[hidden]{display:none!important}.gs-foot{flex:none;padding:10px 12px;border-top:1px solid var(--border)}.move-list{flex:1 1 auto;min-height:0;overflow:auto;padding:6px 8px;font-size:.9rem;scrollbar-width:thin;overscroll-behavior:contain}.mv-row{display:grid;grid-template-columns:2.6em minmax(0,1fr) minmax(0,1fr);align-items:center;gap:2px;border-radius:var(--radius-xs)}.mv-row:nth-child(2n){background:color-mix(in srgb,var(--surface-2) 70%,transparent)}.mv-no{padding-right:6px;text-align:right;color:color-mix(in srgb,var(--muted) 70%,var(--text));font-size:.78rem;font-variant-numeric:tabular-nums}.mv{min-height:30px;padding:4px 8px;border:0;border-radius:var(--radius-xs);background:none;color:var(--text);font-weight:500;text-align:left;line-height:1.25;overflow-wrap:anywhere;cursor:pointer}.mv-main,.mv-note{display:block}.mv-note{font-size:.8em;font-weight:500;opacity:.8}.move-list[hidden]{display:none!important}.mv-help-bar{flex:none;display:flex;justify-content:flex-end;padding:2px 8px 4px}.mv-help-btn{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:2px 8px;border:0;border-radius:var(--radius-pill);background:none;color:var(--text-2);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer}.mv-help-btn:hover{background:var(--surface-2);color:var(--text)}.mv-help{flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px 14px 6px;font-size:.86rem;line-height:1.45;color:var(--text-2);overscroll-behavior:contain;scrollbar-width:thin}.mv-help p{margin:0 0 6px}.mv-help ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.mv-help b{color:var(--text)}.mv:disabled{cursor:default;color:var(--text)}.move-list.selectable .mv:hover{background:var(--surface-3)}.mv.current{background:var(--primary-soft);color:var(--primary-ink);font-weight:700}.move-list.selectable .mv.current{background:var(--primary);color:var(--on-primary)}.mv-empty{padding:18px 8px;text-align:center;color:var(--muted);font-size:.88rem}.move-list:has(>.mv-empty){display:flex;align-items:center;justify-content:center}.chat-log{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.chat-list{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:3px;padding:10px 12px;scrollbar-width:thin;overscroll-behavior:contain}.chat-empty{margin:auto;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;text-align:center;color:var(--muted);font-size:.85rem}.chat-empty .icon{color:var(--border-strong)}.chat-msg{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.chat-msg.first:not(:first-child){margin-top:6px}.chat-msg.mine{align-items:flex-end}.chat-author{margin:0 10px 2px;font-size:.72rem;font-weight:700;color:var(--muted)}.chat-line{display:flex;align-items:center;gap:4px;max-width:88%;min-width:0}.chat-msg.mine .chat-line{flex-direction:row-reverse}.chat-text{min-width:0;padding:6px 12px;border-radius:16px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:.9rem;line-height:1.4;overflow-wrap:anywhere;white-space:pre-wrap}.chat-msg:not(.mine).first .chat-text{border-top-left-radius:6px}.chat-msg.mine .chat-text{background:var(--primary);border-color:transparent;color:var(--on-primary)}.chat-msg.mine.first .chat-text{border-top-right-radius:6px}:root[data-theme=dark] .chat-msg.mine .chat-text{background:color-mix(in srgb,var(--primary) 72%,#000)}.chat-report{flex:none;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer;opacity:0;transition:opacity var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease)}.chat-msg:hover .chat-report,.chat-report:focus-visible{opacity:1}.chat-report:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.chat-report.done{opacity:1;color:var(--ok);cursor:default}@media(hover:none){.chat-report{opacity:.6}}.chat-dock{flex:none;display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-top:1px solid var(--border)}.chat-form{display:flex;gap:8px}.chat-form input{flex:1;min-width:0}.chat-send{--btn-h: 42px}.chat-hint{display:flex;justify-content:space-between;gap:8px;padding:0 2px;font-size:.74rem;color:var(--muted)}.side-note{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:.8rem;color:var(--muted)}.side-note .icon{margin-top:2px}.side-note+.side-note{margin-top:8px}.side-note.guest-hint .notice-close{margin:-6px -6px -6px 0}.side-note.guest-hint .notice-close .icon{margin-top:0}.replay-wrap{display:flex;flex-direction:column;gap:8px;min-width:0}.replay-controls{display:flex;align-items:center;gap:6px}.replay-controls .btn{flex:1 1 0;padding:0;min-width:0}.replay-controls .rc-play{flex-grow:1.4}.replay-progress{display:flex;align-items:center;gap:10px;min-width:0}.rc-counter{flex:none;min-width:58px;text-align:center;font-weight:700;font-size:.9rem;color:var(--text-2);font-variant-numeric:tabular-nums}.replay-scrub{width:100%;min-width:0;height:24px;margin:0;accent-color:var(--primary);cursor:pointer}.replay .dock{flex-direction:column;align-items:stretch}.replay .gs-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"ctrl ctrl" "prog view";gap:8px 10px}.replay .replay-wrap{display:contents}.replay .replay-controls{grid-area:ctrl}.replay .replay-progress{grid-area:prog}.replay .gs-view{grid-area:view}.replay-info{display:flex;flex-direction:column;gap:8px;font-size:.85rem;color:var(--muted)}.replay-info .kbd-hint{display:flex;align-items:center;gap:6px;flex-wrap:wrap}kbd.key{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 5px;border-radius:5px;border:1px solid var(--border-strong);border-bottom-width:2px;background:var(--surface-raised);color:var(--text-2);font-family:var(--font);font-size:.72rem;font-weight:700}.replay-links{display:flex;gap:8px;flex-wrap:wrap}.play-skeleton .sk-col{display:flex;flex-direction:column;gap:var(--col-gap);min-width:0}.sk-bar{height:var(--bar-h);border-radius:var(--radius)}.sk-board{width:100%;aspect-ratio:var(--ratio);border-radius:var(--radius)}.sk-side{min-height:120px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.play-error{max-width:480px;margin:32px auto}.play-error .panel{display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 22px;text-align:center}.play-error .panel-title{margin-bottom:0}.play-error p{margin:0}.pe-icon{width:60px;height:60px;margin-bottom:8px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--warn-soft);color:var(--warn)}.pe-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px}.modal:has(.result-details){text-align:center}.modal:has(.result-details) .modal-icon{width:64px;height:64px;margin:2px auto 12px}.modal:has(.result-details) .modal-icon .icon{width:32px;height:32px}.modal:has(.result-details) .modal-title{font-size:1.6rem;margin-bottom:6px}.modal:has(.result-details) .modal-actions{justify-content:center}.modal:has(.result-details) .modal-actions>.btn{min-width:140px}.result-details{display:flex;flex-direction:column;align-items:center;gap:14px}.result-reason{display:inline-flex;align-items:center;gap:6px;margin:0;padding:4px 12px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-weight:600;font-size:.92rem}.result-reason .icon{color:var(--muted)}.rating-change{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 18px;padding:14px 16px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);text-align:left}.rating-change.up{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,transparent)}.rating-change.down{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.rc-delta{font-size:2.6rem;font-weight:800;line-height:1;letter-spacing:-.03em}.rating-change.up .rc-delta{color:var(--ok)}.rating-change.down .rc-delta{color:var(--danger)}.rating-change.zero{background:var(--surface-2)}.rating-change.zero .rc-delta{color:var(--muted)}.rc-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.rc-range{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:1rem}.rc-range b{color:var(--text);font-size:1.15rem}.tier-change{flex-basis:100%;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px dashed color-mix(in srgb,var(--text) 18%,transparent);font-weight:700}.tier-change.up .tc-label{color:var(--ok)}.tier-change.down .tc-label{color:var(--danger)}.result-note{margin:0;color:var(--muted);font-size:.92rem}@media(max-width:760px){.play{--bar-h: 46px;--col-gap: 6px;--play-gap: 8px;--top-pad: 12px;--bottom-gap: 10px;--dock-h: 100px;--board-w: max(280px, calc(var(--board-h) * var(--ratio)))}.player-bar{gap:8px;padding:0 6px 0 8px;border-radius:var(--radius-sm)}.player-bar.active:before{top:7px;bottom:7px;width:3px}.pb-avatar .avatar{width:32px!important;height:32px!important;font-size:13px!important}.bot-avatar .icon{width:18px;height:18px}.side-piece{width:16px;height:16px;right:-4px;bottom:-3px;font-size:10px}.side-piece.side-chess-0,.side-piece.side-chess-1{font-size:11px}.pb-info{flex-direction:row;align-items:center;gap:8px}.pb-name{flex:0 1 auto;font-size:.92rem;gap:5px}.pb-meta{flex:none;gap:6px;font-size:.76rem}.pb-side,.player-bar .tier-name,.pb-offline-text,.pb-thinking-text{display:none}.pb-you{font-size:.6rem;padding:1px 6px}.pb-check{padding:2px 8px;font-size:.72rem}.clock{min-width:76px;height:34px;padding:0 8px;font-size:1.18rem}.dock{flex-direction:column;align-items:stretch;gap:6px;padding:6px}.gs-status .status-card{padding:5px 10px;gap:10px;min-height:36px}.gs-status .status-icon{width:24px;height:24px}.gs-status .status-icon .icon{width:15px;height:15px}.live-dot{width:9px;height:9px}.gs-status .status-text{display:flex;align-items:baseline;gap:8px;min-width:0}.gs-status .status-title{flex:none;font-size:.98rem}.gs-status .status-sub{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.status-delta{font-size:1.15rem}.gs-toolbar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}.gs-view,.gs-toolbar .actions{display:contents}.gs-toolbar .actions .act{order:1}.gs-view .act-flip{order:2}.gs-view .act-quick{order:3}.gs-view .act-focus{display:none}.gs-toolbar .act,.gs-view .act-flip{--btn-h: 52px;width:auto;flex-direction:column;gap:3px;padding:0 4px;font-size:.74rem;line-height:1.1;border-color:transparent;background:var(--surface-2);color:var(--text-2);box-shadow:none}.gs-view .act-flip .act-label{display:block}.gs-toolbar .act:hover{background:var(--surface-3);color:var(--text)}.gs-toolbar .act.btn-danger{color:var(--danger)}.gs-toolbar .act.btn-danger:hover{background:var(--danger-soft)}.gs-toolbar .act.btn-primary{background:var(--primary);color:var(--on-primary)}.gs-toolbar .act.act-hint{background:var(--gold-soft);color:var(--gold-ink)}.gs-toolbar .act .icon{width:20px;height:20px}.act-label{max-width:100%;white-space:nowrap}.act-more{display:none}.replay .gs-view{display:flex}.replay .gs-view .act-flip{--btn-h: 42px;width:46px;padding:0;flex-direction:row}.replay .gs-view .act-flip .act-label{display:none}.replay-controls .btn{--btn-h: 46px}.offer-actions .btn{--btn-h: 42px;padding:0 14px}.notice-close{width:40px;height:40px;margin:-10px -8px -10px 0}.gs-panel{height:232px}.gs-tab{min-height:46px}.mv{min-height:36px}.mv-help-btn{min-height:40px}.pb-rating-unit{display:none}.chat-report{width:40px;height:40px;margin:-6px -6px -6px 0}.chat-msg.mine .chat-report{margin:-6px 0 -6px -6px}.chat-send{--btn-h: 44px}.replay-links .btn{--btn-h: 42px}.rc-counter{min-width:54px;font-size:.85rem}.gh-icon{width:36px;height:36px}.gh-title{font-size:.98rem}.play-error{margin:12px auto}.replay-info .kbd-hint{display:none}.modal:has(.result-details) .modal-actions>.btn{min-width:0}}@media(max-width:380px){.play{--bar-h: 44px}.pb-you{display:none}.clock{min-width:70px;font-size:1.1rem}.gs-toolbar .act{font-size:.7rem}}@media(min-width:761px)and (min-aspect-ratio:851/1000){.play{--bar-h: 64px;--play-gap: 16px;--side-w: clamp(300px, 22vw, 340px);--tools-h: 36px;--bottom-gap: 12px;--board-hmax: calc(100dvh - var(--header-h) - var(--top-pad) - var(--bottom-gap) - var(--tools-h));--board-w: max(300px, min(calc(var(--board-hmax) * var(--ratio)), calc(100cqi - var(--side-w) - var(--play-gap))));display:grid;grid-template-columns:var(--board-w) var(--side-w);grid-template-rows:auto auto minmax(0,1fr) auto auto var(--tools-h);grid-template-areas:"board head" "board top" "board side" "board status" "board bottom" "tools bottom";column-gap:var(--play-gap);row-gap:0;align-items:stretch;justify-content:center;height:calc(var(--board-w) / var(--ratio) + var(--tools-h));margin-bottom:-4px}.play>*{width:auto;max-width:none}.play.gs:before{content:"";grid-column:2;grid-row:1 / -1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.play>.board-col,.play>.dock{display:contents}.play .board-area{grid-area:board}.board-col>.player-bar:first-child{grid-area:top}.board-col>.player-bar:last-child{grid-area:bottom}.play>.game-head{grid-area:head}.play .gs-status{grid-area:status}.play .gs-toolbar{grid-area:tools}.play>.side-col{grid-area:side}.play>.gs-notices{grid-area:board}.play>.game-head{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon title" "icon sub" "icon tc";align-items:center;column-gap:10px;row-gap:1px;padding:12px 14px 10px;background:none;border:0;border-radius:0;box-shadow:none}.play>.game-head .gh-icon{grid-area:icon;width:34px;height:34px;border-radius:10px}.play>.game-head .gh-icon .icon{width:24px;height:24px}.play>.game-head .gh-text{display:contents}.play>.game-head .gh-title{grid-area:title;min-width:0;overflow-wrap:anywhere;font-size:.95rem}.play>.game-head .gh-sub{grid-area:sub;font-size:.78rem}.play>.game-head .gh-tc{grid-area:tc;justify-self:start;margin-top:4px;padding:2px 8px;font-size:.76rem}.play>.game-head .gh-icon{align-self:start;margin-top:2px}.board-col>.player-bar{container:pbar / inline-size;height:auto;min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"av name clock" "av meta meta";align-items:center;align-content:center;column-gap:12px;row-gap:4px;padding:12px 14px;border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;box-shadow:none}.board-col>.player-bar:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg)}.board-col>.player-bar.active{background:linear-gradient(90deg,color-mix(in srgb,var(--primary-soft) 90%,transparent),transparent 85%);box-shadow:none}.board-col>.player-bar.in-check{background:linear-gradient(90deg,var(--danger-soft),transparent 85%)}.board-col>.player-bar.active:before{left:0;top:12px;bottom:12px}.board-col>.player-bar .pb-avatar{grid-area:av}.board-col>.player-bar .pb-avatar .avatar{width:44px!important;height:44px!important}.board-col>.player-bar .pb-info{display:contents}.board-col>.player-bar .pb-name{grid-area:name}.board-col>.player-bar .pb-name-text{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.board-col>.player-bar .pb-meta{grid-area:meta}.board-col>.player-bar:has(>.pb-flags){grid-template-areas:"av name clock" "av meta flags"}.board-col>.player-bar .pb-flags{grid-area:flags;justify-self:end}.board-col>.player-bar:has(.pb-captured){grid-template-areas:"av name clock" "av meta meta" "av cap cap"}.board-col>.player-bar:has(>.pb-flags):has(.pb-captured){grid-template-areas:"av name clock" "av meta flags" "av cap cap"}.board-col>.player-bar .pb-captured{grid-area:cap}.board-col>.player-bar .clock{grid-area:clock;min-width:104px;height:44px;font-size:1.7rem}.play>.side-col{min-height:0;background:none;border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none}.play .gs-panel{flex:1 1 0;height:auto}.chat-form input{min-height:38px;padding-block:6px}.chat-send{--btn-h: 38px}.play .gs-status{flex:none;gap:0;border-top:1px solid var(--border)}.play .gs-status .status-card{padding:10px 14px;border:0;border-radius:0}.play .gs-status .status-icon{width:34px;height:34px}.play .gs-status .status-title{font-size:1.08rem}.play .gs-status .status-sub{font-size:.82rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.play .gs-status .save-status{padding:0 14px 10px;font-size:.82rem}.play .gs-toolbar{container:tools / inline-size;align-self:end;display:flex;align-items:center;gap:8px;height:30px;min-width:0}.play .gs-view{display:flex;gap:2px}.play .gs-toolbar .actions,.play .gs-toolbar .replay-wrap{margin-left:auto;display:flex;flex-direction:row;align-items:center;gap:6px;min-width:0}.play .gs-toolbar .btn{--btn-h: 30px;padding:0 10px;font-size:.84rem;gap:6px}.play .gs-toolbar .btn .icon{width:17px;height:17px}.play .gs-view .act-flip,.play .gs-view .act-focus{width:auto;padding:0 10px;color:var(--text-2)}.play .gs-view .act-flip:hover,.play .gs-view .act-focus:hover{color:var(--text)}.play .gs-view .act-focus.on{color:var(--primary-ink)}.play .gs-view .act-flip .act-label,.play .gs-view .act-focus .act-label{display:inline}.play .gs-view .act-quick{display:none}.play.replay .gs-toolbar{display:flex}.play.replay .gs-toolbar .replay-wrap{flex:1;margin-left:6px;gap:10px}.play.replay .replay-controls{flex:none;gap:4px}.play.replay .replay-controls .btn{flex:none;width:36px;padding:0}.play.replay .replay-controls .rc-play{width:44px}.play.replay .replay-progress{flex:1;gap:8px}.play.replay .rc-counter{min-width:52px;font-size:.84rem}.play>.gs-notices{position:relative;z-index:4;align-self:start;height:0}.play>.gs-notices.overlay-only{display:block}.gs-notices-inner{position:absolute;top:-15px;left:14px;right:14px;flex-flow:row wrap;justify-content:center;gap:6px;pointer-events:none}.play .gs-notices .notice{pointer-events:auto;display:inline-flex;flex-wrap:nowrap;align-items:center;gap:8px;height:30px;max-width:100%;padding:0 14px 0 12px;border-radius:var(--radius-pill);font-size:.84rem;line-height:1.2;white-space:nowrap;box-shadow:0 1px 2px #28190a1f,0 4px 14px #28190a2e;animation:notice-in .22s var(--ease)}.play .gs-notices .notice.overlay-only{display:inline-flex}.play .gs-notices .notice>.icon{width:16px;height:16px}.play .gs-notices .notice-text{overflow:hidden;text-overflow:ellipsis}.play .gs-notices .notice:has(.notice-close),.play .gs-notices .notice:has(.offer-actions){padding-right:4px}.play .gs-notices .notice-close{width:24px;height:24px;margin:0}.play .gs-notices .offer-actions{gap:4px}.play .gs-notices .offer-actions .btn{--btn-h: 24px;padding:0 10px;border-radius:var(--radius-pill);font-size:.8rem;gap:4px}.play .gs-notices .offer-actions .btn .icon{width:14px;height:14px}.play .gs-notices .notice.think{animation:notice-in .22s .45s var(--ease) both}.play-skeleton .sk-col{grid-column:1;grid-row:1 / -1}.play-skeleton .sk-side{grid-column:2;grid-row:1 / -1;min-height:0}.play-skeleton .sk-bar{display:none}}@keyframes notice-in{0%{opacity:0;transform:translateY(-4px)}}@media(min-width:761px)and (min-aspect-ratio:851/1000)and (max-height:820px){.play{--bottom-gap: 8px}.play>.game-head{padding:9px 12px 8px}.play>.game-head .gh-icon{width:30px;height:30px}.play>.game-head .gh-icon .icon{width:21px;height:21px}.board-col>.player-bar{padding:9px 12px;row-gap:2px;column-gap:10px}.board-col>.player-bar .pb-avatar .avatar{width:38px!important;height:38px!important}.board-col>.player-bar .clock{min-width:96px;height:38px;font-size:1.45rem}.gs-tab{min-height:40px}.play .gs-status .status-card{padding:8px 12px;gap:10px}.play .gs-status .status-icon{width:30px;height:30px}.play .gs-status .status-title{font-size:1rem}.play .gs-status .status-sub{font-size:.8rem}.chat-dock{padding:6px 10px}}@container tools (max-width: 699px){.gs-view .act-flip,.gs-view .act-focus{width:32px!important;padding:0!important}.gs-view .act-flip .act-label,.gs-view .act-focus .act-label{display:none!important}}@container tools (max-width: 470px){.act-more{display:none}.gs-toolbar .actions .btn{padding:0 8px}}@container pbar (max-width: 300px){.pb-you{display:none}}.pb-captured{display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-width:0;margin-top:1px}.pb-cap{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-family:var(--font-han);font-size:11px;font-weight:700;line-height:1;background:#fbe9c8;border:1.2px solid currentColor}.pb-cap-label{margin-right:4px;font-size:.74rem;font-weight:600;color:var(--muted)}.pb-cap.side-xiangqi-0{color:#b3261e}.pb-cap.side-xiangqi-1{color:#1f1a17}@media(max-width:760px){.pb-captured{flex:0 1 auto;flex-wrap:nowrap;overflow:hidden;gap:0;margin-top:0}.pb-cap-label{display:none}.pb-cap{flex:none;width:16px;height:16px;font-size:10px}.pb-cap+.pb-cap{margin-left:-4px}}.rc-rules{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.rc-rules li{padding:3px 10px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-2);font-size:.8rem}.medal{--medal: var(--medal-gold);width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff;font-weight:800;font-size:.78rem;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 1px 1px rgba(0,0,0,.28);background:radial-gradient(circle at 32% 26%,color-mix(in srgb,var(--medal) 50%,#fff) 0%,var(--medal) 55%,color-mix(in srgb,var(--medal) 78%,#000) 100%);box-shadow:inset 0 0 0 1.5px #ffffff59,0 1px 2px #0003}.medal-gold{--medal: var(--medal-gold)}.medal-silver{--medal: var(--medal-silver)}.medal-bronze{--medal: var(--medal-bronze)}.rank-num{min-width:24px;text-align:center;font-weight:700;font-size:.86rem;color:var(--muted);flex:none;font-variant-numeric:tabular-nums}.rank-num-long{font-size:.74rem}:is(.lb,.seasons,.profile) .tier-name,.pf-tier-text{color:color-mix(in srgb,var(--tier-c, currentColor) 62%,var(--text))}.lb-meter{--meter-fill: var(--primary);display:block;position:relative;height:6px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}.lb-meter-fill{display:block;height:100%;border-radius:inherit;background:var(--meter-fill);transition:width .4s var(--ease)}.lb{display:flex;flex-direction:column;gap:10px}.lb-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 10px}.lb-heading{display:flex;flex-direction:column;gap:1px;min-width:0}.lb-title{display:flex;align-items:center;gap:6px;font-size:1.05rem;font-weight:800;letter-spacing:-.015em}.lb-title-icon{color:var(--gold)}.lb-meta{display:flex;align-items:center;flex-wrap:wrap;gap:2px 8px;margin:0;font-size:.76rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.lb-days{display:inline-flex;align-items:center;gap:4px}.lb-days.is-urgent{color:var(--primary-ink)}.lb-s-meta{display:block;width:136px;height:12px;margin-top:4px;border-radius:var(--radius-pill)}.lb-tabs{flex:1 0 100%;display:flex}.lb-tabs button{flex:1}.lb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.lb-list>.lb-row{position:relative;border-radius:var(--radius-sm)}.lb-link{display:flex;align-items:center;gap:10px;min-height:44px;padding:5px 8px;border-radius:var(--radius-sm);color:var(--text);transition:background var(--dur) var(--ease)}.lb-link:hover{text-decoration:none}.lb-link:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--primary)}.lb-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;line-height:1.25}.lb-sub{display:flex;align-items:center;gap:6px;min-width:0}.lb-username{min-width:0;font-weight:650;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-name .tier-badge{font-size:.74rem}.lb-rating{flex:none;min-width:3.4ch;text-align:right;font-weight:800;font-size:.94rem;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.lb-you{flex:none;display:inline-flex;align-items:center;height:17px;padding:0 6px;border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:.62rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.lb-list>.lb-row.top1{background:linear-gradient(90deg,color-mix(in srgb,var(--medal-gold) 20%,transparent),transparent 88%)}.lb-list>.lb-row.top2{background:linear-gradient(90deg,color-mix(in srgb,var(--medal-silver) 22%,transparent),transparent 88%)}.lb-list>.lb-row.top3{background:linear-gradient(90deg,color-mix(in srgb,var(--medal-bronze) 20%,transparent),transparent 88%)}.lb-list>.lb-row.top1 .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--medal-gold)}.lb-list>.lb-row.top2 .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--medal-silver)}.lb-list>.lb-row.top3 .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--medal-bronze)}.lb-list>.lb-row.me{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.lb-mine{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px dashed var(--border-strong)}.lb-mine-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.lb-mine-link{flex-wrap:wrap;row-gap:2px;background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary);min-height:52px}.lb-mine-progress{flex:1 0 100%;display:flex;flex-direction:column;gap:4px;padding:0 0 4px 74px}.lb-mine-link .rank-num{color:var(--primary-ink)}.lb-mine-sub{font-size:.76rem;font-weight:500;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-mine-meter{height:4px;max-width:160px;background:color-mix(in srgb,var(--primary) 14%,var(--surface))}.lb-guest{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-size:.84rem;line-height:1.4}.lb-guest>.icon{flex:none;color:var(--muted)}a.lb-guest-link{transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}a.lb-guest-link b{color:var(--primary-ink)}a.lb-guest-link:hover{text-decoration:none}a.lb-guest-link:focus-visible{outline:none;box-shadow:var(--focus-ring)}.lb-archive{display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);font-weight:600;font-size:.88rem;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.lb-archive:hover{text-decoration:none}.lb-archive:focus-visible{outline:none;box-shadow:var(--focus-ring)}.lb-archive:active{background:var(--primary-soft)}.lb-archive-arrow{transition:transform var(--dur) var(--ease)}@media(hover:hover){.lb-link:hover{background:var(--surface-2)}.lb-mine-link:hover{background:color-mix(in srgb,var(--primary-soft) 75%,var(--primary) 10%)}a.lb-guest-link:hover{color:var(--text);background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}a.lb-guest-link:hover>.icon{color:var(--primary-ink)}.lb-archive:hover{color:var(--primary-ink);background:var(--primary-soft);border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}.lb-archive:hover .lb-archive-arrow{transform:translate(3px)}a.podium-person:hover{background:color-mix(in srgb,var(--medal-c) 10%,transparent)}}.lb-link:active{background:var(--surface-2)}.lb-empty .empty{padding:18px 6px 14px}.lb-empty-title,.ss-empty-title{font-weight:700;color:var(--text-2);margin-bottom:4px}.lb-error{align-items:center}.lb-error .btn{flex:none}.lb-skeleton{display:flex;flex-direction:column;gap:2px}.lb-srow{display:flex;align-items:center;gap:10px;min-height:44px;padding:5px 8px}.lb-s-rank{width:22px;height:22px;border-radius:50%;flex:none}.lb-s-avatar{width:30px;height:30px;border-radius:50%;flex:none}.lb-s-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.lb-s-line{display:block;height:10px;border-radius:var(--radius-pill)}.lb-s-short{width:42%!important;height:8px}.lb-s-num{width:36px;height:14px;border-radius:var(--radius-pill);flex:none}@media(max-width:1199px){.seasons .lb-link,.seasons .lb-srow{min-height:50px}}.lb-card{container:lb-card / inline-size}.lb-card .lb-list,.lb-card .lb-skeleton{gap:1px}.lb-card .lb-link,.lb-card .lb-srow{gap:8px;min-height:34px;padding:3px 8px}.lb-card .medal{width:22px;height:22px;font-size:.72rem}.lb-card .rank-num{min-width:22px;font-size:.82rem}.lb-card .lb-name{flex-direction:row;align-items:center;gap:8px}.lb-card .lb-username{flex:1 1 auto;font-size:.88rem}.lb-card .lb-sub{flex:none;gap:5px}.lb-card .lb-name .tier-badge{font-size:.72rem}.lb-card .lb-name .tier-name{display:none}.lb-card .lb-rating{min-width:4ch;font-size:.9rem}.lb-card .lb-you{height:16px;padding:0 5px;font-size:.58rem}.lb-card .lb-s-avatar{width:24px;height:24px}.lb-card .lb-s-text{flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.lb-card .lb-s-short{width:22%!important}.lb-card .lb-mine{gap:4px;padding-top:8px}.lb-card .lb-mine-label{font-size:.68rem}.lb-card .lb-mine-link{flex-wrap:nowrap;min-height:38px}.lb-mine-games{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:var(--radius-pill);font-size:.7rem;font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 28%,transparent) var(--pct, 0%),color-mix(in srgb,var(--surface-raised) 70%,transparent) var(--pct, 0%));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 30%,transparent)}.lb-card .lb-guest{gap:8px;padding:8px 10px;font-size:.82rem;line-height:1.35}.lb-card .lb-archive{gap:6px;min-height:34px;font-size:.84rem}.lb-foot{display:flex;gap:8px}.lb-foot .lb-archive{flex:1 1 0;min-width:0;white-space:nowrap}@container lb-card (max-width: 319.98px){.lb-card .lb-link,.lb-card .lb-srow{min-height:40px}.lb-card .lb-name{flex-direction:column;align-items:stretch;gap:0}.lb-card .lb-username{flex:none;font-size:.86rem}.lb-card .lb-name .tier-badge{font-size:.7rem}.lb-card .lb-name .tier-name{display:inline}.lb-card .lb-s-text{flex-direction:column;align-items:stretch;gap:5px}.lb-card .lb-mine-link{min-height:44px}}@media(max-width:760px),(pointer:coarse){.lb-card .lb-tabs button,.lb-card .lb-link,.lb-card .lb-srow{min-height:40px}.lb-card .lb-mine-link{min-height:44px}.lb-card .lb-archive,.lb-card .lb-guest{min-height:40px}}.seasons{display:flex;flex-direction:column;gap:18px}.seasons .panel+.panel{margin-top:0}.ss-hero{--hero-a: #5e1712;--hero-b: #9a2219;--hero-c: #4a150d;--hero-text: #fff7ea;--hero-muted: rgba(255, 236, 210, .86);--hero-gold: #f5d47f;--hero-glass: rgba(24, 6, 2, .24);--hero-line: rgba(255, 224, 176, .22);position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;gap:18px;padding:20px 26px 26px;border-radius:var(--radius-lg);color:var(--hero-text);background:radial-gradient(560px 340px at 86% 12%,rgba(245,212,127,.24),transparent 70%),radial-gradient(640px 320px at -5% 115%,rgba(0,0,0,.3),transparent 70%),linear-gradient(135deg,var(--hero-a),var(--hero-b) 52%,var(--hero-c));box-shadow:inset 0 0 0 1px #ffdca029,var(--shadow)}:root[data-theme=dark] .ss-hero{--hero-a: #3a0e0a;--hero-b: #6c1a13;--hero-c: #260c07;box-shadow:inset 0 0 0 1px #ffd29624,var(--shadow)}.ss-hero:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--hero-line) 1px,transparent 1px),linear-gradient(90deg,var(--hero-line) 1px,transparent 1px);background-size:54px 54px;background-position:-1px -1px;opacity:.55;-webkit-mask-image:radial-gradient(ellipse 70% 90% at 78% 40%,#000 0%,transparent 72%);mask-image:radial-gradient(ellipse 70% 90% at 78% 40%,#000 0%,transparent 72%)}.ss-hero:after{content:"";position:absolute;inset:0 0 auto;height:3px;z-index:-1;background:linear-gradient(90deg,transparent,var(--hero-gold) 30%,var(--hero-gold) 70%,transparent);opacity:.7}.ss-hero-piece{position:absolute;z-index:-1;right:-46px;bottom:-58px;display:block;opacity:.16;transform:rotate(-14deg);filter:saturate(.7);pointer-events:none;animation:ss-float 9s ease-in-out infinite}.ss-hero-piece .icon{display:block}@keyframes ss-float{50%{transform:rotate(-10deg) translateY(-10px)}}.ss-hero-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}.ss-hero-game,.ss-kicker{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:var(--radius-pill);background:var(--hero-glass);border:1px solid var(--hero-line);font-size:.8rem;font-weight:700;white-space:nowrap}.ss-hero-game{padding-left:6px;color:var(--hero-text)}.ss-kicker{color:#9af0bd;letter-spacing:.04em;text-transform:uppercase;font-size:.72rem}.ss-kicker.is-closing{color:var(--hero-gold)}.ss-live-dot{width:8px;height:8px;flex:none;border-radius:50%;background:currentColor;box-shadow:0 0 color-mix(in srgb,currentColor 45%,transparent);animation:ss-pulse 1.8s var(--ease) infinite}@keyframes ss-pulse{70%{box-shadow:0 0 0 7px color-mix(in srgb,currentColor 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,currentColor 0%,transparent)}}.ss-tabs{flex:none;margin-left:auto}.ss-hero .seg{background:var(--hero-glass);border-color:var(--hero-line)}.ss-hero .seg button{color:var(--hero-muted)}.ss-hero .seg button:hover{color:var(--hero-text)}.ss-hero .seg button.active{background:var(--hero-text);color:#8e2119;box-shadow:0 2px 8px #00000040}.ss-hero .seg button:focus-visible{outline:none;box-shadow:0 0 0 3px #ffe2a0bf}.ss-hero-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,410px);align-items:end;gap:22px 36px}.ss-hero-text{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}.ss-hero-title{margin:0;font-size:clamp(1.85rem,1.1rem + 2.6vw,3rem);font-weight:800;line-height:1.08;letter-spacing:-.025em;color:var(--hero-text);text-shadow:0 2px 14px rgba(0,0,0,.25)}.ss-hero-q{display:inline-block;color:var(--hero-gold);background:linear-gradient(180deg,#fff1c4,#f5d47f 45%,#e0a93c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 2px 10px rgba(0,0,0,.25))}.ss-hero-range{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 7px;font-weight:650;font-size:.98rem;font-variant-numeric:tabular-nums}.ss-hero-range .icon{color:var(--hero-gold)}.ss-hero-tz{color:var(--hero-muted);font-weight:500;font-size:.86rem}.ss-hero-lead{margin:2px 0 0;max-width:56ch;color:var(--hero-muted);font-size:.95rem;line-height:1.55}.ss-hero-lead b{color:var(--hero-text)}.ss-hero-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.ss-hero-facts li{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--radius-pill);background:#fff0d71a;border:1px solid var(--hero-line);color:var(--hero-text);font-size:.8rem;font-weight:600;white-space:nowrap}.ss-hero-facts .icon{color:var(--hero-gold)}.ss-hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.ss-btn-gold{background:linear-gradient(180deg,#fbe39c,#e8b955);border-color:transparent;color:#3b1d06;font-weight:750;box-shadow:inset 0 1px #ffffffa6,0 8px 22px #00000047}.ss-btn-glass{background:#fff0d71a;border-color:#ffecd261;color:var(--hero-text)}.ss-btn-gold:hover{background:linear-gradient(180deg,#ffeab0,#efc261);color:#3b1d06}.ss-btn-glass:hover{background:#fff0d733;color:var(--hero-text)}.ss-btn-gold:focus-visible,.ss-btn-glass:focus-visible{box-shadow:0 0 0 3px #ffe2a0cc}.ss-clock{display:flex;flex-direction:column;gap:12px;min-width:0;padding:16px 16px 14px;border-radius:var(--radius);background:var(--hero-glass);border:1px solid var(--hero-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ss-clock-label{display:flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--hero-muted)}.ss-clock-label .icon{color:var(--hero-gold)}.ss-clock-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ss-unit{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 2px 8px;border-radius:var(--radius-sm);background:linear-gradient(180deg,#fff5e124,#fff5e10a);border:1px solid var(--hero-line);box-shadow:inset 0 -10px 18px #0000001f}.ss-unit-v{font-size:2rem;font-weight:800;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--hero-text)}.ss-unit:first-child .ss-unit-v{color:var(--hero-gold)}.ss-unit-l{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--hero-muted)}.ss-clock-closing{font-size:1.5rem;font-weight:800;color:var(--hero-gold)}.ss-progress{display:flex;flex-direction:column;gap:6px}.ss-progress-track{position:relative;height:10px;border-radius:var(--radius-pill);background:#fff0d724;box-shadow:inset 0 1px 2px #0000004d}.ss-progress-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,#e0a93c,#f5d47f 60%,#fff1c4) 0 0 / 200% 100%;box-shadow:0 0 12px #f5d47f73;animation:ss-shine 4s linear infinite,ss-fill .9s var(--ease) both;transform-origin:left center}@keyframes ss-shine{to{background-position:-200% 0}}@keyframes ss-fill{0%{transform:scaleX(0)}}.ss-progress-tick{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;border-radius:1px;background:#fff0d773}.ss-progress-now{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fffaf0;border:3px solid #e8b955;box-shadow:0 0 0 4px #f5d47f47,0 2px 6px #00000059}.ss-progress-months{position:relative;height:16px;font-size:.72rem;font-weight:600;color:var(--hero-muted)}.ss-progress-months>span{position:absolute;top:0;transform:translate(-50%);white-space:nowrap}.ss-progress-months>span.is-past{color:var(--hero-text)}.ss-m-short{display:none}.ss-progress-pct{font-size:.78rem;font-weight:600;color:var(--hero-muted);text-align:right;font-variant-numeric:tabular-nums}.ss-hero .skeleton{background:linear-gradient(90deg,#fff0d714,#fff0d72e,#fff0d714);background-size:200% 100%}.ss-s-range{display:block;width:180px;height:14px;border-radius:var(--radius-pill)}.ss-s-clock{display:block;height:74px}.ss-s-bar{display:block;height:10px;border-radius:var(--radius-pill)}.ss-hero-text>*,.ss-hero-body>.ss-clock{animation:ss-rise .52s var(--ease) both}.ss-hero-text>:nth-child(2){animation-delay:50ms}.ss-hero-text>:nth-child(3){animation-delay:.1s}.ss-hero-text>:nth-child(4){animation-delay:.15s}.ss-hero-text>:nth-child(5){animation-delay:.2s}.ss-hero-body>.ss-clock{animation-delay:.12s}@keyframes ss-rise{0%{opacity:0;transform:translateY(10px)}}@keyframes ss-fade{0%{opacity:0;transform:translate(-6px)}}@keyframes ss-grow{0%{transform:scaleY(0)}}@keyframes ss-grow-x{0%{transform:scaleX(0)}}@keyframes ss-spin{to{transform:rotate(360deg)}}@keyframes ss-bob{50%{transform:translate(-50%,-3px) rotate(-6deg)}}.ss-section-head,.ss-live-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px}.ss-section-title{display:inline-flex;align-items:center;gap:9px;margin:0;font-size:1.25rem;font-weight:800;letter-spacing:-.015em}.ss-section-title .icon{color:var(--gold)}.ss-live{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:18px;padding:20px 22px 22px;background:radial-gradient(720px 260px at 50% -60px,var(--gold-soft),transparent 75%),var(--surface)}.ss-live-chip{gap:7px;height:26px;padding:0 10px;background:var(--ok-soft);color:var(--ok)}.ss-live-chip .ss-live-dot{width:7px;height:7px}.ss-board{display:flex;flex-direction:column;gap:18px}.ss-board>.podium{width:100%;max-width:540px;margin:0 auto}.ss-rest{min-width:0}.podium{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;border-bottom:3px solid var(--border-strong)}.podium-spot{--medal-c: var(--medal-gold);display:flex;flex-direction:column;min-width:0}.podium-spot.top1{order:2}.podium-spot.top2{--medal-c: var(--medal-silver);order:1}.podium-spot.top3{--medal-c: var(--medal-bronze);order:3}.podium-person{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:32px 4px 12px;border-radius:var(--radius) var(--radius) 0 0;color:var(--text);text-align:center;transition:background var(--dur) var(--ease);animation:ss-rise .52s var(--ease) both;animation-delay:.38s}.podium-spot.top1 .podium-person{animation-delay:.46s}.podium-spot.top3 .podium-person{animation-delay:.54s}a.podium-person:hover{text-decoration:none}a.podium-person:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--primary)}@media(hover:hover){a.podium-person:hover{background:color-mix(in srgb,var(--medal-c) 12%,transparent)}}.podium-avatar{position:relative;isolation:isolate;display:inline-flex;margin-bottom:10px}.podium-avatar .avatar{position:relative;z-index:1;box-shadow:0 0 0 3px var(--surface),0 0 0 6px var(--medal-c),0 8px 22px color-mix(in srgb,var(--medal-c) 40%,transparent)}.podium-rays{position:absolute;inset:-34px;z-index:0;border-radius:50%;background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--medal-gold) 34%,transparent) 0deg 7deg,transparent 7deg 20deg);-webkit-mask-image:radial-gradient(circle,#000 34%,transparent 70%);mask-image:radial-gradient(circle,#000 34%,transparent 70%);animation:ss-spin 40s linear infinite;pointer-events:none}.podium-crown{position:absolute;z-index:2;top:-27px;left:50%;transform:translate(-50%);color:var(--medal-gold);fill:color-mix(in srgb,var(--medal-gold) 45%,transparent);filter:drop-shadow(0 2px 2px rgba(0,0,0,.2));animation:ss-bob 3.2s ease-in-out infinite}.podium-name{max-width:100%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font-weight:750;font-size:.86rem;line-height:1.25}.podium-spot .tier-badge{font-size:.74rem;max-width:100%;overflow:hidden}.podium-rating{font-weight:800;font-size:1.2rem;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.podium-unit{font-size:.7rem;font-weight:600;color:var(--muted);letter-spacing:0}.podium-spot.top1 .podium-rating{font-size:1.5rem;color:var(--gold-ink)}.podium-stats{font-size:.72rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.podium-spot .lb-you{margin:1px 0}.podium-spot.me a.podium-person{background:var(--primary-soft)}.podium-step{position:relative;display:flex;align-items:flex-start;justify-content:center;height:64px;padding-top:8px;border:1px solid color-mix(in srgb,var(--medal-c) 45%,var(--border));border-bottom:0;border-top:3px solid var(--medal-c);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,#fff 22%,transparent) 38%,transparent 56%),linear-gradient(180deg,color-mix(in srgb,var(--medal-c) 42%,var(--surface)),color-mix(in srgb,var(--medal-c) 12%,var(--surface)));transform-origin:bottom center;animation:ss-grow .6s var(--ease) both;animation-delay:80ms}.podium-spot.top1 .podium-step{height:104px;animation-delay:.16s}.podium-spot.top2 .podium-step{height:80px}.podium-spot.top3 .podium-step{animation-delay:.24s}.podium-num{font-weight:800;font-size:1.9rem;line-height:1;font-variant-numeric:tabular-nums;color:color-mix(in srgb,var(--medal-c) 55%,var(--text));text-shadow:0 1px 0 color-mix(in srgb,#fff 45%,transparent)}:root[data-theme=dark] .podium-num{text-shadow:0 1px 0 rgba(0,0,0,.4)}.podium-spot.top1 .podium-num{font-size:2.6rem}.podium-empty .podium-step{opacity:.55}.podium-ghost{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;border:2px dashed color-mix(in srgb,var(--medal-c) 55%,var(--border-strong));background:color-mix(in srgb,var(--medal-c) 8%,transparent);color:color-mix(in srgb,var(--medal-c) 60%,var(--muted));font-weight:800;font-size:1.4rem}.podium-empty.top1 .podium-ghost{width:70px;height:70px;font-size:1.8rem}.podium-sm{gap:6px}.podium-sm .podium-person{padding-top:26px}.podium-sm .podium-name{font-size:.8rem}.podium-sm .podium-rating{font-size:1rem}.podium-sm .podium-spot.top1 .podium-rating{font-size:1.15rem}.podium-sm .podium-stats{font-size:.68rem}.podium-sm .podium-step{height:36px;padding-top:4px}.podium-sm .podium-spot.top1 .podium-step{height:58px}.podium-sm .podium-spot.top2 .podium-step{height:46px}.podium-sm .podium-num{font-size:1.2rem}.podium-sm .podium-spot.top1 .podium-num{font-size:1.5rem}.podium-sm .podium-crown{top:-22px}.podium-sm .podium-rays{inset:-24px}.podium-sm .podium-ghost{width:44px;height:44px;font-size:1.1rem}.podium-skel .podium-person{gap:8px;animation:none}.podium-skel .podium-step{background:var(--surface-2);border-color:var(--border);animation:none}.podium-s-avatar{width:60px;height:60px;border-radius:50%}.podium-skel .top1 .podium-s-avatar{width:76px;height:76px}.podium-s-line{width:70%;height:10px;border-radius:var(--radius-pill)}.podium-s-line.short{width:40%}.ss-s-title,.ss-s-meta{display:block;border-radius:var(--radius-pill)}.ss-s-title{width:220px;max-width:70vw;height:22px;margin:4px 0}.ss-s-meta{width:150px;height:10px}.ss-rest{gap:4px}.ss-row{animation:ss-fade .42s var(--ease) both;animation-delay:calc(.5s + var(--i, 0) * 50ms)}.ss-row-link{gap:12px;min-height:54px;padding:6px 12px 6px 8px;border:1px solid transparent}.ss-rest>.ss-row:nth-child(odd) .ss-row-link{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.ss-row-rank{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--surface-3);color:var(--text-2);font-weight:800;font-size:.84rem;font-variant-numeric:tabular-nums}.ss-row .lb-sub{min-width:0}.ss-row-stats{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}.ss-row-stats:before{content:"·";margin-right:6px}.ss-row-score{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.ss-row-score .lb-rating{font-size:1.02rem}.ss-row-bar{display:block;width:72px;height:4px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}.ss-row-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),color-mix(in srgb,var(--gold) 60%,#fff));transform-origin:left center;animation:ss-grow-x .7s var(--ease) both;animation-delay:calc(.6s + var(--i, 0) * 50ms)}.ss-rest>.ss-row.me .ss-row-link{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.ss-row.me .ss-row-rank{background:var(--primary);color:var(--on-primary)}.ss-empty-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:24px 40px}.ss-ghost-stage{position:relative;padding:0 6px}.ss-ghost-stage:before{content:"";position:absolute;inset:-10px 8% 20px;z-index:0;background:radial-gradient(closest-side,color-mix(in srgb,var(--gold) 22%,transparent),transparent);pointer-events:none}.ss-ghost-stage .podium{position:relative;max-width:420px;margin:0 auto}.ss-ghost-stage .podium-name{font-weight:600;font-size:.78rem}.ss-empty-copy{display:flex;flex-direction:column;gap:10px;min-width:0}.ss-empty-title{margin:0;font-size:1.3rem;font-weight:800;letter-spacing:-.015em;color:var(--text)}.ss-empty-text{margin:0;color:var(--text-2);font-size:.93rem;line-height:1.55}.ss-steps{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.ss-steps li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);animation:ss-rise .48s var(--ease) both}.ss-steps li:nth-child(2){animation-delay:80ms}.ss-steps li:nth-child(3){animation-delay:.16s}.ss-step-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--gold-soft);color:var(--gold-ink)}.ss-steps li.is-done .ss-step-icon{background:var(--ok-soft);color:var(--ok)}.ss-step-text{display:flex;flex-direction:column;gap:1px;min-width:0;font-size:.82rem;color:var(--text-2);line-height:1.4}.ss-step-text b{font-size:.92rem;color:var(--text)}.ss-mine .lb-mine{padding-top:14px}.ss-guest{margin-top:2px}.ss-rules{display:flex;flex-direction:column;gap:16px;padding:20px 22px 22px;scroll-margin-top:calc(var(--header-h) + 16px)}.ss-ladder-wrap{padding:14px 16px 0;border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(180deg,var(--surface-2),var(--surface))}.ss-tiers-title{margin:0 0 10px;font-size:.76rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.ss-ladder{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:end;gap:6px}.ss-rung{--tc: var(--muted);display:flex;flex-direction:column;align-items:center;min-width:0}.ss-rung-head{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 2px 8px;text-align:center;min-width:0;max-width:100%}.ss-rung-shield{margin-bottom:4px;filter:drop-shadow(0 2px 4px color-mix(in srgb,var(--tc) 35%,transparent))}.ss-rung-name{font-weight:750;font-size:.86rem;line-height:1.2;color:color-mix(in srgb,var(--tc) 62%,var(--text))}.ss-rung-range{font-size:.74rem;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}.ss-rung-step{display:block;width:100%;height:calc(18px + var(--h, 0) * 84px);border-radius:var(--radius-sm) var(--radius-sm) 0 0;border-top:3px solid var(--tc);background:linear-gradient(180deg,color-mix(in srgb,var(--tc) 38%,var(--surface)),color-mix(in srgb,var(--tc) 18%,var(--surface)));transform-origin:bottom center}.ss-rung-you{margin-bottom:4px;padding:1px 8px;border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:.66rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.ss-rung.is-mine .ss-rung-step{box-shadow:0 0 0 2px var(--primary),0 0 18px color-mix(in srgb,var(--primary) 35%,transparent)}.ss-rule-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;font-size:.9rem;line-height:1.55;color:var(--text-2)}.ss-rule-list li{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface)}.ss-rule-list b{color:var(--text)}.ss-rule-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--gold-soft);color:var(--gold-ink)}.ss-archive{display:flex;flex-direction:column;gap:12px;margin-top:6px;scroll-margin-top:calc(var(--header-h) + 16px)}.season-grid,.ss-archive-skel{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:16px;align-items:start}.season-grid .panel+.panel,.ss-archive-skel .panel+.panel{margin-top:0}.season-grid.single{grid-template-columns:minmax(0,1fr)}.ss-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:14px}.ss-card:not(.is-empty):before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--medal-silver),var(--medal-gold),var(--medal-bronze))}.ss-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ss-card-heading{display:flex;flex-direction:column;gap:3px;min-width:0}.ss-card-title{margin:0;font-size:1.12rem;font-weight:800;letter-spacing:-.01em}.ss-meta{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.84rem;font-variant-numeric:tabular-nums}.ss-closed{flex:none;gap:5px}.ss-champ{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 10px;border-radius:var(--radius-sm);background:var(--gold-soft);color:var(--gold-ink);font-size:.84rem}.ss-champ>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-card-empty{display:flex;align-items:center;gap:8px;padding:14px 12px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);font-size:.88rem}.ss-archive-empty .empty{padding:28px 12px}.ss-archive-empty .ss-empty-title{font-size:1rem;color:var(--text-2);margin-bottom:4px}.ss-card .podium-person,.ss-card .podium-step,.ss-card .ss-row,.ss-card .ss-row-bar>span{animation:none}.ss-error{align-items:center}.ss-error .btn{flex:none}@media(min-width:900px){.ss-board-lg:not(.no-rest),.season-grid.single .ss-board-sm:not(.no-rest){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:20px 32px}.ss-board-lg:not(.no-rest)>.podium,.season-grid.single .ss-board-sm:not(.no-rest)>.podium{max-width:none;align-self:end}}@media(min-width:1200px){.podium-lg .podium-name{font-size:.95rem}}@media(max-width:1023px){.ss-hero-body{grid-template-columns:minmax(0,1fr)}.ss-hero-piece{right:-50px;bottom:auto;top:40px}.ss-empty-board,.ss-rule-list{grid-template-columns:minmax(0,1fr)}}@media(max-width:760px){.ss-ladder-wrap{padding:12px}.ss-ladder{display:flex;flex-direction:column-reverse;align-items:stretch;gap:6px}.ss-rung{position:relative;flex-direction:row;align-items:center;gap:8px;min-height:44px;padding:6px 10px;border-radius:var(--radius-sm);overflow:hidden}.ss-rung-step{position:absolute;inset:0 auto 0 0;width:calc(34% + var(--h, 0) * 66%);height:auto;border-top:0;border-left:3px solid var(--tc);border-radius:var(--radius-sm);background:linear-gradient(90deg,color-mix(in srgb,var(--tc) 24%,var(--surface)),color-mix(in srgb,var(--tc) 6%,var(--surface)));transform-origin:left center}.ss-rung-head{position:relative;z-index:1;flex:1;flex-direction:row;gap:10px;padding:0;text-align:left}.ss-rung-shield{width:22px;height:24px;margin:0}.ss-rung-name{flex:1;min-width:0;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ss-rung-range{font-size:.8rem}.ss-rung-you{position:relative;z-index:1;order:2;margin:0;padding:1px 6px;font-size:.6rem}.ss-rung.is-mine{box-shadow:inset 0 0 0 2px var(--primary)}.ss-rung.is-mine .ss-rung-step{box-shadow:none}}@media(max-width:760px){.seasons{gap:14px}.ss-hero{gap:14px;padding:14px 14px 18px}.ss-hero-piece{right:-60px;top:30px;opacity:.12}.ss-hero-piece .icon{width:190px;height:190px}.ss-tabs{order:3;display:flex;flex:1 0 100%;margin-left:0}.ss-tabs button{flex:1;min-height:40px}.ss-hero-lead{font-size:.88rem}.ss-hero-facts li{height:26px;font-size:.76rem}.ss-hero-cta{width:100%}.ss-hero-cta .btn{flex:1 1 100%;--btn-h: 48px}.ss-clock{padding:12px}.ss-clock-units{gap:6px}.ss-unit-v{font-size:1.6rem}.ss-m-long{display:none}.ss-m-short{display:inline}.ss-live,.ss-rules{padding:16px 14px 18px}.ss-section-title{font-size:1.1rem}.podium{gap:6px}.podium-person{padding-left:2px;padding-right:2px}.podium-name,.podium-sm .podium-name{font-size:.8rem}.podium-rating{font-size:1.05rem}.podium-spot.top1 .podium-rating{font-size:1.25rem}.podium-unit{display:none}.podium-step{height:50px}.podium-spot.top1 .podium-step{height:80px}.podium-spot.top2 .podium-step{height:62px}.podium-num{font-size:1.5rem}.podium-spot.top1 .podium-num{font-size:2rem}.ss-row-link{gap:10px;padding-right:8px}.ss-row-bar{width:52px}.ss-empty-title{font-size:1.15rem}.ss-rule-list{font-size:.87rem}.ss-rule-list li{padding:10px 12px}}@media(max-width:380px){.ss-hero-tz{display:none}.ss-unit-v{font-size:1.4rem}.ss-unit-l{font-size:.62rem;letter-spacing:.04em}.podium-stats{font-size:.66rem}}@media(prefers-reduced-motion:reduce){.ss-hero-piece,.podium-rays,.podium-crown,.ss-live-dot,.ss-progress-fill,.ss-hero-text>*,.ss-hero-body>.ss-clock,.podium-person,.podium-step,.ss-row,.ss-row-bar>span,.ss-steps li,.ss-rung-step{animation:none!important}}.profile{display:flex;flex-direction:column;gap:16px}.profile .panel+.panel{margin-top:0}.pf-sec-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-bottom:14px}.pf-sec-heading{display:flex;flex-direction:column;gap:2px;min-width:0}.pf-kicker{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pf-sec-title{font-size:1.18rem;font-weight:800;letter-spacing:-.015em}.pf-sec-note{margin:2px 0 0;color:var(--muted);font-size:.82rem}.pf-rules-link{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;color:var(--text-2);font-size:.8rem;font-weight:600;text-decoration:underline;text-underline-offset:2px}.pf-rules-link:hover{color:var(--primary-ink)}.pf-rules-link .icon{flex:none}.pf-rules-inline{display:inline-flex;vertical-align:-2px;white-space:nowrap}.pf-empty-title{font-weight:700;color:var(--text-2);margin-bottom:4px}.pf-empty-cta{margin-top:12px}.pf-fatal .empty{padding:40px 12px}.pf-hero{padding:0;overflow:hidden}.pf-cover{--grid: color-mix(in srgb, var(--primary) 9%, transparent);position:relative;height:116px;overflow:hidden;border-bottom:1px solid var(--border);background:linear-gradient(var(--grid) 1px,transparent 1px) -1px -1px / 34px 34px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) -1px -1px / 34px 34px,radial-gradient(460px 170px at 88% 0%,color-mix(in srgb,var(--gold) 28%,transparent),transparent 72%),linear-gradient(118deg,color-mix(in srgb,var(--primary) 17%,var(--surface)),color-mix(in srgb,var(--gold) 15%,var(--surface)))}.pf-cover:after{content:"帥";position:absolute;right:30px;top:50%;transform:translateY(-50%) rotate(-8deg);font-family:var(--font-han);font-size:124px;font-weight:700;line-height:1;color:color-mix(in srgb,var(--primary) 13%,transparent);pointer-events:none}.pf-hero.game-chess .pf-cover:after{content:"♚";font-family:Segoe UI Symbol,"Noto Sans Symbols 2",DejaVu Sans,serif;font-weight:400;color:color-mix(in srgb,var(--text) 9%,transparent)}.pf-hero-body{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"avatar ident tabs";align-items:end;gap:12px 20px;padding:0 24px 22px}.pf-avatar-wrap{grid-area:avatar;position:relative;z-index:1;margin-top:-52px;line-height:0}.pf-avatar-wrap>.avatar,.pf-avatar-btn>.avatar{box-shadow:0 0 0 4px var(--surface),0 8px 22px #28190a2e}.pf-ident{grid-area:ident;min-width:0;display:flex;flex-direction:column;gap:6px;padding-top:14px}.pf-tabs{grid-area:tabs;margin-bottom:2px}.profile-name{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;min-width:0;font-size:1.65rem;font-weight:800;letter-spacing:-.02em;line-height:1.2}.pf-name-text{min-width:0;overflow-wrap:anywhere}.profile-name .role-tag{gap:4px;padding:3px 9px;font-size:.7rem;letter-spacing:.03em}.pf-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;color:var(--text-2);font-size:.88rem}.pf-meta-item{display:inline-flex;align-items:center;gap:6px}.pf-meta-item .icon{color:var(--muted)}.pf-best{gap:5px;padding:3px 10px;font-size:.76rem;white-space:normal}.pf-hint{display:flex;align-items:center;gap:6px;margin:0;color:var(--muted);font-size:.78rem}.pf-hint .icon{flex:none}.pf-avatar-btn{position:relative;display:block;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;line-height:0}.pf-avatar-btn:focus-visible{outline:none}.pf-avatar-btn:focus-visible>.avatar{box-shadow:0 0 0 4px var(--surface),0 0 0 7px var(--primary)}.pf-avatar-btn:disabled{cursor:progress}.pf-avatar-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:50%;background:var(--overlay);box-shadow:inset 0 0 0 60px var(--overlay);color:var(--on-primary);font-size:.76rem;font-weight:700;line-height:1.2;opacity:0;transition:opacity var(--dur) var(--ease)}.pf-avatar-btn:focus-visible .pf-avatar-overlay,.pf-avatar-btn.is-busy .pf-avatar-overlay{opacity:1}.pf-avatar-overlay .spinner{border-color:color-mix(in srgb,var(--on-primary) 35%,transparent);border-top-color:var(--on-primary)}.pf-avatar-cam{position:absolute;right:0;bottom:2px;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--primary);color:var(--on-primary);box-shadow:0 0 0 3px var(--surface),var(--shadow-sm);transition:transform var(--dur) var(--ease),background var(--dur) var(--ease)}.pf-avatar-btn:active .pf-avatar-cam{background:var(--primary-hover)}.pf-avatar-btn.is-busy .pf-avatar-cam{opacity:0}@media(hover:hover){.pf-avatar-btn:hover .pf-avatar-overlay{opacity:1}.pf-avatar-btn:hover .pf-avatar-cam{transform:scale(1.07);background:var(--primary-hover)}a.pf-opp:hover{color:var(--primary-ink)}a.pf-opp:hover .pf-opp-name{text-decoration:underline;text-underline-offset:2px}.pf-page:hover:not(:disabled):not(.active){background:var(--surface-2);color:var(--text)}}.pf-days{gap:5px;padding:3px 10px}.pf-stats{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);grid-template-areas:"rating rank peak" "rating record record";gap:12px}.pf-tile{min-width:0;display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.pf-tile-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pf-tile-value{display:flex;align-items:center;gap:8px;font-size:1.75rem;font-weight:800;letter-spacing:-.02em;line-height:1.15;font-variant-numeric:tabular-nums}.pf-tile-sub{font-size:.82rem;color:var(--text-2)}.pf-tile-sub .chip{gap:4px}.pf-rating{--tier: var(--primary);grid-area:rating;gap:10px;background:radial-gradient(140% 120% at 0% 0%,color-mix(in srgb,var(--tier) 15%,var(--surface-2)) 0%,var(--surface-2) 65%);border-color:color-mix(in srgb,var(--tier) 28%,var(--border))}.pf-rank{grid-area:rank}.pf-peak{grid-area:peak}.pf-record{grid-area:record}.pf-rating-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.pf-rating-value{font-size:3.1rem;font-weight:800;letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}.pf-tier-pill{display:inline-flex;align-items:center;padding:5px 11px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--tier) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--tier) 32%,transparent)}.pf-tier-pill .tier-badge{gap:6px;font-size:.86rem;font-weight:700}.pf-tier-pill .tier-badge svg{width:16px;height:17px}@media(min-width:761px){.pf-rating-row{flex-direction:column;align-items:flex-start;gap:12px;margin-top:2px}.pf-rating-value{font-size:3.5rem}}.pf-rating{position:relative;overflow:hidden}.pf-rating-emblem{position:absolute;top:14px;right:14px;opacity:.9;pointer-events:none}.pf-rating>.pf-tile-label,.pf-rating-row{padding-right:64px}.pf-next{margin-top:auto;display:flex;flex-direction:column;gap:8px}.pf-next-row{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:2px 10px;font-size:.86rem;color:var(--text-2)}.pf-next-row b:not(.pf-tier-text){color:var(--text)}.pf-next-num{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}.pf-next-top{color:var(--gold-ink);font-weight:700}.pf-next-top .icon{vertical-align:-3px}.pf-ladder{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px}.pf-ladder-seg{position:relative;height:8px;overflow:hidden;border-radius:2px;background:color-mix(in srgb,var(--c) 16%,var(--surface-3))}.pf-ladder-seg:first-child{border-radius:var(--radius-pill) 2px 2px var(--radius-pill)}.pf-ladder-seg:last-child{border-radius:2px var(--radius-pill) var(--radius-pill) 2px}.pf-ladder-fill{display:block;height:100%;background:var(--c);transition:width .4s var(--ease)}.pf-ladder-seg.cur{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--c) 55%,transparent)}.pf-unranked{font-size:1.15rem;font-weight:800;line-height:1.3}.pf-unranked-count{color:var(--text-2);font-weight:600;font-size:.95rem;white-space:nowrap}.pf-wld{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 18px;font-size:.88rem;color:var(--text-2)}.pf-wld-item b{margin-right:3px;font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums}.pf-wld-item.win b{color:var(--ok)}.pf-wld-item.loss b{color:var(--danger)}.pf-wld-item.draw b{color:var(--info)}.pf-wld-bar{display:flex;gap:2px;height:8px;border-radius:var(--radius-pill);overflow:hidden;background:var(--surface-3)}.pf-wld-bar>span{min-width:4px}.pf-wld-bar>.win{background:var(--ok)}.pf-wld-bar>.loss{background:var(--danger)}.pf-wld-bar>.draw{background:var(--info)}.pf-noseason{display:flex;align-items:center;gap:14px;padding:16px;border-radius:var(--radius);background:var(--surface-2);border:1px dashed var(--border-strong)}.pf-noseason-icon{flex:none;width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-ink)}.pf-noseason-text{flex:1;min-width:0}.pf-noseason-title{font-weight:700}.pf-noseason-sub{margin-top:2px;color:var(--text-2);font-size:.85rem}.pf-noseason-sub .tier-badge{vertical-align:-2px}.pf-noseason-cta{flex:none}.pf-alltime{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.pf-alltime-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pf-alltime-rate{font-size:.84rem;color:var(--text-2)}.pf-alltime-rate b{color:var(--text)}.pf-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}.pf-totals>div{min-width:0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.pf-totals dt{color:var(--muted);font-size:.76rem;font-weight:600}.pf-totals dd{margin:2px 0 0;font-size:1.3rem;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}.pf-totals .win dd{color:var(--ok)}.pf-totals .loss dd{color:var(--danger)}.pf-totals .draw dd{color:var(--info)}.pf-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}.season-card{position:relative;min-width:0;display:flex;align-items:flex-start;gap:14px;padding:14px 16px;overflow:hidden;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.pf-emblem{flex:none;width:48px;display:flex;justify-content:center}.pf-badge-body{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.pf-badge-kicker{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pf-badge-title{font-size:1.04rem;font-weight:800;letter-spacing:-.01em;overflow-wrap:anywhere}.pf-badge-tier{display:flex;align-items:center;flex-wrap:wrap;gap:2px 8px;margin-top:2px;font-size:.82rem;color:var(--text-2)}.pf-badge-tier-label:after{content:":"}.pf-badge-peak{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}.pf-badge-line{font-size:.82rem;color:var(--text-2)}.pf-badge-line b{color:var(--text);font-variant-numeric:tabular-nums}.pf-badge-wld .win{color:var(--ok);font-weight:600}.pf-badge-wld .loss{color:var(--danger);font-weight:600}.pf-badge-wld .draw{color:var(--info);font-weight:600}.pf-tier-emblem{filter:drop-shadow(0 2px 3px rgba(0,0,0,.16))}.season-card.is-top{background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 24%,var(--surface)) 0%,color-mix(in srgb,var(--gold) 9%,var(--surface)) 55%,var(--surface) 100%);border-color:color-mix(in srgb,var(--gold) 50%,var(--border));box-shadow:0 6px 18px color-mix(in srgb,var(--gold) 16%,transparent)}.season-card.is-top:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 30%,color-mix(in srgb,var(--surface-raised) 45%,transparent) 42%,transparent 54%)}.season-card.is-top .pf-badge-title{color:var(--gold-ink)}.season-card.is-top .pf-badge-kicker{color:color-mix(in srgb,var(--gold-ink) 80%,transparent)}.pf-medal{--m: var(--medal-gold);overflow:visible;filter:drop-shadow(0 2px 3px rgba(0,0,0,.2))}.pf-medal-silver{--m: var(--medal-silver)}.pf-medal-bronze{--m: var(--medal-bronze)}.pf-medal-top{--m: var(--gold)}.pf-medal .s1{stop-color:color-mix(in srgb,var(--m) 45%,#fff)}.pf-medal .s2{stop-color:var(--m)}.pf-medal .s3{stop-color:color-mix(in srgb,var(--m) 72%,#000)}.pf-medal-ribbon.a{fill:var(--primary)}.pf-medal-ribbon.b{fill:color-mix(in srgb,var(--primary) 72%,#000)}.pf-medal-ring{fill:none;stroke:#ffffff8c;stroke-width:1.5}.pf-medal-num{fill:#fff;font-family:var(--font);font-size:17px;font-weight:800}.pf-medal-top .pf-medal-disc{fill:var(--gold-soft);stroke:var(--gold);stroke-width:2.5}.pf-medal-top .pf-medal-ring{stroke:color-mix(in srgb,var(--gold) 50%,transparent);stroke-dasharray:2 2.4}.pf-medal-top .pf-medal-num{fill:var(--gold-ink)}.pf-medal-top .pf-medal-ribbon.a{fill:var(--gold)}.pf-medal-top .pf-medal-ribbon.b{fill:color-mix(in srgb,var(--gold) 70%,#000)}.pf-history{container:pf-history / inline-size;scroll-margin-top:calc(var(--header-h) + 12px)}.pf-hist-body{transition:opacity var(--dur) var(--ease)}.pf-hist-body.is-loading{opacity:.55;pointer-events:none}.pf-error-inline{align-items:center;margin-bottom:12px}.pf-error-inline .btn{flex:none}.pf-table{font-size:.88rem}.pf-table td{padding:10px}.pf-table .pf-col-num{text-align:right}.pf-table td.pf-col-action{width:1%;text-align:right;white-space:nowrap}.pf-cell-main{font-weight:600;white-space:nowrap}.pf-cell-sub{margin-top:2px;color:var(--muted);font-size:.76rem}.pf-mode{display:inline-flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap}.pf-mode .icon,.pf-mcard-mode .icon{color:var(--muted)}.pf-opp{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;color:var(--text);font-weight:600}a.pf-opp:hover{text-decoration:none}.pf-opp-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-bot{flex:none;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-2)}.pf-opp-gone{color:var(--muted);font-weight:500}.pf-side{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.pf-side-dot{flex:none;width:11px;height:11px;border-radius:50%}.pf-side-dot.side-red{background:#c0392b;box-shadow:inset 0 0 0 1px #0000002e}.pf-side-dot.side-black{background:#2a211a;box-shadow:0 0 0 1px var(--border-strong)}.pf-side-dot.side-white{background:#fbf7ef;box-shadow:inset 0 0 0 1px #b9a98f}.pf-outcome{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);font-size:.76rem;font-weight:800;letter-spacing:.01em;white-space:nowrap}.pf-outcome.outcome-win{background:var(--ok-soft);color:var(--ok)}.pf-outcome.outcome-loss{background:var(--danger-soft);color:var(--danger)}.pf-outcome.outcome-draw{background:var(--info-soft);color:var(--info)}.pf-delta{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.pf-delta.pos{color:var(--ok)}.pf-delta.neg{color:var(--danger)}.pf-delta.zero{color:var(--muted)}.pf-replay{white-space:nowrap}.pf-mcards{display:none;margin:0;padding:0;list-style:none}@container pf-history (max-width: 759px){.pf-table-wrap{display:none}.pf-mcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}}.pf-mcard{position:relative;display:flex;flex-direction:column;gap:9px;padding:12px 12px 12px 16px;overflow:hidden;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.pf-mcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--border-strong)}.pf-mcard.outcome-win:before{background:var(--ok)}.pf-mcard.outcome-loss:before{background:var(--danger)}.pf-mcard.outcome-draw:before{background:var(--info)}.pf-mcard-top{display:flex;align-items:center;gap:8px}.pf-mcard-mode{flex:1;min-width:0;display:inline-flex;align-items:center;gap:5px;color:var(--text-2);font-size:.82rem;font-weight:600}.pf-mcard-top .pf-delta{font-size:1.05rem}.pf-mcard-opp{display:flex;align-items:center;gap:8px;min-width:0}.pf-vs{flex:none;color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pf-mcard-opp .pf-opp{flex:0 1 auto}.pf-mcard-side{flex:none;margin-left:auto;color:var(--text-2);font-size:.82rem}.pf-mcard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:9px;border-top:1px solid var(--border)}.pf-mcard-when{min-width:0;color:var(--muted);font-size:.78rem;line-height:1.35}.pf-mcard-foot .btn{--btn-h: 40px;flex:none}.pf-pager{justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.pf-pager-info{color:var(--muted);font-size:.84rem;font-variant-numeric:tabular-nums}.pf-pager-ctrl{display:flex;align-items:center;gap:4px}.pf-pages{display:flex;align-items:center;gap:2px}.pf-page{min-width:34px;height:34px;padding:0 6px;border:1px solid transparent;border-radius:var(--radius-sm);background:none;color:var(--text-2);font-weight:700;font-size:.88rem;font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.pf-page:focus-visible{outline:none;box-shadow:var(--focus-ring)}.pf-page.active{background:var(--primary);color:var(--on-primary);cursor:default}.pf-page:disabled:not(.active){opacity:.5;cursor:default}.pf-page-gap{min-width:20px;text-align:center;color:var(--muted)}.pf-pages-compact{display:none}.pf-s-avatar{display:block;width:104px;height:104px;border-radius:50%;box-shadow:0 0 0 4px var(--surface)}.pf-ident-skel{padding-top:18px;gap:10px}.pf-s-name{display:block;width:220px;max-width:60vw;height:24px;border-radius:var(--radius-pill)}.pf-s-meta{display:block;width:160px;height:12px;border-radius:var(--radius-pill)}.pf-s-title{display:block;width:140px;height:18px;margin-bottom:16px;border-radius:var(--radius-pill)}.pf-s-tile{display:block;min-height:96px;border-radius:var(--radius)}.pf-hist-skel{display:flex;flex-direction:column}.pf-hist-srow{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--border)}.pf-s-chip{flex:none;width:52px;height:22px;border-radius:var(--radius-pill)}.pf-s-avatar-sm{flex:none;width:26px;height:26px;border-radius:50%}.pf-s-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.pf-s-line{display:block;height:10px;border-radius:var(--radius-pill)}.pf-s-short{width:28%!important;height:8px}.pf-s-btn{flex:none;width:84px;height:30px;border-radius:var(--radius-sm)}@media(max-width:760px){.profile{gap:12px}.pf-cover{height:92px}.pf-cover:after{right:14px;font-size:96px}.pf-hero-body{grid-template-columns:minmax(0,1fr);grid-template-areas:"avatar" "ident" "tabs";justify-items:center;gap:10px;padding:0 16px 16px;text-align:center}.pf-avatar-wrap{margin-top:-56px}.pf-ident{align-items:center;padding-top:0}.profile-name{justify-content:center;font-size:1.42rem}.pf-meta,.pf-hint{justify-content:center}.pf-tabs{display:flex;width:100%;margin-bottom:0}.pf-tabs button{flex:1;min-height:40px}.pf-stats{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"rating rating" "rank peak" "record record";gap:10px}.pf-tile{padding:12px 14px}.pf-rating-value{font-size:2.6rem}.pf-tile-value{font-size:1.5rem}.pf-unranked{font-size:1.02rem}.pf-unranked-count{display:block;font-size:.86rem}.pf-totals{gap:6px}.pf-totals>div{padding:8px;text-align:center}.pf-totals dd{font-size:1.15rem}.pf-noseason{flex-direction:column;text-align:center}.pf-noseason-cta{width:100%}.season-card{padding:12px 14px}.pf-pager{flex-direction:column-reverse;align-items:stretch;gap:8px}.pf-pager-info{text-align:center}.pf-pager-ctrl{justify-content:space-between}.pf-pager-btn{--btn-h: 44px;min-width:96px}.pf-pages{display:none}.pf-pages-compact{display:inline-flex;font-weight:700;font-variant-numeric:tabular-nums}}@media(max-width:380px){.pf-rating-value{font-size:2.3rem}.pf-wld{gap:2px 12px}.pf-wld-item b{font-size:1.3rem}.pf-mcard-side .pf-side{font-size:.78rem}}.pf-social{margin-top:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface-2, var(--surface))}.pf-social-title{margin:0 0 8px;font-weight:700;font-size:.92rem}.pf-social-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.pf-social-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pf-social-mark{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font:700 .95rem/1 Arial,Helvetica,sans-serif;flex:none}.pf-social-mark.google{background:#fff;color:#4285f4;border:1px solid #dadce0}.pf-social-mark.facebook{background:#1877f2;color:#fff;padding-top:3px}.pf-social-name{font-weight:600;min-width:72px}.pf-social-state{color:var(--ok, #2e7d32);font-size:.86rem;font-weight:600}.pf-social-item .btn{margin-left:auto}.pf-social-note{margin:8px 0 0;font-size:.8rem;color:var(--muted)}.auth{--auth-muted: color-mix(in srgb, var(--muted) 60%, var(--text-2));width:100%;max-width:980px;margin:0 auto;padding:clamp(4px,3vh,32px) 0 8px}.auth.auth-compact{max-width:520px}.auth-card{display:grid;grid-template-columns:minmax(0,1fr);background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow);overflow:hidden;animation:auth-rise .32s var(--ease)}@keyframes auth-rise{0%{opacity:0;transform:translateY(10px)}}.auth-card.has-aside{grid-template-columns:minmax(0,.92fr) minmax(0,1fr)}.auth-compact .auth-card:before{content:"";display:block;height:5px;background:linear-gradient(90deg,var(--primary),var(--gold))}.auth-main{display:flex;flex-direction:column;justify-content:center;gap:22px;min-width:0;padding:40px 44px 34px}.auth-aside{--aside-ink: var(--on-primary);--aside-ink-2: color-mix(in srgb, var(--on-primary) 80%, transparent);--aside-gold: color-mix(in srgb, var(--gold) 58%, var(--on-primary));position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-width:0;padding:36px 34px 30px;color:var(--aside-ink);background:radial-gradient(130% 70% at 0% 0%,color-mix(in srgb,var(--on-primary) 13%,transparent),transparent 62%),linear-gradient(160deg,var(--primary) 0%,var(--primary-hover) 100%)}:root[data-theme=dark] .auth-aside{background:radial-gradient(130% 70% at 0% 0%,color-mix(in srgb,var(--primary) 32%,transparent),transparent 62%),linear-gradient(160deg,color-mix(in srgb,var(--primary) 50%,var(--surface)),color-mix(in srgb,var(--primary) 24%,var(--surface)));border-right:1px solid var(--border)}.auth-pattern{position:absolute;inset:0;width:100%;height:100%;z-index:-1;color:var(--aside-gold);opacity:.2}.auth-aside-body{position:relative;flex:1;display:flex;flex-direction:column;gap:26px}.auth-aside-top{display:flex;flex-direction:column;gap:18px}.auth-aside-brand{display:flex;align-items:center;gap:12px}.auth-aside-logo{width:48px;height:48px;flex:none;filter:drop-shadow(0 4px 8px rgba(40,8,4,.35))}.auth-aside-brand-text{display:flex;flex-direction:column;line-height:1.08}.auth-aside-name{font-weight:800;font-size:1.25rem;letter-spacing:-.02em}.auth-aside-sub{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--aside-gold)}.auth-aside-title{margin:0;max-width:13em;font-size:1.7rem;font-weight:800;line-height:1.22;letter-spacing:-.025em;text-wrap:balance}.auth-features{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-direction:column;gap:14px;max-width:19.5em}.auth-features li{display:flex;align-items:flex-start;gap:12px}.auth-feature-icon{flex:none;width:36px;height:36px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;color:var(--aside-gold);background:color-mix(in srgb,var(--on-primary) 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--on-primary) 16%,transparent)}.auth-features li>span:last-child{display:flex;flex-direction:column;gap:1px;font-size:.87rem;line-height:1.42;color:var(--aside-ink-2)}.auth-features b{font-size:.95rem;color:var(--aside-ink)}.auth-aside-games{margin-top:-4px;padding-top:16px;max-width:19.5em;border-top:1px solid color-mix(in srgb,var(--on-primary) 16%,transparent);display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.85rem;font-weight:600;color:var(--aside-ink-2)}.auth-aside-games span{display:inline-flex;align-items:center;gap:8px}.auth-aside-games .game-icon{filter:drop-shadow(0 2px 3px rgba(40,8,4,.3))}.auth-pieces{position:absolute;right:-38px;bottom:-46px;width:210px;height:210px;transform:rotate(-10deg);filter:drop-shadow(0 10px 14px rgba(30,6,2,.35));pointer-events:none}.auth-head{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.auth-logo{width:52px;height:52px;margin-bottom:4px;filter:drop-shadow(0 3px 6px rgba(120,30,20,.22))}.auth-card.has-aside .auth-logo{display:none}.auth-title{font-size:1.75rem;font-weight:800;letter-spacing:-.025em;line-height:1.2}.auth-sub{margin:0;max-width:34em;color:var(--text-2);font-size:.97rem}.auth-form.form{gap:16px}.auth-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label extra" "input input" "hint hint";column-gap:12px;min-width:0}.auth-form .auth-label{grid-area:label;align-self:end;margin-bottom:7px;color:var(--text)}.auth-label-extra{grid-area:extra;align-self:end;margin-bottom:7px}.auth-label-link{font-size:.85rem;font-weight:600;white-space:nowrap}.auth-input{grid-area:input;position:relative}.auth-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;transition:color var(--dur) var(--ease)}.auth-input input{min-height:48px;padding-left:44px;border-radius:var(--radius);font-size:1rem}.auth-input.has-reveal input{padding-right:52px}.auth-input:focus-within .auth-input-icon{color:var(--primary-ink)}.auth-reveal{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:42px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.auth-reveal:hover{color:var(--text);background:var(--surface-2)}.auth-reveal[aria-pressed=true]{color:var(--primary-ink)}.auth-reveal:focus-visible{outline:none;box-shadow:var(--focus-ring)}.auth-hint{grid-area:hint;display:flex;align-items:flex-start;gap:6px;margin-top:7px;font-size:.8rem;line-height:1.4;color:var(--auth-muted)}.auth-hint .icon{margin-top:1px}.auth-field.is-ok .auth-hint{color:var(--ok)}.auth-field.is-ok input{border-color:color-mix(in srgb,var(--ok) 50%,var(--border-strong))}.auth-field.is-ok input:focus{border-color:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}.auth-field.is-ok .auth-input:focus-within .auth-input-icon{color:var(--ok)}.auth-field.is-error .auth-hint{color:var(--danger);font-weight:500}.auth-field.is-error input{border-color:var(--danger)}.auth-field.is-error input:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 22%,transparent)}.auth-field.is-error .auth-input-icon{color:var(--danger)}.auth-notice{line-height:1.45;animation:pop-in .2s var(--ease)}.auth-notice.danger>.icon{color:var(--danger)}.auth-notice a{font-weight:600}.auth-submit{margin-top:4px}.auth-submit .icon{transition:transform var(--dur) var(--ease)}.auth-submit:hover:not(:disabled) .icon:last-child{transform:translate(2px)}.btn.auth-submit[aria-busy=true]:disabled,.btn.invite-join[aria-busy=true]:disabled{opacity:.85;cursor:progress}.auth-spinner{display:inline-block;flex:none;width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 28%,transparent);border-top-color:currentColor;animation:spin .7s linear infinite}.auth-spinner.auth-spinner-lg{width:30px;height:30px;border-width:3px}.auth-social{display:flex;flex-direction:column;gap:10px}.auth-social .divider{margin:0 0 2px}.auth-social-btn{position:relative;min-height:46px;font-weight:600;text-decoration:none;background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}.auth-social-btn:hover{background:var(--surface-2, var(--surface));text-decoration:none}.auth-social-mark{position:absolute;left:14px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font:700 .95rem/1 Arial,Helvetica,sans-serif;color:#fff}.auth-social-btn.google .auth-social-mark{background:#fff;color:#4285f4;border:1px solid #dadce0}.auth-social-btn.facebook .auth-social-mark{background:#1877f2;font-size:1.05rem;padding-top:3px}.auth-foot{margin:0;padding-top:18px;border-top:1px solid var(--border);text-align:center;color:var(--text-2);font-size:.93rem}.auth-foot a{font-weight:700}.auth-back{display:inline-flex;align-items:center;gap:6px}.auth-break{overflow-wrap:anywhere}.auth-status{display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 0 4px;text-align:center}.auth-status-icon{position:relative;width:76px;height:76px;margin-bottom:10px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;animation:auth-pop .42s var(--ease)}.auth-status-icon:after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid currentColor;opacity:.14}.auth-status-icon.is-ok{background:var(--ok-soft);color:var(--ok)}.auth-status-icon.is-danger{background:var(--danger-soft);color:var(--danger)}.auth-status-icon.is-info{background:var(--info-soft);color:var(--info)}.auth-status-icon.is-primary{background:var(--primary-soft);color:var(--primary-ink)}.auth-status-body{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:30em;color:var(--text-2)}.auth-status-body p{margin:0}.auth-status-msg{color:var(--text);font-weight:600}.auth-status-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px}.auth-steps{list-style:none;width:100%;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;text-align:left}.auth-steps li{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);font-size:.92rem;line-height:1.45}.auth-step-icon{flex:none;width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-raised);color:var(--primary-ink);box-shadow:var(--shadow-sm)}@keyframes auth-pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.06)}}.auth-main,.auth-main .auth-form{position:relative}.auth-status .auth-title[tabindex="-1"]:focus{outline:none}.reg-steps{list-style:none;margin:-4px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.reg-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center;font-size:.8rem;font-weight:600;color:var(--auth-muted)}.reg-step+.reg-step:before{content:"";position:absolute;top:14px;right:calc(50% + 20px);width:calc(100% - 34px);height:2px;border-radius:2px;background:var(--border-strong)}.reg-step.is-done+.reg-step:before{background:var(--ok)}.reg-step-dot{position:relative;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:800;border:2px solid var(--border-strong);background:var(--surface);color:var(--auth-muted);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.reg-step.is-current{color:var(--text)}.reg-step.is-current .reg-step-dot{border-color:var(--primary);background:var(--primary);color:var(--on-primary);box-shadow:0 0 0 4px var(--primary-soft)}.reg-step.is-done{color:var(--ok)}.reg-step.is-done .reg-step-dot{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.reg-step-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reg-sent{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:.93rem;line-height:1.5}.reg-sent p{margin:0;min-width:0}.reg-sent-icon{flex:none;width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-ink)}.reg-otp-field{display:flex;flex-direction:column;min-width:0}.reg-otp-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.reg-otp-head .auth-label{font-weight:600;font-size:.9rem}.reg-change{font-size:.85rem;white-space:nowrap;color:var(--primary-ink)}.otp{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;max-width:400px}.auth-form input.otp-box{min-height:0;height:58px;padding:0;text-align:center;font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:0;border-radius:var(--radius);caret-color:var(--primary)}.auth-form input.otp-box:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}.auth-form input.otp-box.is-filled{border-color:color-mix(in srgb,var(--primary) 45%,var(--border-strong))}.otp.is-error input.otp-box{border-color:var(--danger)}.otp.is-error input.otp-box:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 22%,transparent)}.auth-form input.otp-box[readonly]{opacity:.65}.reg-otp-hint{margin:8px 0 0}.reg-resend{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 10px;color:var(--text-2);font-size:.9rem}.reg-resend-btn{gap:6px;font-variant-numeric:tabular-nums}.reg-verified{display:flex;align-items:center;gap:8px;align-self:flex-start;max-width:100%;padding:6px 12px;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-size:.86rem;font-weight:600}.reg-verified .icon{flex:none}.reg-verified span{min-width:0;color:var(--text);font-weight:500}@media(max-width:760px){.reg-steps{margin-top:-2px}.otp{gap:6px;max-width:none}.auth-form input.otp-box{height:54px;font-size:1.45rem}.reg-change{display:inline-block;padding:10px 4px;margin:-10px -4px}}@media(max-width:380px){.reg-step{font-size:.75rem}.auth-form input.otp-box{height:50px;font-size:1.35rem}.reg-sent{padding:10px 12px;gap:10px}}@media(min-width:761px)and (max-width:1199px){.auth-card.has-aside{grid-template-columns:minmax(0,.82fr) minmax(0,1fr)}.auth-aside{padding:30px 26px 26px}.auth-aside-title{font-size:1.45rem}.auth-main{padding:34px 32px 30px}.auth-pieces{width:168px;height:168px;right:-40px;bottom:-44px}.auth-features,.auth-aside-games{max-width:17.5em}}@media(max-width:760px){.auth{padding:0}.auth-card{border-radius:var(--radius-lg)}.auth-card.has-aside{grid-template-columns:minmax(0,1fr)}.auth-aside{display:none}.auth-card.has-aside .auth-logo{display:block}.auth-main{gap:18px;padding:20px 16px 18px}.auth-head{align-items:center;gap:4px;text-align:center}.auth-logo{width:44px;height:44px;margin-bottom:2px}.auth-title{font-size:1.45rem}.auth-sub{font-size:.92rem}.auth-form.form{gap:13px}.auth-form .auth-label,.auth-label-extra{margin-bottom:6px}.auth-hint{margin-top:6px}.auth-input input{min-height:46px}.auth-foot{padding-top:14px}.auth-label-link,.auth-foot a{display:inline-block;padding:10px 4px;margin:-10px -4px}.auth-status-icon{width:68px;height:68px}.auth-status-actions{flex-direction:column;width:100%}.auth-status-actions .btn{width:100%}}@media(max-width:380px){.auth-main{gap:16px;padding:16px 14px}.auth-logo{width:40px;height:40px}.auth-title{font-size:1.38rem}.auth-form.form{gap:12px}.auth-form .auth-label,.auth-label-extra{margin-bottom:5px}.auth-hint{margin-top:5px}.auth-input input{min-height:44px}}.invite{width:100%;max-width:540px;margin:0 auto;padding:clamp(4px,3vh,32px) 0 8px}.invite-card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius-lg) + 4px);box-shadow:var(--shadow)}.invite-card.is-loading,.invite-card.is-error{animation:auth-rise .32s var(--ease)}.invite-hero{position:relative;isolation:isolate;overflow:hidden;height:132px;padding:16px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;color:var(--on-primary);background:radial-gradient(120% 120% at 0% 0%,color-mix(in srgb,var(--on-primary) 14%,transparent),transparent 60%),linear-gradient(150deg,var(--primary) 0%,var(--primary-hover) 100%)}:root[data-theme=dark] .invite-hero{background:radial-gradient(120% 120% at 0% 0%,color-mix(in srgb,var(--primary) 32%,transparent),transparent 60%),linear-gradient(150deg,color-mix(in srgb,var(--primary) 52%,var(--surface)),color-mix(in srgb,var(--primary) 26%,var(--surface)))}.invite-pattern{position:absolute;inset:0;width:100%;height:100%;z-index:-1;color:color-mix(in srgb,var(--gold) 58%,var(--on-primary));opacity:.2}.invite-kicker{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:color-mix(in srgb,var(--on-primary) 15%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--on-primary) 18%,transparent)}.invite-kicker-extra{white-space:pre}.invite-code{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:var(--radius-pill);font-family:var(--font-mono);font-weight:700;font-size:.95rem;letter-spacing:.16em;background:color-mix(in srgb,var(--on-primary) 15%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--on-primary) 18%,transparent)}.invite-code-label{font-family:var(--font);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.8}.invite-body{display:flex;flex-direction:column;align-items:center;gap:16px;padding:0 28px 26px;text-align:center}.invite-avatar{position:relative;margin-top:-48px;padding:5px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow)}.invite-avatar .avatar{display:block}.invite-avatar-game{position:absolute;right:-2px;bottom:0;display:inline-flex;padding:3px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm)}.invite-heading{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:-4px}.invite-title{font-size:1.4rem;font-weight:700;line-height:1.3;letter-spacing:-.02em;text-wrap:balance}.invite-host{font-weight:800;color:var(--primary-ink);overflow-wrap:anywhere}.invite-host-meta{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:6px;color:var(--text-2);font-size:.85rem}.invite-dot{color:var(--muted)}.invite-facts{list-style:none;width:100%;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.invite-fact{display:flex;align-items:center;gap:12px;min-width:0;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);text-align:left}.invite-fact-icon{flex:none;width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-raised);color:var(--primary-ink);box-shadow:var(--shadow-sm)}.invite-fact-text{display:flex;flex-direction:column;min-width:0}.invite-fact-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.invite-fact-value{font-size:1.1rem;font-weight:800;line-height:1.3}.invite-fact-note{font-size:.78rem;line-height:1.35;color:var(--text-2)}.invite-rules{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chip.invite-chip{gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;background:var(--surface-2);color:var(--text-2);box-shadow:inset 0 0 0 1px var(--border)}.chip.invite-chip .icon{color:var(--gold)}.invite-notice{width:100%;text-align:left}.invite-notice>.icon{color:var(--danger)}.invite-actions{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:2px}.invite-note{margin:2px 0;font-size:.8rem;color:var(--muted);text-wrap:balance}.invite-card.is-loading .invite-hero{opacity:.55}.invite-skel-avatar{display:block;width:88px;height:88px;border-radius:50%}.invite-skel-line{display:block;height:22px}.invite-skel-line.is-thin{height:14px;margin-top:-6px}.invite-skel-fact{display:block;height:68px;border-radius:var(--radius)}.invite-skel-btn{display:block;width:100%;height:50px;border-radius:var(--radius)}.invite-loading-text{margin:0;font-size:.85rem;color:var(--muted)}.invite-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 28px 30px;text-align:center}.invite-state-icon{position:relative;width:76px;height:76px;margin-bottom:8px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--danger-soft);color:var(--danger);animation:auth-pop .42s var(--ease)}.invite-state-icon:after{content:"";position:absolute;inset:-8px;border-radius:50%;border:2px solid currentColor;opacity:.14}.invite-state-code{font-family:var(--font-mono);font-size:.8rem;font-weight:700;letter-spacing:.12em;color:var(--muted)}.invite-state-msg{margin:0;color:var(--text);font-weight:600}.invite-state-help{margin:0;max-width:26em;color:var(--text-2);font-size:.9rem}.invite-state-btn{margin-top:10px}@media(max-width:760px){.invite{padding:0}.invite-card{border-radius:var(--radius-lg)}.invite-hero{height:112px;padding:12px}.invite-body{gap:14px;padding:0 16px 18px}.invite-avatar{margin-top:-44px}.invite-title{font-size:1.22rem}.invite-state{padding:28px 18px 22px}.invite-state-btn{width:100%}}@media(max-width:440px){.invite-facts{grid-template-columns:minmax(0,1fr);gap:8px}.invite-fact{padding:10px 12px}.invite-kicker{padding:0 10px;font-size:.72rem}}@media(max-width:400px){.invite-kicker-extra{display:none}}.nf{max-width:560px;margin:0 auto;padding:clamp(16px,7vh,72px) 4px 24px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.nf-code{display:flex;align-items:center;gap:clamp(6px,2vw,14px);margin-bottom:10px;font-size:clamp(4.6rem,16vw,7.5rem);font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--primary-ink);text-shadow:0 6px 18px color-mix(in srgb,var(--primary) 18%,transparent)}.nf-piece{width:.92em;height:.92em;flex:none;filter:drop-shadow(0 10px 16px rgba(80,20,10,.3));transform:rotate(-14deg);animation:nf-wobble 3.2s var(--ease) infinite}.nf-title{font-size:1.7rem;font-weight:800;letter-spacing:-.025em}.nf-text{margin:0;max-width:28em;color:var(--text-2)}.nf-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px}@keyframes nf-wobble{0%,to{transform:rotate(-14deg)}50%{transform:rotate(8deg) translateY(-4px)}}@media(max-width:760px){.nf-title{font-size:1.4rem}.nf-actions{flex-direction:column;align-self:stretch}.nf-actions .btn{width:100%}}.admin{display:flex;flex-direction:column;gap:18px;min-width:0}.admin-head{display:flex;align-items:center;gap:14px}.admin-head-icon{flex:none;width:50px;height:50px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 18%,transparent)}.admin-head-text{min-width:0}.admin-head .page-title{margin:0}.admin-head p{margin:2px 0 0;color:var(--text-2);font-size:.95rem}.admin-tabs{display:flex;gap:4px;margin-bottom:-4px;border-bottom:1px solid var(--border)}.admin-tab{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 14px;border:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:none;color:var(--text-2);font-weight:600;font-size:.95rem;cursor:pointer;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.admin-tab:hover{color:var(--text);background:color-mix(in srgb,var(--surface-2) 75%,transparent)}.admin-tab.active{color:var(--primary-ink)}.admin-tab.active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--primary)}.admin-tab:focus-visible{outline:none;box-shadow:var(--focus-ring)}.admin-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 7px;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums}.admin-tab.active .admin-count{background:var(--primary-soft);color:var(--primary-ink)}.admin-count.is-alert,.admin-tab.active .admin-count.is-alert{background:var(--primary);color:var(--on-primary)}.panel.admin-panel{padding:0;overflow:hidden;container-type:inline-size}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;padding:14px 16px;border-bottom:1px solid var(--border)}.admin-search{display:flex;gap:8px;flex:1 1 340px;max-width:560px;min-width:0}.admin-search-field{position:relative;flex:1;min-width:0}.admin-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.admin-search-field input{padding-left:40px;padding-right:42px;border-radius:var(--radius)}.admin-search-field input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.admin-search-field:focus-within .admin-search-icon{color:var(--primary-ink)}.admin-search-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);cursor:pointer}.admin-search-clear:hover{background:var(--surface-2);color:var(--text)}.admin-search-clear:focus-visible{outline:none;box-shadow:var(--focus-ring)}.admin-search .btn{border-radius:var(--radius)}.admin-summary{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.88rem}.admin-summary b{color:var(--text);font-variant-numeric:tabular-nums}.admin-inline-spinner.auth-spinner{width:14px;height:14px;color:var(--primary-ink)}.admin-results{transition:opacity var(--dur) var(--ease)}.admin-results.is-stale{opacity:.55}.table.admin-table th{padding:10px 16px;border-radius:0}.table.admin-table td{padding:12px 16px}.table.admin-table tbody tr:last-child td{border-bottom:0}.table .admin-th-actions,.table.admin-table td:last-child{text-align:right}.table.admin-table tr.is-banned td{background:color-mix(in srgb,var(--danger-soft) 55%,transparent)}.admin-date{white-space:nowrap;color:var(--text-2);font-size:.85rem;font-variant-numeric:tabular-nums}.admin-user{display:flex;align-items:center;gap:12px;min-width:0}.admin-user-text{display:flex;flex-direction:column;min-width:0;max-width:300px}.admin-user-line{display:flex;align-items:center;gap:6px;min-width:0}.admin-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--text)}.admin-user-name:hover{color:var(--primary-ink)}.admin-user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.84rem}.admin-user-created{display:none;color:var(--muted);font-size:.76rem;font-variant-numeric:tabular-nums}@container (max-width: 1040px){.admin-col-date{display:none}.admin-user-created{display:block}}@container (max-width: 900px){.admin-user-text{max-width:220px}}.chip.admin-me{flex:none;background:var(--info-soft);color:var(--info)}.admin-chips{display:flex;flex-wrap:wrap;gap:6px}.admin-chips .chip{padding:3px 9px}.admin-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.admin-no-action{color:var(--muted);padding-right:10px}.admin-cards{display:none;list-style:none;margin:0;padding:0}.admin-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.admin-card:last-child{border-bottom:0}.admin-card.is-banned{background:color-mix(in srgb,var(--danger-soft) 55%,transparent)}.admin-card .admin-user-text{max-width:none}.admin-card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 10px}.admin-card-date{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.pager.admin-pager{justify-content:space-between;margin:0;padding:12px 16px;border-top:1px solid var(--border)}.admin-pager-info{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums}.admin-pager-info b{color:var(--text)}.admin-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:48px 20px;text-align:center}.admin-state-icon{width:58px;height:58px;margin-bottom:6px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--border)}.admin-state-icon.is-danger{background:var(--danger-soft);color:var(--danger);box-shadow:none}.admin-state .btn{margin-top:8px}.admin-state .muted{max-width:34em}.admin-skeleton{list-style:none;margin:0;padding:4px 16px}.admin-skeleton li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.admin-skeleton li:last-child{border-bottom:0}.admin-skel-avatar{flex:none;width:38px;height:38px;border-radius:50%}.admin-skel-lines{flex:1;display:flex;flex-direction:column;gap:7px}.admin-skel-lines .skeleton{display:block;height:12px}.admin-skel-chip{flex:none;width:92px;height:22px;border-radius:var(--radius-pill)}.admin-modal-text{margin:0}.admin-modal-avatar{display:flex;align-items:center;gap:14px}.admin-status-seg button{gap:6px}.admin-seg-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums}.seg button.active .admin-seg-count{background:var(--on-primary);color:var(--primary-ink)}.adm-reports{list-style:none;margin:0;padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px}.adm-report{position:relative;display:flex;flex-direction:column;gap:12px;min-width:0;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);box-shadow:var(--shadow-sm)}.adm-report.is-open{box-shadow:inset 0 3px 0 var(--gold),var(--shadow-sm)}.adm-report-head{display:flex;align-items:center;gap:10px;min-width:0}.adm-report-who{flex:1;display:flex;flex-direction:column;min-width:0}.adm-report-time{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}.adm-report-quote{margin:0;padding:12px 14px;border-left:3px solid var(--primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-2);color:var(--text);font-size:1rem;line-height:1.5;overflow-wrap:anywhere}.adm-report-quote.is-deleted{border-left-color:var(--border-strong);color:var(--muted);text-decoration:line-through}.adm-deleted-tag{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);font-size:.72rem;font-weight:700;vertical-align:2px}.adm-modal-quote{margin-bottom:12px}.adm-report-meta{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted);font-size:.82rem}.adm-report-meta>span{display:inline-flex;align-items:center;gap:5px}.adm-report-link{font-weight:600}.adm-report-match{display:inline-flex;align-items:center;gap:5px;font-weight:600}.adm-report-foot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:12px;border-top:1px dashed var(--border)}.adm-skel-quote{display:block;height:46px}@media(min-width:761px)and (max-width:1199px){.table.admin-table th,.table.admin-table td{padding-left:12px;padding-right:12px}}@media(max-width:760px){.admin{gap:14px}.admin-head{gap:12px}.admin-head-icon{width:44px;height:44px;border-radius:13px}.admin-head p{font-size:.86rem;line-height:1.4}.admin-tabs{gap:0}.admin-tab{flex:1 1 auto;gap:6px;min-height:48px;padding:0 8px;font-size:.9rem;white-space:nowrap}.admin-tab-icon{display:none}.admin-tab .admin-count{min-width:22px;height:20px;padding:0 6px}.admin-toolbar{padding:12px}.admin-search{flex-basis:100%;max-width:none}.admin-table-wrap{display:none}.admin-cards{display:block}.admin-card{padding:14px 12px}.admin-card .admin-actions .btn{--btn-h: 40px}.admin-card .admin-no-action{display:none}.admin-status-seg{display:flex;width:100%}.admin-status-seg button{flex:1;min-height:36px;padding:0 6px}.admin-summary{width:100%;justify-content:flex-end}.adm-reports{padding:12px;gap:12px}.adm-report{padding:14px}.adm-report-foot .btn{flex:1;--btn-h: 42px}.admin-search>.btn{display:none}.pager.admin-pager{padding:10px 12px}.pager.admin-pager .btn{--btn-h: 40px}.admin-pager-total{display:none}.admin-search-clear{width:40px;height:40px;right:2px}.adm-report-match{min-height:40px;margin:-10px 0}}.adm-dash{display:flex;flex-direction:column;gap:16px;min-width:0}.adm-dash-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;color:var(--text-2);font-size:.88rem}.adm-dash-stale{color:var(--danger)}.adm-dash-card{padding:16px 18px;min-width:0}.adm-dash-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:1.02rem}.adm-dash-title .icon,.adm-dash-title svg{color:var(--text-2)}.adm-dash-note{margin:12px 0 0;color:var(--text-2);font-size:.85rem}.adm-dash-loading,.adm-dash-error{padding:20px;color:var(--text-2)}.adm-dash-error{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;color:var(--text)}.adm-dash-error svg{color:var(--danger)}.adm-dash-2col{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.adm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.adm-tiles.is-compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.adm-tile{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);min-width:0}.adm-tile-ico{flex:none;width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.adm-tile-ico.is-primary{background:var(--primary-soft);color:var(--primary-ink)}.adm-tile-ico.is-ok{background:var(--ok-soft);color:var(--ok)}.adm-tile-ico.is-info{background:var(--info-soft);color:var(--info)}.adm-tile-ico.is-danger{background:var(--danger-soft);color:var(--danger)}.adm-tile-ico.is-gold{background:var(--gold-soft);color:var(--gold-ink)}.adm-tile-ico.is-muted{background:var(--surface-3);color:var(--text-2)}.adm-tile-body{min-width:0}.adm-tile-label{color:var(--text-2);font-size:.85rem}.adm-tile-value{font-size:1.45rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.adm-tile-sub{margin-top:2px;color:var(--text-2);font-size:.78rem;line-height:1.35}.adm-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.adm-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:.92rem}.adm-table th,.adm-table td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.adm-table th:first-child{text-align:left}.adm-table thead th{color:var(--text-2);font-weight:600;font-size:.82rem}.adm-table tbody th,.adm-traffic td{font-weight:600}.adm-chart-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}.adm-chart-head .adm-dash-title{margin:0}.adm-seg{display:flex;flex-wrap:wrap;gap:6px}.adm-seg button{min-height:34px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);color:var(--text-2);font:inherit;font-size:.85rem;cursor:pointer}.adm-seg button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--text);font-weight:600}.adm-seg button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.adm-chart-sub{margin:8px 0 12px;color:var(--text-2);font-size:.85rem}.adm-chart{position:relative;padding-left:40px;border-radius:var(--radius-sm);touch-action:pan-y}.adm-chart:focus-visible{outline:none;box-shadow:var(--focus-ring)}.adm-chart-plot{position:relative;height:200px}.adm-grid-line{position:absolute;left:0;right:0;border-top:1px solid var(--border)}.adm-grid-line span{position:absolute;right:calc(100% + 6px);top:-.6em;color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums;white-space:nowrap}.adm-chart-cols{position:absolute;inset:0;display:flex;align-items:flex-end;gap:2px}.adm-col{flex:1 1 0;height:100%;display:flex;align-items:flex-end;justify-content:center;min-width:0;cursor:default}.adm-bar{width:100%;max-width:24px;border-radius:4px 4px 0 0;background:var(--primary);transition:opacity var(--dur, .15s) var(--ease, ease)}.adm-chart-cols:has(.adm-col.is-active) .adm-col:not(.is-active) .adm-bar{opacity:.45}.adm-col.is-active{background:color-mix(in srgb,var(--primary) 7%,transparent);border-radius:4px 4px 0 0}.adm-tip{position:absolute;top:0;transform:translate(-50%,-6px);z-index:2;display:flex;flex-direction:column;gap:2px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised, var(--surface));box-shadow:var(--shadow);color:var(--text);font-size:.85rem;white-space:nowrap;pointer-events:none}.adm-tip.is-start{transform:translate(-12px,-6px)}.adm-tip.is-end{transform:translate(calc(-100% + 12px),-6px)}.adm-tip b{font-size:1.05rem}.adm-tip span{color:var(--text-2);font-size:.78rem}.adm-chart-x{display:flex;gap:2px;margin-top:6px}.adm-chart-x span{flex:1 1 0;min-width:0;color:var(--muted);font-size:.7rem;text-align:center;white-space:nowrap;overflow:visible}.adm-chart-x span.is-hidden{visibility:hidden}.adm-table-toggle{margin-top:12px}.adm-table-toggle summary{cursor:pointer;color:var(--text-2);font-size:.88rem}.adm-table-toggle .adm-table-wrap{max-height:360px;overflow:auto;margin-top:8px}.adm-pages{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.adm-pages li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;align-items:center;gap:10px;font-size:.9rem}.adm-page-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-page-track{height:10px}.adm-page-bar{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--primary)}.adm-page-num{font-weight:600;font-variant-numeric:tabular-nums}.adm-empty{margin:0;color:var(--text-2)}@media(max-width:760px){.adm-dash-card{padding:14px}.adm-tiles,.adm-tiles.is-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-tile{padding:10px;gap:8px}.adm-tile-ico{width:30px;height:30px}.adm-tile-value{font-size:1.25rem}.adm-chart{padding-left:34px}.adm-chart-plot{height:170px}.adm-chart-x span{font-size:.62rem}}.adm-dash .panel+.panel,.adm-dash-2col>.panel{margin-top:0}.adm-chart-x span:last-child{display:flex;justify-content:flex-end}@media(max-width:760px){.adm-table thead th{white-space:normal;vertical-align:bottom}.adm-table th,.adm-table td{padding:8px 6px}}.cu{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:24px;align-items:start}.cu-main{display:flex;flex-direction:column;gap:18px;min-width:0}.cu-lobby{padding:0}.cu-head{display:flex;align-items:center;gap:10px;padding:12px 16px 10px;border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;background:linear-gradient(180deg,color-mix(in srgb,var(--primary-soft) 80%,transparent),transparent)}.cu-head p{margin:0}.cu-emblem{flex:none;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#9a2a20;color:#e2bd78;box-shadow:var(--shadow-sm),0 0 0 2px #e2bd78 inset}.cu-title{font-size:1.1rem;font-weight:800}.cu-tabs{margin:0 12px;width:auto}.cu-body{padding:12px 14px 14px}.cu-block{display:flex;flex-direction:column;gap:8px}.cu-block p{margin:0}.cu-block-head{display:flex;align-items:center;gap:8px}.cu-block-head .icon{color:var(--primary-ink)}.cu-block-head .chip{margin-left:auto}.cu-time{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cu-time label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted);font-weight:600}.cu-join{display:flex;gap:6px}.cu-join input{text-transform:uppercase;letter-spacing:.15em;font-family:var(--font-mono)}.cu-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.cu-choices{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.cu-choices legend{margin-bottom:6px}.cu-choice{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);cursor:pointer;text-align:center;font-size:.86rem;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.cu-choice input{position:absolute;opacity:0;pointer-events:none}.cu-choice:hover{border-color:var(--border-strong)}.cu-choice.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-ink)}.cu-choice:has(input:focus-visible){box-shadow:var(--focus-ring)}.cu-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:.9rem}.cu-center{text-align:center;margin:0}.cu-search,.cu-wait{display:flex;flex-direction:column;align-items:center;gap:8px}.cu-spin{width:72px;height:72px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#9a2a20;color:#e2bd78;box-shadow:0 0 0 6px var(--primary-soft);animation:cu-flip 1.6s var(--ease) infinite}@keyframes cu-flip{0%,to{transform:scaleX(1)}50%{transform:scaleX(.1)}}.cu-search-title{font-weight:700}.cu-search-time{font-size:1.8rem;font-weight:800;color:var(--primary-ink);line-height:1.05}.cu-code{font-size:2rem;font-weight:800;letter-spacing:.2em;font-family:var(--font-mono);color:var(--primary-ink)}.cu-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.cu-link{display:flex;gap:6px;width:100%}.cu-link input{font-size:.82rem}.cu-search .btn,.cu-wait .btn-block{width:100%}.cu-wait-title{margin:0;font-weight:700;text-align:center}.cu-code-row{display:flex;align-items:center;gap:4px}.cu-note{display:flex;align-items:flex-start;gap:6px;margin:0;line-height:1.4}.cu-note .icon{flex:none;margin-top:2px}.cu-suggest{width:100%;text-align:left}.cu-suggest-actions,.cu-notice-actions{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px}.cu-suggest-actions{gap:8px}.cu-search .cu-suggest-actions .btn{width:auto;flex:1 1 auto}.cu-notice-actions .link-btn{min-height:30px}.cu-block .cu-join-label{margin:4px 0 -2px}.cu-hint{margin:-4px 0 0}.cu-rules .panel-title{font-size:1rem}.cu-rule-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.cu-rule-list li{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--text-2);line-height:1.45}.cu-rule-ico{flex:none;width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);color:var(--primary-ink)}.cu-board{margin:0;position:sticky;top:calc(var(--header-h) + 20px);display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}.cu-board .board-wrap{--board-reserve: 150px;--board-max: 760px}.cu-board .board-svg{pointer-events:none}@media(max-width:1199px){.cu{grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:20px}}@media(max-width:760px){.cu{grid-template-columns:minmax(0,1fr);gap:16px}.cu-board{position:static}.cu-board .board-wrap{max-width:460px}.cu-tabs button{min-height:40px}}.pz-page{display:flex;flex-direction:column;gap:18px}.pz-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(260px,300px);align-items:center;gap:18px 28px;padding:26px 28px;border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(120deg,color-mix(in srgb,var(--primary-soft) 80%,var(--surface)) 0%,var(--surface) 48%,color-mix(in srgb,var(--gold-soft) 85%,var(--surface)) 100%);box-shadow:var(--shadow)}.pz-hero-text{min-width:0}.pz-kicker{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary-ink)}.pz-title{font-size:1.9rem;margin-bottom:10px;letter-spacing:-.02em}.pz-title-sep{color:var(--gold)}.pz-title-name{white-space:nowrap}.pz-lead{max-width:62ch;margin:0;color:var(--text-2)}.pz-hero-art{writing-mode:vertical-rl;font-family:var(--font-han);font-size:2.15rem;line-height:1;letter-spacing:.12em;color:var(--primary-ink);opacity:.2;user-select:none;padding:2px 4px;border-left:2px solid color-mix(in srgb,var(--primary) 30%,transparent);border-right:2px solid color-mix(in srgb,var(--primary) 30%,transparent)}.pz-progress{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0}.pz-progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pz-progress-label{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pz-progress-count{color:var(--text-2);font-weight:600}.pz-progress-count b{font-size:1.6rem;line-height:1;color:var(--text)}.pz-bar{height:10px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}.pz-bar-fill{display:block;height:100%;min-width:0;border-radius:inherit;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 45%,var(--gold)));transition:width .4s var(--ease)}.pz-next{justify-content:space-between}.pz-progress-title{display:flex;align-items:center;gap:8px;font-weight:700}.pz-progress-title .icon{color:var(--primary-ink)}.pz-progress-note{margin:0;color:var(--text-2);font-size:.86rem}.pz-done{display:flex;align-items:center;gap:6px;color:var(--ok);font-weight:600}.pz-progress-actions{display:flex;gap:8px;flex-wrap:wrap}.pz-progress-error{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger-soft) 55%,var(--surface-raised))}.pz-progress-error .pz-progress-title .icon{color:var(--danger)}.pz-progress-error .btn{align-self:flex-start}.pz-s-line{display:block;height:12px;width:70%}.pz-s-line.short{width:45%}.pz-s-bar{display:block;height:10px;border-radius:var(--radius-pill)}.pz-toolbar{position:sticky;top:var(--header-h);z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:-6px 0 -8px;padding:10px 0;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(1.3) blur(10px);-webkit-backdrop-filter:saturate(1.3) blur(10px)}.pz-filter button{min-height:36px}.pz-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);font-size:.74rem;font-weight:700}.pz-filter button.active .pz-count{background:#0003;color:var(--on-primary)}.pz-search{position:relative;flex:1 1 260px;max-width:380px;display:flex;align-items:center}.pz-search>.icon{position:absolute;left:13px;color:var(--muted);pointer-events:none}.pz-search input{padding-left:40px;padding-right:40px;border-radius:var(--radius-pill)}.pz-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.pz-search-clear{position:absolute;right:5px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}.pz-search-clear:hover{background:var(--surface-2);color:var(--text)}.pz-search-clear:focus-visible{outline:none;box-shadow:var(--focus-ring)}.pz-result-count{margin:0 0 -6px}.pz-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:14px}.pz-item{min-width:0;content-visibility:auto;contain-intrinsic-size:auto 330px}.pz-card{position:relative;container-type:inline-size;display:flex;flex-direction:column;height:100%;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);text-decoration:none;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}a.pz-card:hover{text-decoration:none;transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 38%,var(--border));box-shadow:var(--shadow)}a.pz-card:focus-visible{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring)}.pz-card.is-solved{border-color:color-mix(in srgb,var(--ok) 38%,var(--border))}.pz-thumb-box{position:relative;display:block;padding:10px 10px 0}.pz-solved-badge{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ok);color:#fff;box-shadow:0 0 0 2px var(--surface),var(--shadow-sm)}.pz-card-body{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0;padding:10px 12px 12px}.pz-num{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pz-han{font-family:var(--font-han);font-size:1.28rem;line-height:1.3;letter-spacing:.05em;color:var(--text)}.pz-viet{font-size:.88rem;font-weight:600;line-height:1.35;color:var(--text-2)}.pz-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto;padding-top:10px}.pz-tag{display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);font-size:.74rem;font-weight:700;line-height:1.3}.pz-tag-mate{background:var(--gold-soft);color:var(--gold-ink)}.pz-status{display:flex;align-items:center;gap:4px;margin-top:6px;font-size:.8rem;font-weight:600;color:var(--muted)}.pz-status-ok{color:var(--ok)}.pz-card-skel{gap:8px;padding:10px 10px 14px}.pz-s-thumb{display:block;aspect-ratio:92 / 102;border-radius:4px}.pz-empty{padding:8px}.pz-empty-btn{margin-top:10px}.pz-thumb{--pz-wood: #f3d6a2;--pz-wood-edge: #d9ad6e;--pz-ink: #5b3a1d;--pz-face: #fff7e8;--pz-red: #b21f19;--pz-black: #1e1915;display:block;width:100%;height:auto;aspect-ratio:92 / 102}:root[data-theme=dark] .pz-thumb{--pz-wood: #d6ae76;--pz-wood-edge: #a87841;--pz-ink: #3a220f;--pz-face: #f5e8cc;--pz-red: #a81c16;--pz-black: #17120f}.pz-thumb-wood{fill:var(--pz-wood);stroke:var(--pz-wood-edge);stroke-width:1}.pz-thumb-grid{fill:none;stroke:var(--pz-ink);stroke-width:.5;opacity:.7}.pz-thumb-edge{fill:none;stroke:var(--pz-ink);stroke-width:.9;opacity:.85}.pz-pc circle{fill:var(--pz-face);stroke-width:.7}.pz-pc text{font-family:"LXGW WenKai TC",var(--font-han);font-size:6.1px;font-weight:700;text-anchor:middle}.pz-pc.red circle{stroke:var(--pz-red)}.pz-pc.red text{fill:var(--pz-red)}.pz-pc.black circle{stroke:var(--pz-black)}.pz-pc.black text{fill:var(--pz-black)}.pz-source{margin-top:6px}.pz-source-title{display:flex;align-items:center;gap:8px}.pz-source-title .icon{color:var(--gold)}.pz-source-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:18px 24px;align-items:start}.pz-source-text p{color:var(--text-2);font-size:.92rem}.pz-source-text p:last-child{margin-bottom:0}.pz-source code{font-family:var(--font-mono);font-size:.82em;padding:1px 6px;border-radius:var(--radius-xs);background:var(--surface-2);border:1px solid var(--border);overflow-wrap:anywhere}.pz-ext{margin-left:2px;vertical-align:-1px}.pz-facts{display:flex;flex-direction:column;gap:10px;margin:0;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.pz-facts dt{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pz-facts dd{margin:1px 0 0;font-weight:600;overflow-wrap:anywhere}.pz-license-link{font-weight:600;white-space:nowrap}.pz-license-intro{font-size:.9rem}.pz-license{margin:0;max-height:min(52vh,420px);overflow:auto;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font-size:.8rem;line-height:1.55;overflow-wrap:anywhere}.pz-license p{margin:0 0 10px}.pz-license p:first-child{font-weight:700}.pz-license p:last-child{margin-bottom:0}.pz-license:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media(max-width:1199px){.pz-hero{grid-template-columns:minmax(0,1fr) minmax(250px,280px)}.pz-hero-art{display:none}}@media(max-width:900px){.pz-hero{padding:22px;gap:16px 22px}.pz-title{font-size:1.6rem}.pz-source-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:760px){.pz-page{gap:14px}.pz-hero{grid-template-columns:minmax(0,1fr);padding:18px 16px 16px;gap:14px;border-radius:var(--radius)}.pz-title{font-size:1.4rem;margin-bottom:6px}.pz-lead{font-size:.9rem}.pz-progress{padding:12px 14px}.pz-toolbar{position:static;margin:0;padding:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}.pz-filter{display:flex;width:100%}.pz-filter button{flex:1;min-height:40px;padding:0 8px}.pz-search{flex-basis:100%;max-width:none}.pz-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pz-item{contain-intrinsic-size:auto 300px}.pz-source-text p{font-size:.88rem}}@media(max-width:400px){.pz-kicker{display:none}}@media(max-width:360px){.pz-filter button{padding:0 6px;font-size:.84rem}.pz-count{min-width:18px;padding:0 4px}}@container (max-width: 192px){.pz-card-body{padding:9px 10px 11px}.pz-tag{padding:2px 7px;font-size:.68rem}.pz-han{font-size:1.16rem}.pz-viet{font-size:.84rem}}@container (max-width: 168px){.pz-thumb-box{padding:7px 7px 0}.pz-card-body{padding:8px 8px 10px}.pz-tag{font-size:.66rem}}@media(max-width:340px){.pz-grid{grid-template-columns:minmax(0,1fr)}.pz-item{contain-intrinsic-size:auto 150px}.pz-card{flex-direction:row}.pz-thumb-box{flex:none;width:116px;padding:8px 0 8px 8px}.pz-solved-badge{top:3px;right:-6px}.pz-card-body{padding:8px 10px 10px 12px}.pz-tag{padding:2px 7px;font-size:.68rem}}.play.pzp{--pzh-h: 74px;--board-h: calc( 100dvh - var(--header-h) - var(--top-pad) - var(--bottom-gap) - 2 * var(--bar-h) - 2 * var(--col-gap) - var(--dock-h) - var(--pzh-h) - var(--play-gap) )}.play.pzp>.pzp-head{order:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"prev id next" "prev name next" "prev goal next";align-items:center;column-gap:4px;row-gap:1px;min-height:var(--pzh-h);padding:6px 4px}.pzp-prev{grid-area:prev}.pzp-next{grid-area:next}.pzp-id{grid-area:id}.pzp-name{grid-area:name}.pzp-goal{grid-area:goal}.pzp-nav{--btn-h: 44px;align-self:center;color:var(--text-2)}.pzp-nav:disabled{opacity:.3}.pzp-id{display:flex;align-items:center;gap:8px;min-width:0}.pzp-code{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-ink)}.pzp-solved{display:inline-flex;align-items:center;gap:3px;padding:1px 8px 1px 6px;border-radius:var(--radius-pill);background:var(--ok-soft);color:color-mix(in srgb,var(--ok) 80%,var(--text));font-size:.7rem;font-weight:700;white-space:nowrap}.pzp-name{display:flex;align-items:baseline;gap:2px 10px;min-width:0;margin:0;font-size:inherit;font-weight:inherit;line-height:1.25}.pzp-han{flex:none;font-family:var(--font-han);font-size:1.18rem;font-weight:700;letter-spacing:.06em;color:var(--text)}.pzp-viet{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:700;color:var(--text-2)}.pzp-goal{display:flex;align-items:center;gap:6px;min-width:0;margin:0;font-size:.8rem;line-height:1.3;color:var(--text-2)}.pzp-goal>.icon{flex:none;color:var(--muted)}.pzp-goal.is-proven>.icon{color:var(--gold)}.pzp-goal-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pzp-goal b{font-weight:700;color:var(--text)}.pzp-goal.is-proven b{color:var(--gold-ink)}.pzp-unverified{flex:none;padding:1px 7px;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--text-2);font-size:.68rem;font-weight:700;white-space:nowrap;cursor:help}.pzp-counter{display:inline-flex;align-items:baseline;gap:1px;padding:3px 9px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text-2);font-size:.82rem;white-space:nowrap}.pzp-counter b{font-size:1.02rem;font-weight:800;color:var(--text)}.pzp-counter small{margin-left:4px;font-size:.72rem;font-weight:600;color:var(--muted)}.status-card.tone-solution{background:var(--gold-soft);border-color:color-mix(in srgb,var(--gold) 45%,transparent)}.tone-solution .status-icon{background:color-mix(in srgb,var(--gold) 22%,transparent);color:var(--gold-ink)}.tone-solution .status-title{color:var(--gold-ink)}.pzp-save .link-btn{flex:none;font-weight:700}.pzp-guest a{font-weight:700}.pzp-viewing .board-area{cursor:default}.pzp-sol-exit{font-weight:700}.pzp-stat{display:flex;flex-direction:column;align-items:center;line-height:1}.pzp-stat-num{font-size:2.8rem;font-weight:800;letter-spacing:-.03em;color:var(--gold-ink)}.pzp-stat-label{margin-top:4px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pzp-result .pzp-save{justify-content:center;text-align:left;max-width:100%}.pzp-result .result-note+.pzp-usage{margin-top:-8px}.pzp-usage{margin:0;font-size:.8rem;font-weight:600;color:var(--muted)}.pzp-foot{display:flex;flex-direction:column;gap:6px}.pzp-all{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:.82rem;font-weight:700}@media(max-width:760px){.play.pzp{--pzh-h: 70px}.play.pzp>.pzp-head{padding:4px 2px;border-radius:var(--radius)}.pzp-nav{--btn-h: 42px}.pzp-viewing .gs-toolbar .act,.pzp-viewing .gs-view .act-flip{font-size:.7rem}.pzp-viewing .gs-toolbar .act.pzp-step-next{background:var(--primary);color:var(--on-primary)}.pzp-src,.pzp-counter small{display:none}.pzp-counter{padding:2px 8px}.pzp-result .pzp-stat-num{font-size:2.4rem}}.pzp-goal-short{display:none}@media(max-width:380px){.pzp-han{font-size:1.08rem}.pzp-viet{font-size:.82rem}.pzp-goal-long{display:none}.pzp-viewing .gs-toolbar{gap:4px}.pzp-viewing .gs-toolbar .act,.pzp-viewing .gs-view .act-flip{padding:0 2px;font-size:.66rem}.pzp-goal-short{display:inline;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.pzp-goal.is-proven .pzp-goal-short{color:var(--gold-ink)}}@media(min-width:761px)and (min-aspect-ratio:851/1000){.play.pzp>.pzp-head{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"id prev next" "name name name" "goal goal goal";column-gap:2px;row-gap:3px;min-height:0;padding:10px 10px 12px 16px}.pzp-nav{--btn-h: 32px}.pzp-name{flex-wrap:wrap;margin-top:1px}.pzp-han{font-size:1.42rem}.pzp-viet{white-space:normal;font-size:.95rem}.pzp-goal{margin:5px 6px 0 0;padding:6px 10px;border-radius:var(--radius-sm);background:var(--surface-2);font-size:.82rem}.pzp-goal.is-proven{background:var(--gold-soft)}.pzp-goal-text{white-space:normal}.play.pzp .pzp-sol-actions .pzp-step{width:34px;padding:0}.play.pzp .pzp-sol-actions .pzp-step .act-label{display:none}}@media(min-width:761px)and (min-aspect-ratio:851/1000)and (max-height:820px){.play.pzp>.pzp-head{padding:8px 8px 10px 14px}.pzp-han{font-size:1.28rem}.pzp-goal{margin-top:3px;padding:5px 8px;gap:5px;font-size:.79rem}}.pz-viet.is-missing,.pzp-viet.is-missing{font-weight:500;font-style:italic;color:var(--muted)}.pz-carry{display:flex;align-items:flex-start;gap:6px;margin-top:4px;font-size:.8rem;color:var(--muted)}.pz-carry .icon{flex:none;margin-top:2px}.pz-carry .link-btn{font-size:inherit}
