@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/outfit-var.woff2) format("woff2")}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/chakra-petch-600.woff2) format("woff2")}@font-face{font-family:Chakra Petch;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/chakra-petch-700.woff2) format("woff2")}:root{--p1: #0d4a23;--p1-glow: #1c7a3d;--p1-bright: #62cf90;--p1-deep: #021608;--p1-rgb-bright: 98, 207, 144;--p1-rgb-glow: 28, 122, 61;--strike-p1-outer: #2b8a4c;--strike-p1-inner: #b8f5d3;--avatar-p1-fg: #9dffc0;--p2: #d3ecaa;--p2-glow: #f0fbcf;--p2-bright: #ffffff;--p2-deep: #5a7045;--p2-rgb-bright: 240, 251, 207;--p2-rgb-glow: 211, 236, 170;--strike-p2-outer: #c8c878;--strike-p2-inner: #ffffff;--avatar-p2-fg: #0a2818;--bg-center: #15291e;--bg-edge: #02090b;--glass-bg: rgba(255, 255, 255, .045);--glass-bg-strong: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .09);--glass-border-strong: rgba(255, 255, 255, .16);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .45), 0 1px 0 rgba(255, 255, 255, .06) inset;--glass-shadow-strong: 0 16px 48px rgba(0, 0, 0, .55), 0 1px 0 rgba(255, 255, 255, .1) inset;--text: #eaf3e3;--text-dim: #93a89a;--text-mute: #809088;--text-bright: #ffffff;--title-grad-top: #ffffff;--title-grad-bottom: #b9d6c4;--accent: #7bdb95;--danger: #d97565;--on-accent: #062812;--scrim: rgba(2, 9, 11, .66);--dot-empty-core: #0a1210;--dot-empty-mid: #27392f;--dot-empty-rim: rgba(176, 201, 188, .44);--board-felt-1: #16291e;--board-felt-2: #0a1812;--board-felt-border: rgba(255, 255, 255, .1);--font-body: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Chakra Petch", "Outfit", system-ui, sans-serif;--radius: 16px;--radius-lg: 22px;--elev-1: 0 1px 2px rgba(0, 0, 0, .3), 0 2px 8px rgba(0, 0, 0, .28);--elev-2: 0 2px 4px rgba(0, 0, 0, .32), 0 8px 24px rgba(0, 0, 0, .4);--elev-3: 0 6px 12px rgba(0, 0, 0, .36), 0 18px 50px rgba(0, 0, 0, .52);--bevel-light: rgba(255, 255, 255, .22);--bevel-shade: rgba(0, 0, 0, .28);--press-translate: 2px;--press-scale: .985;--accent-rgb: 123, 219, 149;--accent-hi: #95e2aa;--accent-lo: #5ba26e;--accent-edge: #b2eac2;--accent-shadow: var(--accent);--ease-spring: cubic-bezier(.34, 1.4, .5, 1);--t-press: 90ms;--t-lift: .18s;--rim-hi: #37473e;--rim-mid: var(--board-felt-1);--rim-lo: #07100c;--rim-contact: rgba(0, 0, 0, .5);--rim-drop: drop-shadow(0 6px 12px rgba(0, 0, 0, .45))}[data-theme=royal-court]{--p1: #3a1a5c;--p1-glow: #5e2c8e;--p1-bright: #a06fce;--p1-deep: #0f0420;--p1-rgb-bright: 160, 111, 206;--p1-rgb-glow: 94, 44, 142;--strike-p1-outer: #5e2c8e;--strike-p1-inner: #d8b6f5;--avatar-p1-fg: #e8c6ff;--p2: #c8a533;--p2-glow: #e8c452;--p2-bright: #fff1a0;--p2-deep: #5a4006;--p2-rgb-bright: 255, 241, 160;--p2-rgb-glow: 232, 196, 82;--strike-p2-outer: #d4af37;--strike-p2-inner: #fff8d0;--avatar-p2-fg: #3a2a05;--bg-center: #1a0e2e;--bg-edge: #02010a;--accent: #f5d76a;--accent-rgb: 245, 215, 106;--accent-hi: #f7df88;--accent-lo: #b59f4e;--accent-edge: #f9e8a9;--rim-hi: #3e344d;--rim-lo: #0d0715;--dot-empty-core: #0e0820;--dot-empty-mid: #322545;--dot-empty-rim: rgba(206, 188, 224, .42);--board-felt-1: #1f1330;--board-felt-2: #130b20;--board-felt-border: rgba(230, 215, 255, .1);--text: #f0e6c8;--text-dim: #b0a585;--text-mute: #877f65;--text-bright: #fff8e0;--title-grad-top: #fff8e0;--title-grad-bottom: #f5d76a}[data-theme=tempo-rivals]{--p1: #7a1430;--p1-glow: #a01a3e;--p1-bright: #d3556e;--p1-deep: #2a0710;--p1-rgb-bright: 211, 85, 110;--p1-rgb-glow: 160, 26, 62;--strike-p1-outer: #a01a3e;--strike-p1-inner: #f5b8c6;--avatar-p1-fg: #ffc8d0;--p2: #3d8eb9;--p2-glow: #5fb3d4;--p2-bright: #a8d8ec;--p2-deep: #1a4060;--p2-rgb-bright: 168, 216, 236;--p2-rgb-glow: 95, 179, 212;--strike-p2-outer: #5fb3d4;--strike-p2-inner: #d8f0fa;--avatar-p2-fg: #0a2540;--bg-center: #1a1f2a;--bg-edge: #02060a;--accent: #5fb3d4;--accent-rgb: 95, 179, 212;--accent-hi: #7fc2dd;--accent-lo: #46849d;--accent-edge: #a2d3e6;--rim-hi: #3c424b;--rim-lo: #0c0f14;--dot-empty-core: #0a0e14;--dot-empty-mid: #2c3540;--dot-empty-rim: rgba(196, 210, 224, .42);--board-felt-1: #1c232e;--board-felt-2: #12171f;--board-felt-border: rgba(210, 226, 240, .1);--text: #dfe7ee;--text-dim: #9aa7b3;--text-mute: #818992;--text-bright: #f5f8fb;--title-grad-top: #f5f8fb;--title-grad-bottom: #a8d8ec}[data-theme=sunset-catan]{--p1: #9c3a14;--p1-glow: #c25527;--p1-bright: #e07a3f;--p1-deep: #3a0f04;--p1-rgb-bright: 224, 122, 63;--p1-rgb-glow: 194, 85, 39;--strike-p1-outer: #c25527;--strike-p1-inner: #f5c8a0;--avatar-p1-fg: #ffd8b8;--p2: #e8d4a6;--p2-glow: #f4e4bc;--p2-bright: #fffaf0;--p2-deep: #8b7a52;--p2-rgb-bright: 244, 228, 188;--p2-rgb-glow: 232, 212, 166;--strike-p2-outer: #c8a868;--strike-p2-inner: #fffaf0;--avatar-p2-fg: #3a2814;--bg-center: #3a2418;--bg-edge: #0d0604;--accent: #e0a050;--accent-rgb: 224, 160, 80;--accent-hi: #e6b373;--accent-lo: #a6763b;--accent-edge: #edc89a;--rim-hi: #52443a;--rim-lo: #180f0b;--dot-empty-core: #160d06;--dot-empty-mid: #4a3420;--dot-empty-rim: rgba(232, 212, 182, .42);--board-felt-1: #36251a;--board-felt-2: #241710;--board-felt-border: rgba(255, 232, 200, .1);--text: #f0e0c0;--text-dim: #c4b08c;--text-mute: #a08f74;--text-bright: #fff5e0;--title-grad-top: #fff5e0;--title-grad-bottom: #e0a050}[data-theme=coral-reef]{--p1: #0d4f5c;--p1-glow: #1a7585;--p1-bright: #4ab4c8;--p1-deep: #021820;--p1-rgb-bright: 74, 180, 200;--p1-rgb-glow: 26, 117, 133;--strike-p1-outer: #1a7585;--strike-p1-inner: #a8e0ec;--avatar-p1-fg: #c8f0f8;--p2: #e8754b;--p2-glow: #ff8c5a;--p2-bright: #ffc1a3;--p2-deep: #7a2c12;--p2-rgb-bright: 255, 193, 163;--p2-rgb-glow: 255, 140, 90;--strike-p2-outer: #ff8c5a;--strike-p2-inner: #ffe0d0;--avatar-p2-fg: #401405;--bg-center: #0a2030;--bg-edge: #01060a;--accent: #ff8c5a;--accent-rgb: 255, 140, 90;--accent-hi: #ffa37b;--accent-lo: #bd6843;--accent-edge: #ffbc9f;--rim-hi: #2e444d;--rim-lo: #040f15;--dot-empty-core: #04101a;--dot-empty-mid: #1c3a44;--dot-empty-rim: rgba(186, 218, 226, .42);--board-felt-1: #0c2630;--board-felt-2: #061620;--board-felt-border: rgba(200, 232, 240, .1);--text: #d8eef0;--text-dim: #8ca6b0;--text-mute: #7b8991;--text-bright: #f0fafc;--title-grad-top: #f0fafc;--title-grad-bottom: #ffb088}[data-theme=twilight-cosmos]{--p1: #2a1f5c;--p1-glow: #4030a0;--p1-bright: #7d68d8;--p1-deep: #0c0820;--p1-rgb-bright: 125, 104, 216;--p1-rgb-glow: 64, 48, 160;--strike-p1-outer: #4030a0;--strike-p1-inner: #c8baf5;--avatar-p1-fg: #d8c8ff;--p2: #22a8c4;--p2-glow: #67e8f9;--p2-bright: #c4f4fc;--p2-deep: #0a4a58;--p2-rgb-bright: 196, 244, 252;--p2-rgb-glow: 103, 232, 249;--strike-p2-outer: #67e8f9;--strike-p2-inner: #ffffff;--avatar-p2-fg: #042028;--bg-center: #0c0a1a;--bg-edge: #02010a;--accent: #67e8f9;--accent-rgb: 103, 232, 249;--accent-hi: #85edfa;--accent-lo: #4cacb8;--accent-edge: #a7f2fc;--rim-hi: #353346;--rim-lo: #070510;--dot-empty-core: #070518;--dot-empty-mid: #262247;--dot-empty-rim: rgba(206, 206, 238, .42);--board-felt-1: #141228;--board-felt-2: #0a0818;--board-felt-border: rgba(216, 216, 245, .1);--text: #e0e0f5;--text-dim: #9090b8;--text-mute: #797994;--text-bright: #ffffff;--title-grad-top: #ffffff;--title-grad-bottom: #67e8f9}[data-theme=monochrome-pro]{--p1: #1a1a1c;--dot-empty-core: #cfcfcf;--dot-empty-mid: #e8e8e8;--dot-empty-rim: rgba(20, 20, 22, .4);--board-felt-1: #f0f0f0;--board-felt-2: #e2e2e2;--board-felt-border: rgba(20, 20, 22, .18);--on-accent: #f5f5f5;--danger: #b0301f;--elev-1: 0 1px 2px rgba(60, 40, 20, .1), 0 2px 8px rgba(60, 40, 20, .1);--elev-2: 0 2px 5px rgba(60, 40, 20, .12), 0 10px 28px rgba(60, 40, 20, .16);--elev-3: 0 6px 14px rgba(60, 40, 20, .14), 0 20px 50px rgba(60, 40, 20, .22);--bevel-light: rgba(255, 255, 255, .55);--bevel-shade: rgba(40, 28, 12, .16);--rim-hi: var(--board-felt-1);--rim-mid: #ddddde;--rim-lo: #bababa;--rim-contact: rgba(20, 20, 22, .42);--scrim: rgba(228, 222, 210, .78);--p1-glow: #2c2c2e;--p1-bright: #5a5a5c;--p1-deep: #000000;--p1-rgb-bright: 90, 90, 92;--p1-rgb-glow: 44, 44, 46;--strike-p1-outer: #1a1a1c;--strike-p1-inner: #6a6a6c;--avatar-p1-fg: #e8e8e8;--p2: #ffffff;--p2-glow: #fafafa;--p2-bright: #ffffff;--p2-deep: #888888;--p2-rgb-bright: 255, 255, 255;--p2-rgb-glow: 245, 245, 245;--strike-p2-outer: #888888;--strike-p2-inner: #ffffff;--avatar-p2-fg: #1a1a1a;--bg-center: #e8d8c0;--bg-edge: #c8b896;--glass-bg: rgba(30, 20, 8, .05);--glass-bg-strong: rgba(30, 20, 8, .1);--glass-border: rgba(30, 20, 8, .22);--glass-border-strong: rgba(30, 20, 8, .38);--glass-shadow: 0 8px 24px rgba(60, 40, 20, .18), 0 1px 0 rgba(255, 245, 220, .45) inset;--glass-shadow-strong: 0 16px 36px rgba(60, 40, 20, .24), 0 1px 0 rgba(255, 245, 220, .55) inset;--text: #1a1a1a;--text-dim: #4a4a4a;--text-mute: #5f5f5f;--text-bright: #000000;--title-grad-top: #1a1a1c;--title-grad-bottom: #5a5a5c;--accent: #1a1a1c;--accent-rgb: 26, 26, 28;--accent-hi: #484849;--accent-lo: #131315;--accent-edge: #7a7a7b}[data-theme=vintage-press]{--p1: #8b1a2b;--dot-empty-core: #cabb98;--dot-empty-mid: #ddd0b4;--dot-empty-rim: rgba(55, 40, 18, .42);--board-felt-1: #ece1c8;--board-felt-2: #ddd0b0;--board-felt-border: rgba(55, 40, 18, .24);--on-accent: #fdf2e6;--danger: #9e2a1c;--elev-1: 0 1px 2px rgba(80, 50, 24, .1), 0 2px 8px rgba(80, 50, 24, .11);--elev-2: 0 2px 5px rgba(80, 50, 24, .13), 0 10px 28px rgba(80, 50, 24, .17);--elev-3: 0 6px 14px rgba(80, 50, 24, .15), 0 20px 50px rgba(80, 50, 24, .24);--bevel-light: rgba(255, 250, 232, .6);--bevel-shade: rgba(55, 40, 18, .16);--rim-hi: var(--board-felt-1);--rim-mid: #dfd3b4;--rim-lo: #c0b192;--rim-contact: rgba(70, 48, 22, .42);--scrim: rgba(238, 229, 208, .78);--p1-glow: #a82a3e;--p1-bright: #c54d62;--p1-deep: #3a0810;--p1-rgb-bright: 197, 77, 98;--p1-rgb-glow: 168, 42, 62;--strike-p1-outer: #8b1a2b;--strike-p1-inner: #c54d62;--avatar-p1-fg: #fff0e8;--p2: #1a3a4a;--p2-glow: #28526a;--p2-bright: #4a7898;--p2-deep: #04101a;--p2-rgb-bright: 74, 120, 152;--p2-rgb-glow: 40, 82, 106;--strike-p2-outer: #1a3a4a;--strike-p2-inner: #4a7898;--avatar-p2-fg: #eef5ff;--bg-center: #f4ecd6;--bg-edge: #ddd1b0;--glass-bg: rgba(40, 24, 14, .05);--glass-bg-strong: rgba(40, 24, 14, .1);--glass-border: rgba(40, 24, 14, .22);--glass-border-strong: rgba(40, 24, 14, .38);--glass-shadow: 0 8px 24px rgba(80, 50, 24, .18), 0 1px 0 rgba(255, 250, 232, .45) inset;--glass-shadow-strong: 0 16px 36px rgba(80, 50, 24, .24), 0 1px 0 rgba(255, 250, 232, .55) inset;--text: #2a1a14;--text-dim: #5a4838;--text-mute: #776759;--text-bright: #1a0a04;--title-grad-top: #8b1a2b;--title-grad-bottom: #1a3a4a;--accent: #8b1a2b;--accent-rgb: 139, 26, 43;--accent-hi: #a24855;--accent-lo: #671320;--accent-edge: #bc7a84}[data-theme=vintage-press] .provisional-badge{background:#a06e1e38;border:1px solid rgba(160,110,30,.45);color:#6b4708}[data-theme=monochrome-pro] .pending-indicator,[data-theme=vintage-press] .pending-indicator{color:#6b4e00;background:#be8c1e38;border-color:#96641480}[data-theme=monochrome-pro] .btn-resign-inline,[data-theme=vintage-press] .btn-resign-inline{color:#8a1f1f;background:#be464629;border-color:#9628286b}[data-theme=monochrome-pro] .clock-badge.is-low,[data-theme=vintage-press] .clock-badge.is-low{color:#8a1f1f;background:#be464629;border-color:#96282873}[data-theme=monochrome-pro] .theme-swatch-tag,[data-theme=vintage-press] .theme-swatch-tag{color:#6b4708;background:#be8c1e33;border-color:#96641473}[data-theme=monochrome-pro] .provisional-badge{color:#6b4708;background:#be8c1e33;border:1px solid rgba(150,100,20,.45)}*{box-sizing:border-box}html,body,#root{height:100%;height:100dvh;margin:0;padding:0;color:var(--text);font-family:var(--font-body);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{overflow:hidden;background:radial-gradient(ellipse at 50% 38%,var(--bg-center) 0%,var(--bg-edge) 78%),#000;background-attachment:fixed}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:1;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.7 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:inherit}.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}.board circle:focus-visible{outline:none;stroke:var(--accent);stroke-width:.07;paint-order:stroke}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}#root{display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);position:relative;z-index:2}.menu{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:clamp(14px,4vh,32px) 16px 8px;gap:clamp(10px,2.4vh,22px);overflow-y:auto}.menu>*{flex-shrink:0}.title{display:flex;align-items:center;gap:14px;font-size:clamp(2.4rem,7.5vw,3.6rem);margin:0;letter-spacing:.005em;font-weight:700}.title-dot{display:inline-block;line-height:1;filter:drop-shadow(0 2px 8px currentColor)}.title-dot-1{color:var(--p1-bright)}.title-dot-2{color:var(--p2-glow)}.title-text{background:linear-gradient(180deg,var(--title-grad-top) 0%,var(--title-grad-bottom) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.subtitle{margin:0;color:var(--text-dim);text-align:center;max-width:560px;font-size:clamp(.85rem,2.6vw,1rem);line-height:1.45}.version-badge{margin:4px 0 0;padding:5px 12px;border:1px solid var(--glass-border-strong);border-radius:999px;background:var(--glass-bg);backdrop-filter:blur(10px) saturate(1.4);-webkit-backdrop-filter:blur(10px) saturate(1.4);color:var(--accent);font-size:.75rem;letter-spacing:.04em;font-weight:600}.menu-section{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:560px;min-height:280px}.menu h2{margin:0;font-weight:600;font-size:clamp(1.1rem,3.6vw,1.4rem);color:var(--text);letter-spacing:.01em}.menu-grid{display:flex;flex-wrap:wrap;justify-content:center;width:100%;gap:12px}.menu-grid>.menu-card{flex:1 1 140px;min-width:140px;max-width:220px}.menu-card{position:relative;background:var(--glass-bg);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid var(--glass-border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .2s ease;box-shadow:0 4px 16px #00000047,0 1px #ffffff0f inset;overflow:hidden}.menu-card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,#ffffff12,#fff0 50%)}.menu-card:hover:not(.disabled):not(:disabled){background:var(--glass-bg-strong);border-color:var(--glass-border-strong);transform:translateY(-2px);box-shadow:0 10px 28px #0000006b,0 1px #ffffff1a inset}.menu-card:active:not(.disabled):not(:disabled){transform:translateY(-1px) scale(.99)}.menu-card strong{font-size:1.05rem;color:var(--text);letter-spacing:.005em}.menu-card span{font-size:.85rem;color:var(--text-dim)}.mp-shape-hint{margin:8px 0 2px;font-size:.84rem;color:var(--text-dim);text-align:center}.mp-shape-hint strong{color:var(--text)}.menu-card.disabled,.menu-card:disabled{opacity:.55;cursor:not-allowed;filter:saturate(.72)}.menu-card.disabled:after,.menu-card:disabled:after{content:"";position:absolute;top:10px;right:11px;width:13px;height:15px;background-color:var(--text-dim);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 8V7a3 3 0 0 1 6 0v3H9z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 8V7a3 3 0 0 1 6 0v3H9z'/%3E%3C/svg%3E") center / contain no-repeat;opacity:.8;pointer-events:none}.link-btn{background:none;color:var(--text-dim);font-size:.82rem;padding:8px 12px;border-radius:8px;transition:color .16s,background .16s}.link-btn:hover{color:var(--accent);background:#ffffff0a}.back-link{align-self:flex-start}.hint{margin:0;color:var(--text-dim);font-size:.9rem}.hint-name{color:var(--accent);font-weight:500}.hotseat-setup{display:flex;flex-direction:column;gap:14px;width:100%;max-width:440px}.hotseat-name{display:flex;flex-direction:column;gap:6px}.hotseat-name-label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-dim);font-weight:500}.dot-swatch{width:14px;height:14px;border-radius:50%;display:inline-block;border:1px solid var(--glass-border-strong);box-shadow:0 0 6px #0006 inset}.dot-swatch-p1[data-swap="0"]{background:radial-gradient(circle at 35% 28%,#62cf90,#0d4a23 60%,#02160a)}.dot-swatch-p1[data-swap="1"],.dot-swatch-p2[data-swap="0"]{background:radial-gradient(circle at 35% 28%,#fff,#d3ecaa 55%,#7a9560)}.dot-swatch-p2[data-swap="1"]{background:radial-gradient(circle at 35% 28%,#62cf90,#0d4a23 60%,#02160a)}.hotseat-start{margin-top:6px;padding:12px 22px;border-radius:14px;background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:var(--on-accent);font-weight:700;font-size:1rem;border:1px solid var(--accent-edge);box-shadow:0 6px 22px rgba(var(--accent-rgb),.45),inset 0 1px #ffffff40;cursor:pointer;transition:background .16s,transform .14s}.hotseat-start:hover{background:linear-gradient(180deg,var(--accent-edge),var(--accent))}.hotseat-start:active{transform:scale(.98)}.app-footer{display:flex;justify-content:center;padding:8px 12px max(10px,env(safe-area-inset-bottom));flex-shrink:0;position:relative;z-index:5}.app-footer-inner{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:7px 16px;background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:22px;max-width:100%;box-shadow:0 4px 16px #00000052,0 1px #ffffff0f inset;font-size:.75rem;color:var(--text-mute);letter-spacing:.02em;white-space:nowrap}.app-footer-brand{color:var(--text-mute);font-weight:500}.app-footer-inner a{color:var(--text-dim);text-decoration:none;transition:color .14s}.app-footer-inner a:hover{color:var(--accent)}.app-footer-inner .sep{opacity:.4}@media (max-width: 380px){.app-footer-inner{gap:8px;padding:6px 12px;font-size:.75rem}.app-footer{padding:6px 8px max(8px,env(safe-area-inset-bottom))}}.game-screen{flex:1;display:flex;flex-direction:column;min-height:0;position:relative}.game-topbar{display:grid;grid-template-columns:40px 1fr minmax(40px,auto);align-items:center;gap:10px;padding:8px 12px;background:var(--glass-bg-strong);border-bottom:1px solid var(--glass-border)}.player-action-slot{display:flex;justify-content:center;width:100%}.player-below-avatar{display:flex;justify-content:center;width:100%;margin-top:2px}.player-elo{display:inline-flex;align-items:center;justify-content:center;padding:2px 9px;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--text-bright);font-size:.75rem;font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums}.go-rating-change{display:flex;align-items:center;justify-content:center;gap:8px;margin:6px 0 16px;padding:10px 14px;border-radius:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);font-variant-numeric:tabular-nums}.go-rating-label{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-mute)}.go-rating-before,.go-rating-after{font-weight:600;color:var(--text-bright);font-size:1rem}.go-rating-arrow{color:var(--text-mute);font-size:.9rem}.go-rating-delta{margin-left:6px;padding:2px 9px;border-radius:999px;font-weight:700;font-size:.88rem}.go-rating-delta-pos{background:#46af6938;color:#8de1a6}.go-rating-delta-neg{background:#c8464638;color:#f59c9c}.go-rating-delta-flat{background:#c8b45a2e;color:#f0e3a3}.btn-resign-inline{padding:5px 12px;border-radius:10px;background:#b4323229;border:1px solid rgba(220,90,90,.32);color:#ffc4c4;font-size:.78rem;font-weight:500;letter-spacing:.02em;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,transform .12s ease}.btn-resign-inline:hover{background:#c83c3c42;border-color:#f06e6e7a;color:#ffd5d5}.btn-resign-inline:active{transform:scale(.96)}.go-subtitle{margin:-6px 0 14px;text-align:center;color:#b8c8be;font-size:.95rem;letter-spacing:.01em}.confirm-overlay{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.confirm-card{background:#14201aeb;border:1px solid var(--glass-border);border-radius:18px;padding:22px 26px;max-width:360px;width:100%;text-align:center;color:#e6f1ea;box-shadow:0 20px 60px #0000008c}.confirm-card h3{margin:0 0 6px;font-size:1.2rem;letter-spacing:.01em}.confirm-card p{margin:0 0 18px;color:#b8c8be;font-size:.95rem}.confirm-actions{display:flex;gap:10px;justify-content:center}.confirm-actions button{flex:1;max-width:140px;padding:10px 16px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border);color:inherit;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .12s ease,transform .12s ease}.confirm-actions button:hover{background:var(--glass-bg-strong, rgba(255, 255, 255, .08))}.confirm-actions button:active{transform:scale(.97)}.confirm-actions button.danger{background:#c83232d9;border-color:#ff646480;color:#fff}.confirm-actions button.danger:hover{background:#dc3c3cf2}.topbar-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:44px}.pending-indicator-hidden{visibility:hidden;pointer-events:none}.pending-indicator{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;background:#ffd6801f;border:1px solid rgba(255,214,128,.4);font-size:.75rem;color:#ffd680;letter-spacing:.02em;animation:pendingPulse 1.8s ease-in-out infinite;cursor:help}.pending-icon{font-size:.8rem;line-height:1}.pending-value{font-weight:700;font-size:.86rem}.pending-label{opacity:.85}@keyframes pendingPulse{0%,to{box-shadow:0 0 #ffd68000}50%{box-shadow:0 0 10px 1px #ffd68059}}.pending-indicator.pending-flash{animation:pendingPulse 1.8s ease-in-out infinite,pendingFlash .6s ease-out}@keyframes pendingFlash{0%{box-shadow:0 0 #ffd680e6;transform:scale(1)}35%{box-shadow:0 0 18px 4px #ffd680bf;transform:scale(1.08)}to{box-shadow:0 0 #ffd68000;transform:scale(1)}}.score-float{pointer-events:none;paint-order:stroke;stroke:#000000d9;stroke-width:.11;stroke-linejoin:round;font-family:system-ui,-apple-system,sans-serif;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 .08px rgba(0,0,0,.9))}.score-float-above{animation:scoreFloatUp 1.05s ease-out forwards}.score-float-below{animation:scoreFloatDown 1.05s ease-out forwards}.score-float-p1{fill:var(--p1-bright)}.score-float-p2{fill:var(--p2-glow)}@keyframes scoreFloatUp{0%{opacity:0;transform:translateY(0) scale(.7)}15%{opacity:1;transform:translateY(-.15px) scale(1.08)}70%{opacity:1;transform:translateY(-.45px) scale(1)}to{opacity:0;transform:translateY(-.7px) scale(1)}}@keyframes scoreFloatDown{0%{opacity:0;transform:translateY(0) scale(.7)}15%{opacity:1;transform:translateY(.15px) scale(1.08)}70%{opacity:1;transform:translateY(.45px) scale(1)}to{opacity:0;transform:translateY(.7px) scale(1)}}.player-score.score-bump{animation:scoreBump .4s ease-out}@keyframes scoreBump{0%{transform:scale(1);filter:brightness(1)}40%{transform:scale(1.18);filter:brightness(1.4) drop-shadow(0 0 10px rgba(123,219,149,.6))}to{transform:scale(1);filter:brightness(1)}}.hint-bubble{animation:hintBubbleFadeIn .22s ease-out;transform-origin:center}.hint-bubble-bg{fill:#0a1610f0;stroke:#7bdb958c;stroke-width:.03;filter:drop-shadow(0 .08px .16px rgba(0,0,0,.45))}.hint-bubble-tail{fill:#0a1610f0;stroke:#7bdb958c;stroke-width:.03;stroke-linejoin:round}.hint-bubble-text{fill:var(--text);paint-order:stroke;stroke:#0009;stroke-width:.04;stroke-linejoin:round;font-family:system-ui,-apple-system,sans-serif;font-weight:500;user-select:none}@keyframes hintBubbleFadeIn{0%{opacity:0}to{opacity:1}}.btn-claim-toggle{display:inline-flex;align-items:center;gap:8px;padding:3px 8px 3px 10px;border-radius:14px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text);font-size:.75rem;font-weight:500;letter-spacing:.01em;cursor:pointer;white-space:nowrap;user-select:none;transition:background .16s ease,border-color .16s ease}.btn-claim-toggle:hover{background:var(--glass-bg-strong);border-color:var(--glass-border-strong)}.btn-claim-toggle.off{color:#ffffffa6}.claim-toggle-switch{display:inline-block;position:relative;width:26px;height:14px;border-radius:7px;background:#ffffff2e;transition:background .16s ease;flex:0 0 auto}.btn-claim-toggle.on .claim-toggle-switch{background:var(--accent)}.claim-toggle-knob{position:absolute;top:1px;left:1px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000059;transition:transform .16s ease}.btn-claim-toggle.on .claim-toggle-knob{transform:translate(12px)}@media (max-width: 720px){.btn-claim-toggle{font-size:.75rem;padding:2px 6px 2px 9px;gap:6px}.claim-toggle-switch{width:22px;height:12px}.claim-toggle-knob{width:10px;height:10px}.btn-claim-toggle.on .claim-toggle-knob{transform:translate(10px)}}.btn-rules{width:40px;height:40px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text);font-size:1.1rem;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .14s,border-color .14s,transform .14s,color .14s}.btn-rules:hover{background:var(--glass-bg-strong);border-color:var(--glass-border-strong);color:var(--accent)}.btn-rules:active{transform:scale(.95)}.btn-back{width:40px;height:40px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text);font-size:1.4rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .14s,border-color .14s,transform .14s}.btn-back:hover{background:var(--glass-bg-strong);border-color:var(--glass-border-strong)}.btn-back:active{transform:scale(.95)}.remaining-points{display:flex;align-items:baseline;justify-content:center;gap:8px;color:var(--text)}.remaining-value{font-size:1.2rem;font-weight:700;color:var(--accent);text-shadow:0 0 10px rgba(123,219,149,.35)}.remaining-label{font-size:.75rem;color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase}.game-body{flex:1;display:flex;align-items:stretch;min-height:0;min-width:0}.side-panel{width:clamp(86px,22vw,150px);flex-shrink:0;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--glass-bg-strong);border:1px solid var(--glass-border);transition:border-color .22s,box-shadow .22s,background .22s;position:relative}.side-panel-left{border-radius:var(--radius);margin-left:8px}.side-panel-right{border-radius:var(--radius);margin-right:8px}.side-panel.active:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;animation:panelBreathe 2.2s ease-in-out infinite}.side-panel-p1.active:after{box-shadow:0 0 20px 1px rgba(var(--p1-rgb-glow),.45)}.side-panel-p2.active:after{box-shadow:0 0 20px 1px rgba(var(--p2-rgb-glow),.4)}.side-panel-p1.active{border-color:rgba(var(--p1-rgb-bright),.55);background:rgba(var(--p1-rgb-bright),.08);box-shadow:0 0 0 1px rgba(var(--p1-rgb-bright),.32),0 0 28px rgba(var(--p1-rgb-glow),.35) inset}.side-panel-p2.active{border-color:rgba(var(--p2-rgb-bright),.55);background:rgba(var(--p2-rgb-bright),.08);box-shadow:0 0 0 1px rgba(var(--p2-rgb-bright),.3),0 0 28px rgba(var(--p2-rgb-glow),.25) inset}@keyframes panelBreathe{0%,to{opacity:.3}50%{opacity:.85}}.avatar-frame{width:clamp(56px,14vw,84px);aspect-ratio:1 / 1;border-radius:50%;padding:2px;background:linear-gradient(160deg,#ffffff2e,#ffffff05 50%);display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 4px 18px #0006,inset 0 1px #ffffff1f}.avatar-frame:after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(255,255,255,.16);pointer-events:none}.side-panel.active .avatar-frame{box-shadow:0 6px 22px #00000080,inset 0 1px #ffffff2e,0 0 18px currentColor}.side-panel-p1.active .avatar-frame{color:rgba(var(--p1-rgb-bright),.5)}.side-panel-p2.active .avatar-frame{color:rgba(var(--p2-rgb-bright),.45)}.avatar-svg{width:100%;height:100%;border-radius:50%;display:block}.player-name{font-size:clamp(.75rem,2.3vw,.92rem);font-weight:600;color:var(--text);text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em}.player-rating{font-size:.75rem;color:var(--text-mute);text-transform:uppercase;letter-spacing:.08em}.player-stats{display:flex;flex-direction:column;gap:2px;width:100%;padding:4px 4px 2px}.stats-line{display:flex;align-items:center;gap:4px;font-size:.75rem;line-height:1.1;color:var(--text-dim);white-space:nowrap;overflow:hidden}.stats-mode{font-weight:700;letter-spacing:.04em;color:var(--text-mute);font-size:.75rem;min-width:28px;text-transform:uppercase}.stats-counts{display:inline-flex;gap:3px;flex:1;min-width:0}.stats-w{color:var(--accent);font-weight:600}.stats-d{color:var(--text-dim)}.stats-l{color:var(--danger);opacity:.85}.stats-pct{font-weight:700;color:var(--text);font-size:.75rem;letter-spacing:.01em}.stats-empty{font-size:.75rem;font-style:italic;color:var(--text-mute);opacity:.7}@media (max-width: 380px){.stats-line,.stats-pct{font-size:.75rem}}.player-score{font-size:clamp(1.7rem,5.4vw,2.35rem);font-weight:800;letter-spacing:.01em;margin-top:2px;line-height:1}.side-panel-p1 .player-score{color:var(--p1-bright);text-shadow:0 0 14px rgba(var(--p1-rgb-bright),.4)}.side-panel-p2 .player-score{color:var(--p2-glow);text-shadow:0 0 14px rgba(var(--p2-rgb-bright),.35)}[data-theme=monochrome-pro] .player-score,[data-theme=vintage-press] .player-score{-webkit-text-stroke:.7px rgba(35,24,12,.55);paint-order:stroke fill;text-shadow:none}.player-points-totals{width:100%;margin-top:6px;padding:6px 6px 2px;border-top:1px solid var(--glass-border);display:flex;flex-direction:column;gap:2px}.pt-row{display:flex;align-items:baseline;gap:4px;font-size:.75rem;line-height:1.15;color:var(--text-dim);white-space:nowrap}.pt-arrow{width:11px;text-align:center;font-weight:700;flex-shrink:0}.pt-scored .pt-arrow{color:var(--accent)}.pt-given .pt-arrow{color:var(--danger);opacity:.9}.pt-value{font-weight:700;color:var(--text);font-size:.78rem;min-width:26px}.pt-avg{margin-left:auto;font-size:.75rem;color:var(--text-mute);letter-spacing:.01em}@media (max-width: 380px){.pt-row,.pt-value,.pt-avg{font-size:.75rem}}.thinking-dots{margin-top:4px;font-size:.9rem;color:var(--accent);letter-spacing:.18em;animation:dotsPulse 1.4s ease-in-out infinite}@keyframes dotsPulse{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}h1,h2,h3,.player-score,.remaining-points{font-family:var(--font-display)}.board-wrap{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;padding:12px;position:relative}.board-wrap:before{content:"";position:absolute;width:78%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(var(--p1-rgb-bright),.1),transparent 62%);pointer-events:none;z-index:0}.board{position:relative;z-index:1}.board{width:100%;height:100%;max-width:100%;max-height:100%;touch-action:manipulation}.dot{transition:opacity .18s;transform-origin:center;transform-box:fill-box}.dot-empty{opacity:1;stroke:var(--dot-empty-rim);stroke-width:.05}.dot-empty:hover{opacity:1;filter:brightness(1.3)}.dot-p1{stroke:rgba(var(--p1-rgb-bright),.55);stroke-width:.05}.dot-p2{stroke:rgba(var(--p2-rgb-bright),.6);stroke-width:.05}.dot-last{animation:pop .38s cubic-bezier(.34,1.56,.64,1)}.dot-last-ring{stroke:#7fd5ff;filter:drop-shadow(0 0 .18px #7fd5ff) drop-shadow(0 0 .32px rgba(127,213,255,.6));animation:dot-last-fade-in .22s ease-out}@keyframes dot-last-fade-in{0%{opacity:0}to{opacity:1}}.dot-hint-ring{stroke:#ffd680;stroke-width:.08;opacity:.55}@keyframes pop{0%{transform:scale(.5)}60%{transform:scale(1.08)}to{transform:scale(1)}}.crossline-group{animation:draw .36s cubic-bezier(.2,.9,.3,1.2);transform-origin:center}@keyframes draw{0%{opacity:0;transform:scale(.78)}to{opacity:1;transform:scale(1)}}.crossline{stroke-linecap:round;opacity:.96}.crossline-inner{stroke-linecap:round;opacity:1}.crossline-p1{stroke:var(--strike-p1-outer)}.crossline-inner-p1{stroke:var(--strike-p1-inner)}.crossline-p2{stroke:var(--strike-p2-outer)}.crossline-inner-p2{stroke:var(--strike-p2-inner)}.rules-overlay{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));z-index:100;animation:fadeIn .22s ease-out}.rules-card{position:relative;background:var(--glass-bg-strong);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);border:1px solid var(--glass-border-strong);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-strong);width:100%;max-width:860px;max-height:85vh;max-height:min(85vh,85dvh,85svh);display:flex;flex-direction:column;overflow:hidden;animation:rulesIn .28s cubic-bezier(.2,.9,.3,1.15)}@keyframes rulesIn{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.rules-card:before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(180deg,#ffffff14,#fff0 40%)}.rules-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:10px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text);font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .14s,border-color .14s,color .14s,transform .12s;z-index:2}.rules-close:hover{background:var(--glass-bg-strong);border-color:var(--glass-border-strong);color:var(--accent)}.rules-close:active{transform:scale(.94)}.rules-header{padding:16px 22px 4px;flex-shrink:0}.rules-header h2{margin:0 36px 2px 0;font-size:1.35rem;font-weight:700;background:linear-gradient(180deg,#fff,#b9d6c4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;letter-spacing:.005em}.rules-tagline{margin:0;color:var(--text-dim);font-size:.85rem}.rules-body{padding:8px 22px 12px;overflow-y:auto;flex:1 1 auto;min-height:0;color:var(--text);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.rules-body section{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;display:block;margin:0 0 10px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);padding:12px 14px}.rules-body section:last-child{margin-bottom:0}.rules-body section>*+*{margin-top:4px}.rules-body h3{margin:0 0 1px;font-size:.84rem;font-weight:600;letter-spacing:.02em;color:var(--accent);text-transform:uppercase}.rules-body p{margin:0;font-size:.88rem;line-height:1.42;color:var(--text)}.rules-body em{color:var(--p2-glow);font-style:italic}.rules-body strong{color:#fff;font-weight:700}.rules-bullets,.rules-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:2px;font-size:.88rem;line-height:1.42;color:var(--text)}.rules-bullets li::marker{color:var(--accent)}.rules-steps li::marker{color:var(--accent);font-weight:700}.rules-body .rules-highlight{background:#62cf901a;border:1px solid rgba(98,207,144,.4);border-radius:var(--radius);padding:12px 14px}.rules-body .rules-highlight h3{color:var(--p1-bright)}@media (min-width: 720px){.rules-body{column-count:2}.rules-highlight{column-span:all;-webkit-column-span:all;margin-bottom:12px}}.rules-footer-bar{padding:10px 22px 14px;border-top:1px solid var(--glass-border);flex-shrink:0;display:flex;justify-content:flex-end}.rules-got-it{padding:9px 20px;border-radius:12px;background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:var(--on-accent);font-weight:600;font-size:.9rem;border:1px solid var(--accent-edge);box-shadow:0 4px 16px rgba(var(--accent-rgb),.4),inset 0 1px #ffffff40;transition:background .16s,transform .14s}.rules-got-it:hover{background:linear-gradient(180deg,var(--accent-edge),var(--accent))}.rules-got-it:active{transform:scale(.97)}.settings-card{max-width:460px}.settings-body{padding:6px 22px 14px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:16px}.settings-section{display:flex;flex-direction:column;gap:9px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);padding:13px 15px}.settings-section h3{margin:0 0 2px;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.settings-hint{margin:2px 0 0;font-size:.78rem;color:var(--text-dim);font-style:italic}.settings-label{display:flex;flex-direction:column;gap:4px;font-size:.84rem;color:var(--text-dim)}.settings-input{font-family:inherit;font-size:.96rem;padding:9px 12px;border-radius:10px;background:var(--glass-bg-strong);border:1px solid var(--glass-border-strong);color:var(--text);outline:none;transition:border-color .14s,background .14s}.settings-input::placeholder{color:var(--text-mute);opacity:1}.settings-input:focus{border-color:rgba(var(--accent-rgb),.72);background:rgba(var(--accent-rgb),.1)}.settings-toggle{display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;gap:12px;font-size:.86rem;color:var(--text);cursor:pointer}.settings-toggle input[type=checkbox]{appearance:none;-webkit-appearance:none;flex-shrink:0;width:42px;height:25px;border-radius:13px;background:var(--glass-border-strong);position:relative;cursor:pointer;transition:background .16s}.settings-toggle input[type=checkbox]:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0000004d;transition:transform .16s}.settings-toggle input[type=checkbox]:checked{background:var(--accent)}.settings-toggle input[type=checkbox]:checked:after{transform:translate(17px)}.settings-danger{align-items:stretch;gap:8px;border-color:#d9756547}.settings-danger-row{display:flex;gap:8px}.settings-danger-row .settings-danger-btn{flex:1;text-align:center}.settings-danger-btn{background:#d9756514;border:1px solid rgba(217,117,101,.35);color:var(--danger);padding:9px 16px;border-radius:10px;font-weight:600;font-size:.85rem;cursor:pointer;transition:background .14s,border-color .14s}.settings-danger-btn:hover{background:#d9756529;border-color:#d9756599}.tutorial-card{max-width:500px}.tutorial-body{padding:8px 22px 4px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:10px;font-size:.96rem;line-height:1.5;color:var(--text)}.tutorial-body p{margin:0}.tutorial-progress{display:flex;justify-content:center;gap:8px;padding:4px 0 0}.tutorial-dot{width:8px;height:8px;border-radius:50%;background:var(--glass-border);transition:background .2s,transform .2s}.tutorial-dot.active{background:var(--accent);transform:scale(1.4)}.tutorial-footer{display:flex;justify-content:space-between;align-items:center}.tutorial-footer-actions{display:flex;gap:8px}.tutorial-back{background:var(--glass-bg)!important;color:var(--text-dim)!important;border-color:var(--glass-border)!important;box-shadow:none!important}.tutorial-back:hover{background:var(--glass-bg-strong)!important;color:var(--text)!important}.game-over{position:absolute;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:24px;z-index:10;animation:fadeIn .28s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.game-over-card{position:relative;background:var(--glass-bg-strong);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);border:1px solid var(--glass-border-strong);border-radius:var(--radius-lg);padding:26px 28px;width:100%;max-width:380px;box-shadow:var(--glass-shadow-strong);display:flex;flex-direction:column;gap:16px;text-align:center;overflow:hidden}.game-over-card:before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(180deg,#ffffff1a,#fff0 40%)}.game-over-card h2{margin:0;font-size:1.8rem;font-weight:700;background:linear-gradient(180deg,#fff,#c5dbcc);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.final-scores{display:grid;grid-template-columns:1fr 1fr;gap:12px}.final-score{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:14px 10px;display:flex;flex-direction:column;gap:6px}.final-score span{font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.final-score strong{font-size:1.8rem;font-weight:700}.final-p1 strong{color:var(--p1-bright);text-shadow:0 0 16px rgba(var(--p1-rgb-bright),.4)}.final-p2 strong{color:var(--p2-glow);text-shadow:0 0 16px rgba(var(--p2-rgb-bright),.35)}.unlock-banner{background:#62cf901f;border:1px solid rgba(98,207,144,.4);color:var(--accent);padding:10px 14px;border-radius:12px;font-weight:600;font-size:.95rem}.go-suggestion{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:14px;border:1px solid var(--glass-border-strong);background:#62cf9014;text-align:center}.go-suggestion-headline{font-size:1rem;font-weight:700;color:var(--accent);line-height:1.3}.go-suggestion-body{margin:0;font-size:.86rem;line-height:1.45;color:var(--text);opacity:.92}.go-cta{padding:10px 14px;border-radius:11px;font-weight:600;font-size:.92rem;border:1px solid var(--glass-border-strong);background:var(--glass-bg);color:var(--text);cursor:pointer;transition:background .16s,border-color .16s,transform .14s,color .16s}.go-cta:hover:not(:disabled){background:var(--glass-bg-strong);border-color:var(--accent-edge)}.go-cta:active:not(:disabled){transform:scale(.98)}.go-cta:disabled{opacity:.55;cursor:not-allowed}.go-cta-secondary{background:var(--glass-bg);color:var(--text-dim);border-color:var(--glass-border);font-size:.84rem;padding:8px 12px}.go-suggestion-impossible{background:#f4d97d12;border-color:#f4d97d66}.go-suggestion-impossible .go-suggestion-headline{color:#f4d97d}.go-suggestion-champion{background:linear-gradient(135deg,#f4d97d2e,#62cf9024);border-color:#f4d97d8c;box-shadow:0 6px 22px #f4d97d2e inset}.go-suggestion-champion .go-suggestion-headline{color:#f4d97d;font-size:1.05rem}.go-title-champion{background:linear-gradient(180deg,#ffeb99,#d8b04c)!important;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent!important;paint-order:stroke fill;-webkit-text-stroke:2px rgba(60,30,0,.55);filter:drop-shadow(0 0 10px rgba(255,220,100,.45))}.go-title-impossible{background:linear-gradient(180deg,#f0fbcf,#7adb95)!important;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent!important;paint-order:stroke fill;-webkit-text-stroke:2px rgba(10,40,20,.55);filter:drop-shadow(0 0 10px rgba(122,219,149,.45))}.game-over-buttons{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.game-over-buttons button{padding:11px 22px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text);font-weight:600;font-size:.95rem;transition:background .16s,border-color .16s,transform .14s}.game-over-buttons button:hover{background:var(--glass-bg-strong);border-color:var(--glass-border-strong)}.game-over-buttons button:active{transform:scale(.97)}.game-over-buttons .primary{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:var(--on-accent);border-color:var(--accent-edge);box-shadow:0 4px 16px rgba(var(--accent-rgb),.4),inset 0 1px #ffffff40}.game-over-buttons .primary:hover{background:linear-gradient(180deg,var(--accent-edge),var(--accent))}.rematch-accept{animation:rematchPulse 1.8s ease-in-out infinite}@keyframes rematchPulse{0%,to{box-shadow:0 4px 16px rgba(var(--p1-rgb-glow),.4),inset 0 1px #ffffff40}50%{box-shadow:0 4px 24px rgba(var(--p1-rgb-bright),.7),0 0 0 3px rgba(var(--p1-rgb-bright),.25),inset 0 1px #ffffff4d}}.rematch-waiting{display:inline-flex;flex-direction:column;align-items:center;gap:4px}.rematch-waiting-btn{padding:11px 22px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-dim);font-weight:500;font-size:.9rem;cursor:not-allowed;font-style:italic}.rematch-cancel-link{background:none;border:none;color:var(--text-mute);font-size:.75rem;cursor:pointer;padding:2px 6px;text-decoration:underline;text-underline-offset:2px}.rematch-cancel-link:hover{color:var(--danger)}.consent-banner{position:fixed;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:250;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 16px;border-radius:14px;background:#14201aeb;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid var(--glass-border-strong);box-shadow:0 16px 48px #0000008c;color:var(--text);font-size:.86rem;max-width:720px;margin:0 auto}.consent-banner-text{display:flex;flex-direction:column;gap:4px;flex:1 1 320px;min-width:0}.consent-banner-text strong{color:var(--accent)}.consent-banner-text span{color:var(--text-dim);line-height:1.4}.consent-banner-link{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer;font:inherit}.consent-banner-actions{display:flex;gap:8px;flex-shrink:0}.consent-accept,.consent-decline{padding:8px 16px;border-radius:999px;font-weight:600;font-size:.85rem;cursor:pointer;transition:background .14s,border-color .14s,transform .12s}.consent-accept{background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:var(--on-accent);border:1px solid var(--accent-edge)}.consent-accept:hover:not(:disabled){background:linear-gradient(180deg,var(--accent-edge),var(--accent))}.consent-decline{background:var(--glass-bg);color:var(--text-dim);border:1px solid var(--glass-border)}.consent-decline:hover:not(:disabled){color:var(--text);background:var(--glass-bg-strong);border-color:var(--glass-border-strong)}.consent-accept:active,.consent-decline:active{transform:scale(.97)}.consent-accept:disabled,.consent-decline:disabled{opacity:.55;cursor:not-allowed}.privacy-card{max-width:720px}.privacy-body h3{margin:0 0 1px;font-size:.84rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--accent)}.privacy-body p,.privacy-body li{line-height:1.55}.privacy-rankings-note{margin-top:10px;padding:12px 14px;border-radius:10px;background:#f4d97d14;border:1px solid rgba(244,217,125,.32);color:var(--text);font-size:.9rem;line-height:1.5}.privacy-consent-block{margin-top:11px;padding-top:11px;border-top:1px solid var(--glass-border)}.privacy-consent-actions{display:flex;gap:10px;margin:10px 0 4px;flex-wrap:wrap}.profile-gdpr-actions{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.profile-delete-error{margin-top:8px;padding:8px 12px;border-radius:8px;background:#d975651f;border:1px solid rgba(217,117,101,.35);color:#f5b8a8;font-size:.82rem}@media (orientation: landscape) and (max-height: 500px){.game-topbar{padding:5px 10px;grid-template-columns:34px 1fr minmax(34px,auto)}.btn-back,.btn-rules{width:34px;height:34px;font-size:1.1rem}.btn-resign-inline{padding:4px 8px;font-size:.75rem}.remaining-value{font-size:1rem}.remaining-label{font-size:.75rem}.side-panel{padding:6px;gap:4px}.board-wrap{padding:6px}.app-footer{padding:4px 8px max(4px,env(safe-area-inset-bottom))}.app-footer-inner{padding:5px 12px;font-size:.75rem;gap:8px}}@media (max-width: 360px){.side-panel{width:78px}}.ad-slot{position:relative;width:100%;margin-top:12px;display:flex;justify-content:center;align-items:center;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);overflow:hidden;flex-shrink:0;min-height:50px;max-height:90px}.ad-slot .adsbygoogle{max-height:90px}.ad-slot:before{content:"Ad";position:absolute;top:2px;left:6px;font-size:.75rem;color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;pointer-events:none}@media (min-width: 768px){.ad-slot{min-height:90px;max-height:110px}.ad-slot .adsbygoogle{max-height:110px}}@media (orientation: landscape) and (max-height: 560px){.ad-slot{display:none}}.ad-slot--ingame{flex-shrink:0;width:auto;margin:4px 12px 8px}@media (max-width: 720px){.ad-slot--ingame{margin:2px 8px 4px}}.ad-slot--preview{flex-direction:column;gap:1px;background:repeating-linear-gradient(135deg,#ffffff08 0 12px,#ffffff0f 12px 24px);border:1px dashed var(--glass-border-strong)}.ad-slot-preview-id{font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.1em;color:var(--text)}.ad-slot-preview-text{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute)}.menu-card-rank{width:100%;margin-top:4px;padding:14px 16px}.menu-card-rank strong{font-size:1.05rem}.menu-card-rank span{color:var(--text-dim);font-size:.82rem}.rankings-card{max-width:920px}.rankings-subject-name{display:inline-block;margin-right:10px}.rankings-subject-tag{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);padding:3px 8px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass-bg);-webkit-text-fill-color:var(--text-dim);vertical-align:middle}.rankings-body{padding:8px 22px 16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:14px;-webkit-overflow-scrolling:touch}.rankings-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.rankings-toolbar-label{font-size:.78rem;color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase}.rankings-pills{display:flex;flex-wrap:wrap;gap:6px}.rankings-pill{padding:6px 12px;border-radius:999px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-dim);font-size:.82rem;font-weight:500;transition:background .14s,border-color .14s,color .14s,transform .12s}.rankings-pill:hover{color:var(--text);background:var(--glass-bg-strong);border-color:var(--glass-border-strong)}.rankings-pill.active{color:var(--on-accent);background:linear-gradient(180deg,var(--accent),#4fb87a);border-color:#fff3;font-weight:600}.rankings-empty{margin:12px 0;color:var(--text-dim);font-size:.9rem;text-align:center;padding:28px 12px;border:1px dashed var(--glass-border);border-radius:var(--radius);background:var(--glass-bg)}.skeleton-bar{display:inline-block;height:.85em;border-radius:4px;background:var(--glass-bg-strong);animation:skeletonPulse 1.2s ease-in-out infinite}.skeleton-w1{width:22px}.skeleton-w2{width:38px}.skeleton-w4{width:min(140px,60%)}.rankings-skeleton-row td{padding:10px}.rankings-skeleton-row .col-rank{color:var(--text-dim);opacity:.5}@keyframes skeletonPulse{0%,to{opacity:.35}50%{opacity:.8}}.rankings-view-toggle{display:flex;gap:8px;justify-content:center;margin:4px 0 12px}.rankings-view-toggle .rankings-pill{min-width:100px;font-size:.85rem;padding:8px 16px}.rankings-global-signin{display:flex;flex-direction:column;align-items:center;gap:14px;margin:12px 0}.rankings-global-signin .rankings-empty{margin:0;width:100%}.rankings-global-signin .rules-got-it{min-width:140px}.rankings-global-name{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--text)}.rankings-global-me-tag{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:999px;background:rgba(var(--p1-rgb-bright),.2);color:var(--p1-bright)}.rankings-rating-cell{font-weight:700;font-size:.98rem;color:var(--text)}.rankings-row-me td{background:rgba(var(--p1-rgb-bright),.08)}.rankings-row-me:hover td{background:rgba(var(--p1-rgb-bright),.12)!important}.rankings-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;border-radius:var(--radius);background:var(--glass-bg);border:1px solid var(--glass-border);font-size:.88rem;color:var(--text-dim)}.rankings-summary strong{color:var(--text);font-weight:600}.rankings-summary-sep{color:var(--text-mute)}.rankings-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);-webkit-overflow-scrolling:touch}.rankings-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:460px}.rankings-table.h2h-table{min-width:580px}.rankings-table thead th{position:sticky;top:0;z-index:1;text-align:left;font-weight:600;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim);padding:10px;background:#14201aeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--glass-border);user-select:none;white-space:nowrap}.rankings-table th.col-num,.rankings-table td.col-num{text-align:right;font-variant-numeric:tabular-nums}.rankings-table th.col-rank,.rankings-table td.col-rank{text-align:center;width:36px;color:var(--text-mute)}.rankings-table th.sortable{cursor:pointer;transition:color .14s}.rankings-table th.sortable:hover{color:var(--text)}.rankings-table th.sortable.active{color:var(--accent)}.rankings-table th .sort-glyph{display:inline-block;margin-left:4px;font-size:.75rem;opacity:.6}.rankings-table th.sortable.active .sort-glyph{opacity:1}.rankings-table tbody td{padding:10px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text);white-space:nowrap}.rankings-table tbody tr:last-child td{border-bottom:none}.rankings-table tbody tr:hover td{background:#ffffff06}.rankings-table td.col-name{max-width:220px;overflow:hidden;text-overflow:ellipsis}.rankings-name-link{background:none;border:none;padding:0;margin:0;font:inherit;color:var(--text);text-align:left;cursor:pointer;border-bottom:1px dashed transparent;transition:color .14s,border-color .14s}.rankings-name-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.rankings-name-link.is-ai{color:var(--p2-glow);font-style:italic}.rankings-name-link.is-ai:hover{color:var(--accent)}.rankings-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:-2px}.rankings-confirm-overlay{z-index:110;background:#0000008c;backdrop-filter:blur(6px) saturate(1.1);-webkit-backdrop-filter:blur(6px) saturate(1.1)}.rankings-confirm-card{max-width:440px;border-color:#d9756559}.rankings-confirm-card .rules-header{padding-bottom:8px}.rankings-confirm-card .rules-header h2{background:linear-gradient(180deg,#ffcec6,var(--danger));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.rankings-confirm-name{color:var(--text);font-weight:700}.rankings-confirm-body{padding:0 22px 8px;color:var(--text);font-size:.92rem;line-height:1.45}.rankings-confirm-body p{margin:0}.rankings-confirm-footer{display:flex;justify-content:flex-end;gap:10px}.rankings-confirm-cancel{padding:9px 16px;border-radius:10px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text);font-weight:600;font-size:.85rem;transition:background .14s,border-color .14s}.rankings-confirm-cancel:hover{background:var(--glass-bg-strong);border-color:var(--glass-border-strong)}.rankings-confirm-delete{background:linear-gradient(180deg,#d9756538,#d975651f)}.rankings-confirm-delete:hover{background:linear-gradient(180deg,#d9756552,#d975652e)}@media (max-width: 560px){.rankings-body{padding:8px 12px 12px}.rankings-table{font-size:.82rem}.rankings-table thead th,.rankings-table tbody td{padding:8px 7px}.rankings-confirm-body{padding:0 16px 8px}}@media (max-width: 1000px){.player-points-totals{display:none}}@media (max-width: 820px){.player-stats{display:none}}@media (max-width: 720px),(orientation: landscape) and (max-height: 500px){.game-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"p1 p2" "board board";gap:6px;padding:6px;align-items:stretch;overflow:hidden}.side-panel-left{grid-area:p1}.side-panel-right{grid-area:p2}.board-wrap{grid-area:board;align-items:flex-start;padding:18px 0 10px;min-height:0}.board{height:auto}.side-panel,.side-panel-left,.side-panel-right{width:auto;min-width:0;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:9px;row-gap:5px;padding:7px 11px;border-radius:var(--radius);margin:0;border:1px solid var(--glass-border);overflow:hidden;position:relative}.avatar-frame{width:clamp(32px,10vw,50px);flex-shrink:0}.player-name{flex:0 1 auto;min-width:0;font-size:.9rem;font-weight:600;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0}.player-action-slot,.player-below-avatar{width:auto;margin:0;flex-shrink:0}.btn-resign-inline{padding:3px 9px;font-size:.75rem}.player-score{font-size:1.8rem;margin:0 0 0 auto;line-height:1;flex-shrink:0;min-width:0;text-align:right;padding:0 0 0 2px}.player-stats,.player-points-totals{display:none}.player-rating{font-size:.75rem;padding:0;margin-top:1px;color:var(--text-dim);text-align:center}.thinking-dots{position:absolute;right:6px;top:6px;margin:0;font-size:.85rem;pointer-events:none}}@media (max-width: 720px){.rules-overlay{padding:10px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.rules-card{max-height:95vh;max-height:min(95vh,95dvh,95svh);border-radius:var(--radius)}.rules-close{width:40px;height:40px;top:8px;right:8px;font-size:1.1rem}.rules-header{padding:14px 16px 4px}.rules-header h2{margin-right:48px;font-size:1.05rem}.rules-body{padding:6px 14px 10px}.rules-footer-bar{padding:8px 14px 10px}.app-footer-inner{flex-wrap:wrap;justify-content:center;gap:6px 10px;max-width:calc(100vw - 16px)}}@media (orientation: landscape) and (max-height: 500px){#root{display:none}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at 50% 38%,var(--bg-center) 0%,var(--bg-edge) 78%),#000;z-index:9999}body:after{content:"↻  Please rotate to portrait\ato play DotDuel";white-space:pre;position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--text);font-size:1.1rem;line-height:1.6;letter-spacing:.02em;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}}@media (orientation: landscape) and (max-height: 500px){.game-body{gap:4px;padding:4px 6px 6px}.side-panel,.side-panel-left,.side-panel-right{padding:4px 10px;gap:8px}.avatar-frame{width:clamp(28px,8.5vh,40px)}.player-name{font-size:.75rem}.player-score{font-size:1.4rem}.menu{padding:6px 14px;gap:8px}.menu-section{min-height:0;gap:8px}.menu-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.menu-card,.menu-card-rank{padding:10px 12px}.menu-card-rank strong{font-size:.92rem}.menu-card-rank span{font-size:.75rem}.menu-card strong{font-size:.92rem}.menu-card span{font-size:.75rem}.title{font-size:clamp(1.5rem,4.5vh,2.1rem);gap:8px}.subtitle{font-size:.78rem;max-width:480px}.version-badge{font-size:.75rem;padding:3px 10px}}@media (orientation: portrait) and (max-width: 480px){.menu-grid{grid-template-columns:1fr;gap:10px}.menu-card{padding:14px 16px}}.menu-welcome-name{color:var(--accent);font-weight:600}.menu-auth-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;margin:2px 0 22px}.menu-theme-btn{position:absolute;top:clamp(10px,2.4vh,18px);right:clamp(10px,2.4vw,18px);width:38px;height:38px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-dim);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .14s,color .14s,border-color .14s,transform .14s;z-index:4}.menu-theme-btn:hover{background:var(--glass-bg-strong);color:var(--accent);border-color:var(--glass-border-strong)}.menu-theme-btn:active{transform:scale(.94)}.theme-card{max-width:540px}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:4px 0}@media (max-width: 720px){.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.theme-swatch{padding:8px;gap:6px}.theme-swatch-preview{height:44px}.theme-swatch-dot{width:18px;height:18px}.theme-swatch-label strong{font-size:.8rem}.theme-swatch-label span{font-size:.75rem}}.theme-swatch{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px;border-radius:14px;background:var(--glass-bg);border:1px solid var(--glass-border);cursor:pointer;text-align:left;color:var(--text);transition:background .16s,border-color .16s,transform .14s}.theme-swatch:hover{background:var(--glass-bg-strong);border-color:var(--glass-border-strong)}.theme-swatch:active{transform:scale(.98)}.theme-swatch-selected{border-color:var(--accent);background:rgba(var(--p1-rgb-bright),.1);box-shadow:0 0 0 2px var(--accent) inset,0 8px 22px #00000052}.theme-swatch-selected:after{content:"✓";position:absolute;top:6px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:.78rem;display:flex;align-items:center;justify-content:center}.theme-swatch-preview{height:56px;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid rgba(0,0,0,.3);box-shadow:inset 0 1px #ffffff14}.theme-swatch-dot{width:22px;height:22px;border-radius:50%;box-shadow:inset -3px -3px 6px #00000059,inset 2px 2px 4px #ffffff38,0 2px 6px #00000059}.theme-swatch-label{display:flex;flex-direction:column;gap:2px;min-height:36px}.theme-swatch-label strong{font-size:.88rem;color:var(--text);font-weight:600}.theme-swatch-label span{font-size:.75rem;color:var(--text-dim);line-height:1.3}.theme-swatch-tag{position:absolute;top:6px;right:6px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:#ffc85a2e;border:1px solid rgba(255,200,90,.4);color:#f5d27a}.menu-auth-btn{padding:7px 18px;border-radius:999px;background:var(--glass-bg);backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);border:1px solid var(--glass-border);color:var(--text-dim);font-size:.8rem;font-weight:500;letter-spacing:.03em;cursor:pointer;box-shadow:0 2px 8px #00000038,inset 0 1px #ffffff0d;transition:background .14s,color .14s,border-color .14s,transform .12s,box-shadow .16s}.menu-auth-btn:hover{background:#ffffff12;color:var(--text-bright);border-color:#7bdb9552;box-shadow:0 4px 14px #00000047,inset 0 1px #ffffff14}.menu-auth-btn:active{transform:scale(.97)}.menu-auth-btn-cta{color:var(--accent);border-color:#7bdb9566;background:#1c7a3d2e}.menu-auth-btn-cta:hover{background:#28965047;color:#d8f6e3;border-color:#7bdb958c}.app-footer-version{color:var(--text-mute);font-size:.75rem;letter-spacing:.02em}.app-footer-version-btn{background:none;border:none;padding:2px 6px;margin:-2px -6px;border-radius:6px;font:inherit;letter-spacing:inherit;cursor:pointer;transition:color .14s,background .14s}.app-footer-version-btn:hover{color:var(--accent);background:var(--glass-bg)}.changelog-card{max-width:560px}.changelog-body{display:flex;flex-direction:column;gap:18px}.changelog-entry{padding:12px 14px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border)}.changelog-entry-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px}.changelog-entry-header h3{margin:0;font-size:1.02rem;color:var(--accent);letter-spacing:.01em}.changelog-date{font-size:.75rem;color:var(--text-mute);letter-spacing:.04em}.changelog-highlight{margin:0 0 8px;font-size:.92rem;color:var(--text)}.changelog-empty{margin:4px 0 0;font-size:.84rem;color:var(--text-mute);font-style:italic}.changelog-group{margin-top:10px}.changelog-group h4{margin:0 0 4px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-mute)}.changelog-group ul{margin:0;padding-left:18px;color:var(--text);font-size:.9rem;line-height:1.5}.changelog-group ul li{margin:2px 0}.changelog-group-added h4{color:#8de1a6}.changelog-group-changed h4{color:#f0e3a3}.changelog-group-fixed h4{color:#f59c9c}.menu-card-selected{border-color:#7bdb958c;background:#1c7a3d33;box-shadow:0 0 0 1px #7bdb9573 inset,0 6px 20px #00000052}.menu-card-sub{color:var(--text-mute);font-size:.75rem;margin-top:2px}.matchmaking-card{margin:18px auto;max-width:360px;padding:22px 24px;border-radius:18px;background:var(--glass-bg);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid var(--glass-border);box-shadow:0 4px 22px #00000052,inset 0 1px #ffffff0d;text-align:center}.matchmaking-spinner{display:inline-flex;gap:6px;font-size:2rem;color:var(--accent);margin-bottom:12px}.matchmaking-spinner span{animation:matchmakingPulse 1.4s infinite both}.matchmaking-spinner span:nth-child(2){animation-delay:.18s}.matchmaking-spinner span:nth-child(3){animation-delay:.36s}@keyframes matchmakingPulse{0%,80%,to{opacity:.25;transform:scale(.9)}40%{opacity:1;transform:scale(1.1)}}.matchmaking-status{color:var(--text-bright);font-weight:500;margin:0 0 12px}.matchmaking-cancel-btn{margin:0 auto 14px}.match-found-card{margin:16px auto;max-width:420px;padding:22px 24px;border-radius:18px;background:var(--glass-bg);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:1px solid rgba(123,219,149,.45);box-shadow:0 6px 24px #0000005c,inset 0 1px #ffffff14}.match-found-row{display:flex;align-items:center;justify-content:space-around;gap:12px;margin-bottom:14px}.match-found-player{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}.match-found-player strong{color:var(--text-bright);font-size:1.05rem}.match-found-rating{color:var(--accent);font-weight:600;font-size:.86rem}.match-found-tag{color:var(--text-mute);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.match-found-vs{color:var(--text-mute);font-size:.9rem;font-weight:600;letter-spacing:.08em}.match-found-card code{font-family:monospace;background:#ffffff0f;padding:1px 6px;border-radius:4px;font-size:.78rem}.match-found-actions{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:14px}.clock-badge{display:inline-block;padding:4px 12px;border-radius:8px;background:#0000003d;border:1px solid var(--glass-border);color:var(--text-dim);font-family:SF Mono,Menlo,Consolas,monospace;font-size:1.05rem;font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums;min-width:64px;text-align:center;transition:color .16s,background .16s,border-color .16s}.clock-badge.is-running{color:var(--text-bright);background:#1c7a3d38;border-color:#7bdb9573}.clock-badge.is-low{color:#ffb4b4;background:#dc50502e;border-color:#dc505073;animation:clockLowPulse 1.05s ease-in-out infinite}@keyframes clockLowPulse{0%,to{box-shadow:0 0 #dc505059}50%{box-shadow:0 0 0 6px #dc505000}}.daily-clock-wrap{display:flex;justify-content:center;margin-top:4px}.go-daily-timeout{color:#ffb4b4;font-weight:600;letter-spacing:.02em;margin-bottom:4px}.daily-loading-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#02090b8c;backdrop-filter:blur(4px) saturate(120%)}.daily-loading-card{display:flex;align-items:center;gap:12px;padding:16px 22px;border-radius:14px;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--text-bright);font-weight:600}.daily-loading-spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(123,219,149,.3);border-top-color:var(--accent);animation:dailySpin .8s linear infinite}@keyframes dailySpin{to{transform:rotate(360deg)}}.daily-error-card{max-width:320px;text-align:center}.match-found-ready{font-size:.75rem;letter-spacing:.04em;color:var(--text-mute);margin-top:4px}.match-found-ready.is-ready{color:var(--accent);font-weight:600}.match-found-countdown{text-align:center;margin:14px 0 6px;color:var(--text-bright);font-size:.95rem}.match-found-countdown strong{font-size:1.6rem;color:var(--accent);font-weight:700;margin-left:4px;display:inline-block;min-width:18px}.auth-card{max-width:380px}.auth-body{padding:6px 22px 18px;display:flex;flex-direction:column;gap:14px}.auth-google{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 16px;border-radius:12px;background:#fff;color:#202124;font-weight:600;font-size:.92rem;border:1px solid rgba(0,0,0,.08);box-shadow:0 2px 6px #0000003d;cursor:pointer;transition:transform .14s,box-shadow .14s}.auth-google:hover:not(:disabled){box-shadow:0 4px 14px #00000052}.auth-google:active:not(:disabled){transform:scale(.98)}.auth-google:disabled{opacity:.6;cursor:not-allowed}.auth-google-g{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:conic-gradient(from 0deg,#ea4335,#fbbc05,#34a853,#4285f4,#ea4335);color:#fff;font-weight:700;font-size:.78rem;font-family:Segoe UI,system-ui,sans-serif}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--text-mute);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--glass-border)}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-submit{margin-top:4px;align-self:stretch;text-align:center}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{padding:8px 12px;border-radius:10px;background:#dc50502e;border:1px solid rgba(220,80,80,.38);color:#ffd6d6;font-size:.82rem;line-height:1.35}.auth-info{padding:8px 12px;border-radius:10px;background:#7bdb9529;border:1px solid rgba(123,219,149,.38);color:#d8f6e3;font-size:.82rem;line-height:1.35}.auth-toggle{text-align:center;font-size:.82rem;color:var(--text-mute)}.auth-toggle a{color:var(--accent);text-decoration:none}.auth-toggle a:hover{text-decoration:underline}.auth-card.is-gate .auth-toggle{font-size:1.08rem}.auth-anon{display:block;margin:12px auto 0;padding:0;background:none;border:none;cursor:pointer;text-align:center;font-size:.82rem;color:var(--text-mute);text-decoration:underline;font-family:inherit}.auth-anon:hover:not(:disabled){color:var(--accent)}.app-footer-account{color:var(--text-dim);font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-card{max-width:440px}.profile-body{padding:6px 22px 14px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1}.profile-section{display:flex;flex-direction:column;gap:6px}.profile-section h3{margin:0 0 4px;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.profile-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;font-size:.88rem;border-bottom:1px solid var(--glass-border)}.profile-row:last-child{border-bottom:none}.profile-row span{color:var(--text-dim)}.profile-row strong{color:var(--text-bright);font-weight:600;text-align:right}.profile-row em{font-style:normal;color:var(--text-mute);font-weight:400;margin-left:4px}.profile-email{font-size:.82rem;overflow:hidden;text-overflow:ellipsis;max-width:240px;white-space:nowrap}.profile-footer-bar{justify-content:space-between}.profile-rating{display:inline-flex;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums}.puzzle-lb-card{max-width:460px}.puzzle-lb-body{max-height:60vh;overflow-y:auto;padding:4px 0}.puzzle-lb-list{list-style:none;margin:0;padding:0}.puzzle-lb-row{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;border:1px solid transparent;font-variant-numeric:tabular-nums}.puzzle-lb-row+.puzzle-lb-row{margin-top:2px}.puzzle-lb-row-me{background:#7bdb951a;border-color:#7bdb9559}.puzzle-lb-rank{color:var(--text-dim);font-weight:600;text-align:right}.puzzle-lb-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.puzzle-lb-you{color:var(--accent);font-weight:400;margin-left:4px}.puzzle-lb-margin{font-weight:700;color:var(--accent)}.puzzle-lb-footnote{margin-top:14px;text-align:center}.puzzle-lb-tabs{margin:0 0 12px}.puzzle-lb-winners .puzzle-lb-row{grid-template-columns:58px 1fr auto}.puzzle-lb-date{color:var(--text-dim);font-weight:600;font-size:.85rem}.puzzle-lb-empty{color:var(--text-mute);font-style:italic}.go-daily-result{margin:12px 0;padding:10px 14px;border-radius:12px;background:#7bdb950f;border:1px solid rgba(123,219,149,.18);text-align:center}.go-daily-margin{font-size:1rem;color:var(--text)}.go-daily-margin strong{color:var(--accent);font-size:1.4rem;margin-left:6px}.go-daily-best{margin-top:4px;font-size:.95rem;color:var(--text)}.go-daily-attempts{color:var(--text-dim);font-size:.85rem}.go-daily-streak{margin-top:6px;font-size:.95rem;color:var(--text)}.go-daily-longest{color:var(--text-dim);font-size:.85rem;margin-left:4px}.profile-streak-current{display:inline-flex;align-items:center;gap:6px;color:var(--accent)}.profile-streak-flame{color:#f5a623;filter:drop-shadow(0 0 4px rgba(245,166,35,.5));flex-shrink:0}.provisional-badge{font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:#ffc85a24;border:1px solid rgba(255,200,90,.35);color:#f5d27a;font-weight:600}.bot-tag{display:inline-block;margin-left:6px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:999px;background:#7bdb9529;border:1px solid rgba(123,219,149,.38);color:var(--accent, #7bdb95);font-weight:700;vertical-align:middle}.match-history{display:flex;flex-direction:column;gap:6px;margin-top:6px}.match-history-label{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-mute)}.match-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.match-row{display:grid;grid-template-columns:24px 1fr auto 56px;align-items:center;gap:10px;padding:6px 10px;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);font-size:.85rem}.match-result{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;font-size:.75rem;font-weight:700;letter-spacing:.02em}.match-result-win{background:#46af6938;color:#b8f5d3}.match-result-loss{background:#c846462e;color:#ffc4c4}.match-result-draw{background:#c8b45a2e;color:#f0e3a3}.match-opponent{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-bright)}.match-score{font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:.82rem}.match-delta{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:.82rem}.match-delta-up{color:#8de1a6}.match-delta-down{color:#f59c9c}.match-delta-flat{color:var(--text-mute)}.profile-name-row{display:inline-flex;align-items:center;gap:10px}.profile-rename-btn{padding:3px 10px;border-radius:999px;background:#ffffff0f;border:1px solid var(--glass-border);color:var(--text-dim);font-size:.75rem;letter-spacing:.04em;cursor:pointer;transition:background .14s,color .14s}.profile-rename-btn:hover{background:#ffffff1a;color:var(--accent)}.username-card{max-width:380px}.username-body{padding:6px 22px 18px;display:flex;flex-direction:column;gap:12px}.username-status-row{min-height:18px;display:flex;align-items:center}.username-status{font-size:.78rem;letter-spacing:.02em}.username-status.hint{color:var(--text-mute)}.username-status.checking{color:var(--text-dim)}.username-status.available{color:var(--accent);font-weight:600}.username-status.taken,.username-status.invalid{color:#ffb4b4}.username-signout-link{align-self:center;background:transparent;border:none;color:var(--text-mute);font-size:.78rem;letter-spacing:.02em;padding:6px 10px;margin-top:2px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:color .12s ease}.username-signout-link:hover:not(:disabled){color:var(--text-bright)}.username-signout-link:disabled{opacity:.5;cursor:default}.mp-offline .hint code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85em;background:#ffffff14;padding:1px 5px;border-radius:4px;word-break:break-all}.mp-offline h2{color:#f5d27a}.diag-overlay{position:fixed;bottom:0;left:0;right:0;max-height:50vh;background:#000000eb;color:#c8f0d4;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;z-index:9999;display:flex;flex-direction:column;border-top:1px solid rgba(123,219,149,.4);box-shadow:0 -6px 18px #00000080}.diag-header{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#7bdb951a;border-bottom:1px solid rgba(123,219,149,.3);font-size:12px;color:#7bdb95}.diag-actions{display:flex;gap:6px}.diag-btn{background:#7bdb952e;color:#c8f0d4;border:1px solid rgba(123,219,149,.4);border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit}.diag-btn:active{background:#7bdb954d}.diag-body{flex:1;overflow-y:auto;padding:6px 10px;-webkit-overflow-scrolling:touch}.diag-line{white-space:pre-wrap;word-break:break-all;padding:1px 0}.diag-empty{opacity:.6;padding:6px 0}.diag-restore{position:fixed;bottom:8px;right:8px;z-index:9999;background:#000000d9;color:#7bdb95;border:1px solid rgba(123,219,149,.4);border-radius:999px;padding:6px 12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;cursor:pointer}.friends-btn{position:relative;display:inline-flex;align-items:center;gap:4px}.friends-btn-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:.75rem;font-weight:700;line-height:16px;text-align:center;pointer-events:none}.friends-card{max-width:460px;display:flex;flex-direction:column}.friends-tabs{display:flex;gap:6px;margin-top:12px;margin-bottom:12px;border-bottom:1px solid var(--glass-border);padding-bottom:6px}.friends-tab{flex:1;background:transparent;border:1px solid transparent;color:var(--text-dim);padding:8px 10px;border-radius:8px;font-size:.85rem;cursor:pointer;position:relative;transition:background .16s ease,color .16s ease}.friends-tab:hover{color:var(--text)}.friends-tab.is-active{background:var(--glass-bg-strong);color:var(--text)}.friends-tab-badge{display:inline-block;margin-left:6px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:.75rem;font-weight:700;line-height:16px;text-align:center}.friends-tab-body{flex:1 1 auto;min-height:clamp(220px,45vh,320px);overflow-y:auto;padding-right:4px}.friends-empty{color:var(--text-dim);font-size:.88rem;text-align:center;padding:16px 8px}.friends-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.friends-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;background:var(--glass-bg);border:1px solid var(--glass-border)}.friends-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}.friends-row-name{font-size:.95rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friends-row-status{font-size:.75rem;color:var(--text-dim)}.friends-row-status.status-menu{color:var(--accent)}.friends-row-status.status-in-ai,.friends-row-status.status-in-hotseat{color:#d3b574}.friends-row-status.status-in-ranked,.friends-row-status.status-searching-ranked{color:#d36c5e}.friends-row-status.status-offline{color:var(--text-dim);opacity:.6}.friends-row-actions{display:flex;align-items:center;gap:4px;position:relative}.friends-row-invite,.friends-row-accept,.friends-row-decline,.friends-row-cancel,.friends-row-more{background:var(--glass-bg-strong);border:1px solid var(--glass-border);color:var(--text);font-size:.78rem;padding:6px 10px;border-radius:6px;cursor:pointer;transition:background .12s ease}.friends-row-invite:hover:not(:disabled),.friends-row-accept:hover,.friends-row-decline:hover,.friends-row-cancel:hover,.friends-row-more:hover{background:#ffffff1f}.friends-row-invite:disabled{opacity:.4;cursor:not-allowed}.friends-row-accept{background:#62cf902e}.friends-row-decline{background:#d36c5e2e}.friends-row-more{padding:6px 8px}.friends-row-menu{position:absolute;right:0;top:100%;margin-top:4px;background:var(--glass-bg-strong);border:1px solid var(--glass-border);border-radius:8px;padding:4px;z-index:5;min-width:140px;display:flex;flex-direction:column;gap:2px}.friends-row-menu button{background:transparent;border:none;color:var(--text);font-size:.85rem;padding:6px 10px;text-align:left;border-radius:6px;cursor:pointer}.friends-row-menu button:hover{background:#ffffff14}.friends-requests-heading{font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 6px}.friends-add{margin-top:14px;border-top:1px solid var(--glass-border);padding-top:12px}.friends-add-label{display:block;font-size:.78rem;color:var(--text-dim);margin-bottom:6px}.friends-add-row{display:flex;gap:6px}.friends-add-input{flex:1;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;padding:8px 10px;color:var(--text);font-size:.9rem}.friends-add-input:focus{outline:1px solid var(--accent)}.friends-add-btn{background:var(--accent);color:var(--on-accent);border:none;border-radius:8px;padding:8px 14px;font-size:.88rem;font-weight:600;cursor:pointer}.friends-add-btn:disabled{opacity:.5;cursor:not-allowed}.friends-add-error{margin:6px 0 0;color:#d36c5e;font-size:.78rem}.friends-add-success{margin:6px 0 0;color:var(--accent);font-size:.78rem}.friends-tell-a-friend{margin-top:14px;border-top:1px solid var(--glass-border);padding-top:12px;text-align:center}.tell-a-friend-btn{background:transparent;border:1px dashed var(--glass-border);color:var(--text-dim);padding:8px 14px;border-radius:8px;font-size:.85rem;cursor:pointer;transition:background .12s ease,color .12s ease}.tell-a-friend-btn:hover{background:var(--glass-bg);color:var(--text)}.tell-a-friend-feedback{display:block;margin-top:6px;color:var(--text-dim);font-size:.78rem}.menu-share-row{display:flex;justify-content:center;margin-top:8px}.menu-share-link{background:transparent;border:none;color:var(--text-dim);font-size:.82rem;padding:6px 10px;cursor:pointer;text-decoration:underline;text-decoration-color:#7bdb9559;text-underline-offset:3px;transition:color .12s ease,text-decoration-color .12s ease}.menu-share-link:hover{color:var(--text);text-decoration-color:var(--accent)}.invite-card{max-width:380px}.invite-section{margin-top:12px}.invite-section-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:0 0 6px}.invite-radio-row{display:flex;flex-wrap:wrap;gap:6px}.invite-radio{flex:1;min-width:96px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;padding:8px 10px;font-size:.85rem;cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .12s,border-color .12s}.invite-radio:hover{background:var(--glass-bg-strong)}.invite-radio.is-selected{border-color:var(--accent);background:#62cf901f}.invite-radio input{accent-color:var(--accent)}.invite-radio small{color:var(--text-dim);font-size:.75rem}.invite-ranked-toggle{display:flex;align-items:center;gap:8px;font-size:.92rem}.invite-ranked-toggle input{accent-color:var(--accent)}.invite-ranked-hint{margin:6px 0 0;font-size:.75rem;color:var(--text-dim)}.invite-error{margin:8px 0 0;color:#d36c5e;font-size:.82rem}.invite-actions{margin-top:16px;display:flex;justify-content:flex-end;gap:8px}.invite-waiting{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 4px 4px;text-align:center}.invite-waiting .invite-waiting-text{margin:0;font-size:.95rem;line-height:1.45}.invite-waiting .invite-actions{justify-content:center;margin-top:12px}.invite-toast-stack{position:fixed;top:12px;left:50%;transform:translate(-50%);width:min(420px,calc(100% - 24px));display:flex;flex-direction:column;gap:8px;z-index:90;pointer-events:none}.invite-toast{pointer-events:auto;background:var(--glass-bg-strong);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--accent);border-radius:12px;padding:12px 14px;box-shadow:0 12px 28px #0006;animation:inviteToastIn .24s ease-out}@keyframes inviteToastIn{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.invite-toast-text{font-size:.92rem;color:var(--text);margin-bottom:8px}.invite-toast-meta{font-size:.78rem;color:var(--text-dim);margin-top:2px}.invite-toast-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.invite-toast-decline,.invite-toast-accept,.invite-toast-accept-casual{border:none;border-radius:6px;padding:6px 12px;font-size:.85rem;font-weight:600;cursor:pointer}.invite-toast-decline{background:var(--glass-bg);color:var(--text-dim)}.invite-toast-accept-casual{background:var(--glass-bg-strong);color:var(--text)}.invite-toast-accept{background:var(--accent);color:var(--on-accent)}.invite-toast-decline:disabled,.invite-toast-accept:disabled,.invite-toast-accept-casual:disabled{opacity:.6;cursor:not-allowed}.go-add-friend-row{margin-top:10px;text-align:center;min-height:32px}.go-add-friend-btn{background:transparent;border:1px dashed var(--glass-border);color:var(--text-dim);padding:6px 14px;border-radius:8px;font-size:.85rem;cursor:pointer;transition:background .12s,color .12s}.go-add-friend-btn:hover{background:var(--glass-bg);color:var(--text)}.go-add-friend-note{display:inline-block;color:var(--text-dim);font-size:.82rem;padding:6px 14px}.go-share-row{margin-top:10px;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:100%}.go-share-btn{background:var(--glass-bg);border:1px solid var(--glass-border-strong);color:var(--text);padding:8px 18px;border-radius:999px;font-size:.85rem;cursor:pointer;transition:background .12s,color .12s}.go-share-btn:hover{background:var(--glass-bg-strong);color:var(--text-bright)}.go-share-btn:disabled{opacity:.6;cursor:default}.go-share-feedback{color:var(--text-dim);font-size:.75rem;text-align:center}.share-dialog-overlay{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:210;display:flex;align-items:center;justify-content:center;padding:16px}.share-dialog-card{background:#14201af0;border:1px solid var(--glass-border);border-radius:18px;padding:16px 18px;max-width:420px;width:100%;max-height:100vh;max-height:100dvh;max-height:100svh;overflow-y:auto;text-align:center;color:var(--text);box-shadow:0 20px 60px #0000008c;display:flex;flex-direction:column;gap:10px}.share-dialog-head{display:flex;align-items:center;justify-content:space-between}.share-dialog-head h3{margin:0;font-size:1.05rem}.share-dialog-close{background:none;border:none;color:var(--text-dim);font-size:1rem;cursor:pointer;padding:4px 8px}.share-dialog-close:hover{color:var(--text-bright)}.share-dialog-preview{width:100%;border-radius:12px;border:1px solid var(--glass-border);display:block}.share-dialog-actions,.share-dialog-platforms{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%}.share-action{background:var(--glass-bg);border:1px solid var(--glass-border-strong);color:var(--text);padding:8px 14px;border-radius:999px;font-size:.8rem;cursor:pointer;transition:background .12s,color .12s}.share-action:hover{background:var(--glass-bg-strong);color:var(--text-bright)}.share-action.primary{border-color:var(--accent);color:var(--text-bright)}.share-dialog-hint{margin:0;color:var(--text-dim);font-size:.75rem}.share-dialog-download{align-self:center}@media (max-width: 480px){.friends-card{max-width:100%}.friends-tabs{gap:4px}.friends-tab{padding:6px 8px;font-size:.78rem}.friends-row{padding:8px 10px}.friends-row-name{font-size:.88rem}.invite-toast-text{font-size:.86rem}}.hotseat-start,.rules-got-it,.go-cta-primary,.game-over-buttons .primary{position:relative;border:1px solid var(--accent-edge);color:var(--on-accent);background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 46%,var(--accent-lo) 100%);box-shadow:inset 0 1px 0 var(--bevel-light),inset 0 -2px 4px var(--bevel-shade),0 2px 4px #00000047,0 8px 20px -4px rgba(var(--accent-rgb),.45);transition:transform var(--t-press) var(--ease-spring),box-shadow var(--t-press) ease,filter var(--t-lift) ease}.hotseat-start:before,.rules-got-it:before,.go-cta-primary:before,.game-over-buttons .primary:before{content:"";position:absolute;inset:1px 1px auto;height:46%;border-radius:inherit;background:linear-gradient(180deg,#ffffff4d,#fff0);pointer-events:none}.hotseat-start:hover:not(:disabled),.rules-got-it:hover:not(:disabled),.go-cta-primary:hover:not(:disabled),.game-over-buttons .primary:hover:not(:disabled){filter:brightness(1.06) saturate(1.05);transform:translateY(-1px);box-shadow:inset 0 1px 0 var(--bevel-light),inset 0 -2px 4px var(--bevel-shade),0 4px 8px #0000004d,0 14px 30px -6px rgba(var(--accent-rgb),.55)}.hotseat-start:active:not(:disabled),.rules-got-it:active:not(:disabled),.go-cta-primary:active:not(:disabled),.game-over-buttons .primary:active:not(:disabled){transform:translateY(var(--press-translate)) scale(var(--press-scale));filter:brightness(.97);box-shadow:inset 0 1px #ffffff1a,inset 0 3px 8px var(--bevel-shade),0 1px 2px #0000004d}.btn-back,.btn-rules,.go-cta:not(.go-cta-primary),.game-over-buttons button:not(.primary){background:linear-gradient(180deg,var(--glass-bg-strong),var(--glass-bg));box-shadow:inset 0 1px 0 var(--bevel-light),inset 0 -2px 3px var(--bevel-shade),var(--elev-1);transition:transform var(--t-press) var(--ease-spring),box-shadow var(--t-lift) ease,border-color var(--t-lift) ease,background var(--t-lift) ease,color var(--t-lift) ease}.btn-back:hover,.btn-rules:hover,.go-cta:not(.go-cta-primary):hover,.game-over-buttons button:not(.primary):hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 var(--bevel-light),inset 0 -2px 3px var(--bevel-shade),var(--elev-2)}.btn-back:active,.btn-rules:active,.go-cta:not(.go-cta-primary):active,.game-over-buttons button:not(.primary):active{transform:translateY(var(--press-translate)) scale(var(--press-scale));box-shadow:inset 0 2px 6px var(--bevel-shade),var(--elev-1)}.menu-card{box-shadow:inset 0 1px 0 var(--bevel-light),inset 0 -3px 6px var(--bevel-shade),var(--elev-2)}.menu-card:hover:not(.disabled):not(:disabled){transform:translateY(-3px);box-shadow:inset 0 1px 0 var(--bevel-light),inset 0 -3px 6px var(--bevel-shade),var(--elev-3)}.menu-card:active:not(.disabled):not(:disabled){transform:translateY(0) scale(var(--press-scale));box-shadow:inset 0 1px #ffffff1f,inset 0 3px 8px var(--bevel-shade),var(--elev-1)}.title-text{background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.42) 50%,transparent 62%),linear-gradient(180deg,var(--title-grad-top),var(--title-grad-bottom));-webkit-background-clip:text;background-clip:text}.win-celebration{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.game-over>.game-over-card{position:relative;z-index:2}[data-theme=monochrome-pro] #felt-recess feFlood,[data-theme=vintage-press] #felt-recess feFlood{flood-opacity:.34}[data-theme=monochrome-pro],[data-theme=vintage-press]{--rim-drop: drop-shadow(0 5px 12px rgba(80, 50, 24, .22))}body.has-native-banner #root{padding-bottom:56px;box-sizing:border-box}
