:root,:root[data-theme=classic]{--font-display: "Fraunces", Georgia, serif;--font-body: "Source Sans 3", system-ui, sans-serif;--bg: #f4ede2;--bg-image: radial-gradient(ellipse at 15% 0%, rgba(196, 165, 116, .32), transparent 45%), radial-gradient(ellipse at 95% 5%, rgba(31, 92, 69, .14), transparent 40%);--surface: #fffaf2;--surface-2: #f7efe2;--surface-strong: #174a37;--text: #231b12;--text-muted: #5b4d3b;--text-on-strong: #fdf6ea;--border: #e3d7c4;--border-strong: #cdbfa8;--primary: #174a37;--primary-hover: #0f3527;--primary-text: #fdf6ea;--accent: #f2c14e;--accent-text: #7a5710;--danger: #9b3b2e;--danger-soft: rgba(155, 59, 46, .1);--ok: #2f7a57;--ok-soft: rgba(47, 122, 87, .12);--focus: #d9a93a;--header-bg: rgba(244, 237, 226, .86);--shadow-sm: 0 1px 2px rgba(35, 27, 18, .08);--shadow: 0 10px 30px rgba(35, 27, 18, .12);--shadow-lg: 0 24px 60px rgba(35, 27, 18, .22);--board-bg: linear-gradient(145deg, #1f5c45 0%, #123b2c 100%);--board-border: transparent;--cell-bg: #2a6b51;--prem-tw: #8e3526;--prem-dw: #c47a66;--prem-tl: #2f6a8a;--prem-dl: #79a9c0;--prem-star: #caa04a;--prem-ink: rgba(255, 255, 255, .86);--prem-ink-light: rgba(255, 255, 255, .9);--tile-bg: linear-gradient(160deg, #fbf3dc 0%, #efe0bb 70%, #dcc697 100%);--tile-edge: #b99d63;--tile-ink: #2a2114;--tile-pts: #5a4a30;--blank-bg: repeating-linear-gradient(-45deg, #f3e9c9, #f3e9c9 3px, #e6d4a6 3px, #e6d4a6 6px);--rack-bg: linear-gradient(180deg, #b8955c, #92713c);--rack-inset: inset 0 2px 6px rgba(0, 0, 0, .22);--last-glow: #f2c14e;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--radius-btn: 999px;color-scheme:light}:root[data-theme=salon]{--font-display: "DM Serif Display", Georgia, serif;--font-body: "Manrope", system-ui, sans-serif;--bg: #0e1215;--bg-image: radial-gradient(120% 60% at 50% 0%, #1b2a25 0%, rgba(14, 18, 21, 0) 60%);--surface: #172019;--surface-2: #1d2721;--surface-strong: #2d2616;--text: #eef1ec;--text-muted: #a9b3ad;--text-on-strong: #ffffff;--border: #2b3530;--border-strong: #3a4540;--primary: #d9b25f;--primary-hover: #e8c77f;--primary-text: #1d1810;--accent: #e3c07a;--accent-text: #e3c07a;--danger: #f0a391;--danger-soft: rgba(240, 163, 145, .12);--ok: #7fd1a8;--ok-soft: rgba(127, 209, 168, .12);--focus: #e3c07a;--header-bg: rgba(14, 18, 21, .82);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 12px 32px rgba(0, 0, 0, .45);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .6);--board-bg: linear-gradient(145deg, #0f4a38 0%, #082a20 100%);--board-border: #2c4a3f;--cell-bg: #12503d;--prem-tw: #9a3b2f;--prem-dw: #a8665a;--prem-tl: #27597a;--prem-dl: #4a7f98;--prem-star: #c9a24f;--prem-ink: rgba(255, 255, 255, .82);--prem-ink-light: rgba(255, 255, 255, .88);--tile-bg: linear-gradient(160deg, #fbf5e6 0%, #eadcb8 75%, #d2bb86 100%);--tile-edge: #9f834d;--tile-ink: #1d1810;--tile-pts: #5a4a30;--blank-bg: repeating-linear-gradient(-45deg, #f5ecd2, #f5ecd2 3px, #e3cf9d 3px, #e3cf9d 6px);--rack-bg: linear-gradient(180deg, #2a2418, #1a150d);--rack-inset: inset 0 0 0 1px #4a3d24;--last-glow: #e3c07a;color-scheme:dark}:root[data-theme=fresh]{--font-display: "Bricolage Grotesque", system-ui, sans-serif;--font-body: "Figtree", system-ui, sans-serif;--bg: #f6f5f1;--bg-image: none;--surface: #ffffff;--surface-2: #f0f0f5;--surface-strong: #1b1d2a;--text: #1b1d2a;--text-muted: #5b5f78;--text-on-strong: #ffffff;--border: #e4e6ef;--border-strong: #d3d6e3;--primary: #3d4bd6;--primary-hover: #2c38b0;--primary-text: #ffffff;--accent: #ffcf4a;--accent-text: #8a5a00;--danger: #c2410c;--danger-soft: rgba(194, 65, 12, .08);--ok: #13795b;--ok-soft: rgba(19, 121, 91, .1);--focus: #3d4bd6;--header-bg: rgba(246, 245, 241, .88);--shadow-sm: 0 1px 0 #dcdfea;--shadow: 0 10px 30px rgba(27, 29, 42, .08);--shadow-lg: 0 24px 60px rgba(27, 29, 42, .18);--board-bg: #ffffff;--board-border: #e4e6ef;--cell-bg: #e7e9f2;--prem-tw: #ff7a59;--prem-dw: #ffc2ae;--prem-tl: #4b59e0;--prem-dl: #b6bdf6;--prem-star: #ffcf4a;--prem-ink: #ffffff;--prem-ink-light: #1b1d2a;--tile-bg: #ffffff;--tile-edge: #cfd2e2;--tile-ink: #1b1d2a;--tile-pts: #5b5f78;--blank-bg: #ffe79a;--rack-bg: #e7e9f2;--rack-inset: none;--last-glow: #1b1d2a;--radius-btn: 14px;color-scheme:light}:root{--board-max: 560px;--board-mobile: 100%}:root[data-scale=large]{--board-max: 640px}:root[data-scale=xlarge]{--board-max: 740px;--board-mobile: 125%}:root[data-scale=xxlarge]{--board-max: 860px;--board-mobile: 150%}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh;min-height:100dvh;background-color:var(--bg);background-image:var(--bg-image);background-attachment:fixed;color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;margin:0}.muted{color:var(--text-muted)}.small{font-size:.86rem}.center{text-align:center}.error-text{color:var(--danger);font-weight:700}.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:0 1.15rem;border-radius:var(--radius-btn);border:1.5px solid transparent;background:var(--primary);color:var(--primary-text);font-weight:700;cursor:pointer;text-decoration:none;transition:background .15s ease,transform .08s ease,border-color .15s ease;white-space:nowrap}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{filter:grayscale(.6) brightness(.92);cursor:not-allowed}.btn-secondary,button.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost,button.btn-ghost{background:transparent;color:var(--text);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger,button.btn-danger{background:var(--surface);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{min-height:36px;padding:0 .85rem;font-size:.9rem}.btn-lg{min-height:52px;padding:0 1.5rem;font-size:1.05rem}.btn-block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.icon-btn:hover{background:var(--surface-2)}.icon{width:1.2em;height:1.2em;flex:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.1rem 1.2rem}.card-flat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem}.card-title{font-size:1.15rem;margin-bottom:.75rem}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.page-title{font-size:clamp(1.6rem,4vw,2.2rem);letter-spacing:-.01em}.page-sub{margin:.25rem 0 0;color:var(--text-muted)}.stack{display:grid;gap:1rem}.row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .6rem;border-radius:999px;font-size:.8rem;font-weight:700;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}.chip.live{background:var(--ok-soft);color:var(--ok);border-color:transparent}.chip.wait{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent-text);border-color:transparent}.chip.done{background:var(--surface-2)}.badge{display:inline-grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.72rem;font-weight:800;line-height:1}.dot{width:.62rem;height:.62rem;border-radius:50%;flex:none;display:inline-block;background:var(--border-strong)}.dot.on{background:#2fa36b;box-shadow:0 0 0 3px #2fa36b2e}.dot.off{background:#d0705f}.dot.busy{background:#d4a84b}.dot.bot{background:#6a9fb5}.avatar{display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;font-weight:800;font-size:.9rem;color:#fff;flex:none;position:relative}.avatar.sm{width:1.8rem;height:1.8rem;font-size:.75rem}.avatar.lg{width:3.6rem;height:3.6rem;font-size:1.35rem}.avatar .dot{position:absolute;right:-1px;bottom:-1px;border:2px solid var(--surface);width:.7rem;height:.7rem}.field{display:grid;gap:.35rem}.field label,.label{font-size:.85rem;font-weight:700;color:var(--text-muted)}.input,.field input,.field select{width:100%;min-height:46px;padding:.55rem .85rem;border-radius:12px;border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text)}.input:focus,.field input:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}.seg{display:inline-flex;padding:4px;gap:4px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border);flex-wrap:wrap}.seg button{min-height:36px;padding:0 .85rem;border-radius:10px;border:0;background:transparent;color:var(--text-muted);font-weight:700;cursor:pointer}.seg button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.75rem 1rem;border-radius:var(--radius);font-weight:600;border:1px solid var(--border);background:var(--surface)}.banner.error{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}.banner.invite{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.banner-close{background:transparent;border:0;color:inherit;font-size:1.4rem;line-height:1;cursor:pointer;padding:0 .3rem}.toast{position:fixed;left:50%;bottom:calc(5.5rem + env(safe-area-inset-bottom));transform:translate(-50%);z-index:90;background:var(--surface-strong);color:var(--text-on-strong);padding:.7rem 1.15rem;border-radius:999px;font-weight:700;box-shadow:var(--shadow-lg);animation:fx-fade-in .2s ease-out;max-width:calc(100vw - 2rem)}.empty{padding:2rem 1rem;text-align:center;color:var(--text-muted)}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:40;background:var(--header-bg);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--border)}.app-header-inner{max-width:1240px;margin:0 auto;display:flex;align-items:center;gap:1rem;padding:.6rem 1.25rem;padding-top:calc(.6rem + env(safe-area-inset-top))}.brand{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--text);background:none;border:0;padding:0;cursor:pointer}.brand-mark{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:9px;background:var(--tile-bg);box-shadow:0 2px 0 var(--tile-edge);color:var(--tile-ink);font-family:var(--font-display);font-weight:800;font-size:1.15rem}.brand-name{font-family:var(--font-display);font-weight:800;font-size:1.2rem;letter-spacing:-.01em}.header-nav{display:flex;gap:.25rem;margin-left:1rem}.nav-link{display:inline-flex;align-items:center;gap:.4rem;min-height:40px;padding:0 .85rem;border-radius:10px;border:0;background:transparent;color:var(--text-muted);font-weight:700;cursor:pointer;position:relative}.nav-link:hover{color:var(--text);background:var(--surface-2)}.nav-link.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-sm)}.nav-link .badge{margin-left:.1rem}.header-right{margin-left:auto;display:flex;align-items:center;gap:.6rem}.conn-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .7rem;border-radius:999px;font-size:.8rem;font-weight:700;background:var(--danger-soft);color:var(--danger)}.conn-pill.connecting{background:var(--surface-2);color:var(--text-muted)}.user-chip{display:inline-flex;align-items:center;gap:.5rem;border:0;background:transparent;cursor:pointer;color:var(--text);font-weight:700;padding:.2rem;border-radius:999px}.app-main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:1.25rem 1.25rem 2rem;display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-content:start}.app-footer{text-align:center;font-size:.8rem;color:var(--text-muted);padding:0 1rem 1.2rem}.tabbar{display:none}.return-bar{display:flex;justify-content:space-between;align-items:center;gap:.8rem;width:100%;border:0;border-radius:var(--radius);padding:.8rem 1rem;background:var(--surface-strong);color:var(--text-on-strong);text-align:left;font-weight:700;cursor:pointer;box-shadow:var(--shadow)}.return-bar.my-turn{background:linear-gradient(120deg,#b8862b,#e2b650);color:#1c1610;animation:fx-glow 1.8s ease-in-out infinite}.lobby-hero{display:grid;gap:.35rem;padding:1.4rem 1.5rem;border-radius:var(--radius-lg);background:var(--surface-strong);color:var(--text-on-strong);box-shadow:var(--shadow);position:relative;overflow:hidden}.lobby-hero h1{font-size:clamp(1.5rem,4.5vw,2.1rem)}.lobby-hero p{margin:0;opacity:.85}.lobby-hero .hero-tiles{position:absolute;right:1.2rem;top:50%;transform:translateY(-50%) rotate(-6deg);display:flex;gap:.35rem;opacity:.95}.hero-tile{display:grid;place-items:center;width:2.6rem;height:2.8rem;border-radius:8px;background:var(--tile-bg);box-shadow:0 3px 0 var(--tile-edge),0 8px 16px #00000040;color:var(--tile-ink);font-family:var(--font-display);font-weight:800;font-size:1.3rem}.table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}.table-card{display:grid;gap:.75rem;align-content:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.05rem;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease}.table-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.table-card.mine{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 30%,transparent),var(--shadow)}.tc-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.tc-title{font-size:1.2rem}.tc-meta{font-size:.85rem;color:var(--text-muted)}.seat-stack{display:grid;gap:.4rem;min-height:2.4rem}.seat-line{display:flex;align-items:center;gap:.55rem;font-weight:600}.seat-line .muted{font-weight:500;font-size:.82rem}.tc-actions{display:flex;gap:.5rem;flex-wrap:wrap}.tc-actions .btn{flex:1 1 auto}.people-list{display:grid;gap:.5rem}.person-row{display:flex;align-items:center;gap:.75rem;padding:.65rem .8rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.person-row .grow{flex:1;min-width:0}.person-name{font-weight:700}.chat-page{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}.chat{display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.chat-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.chat-head h2,.chat-head h3{font-size:1.05rem}.chat-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.45rem;min-height:140px}.chat.tall .chat-log{flex:none;min-height:0;height:min(62vh,620px)}.chat.compact .chat-log{max-height:240px}.chat-line{display:flex;gap:.5rem;align-items:flex-start;line-height:1.35}.chat-bubble{display:grid;gap:.1rem;max-width:85%;padding:.45rem .7rem;border-radius:14px 14px 14px 4px;background:var(--surface-2);word-break:break-word}.chat-line.mine{flex-direction:row-reverse}.chat-line.mine .chat-bubble{background:color-mix(in srgb,var(--primary) 14%,var(--surface));border-radius:14px 14px 4px}.chat-meta{font-size:.74rem;font-weight:700;color:var(--text-muted);display:flex;gap:.4rem}.chat-line.system{justify-content:center;font-size:.8rem;color:var(--text-muted);font-style:italic;text-align:center}.chat-day{align-self:center;font-size:.74rem;font-weight:700;color:var(--text-muted);padding:.15rem .6rem;border-radius:999px;background:var(--surface-2);margin:.3rem 0}.chat-compose{display:flex;gap:.45rem;padding:.6rem;border-top:1px solid var(--border);background:var(--surface)}.chat-compose input{flex:1;min-width:0;min-height:44px;border-radius:999px;border:1.5px solid var(--border-strong);background:var(--surface-2);padding:0 1rem}.chat-compose input:focus{outline:none;border-color:var(--primary)}.chat-send{width:44px;height:44px;padding:0;border-radius:50%}.game-page{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}.game-main{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;align-content:start;min-width:0}.game-side{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem;align-content:start;min-width:0}.game-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.game-toolbar .grow{flex:1;min-width:0}.game-title{font-family:var(--font-display);font-weight:800;font-size:1.1rem}.player-strip{display:grid;grid-template-columns:repeat(var(--players, 4),minmax(0,1fr));gap:.45rem}.player-card{display:grid;gap:.05rem;padding:.55rem .65rem .5rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);min-width:0;position:relative}.player-card.active{background:var(--surface-strong);color:var(--text-on-strong);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow)}.player-card.out{opacity:.5}.player-card.done{border-color:color-mix(in srgb,var(--success, #3f9b64) 60%,var(--border))}.player-card.done .pc-sub{color:var(--success, #3f9b64);font-weight:800}.game-over-reason{margin:-.2rem auto .6rem;max-width:34rem;text-align:center;font-size:.9rem;color:var(--text-muted)}.pc-name{display:flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-score{font-family:var(--font-display);font-weight:800;font-size:1.35rem;line-height:1.1}.pc-sub{font-size:.72rem;font-weight:700;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-card.active .pc-sub{color:var(--accent)}.pc-sub.off{color:var(--danger)}.pc-sub.urgent{color:#ff8a73}.pc-reaction{position:absolute;top:.2rem;right:.3rem;z-index:2;font-size:1.5rem;line-height:1;animation:pc-reaction-in 2.4s ease forwards;pointer-events:none}.pc-reaction.phrase{top:auto;left:.3rem;right:.3rem;bottom:.3rem;font-size:.74rem;font-weight:800;line-height:1.2;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.2rem .45rem;border-radius:999px;background:var(--surface);color:var(--text);border:1.5px solid color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:var(--shadow-sm);animation-duration:3.2s}@keyframes pc-reaction-in{0%{opacity:0;transform:scale(.6)}10%{opacity:1;transform:scale(1.08)}18%{transform:scale(1)}82%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.cup-totals{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem 1rem;padding:.35rem .75rem;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);font-size:.8rem;color:var(--text-muted)}.cup-totals-title{display:inline-flex;align-items:center;gap:.3rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.cup-totals-title .icon{width:14px;height:14px}.cup-total{display:inline-flex;align-items:baseline;gap:.3rem}.cup-total strong{color:var(--text);font-variant-numeric:tabular-nums}.cup-total-rank{font-weight:700}.board-frame{position:relative;border-radius:var(--radius-lg);overflow:hidden}.board-frame.review{width:min(100%,720px,max(320px,calc(100dvh - 9rem)));margin:0 auto}.game-stage{display:flex;flex-direction:column;gap:.75rem;min-width:0}.stage-col-right{display:contents}.blank-pickers{display:grid;gap:.4rem}.stage-col-left{display:contents}.stage-col-right>*{order:2}.stage-col-right>.player-strip{order:0}.stage-col-left>*{order:3}.stage-board{order:1;display:grid;gap:.4rem;min-width:0}.board-holder{position:relative;min-width:0}.board-frame.zoomable{width:100%;aspect-ratio:1 / 1;margin:0 auto;touch-action:pan-x pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.board-frame.zoomable.zoomed{overflow:auto;scrollbar-width:thin}.board-tools{display:flex;align-items:center;gap:.6rem;min-height:36px}.board-tools-main{flex:1;min-width:0}.board-tools .last-move-hint{text-align:left}.zoom-controls{display:flex;gap:.35rem;flex:none}.zoom-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-sm)}.zoom-btn .icon{width:19px;height:19px}.zoom-btn:disabled{opacity:.35;cursor:default}.stage-side{display:grid;gap:.75rem}.board{width:calc(100% * var(--zoom, 1));margin:0 auto;display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:2px;padding:7px;background:var(--board-bg);border:1px solid var(--board-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);container-type:inline-size;touch-action:manipulation}.cell{aspect-ratio:1 / 1;border-radius:3px;background:var(--cell-bg);position:relative;display:grid;place-items:center;cursor:pointer;min-width:0}.cell.tw{background:var(--prem-tw)}.cell.dw{background:var(--prem-dw)}.cell.tl{background:var(--prem-tl)}.cell.dl{background:var(--prem-dl)}.cell.star{background:var(--prem-star)}.prem{font-size:1.55cqw;font-weight:800;line-height:1;text-align:center;color:var(--prem-ink);letter-spacing:-.02em;pointer-events:none;-webkit-user-select:none;user-select:none}.cell.dw .prem,.cell.dl .prem,.cell.star .prem{color:var(--prem-ink-light)}.cell.drop-target{outline:3px solid var(--accent);outline-offset:-2px;z-index:2}.cell.can-swap .tile{box-shadow:0 0 0 2px #2fa36b,0 0 12px #2fa36b99}.tile{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border-radius:3px;background:var(--tile-bg);box-shadow:0 1px 0 var(--tile-edge);color:var(--tile-ink);-webkit-user-select:none;user-select:none}.tile .letter{font-family:var(--font-display);font-weight:800;font-size:3.4cqw;line-height:1;transform:translateY(-4%)}.tile .pts{position:absolute;right:6%;bottom:4%;font-size:1.45cqw;font-weight:800;color:var(--tile-pts);line-height:1}.tile .jolly-badge{position:absolute;left:6%;top:4%;font-size:1.3cqw;font-weight:800;color:#8b4513;line-height:1}.tile.draft{box-shadow:0 0 0 2px var(--primary),0 3px 8px #00000040;transform:translateY(-1px);cursor:grab;touch-action:none}.tile.draft.lifted{opacity:.25;box-shadow:none}.drag-ghost.board-ghost{inset:auto;top:0;left:0;border-radius:6px;cursor:grabbing;box-shadow:0 0 0 2px var(--primary),0 16px 30px #00000059}body.draft-dragging,body.draft-dragging *{cursor:grabbing!important}.tile.last-move{box-shadow:0 0 0 2px var(--last-glow),0 0 10px color-mix(in srgb,var(--last-glow) 55%,transparent);animation:last-move-pulse 1.4s ease-in-out 2}.last-move-hint{margin:0;text-align:center;font-size:.9rem;color:var(--text-muted)}.last-move-hint strong{color:var(--text)}.reaction-bar{display:flex;gap:.35rem;justify-content:center;flex-wrap:wrap}.reaction-btn{min-height:38px;min-width:42px;padding:0 .6rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;font-size:.9rem;cursor:pointer}.reaction-btn.emoji{font-size:1.2rem;padding:0 .45rem}.reaction-btn:hover{background:var(--surface-2)}.reaction-wrap{position:relative;min-width:0}.reaction-btn.picker-btn{display:inline-flex;align-items:center;gap:.1rem;padding:0 .55rem;font-size:1rem}.reaction-btn.picker-btn .icon{width:20px;height:20px}.reaction-btn.picker-btn.open{background:var(--primary);color:var(--primary-text);border-color:transparent}.reaction-btn.phrase{white-space:nowrap}.emoji-picker{position:fixed;z-index:55;width:min(440px,calc(100vw - 1.2rem));overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.35rem;padding:.6rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:fx-fade-in .16s ease-out}.emoji-tabs{display:flex;gap:.15rem;overflow-x:auto;scrollbar-width:none}.emoji-tabs::-webkit-scrollbar{display:none}.emoji-tabs button{flex:none;width:38px;height:36px;border:0;border-radius:10px;background:transparent;font-size:1.25rem;cursor:pointer;opacity:.6}.emoji-tabs button.active{background:var(--surface-2);opacity:1;box-shadow:inset 0 -2px 0 var(--accent)}.emoji-tabs .emoji-close{margin-left:auto;display:grid;place-items:center;color:var(--text-muted);opacity:1}.emoji-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:0 .2rem}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:.1rem;max-height:min(270px,42vh);overflow-y:auto;overscroll-behavior:contain}.emoji-grid.cooling{opacity:.45}.emoji-cell{height:42px;border:0;border-radius:10px;background:transparent;font-size:1.55rem;line-height:1;cursor:pointer;touch-action:manipulation}.emoji-cell:hover,.emoji-cell:focus-visible{background:var(--surface-2)}.emoji-cell:active{transform:scale(1.2)}.emoji-empty{grid-column:1 / -1;padding:1rem;text-align:center;color:var(--text-muted)}.tile.ghost{opacity:.62;outline:2px dashed color-mix(in srgb,var(--accent) 80%,white);outline-offset:-2px;animation:ghost-pulse 1.4s ease-in-out infinite}@keyframes ghost-pulse{0%,to{opacity:.5}50%{opacity:.8}}.live-hint{position:absolute;top:.55rem;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .7rem;border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 88%,transparent);color:var(--text-on-strong);font-size:.78rem;font-weight:800;pointer-events:none;z-index:3;white-space:nowrap}.live-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 #4ade8099;animation:live-ping 1.4s ease-out infinite}@keyframes live-ping{0%{box-shadow:0 0 #4ade8099}to{box-shadow:0 0 0 8px #4ade8000}}.reaction-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.reaction-float{position:absolute;bottom:12%;width:max-content;translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:.15rem;animation:reaction-rise 2.6s cubic-bezier(.2,.8,.3,1) forwards}.reaction-float.phrase{animation-duration:3.2s}.phrase-bubble{position:relative;white-space:nowrap;padding:.45rem .95rem;border-radius:999px;background:var(--surface);color:var(--text);font-weight:800;font-size:clamp(.95rem,4.2cqw,1.35rem);box-shadow:0 10px 26px #00000052;border:2px solid color-mix(in srgb,var(--accent) 55%,transparent)}.phrase-bubble:after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;background:var(--surface);border-right:2px solid color-mix(in srgb,var(--accent) 55%,transparent);border-bottom:2px solid color-mix(in srgb,var(--accent) 55%,transparent);transform:translate(-50%) rotate(45deg)}.reaction-float .emoji{font-size:clamp(2rem,8cqw,3.2rem);filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.reaction-float .who{font-size:.72rem;font-weight:800;padding:.1rem .5rem;border-radius:999px;background:var(--surface-strong);color:var(--text-on-strong)}.rack-dock{display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem}.rack{display:flex;justify-content:center;gap:.4rem;padding:.65rem .5rem;border-radius:var(--radius);background:var(--rack-bg);box-shadow:var(--rack-inset);flex-wrap:nowrap}.rack-tile{position:relative;flex:0 1 auto;min-width:0;width:clamp(38px,11.5vw,56px);height:clamp(42px,12.5vw,60px);border-radius:9px;border:0;padding:0;display:grid;place-items:center;background:var(--tile-bg);box-shadow:0 2px 0 var(--tile-edge),0 6px 12px #0000002e;color:var(--tile-ink);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:transform .12s ease}.rack-tile .letter{font-family:var(--font-display);font-weight:800;font-size:clamp(17px,5.2vw,25px);line-height:1}.rack-tile .pts{position:absolute;right:5px;bottom:3px;font-size:10px;font-weight:800;color:var(--tile-pts)}.rack-tile .keyhint{position:absolute;left:5px;top:3px;font-size:9px;font-weight:700;opacity:.4}.rack-tile .jolly-badge{position:absolute;left:5px;top:3px;font-size:9px;font-weight:800;color:#8b4513}.rack-tile.blank-rack{background:var(--blank-bg)}.rack-tile.selected{transform:translateY(-6px);box-shadow:0 0 0 3px var(--accent),0 10px 18px #00000040}.rack-tile.used{opacity:.22}.rack-tile:disabled{cursor:default}.drag-ghost{position:fixed;top:0;left:0;z-index:95;pointer-events:none;transform:translate(-200px,-200px);will-change:transform;box-shadow:0 16px 30px #00000059}.action-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto;gap:.5rem}@media(max-width:360px){.action-row{gap:.35rem}.action-row .btn{padding:0 .3rem;font-size:.88rem}.rack{gap:.25rem;padding:.55rem .35rem}}.action-row .btn{min-height:50px;border-radius:var(--radius);padding:0 .6rem}.more-menu{position:relative}.menu-pop{position:absolute;right:0;bottom:calc(100% + 8px);z-index:30;min-width:210px;display:grid;gap:2px;padding:6px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.menu-pop.down{bottom:auto;top:calc(100% + 8px)}.menu-item{display:flex;align-items:center;gap:.55rem;min-height:42px;padding:0 .75rem;border:0;border-radius:10px;background:transparent;color:var(--text);font-weight:600;text-align:left;cursor:pointer}.menu-item:hover:not(:disabled){background:var(--surface-2)}.menu-settings{display:grid;gap:.45rem;width:min(300px,calc(100vw - 2rem));padding:.45rem .55rem .65rem;margin-bottom:4px;border-bottom:1px solid var(--border)}.menu-settings-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.menu-field{display:grid;grid-template-columns:6.6rem minmax(0,1fr);align-items:center;gap:.6rem;font-size:.88rem;font-weight:700}.menu-field select{width:100%;min-width:0;min-height:38px;padding:.35rem .6rem;border-radius:10px;border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:600;cursor:pointer}.menu-field select:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}.menu-item.danger{color:var(--danger)}.menu-item:disabled{opacity:.4;cursor:not-allowed}.hint{margin:0;padding:.6rem .8rem;border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 16%,var(--surface));font-size:.9rem;text-align:center}.blank-picker{display:flex;align-items:center;justify-content:center;gap:.5rem;flex-wrap:wrap}.blank-picker select{min-height:40px;border-radius:10px;border:1.5px solid var(--border-strong);background:var(--surface);padding:0 .6rem}.accept-box{display:grid;gap:.5rem;justify-items:center;text-align:center;padding:.8rem;border-radius:var(--radius);background:var(--surface);border:1px dashed var(--border-strong)}.accept-box p{margin:0}.clock-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.timer{font-family:var(--font-display);font-weight:800;font-size:2.1rem;line-height:1}.timer.urgent{color:var(--danger);animation:timer-pulse 1s ease-in-out infinite}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0a080666;animation:fx-fade-in .2s ease}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:61;max-height:82dvh;display:flex;flex-direction:column;border-radius:22px 22px 0 0;background:var(--surface);box-shadow:var(--shadow-lg);padding-bottom:env(safe-area-inset-bottom);animation:sheet-up .28s cubic-bezier(.2,.9,.3,1)}.sheet .chat{border:0;box-shadow:none;border-radius:22px 22px 0 0;flex:1;min-height:0}.sheet .chat-log{min-height:40dvh}.sheet-grip{width:44px;height:5px;border-radius:99px;background:var(--border-strong);margin:8px auto 0;flex:none}.waiting-room{display:grid;gap:1rem}.seat-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:.6rem}.seat-slot{display:flex;align-items:center;gap:.6rem;padding:.7rem .8rem;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);min-height:58px}.seat-slot.empty{border-style:dashed;color:var(--text-muted);justify-content:center}.seat-slot .grow{flex:1;min-width:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem}.game-over-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:1rem;background:#0a080673;animation:fx-fade-in .3s ease both}.game-over-card{width:min(440px,100%);display:grid;gap:.8rem;padding:1.4rem 1.3rem;border-radius:24px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);text-align:center;animation:fx-pop-in .5s cubic-bezier(.22,1.2,.36,1) both}.game-over-card.win{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent),var(--shadow-lg)}.game-over-kicker{margin:0;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--accent-text)}.game-over-card h2{font-size:1.8rem}.score-list{display:grid;gap:.4rem;text-align:left}.score-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border-radius:12px;background:var(--surface-2)}.score-row .grow{flex:1;min-width:0;font-weight:700}.score-row strong{font-family:var(--font-display);font-size:1.15rem}.score-row.winner{background:color-mix(in srgb,var(--accent) 22%,var(--surface))}.score-rank{width:1.6rem;text-align:center;font-weight:800;color:var(--text-muted)}.profile-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.profile-head .grow{flex:1;min-width:180px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:.6rem}.stat{display:grid;gap:.15rem;padding:.75rem .85rem;border-radius:var(--radius);background:var(--surface-2)}.stat .label{font-size:.78rem}.stat strong{font-family:var(--font-display);font-size:1.3rem;word-break:break-word}.history-list{display:grid;gap:.45rem}.history-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.7rem .85rem;border-radius:var(--radius);background:var(--surface-2);border:1px solid transparent;text-align:left;color:var(--text);cursor:pointer}.history-item:hover{border-color:var(--border-strong)}.history-item .grow{flex:1;min-width:0}.result-pill{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:10px;font-weight:800;flex:none;background:var(--surface);color:var(--text-muted)}.result-pill.win{background:var(--ok-soft);color:var(--ok)}.split-2{display:grid;gap:1rem}.lb-list{display:grid;gap:.4rem}.lb-row{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.lb-row .grow{flex:1;min-width:0}.lb-rank{width:2rem;font-family:var(--font-display);font-weight:800;font-size:1.15rem;text-align:center;color:var(--text-muted)}.lb-row.top-1 .lb-rank{color:#c9962c}.lb-row.top-2 .lb-rank{color:#8f9aa3}.lb-row.top-3 .lb-rank{color:#b0714a}.lb-row strong{font-family:var(--font-display);font-size:1.1rem}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem}.theme-card{display:grid;gap:.6rem;padding:.75rem;border-radius:var(--radius-lg);border:2px solid var(--border);background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.theme-card.active{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}.theme-preview{height:92px;border-radius:12px;padding:10px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px;overflow:hidden}.theme-preview .tp-board{height:100%;border-radius:8px;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:4px}.theme-preview .tp-board span{border-radius:2px}.theme-preview .tp-tile{width:26px;height:28px;border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:14px}.theme-card h3{font-size:1.05rem}.tournament-teaser{display:grid;gap:.8rem;justify-items:start;padding:2rem 1.6rem;border-radius:var(--radius-lg);background:var(--surface-strong);color:var(--text-on-strong);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.tournament-teaser h1{font-size:clamp(1.9rem,6vw,2.8rem)}.tournament-teaser p{margin:0;max-width:34rem;opacity:.88}.teaser-steps{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.teaser-step{display:grid;gap:.25rem;padding:.9rem 1rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.teaser-step strong{font-family:var(--font-display)}.champion-name{--champ: linear-gradient(90deg, #7a4a08, #b27a14, #d9a02c, #b27a14, #7a4a08);font-weight:800;background:var(--champ);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 3s linear infinite}:root[data-theme=salon] .champion-name,.cup-hero .champion-name,.lobby-hero .champion-name,.player-card.active .champion-name,.return-bar .champion-name,.toast .champion-name,.tournament-teaser .champion-name,.reaction-float .champion-name{--champ: linear-gradient(90deg, #b8862b, #f7d774, #fff3c4, #f7d774, #b8862b)}.cup-hero{display:grid;gap:.6rem;padding:1.6rem 1.5rem;border-radius:var(--radius-lg);background:var(--surface-strong);color:var(--text-on-strong);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.cup-hero:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(247,215,116,.28),transparent 70%);pointer-events:none}.cup-hero h1{font-size:clamp(1.8rem,6vw,2.6rem)}.cup-hero p{margin:0}.cup-meta{font-size:.9rem;opacity:.85}.cup-focus{display:grid;gap:.55rem;margin-top:.4rem;padding:1rem;border-radius:var(--radius);background:#ffffff14;border:1px solid rgba(255,255,255,.14)}:root[data-theme=fresh] .cup-focus{background:#ffffff14}.cup-progress{height:10px;border-radius:999px;background:#ffffff29;overflow:hidden}.cup-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b8862b,#f7d774);transition:width .4s ease}.champion-showcase{display:grid;justify-items:center;gap:.3rem;margin-top:.4rem;padding:1.2rem 1rem;border-radius:var(--radius);background:#0000002e;text-align:center}.champion-big{font-family:var(--font-display);font-size:clamp(2rem,8vw,3.2rem);line-height:1.1}.icon.crown-big{width:3rem;height:3rem;color:#f7d774;filter:drop-shadow(0 4px 10px rgba(247,215,116,.45))}.champion{display:inline-flex;align-items:center;gap:.25rem}.icon.crown{color:#d4a84b;width:1em;height:1em}.cup-groups{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.card.mine{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 25%,transparent),var(--shadow)}.cup-table{width:100%;border-collapse:collapse;font-size:.92rem}.cup-table th,.cup-table td{padding:.45rem .4rem;border-bottom:1px solid var(--border);text-align:left}.cup-table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.cup-table .num{text-align:right;white-space:nowrap}.cup-table .rank{width:1.6rem;font-weight:800;color:var(--text-muted)}@media(max-width:420px){.cup-table{font-size:.85rem}.cup-table th,.cup-table td{padding:.4rem .22rem}.cup-table .avatar{display:none}.cup-table td:nth-child(2){max-width:7.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cup-table td:nth-child(2) .seat-line{display:inline}}.cup-table tr.qualify td{background:color-mix(in srgb,var(--accent) 16%,transparent)}.cup-table tr.possible td{background:color-mix(in srgb,var(--accent) 7%,transparent)}.cup-table td.reduced sup{color:var(--accent);font-weight:800;margin-left:1px}.cup-table tr.me td:nth-child(2){font-weight:800}.match-row{display:flex;align-items:center;gap:.8rem;padding:.75rem .9rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);flex-wrap:wrap}.match-row.mine{border-color:var(--primary)}.match-row .grow{flex:1;min-width:200px}.match-time{font-family:var(--font-display);font-weight:800;font-size:1.15rem;min-width:3.4rem}.match-players{display:flex;flex-wrap:wrap;gap:.35rem .8rem;margin-top:.3rem;font-size:.88rem}.match-player{display:inline-flex;align-items:center;gap:.3rem}.match-player.absent{opacity:.55}.match-player strong{font-family:var(--font-display)}.cup-card{gap:.6rem}.cup-card-main{display:flex;align-items:center;gap:.75rem;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:0;flex:1;min-width:0}.cup-table-card{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.auth-page{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:1.5rem 1rem}.auth-wrap{width:min(980px,100%);display:grid;gap:1.5rem;align-items:center}.auth-hero{display:grid;gap:1rem}.auth-hero h1{font-size:clamp(2.3rem,7vw,3.6rem);letter-spacing:-.02em}.auth-hero p{margin:0;font-size:1.1rem;color:var(--text-muted);max-width:30rem}.auth-tiles{display:flex;gap:.4rem;flex-wrap:wrap}.auth-card{display:grid;gap:.9rem;width:100%;max-width:420px;justify-self:center}.demo-box{display:grid;gap:.5rem;padding:.75rem;border-radius:var(--radius);background:var(--surface-2);font-size:.85rem}.admin-page{display:grid;gap:1rem}.admin-create{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;align-items:end;margin-bottom:1rem}.admin-check{display:flex;align-items:center;gap:.4rem;font-weight:600;min-height:46px}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{padding:.5rem .55rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.admin-table th{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.admin-row-actions{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}.admin-row-actions input,.admin-table input{min-height:36px;border-radius:8px;border:1.5px solid var(--border-strong);background:var(--surface);padding:0 .5rem}.fx-turn{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;pointer-events:none;animation:fx-fade-in .25s ease both}.fx-turn.has-action{pointer-events:auto;background:#0a080659}.fx-turn-card{display:grid;justify-items:center;gap:.75rem;min-width:min(290px,88vw);padding:1.2rem 1.7rem;border-radius:22px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg),0 0 0 5px color-mix(in srgb,var(--accent) 30%,transparent);animation:fx-slide-up .7s cubic-bezier(.22,1.15,.36,1) both;text-align:center;pointer-events:auto}.fx-turn-card strong{font-family:var(--font-display);font-size:clamp(1.5rem,5vw,2.1rem);font-weight:800;line-height:1.15}.fx-turn-card p{margin:0}.vote-overlay .vote-card,.draw-overlay .draw-card{max-width:min(420px,92vw);gap:.85rem}.vote-kicker{margin:0;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--text-muted)}.vote-actions{display:flex;gap:.5rem;justify-content:center;width:100%;flex-wrap:wrap}.draw-list{display:grid;gap:.45rem;width:100%}.draw-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.45rem .7rem;border-radius:10px;background:var(--surface-2);animation:fx-slide-up .55s cubic-bezier(.22,1.15,.36,1) both}.draw-letter{display:grid;place-items:center;width:2rem;height:2.1rem;border-radius:7px;background:var(--tile-bg);box-shadow:0 2px 0 var(--tile-edge);color:var(--tile-ink);font-family:var(--font-display);font-size:1.1rem;font-weight:800}.fx-confetti{position:fixed;top:0;right:0;bottom:0;left:0;z-index:75;width:100%;height:100%;pointer-events:none}@keyframes fx-fade-in{0%{opacity:0}to{opacity:1}}@keyframes fx-slide-up{0%{opacity:0;transform:translateY(48px) scale(.94)}65%{opacity:1;transform:translateY(-6px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fx-pop-in{0%{opacity:0;transform:translateY(24px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fx-glow{0%,to{box-shadow:0 0 #e2b65073}50%{box-shadow:0 0 0 6px #e2b65000}}@keyframes last-move-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes reaction-rise{0%{opacity:0;transform:translateY(20px) scale(.6)}15%{opacity:1;transform:translateY(0) scale(1.1)}70%{opacity:1}to{opacity:0;transform:translateY(-160px) scale(1)}}@keyframes shimmer{to{background-position:200% center}}@media(min-width:900px){.split-2{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.game-page{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.game-side{position:sticky;top:5rem}.game-page.in-game{grid-template-columns:minmax(0,1fr)}.game-stage{display:grid;grid-template-columns:minmax(0,1fr) clamp(300px,29vw,400px);align-items:start;gap:1.25rem}.stage-board{order:0;position:sticky;top:4.75rem;grid-column:1;grid-row:1 / span 2}.stage-col-right{grid-column:2;grid-row:1}.stage-col-left{grid-column:2;grid-row:2;display:flex;flex-direction:column;gap:.7rem;min-width:0}.stage-board .board-frame.zoomable{width:min(100%,max(360px,calc(100dvh - 13rem)))}.stage-board .board-tools{width:min(100%,max(360px,calc(100dvh - 13rem)));margin:0 auto}.stage-col-right{display:flex;flex-direction:column;gap:.75rem;min-width:0}.stage-col-right .player-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-wrap{grid-template-columns:1.1fr 1fr}.chat-page{grid-template-columns:minmax(0,1fr) 280px;align-items:start}}@media(max-width:899px){.header-nav,.user-chip .user-name{display:none}.app-header-inner{padding:.5rem .9rem;padding-top:calc(.5rem + env(safe-area-inset-top))}.app-main{padding:.9rem .8rem calc(5.6rem + env(safe-area-inset-bottom))}.app-shell.on-table .app-main{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.app-footer{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}.app-shell.on-table .app-footer{display:none}.tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:50;padding:.35rem .4rem calc(.35rem + env(safe-area-inset-bottom));background:var(--header-bg);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--border)}.app-shell.on-table .tabbar{display:none}.tab{display:grid;justify-items:center;gap:.1rem;padding:.35rem .2rem;border:0;border-radius:12px;background:transparent;color:var(--text-muted);font-size:.7rem;font-weight:700;cursor:pointer;position:relative}.tab .icon{width:1.45rem;height:1.45rem}.tab.active{color:var(--primary)}:root[data-theme=salon] .tab.active{color:var(--accent)}.tab .badge{position:absolute;top:.1rem;left:calc(50% + .4rem)}.board{padding:5px;gap:1.5px;border-radius:14px}.game-page{gap:.6rem}.game-main{gap:.55rem}.player-strip{gap:.35rem}.player-card{padding:.45rem .5rem .4rem}.pc-score{font-size:1.15rem}.rack-dock{position:sticky;bottom:0;z-index:20;margin:0 -.8rem;padding:.5rem .8rem calc(.6rem + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent 0%,var(--bg) 22%)}.action-row .btn{min-height:48px;font-size:.95rem}.rack-tile .keyhint{display:none}.chat.tall .chat-log{height:calc(100dvh - 26rem);min-height:220px}.reaction-bar{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;margin:0 -.8rem;padding:0 .8rem}.reaction-bar::-webkit-scrollbar{display:none}.reaction-btn{flex:none}.desktop-only{display:none!important}.lobby-hero .hero-tiles{display:none}}@media(min-width:900px){.mobile-only{display:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.cup-hero .chip{background:#ffffff29;color:#fffaf0;border-color:transparent}.cup-hero .chip.live{background:#7fd1a838;color:#d8f5e6}.cup-hero .chip.wait{background:#f7d77438;color:#fbe7a6}.cup-hero .btn:not(.btn-secondary):not(.btn-ghost){background:linear-gradient(180deg,#f3d27a,#d4a84b);color:#2a2114}.cup-hero .btn:not(.btn-secondary):not(.btn-ghost):hover:not(:disabled){background:linear-gradient(180deg,#f7dc8f,#ddb358)}button:not(.rack-tile),a,[role=button],.cell{touch-action:manipulation}.rack-tile.lifted{opacity:.18;transform:scale(.9);box-shadow:none}.rack.arranging .rack-tile:not(.lifted){transition:transform .12s ease}.floating-error{position:fixed;top:calc(4.4rem + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:86;width:min(560px,calc(100vw - 1.6rem));background:var(--surface);box-shadow:var(--shadow-lg);animation:fx-fade-in .2s ease-out}.reaction-btn{user-select:none;-webkit-user-select:none;transition:transform .12s ease,opacity .2s ease}.reaction-btn.pressed{transform:scale(1.22)}.reaction-btn.cooling{opacity:.4;cursor:default}@media(max-width:899px)and (orientation:landscape)and (max-height:520px){.board-frame.zoomable{width:min(100%,calc(100dvh - 4.5rem))}.board-tools{width:min(100%,calc(100dvh - 4.5rem));margin:0 auto}.rack-dock{position:static;margin:0;padding:0;background:none}}@media(min-width:1200px){.app-shell:has(.game-page.in-game){height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr)}.app-shell:has(.game-page.in-game) .app-footer{display:none}.app-main:has(.game-page.in-game){max-width:none;width:100%;height:100%;min-height:0;padding:.7rem 1.1rem .5rem}.game-page.in-game{height:100%;min-height:0;overflow:hidden}.game-page.in-game .game-main{height:100%;min-height:0;grid-template-rows:auto minmax(0,1fr)}.game-page.in-game{--desk-chrome: 10.5rem;--desk-scale: 1;--side-l: clamp(220px, 15vw, 290px);--side-r: clamp(320px, 28vw, 480px);--desk-gap: 1rem;--desk-tools: 2.9rem;--desk-avail: calc(100vw - var(--side-l) - var(--side-r) - 2 * var(--desk-gap) - 2.4rem);--board-size: min(calc((100dvh - var(--desk-chrome)) * var(--desk-scale)), var(--desk-avail))}.game-page.in-game.desk-board-s{--desk-scale: .72}.game-page.in-game.desk-board-m{--desk-scale: .86}.game-page.in-game.desk-board-xl{--desk-chrome: 7.4rem;--desk-tools: 0rem}.game-page.in-game.desk-board-xl .stage-board .board-tools{position:absolute;top:5px;right:3.25rem;z-index:6;width:auto;min-height:0;margin:0}.game-page.in-game.desk-board-xl .stage-board .board-tools .board-tools-main{display:none}.game-page.in-game.desk-fokusz.desk-board-xl .stage-board .board-tools{right:6.5rem}.game-page.in-game .game-main{position:relative}.game-stage{align-self:center;justify-content:center;align-content:center;gap:var(--desk-gap);height:auto;min-height:0}.stage-board{position:static;min-height:0;width:var(--board-size)}.stage-board .board-frame.zoomable,.stage-board .board-tools{width:var(--board-size);margin:0}.stage-col-left,.stage-col-right{min-height:0;overflow:hidden}.stage-col-left{display:flex;flex-direction:column;gap:.6rem}.stage-col-left .chat{flex:1 1 auto;min-height:0}.stage-col-left .chat.compact .chat-log{max-height:none;min-height:0}.stage-col-left .reaction-bar{flex-wrap:wrap;overflow:visible}.stage-col-right{overflow-y:auto;overflow-x:hidden;padding-right:.2rem}.stage-col-right .rack-dock{position:relative}.stage-col-right .blank-pickers{position:absolute;left:50%;bottom:calc(100% + .5rem);transform:translate(-50%);z-index:30;width:max-content;max-width:100%;padding:.55rem .8rem;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.desk-klasszikus .stage-col-right .rack,.desk-jobbra .stage-col-right .rack{container-type:inline-size;justify-content:center;gap:.35rem;padding:.6rem .5rem}.desk-klasszikus .stage-col-right .rack-tile,.desk-jobbra .stage-col-right .rack-tile{flex:0 0 auto;width:min(62px,calc((100cqw - 2.1rem) / 7));height:min(68px,calc((100cqw - 2.1rem) / 7 * 1.1))}.desk-klasszikus .stage-col-right .rack-tile .letter,.desk-jobbra .stage-col-right .rack-tile .letter{font-size:min(28px,calc((100cqw - 2.1rem) / 7 * .46))}.desk-klasszikus .stage-col-right .rack-tile .pts,.desk-jobbra .stage-col-right .rack-tile .pts{font-size:min(12px,calc((100cqw - 2.1rem) / 7 * .2))}.desk-chat-head{display:none}.desk-klasszikus .game-stage{display:grid;grid-template-columns:var(--side-l) var(--board-size) var(--side-r);grid-template-rows:calc(var(--board-size) + var(--desk-tools));align-items:stretch}.desk-klasszikus .stage-col-left{grid-column:1;grid-row:1}.desk-klasszikus .stage-board{grid-column:2;grid-row:1}.desk-klasszikus .stage-col-right{grid-column:3;grid-row:1}.game-page.in-game.desk-jobbra{--desk-avail: calc(100vw - var(--side-r) - var(--desk-gap) - 2.4rem);--side-r: clamp(340px, 28vw, 480px)}.desk-jobbra .game-stage{display:grid;grid-template-columns:var(--board-size) var(--side-r);grid-template-rows:auto minmax(0,1fr);height:calc(var(--board-size) + var(--desk-tools));align-items:stretch}.desk-jobbra .stage-board{grid-column:1;grid-row:1 / span 2}.desk-jobbra .stage-col-right{grid-column:2;grid-row:1;overflow:visible}.desk-jobbra .stage-col-left{grid-column:2;grid-row:2}.game-page.in-game.desk-fokusz{--desk-chrome: 25.5rem;--desk-avail: calc(100vw - 4rem) }.game-page.in-game.desk-fokusz.desk-board-xl{--desk-chrome: 22.6rem}.desk-fokusz .game-stage{display:flex;flex-direction:column;align-items:center;align-self:start;gap:.5rem}.desk-fokusz .stage-col-right{display:contents}.desk-fokusz .stage-col-right>*{width:var(--board-size);max-width:100%}.desk-fokusz .stage-col-right>.player-strip{order:0}.desk-fokusz .stage-board{order:1}.desk-fokusz .stage-col-right>:not(.player-strip){order:2}.desk-fokusz .stage-col-right .rack-dock{display:grid;grid-template-columns:minmax(0,1fr);gap:.55rem;padding:0;background:none;border:0;box-shadow:none}.desk-fokusz .stage-col-right .rack{justify-content:center;gap:calc(var(--rack-base, var(--board-size)) / 110);padding:calc(var(--rack-base, var(--board-size)) / 90) calc(var(--rack-base, var(--board-size)) / 60)}.desk-fokusz .stage-col-right .rack-tile{flex:0 0 auto;width:min(calc(var(--rack-base, var(--board-size)) / 8.6),86px);height:min(calc(var(--rack-base, var(--board-size)) / 8),92px)}.desk-fokusz .stage-col-right .rack-tile .letter{font-size:min(calc(var(--rack-base, var(--board-size)) / 21),38px)}.desk-fokusz .stage-col-right .rack-tile .pts{font-size:min(calc(var(--rack-base, var(--board-size)) / 58),14px)}.desk-fokusz .stage-col-right .action-row{width:100%}.desk-fokusz .stage-col-right>.move-line{display:none}.desk-fokusz .player-strip .player-card{padding:.35rem .7rem;min-height:0;gap:.55rem}.desk-fokusz .player-strip .pc-avatar{transform:scale(.8);margin:-.25rem}.desk-fokusz .player-strip .pc-body{display:grid;grid-template-columns:auto auto;grid-template-areas:"name score" "sub score";align-items:center;column-gap:.7rem;row-gap:0}.desk-fokusz .player-strip .pc-name{grid-area:name}.desk-fokusz .player-strip .pc-score{grid-area:score;font-size:1.5rem;line-height:1}.desk-fokusz .player-strip .pc-sub{grid-area:sub}.desk-fokusz .stage-col-left{display:none}.desk-fokusz.desk-chat-open .stage-col-left{display:flex;position:fixed;top:8.2rem;left:1rem;bottom:1rem;width:var(--side-l);z-index:40;padding:.8rem;border-radius:18px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.desk-fokusz.desk-chat-open .desk-chat-head{display:flex}}.seat-slot.has-settings{flex-wrap:wrap;align-content:flex-start}.bot-settings{flex:1 0 100%;display:grid;gap:.45rem;margin-top:.15rem;padding-top:.6rem;border-top:1px solid var(--border);container-type:inline-size}.bot-row{display:grid;grid-template-columns:5.9rem minmax(0,1fr);align-items:center;gap:.5rem;min-width:0}.bot-label{font-size:.82rem;font-weight:700;color:var(--text-muted);white-space:nowrap}.bot-row select{width:100%;min-width:0;min-height:36px;padding:.3rem .55rem;border-radius:10px;border:1.5px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:600;cursor:pointer}.bot-row select:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}.bot-row select:disabled,.bot-row input:disabled{opacity:.55;cursor:not-allowed}.bot-speed{display:grid;grid-template-columns:minmax(0,1fr) 3.1rem;align-items:center;gap:.45rem;min-width:0}.bot-speed input[type=range]{width:100%;min-width:0;margin:0;accent-color:var(--primary);cursor:pointer}.bot-speed strong{font-size:.85rem;text-align:right;white-space:nowrap}@container (max-width: 220px){.bot-row{grid-template-columns:minmax(0,1fr);gap:.2rem}}.puzzle-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:.2rem 0 .7rem}.puzzle-tab{display:grid;gap:.1rem;justify-items:start;min-width:0;padding:.5rem .7rem;border-radius:12px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);text-align:left;cursor:pointer}.puzzle-tab .small{color:var(--text-muted);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.puzzle-tab.solved .small{color:var(--success, #3f9b64)}.puzzle-tab.active{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.league-row.clickable{width:100%;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background-color:transparent}.league-row.clickable:hover{box-shadow:inset 0 0 0 1.5px var(--border-strong)}.league-row.viewing{box-shadow:inset 0 0 0 2px var(--primary)}.league-words{display:block;font-size:.78rem;font-weight:700;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.puzzle-viewing{margin:0;font-size:.85rem;color:var(--text-muted)}@media(max-width:420px){.puzzle-tab{padding:.45rem .5rem}.puzzle-tab strong{font-size:.85rem}}.card-flat.casual-lock{border-left:4px solid var(--accent);font-size:.92rem;line-height:1.45}:root,:root[data-theme=classic]{--tile-grad: linear-gradient(180deg, #fffaf0 0%, #f4e6c9 100%);--tile-edge-3d: rgba(170, 138, 88, .6);--tile-shadow: rgba(40, 25, 10, .35);--draft-grad: linear-gradient(180deg, #fff6d6 0%, #f5d98f 100%);--gold: #c99a2e;--gold-light: #f2d38a;--gold-grad: linear-gradient(180deg, #f7dc8f 0%, #ddb358 100%);--gold-edge: #a47a22;--gold-ink: #3a2806;--board-felt: radial-gradient(120% 120% at 30% 20%, #25684f 0%, #174a37 55%, #0f3326 100%);--board-inset: inset 0 0 0 1px rgba(255, 255, 255, .06), inset 0 18px 40px rgba(0, 0, 0, .25);--cell-inset: inset 0 1px 2px rgba(0, 0, 0, .28);--ring-track: rgba(255, 255, 255, .18);--celebrate-bg: radial-gradient(100% 80% at 50% 45%, rgba(47, 122, 92, .72) 0%, rgba(15, 51, 38, .82) 60%, rgba(8, 26, 19, .9) 100%)}:root[data-theme=classic]{--cell-bg: #256a50;--prem-tw: #9b3b34;--prem-dw: #c97b6b;--prem-tl: #34558f;--prem-dl: #86a1c8;--prem-star: #c99a2e;--prem-ink-light: #fff7ea}:root[data-theme=salon]{--tile-grad: linear-gradient(180deg, #fbf5e6 0%, #e6d4a8 100%);--tile-edge-3d: rgba(140, 110, 60, .65);--tile-shadow: rgba(0, 0, 0, .5);--draft-grad: linear-gradient(180deg, #fff1c7 0%, #e9c774 100%);--gold: #d9b25f;--gold-light: #f0d494;--gold-grad: linear-gradient(180deg, #f3d898 0%, #cfa24c 100%);--gold-edge: #8a6a2a;--gold-ink: #231a08;--board-felt: radial-gradient(120% 120% at 30% 20%, #145441 0%, #0b3326 60%, #061d16 100%);--board-inset: inset 0 0 0 1px rgba(227, 192, 122, .12), inset 0 18px 40px rgba(0, 0, 0, .4);--cell-inset: inset 0 1px 2px rgba(0, 0, 0, .45);--ring-track: rgba(255, 255, 255, .14);--celebrate-bg: radial-gradient(100% 80% at 50% 45%, rgba(45, 38, 22, .8) 0%, rgba(14, 18, 21, .9) 70%)}:root[data-theme=fresh]{--tile-grad: linear-gradient(180deg, #ffffff 0%, #eef0f8 100%);--tile-edge-3d: rgba(120, 126, 170, .45);--tile-shadow: rgba(27, 29, 42, .22);--draft-grad: linear-gradient(180deg, #fff6d9 0%, #ffd873 100%);--gold: #f5a524;--gold-light: #ffd873;--gold-grad: linear-gradient(180deg, #ffe08a 0%, #ffb938 100%);--gold-edge: #c98000;--gold-ink: #3a2500;--board-felt: linear-gradient(160deg, #f7f8fd 0%, #e9ebf7 100%);--board-inset: inset 0 0 0 1px rgba(27, 29, 42, .06);--cell-inset: inset 0 1px 1px rgba(27, 29, 42, .08);--ring-track: rgba(27, 29, 42, .12);--celebrate-bg: radial-gradient(100% 80% at 50% 45%, rgba(61, 75, 214, .55) 0%, rgba(27, 29, 42, .8) 70%)}.board{background:var(--board-felt);box-shadow:var(--board-inset),var(--shadow);border:0;position:relative}.cell{box-shadow:var(--cell-inset);border-radius:.55cqw}.prem{font-size:1.32cqw;letter-spacing:.02em;opacity:.96}.prem-star{width:3.5cqw;height:3.5cqw;fill:#fff4d6;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));pointer-events:none}.tile{border-radius:.9cqw;background:var(--tile-grad);box-shadow:inset 0 1px #ffffffd9,inset 0 -.38cqw 0 var(--tile-edge-3d),0 .28cqw .6cqw var(--tile-shadow)}.tile .letter{font-weight:900;letter-spacing:-.02em}.tile.blank{background:var(--blank-bg)}.tile.draft{background:var(--draft-grad);outline:2px solid var(--gold);outline-offset:-2px;transform:none;box-shadow:inset 0 1px #ffffffe6,inset 0 -.38cqw #aa782880,0 .7cqw 1.2cqw #00000059;animation:kz-draft-in .26s cubic-bezier(.2,.9,.3,1.4)}.tile.last-move{box-shadow:inset 0 1px #ffffffd9,inset 0 -.38cqw 0 var(--tile-edge-3d),0 0 0 2px var(--gold-light),0 0 1.8cqw color-mix(in srgb,var(--gold-light) 70%,transparent);animation:none}.tile.ghost{background:color-mix(in srgb,var(--tile-grad-solid, #fffaf0) 50%,transparent);box-shadow:none}.tile.just-placed{animation:kz-drop .62s cubic-bezier(.2,.8,.3,1.15) backwards,kz-flash 1.8s ease-out .5s backwards;animation-delay:calc(var(--i, 0) * 75ms),calc(.45s + var(--i, 0) * 75ms)}@keyframes kz-draft-in{0%{transform:scale(1.35);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes kz-drop{0%{transform:translateY(-140%) scale(1.3);opacity:0}55%{transform:translateY(8%) scale(1);opacity:1}75%{transform:translateY(-4%)}to{transform:none;opacity:1}}@keyframes kz-flash{0%{filter:brightness(1)}25%{filter:brightness(1.18) saturate(1.2)}to{filter:brightness(1)}}.score-pop{position:absolute;z-index:6;pointer-events:none;padding:.28em .75em;border-radius:999px;background:var(--gold-grad);color:var(--gold-ink);font-family:var(--font-display);font-weight:900;font-size:clamp(1rem,1.7vw,1.4rem);white-space:nowrap;box-shadow:0 8px 18px #00000059;transform:translate(-50%,-115%);animation:kz-pop 2.4s cubic-bezier(.2,.8,.3,1) forwards}@keyframes kz-pop{0%{transform:translate(-50%,-60%) scale(.4);opacity:0}18%{transform:translate(-50%,-125%) scale(1.15);opacity:1}30%,70%{transform:translate(-50%,-115%) scale(1);opacity:1}to{transform:translate(-50%,-230%) scale(1);opacity:0}}.player-card{display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border-radius:16px;position:relative;min-width:0}.player-card.active{box-shadow:0 0 0 2px var(--gold-light),0 8px 18px color-mix(in srgb,var(--surface-strong) 35%,transparent)}.pc-avatar{position:relative;width:42px;height:42px;flex:none;display:grid;place-items:center}.pc-avatar .avatar{width:32px;height:32px;font-size:.72rem}.pc-ring{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-90deg);overflow:visible}.pc-ring circle{fill:none;stroke-width:3}.pc-ring .track{stroke:var(--ring-track)}.pc-ring .prog{stroke:var(--gold-light);stroke-linecap:round;transition:stroke-dashoffset .5s linear,stroke .3s ease}.pc-ring .prog.urgent{stroke:#ff7a59}.pc-body{display:grid;min-width:0;gap:.05rem}.pc-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-score{font-family:var(--font-display);font-weight:900;font-size:1.45rem;line-height:1;font-variant-numeric:tabular-nums}.pc-score.bump{animation:kz-bump .7s cubic-bezier(.2,.9,.3,1.5)}@keyframes kz-bump{0%{transform:scale(1)}35%{transform:scale(1.35);color:var(--gold-light)}to{transform:scale(1)}}.move-line{display:flex;justify-content:center;min-width:0}.move-pill{display:inline-flex;align-items:center;gap:.5rem;max-width:100%;padding:.28rem .75rem .28rem .35rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-weight:700;font-size:.86rem;color:var(--text-muted);min-width:0}.move-pill .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.mini-tiles{display:inline-flex;gap:2px;flex:none}.mini-tile{min-width:20px;height:22px;padding:0 3px;box-sizing:border-box;border-radius:5px;background:var(--tile-grad);box-shadow:inset 0 -1.5px 0 var(--tile-edge-3d);color:var(--tile-ink);font-family:var(--font-display);font-weight:900;font-size:.74rem;display:grid;place-items:center}.score-chip{flex:none;padding:2px 9px;border-radius:999px;background:var(--surface-strong);color:var(--gold-light);font-weight:800;font-variant-numeric:tabular-nums}.btn:not(.btn-secondary):not(.btn-ghost):not(.btn-danger){background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 80%,#fff) 0%,var(--primary) 100%);box-shadow:0 3px color-mix(in srgb,var(--primary) 55%,#000),0 8px 16px color-mix(in srgb,var(--primary) 22%,transparent)}.btn:not(.btn-secondary):not(.btn-ghost):not(.btn-danger):hover:not(:disabled){background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 70%,#fff) 0%,var(--primary) 100%)}.btn-secondary{box-shadow:0 3px 0 var(--border-strong)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px color-mix(in srgb,var(--primary) 55%,#000)}.btn-secondary:active:not(:disabled){box-shadow:0 1px 0 var(--border-strong)}.btn:disabled{box-shadow:none}.btn-gold,button.btn-gold{background:var(--gold-grad)!important;color:var(--gold-ink)!important;box-shadow:0 4px 0 var(--gold-edge),0 10px 18px #00000038!important}.action-row{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) 48px}.action-row .btn{min-height:54px;border-radius:16px;padding:0 .3rem}.act-btn{flex-direction:column;gap:1px;font-size:.76rem;line-height:1.1}.act-btn .icon{width:20px;height:20px}.act-main{flex-direction:column;gap:0;line-height:1.1;font-size:1rem}.act-sub{font-size:.72rem;font-weight:800;color:var(--gold-light);white-space:nowrap}.action-row .more-menu>button{width:100%;min-height:54px;border-radius:16px}@media(max-width:360px){.act-btn .act-label{display:none}.action-row{grid-template-columns:minmax(0,2.2fr) repeat(3,minmax(0,1fr)) 44px}}.rack{border-radius:18px;box-shadow:inset 0 2px #ffffff38,inset 0 -4px #00000038,0 10px 20px #3c260e38}.rack-tile{border-radius:11px;background:var(--tile-grad);box-shadow:inset 0 1px #fff,inset 0 -3px 0 var(--tile-edge-3d),0 3px 6px var(--tile-shadow)}.rack-tile .letter{font-weight:900}.rack-tile.selected{transform:translateY(-8px);box-shadow:inset 0 1px #fff,inset 0 -3px 0 var(--tile-edge-3d),0 0 0 3px var(--gold),0 12px 18px #0000004d}.drag-ghost{background:var(--tile-grad);box-shadow:inset 0 1px #fff,inset 0 -3px 0 var(--tile-edge-3d),0 18px 30px #0006;transform-origin:50% 80%}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:85;pointer-events:none;display:grid;place-items:center;overflow:hidden}.celebrate-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--celebrate-bg);animation:cel-backdrop var(--cel-dur, 2.6s) ease-out forwards}.celebrate.tier-1 .celebrate-backdrop{display:none}.celebrate-rays{position:absolute;width:170vmax;height:170vmax;left:50%;top:50%;margin-left:-85vmax;margin-top:-85vmax;border-radius:50%;background:repeating-conic-gradient(from 0deg,#f7dc8f33,#f7dc8f33 8deg,#f7dc8f00 8deg,#f7dc8f00 20deg);animation:cel-rays 9s linear infinite,cel-fade var(--cel-dur, 2.6s) ease-out forwards}.celebrate.tier-4 .celebrate-rays,.celebrate.bingo .celebrate-rays{background:repeating-conic-gradient(from 0deg,#ffd6783d,#ffd6783d 6deg,#fff0 6deg,#fff0 15deg)}.celebrate-center{position:relative;display:grid;justify-items:center;gap:.4rem;text-align:center;padding:1.6rem 2.4rem;border-radius:28px;background:radial-gradient(60% 65% at 50% 50%,#0c120e9e,#0c120e6b 55%,#0c120e00);animation:cel-burst var(--cel-dur, 2.6s) cubic-bezier(.2,.9,.3,1.25) forwards}.celebrate-kicker{font-size:.85rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:#fff4d6;text-shadow:0 1px 3px rgba(0,0,0,.9),0 2px 8px rgba(0,0,0,.6)}.celebrate-title{font-family:var(--font-display);font-weight:900;font-size:clamp(2.4rem,11vw,4.6rem);line-height:.95;letter-spacing:-.02em;background-image:linear-gradient(90deg,#f7dc8f,#fff6d8,#e2b650,#fff6d8,#f7dc8f);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 0 #7a520f) drop-shadow(0 14px 22px rgba(0,0,0,.45));animation:cel-shimmer 2.2s linear infinite}.celebrate.tier-1 .celebrate-title{font-size:clamp(1.4rem,6vw,2rem);background:none;color:var(--text);filter:none;padding:.5rem 1.2rem;border-radius:999px;background-color:var(--surface);border:2px solid var(--gold);box-shadow:0 12px 26px #00000047;-webkit-background-clip:border-box;background-clip:border-box;animation:none}.celebrate.tier-4 .celebrate-title{background-image:linear-gradient(90deg,#ff9a9e,#fad0c4,#fbc2eb,#a1c4fd,#c2e9fb,#d4fc79,#f7dc8f,#ff9a9e);filter:drop-shadow(0 5px 0 #2a1450) drop-shadow(0 18px 26px rgba(0,0,0,.55))}.celebrate-score{margin-top:.4rem;padding:.35rem 1.1rem;border-radius:999px;background:#231b12;color:var(--gold-light);font-family:var(--font-display);font-weight:900;font-size:clamp(1.5rem,7vw,2.4rem);box-shadow:0 0 0 3px var(--gold),0 14px 26px #00000073}.celebrate.tier-1 .celebrate-score{display:none}.celebrate-crown{width:56px;height:42px;fill:#f7dc8f;filter:drop-shadow(0 0 12px rgba(247,220,143,.9))}.confetti-piece{position:absolute;top:-24px;border-radius:2px;animation-name:cel-fall;animation-timing-function:linear;animation-fill-mode:both}.firework{position:absolute;width:170px;height:170px;margin-left:-85px;margin-top:-85px;border-radius:50%;-webkit-mask:radial-gradient(circle,transparent 18%,#000 20%,#000 60%,transparent 62%);mask:radial-gradient(circle,transparent 18%,#000 20%,#000 60%,transparent 62%);animation:cel-firework 1.6s ease-out both}.stage-board.shake{animation:cel-shake .6s ease-in-out}@keyframes cel-backdrop{0%{opacity:0}12%,78%{opacity:1}to{opacity:0}}@keyframes cel-fade{0%,78%{opacity:1}to{opacity:0}}@keyframes cel-rays{to{transform:rotate(360deg)}}@keyframes cel-burst{0%{transform:scale(.2) rotate(-10deg);opacity:0}14%{transform:scale(1.16) rotate(3deg);opacity:1}22%{transform:scale(.97) rotate(-1deg)}30%,82%{transform:scale(1) rotate(0);opacity:1}to{transform:scale(1.06);opacity:0}}@keyframes cel-shimmer{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes cel-fall{0%{transform:translateY(-40px) rotate(0);opacity:0}8%{opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:.9}}@keyframes cel-firework{0%{transform:scale(0);opacity:0}15%{opacity:1}65%{transform:scale(1);opacity:.9}to{transform:scale(1.15);opacity:0}}@keyframes cel-shake{0%,to{transform:translate(0)}15%{transform:translate(-7px,4px)}30%{transform:translate(6px,-5px)}45%{transform:translate(-5px,3px)}60%{transform:translate(4px,-3px)}80%{transform:translate(-2px,1px)}}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;overflow:hidden;display:grid;place-items:center;background:radial-gradient(90% 60% at 50% 40%,#2a7456,#174a37 45%,#0b261c);color:#fffaf0;animation:intro-out var(--intro-dur, 5s) ease-in forwards;cursor:pointer}:root[data-theme=salon] .intro{background:radial-gradient(90% 60% at 50% 40%,#2d2616,#14120c 55%,#080705)}:root[data-theme=fresh] .intro{background:radial-gradient(90% 60% at 50% 40%,#4b59e0,#2c38b0,#151a5c)}.intro-rays{position:absolute;width:190vmax;height:190vmax;left:50%;top:45%;margin-left:-95vmax;margin-top:-95vmax;border-radius:50%;background:repeating-conic-gradient(from 0deg,#f7dc8f1f,#f7dc8f1f 7deg,#f7dc8f00 7deg,#f7dc8f00 20deg);animation:cel-rays 14s linear infinite}.intro-fall{position:absolute;top:0;width:30px;height:33px;border-radius:7px;background:var(--tile-grad);box-shadow:inset 0 -2px 0 var(--tile-edge-3d);color:var(--tile-ink);font-family:var(--font-display);font-weight:900;font-size:15px;display:grid;place-items:center;opacity:.5;animation:intro-tile-fall linear infinite}.intro-stage{position:relative;width:min(460px,94vw);display:grid;gap:1.1rem;justify-items:center}.intro-head{display:grid;justify-items:center;gap:.35rem;text-align:center;animation:intro-title var(--intro-dur, 5s) ease-out both}.intro-kicker{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:800;letter-spacing:.3em;color:#f2d38a}.intro-title{font-family:var(--font-display);font-weight:900;font-size:clamp(1.9rem,8vw,2.6rem);line-height:1.05;text-shadow:0 4px 0 rgba(0,0,0,.35)}.intro-sub{padding:.25rem .85rem;border-radius:999px;background:#fffaf01f;font-weight:700;font-size:.85rem}.intro-grid{position:relative;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 3.2rem}.intro-card{display:grid;justify-items:center;gap:.35rem;padding:.9rem .6rem;border-radius:22px;background:linear-gradient(160deg,#ffffff29,#ffffff0d);border:1px solid rgba(255,255,255,.18);box-shadow:0 16px 30px #00000059;min-width:0}.intro-card.from-left{animation:intro-left var(--intro-dur, 5s) cubic-bezier(.2,.8,.3,1) both}.intro-card.from-right{animation:intro-right var(--intro-dur, 5s) cubic-bezier(.2,.8,.3,1) both}.intro-card .avatar{width:58px;height:58px;font-size:1.1rem;box-shadow:0 0 0 3px #f2d38a}.intro-name{font-family:var(--font-display);font-weight:900;font-size:1.15rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.intro-meta{font-size:.8rem;font-weight:700;opacity:.85}.intro-vs{position:absolute;left:50%;top:50%;width:64px;height:64px;margin-left:-32px;margin-top:-32px;border-radius:50%;background:var(--gold-grad);color:var(--gold-ink);box-shadow:0 0 0 4px #00000059,0 0 30px #f7dc8fcc;display:grid;place-items:center;font-family:var(--font-display);font-weight:900;font-size:1.6rem;animation:intro-vs var(--intro-dur, 5s) cubic-bezier(.2,.9,.3,1.3) both}.intro-count{position:relative;height:118px;width:100%;display:grid;place-items:center}.intro-count>span{position:absolute;font-family:var(--font-display);font-weight:900;font-size:96px;line-height:1;text-shadow:0 6px 0 rgba(0,0,0,.35),0 0 30px rgba(247,220,143,.6);opacity:0}.intro-count .n3{animation:intro-n3 var(--intro-dur, 5s) ease-out both}.intro-count .n2{animation:intro-n2 var(--intro-dur, 5s) ease-out both}.intro-count .n1{animation:intro-n1 var(--intro-dur, 5s) ease-out both}.intro-count .go{font-size:clamp(1.8rem,9vw,2.6rem);padding:.6rem 1.6rem;border-radius:999px;background:var(--gold-grad);color:var(--gold-ink);text-shadow:none;box-shadow:0 6px 0 var(--gold-edge),0 18px 32px #00000073;animation:intro-go var(--intro-dur, 5s) cubic-bezier(.2,.9,.3,1.3) both}.intro-first{font-weight:700;font-size:.95rem;opacity:0;animation:intro-first var(--intro-dur, 5s) ease-out both}.intro.short .n3,.intro.short .n2,.intro.short .n1{display:none}@keyframes intro-out{0%,92%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes intro-tile-fall{0%{transform:translateY(-80px) rotate(0)}to{transform:translateY(110vh) rotate(300deg)}}@keyframes intro-title{0%,2%{transform:translateY(-24px);opacity:0}12%,to{transform:none;opacity:1}}@keyframes intro-left{0%,8%{transform:translate(-130%);opacity:0}20%{transform:translate(6%);opacity:1}26%,to{transform:none;opacity:1}}@keyframes intro-right{0%,12%{transform:translate(130%);opacity:0}24%{transform:translate(-6%);opacity:1}30%,to{transform:none;opacity:1}}@keyframes intro-vs{0%,28%{transform:scale(0) rotate(-40deg);opacity:0}35%{transform:scale(1.35) rotate(8deg);opacity:1}40%,to{transform:scale(1) rotate(0);opacity:1}}@keyframes intro-n3{0%,48%{transform:scale(2.4);opacity:0}51%{transform:scale(1);opacity:1}59%{opacity:1}61%,to{transform:scale(.5);opacity:0}}@keyframes intro-n2{0%,60%{transform:scale(2.4);opacity:0}63%{transform:scale(1);opacity:1}71%{opacity:1}73%,to{transform:scale(.5);opacity:0}}@keyframes intro-n1{0%,72%{transform:scale(2.4);opacity:0}75%{transform:scale(1);opacity:1}81%{opacity:1}83%,to{transform:scale(.5);opacity:0}}@keyframes intro-go{0%,83%{transform:scale(.3) rotate(-6deg);opacity:0}87%{transform:scale(1.15) rotate(2deg);opacity:1}90%,to{transform:scale(1) rotate(0);opacity:1}}.intro.short .go{animation-name:intro-go-short}@keyframes intro-go-short{0%,45%{transform:scale(.3) rotate(-6deg);opacity:0}55%{transform:scale(1.15) rotate(2deg);opacity:1}62%,to{transform:scale(1) rotate(0);opacity:1}}@keyframes intro-first{0%,84%{opacity:0}90%,to{opacity:.95}}.intro.short .intro-first{animation-name:intro-first-short}@keyframes intro-first-short{0%,50%{opacity:0}60%,to{opacity:.95}}.app-main>*{animation:page-in .28s ease-out backwards}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.celebrate,.intro{display:none}}@media(max-width:480px){.player-strip.many .pc-avatar{display:none}.player-strip.many .player-card{padding:.45rem .5rem}.player-strip.many .pc-score{font-size:1.2rem}}.stage-panel>.move-line{order:0}@media(max-width:899px){.stage-board{position:relative}.board-tools{position:absolute;top:-46px;right:0;min-height:0}.board-tools-main{display:none}.stage-panel>.move-line{justify-content:flex-start;padding-right:84px;min-height:36px;align-items:center}.zoom-btn{width:34px;height:34px}}.lobby-hero{gap:.4rem;padding:1.4rem 1.4rem 1.3rem;border-radius:24px;background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--surface-strong) 70%,#fff) 0%,var(--surface-strong) 55%,color-mix(in srgb,var(--surface-strong) 80%,#000) 100%);box-shadow:0 16px 32px color-mix(in srgb,var(--surface-strong) 35%,transparent)}.hero-kicker{font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-light)}.lobby-hero h1{font-size:clamp(1.7rem,6vw,2.3rem);line-height:1.05;font-weight:900}.hero-live{display:inline-flex;align-items:center;gap:.5rem;font-weight:600}.hero-actions{margin-top:.5rem;gap:.5rem;flex-wrap:wrap;position:relative;z-index:1}.hero-ghost,button.hero-ghost{background:#ffffff1a!important;color:var(--text-on-strong)!important;border:1px solid rgba(255,255,255,.25)!important;box-shadow:none!important;min-height:52px}.hero-tile{animation:hero-float 4.5s ease-in-out infinite}.hero-tile:nth-child(2){animation-delay:-.9s}.hero-tile:nth-child(3){animation-delay:-1.8s}.hero-tile:nth-child(4){animation-delay:-2.7s}.hero-tile:nth-child(5){animation-delay:-3.6s}@keyframes hero-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(2deg)}}.continue-card{display:flex;align-items:center;gap:.8rem;padding:.85rem .9rem;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:0 6px 16px #3c280f14;animation:page-in .3s ease-out backwards}.continue-avatars{display:flex;flex:none}.continue-avatars .avatar{box-shadow:0 0 0 2px var(--surface)}.continue-avatars .avatar+.avatar{margin-left:-10px}.continue-body{flex:1;min-width:0;display:grid;gap:.1rem}.continue-body strong{font-family:var(--font-display);font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.continue-kicker{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#c0392b}.cup-card{border-radius:20px;border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(120deg,#e2b650,#fff1c4,#b8862b) border-box;flex-wrap:wrap}.cup-card-main .icon{width:38px;height:38px;padding:8px;border-radius:12px;background:var(--gold-grad);color:var(--gold-ink);box-sizing:border-box;flex:none}.cup-countdown{display:flex;gap:.35rem;width:100%;order:3}.cd-cell{flex:1;display:flex;align-items:baseline;justify-content:center;gap:.25rem;padding:.4rem 0;border-radius:12px;background:var(--surface-2)}.cd-cell strong{font-family:var(--font-display);font-weight:900;font-size:1.25rem;font-variant-numeric:tabular-nums}.cd-cell span{font-size:.72rem;font-weight:700;color:var(--text-muted)}.table-card{border-radius:20px;transition:transform .15s ease,box-shadow .15s ease}.table-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px #3c280f1f}.table-card.mine{box-shadow:0 0 0 2px var(--gold-light),0 10px 22px #3c280f1f}.streak-chip{display:inline-flex;align-items:center;gap:.25rem;height:34px;padding:0 .45rem 0 .4rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-weight:800}.streak-chip.lit{border-color:color-mix(in srgb,#f08a24 45%,var(--border));background:color-mix(in srgb,#f08a24 10%,var(--surface))}.streak-level{display:grid;place-items:center;min-width:20px;height:20px;padding:0 4px;margin-left:.15rem;border-radius:6px;background:var(--surface-strong);color:var(--gold-light);font-size:.72rem;font-weight:900}.flame{flex:none;transform-origin:50% 90%;animation:flame-flicker 1.4s ease-in-out infinite}.flame.dim{filter:grayscale(.85) opacity(.55);animation:none}@keyframes flame-flicker{0%,to{transform:scale(1) rotate(-2deg)}25%{transform:scale(1.06,.96) rotate(2deg)}50%{transform:scale(.97,1.05) rotate(-1deg)}75%{transform:scale(1.04,.98) rotate(1deg)}}.level-badge .lb-body{fill:var(--surface-strong);stroke:var(--gold);stroke-width:3}.level-badge .lb-text{font-family:var(--font-display);font-weight:900;font-size:28px;fill:var(--gold-light)}.level-card{display:flex;align-items:center;gap:.75rem;min-width:0}.level-body{flex:1;min-width:0;display:grid;gap:.3rem}.level-line{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.level-line strong{font-family:var(--font-display);font-size:1.15rem}.level-card.compact .level-line strong{font-size:1rem}.xp-bar{height:12px;border-radius:6px;background:var(--surface-2);overflow:hidden;box-shadow:inset 0 1px 2px #0000001f}.xp-fill{display:block;height:100%;border-radius:6px;background:var(--gold-grad);transition:width .8s cubic-bezier(.3,.8,.3,1)}.habit-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:.7rem}.habit-card{display:flex;align-items:center;gap:.7rem;padding:.85rem .9rem;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;font:inherit;cursor:pointer;min-width:0;box-shadow:0 4px 12px #3c280f0f;transition:transform .15s ease}button.habit-card:hover{transform:translateY(-2px)}.habit-card.quests-mini,.habit-card.league-mini{flex-direction:column;align-items:stretch;cursor:default}.habit-card.league-mini{cursor:pointer}.habit-body{display:grid;gap:.1rem;min-width:0}.habit-body strong{font-family:var(--font-display);font-size:1.02rem}.puzzle-icon{flex:none;width:38px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--tile-grad);box-shadow:inset 0 -3px 0 var(--tile-edge-3d),0 3px 6px var(--tile-shadow);color:var(--gold);font-size:1.3rem}.puzzle-card.done{opacity:.85}.quest-list{display:grid;gap:.55rem}.quest{display:grid;gap:.25rem}.quest-line{display:flex;justify-content:space-between;gap:.5rem;font-weight:700;font-size:.9rem}.quest-reward{flex:none;color:var(--text-muted);font-size:.82rem}.quest.done .quest-reward{color:#1f7a45}.quest-bar{height:9px;border-radius:5px;background:var(--surface-2);overflow:hidden;display:flex}.quest-bar span{display:block;border-radius:5px;background:var(--gold-grad);transition:width .6s ease}.quest.done .quest-bar span{background:linear-gradient(90deg,#7fbf8f,#2b7a5b)}.quest-chest{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;border-radius:12px;background:var(--surface-2);font-size:.82rem;font-weight:700;color:var(--text-muted)}.quest-chest .icon{width:22px;height:22px;color:var(--gold)}.quest-chest.open{background:color-mix(in srgb,var(--gold-light) 35%,var(--surface));color:var(--text)}.league{display:grid;gap:.3rem}.league-row{display:flex;align-items:center;gap:.55rem;padding:.4rem .55rem;border-radius:12px;font-size:.92rem}.league-row.me{outline:2px solid color-mix(in srgb,var(--gold) 60%,transparent)}.league-row.gold{background:linear-gradient(90deg,color-mix(in srgb,#f7dc8f 55%,transparent),transparent)}.league-row.silver{background:linear-gradient(90deg,color-mix(in srgb,#d9dde3 55%,transparent),transparent)}.league-row.bronze{background:linear-gradient(90deg,color-mix(in srgb,#e9b98c 45%,transparent),transparent)}.league-rank{width:22px;text-align:center;font-weight:900}.league-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.6rem}.badge-item{display:grid;justify-items:center;gap:.3rem;text-align:center}.badge-mark{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-family:var(--font-display);font-weight:900;font-size:1rem;background:var(--gold-grad);color:var(--gold-ink);box-shadow:inset 0 -3px #0000002e,0 6px 12px #0000001f}.badge-item.locked .badge-mark{background:var(--surface-2);color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--border);opacity:.6}.badge-name{font-size:.74rem;font-weight:700;line-height:1.2;color:var(--text-muted)}.badge-item.got .badge-name{color:var(--text)}.week-dots{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}.week-dot{display:grid;justify-items:center;gap:.25rem;font-size:.72rem;font-weight:800;color:var(--text-muted)}.dot-circle{width:30px;height:30px;border-radius:50%;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.week-dot.on .dot-circle{background:linear-gradient(180deg,#ffb066,#f08a24);box-shadow:inset 0 -2px #00000026}.week-dot.frozen .dot-circle{background:linear-gradient(180deg,#bfe3ff,#7fb5e6)}.week-dot.today{color:var(--text)}.week-dot.today .dot-circle{outline:2px solid var(--gold);outline-offset:2px}.week-dot.future .dot-circle{opacity:.5}.progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1rem;align-items:start}.progress-badges{grid-column:1 / -1}.streak-head{display:flex;align-items:center;gap:.9rem;margin-bottom:.7rem}.streak-num{font-family:var(--font-display);font-weight:900;font-size:2.6rem;line-height:1;color:#d9671a}.progress-streak{display:grid;gap:.7rem}.title-ladder{display:grid;gap:.25rem;margin:.9rem 0}.ladder-step{font-size:.86rem;color:var(--text-muted);padding:.2rem .5rem;border-radius:8px}.ladder-step.reached{color:var(--text)}.ladder-step.current{background:color-mix(in srgb,var(--gold-light) 35%,transparent);font-weight:800}.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;text-align:center;font-size:.78rem;color:var(--text-muted)}.stat-row strong{display:block;font-family:var(--font-display);font-size:1.25rem;color:var(--text)}.switch-row{display:flex;align-items:center;gap:.6rem;font-size:.88rem;font-weight:600;cursor:pointer}.switch-row input{width:20px;height:20px;accent-color:var(--primary)}.medal-line{display:flex;align-items:center;gap:.4rem;margin:.6rem 0 0;font-weight:700;font-size:.88rem}.medal{min-width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;font-weight:900;font-size:.8rem}.medal.gold{background:linear-gradient(180deg,#f7dc8f,#c99a2e);color:#3a2806}.medal.silver{background:linear-gradient(180deg,#eef1f4,#b9c0c9);color:#3a414a}.medal.bronze{background:linear-gradient(180deg,#e9b98c,#b07a4a);color:#4a2c12}.podium{display:flex;align-items:flex-end;justify-content:center;gap:.5rem;margin:.4rem 0 .2rem}.podium-col{display:grid;justify-items:center;gap:.3rem;width:96px;min-width:0;animation:podium-rise .6s cubic-bezier(.2,.9,.3,1.2) both}.podium-col.place-1{animation-delay:.35s}.podium-col.place-2{animation-delay:.15s}.podium-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;font-size:.85rem}.podium-block{width:100%;display:grid;justify-items:center;padding:.4rem 0;border-radius:12px 12px 0 0;font-family:var(--font-display)}.podium-block strong{font-size:1.4rem;line-height:1}.podium-block span{font-family:var(--font-body);font-weight:800;font-size:.85rem}.place-1 .podium-block{height:96px;background:linear-gradient(180deg,#f7dc8f,#c99a2e);color:#4a3106}.place-2 .podium-block{height:72px;background:linear-gradient(180deg,#eef1f4,#b9c0c9);color:#3a414a}.place-3 .podium-block{height:56px;background:linear-gradient(180deg,#e9b98c,#b07a4a);color:#4a2c12}.place-1 .avatar{box-shadow:0 0 0 3px #f2d38a,0 0 18px #f2d38ab3}.podium-crown{width:30px;height:22px;fill:#f2c14e;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}@keyframes podium-rise{0%{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}.reward-box{display:grid;gap:.55rem;padding:.85rem;border-radius:18px;background:var(--surface-2);animation:page-in .4s ease-out .5s backwards}.reward-total{display:flex;align-items:baseline;justify-content:space-between;font-weight:800}.reward-total strong{font-family:var(--font-display);font-size:1.8rem;color:var(--gold)}.reward-items{display:flex;flex-wrap:wrap;gap:.35rem .8rem;font-size:.82rem;color:var(--text-muted)}.reward-items strong{color:var(--text)}.reward-level{margin:0;font-weight:900;color:var(--gold)}.reward-streak{display:flex;align-items:center;gap:.4rem;margin:0;font-weight:800}.reward-badges{display:flex;flex-wrap:wrap;gap:.35rem}.reward-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .65rem;border-radius:999px;background:var(--gold-grad);color:var(--gold-ink);font-weight:800;font-size:.82rem}.reward-badge .icon{width:16px;height:16px}.game-over-card{max-height:calc(100dvh - 2rem);overflow-y:auto}.puzzle-page{display:grid;gap:.8rem}.puzzle-layout{display:grid;gap:.9rem;grid-template-columns:minmax(0,1fr)}.puzzle-side{display:grid;gap:.8rem;align-content:start}.puzzle-help{display:grid;gap:.2rem}.puzzle-rack{position:static;margin:0;padding:0;background:none}.puzzle-result{display:grid;gap:.5rem}.puzzle-score{display:grid;gap:.1rem}.puzzle-score strong{font-family:var(--font-display);font-weight:900;font-size:2.4rem;line-height:1}.puzzle-page .board-tools{display:none}@media(min-width:900px){.puzzle-layout{grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:start}.puzzle-board .board-frame.zoomable{width:min(100%,calc(100dvh - 12rem))}}.habit-card.quests-mini,.habit-card.league-mini{flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer}.quest-segs{display:flex;gap:3px;flex:none}.quest-segs span{width:14px;height:22px;border-radius:4px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border)}.quest-segs span.half{background:linear-gradient(0deg,var(--gold-light) 50%,var(--surface-2) 50%)}.quest-segs span.on{background:linear-gradient(180deg,#7fbf8f,#2b7a5b);box-shadow:none}@media(max-width:700px){.habit-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.habit-card{padding:.7rem;gap:.5rem;border-radius:18px}.habit-card .flame{width:26px;height:31px}.habit-card.level-mini{grid-column:1 / -1}.habit-body strong{font-size:.92rem}.habit-body .small{font-size:.74rem}.puzzle-icon{width:32px;height:34px;font-size:1.1rem}}.phrase-bubble{max-width:min(88vw,340px);overflow:hidden;text-overflow:ellipsis;font-size:clamp(.95rem,4.4vw,1.3rem)}.reaction-float .emoji{font-size:clamp(2rem,9vw,3.2rem)}.reaction-float .who{white-space:nowrap}.reaction-float.phrase{width:auto;justify-items:center;padding:0 .5rem}.drag-ghost{transition:none!important;animation:none!important}.kz-toast{position:fixed;left:50%;bottom:calc(6.5rem + env(safe-area-inset-bottom));transform:translate(-50%);z-index:88;display:flex;align-items:center;gap:.6rem;width:max-content;max-width:min(520px,calc(100vw - 1.6rem));padding:.7rem .7rem .7rem 1rem;border-radius:16px;background:var(--surface-strong);color:var(--text-on-strong);font-weight:700;box-shadow:var(--shadow-lg);animation:kz-toast-in .24s cubic-bezier(.2,.9,.3,1.2)}.kz-toast.error{background:linear-gradient(180deg,#a5432f,#7e2f1f);color:#fff6f0}.kz-toast-close{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:#ffffff29;color:inherit;font-size:1.1rem;line-height:1;cursor:pointer}@keyframes kz-toast-in{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.kz-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,var(--surface-strong) 55%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fx-fade-in .18s ease-out}.kz-dialog{width:min(420px,100%);display:grid;gap:.6rem;padding:1.3rem 1.2rem 1.1rem;border-radius:24px;background:var(--surface);border:1px solid var(--border);box-shadow:0 26px 60px #00000059;text-align:center;animation:kz-dialog-in .24s cubic-bezier(.2,.9,.3,1.25)}.kz-dialog-icon{justify-self:center;width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:var(--gold-grad);color:var(--gold-ink)}.kz-dialog-title{margin:0;font-family:var(--font-display);font-weight:900;font-size:1.35rem;line-height:1.15}.kz-dialog-text{margin:0;color:var(--text-muted);font-size:.92rem;line-height:1.45}.kz-dialog-actions{display:grid;gap:.5rem;margin-top:.3rem}.kz-dialog-btn{flex-direction:column;gap:.1rem;min-height:54px;border-radius:16px}.kz-dialog-hint{font-size:.75rem;font-weight:700;opacity:.75}@keyframes kz-dialog-in{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}.act-sub{color:color-mix(in srgb,var(--primary-text) 94%,transparent)}.btn-gold .act-sub,.btn-gold .kz-dialog-hint{color:color-mix(in srgb,var(--gold-ink) 82%,transparent)}.accept-box{order:-1;border-radius:16px;background:var(--surface);border:2px solid var(--gold);box-shadow:0 10px 24px #0000002e;padding:.7rem .8rem;display:grid;gap:.5rem;animation:kz-toast-in .22s ease-out}.accept-box p{margin:0;font-weight:700}.kz-judging{position:fixed;top:0;right:0;bottom:0;left:0;z-index:92;display:grid;place-items:center;background:color-mix(in srgb,var(--board-felt, #1b2b24) 55%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:kz-toast-in .2s ease-out}.kz-judging-card{display:grid;justify-items:center;width:max-content;gap:.45rem;padding:1.4rem 1.8rem;border-radius:20px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);text-align:center;max-width:min(320px,calc(100vw - 2rem))}.kz-spinner{width:30px;height:30px;border-radius:50%;border:3px solid color-mix(in srgb,var(--gold) 35%,transparent);border-top-color:var(--gold);animation:kz-spin .8s linear infinite}@keyframes kz-spin{to{transform:rotate(360deg)}}.verdict-list{list-style:none;margin:.2rem 0 .4rem;padding:0;display:grid;gap:.3rem;font-size:.9rem}.verdict-list li{padding-left:1.1rem;position:relative}.verdict-list li:before{position:absolute;left:0;font-weight:900}.verdict-list li.no:before{content:"✗";color:var(--danger, #c0392b)}.verdict-list li.yes:before{content:"✓";color:var(--ok, #2e7d52)}.log-filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.4rem}.log-filters select,.log-filters input[type=search]{padding:.45rem .6rem;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;min-width:0}.log-filters input[type=search]{flex:1 1 180px}.log-table{font-size:.84rem}.log-table tbody tr{cursor:pointer}.log-table tbody tr.open .log-data{white-space:pre-wrap;word-break:break-word}.log-time{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}.log-data{max-width:34rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.log-type{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.75rem;font-weight:800;background:var(--surface-2);border:1px solid var(--border);white-space:nowrap}.log-type.lepes{background:color-mix(in srgb,var(--gold) 22%,transparent)}.log-type.meccs{background:color-mix(in srgb,#4a8f6b 24%,transparent)}.log-type.szo{background:color-mix(in srgb,#4a6f9f 24%,transparent)}.log-type.api{background:transparent}.log-type.fiok{background:color-mix(in srgb,#8f6b4a 24%,transparent)}.word-probe{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between;padding:.6rem .8rem;margin:.4rem 0 .6rem;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.word-probe .ok,.admin-table .ok{color:#2e7d52;font-weight:700}.word-probe .no,.admin-table .no{color:#c0392b;font-weight:700}:root{--spring: cubic-bezier(.22, 1.18, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--live: #2fa36b;--live-soft: rgba(47, 163, 107, .16);--rise: #2f9a63;--fall: #c4553f}:root[data-theme=salon]{--live: #5fd39a;--live-soft: rgba(95, 211, 154, .16);--rise: #6fd6a0;--fall: #ef8a74}.roll{position:relative;display:inline-flex;align-items:flex-end;font-variant-numeric:tabular-nums;line-height:1.15;vertical-align:0}.roll-col{display:inline-block;height:var(--roll-h, 1.15em);overflow:hidden}.roll-strip{display:flex;flex-direction:column;transition:transform .72s var(--spring);will-change:transform}.roll-strip>span{display:block;height:var(--roll-h, 1.15em);line-height:var(--roll-h, 1.15em);text-align:center}.roll-sign{display:inline-block;height:var(--roll-h, 1.15em);line-height:var(--roll-h, 1.15em)}.pc-score{--roll-h: 1.08em}.pc-sub{font-variant-numeric:tabular-nums}.pc-sub.warn{color:#e8b04a}.pc-ring .prog.warn{stroke:#e8b04a}.player-card.active .pc-ring .prog.urgent{animation:ring-urgent 1s ease-in-out infinite}@keyframes ring-urgent{0%,to{opacity:1}50%{opacity:.45}}.roll.roll-up{animation:roll-glow-up 1.4s var(--ease-out)}.roll.roll-down{animation:roll-glow-down 1.4s var(--ease-out)}@keyframes roll-glow-up{0%{color:var(--rise);text-shadow:0 0 12px color-mix(in srgb,var(--rise) 55%,transparent)}to{color:inherit;text-shadow:none}}@keyframes roll-glow-down{0%{color:var(--fall)}to{color:inherit}}.roll-burst{position:absolute;right:calc(100% + .3rem);top:50%;margin-top:-.6em;line-height:1.2;font-size:.72em;font-weight:800;pointer-events:none;white-space:nowrap;animation:roll-burst 1.5s var(--ease-out) forwards}.roll-burst.up{color:var(--rise)}.roll-burst.down{color:var(--fall)}@keyframes roll-burst{0%{opacity:0;transform:translate(6px) scale(.8)}18%{opacity:1;transform:translate(0) scale(1)}72%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-6px)}}.live-dot{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--live);flex:none;animation:live-pulse 1.8s ease-out infinite}@keyframes live-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--live) 60%,transparent)}70%{box-shadow:0 0 0 7px transparent}to{box-shadow:0 0 0 0 transparent}}.chip.live-now{background:var(--live-soft);color:var(--live);border-color:transparent;gap:.4rem}.cup-table tbody tr{position:relative}.cup-table td.live-cell{color:var(--live);font-weight:800}.cup-table td.live-cell .live-dot{width:.38rem;height:.38rem;margin-right:.3rem;vertical-align:.14em;animation-name:live-pulse-sm}@keyframes live-pulse-sm{0%{box-shadow:0 0 color-mix(in srgb,var(--live) 55%,transparent)}70%{box-shadow:0 0 0 4px transparent}to{box-shadow:0 0 0 0 transparent}}.cup-table .rank{position:relative;white-space:nowrap}.rank-shift{display:inline-block;margin-left:.2rem;font-size:.66rem;font-weight:800;vertical-align:.15em;animation:rank-shift 4.2s var(--ease-out) forwards}.rank-shift.up{color:var(--rise)}.rank-shift.down{color:var(--fall)}@keyframes rank-shift{0%{opacity:0;transform:translateY(4px)}8%{opacity:1;transform:translateY(0)}85%{opacity:1}to{opacity:0}}.live-line{display:inline-flex;align-items:center;gap:.45rem;font-weight:700}.match-player.turn{font-weight:800}.match-player.out{opacity:.6}.dot.pulse{animation:live-pulse 1.4s ease-out infinite}.seg.glide{position:relative}.seg.glide>button{position:relative;z-index:1;transition:color .25s ease,transform .25s var(--spring)}.seg.glide>button.active{background:transparent;box-shadow:none}.seg>button:active{transform:scale(.95)}.seg-glider{position:absolute;left:0;top:0;z-index:0;border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm);pointer-events:none;transition:transform .5s var(--spring),width .5s var(--spring),height .5s var(--spring),opacity .2s ease}.hold-btn{position:relative;overflow:hidden;isolation:isolate;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.hold-btn>:not(.hold-fill){position:relative;z-index:1}.hold-fill{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:color-mix(in srgb,currentColor 24%,transparent);transform:scaleX(0);transform-origin:left center;transition:transform .35s var(--ease-out);pointer-events:none}.hold-btn.holding .hold-fill{transform:scaleX(1);transition:transform var(--hold-ms, 1.1s) linear}.hold-btn.holding{transform:scale(.97)}.cup-island{--island-bg: #111214;--island-ink: #f6f3ec;--island-sub: rgba(246, 243, 236, .66);position:sticky;top:calc(var(--header-h, 60px) + 8px);z-index:35;justify-self:center;display:flex;align-items:center;gap:.35rem;max-width:min(100%,560px);min-height:52px;padding:5px 6px;border-radius:999px;background:var(--island-bg);color:var(--island-ink);box-shadow:0 10px 30px #00000047,0 0 0 1px #ffffff0f inset;overflow:hidden;animation:island-in .6s var(--spring)}@keyframes island-in{0%{opacity:0;transform:translateY(-10px) scale(.86)}to{opacity:1;transform:none}}.island-main{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1 1 auto;padding:0 .4rem 0 .2rem;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.island-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:#ffffff14}.island-icon .icon{width:20px;height:20px}.island-text{display:grid;min-width:0;line-height:1.2;animation:island-text .5s var(--ease-out)}@keyframes island-text{0%{opacity:0;filter:blur(4px);transform:translateY(4px)}to{opacity:1;filter:none;transform:none}}.island-text strong{font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.island-text>span{font-size:.78rem;color:var(--island-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.island-action{flex:none;min-height:40px;padding:0 1.05rem;border:0;border-radius:999px;background:#ffffff24;color:var(--island-ink);font-weight:800;font-size:.9rem;cursor:pointer;transition:transform .25s var(--spring),background .2s ease}.island-action:active,.island-main:active{transform:scale(.95)}.cup-island.tone-urgent .island-action,.cup-island.tone-turn .island-action{background:linear-gradient(180deg,#f7dc8f,#ddb358);color:#2a1d04;box-shadow:0 0 #f2c14e99;animation:island-call 1.8s ease-out infinite}.cup-island.tone-urgent .island-icon,.cup-island.tone-turn .island-icon{background:#f2c14e2e;color:#f2c14e}.cup-island.tone-live .island-icon,.cup-island.tone-turn .island-icon{background:#5fd39a24}.cup-island .live-dot{--live: #5fd39a;width:.62rem;height:.62rem}.cup-island.tone-turn .live-dot{--live: #f2c14e}@keyframes island-call{0%{box-shadow:0 0 #f2c14e8c}70%{box-shadow:0 0 0 10px #f2c14e00}to{box-shadow:0 0 #f2c14e00}}@media(max-width:480px){.cup-island{width:100%}}@media(prefers-reduced-motion:reduce){.cup-island,.island-text,.cup-island .island-action{animation:none}}.ceremony{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;display:grid;place-items:center;padding:1.5rem 1rem calc(1.5rem + env(safe-area-inset-bottom));overflow-y:auto;color:#f6f1e6;background:radial-gradient(120% 90% at 50% 20%,#1d2a24,#0d1411 55%,#060908);animation:ceremony-in .45s var(--ease-out)}@keyframes ceremony-in{0%{opacity:0}to{opacity:1}}.ceremony-inner{position:relative;z-index:1;display:grid;justify-items:center;gap:.9rem;width:min(100%,880px);text-align:center}.ceremony-kicker{font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#d9b35a}.ceremony-title{margin:0;font-family:var(--font-display);font-size:clamp(1.8rem,5vw,2.6rem);line-height:1.1}.draw-groups{display:grid;grid-template-columns:repeat(var(--cols, 3),minmax(0,1fr));gap:.75rem;width:100%}.draw-group{display:grid;align-content:start;gap:.45rem;padding:.75rem;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);transition:opacity .6s ease,border-color .6s ease,box-shadow .6s ease,transform .6s var(--spring)}.draw-group-head{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#f6f1e699}.draw-ceremony .draw-card{display:flex;align-items:center;gap:.5rem;padding:.45rem .55rem;border-radius:12px;background:#ffffff14;font-weight:700;text-align:left;opacity:0;animation:deal-in .62s var(--spring) forwards}.draw-ceremony .draw-card span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-ceremony.skipped .draw-card{animation-duration:.3s}@keyframes deal-in{0%{opacity:0;transform:translateY(-36px) rotate(-8deg) scale(1.15)}to{opacity:1;transform:none}}.draw-ceremony .draw-card.me{background:linear-gradient(180deg,#f7dc8f,#ddb358);color:#2a1d04}.draw-ceremony.done .draw-group:not(.mine){opacity:.5}.draw-ceremony.done .draw-group.mine{border-color:#f2c14ecc;box-shadow:0 0 0 4px #f2c14e29,0 20px 50px #0006;transform:translateY(-4px)}.draw-result{max-width:34rem;margin:0;font-size:1.02rem;line-height:1.45;color:#f6f1e6d9;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s var(--ease-out)}.draw-ceremony.done .draw-result{opacity:1;transform:none}.draw-result strong{color:#f2c14e}@media(max-width:560px){.draw-groups{grid-template-columns:repeat(min(var(--cols, 3),2),minmax(0,1fr))}}.champ-ceremony{background:radial-gradient(90% 70% at 50% 0%,#1b1a14,#0b0a08 60%,#050404)}.champ-spot{position:fixed;inset:-20% 0 auto 0;height:90vh;background:radial-gradient(40% 55% at 50% 30%,rgba(255,228,160,.3) 0%,rgba(255,228,160,.08) 45%,transparent 75%);opacity:0;animation:spot-on 1.4s ease-out .2s forwards;pointer-events:none}@keyframes spot-on{0%{opacity:0;transform:scaleX(.6)}to{opacity:1;transform:none}}.champ-crown{display:grid;place-items:center;width:84px;height:84px;color:#f2c14e;opacity:0;filter:drop-shadow(0 8px 24px rgba(242,193,78,.45));animation:crown-drop .9s var(--spring) .5s forwards}.champ-crown .icon{width:72px;height:72px}@keyframes crown-drop{0%{opacity:0;transform:translateY(-140px) rotate(-14deg)}60%{opacity:1}to{opacity:1;transform:none}}.champ-label{font-size:.85rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#f6f1e6b3;opacity:0;animation:fade-up .6s var(--ease-out) .8s forwards}.champ-title{margin:0;font-family:var(--font-display);font-size:clamp(2.6rem,11vw,5rem);line-height:1.05;display:flex;flex-wrap:wrap;justify-content:center}.champ-title span{display:inline-block;background:linear-gradient(180deg,#fff3c4,#f7d774 40%,#d9a02c 75%,#a8741a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 18px rgba(242,193,78,.35));opacity:0;animation:letter-in .6s var(--spring) forwards}@keyframes letter-in{0%{opacity:0;transform:translateY(24px) scale(.6);filter:blur(6px)}to{opacity:1;transform:none;filter:drop-shadow(0 4px 18px rgba(242,193,78,.35))}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.champ-ceremony .champ-note,.champ-ceremony .podium,.champ-ceremony .podium-fourth,.champ-ceremony .btn{opacity:0;transition:opacity .6s ease,transform .6s var(--ease-out);transform:translateY(10px)}.champ-ceremony.stage-3 .champ-note,.champ-ceremony.stage-3 .podium,.champ-ceremony.stage-3 .podium-fourth,.champ-ceremony.stage-3 .btn{opacity:1;transform:none}.champ-note{margin:0;color:#f2c14e;font-weight:700}.champ-ceremony .podium{display:flex;align-items:flex-end;justify-content:center;gap:.5rem;width:min(100%,460px);margin-top:.4rem}.champ-ceremony .podium-step{display:grid;justify-items:center;gap:.25rem;flex:1 1 0;min-width:0}.champ-ceremony .podium-name{max-width:100%;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.champ-ceremony .podium-pts{font-size:.8rem;color:#f6f1e6a6}.champ-ceremony .podium-block{display:grid;place-items:center;width:100%;border-radius:12px 12px 4px 4px;font-family:var(--font-display);font-size:1.6rem;font-weight:800;background:linear-gradient(180deg,#ffffff29,#ffffff0d);border:1px solid rgba(255,255,255,.12);transform-origin:bottom}.champ-ceremony .podium-step.p1 .podium-block{height:112px;color:#2a1d04;background:linear-gradient(180deg,#f7dc8f,#ddb358)}.champ-ceremony .podium-step.p2 .podium-block{height:82px}.champ-ceremony .podium-step.p3 .podium-block{height:62px}.champ-ceremony.stage-3 .podium-block{animation:podium-rise .8s var(--spring) both}.champ-ceremony.stage-3 .podium-step.p1 .podium-block{animation-delay:.25s}.champ-ceremony.stage-3 .podium-step.p3 .podium-block{animation-delay:.12s}@keyframes podium-rise{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.champ-ceremony .podium-step.me .podium-name{color:#f2c14e}.champ-ceremony .podium-fourth{margin:0;font-size:.9rem;color:#f6f1e6b3}.cup-ticket{--stub-w: 112px;--notch: 10px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) var(--stub-w);width:min(100%,460px);color:#2a2114;filter:drop-shadow(0 14px 26px rgba(0,0,0,.28));animation:ticket-print .9s var(--ease-out)}@keyframes ticket-print{0%{opacity:0;transform:translateY(-14px) scale(.98);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 -20% 0)}}.ticket-main,.ticket-stub{background:linear-gradient(160deg,#fffaf0,#f6ead0 60%,#eedcb2)}.ticket-main{display:grid;gap:.15rem;min-width:0;padding:.95rem 1rem .95rem 1.1rem;border-radius:16px 0 0 16px;-webkit-mask:radial-gradient(circle at 100% 0,transparent var(--notch),#000 calc(var(--notch) + .5px)) top / 100% 51% no-repeat,radial-gradient(circle at 100% 100%,transparent var(--notch),#000 calc(var(--notch) + .5px)) bottom / 100% 51% no-repeat;mask:radial-gradient(circle at 100% 0,transparent var(--notch),#000 calc(var(--notch) + .5px)) top / 100% 51% no-repeat,radial-gradient(circle at 100% 100%,transparent var(--notch),#000 calc(var(--notch) + .5px)) bottom / 100% 51% no-repeat}.ticket-kicker{font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#a47a22}.ticket-cup{font-family:var(--font-display);font-size:1.05rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-holder{margin-top:.25rem;font-family:var(--font-display);font-size:1.45rem;font-weight:800;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-when,.ticket-detail{font-size:.8rem;color:#5b4d3b}.ticket-when{margin-top:.3rem;font-weight:700}.ticket-stub{position:relative;display:grid;place-content:center;justify-items:center;gap:.1rem;padding:.6rem;border:0;border-left:2px dashed rgba(90,70,40,.28);border-radius:0 16px 16px 0;color:inherit;font:inherit;text-align:center;-webkit-mask:radial-gradient(circle at 0 0,transparent var(--notch),#000 calc(var(--notch) + .5px)) top / 100% 51% no-repeat,radial-gradient(circle at 0 100%,transparent var(--notch),#000 calc(var(--notch) + .5px)) bottom / 100% 51% no-repeat;mask:radial-gradient(circle at 0 0,transparent var(--notch),#000 calc(var(--notch) + .5px)) top / 100% 51% no-repeat,radial-gradient(circle at 0 100%,transparent var(--notch),#000 calc(var(--notch) + .5px)) bottom / 100% 51% no-repeat;transition:transform .45s var(--spring);touch-action:pan-y}.ticket-no-label{font-size:.7rem;font-weight:800;letter-spacing:.12em;color:#a47a22}.ticket-no{font-family:var(--font-display);font-size:1.9rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.cup-ticket.tearable .ticket-stub{cursor:grab;background:linear-gradient(180deg,#f7dc8f,#ddb358);color:#2a1d04}.ticket-stub-label{font-family:var(--font-display);font-size:1.3rem;font-weight:800}.ticket-stub-hint{font-size:.68rem;font-weight:700;opacity:.75;line-height:1.2}.cup-ticket.tearable .ticket-stub:not(:disabled){animation:stub-nudge 2.6s ease-in-out 1.2s infinite}@keyframes stub-nudge{0%,78%,to{transform:none}84%{transform:translate(6px) rotate(1.5deg)}90%{transform:translate(-1px)}}.cup-ticket.torn .ticket-stub{animation:stub-fly .6s cubic-bezier(.5,0,.75,0) forwards}@keyframes stub-fly{0%{transform:none;opacity:1}to{transform:translate(160px,60px) rotate(38deg);opacity:0}}@media(max-width:420px){.cup-ticket{--stub-w: 96px}.ticket-holder{font-size:1.25rem}}.seat-progress{display:flex;align-items:center;gap:.35rem}.seat-progress span{width:26px;height:6px;border-radius:999px;background:var(--border);transition:background .4s ease,transform .5s var(--spring)}.seat-progress span.on{background:var(--live);transform:scaleY(1.25)}.seat-progress strong{margin-left:.3rem;font-size:.82rem;font-variant-numeric:tabular-nums}.seat-slot.waiting{animation:seat-breathe 2.6s ease-in-out infinite}@keyframes seat-breathe{0%,to{opacity:1}50%{opacity:.62}}.seat-slot.arrived{animation:seat-pop .8s var(--spring);box-shadow:0 0 0 3px color-mix(in srgb,var(--live) 35%,transparent)}@keyframes seat-pop{0%{transform:scale(.92)}45%{transform:scale(1.04)}to{transform:none}}.code-slots{position:relative;display:grid;grid-template-columns:repeat(var(--slots, 6),minmax(0,1fr));gap:.45rem;width:min(100%,340px);cursor:text}.code-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;opacity:0;font-size:16px;border:0;background:transparent;color:transparent;caret-color:transparent}.code-slot{position:relative;display:grid;place-items:center;aspect-ratio:.82;border-radius:12px;background:var(--surface-2);border:1.5px solid var(--border);font-family:var(--font-display);font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums;transition:border-color .2s ease,box-shadow .25s ease,background .25s ease,transform .3s var(--spring)}.code-slot.filled{background:var(--surface);border-color:var(--border-strong)}.code-slot.active{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent);transform:translateY(-1px)}.code-digit{display:inline-block;animation:digit-land .38s var(--spring)}@keyframes digit-land{0%{opacity:0;transform:translateY(-10px) scale(.7)}to{opacity:1;transform:none}}.code-caret{width:2px;height:1.3rem;border-radius:2px;background:var(--primary);animation:caret-blink 1.05s steps(1) infinite}@keyframes caret-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.kz-toast.swipe{transform:translate(calc(-50% + var(--dx, 0px)));transition:transform .4s var(--spring),opacity .24s ease;touch-action:pan-y;user-select:none;-webkit-user-select:none;animation:toast-in .55s var(--spring)}.kz-toast.swipe.dragging{transition:none}.kz-toast.swipe.gone{transition:transform .26s ease-in,opacity .24s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,24px) scale(.92)}to{opacity:1;transform:translate(-50%)}}.switch-row input[type=checkbox],.admin-check input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;flex:none;width:46px;height:28px;margin:0;border-radius:999px;background:var(--border-strong);cursor:pointer;transition:background .25s ease}.switch-row input[type=checkbox]:before,.admin-check input[type=checkbox]:before{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:999px;background:#fff;box-shadow:0 2px 5px #00000040;transition:transform .38s var(--spring),width .2s ease}.switch-row input[type=checkbox]:checked,.admin-check input[type=checkbox]:checked{background:var(--ok)}.switch-row input[type=checkbox]:checked:before,.admin-check input[type=checkbox]:checked:before{transform:translate(18px)}.switch-row input[type=checkbox]:active:before,.admin-check input[type=checkbox]:active:before{width:28px}.switch-row input[type=checkbox]:checked:active:before,.admin-check input[type=checkbox]:checked:active:before{transform:translate(12px)}.switch-row input[type=checkbox]:focus-visible,.admin-check input[type=checkbox]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.admin-check{display:inline-flex;align-items:center;gap:.6rem}.quest-done{display:inline-flex;align-items:center;gap:.25rem;font-weight:800}.spring-check{width:18px;height:18px;padding:2px;border-radius:50%;background:#2b7a5b;animation:check-pop .6s var(--spring)}.spring-check path{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:22;stroke-dashoffset:22;animation:check-draw .45s var(--ease-out) .18s forwards}@keyframes check-pop{0%{transform:scale(.3)}to{transform:none}}@keyframes check-draw{to{stroke-dashoffset:0}}.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}.skeleton{display:grid;gap:.7rem}.skeleton.card-flat{padding:1.1rem}.sk{display:block;height:.9rem;border-radius:8px;background:linear-gradient(90deg,var(--surface-2) 0%,color-mix(in srgb,var(--border) 70%,var(--surface)) 45%,var(--surface-2) 90%);background-size:220% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}.sk-title{width:42%;height:1.3rem}.sk-short{width:64%}@keyframes sk-shimmer{0%{background-position:100% 0}to{background-position:-120% 0}}::view-transition-old(root){animation:vt-out .16s ease-in both}::view-transition-new(root){animation:vt-in .36s cubic-bezier(.16,1,.3,1) both}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(10px)}}.app-header{view-transition-name:app-header}.tabbar{view-transition-name:tabbar}.cup-island{view-transition-name:cup-island}.rank-badge{--tier: #8b8f96;--tier-2: #c7ccd3;display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem .15rem .3rem;border-radius:999px;font-size:.78rem;font-weight:800;color:var(--text);background:color-mix(in srgb,var(--tier) 16%,transparent);border:1px solid color-mix(in srgb,var(--tier) 45%,transparent);white-space:nowrap}.rank-badge svg{width:18px;height:18px;flex:none}.rank-badge svg path:first-child{fill:var(--tier);stroke:var(--tier-2);stroke-width:1.2}.rank-badge .rank-mark{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.rank-badge.lg{gap:.45rem;padding:.3rem .85rem .3rem .45rem;font-size:1rem}.rank-badge.lg svg{width:28px;height:28px}.rank-badge.tier-1{--tier: #b0703f;--tier-2: #e0a574}.rank-badge.tier-2{--tier: #8e99a6;--tier-2: #dfe5ec}.rank-badge.tier-3{--tier: #d4a84b;--tier-2: #f7dc8f}.rank-badge.tier-4{--tier: #4fa9ad;--tier-2: #b8f0f0}.rank-badge.tier-5{--tier: #6d8dff;--tier-2: #d6e0ff}.cup-hero .rank-badge,.practice-result .rank-badge{color:#fffaf0}.rank-card{display:grid;gap:.55rem}.rank-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.rank-rating{display:grid;justify-items:end;line-height:1.1}.rank-rating strong{font-family:var(--font-display);font-size:1.9rem}.rank-bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.rank-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d4a84b,#f2c14e);transition:width .8s var(--spring)}.rank-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;font-size:.8rem;color:var(--text-muted)}.rank-stats span{display:grid;justify-items:center;padding:.45rem .2rem;border-radius:12px;background:var(--surface-2);text-align:center}.rank-stats strong{font-family:var(--font-display);font-size:1.2rem;color:var(--text)}.practice-link{display:flex;align-items:center;gap:.8rem;width:100%;padding:.8rem 1rem;border:1px solid var(--border);color:var(--text);text-align:left;cursor:pointer;transition:transform .25s var(--spring),box-shadow .25s ease}.practice-link:hover{box-shadow:var(--shadow)}.practice-link:active{transform:scale(.98)}.practice-link .grow{display:grid;min-width:0}.practice-link-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);flex:none}.practice-hero>.chip{justify-self:start}.practice-seats{display:flex;flex-wrap:wrap;gap:.4rem}.practice-seat{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem .3rem .3rem;border-radius:999px;background:#ffffff1f;font-weight:700;font-size:.88rem;animation:seat-pop .6s var(--spring)}.practice-seat .muted{color:#fffaf0a6}.practice-seat.bot{padding-left:.55rem;opacity:.55;font-weight:600;border:1px dashed rgba(255,255,255,.3);background:transparent;animation:none}.practice-seat.bot .icon{width:16px;height:16px}.practice-setup{display:grid;gap:.6rem}.practice-result{display:grid;gap:.6rem;padding:1rem;border-radius:var(--radius);background:#ffffff14}.practice-result .cup-meta .icon{width:16px;height:16px;vertical-align:-2px}.practice-result-main{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.practice-place{font-family:var(--font-display);font-size:2.4rem;line-height:1}.practice-delta{margin-left:.45rem;padding:.1rem .5rem;border-radius:999px;font-weight:800;font-size:.9rem;animation:seat-pop .7s var(--spring)}.practice-delta.up{background:#5fd39a33;color:#7ee0ad}.practice-delta.down{background:#ef8a7433;color:#f3a592}.practice-tierup{font-weight:800;color:#f2c14e}button.btn-ghost.practice-cancel,button.btn-ghost.practice-cancel:hover:not(:disabled){justify-self:start;color:#fffaf0c7;background:transparent}.header-icon{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .25s var(--spring),background .2s ease}.header-icon:active{transform:scale(.92)}.header-icon.active{background:color-mix(in srgb,var(--primary) 14%,var(--surface));color:var(--primary)}.header-icon .icon{width:20px;height:20px}.header-icon .badge{position:absolute;top:-5px;right:-5px}.home-greet{display:grid;gap:.2rem}.home-greet h1{margin:0;font-family:var(--font-display);font-size:clamp(1.8rem,5vw,2.4rem);line-height:1.1}.home-greet p{margin:0;display:inline-flex;align-items:center;gap:.45rem}.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch}@media(max-width:760px){.home-grid{grid-template-columns:minmax(0,1fr)}}.home-card.casual{--home-accent: linear-gradient(90deg, #2f7a57, #7fbf8f)}.home-card.casual .home-icon{color:var(--ok);background:var(--ok-soft)}.home-tables{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem}.home-table{display:grid;justify-items:center;gap:.3rem;padding:.5rem .2rem;border-radius:14px;background:var(--surface-2);border:1px solid var(--border);min-height:72px}.home-table strong{font-family:var(--font-display);font-size:1.05rem;line-height:1}.home-table.playing{border-color:color-mix(in srgb,var(--live) 50%,transparent);background:color-mix(in srgb,var(--live) 10%,var(--surface-2))}.home-table.lobby{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.home-table-seats{display:flex;justify-content:center;flex-wrap:wrap;gap:2px;min-height:24px;align-items:center}.home-table-seats .avatar{width:22px;height:22px;font-size:.6rem}.home-card{position:relative;display:flex;flex-direction:column;gap:.8rem;padding:1.15rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;animation:home-card-in .6s var(--spring) both}.home-card.daily{animation-delay:.05s}.home-card.ranked{animation-delay:.1s}.home-card.cup{animation-delay:.15s}@keyframes home-card-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.home-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--home-accent, var(--primary))}.home-card.daily{--home-accent: linear-gradient(90deg, #e2873b, #f2c14e)}.home-card.ranked{--home-accent: linear-gradient(90deg, #6d8dff, #4fa9ad)}.home-card.cup{--home-accent: linear-gradient(90deg, #c99a2e, #f7dc8f)}.home-card-head{display:flex;align-items:center;gap:.75rem}.home-card-head h2{margin:0;font-family:var(--font-display);font-size:1.3rem;line-height:1.15}.home-card-head .grow{display:grid;min-width:0}.home-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:14px;background:var(--surface-2);color:var(--primary)}.home-icon .icon{width:22px;height:22px}.home-card-foot{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:auto;padding-top:.2rem}.home-card-foot .muted{min-width:0}.home-streak{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer}.home-streak.lit{border-color:color-mix(in srgb,#e2873b 45%,transparent);background:color-mix(in srgb,#e2873b 14%,var(--surface))}.home-puzzles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.home-puzzle{display:grid;justify-items:center;gap:.1rem;padding:.6rem .3rem;border-radius:14px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;transition:transform .25s var(--spring)}.home-puzzle:active{transform:scale(.95)}.home-puzzle-no{font-family:var(--font-display);font-size:1.4rem;font-weight:800;line-height:1}.home-puzzle.done{border-color:color-mix(in srgb,var(--ok) 45%,transparent);background:var(--ok-soft);color:var(--ok)}.home-quests{display:grid;gap:.4rem}.home-quest{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.home-quest.done .grow{color:var(--text-muted)}.home-quest-dot{width:18px;height:18px;flex:none;border-radius:50%;border:2px solid var(--border-strong)}.home-rank{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.home-rank-num{display:grid;justify-items:end;line-height:1.1}.home-rank-num strong{font-family:var(--font-display);font-size:2.1rem}.home-countdown{display:flex;gap:.5rem}.home-countdown .cd-cell{display:grid;justify-items:center;flex:1;padding:.55rem .3rem;border-radius:14px;background:var(--surface-2)}.home-countdown .cd-cell strong{font-family:var(--font-display);font-size:1.7rem;line-height:1;font-variant-numeric:tabular-nums}.home-countdown .cd-cell span{font-size:.72rem;color:var(--text-muted)}.home-cup-line{margin:0;font-weight:700;display:flex;align-items:center;gap:.4rem}.home-cup-line .icon{width:18px;height:18px;color:var(--gold, #c99a2e)}.tables-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.tables-head .page-title,.tables-head .page-sub{margin:0}.lb-podium{display:flex;align-items:flex-end;justify-content:center;gap:.6rem}.lb-podium-step{position:relative;display:grid;justify-items:center;gap:.3rem;flex:1 1 0;max-width:200px;min-width:0;padding:.9rem .5rem .8rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);text-align:center;animation:home-card-in .6s var(--spring) both}.lb-podium-step.p1{padding-top:1.4rem;border-color:color-mix(in srgb,#d4a84b 60%,transparent);background:linear-gradient(180deg,color-mix(in srgb,#f2c14e 18%,var(--surface)),var(--surface));box-shadow:0 16px 40px color-mix(in srgb,#d4a84b 22%,transparent);animation-delay:.08s}.lb-podium-step.p3{animation-delay:.14s}.lb-podium-step.me{outline:2px solid var(--primary)}.lb-podium-place{position:absolute;top:-12px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-weight:800;font-size:.85rem;background:var(--surface-2);border:1px solid var(--border)}.lb-podium-step.p1 .lb-podium-place{background:linear-gradient(180deg,#f7dc8f,#ddb358);color:#2a1d04;border-color:transparent}.lb-podium-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-podium-value{font-family:var(--font-display);font-size:1.5rem;font-weight:800;line-height:1}.lb-me-line{margin:0;text-align:center}.lb-card{display:grid;gap:.1rem;padding:.4rem}.lb-line{display:flex;align-items:center;gap:.6rem;padding:.55rem .6rem;border-radius:12px}.lb-line.me{background:color-mix(in srgb,var(--primary) 9%,transparent)}.lb-line .lb-rank{width:1.6rem;font-weight:800;color:var(--text-muted);text-align:center;flex:none}.lb-who{display:grid;min-width:0}.lb-who strong,.lb-who .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-value{min-width:3rem;text-align:right;font-family:var(--font-display);font-size:1.15rem;font-variant-numeric:tabular-nums}.lb-head{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.lb-col{width:3rem;flex:none;text-align:right;font-variant-numeric:tabular-nums}.lb-col .icon{width:16px;height:16px}.lb-name{display:flex;align-items:center;gap:.45rem;min-width:0;overflow:hidden;white-space:nowrap}@media(max-width:480px){.lb-col{width:2.3rem;font-size:.85rem}.lb-name .avatar{display:none}.lb-line{gap:.4rem;padding:.5rem .35rem}}.record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:760px){.record-grid{grid-template-columns:minmax(0,1fr)}}.record-card{display:grid;gap:.7rem;align-content:start}.record-head{display:flex;align-items:center;gap:.6rem}.record-top{display:flex;align-items:center;gap:.6rem;padding:.7rem;border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,#f2c14e 14%,var(--surface)),var(--surface-2))}.record-top .grow{display:grid;min-width:0}.record-top .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-value{font-family:var(--font-display);font-size:1.35rem;font-weight:800;white-space:nowrap}.record-list{display:grid;gap:.3rem;margin:0;padding:0;list-style:none;font-size:.9rem}.record-list li{display:flex;align-items:center;gap:.5rem;padding:.2rem .3rem;border-radius:8px}.record-list li .grow,.record-top .grow,.lb-line .grow,.home-quest .grow{flex:1 1 auto;min-width:0}.record-list li.me{background:color-mix(in srgb,var(--primary) 9%,transparent)}.ranked-theme{display:contents;--surface-strong: #25276a;--text-on-strong: #f1f2ff;--primary: #4f5bd5;--primary-hover: #3e48b6;--primary-text: #ffffff;--accent: #7aa2ff;--accent-text: #25307a;--gold: #6f8cff;--gold-light: #a9c0ff;--gold-grad: linear-gradient(180deg, #a4bdff 0%, #5e76ea 100%);--gold-edge: #3a4bb0;--gold-ink: #ffffff;--live: #58c7ff;--live-soft: rgba(88, 199, 255, .16)}:root[data-theme=salon] .ranked-theme{--primary: #8f99ff;--primary-hover: #a4acff;--accent: #8fb0ff;--accent-text: #dfe6ff}.ranked-theme .cup-hero{background:radial-gradient(120% 120% at 10% 0%,#3b3f9c,#25276a 55%,#171846)}.ranked-theme .cup-hero:after{background:radial-gradient(circle,rgba(120,160,255,.35),transparent 70%)}.ranked-theme .ticket-main,.ranked-theme .ticket-stub{background:linear-gradient(160deg,#f6f8ff,#dfe6ff 60%,#c8d3ff)}.ranked-theme .ticket-kicker,.ranked-theme .ticket-no-label{color:#4a58c9}.ranked-theme .cup-ticket.tearable .ticket-stub{background:linear-gradient(180deg,#a4bdff,#5e76ea);color:#fff}.ranked-hero{position:relative;display:grid;gap:1.1rem;padding:1.6rem 1.4rem;border-radius:var(--radius-lg);color:#f1f2ff;background:radial-gradient(60% 80% at 85% 0%,rgba(120,90,255,.45),transparent 70%),radial-gradient(70% 90% at 0% 100%,rgba(40,170,255,.28),transparent 70%),linear-gradient(160deg,#20225c,#15163f);box-shadow:0 24px 60px #19145059;overflow:hidden}.ranked-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px;mask-image:radial-gradient(80% 70% at 50% 30%,#000,transparent);-webkit-mask-image:radial-gradient(80% 70% at 50% 30%,#000,transparent);pointer-events:none}.ranked-hero>*{position:relative}.ranked-hero-top{display:flex;align-items:center;gap:1.1rem}.ranked-hero-text{display:grid;gap:.35rem;min-width:0;flex:1}.ranked-hero h1,.ranked-setup h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,7vw,2.8rem);line-height:1}.ranked-kicker{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#9fb4ff}.ranked-kicker .icon{width:16px;height:16px}.ranked-bar{height:10px;border-radius:999px;background:#ffffff1f;overflow:hidden}.ranked-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#58c7ff,#8f7bff);box-shadow:0 0 16px #7896ffb3;transition:width .9s var(--spring)}.ranked-sub,.ranked-desc{font-size:.86rem;color:#f1f2ffb8}.ranked-desc{margin:0}.rank-emblem{--tier: #8b8f96;--tier-2: #d7dbe1;position:relative;flex:none;width:116px;height:128px;display:grid;place-items:center;animation:emblem-in .9s var(--spring)}.rank-emblem svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.rank-emblem.tier-1{--tier: #a3602f;--tier-2: #f0b989}.rank-emblem.tier-2{--tier: #7d8896;--tier-2: #eef2f7}.rank-emblem.tier-3{--tier: #c8952e;--tier-2: #ffe7a3}.rank-emblem.tier-4{--tier: #3d9ea3;--tier-2: #c6fbfb}.rank-emblem.tier-5{--tier: #5a78ff;--tier-2: #e3e9ff}.emblem-glow{fill:var(--tier);opacity:.35;filter:blur(10px);animation:emblem-glow 3s ease-in-out infinite}.emblem-shield{stroke:#ffffff8c;stroke-width:1.5}.emblem-inner{fill:#0a0c2861;stroke:#ffffff47;stroke-width:1}.emblem-pip{fill:#fff;opacity:.9}.emblem-rating{position:relative;margin-top:-8px;font-family:var(--font-display);font-size:1.55rem;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.45)}@keyframes emblem-in{0%{opacity:0;transform:scale(.6) rotate(-8deg)}to{opacity:1;transform:none}}@keyframes emblem-glow{0%,to{opacity:.25}50%{opacity:.55}}.rank-ladder{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;list-style:none}.rank-ladder li{position:relative;display:grid;justify-items:center;gap:.2rem;text-align:center;color:#f1f2ff80}.rank-ladder li:before{content:"";position:absolute;top:8px;left:-50%;right:50%;height:3px;background:#ffffff24}.rank-ladder li:first-child:before{display:none}.rank-ladder li.passed:before,.rank-ladder li.current:before{background:linear-gradient(90deg,#58c7ff,#8f7bff)}.ladder-node{position:relative;z-index:1;width:19px;height:19px;border-radius:50%;background:#1c1e52;border:3px solid rgba(255,255,255,.22)}.rank-ladder li.passed .ladder-node{background:#8f7bff;border-color:#b9adff}.rank-ladder li.current .ladder-node{background:#fff;border-color:#58c7ff;box-shadow:0 0 0 5px #58c7ff40,0 0 18px #58c7ffb3;animation:ladder-pulse 2s ease-in-out infinite}.rank-ladder li.passed,.rank-ladder li.current{color:#f1f2ff}.ladder-name{font-size:.72rem;font-weight:800}.ladder-min{font-size:.62rem;opacity:.7}@keyframes ladder-pulse{0%,to{box-shadow:0 0 0 5px #58c7ff40,0 0 18px #58c7ff99}50%{box-shadow:0 0 0 9px #58c7ff1f,0 0 26px #58c7ffe6}}.ranked-play{display:grid;justify-items:center;gap:.15rem;width:100%;padding:1.05rem 1rem;border:0;border-radius:20px;color:#fff;cursor:pointer;background:linear-gradient(180deg,#7d95ff,#5561e0 55%,#4a3fc9);box-shadow:0 6px #2e2a8c,0 18px 40px #505aff73,inset 0 1px #ffffff59;transition:transform .2s var(--spring),box-shadow .2s ease;animation:play-breathe 2.8s ease-in-out infinite}.ranked-play span{font-family:var(--font-display);font-size:1.9rem;font-weight:800;letter-spacing:.02em;line-height:1}.ranked-play small{font-size:.8rem;opacity:.85}.ranked-play:active{transform:translateY(4px) scale(.99);box-shadow:0 2px #2e2a8c,0 10px 24px #505aff66,inset 0 1px #ffffff59}@keyframes play-breathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.12)}}.ranked-locked{display:grid;gap:.35rem;padding:.9rem 1rem;border-radius:16px;background:#ffffff14}.ranked-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.ranked-stats span{display:grid;justify-items:center;min-width:0;padding:.6rem .35rem;text-align:center;border-radius:16px;background:var(--surface);border:1px solid color-mix(in srgb,#5561e0 25%,var(--border));font-size:.78rem;color:var(--text-muted)}.ranked-stats strong{font-family:var(--font-display);font-size:1.35rem;color:var(--text)}.ranked-stats span.up strong{color:var(--rise)}.ranked-stats span.down strong{color:var(--fall)}.ranked-setup{display:grid;gap:.65rem;padding:1.3rem 1.2rem;border-radius:var(--radius-lg);background:var(--surface);border:1px solid color-mix(in srgb,#5561e0 30%,var(--border));box-shadow:0 18px 44px #28287829;animation:home-card-in .5s var(--spring)}.ranked-setup .ranked-kicker{color:#5561e0}.ranked-back{justify-self:start;margin-left:-.4rem}.ranked-summary{margin:.2rem 0 0;padding:.7rem .85rem;border-radius:14px;background:color-mix(in srgb,#5561e0 9%,var(--surface-2));font-weight:600}.ranked-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.cup-island.ranked.tone-urgent .island-action,.cup-island.ranked.tone-turn .island-action{background:linear-gradient(180deg,#a4bdff,#5e76ea);color:#fff}.cup-island.ranked .island-icon{color:#9fb4ff}.home-card.ranked .home-icon{color:#5561e0;background:color-mix(in srgb,#5561e0 12%,var(--surface-2))}.home-card.cup .home-icon{color:#b8862b;background:color-mix(in srgb,#f2c14e 16%,var(--surface-2))}.home-card.daily .home-icon{color:#d9772e;background:color-mix(in srgb,#e2873b 14%,var(--surface-2))}@media(max-width:480px){.ranked-hero{padding:1.3rem 1rem}.rank-emblem{width:96px;height:106px}.emblem-rating{font-size:1.3rem}.ladder-name{font-size:.62rem}}.ranked-setup-wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1rem;align-items:start}@media(max-width:760px){.ranked-setup-wrap{grid-template-columns:minmax(0,1fr)}}.ranked-points{display:grid;gap:.7rem;padding:1.2rem;border-radius:var(--radius-lg);color:#f1f2ff;background:radial-gradient(70% 80% at 20% 0%,rgba(120,90,255,.4),transparent 70%),linear-gradient(160deg,#20225c,#15163f);box-shadow:0 18px 44px #1914504d}.ranked-points-range{display:flex;align-items:baseline;gap:.5rem}.ranked-points-range .up,.ranked-points-range .down{font-family:var(--font-display);font-size:2.4rem;font-weight:800;line-height:1;transition:color .3s ease}.ranked-points-range .up{color:#6fe3a8;text-shadow:0 0 18px rgba(111,227,168,.45)}.ranked-points-range .down{color:#ff9b85}.ranked-points-range .muted{color:#f1f2ff99}.ranked-points-scale{display:grid;gap:.35rem}.ranked-points-row{display:grid;grid-template-columns:8.2rem minmax(0,1fr) 2.6rem;align-items:center;gap:.5rem;font-size:.82rem}.ranked-points-label{color:#f1f2ffc7;white-space:nowrap}.ranked-points-bar{height:8px;border-radius:999px;background:#ffffff1a;overflow:hidden}.ranked-points-bar span{display:block;height:100%;border-radius:inherit;transition:width .5s var(--spring)}.ranked-points-row.up .ranked-points-bar span{background:linear-gradient(90deg,#58c7ff,#6fe3a8)}.ranked-points-row.down .ranked-points-bar span{background:linear-gradient(90deg,#ff9b85,#e2573f)}.ranked-points-row strong{text-align:right;font-variant-numeric:tabular-nums}.ranked-points-row.up strong{color:#6fe3a8}.ranked-points-row.down strong{color:#ff9b85}.ranked-result{background:radial-gradient(70% 60% at 50% 30%,#3a3f9f,#1d1f55 55%,#0e0f2c);--gold-grad: linear-gradient(180deg, #a4bdff 0%, #5e76ea 100%);--gold-edge: #3a4bb0;--gold-ink: #ffffff}.ranked-result-delta{display:inline-flex;align-items:flex-end;gap:.15rem;font-family:var(--font-display);font-size:clamp(3.6rem,16vw,5.5rem);font-weight:800;line-height:1}.ranked-result-sign{line-height:1.15}.ranked-result-unit{margin-left:.35rem;padding-bottom:.55em;font-size:1.2rem;line-height:1;opacity:.75}.ranked-result-delta.up{color:#6fe3a8;filter:drop-shadow(0 0 18px rgba(111,227,168,.45))}.ranked-result-delta.down{color:#ff9b85;filter:drop-shadow(0 0 18px rgba(255,155,133,.35))}.ranked-result-place{color:#f1f2ffbf;font-weight:700}.ranked-result-emblem{position:relative;display:grid;place-items:center;width:180px;height:180px}.ranked-result-emblem .rank-emblem{transform:scale(1.25)}.ranked-result.stage-1 .rank-emblem,.ranked-result.stage-2 .rank-emblem{animation:emblem-swap .8s var(--spring)}@keyframes emblem-swap{0%{transform:scale(.6) rotateY(90deg)}to{transform:scale(1.25)}}.ranked-result-rays{position:absolute;top:-30px;right:-30px;bottom:-30px;left:-30px;border-radius:50%;opacity:0;background:repeating-conic-gradient(from 0deg,transparent 0deg 14deg,rgba(255,214,160,.26) 14deg 22deg);mask-image:radial-gradient(circle,#000 28%,transparent 70%);-webkit-mask-image:radial-gradient(circle,#000 28%,transparent 70%);transition:opacity .6s ease}.ranked-result.tier-up.stage-1 .ranked-result-rays,.ranked-result.tier-up.stage-2 .ranked-result-rays{opacity:1}.ranked-result.lvl-3 .ranked-result-rays,.ranked-result.lvl-4 .ranked-result-rays,.ranked-result.lvl-5 .ranked-result-rays{animation:rays-spin 6s linear infinite}.ranked-result.lvl-3 .ranked-result-rays{background:repeating-conic-gradient(from 0deg,transparent 0deg 12deg,rgba(255,210,110,.4) 12deg 20deg)}.ranked-result.lvl-4 .ranked-result-rays{background:repeating-conic-gradient(from 0deg,transparent 0deg 10deg,rgba(120,240,240,.45) 10deg 18deg)}.ranked-result.lvl-5 .ranked-result-rays{top:-60px;right:-60px;bottom:-60px;left:-60px;background:repeating-conic-gradient(from 0deg,transparent 0deg 8deg,rgba(190,210,255,.6) 8deg 15deg);animation-duration:3.5s}.ranked-result.tier-up.stage-1 .ceremony-inner,.ranked-result.tier-up.stage-2 .ceremony-inner{animation:tier-flash .7s ease-out}@keyframes tier-flash{0%{filter:brightness(2.2)}to{filter:none}}@keyframes rays-spin{to{transform:rotate(360deg)}}.ranked-result-tier{font-family:var(--font-display);font-size:1.5rem;font-weight:800;opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s var(--spring)}.ranked-result.stage-1 .ranked-result-tier,.ranked-result.stage-2 .ranked-result-tier{opacity:1;transform:none}.ranked-result-tier.up{color:#a9c0ff;text-shadow:0 0 20px rgba(140,170,255,.7)}.ranked-result-tier.down{color:#ff9b85}.ranked-result .btn{opacity:0;transition:opacity .5s ease}.ranked-result.stage-2 .btn{opacity:1}@media(prefers-reduced-motion:reduce){.seg-glider{transition:none}.cup-ticket,.cup-ticket.tearable .ticket-stub:not(:disabled),.ranked-play,.emblem-glow,.rank-ladder li.current .ladder-node{animation:none}.spring-check path{stroke-dashoffset:0}.roll-strip{transition:none}.live-dot,.dot.pulse{animation:none}}.rank-mark-flair{--tier: #b0703f;--tier-2: #e0a574;display:inline-grid;place-items:center;width:1.05em;height:1.05em;margin-right:.28em;vertical-align:-.14em;flex:none}.rank-mark-flair svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 1px 1.5px color-mix(in srgb,var(--tier) 45%,transparent))}.rank-mark-flair .rmf-shield{fill:var(--tier);stroke:var(--tier-2);stroke-width:1.3}.rank-mark-flair .rmf-inner{fill:var(--tier-2);opacity:.55}.rank-mark-flair.tier-2{--tier: #8e99a6;--tier-2: #eef2f6}.rank-mark-flair.tier-3{--tier: #d4a84b;--tier-2: #fbe7a6}.rank-mark-flair.tier-4{--tier: #3f9fa4;--tier-2: #c4f5f5}.rank-mark-flair.tier-5{--tier: #6d8dff;--tier-2: #e3e9ff}.rank-mark-flair.tier-5 .rmf-inner{opacity:.9;fill:var(--tier-2);animation:rmf-shimmer 2.8s ease-in-out infinite}@keyframes rmf-shimmer{0%,to{opacity:.45}50%{opacity:1}}.flair-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.flair-card{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem .85rem;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.flair-card:hover:not(:disabled){transform:translateY(-1px)}.flair-card.active{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 30%,transparent)}.flair-preview{display:inline-flex;align-items:center;font-weight:800;font-size:1.05rem;min-height:1.6rem}@media(prefers-reduced-motion:reduce){.rank-mark-flair.tier-5 .rmf-inner,.ranked-result .ranked-result-rays,.ranked-result.tier-up .ceremony-inner{animation:none}}.rn-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:96;display:grid;place-items:center;padding:1rem;background:color-mix(in srgb,#0b0c1f 58%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fx-fade-in .25s ease-out}.rn-dialog{position:relative;width:min(460px,100%);max-height:calc(100dvh - 2rem);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:.8rem;padding:1.1rem 1.2rem;border-radius:26px;background:radial-gradient(90% 55% at 50% 0%,color-mix(in srgb,var(--primary) 16%,transparent),transparent 70%),var(--surface);border:1px solid var(--border);box-shadow:0 30px 80px #0006;color:var(--text);overflow:hidden;touch-action:pan-y;animation:rn-in .42s cubic-bezier(.2,.9,.3,1.15)}@keyframes rn-in{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}.rn-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.rn-kicker{display:inline-flex;align-items:center;gap:.35rem;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.rn-kicker .icon{width:15px;height:15px;color:#d4a84b}.rn-close{margin:-.3rem -.4rem -.3rem 0}.rn-page{display:grid;align-content:start;justify-items:center;gap:.55rem;min-height:0;overflow-y:auto;padding:.2rem .1rem;text-align:center;animation:rn-slide-right .38s cubic-bezier(.2,.9,.3,1)}.rn-page.from-left{animation-name:rn-slide-left}@keyframes rn-slide-right{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes rn-slide-left{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}.rn-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:20px;background:var(--gold-grad);color:var(--gold-ink);box-shadow:0 12px 28px #d4a84b59}.rn-icon .icon{width:32px;height:32px}.rn-icon-hero{width:76px;height:76px;border-radius:24px;animation:rn-hero 3.2s ease-in-out infinite}@keyframes rn-hero{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-4px) rotate(3deg)}}.rn-step{font-size:.78rem;font-weight:700;color:var(--text-muted)}.rn-title{margin:0;font-family:var(--font-display);font-size:clamp(1.35rem,5.5vw,1.65rem);font-weight:900;line-height:1.15}.rn-what{margin:0;font-size:.98rem;line-height:1.5}.rn-how{width:100%;display:grid;gap:.45rem;margin-top:.2rem;padding:.85rem .95rem;border-radius:16px;text-align:left;background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px solid color-mix(in srgb,var(--primary) 22%,transparent)}.rn-how-label{font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.rn-how ol{margin:0;padding:0;list-style:none;counter-reset:rn;display:grid;gap:.5rem}.rn-how li{position:relative;padding-left:2rem;font-size:.93rem;line-height:1.45;counter-increment:rn}.rn-how li:before{content:counter(rn);position:absolute;left:0;top:.05rem;width:1.4rem;height:1.4rem;display:grid;place-items:center;border-radius:50%;font-size:.75rem;font-weight:800;color:#fff;background:var(--primary)}.rn-overview{width:100%;margin:.2rem 0 0;padding:0;list-style:none;display:grid;gap:.35rem}.rn-overview button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.6rem .75rem;border-radius:14px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--text);font:inherit;font-weight:700;text-align:left;cursor:pointer;transition:border-color .2s,transform .2s}.rn-overview button:hover{border-color:var(--primary);transform:translate(2px)}.rn-overview .icon{width:20px;height:20px;color:var(--primary)}.rn-overview .rn-chev{width:16px;height:16px;color:var(--text-muted)}.rn-dots{display:flex;justify-content:center;gap:.4rem}.rn-dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:color-mix(in srgb,var(--text) 22%,transparent);cursor:pointer;transition:width .3s var(--spring, ease),background .3s}.rn-dots button.on{width:22px;background:var(--primary)}.rn-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.rn-actions-right{display:flex;gap:.5rem}.footer-link{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.footer-link:hover{color:var(--text)}.notes-list{display:grid;gap:.5rem}.notes-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.7rem .85rem;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color .2s,transform .2s}.notes-row:hover{border-color:var(--primary);transform:translateY(-1px)}.notes-row-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--gold-grad);color:var(--gold-ink)}.notes-row-text{display:grid;gap:.1rem}.notes-row-go{font-weight:800;font-size:.85rem;color:var(--primary)}@media(max-width:420px){.rn-dialog{padding:1rem .95rem}.rn-actions .btn{padding-left:.85rem;padding-right:.85rem}}@media(prefers-reduced-motion:reduce){.rn-dialog,.rn-page,.rn-icon-hero{animation:none}}.log-bots{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.log-bots input{width:1rem;height:1rem;accent-color:var(--primary)}.log-type.botmeccs{opacity:.7}.early-win{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 0 .6rem;padding:.7rem .85rem;border-radius:14px;border:1px solid color-mix(in srgb,#d4a84b 55%,transparent);background:color-mix(in srgb,#d4a84b 14%,var(--surface));box-shadow:0 8px 24px color-mix(in srgb,#d4a84b 22%,transparent);animation:early-win-in .5s var(--spring, ease) both}.early-win-text{display:grid;gap:.15rem;min-width:0}.early-win-text strong{font-family:var(--font-display);font-size:1.05rem}.early-win-text span{font-size:.82rem;color:var(--text-muted);line-height:1.35}.early-win .btn{flex:none}@keyframes early-win-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:520px){.early-win{flex-direction:column;align-items:stretch}}@media(prefers-reduced-motion:reduce){.early-win{animation:none}}.rank-track{display:grid;gap:.45rem;margin-top:.4rem}.rank-track-bar{position:relative;height:12px;border-radius:999px;background:#ffffff1f;box-shadow:inset 0 1px 2px #00000059}.rank-track-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;--tier-fill: #b8bcc3;background:linear-gradient(90deg,rgba(184,188,195,.75),var(--tier-fill));box-shadow:0 0 14px color-mix(in srgb,var(--tier-fill) 60%,transparent);transition:width 1s var(--spring, ease)}.rank-track-fill.tier-1{--tier-fill: #d8935c}.rank-track-fill.tier-2{--tier-fill: #dfe5ec}.rank-track-fill.tier-3{--tier-fill: #f2c96a}.rank-track-fill.tier-4{--tier-fill: #7fd6d9}.rank-track-fill.tier-5{--tier-fill: #b3c4ff}.rank-track-tick{position:absolute;top:50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;transform:translateY(-50%);background:#ffffff40;border:2px solid rgba(20,22,60,.9)}.rank-track-tick:first-of-type{margin-left:0}.rank-track-tick.on.tier-0{background:#b8bcc3}.rank-track-tick.on.tier-1{background:#d8935c}.rank-track-tick.on.tier-2{background:#dfe5ec}.rank-track-tick.on.tier-3{background:#f2c96a}.rank-track-tick.on.tier-4{background:#7fd6d9}.rank-track-tick.on.tier-5{background:#b3c4ff}.rank-track-marker{position:absolute;top:50%;width:20px;height:20px;margin-left:-10px;border-radius:50%;transform:translateY(-50%);background:#fff;box-shadow:0 0 0 4px #7d9bff73,0 4px 10px #00000059;transition:left 1s var(--spring, ease)}.rank-track-marker b{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:.1rem .4rem;border-radius:6px;background:#fff;color:#25276a;font-size:.72rem;font-weight:800;white-space:nowrap}.rank-track-labels{display:grid;font-size:.68rem;font-weight:700;color:#f1f2ff8c}.rank-track-labels span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-track-labels .passed{color:#f1f2ffcc}.rank-track-labels .current{color:#fff}.rank-track-note{font-size:.85rem;color:#f1f2ffcc}.ranked-choose-wrap{display:grid;gap:.75rem;width:100%;max-width:880px;margin:0 auto}.ranked-choose-wrap .ranked-back{justify-self:start}.ranked-choose-wrap h1{margin:0;font-family:var(--font-display)}.ranked-choose{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;width:100%}.ranked-mode{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;min-height:340px;padding:1.5rem;border:0;border-radius:24px;color:#f1f2ff;text-align:left;cursor:pointer;overflow:hidden;position:relative;background:radial-gradient(90% 70% at 15% 0%,rgba(150,120,255,.5),transparent 70%),linear-gradient(160deg,#2c2f80,#17184a);box-shadow:0 16px 40px #1914504d;transition:transform .25s var(--spring, ease),box-shadow .25s}.ranked-mode.cup{background:radial-gradient(90% 70% at 85% 0%,rgba(110,170,255,.45),transparent 70%),linear-gradient(160deg,#203f86,#141a4a)}.ranked-mode:hover{transform:translateY(-3px);box-shadow:0 22px 50px #19145066}.ranked-mode:active{transform:scale(.985)}.ranked-mode-top{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:auto;gap:.6rem}.ranked-mode-icon{width:52px;height:52px;display:grid;place-items:center;flex:none;border-radius:16px;background:#ffffff24}.ranked-mode-icon .icon{width:28px;height:28px}.ranked-mode-tiles{display:flex;gap:4px;transform:rotate(-4deg)}.ranked-mode-tiles span{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;font-family:var(--font-display);font-weight:900;font-size:1rem;color:#3a2a12;background:linear-gradient(180deg,#fbf3df,#ead7ad);box-shadow:0 3px #c9ad78,0 6px 12px #00000040}.ranked-mode-tiles span:nth-child(2n){transform:translateY(3px)}.ranked-mode strong{margin-top:1.2rem;font-family:var(--font-display);font-size:1.6rem;line-height:1.1}.ranked-mode-sub{font-size:.95rem;color:#f1f2ffd9}.ranked-mode-facts{display:grid;gap:.3rem;margin-top:.3rem}.ranked-mode-facts span{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:#f1f2ffbf}.ranked-mode-facts .icon{width:15px;height:15px;opacity:.8}.ranked-mode-cta{display:inline-flex;align-items:center;gap:.35rem;margin-top:.6rem;padding:.45rem .85rem;border-radius:999px;font-size:.85rem;font-weight:800;background:#ffffff29}.ranked-mode-cta .icon{width:16px;height:16px}@media(max-width:640px){.ranked-choose{grid-template-columns:minmax(0,1fr);gap:.75rem}.ranked-mode{min-height:0;padding:1rem;border-radius:20px}.ranked-mode strong{margin-top:.6rem;font-size:1.3rem}.ranked-mode-tiles span{width:24px;height:24px;font-size:.85rem}.ranked-mode-icon{width:44px;height:44px}}.pair-matrix-mobile{display:none}@media(max-width:760px){.pair-matrix-desk{display:none}.pair-matrix-mobile{display:grid}.pair-matrix-mobile .pair-matrix{margin-top:0;padding-top:0;border-top:0}}.pair-matrix{display:grid;gap:.3rem;margin-top:.4rem;padding-top:.8rem;border-top:1px solid rgba(255,255,255,.14)}.pair-matrix .label{color:#f1f2ff}.pair-matrix p{margin:0;color:#f1f2ffb3}.pair-matrix-head,.pair-matrix-row{display:grid;grid-template-columns:minmax(0,1fr) 4.4rem 4.4rem;align-items:center;gap:.4rem;font-size:.85rem}.pair-matrix-head{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#f1f2ff99}.pair-matrix-head span:not(:first-child),.pair-matrix-row strong{text-align:right;font-variant-numeric:tabular-nums}.pair-matrix-row{padding:.28rem .5rem;margin:0 -.5rem;border-radius:10px;color:#f1f2ffd9}.pair-matrix-row.me{background:#ffffff1a}.pair-matrix-row em{font-style:normal;font-size:.78rem;color:#f1f2ff99}.pair-matrix-row .up{color:#6fe3a8}.pair-matrix-row .down{color:#ff9b85}.pts-mine{display:grid;gap:.3rem;padding:.8rem .9rem;border-radius:16px;color:#f1f2ff;background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.pts-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#f1f2ffbf}.pts-head,.pts-row{display:grid;grid-template-columns:minmax(0,1fr) 4.6rem 4.6rem;align-items:center;gap:.4rem}.pts-head{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#f1f2ff8c}.pts-head span:not(:first-child),.pts-row strong{text-align:right;font-variant-numeric:tabular-nums}.pts-row{font-size:.9rem}.pts-name{min-width:0;overflow-wrap:anywhere;line-height:1.2}.pts-name em{display:block}.pts-row{padding:.15rem 0}.pts-name em,.pts-places em{font-style:normal;font-size:.78rem;color:#f1f2ff99}.pts-mine .up{color:#6fe3a8}.pts-mine .down{color:#ff9b85}.pts-note{margin:.15rem 0 0;font-size:.8rem;color:#f1f2ffb3}.pts-double{color:#ffe08a;font-weight:700}.pts-projection{margin-top:.2rem;padding:.45rem .6rem;border-radius:10px;font-size:.88rem;color:#f1f2ff;background:#ffffff14}.pts-projection.up strong{color:#6fe3a8}.pts-projection.down strong{color:#ff9b85}.pts-places{display:flex;flex-wrap:wrap;gap:.4rem}.pts-places span{display:grid;gap:.05rem;padding:.35rem .6rem;border-radius:10px;background:#ffffff12}.pts-places strong{font-variant-numeric:tabular-nums}.double-banner{display:grid;gap:.1rem;padding:.6rem .85rem;border-radius:14px;font-size:.85rem;color:#f1f2ffd9;background:#ffffff14;border:1px solid rgba(255,255,255,.12)}.ranked-setup .double-banner,.ranked-choose-wrap .double-banner{color:var(--text);background:color-mix(in srgb,var(--primary) 8%,transparent);border-color:color-mix(in srgb,var(--primary) 25%,transparent)}.double-banner strong{font-size:.95rem}.double-banner.active{color:#3a2700;background:linear-gradient(135deg,#ffe08a,#f5b942);border-color:#e7a72c;box-shadow:0 8px 24px #f5b94259;animation:double-pulse 2.4s ease-in-out infinite}@keyframes double-pulse{0%,to{box-shadow:0 8px 24px #f5b9424d}50%{box-shadow:0 8px 32px #f5b94299}}.ranked-result-double{padding:.25rem .8rem;border-radius:999px;font-weight:900;color:#3a2700;background:linear-gradient(135deg,#ffe08a,#f5b942)}.quick-live{gap:.6rem}.quick-live .btn-ghost{color:#f1f2ffbf}.quick-live .btn-ghost:hover{color:#fff;background:#ffffff1a}.quick-live h1{margin:0;font-family:var(--font-display)}@media(prefers-reduced-motion:reduce){.double-banner.active{animation:none}}.ranked-recent-list{display:grid;gap:.35rem;margin-bottom:.5rem}.ranked-recent-row{display:grid;grid-template-columns:3.6rem minmax(0,1fr) auto auto;grid-template-areas:"when kind delta go" "when place delta go";align-items:center;column-gap:.6rem;padding:.45rem .6rem;border-radius:12px;background:color-mix(in srgb,var(--primary) 6%,transparent)}.ranked-recent-when{grid-area:when;font-size:.8rem;color:var(--text-muted)}.ranked-recent-kind{grid-area:kind;display:inline-flex;align-items:center;gap:.3rem;font-weight:700;font-size:.9rem}.ranked-recent-kind .icon{width:15px;height:15px}.ranked-recent-place{grid-area:place;font-size:.82rem;color:var(--text-muted)}.ranked-recent-row strong{grid-area:delta;font-size:1.05rem}.ranked-recent-row strong.up{color:#2f9e6b}.ranked-recent-row strong.down{color:#d0573f}.ranked-recent-row>button,.ranked-recent-row>span:last-child{grid-area:go}.rank-board{display:grid;gap:.15rem}.rank-board-head{margin-top:.5rem;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.rank-board-head:first-child{margin-top:0}.rank-board-gap{text-align:center;color:var(--text-muted);letter-spacing:.3em}.rank-board-row{display:grid;grid-template-columns:2rem 1.3rem minmax(0,1fr) auto 3.2rem;align-items:center;gap:.4rem;padding:.4rem .5rem;border-radius:10px}.rank-board-row:nth-child(2n){background:color-mix(in srgb,var(--primary) 4%,transparent)}.rank-board-row.me{background:color-mix(in srgb,var(--primary) 16%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 45%,transparent)}.rank-board-place{font-weight:800;color:var(--text-muted)}.rank-board-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.rank-board-meta{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.rank-board-rating{text-align:right;font-variant-numeric:tabular-nums}.rank-board-more{justify-self:start;margin-top:.3rem}@media(max-width:420px){.rank-board-meta{display:none}.rank-board-row{grid-template-columns:1.8rem 1.2rem minmax(0,1fr) 3rem}}@media(prefers-reduced-motion:reduce){.rank-track-fill,.rank-track-marker,.ranked-mode{transition:none}}.scratch-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:grid;place-items:center;overflow-y:auto;padding:16px;color:#f6f3ff;background:radial-gradient(120% 80% at 50% 0%,#4b3bb0,#231a66 45%,#0f0c2e);animation:scratch-in .35s ease-out}@keyframes scratch-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}.scratch-rays{position:fixed;top:-50%;right:-50%;bottom:-50%;left:-50%;pointer-events:none;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.07) 0deg 8deg,transparent 8deg 22deg);animation:scratch-spin 60s linear infinite;transition:opacity .6s}.scratch-screen.stage-won .scratch-rays{background:repeating-conic-gradient(from 0deg,rgba(255,214,102,.22) 0deg 8deg,transparent 8deg 22deg);animation-duration:18s}@keyframes scratch-spin{to{transform:rotate(360deg)}}.scratch-inner{position:relative;display:grid;justify-items:center;gap:.6rem;width:min(440px,100%);text-align:center}.scratch-kicker{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#ffd66b}.scratch-kicker .icon{width:16px;height:16px}.scratch-title{margin:0;font-family:var(--font-display);font-size:clamp(1.9rem,7vw,2.7rem);line-height:1.05}.scratch-rule{margin:0;font-size:.95rem;color:#f6f3ffcc}.scratch-ticket{position:relative;width:100%;margin-top:.3rem;padding:12px 14px 14px;border-radius:22px;background:linear-gradient(160deg,#ffe58f,#f5b942 45%,#e58f25);box-shadow:0 24px 60px #00000073,inset 0 2px #fff9}.scratch-ticket:before,.scratch-ticket:after{content:"";position:absolute;top:40px;width:22px;height:22px;border-radius:50%;background:#2a1f74}.scratch-ticket:before{left:-11px}.scratch-ticket:after{right:-11px}.scratch-ticket-head{display:flex;align-items:baseline;justify-content:space-between;padding:2px 6px 10px;margin-bottom:10px;border-bottom:2px dashed rgba(90,53,0,.35);color:#5a3500}.scratch-ticket-head strong{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.08em}.scratch-ticket-head span{font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums}.scratch-board{position:relative;width:100%;aspect-ratio:1;border-radius:16px;background:#fff6dc;box-shadow:inset 0 2px 8px #5a350040}.scratch-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:10px;padding:12px}.scratch-cell{display:grid;place-items:center;align-content:center;border-radius:14px;background:#fff;box-shadow:0 2px #5a35001f}.scratch-cell.shown{animation:scratch-pop .35s cubic-bezier(.34,1.56,.64,1)}.scratch-cell.jolly.shown{background:radial-gradient(circle at 50% 40%,#fff3c4,#fff 70%);box-shadow:0 0 0 3px #f5b942,0 0 22px #f5b942b3}.scratch-screen.stage-won .scratch-cell.hit{animation:scratch-glow 1.2s ease-in-out infinite}@keyframes scratch-pop{0%{transform:scale(.85)}to{transform:scale(1)}}@keyframes scratch-glow{0%,to{box-shadow:0 0 0 3px #f5b942,0 0 18px #f5b94299;transform:scale(1)}50%{box-shadow:0 0 0 4px #ffd66b,0 0 34px #ffd66bf2;transform:scale(1.05)}}.jolly-mark{width:62%;height:auto}.jolly-label{margin-top:-2px;font-size:clamp(.6rem,2.6vw,.8rem);font-weight:900;letter-spacing:.1em;color:#7b3fe4}.scratch-tile{position:relative;display:grid;place-items:center;width:64%;aspect-ratio:1;border-radius:12%;font-family:var(--font-display);font-size:clamp(1.1rem,6vw,1.9rem);font-weight:900;color:#3a2a12;background:linear-gradient(180deg,#fbf3df,#ead7ad);box-shadow:0 3px #c9ad78}.scratch-tile small{position:absolute;right:8%;bottom:4%;font-family:var(--font-body);font-size:.42em;font-weight:800}.scratch-cover{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Ccircle cx='18' cy='18' r='14' fill='%23f5b942' stroke='%23a8680c' stroke-width='3'/%3E%3Ctext x='18' y='24' font-size='16' font-weight='900' text-anchor='middle' fill='%23a8680c' font-family='sans-serif'%3EK%3C/text%3E%3C/svg%3E") 18 18,pointer}.scratch-count{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:10px;color:#5a3500}.scratch-count span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#ffffff80;filter:grayscale(1);opacity:.45;transition:filter .3s,opacity .3s,transform .3s}.scratch-count span.on{filter:none;opacity:1;background:#fff;transform:scale(1.12)}.scratch-count .jolly-mark{width:22px}.scratch-count em{margin-left:.3rem;font-style:normal;font-weight:800;font-size:.9rem}.scratch-result{display:grid;gap:.25rem;width:100%;padding:.85rem 1rem;border-radius:16px;animation:scratch-in .4s ease-out}.scratch-result strong{font-family:var(--font-display);font-size:1.35rem}.scratch-result span{font-size:.92rem}.scratch-result.win{color:#3a2700;background:linear-gradient(135deg,#ffe08a,#f5b942);box-shadow:0 10px 30px #f5b94273}.scratch-result.lose{background:#ffffff1a;border:1px solid rgba(255,255,255,.16)}.scratch-actions{min-height:3rem;display:grid;place-items:center}.scratch-screen .scratch-skip{color:#f6f3ffcc;border-color:#ffffff40}.scratch-screen .scratch-skip:hover{color:#fff;background:#ffffff1a}@media(max-width:420px){.scratch-grid{gap:8px;padding:10px}}@media(prefers-reduced-motion:reduce){.scratch-rays,.scratch-screen.stage-won .scratch-cell.hit,.scratch-cell.shown{animation:none}}.ranked-rewards{display:grid;gap:.9rem}.rr-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start}.rr-daily,.rr-side{display:grid;gap:.4rem}.rr-side{justify-items:end;text-align:right;max-width:260px}.rr-title{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-display);font-size:1.1rem;font-weight:800}.rr-title .icon{width:18px;height:18px;color:#d99a1e}.rr-dots{display:flex;gap:6px}.rr-dots span{width:34px;height:12px;border-radius:999px;background:color-mix(in srgb,var(--text) 12%,transparent);transition:background .3s}.rr-dots span.on{background:linear-gradient(90deg,#f5b942,#ffd66b);box-shadow:0 0 10px #f5b94280}.rr-sub{font-size:.86rem;color:var(--text-muted)}.rr-scratch{animation:rr-wiggle 2.6s ease-in-out infinite}@keyframes rr-wiggle{0%,88%,to{transform:none}91%{transform:rotate(-3deg) scale(1.03)}94%{transform:rotate(3deg) scale(1.03)}97%{transform:rotate(-2deg)}}.rr-boost{font-size:.92rem}.rr-boost strong{color:#c27d0e}.rr-hint{font-size:.78rem;color:var(--text-muted)}.rr-track-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.3rem 1rem;padding-top:.6rem;border-top:1px solid var(--border)}.rr-steps{display:flex;gap:.5rem;overflow-x:auto;padding:.2rem .1rem .5rem;scroll-snap-type:x proximity}.rr-step{position:relative;flex:none;display:grid;gap:.1rem;min-width:108px;padding:.6rem .7rem;border-radius:14px;scroll-snap-align:start;border:1px solid var(--border);background:var(--surface-2, var(--surface))}.rr-step strong{font-family:var(--font-display);font-size:1.05rem}.rr-step span{font-size:.8rem;color:var(--text-muted)}.rr-step em{font-style:normal;font-size:.78rem;font-weight:700;color:#7b3fe4}.rr-step.reached{border-color:#e7b54a;background:linear-gradient(160deg,#fff6d9,#ffe9a8);color:#4a3200}.rr-step.reached span{color:#6b5320}.rr-step.next{border:2px solid #7b3fe4;box-shadow:0 0 0 3px color-mix(in srgb,#7b3fe4 18%,transparent)}.rr-check{position:absolute;top:6px;right:8px;font-weight:900;color:#2f8a4f!important}.rr-phrases{margin:0}@media(max-width:640px){.rr-top{grid-template-columns:minmax(0,1fr)}.rr-side{justify-items:start;text-align:left;max-width:none}.rr-dots span{width:28px}}.boost-toggle{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border-radius:14px;cursor:pointer;border:1px solid color-mix(in srgb,#f5b942 55%,transparent);background:color-mix(in srgb,#f5b942 12%,transparent)}.boost-toggle.on{background:linear-gradient(135deg,#ffe08a80,#f5b94259);border-color:#e7a72c}.boost-toggle input{position:absolute;opacity:0;pointer-events:none}.boost-switch{position:relative;flex:none;width:44px;height:26px;border-radius:999px;background:color-mix(in srgb,var(--text) 25%,transparent);transition:background .2s}.boost-switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .2s}.boost-toggle.on .boost-switch{background:#e39a1f}.boost-toggle.on .boost-switch:after{transform:translate(18px)}.boost-toggle input:focus-visible+.boost-switch{outline:2px solid #7b3fe4;outline-offset:2px}.boost-text{display:grid;gap:.1rem;text-align:left}.boost-text strong{font-size:.95rem}.boost-text em{font-style:normal;font-size:.8rem;opacity:.8}.ranked-result-double.boost{background:linear-gradient(135deg,#c9a6ff,#7b3fe4);color:#fff}.reaction-btn.phrase.special{color:#4a3200;background:linear-gradient(135deg,#ffe08a,#f5b942);border-color:#e7a72c}.ranked-boost-note{margin:0;padding:.5rem .7rem;border-radius:10px;font-size:.85rem;font-weight:700;color:#3a2700;background:linear-gradient(135deg,#ffe08a,#f5b942)}
