:root{--brand-navy:211 45% 30%;--brand-blue:202 59% 62%;--brand-sky:198 67% 78%;--brand-orange:30 92% 59%;--brand-cream:42 73% 92%;--background:42 73% 92%;--foreground:212 45% 18%;--card:43 80% 97%;--card-foreground:212 45% 18%;--primary:211 45% 30%;--primary-foreground:43 80% 97%;--secondary:40 55% 85%;--secondary-foreground:211 45% 26%;--muted:41 52% 87%;--muted-foreground:212 22% 42%;--accent:200 62% 88%;--accent-foreground:211 45% 26%;--destructive:0 72% 48%;--destructive-foreground:0 0% 98%;--border:40 42% 79%;--input:40 42% 79%;--ring:202 59% 50%;--radius:0.5rem;--success:142 71% 33%;--success-foreground:0 0% 98%;--warning:30 92% 42%}.dark{--background:0 0% 7%;--foreground:0 0% 93%;--card:0 0% 10%;--card-foreground:0 0% 93%;--primary:202 60% 62%;--primary-foreground:0 0% 9%;--secondary:0 0% 15%;--secondary-foreground:0 0% 88%;--muted:0 0% 14%;--muted-foreground:0 0% 63%;--accent:0 0% 16%;--accent-foreground:0 0% 93%;--destructive:0 68% 55%;--destructive-foreground:0 0% 98%;--border:0 0% 17%;--input:0 0% 17%;--ring:202 60% 62%;--success:142 55% 45%;--warning:30 92% 60%}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow:hidden;overscroll-behavior:none}body{background:hsl(var(--background));color:hsl(var(--foreground));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}*{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}[contenteditable=true],input,textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}.board-wrap,.board-wrap *{touch-action:none}.board-shapes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:10}.scroll-y{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:hsl(var(--muted-foreground)/.3) transparent}.scroll-y::-webkit-scrollbar{width:6px}.scroll-y::-webkit-scrollbar-thumb{background:hsl(var(--muted-foreground)/.3);border-radius:3px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse-soft{50%{opacity:.55}}@keyframes clock-alarm{50%{box-shadow:0 0 0 4px hsl(var(--destructive)/.25)}}@keyframes check-flash-a{0%,to{box-shadow:none}40%{box-shadow:inset 0 0 18px 7px rgba(255,0,0,.8)}}@keyframes check-flash-b{0%,to{box-shadow:none}40%{box-shadow:inset 0 0 18px 7px rgba(255,0,0,.8)}}@keyframes modal-in{0%{opacity:0;transform:translate(-50%,-46%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes rise-in-centered{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.anim-fade-in{animation:fade-in .25s ease both}.anim-fade-in-up{animation:fade-in-up .35s cubic-bezier(.21,1.02,.73,1) both}.anim-scale-in{animation:scale-in .3s cubic-bezier(.21,1.02,.73,1) both}.spin{animation:spin .9s linear infinite}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border:1px solid transparent;border-radius:calc(var(--radius) - 2px);background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .1s ease,box-shadow .15s ease,opacity .15s ease}button:hover{background:hsl(var(--primary)/.88)}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}button.secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}button.secondary:hover{background:hsl(var(--secondary)/.75)}button.outline{background:transparent;border-color:hsl(var(--border));color:hsl(var(--foreground))}button.outline:hover{background:hsl(var(--accent))}button.danger{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}button.danger:hover{background:hsl(var(--destructive)/.88)}button.danger-ghost{background:transparent;border-color:hsl(var(--destructive)/.45);color:hsl(var(--destructive))}button.danger-ghost:hover{background:hsl(var(--destructive)/.1);border-color:hsl(var(--destructive))}button.ghost,button.linkish{background:transparent;color:hsl(var(--muted-foreground));height:32px;padding:0 10px}button.ghost:hover,button.linkish:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;background:transparent;color:hsl(var(--muted-foreground));border:1px solid transparent;width:34px;height:34px;padding:0;line-height:0;border-radius:calc(var(--radius) - 2px)}.icon-btn>svg{display:block;flex:0 0 auto}.icon-btn:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-placeholder{width:17px;height:17px;display:block}.discord-pill{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:999px;background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--border));font-size:13px;font-weight:650;text-decoration:none;flex:0 0 auto;transition:background-color .15s ease,border-color .15s ease,transform .15s ease}.discord-pill:hover{background:hsl(var(--accent));border-color:hsl(var(--ring)/.5)}.discord-pill:active{transform:scale(.97)}@keyframes discord-wobble{0%,76%{transform:rotate(0deg)}78%{transform:rotate(-8deg)}80%{transform:rotate(7deg)}82%{transform:rotate(-6deg)}84%{transform:rotate(4deg)}86%{transform:rotate(-2deg)}88%,to{transform:rotate(0deg)}}.discord-wobble{animation:discord-wobble 5s ease-in-out infinite}.discord-wobble:hover{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.discord-wobble{animation:none}}input{height:40px;width:100%;padding:0 12px;border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:transparent;color:hsl(var(--foreground));font-size:14px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}input::placeholder{color:hsl(var(--muted-foreground))}input:focus-visible{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 1px hsl(var(--ring))}.card{background:hsl(var(--card));color:hsl(var(--card-foreground));border:1px solid hsl(var(--border));border-radius:var(--radius)}.toast{color:hsl(var(--destructive));font-size:13px;animation:fade-in .2s ease both}.page-center{height:100dvh;display:flex;flex-direction:column;align-items:center;overflow-y:auto;overscroll-behavior:contain;padding:16px}.page-center>.auth-group{margin:auto;flex:0 0 auto;width:min(380px,100%);display:flex;flex-direction:column;align-items:center;gap:14px}.page-center>.spin{margin:auto}.auth-card{width:100%;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 4px);padding:32px 28px;display:flex;flex-direction:column;gap:12px;animation:scale-in .3s cubic-bezier(.21,1.02,.73,1) both}.auth-card h1{font-size:24px;letter-spacing:-.02em;margin-bottom:4px}.auth-sub{font-size:13px;margin-bottom:8px;text-align:center}.auth-divider,.auth-sub{color:hsl(var(--muted-foreground))}.auth-divider{display:flex;align-items:center;gap:10px;font-size:12px;margin-top:2px}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:hsl(var(--border))}.google-btn-slot{min-height:44px}.google-btn-slot,.turnstile-slot{display:flex;justify-content:center}.turnstile-slot{min-height:65px}.auth-mark{width:56px;height:56px;align-self:center;border-radius:14px;background:hsl(var(--brand-cream));-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:fade-in-up .4s cubic-bezier(.21,1.02,.73,1) both}.auth-card h1.auth-title{align-self:center;font-size:21px;font-weight:750;letter-spacing:-.02em;text-align:center;margin-bottom:2px}.board-skeleton{aspect-ratio:1;width:100%;position:relative;border-radius:10px;overflow:hidden;border:1px solid hsl(var(--border));background-color:var(--sq-light);box-shadow:0 10px 32px -6px hsl(var(--brand-navy)/.25)}.board-skeleton:before{content:"";position:absolute;inset:0;background-color:var(--sq-dark);-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3QgeD0iMSIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iMSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIxIiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMyIgeT0iMiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjUiIHk9IjIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI3IiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI0IiB5PSIzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNiIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNSIgeT0iNCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjciIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjQiIHk9IjUiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI2IiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMSIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSI2IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iNyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48L3N2Zz4=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3QgeD0iMSIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iMSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIxIiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMyIgeT0iMiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjUiIHk9IjIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI3IiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI0IiB5PSIzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNiIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNSIgeT0iNCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjciIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjQiIHk9IjUiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI2IiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMSIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSI2IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iNyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48L3N2Zz4=");-webkit-mask-size:cover;mask-size:cover;pointer-events:none}.dark .board-skeleton{opacity:.96}.skeleton-overlay{position:absolute;inset:-1px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px;background:hsl(var(--background)/.9);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.skeleton-title{font-size:clamp(22px,3.2vw,30px);letter-spacing:-.03em}.skeleton-sub{color:hsl(var(--muted-foreground));font-size:14px;max-width:320px;line-height:1.5}.search-line{min-height:1.5em;animation:fade-in .4s ease both}.skeleton-note{margin-top:4px;max-width:300px;font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground)/.8);text-align:center}.tile-idle{border-style:dashed}.bar-idle,.muted-name{color:hsl(var(--muted-foreground))}.muted-name{font-weight:500}.lobby-side-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:16px;gap:10px}.lobby-side-card,.lobby-steps{display:flex;flex-direction:column}.lobby-steps{margin:0;padding-left:18px;gap:8px;color:hsl(var(--muted-foreground));font-size:13px;line-height:1.5}.pulse-card{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:8px 0}.pulse-stat{display:flex;flex-direction:column;align-items:center;gap:3px;padding:0 1px;min-width:0}.pulse-stat+.pulse-stat{border-left:1px solid hsl(var(--border))}.pulse-value{font-size:16px;font-weight:650;line-height:1.15;color:hsl(var(--foreground));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pulse-num{display:inline-block;animation:pulse-tick .34s cubic-bezier(.22,1,.36,1) both}@keyframes pulse-tick{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.pulse-label{display:flex;align-items:center;gap:4px;font-size:9px;font-weight:600;letter-spacing:.01em;text-transform:uppercase;color:hsl(var(--muted-foreground));white-space:nowrap;max-width:100%}.pulse-dot{width:6px;height:6px;border-radius:50%;flex:none;background:hsl(var(--muted-foreground)/.35);transition:background-color .3s ease}.pulse-dot.online.active{background:hsl(var(--success));animation:pulse-soft 2s ease infinite}.pulse-dot.queued.active{background:hsl(var(--brand-orange))}.pulse-dot.games.active{background:hsl(var(--success))}.cam-preview{position:relative;width:min(260px,72vw);aspect-ratio:4/3;margin-top:4px;border-radius:calc(var(--radius) + 2px);overflow:hidden;background:hsl(var(--muted));border:1px solid hsl(var(--border));box-shadow:0 8px 30px -12px rgba(0,0,0,.35)}.cam-preview video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);display:block}.cam-preview-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:12.5px;color:hsl(var(--muted-foreground))}.media-pills{gap:4px}.media-pill,.media-pills{display:inline-flex;align-items:center}.media-pill{justify-content:center;width:26px;height:26px;border-radius:7px;color:hsl(var(--muted-foreground));background:hsl(var(--secondary));transition:color .2s ease,background-color .2s ease}.media-pills.ready .media-pill{color:hsl(var(--success));background:hsl(var(--success)/.14)}.media-pills:not(.ready) .media-pill{animation:pulse-soft 1.2s ease infinite}.cta{height:48px;padding:0 32px;font-size:15px;font-weight:700;border-radius:var(--radius);background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 6px 18px -8px hsl(var(--primary)/.7)}.cta:hover{filter:brightness(1.12)}.cta:disabled{box-shadow:none}.topbar{display:flex;gap:10px;height:48px;flex:0 0 48px;padding:0 14px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--card))}.brand,.topbar{align-items:center}.brand{font-weight:700;font-size:15px;letter-spacing:-.02em;display:inline-flex;gap:7px}.brand-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:42vw}.brand-mark{width:27px;height:27px;border-radius:8px;border:1px solid hsl(var(--border));-webkit-user-select:none;-moz-user-select:none;user-select:none}.tc-badge{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border-radius:999px;font-size:11.5px;font-weight:600;padding:3px 10px}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.draw-pending:disabled{opacity:.85;cursor:default;transform:none}.conn-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--muted-foreground));transition:background-color .2s ease}.conn-open{background:hsl(var(--success))}.conn-connecting{background:hsl(var(--warning));animation:pulse-soft 1s ease infinite}.conn-closed{background:hsl(var(--destructive))}.ping{color:hsl(var(--muted-foreground));font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:44px;text-align:right}.game-shell{height:100dvh;overflow:hidden;display:flex;flex-direction:column}.game-grid{flex:1 1;min-height:0;display:grid;grid-gap:12px;gap:12px;padding:12px;justify-content:center;align-content:start;overflow:hidden;grid-template-columns:200px minmax(280px,auto) 250px;grid-template-areas:"specs   oppbar  camopp" "specs   board   camopp" "camself board   side" "pulse   selfbar side"}.area-specs{grid-area:specs;min-height:0}.area-camself{grid-area:camself}.area-camopp{grid-area:camopp}.area-oppbar{grid-area:oppbar}.area-board{grid-area:board}.area-selfbar{grid-area:selfbar}.area-side{grid-area:side;min-height:0}.area-pulse{grid-area:pulse}.board-wrap{touch-action:none;align-self:start;width:min(calc(100dvh - 205px),calc(100vw - 510px),820px);margin-inline:auto;animation:fade-in .3s ease both}.board-measure{position:relative;width:100%}.board-measure,.board-measure *{touch-action:none}.board-measure .cg-wrap{width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;box-shadow:0 10px 32px -6px hsl(var(--brand-navy)/.4);animation:fade-in .3s ease both}.dark .board-measure .cg-wrap{box-shadow:0 10px 32px -6px rgba(0,0,0,.5)}.cg-wrap cg-board,.cg-wrap cg-container{width:100%!important;height:100%!important}:root{--sq-light:#faf0d8;--sq-dark:#e9b370;--sq-move:rgba(101,172,216,.45);--sq-sel:rgba(42,75,111,.45);--sq-hint:rgba(42,75,111,.38);--sq-premove:rgba(20,30,85,.42)}html.dark{--sq-light:#d7b072;--sq-dark:#a5741f}html[data-board=green]{--sq-light:#eeeed2;--sq-dark:#769656;--sq-move:rgba(255,214,0,.42);--sq-sel:rgba(255,214,0,.5);--sq-hint:rgba(20,40,20,.32);--sq-premove:rgba(20,30,85,.42)}html.dark[data-board=green]{--sq-light:#d2d2b8;--sq-dark:#5d7a44}html[data-board=blue]{--sq-light:#dee3e6;--sq-dark:#8ca2ad;--sq-move:rgba(255,190,60,.45);--sq-sel:rgba(255,190,60,.5);--sq-hint:rgba(30,45,60,.34);--sq-premove:rgba(20,30,85,.42)}html.dark[data-board=blue]{--sq-light:#c3c8cb;--sq-dark:#6f838e}html[data-board=brown]{--sq-light:#f0d9b5;--sq-dark:#b58863;--sq-move:rgba(155,199,0,.41);--sq-sel:rgba(20,85,30,.5);--sq-hint:rgba(20,85,30,.36);--sq-premove:rgba(20,30,85,.42)}html.dark[data-board=brown]{--sq-light:#d6c0a1;--sq-dark:#96704f}html[data-board=contrast]{--sq-light:#fff;--sq-dark:#6b7780;--sq-move:rgba(255,145,0,.5);--sq-sel:rgba(255,145,0,.58);--sq-hint:rgba(0,0,0,.42);--sq-premove:rgba(20,30,85,.45)}html.dark[data-board=contrast]{--sq-light:#e8ecee;--sq-dark:#41525c}.cg-wrap cg-board{background-color:var(--sq-light);background-image:none}.cg-wrap cg-board:before{content:"";position:absolute;inset:0;background-color:var(--sq-dark);-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3QgeD0iMSIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iMSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIxIiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMyIgeT0iMiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjUiIHk9IjIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI3IiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI0IiB5PSIzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNiIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNSIgeT0iNCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjciIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjQiIHk9IjUiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI2IiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMSIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSI2IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iNyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48L3N2Zz4=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3QgeD0iMSIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iMSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIxIiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMyIgeT0iMiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjUiIHk9IjIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI3IiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI0IiB5PSIzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNiIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNSIgeT0iNCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjciIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjQiIHk9IjUiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI2IiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMSIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSI2IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iNyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48L3N2Zz4=");-webkit-mask-size:cover;mask-size:cover;pointer-events:none}.cg-wrap cg-board square.move-dest{background:radial-gradient(circle,rgba(42,75,111,.38) 21%,transparent 23%)}.cg-wrap cg-board square.move-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(42,75,111,.38) 58%)}.cg-wrap cg-board square.premove-dest{background:radial-gradient(circle,rgba(20,30,85,.42) 21%,transparent 23%)}.cg-wrap cg-board square.premove-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(20,30,85,.42) 58%)}html[data-board=green] .cg-wrap cg-board square.move-dest{background:radial-gradient(circle,rgba(20,40,20,.32) 21%,transparent 23%)}html[data-board=green] .cg-wrap cg-board square.move-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(20,40,20,.32) 58%)}html[data-board=green] .cg-wrap cg-board square.premove-dest{background:radial-gradient(circle,rgba(20,30,85,.42) 21%,transparent 23%)}html[data-board=green] .cg-wrap cg-board square.premove-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(20,30,85,.42) 58%)}html[data-board=blue] .cg-wrap cg-board square.move-dest{background:radial-gradient(circle,rgba(30,45,60,.34) 21%,transparent 23%)}html[data-board=blue] .cg-wrap cg-board square.move-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(30,45,60,.34) 58%)}html[data-board=blue] .cg-wrap cg-board square.premove-dest{background:radial-gradient(circle,rgba(20,30,85,.42) 21%,transparent 23%)}html[data-board=blue] .cg-wrap cg-board square.premove-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(20,30,85,.42) 58%)}html[data-board=brown] .cg-wrap cg-board square.move-dest{background:radial-gradient(circle,rgba(20,85,30,.36) 21%,transparent 23%)}html[data-board=brown] .cg-wrap cg-board square.move-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(20,85,30,.36) 58%)}html[data-board=brown] .cg-wrap cg-board square.premove-dest{background:radial-gradient(circle,rgba(20,30,85,.42) 21%,transparent 23%)}html[data-board=brown] .cg-wrap cg-board square.premove-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(20,30,85,.42) 58%)}html[data-board=contrast] .cg-wrap cg-board square.move-dest{background:radial-gradient(circle,rgba(0,0,0,.42) 21%,transparent 23%)}html[data-board=contrast] .cg-wrap cg-board square.move-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(0,0,0,.42) 58%)}html[data-board=contrast] .cg-wrap cg-board square.premove-dest{background:radial-gradient(circle,rgba(20,30,85,.45) 21%,transparent 23%)}html[data-board=contrast] .cg-wrap cg-board square.premove-dest.oc{background:radial-gradient(circle,transparent 56%,rgba(20,30,85,.45) 58%)}.cg-wrap cg-board square.last-move{background-color:var(--sq-move)}.cg-wrap cg-board square.selected{background-color:var(--sq-sel)}.cg-wrap cg-board square.current-premove{background-color:var(--sq-premove)}.cg-wrap cg-board square.check{background:radial-gradient(ellipse at center,rgba(255,0,0,.55) 0,rgba(231,0,0,.35) 30%,rgba(169,0,0,0) 80%)}.cg-wrap coords{position:absolute;display:flex;pointer-events:none;font-weight:600;font-size:clamp(8px,2.1vmin,11px);line-height:1;opacity:.72;z-index:3;color:#192d43;text-shadow:0 0 2px hsla(42,77%,91%,.7)}.dark .cg-wrap coords{color:#f7f0de;text-shadow:0 0 2px hsla(0,0%,8%,.7)}.cg-wrap coords.ranks{left:auto!important;right:0!important;top:0!important;bottom:auto!important;height:100%!important;width:auto!important;flex-flow:column-reverse!important;align-items:flex-end!important;padding:3px 3px 0 0!important}.cg-wrap coords.ranks.black{flex-flow:column!important}.cg-wrap coords.ranks coord{transform:none!important}.cg-wrap coords.files{left:0!important;right:auto!important;top:auto!important;bottom:0!important;width:100%!important;height:auto!important;flex-flow:row!important;text-transform:uppercase;text-align:left!important;padding:0 0 3px 4px!important}.cg-wrap coords.files.black{flex-flow:row-reverse!important}.cg-wrap coords.files coord{flex:1 1 auto;text-align:left!important}.board-loading{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:8px;box-shadow:0 10px 32px -6px hsl(var(--brand-navy)/.25);background-color:var(--sq-light);color:hsl(var(--muted-foreground));overflow:hidden;animation:fade-in .3s ease both}.board-loading:before{background-color:var(--sq-dark);-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3QgeD0iMSIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iMSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIxIiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMyIgeT0iMiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjUiIHk9IjIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI3IiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI0IiB5PSIzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNiIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNSIgeT0iNCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjciIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjQiIHk9IjUiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI2IiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMSIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSI2IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iNyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48L3N2Zz4=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3QgeD0iMSIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iMSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIxIiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMyIgeT0iMiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjUiIHk9IjIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI3IiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI0IiB5PSIzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNiIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNSIgeT0iNCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjciIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjQiIHk9IjUiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI2IiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMSIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSI2IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iNyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48L3N2Zz4=");-webkit-mask-size:cover;mask-size:cover}.board-loading:after,.board-loading:before{content:"";position:absolute;inset:0;pointer-events:none}.board-loading:after{background:hsl(var(--background)/.55)}.board-loading>*{position:relative;z-index:1}.dark .board-loading{box-shadow:0 10px 32px -6px rgba(0,0,0,.5)}.dark .board-loading:after{background:hsl(var(--background)/.62)}.promo-scrim{position:absolute;inset:0;z-index:20}.promo-picker{position:absolute;z-index:21;display:flex;flex-direction:column;border-radius:9px;overflow:hidden;background:#fff;box-shadow:0 12px 30px -6px rgba(20,30,55,.55),0 0 0 1.5px hsl(var(--brand-navy)/.35);animation:fade-in .12s ease both}.dark .promo-picker{background:#1c1c1e;box-shadow:0 12px 30px -6px rgba(0,0,0,.7),0 0 0 1.5px hsla(0,0%,100%,.18)}.promo-option{flex:1 1;display:grid;place-items:center;background:transparent;border:none;cursor:pointer;font-size:min(7.4vw,52px);line-height:1;transition:background-color .12s ease}.promo-option+.promo-option{border-top:1px solid rgba(20,30,55,.12)}.dark .promo-option+.promo-option{border-top-color:hsla(0,0%,100%,.12)}.promo-option:hover{background:hsl(var(--brand-orange)/.16)}.promo-option span{pointer-events:none}.promo-white span{color:#fff;-webkit-text-stroke:2.4px #223c5c;paint-order:stroke fill;filter:drop-shadow(0 1px 1.5px rgb(0 0 0/.4))}.promo-black span{color:#1a1a1a;-webkit-text-stroke:1px #000}.dark .promo-white span{-webkit-text-stroke-color:#0d1b2e}.dark .promo-black span{color:#e6e6e6;-webkit-text-stroke:2px #000;paint-order:stroke fill}.cam-panel{display:flex;flex-direction:column;gap:10px;min-height:0}.area-camself{justify-content:flex-end}.area-camself .cam-controls{order:-1}.video-tile{position:relative;background:#18181b;border:1px solid hsl(var(--border));border-radius:var(--radius);overflow:hidden;aspect-ratio:3/4;animation:fade-in .3s ease both}.video-tile video{width:100%;height:100%;object-fit:cover;display:block}.self-cam-video{transform:scaleX(-1)}:root[data-cam-mirror=off] .self-cam-video{transform:none}.tile-label{position:absolute;bottom:6px;left:8px;font-size:11.5px;font-weight:600;color:#fff;background:rgba(0,0,0,.55);padding:2px 8px;border-radius:5px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.cam-off-overlay{position:absolute;inset:0;display:grid;place-items:center;background:hsl(var(--muted));color:hsl(var(--muted-foreground));font-size:12.5px}.cam-off-loading{animation:pulse-soft 1.6s ease infinite}.label-cam-off,.label-mic-off{color:#f25a5a;margin-left:5px;vertical-align:-1px}.avatar-img{border-radius:50%;object-fit:cover;border:2px solid hsla(0,0%,100%,.4)}.avatar-emoji,.avatar-img{-webkit-user-select:none;-moz-user-select:none;user-select:none}.avatar-emoji{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:hsl(var(--secondary));border:1px solid hsl(var(--border));line-height:1}@keyframes tv-static{0%{background-position:0 0}20%{background-position:-22px 12px}40%{background-position:16px -20px}60%{background-position:-14px -9px}80%{background-position:20px 15px}to{background-position:6px -6px}}.tv-noise{background-color:#14161a;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22160%22%20height%3D%22160%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.8%22%20numOctaves%3D%223%22%20stitchTiles%3D%22stitch%22%2F%3E%3CfeColorMatrix%20type%3D%22saturate%22%20values%3D%220%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22160%22%20height%3D%22160%22%20filter%3D%22url(%23n)%22%2F%3E%3C%2Fsvg%3E");background-size:160px 160px;background-repeat:repeat;animation:tv-static .5s steps(5) infinite}.tv-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:transparent;animation:none}.tv-logo{width:54px;height:54px;border-radius:12px;border:1px solid hsla(0,0%,100%,.18);box-shadow:0 4px 18px rgba(0,0,0,.5);-webkit-user-select:none;-moz-user-select:none;user-select:none}.tv-caption{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:hsla(0,0%,100%,.9);background:rgba(0,0,0,.5);padding:3px 10px;border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.video-tile.tv-noise video{visibility:hidden}.tile-report{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:8px;background:hsl(var(--destructive)/.8);color:hsla(0,0%,100%,.9);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:.65}.tile-report:focus-visible,.tile-report:hover{opacity:1;background:hsl(var(--destructive));color:#fff;transform:none}.auth-link-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:38px;padding:0 16px;border:1px solid transparent;border-radius:calc(var(--radius) - 2px);background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;transition:background-color .15s ease,color .15s ease,transform .1s ease}.auth-link-btn:hover{background:hsl(var(--primary)/.88);text-decoration:none}.auth-link-btn:active{transform:scale(.98)}.auth-link-btn:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.auth-link-btn.secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.auth-link-btn.secondary:hover{background:hsl(var(--secondary)/.75)}.nf-wrap{margin:auto;width:min(380px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.nf-mark{width:60px;height:60px;border-radius:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-bottom:2px}.nf-code{font-size:46px;font-weight:700;letter-spacing:-.03em;line-height:1;color:hsl(var(--muted-foreground)/.4)}.nf-title{font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.25}.nf-sub{color:hsl(var(--muted-foreground));font-size:13.5px;line-height:1.55;max-width:34ch}.nf-actions{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:8px}.nf-legal{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:12.5px;color:hsl(var(--muted-foreground))}.nf-legal a{color:inherit;text-decoration:none}.nf-legal a:hover{color:hsl(var(--foreground));text-decoration:underline}.settings-action{display:inline-flex;align-items:center;gap:7px;width:auto;align-self:flex-start;margin-top:4px}.media-fault{display:flex;align-items:flex-start;gap:6px;margin-top:6px;padding:6px 8px;border-radius:8px;background:rgba(245,159,10,.14);border:1px solid rgba(245,159,10,.35);color:hsl(var(--foreground));font-size:11.5px;font-weight:500;line-height:1.35}.media-fault svg{flex:none;margin-top:1px;color:#dc8f09}@media (max-width:619px){.media-fault{font-size:10.5px;padding:5px 7px}}.tile-vcam{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:8px;background:rgba(245,159,10,.82);color:#341d09;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:.7}.tile-vcam:focus-visible,.tile-vcam:hover{opacity:1;background:#f59f0a;transform:none}.vcam-tip{position:absolute;top:50%;left:calc(100% + 6px);transform:translateY(-50%);width:max-content;max-width:150px;background:hsl(var(--foreground));color:hsl(var(--background));font-size:11px;font-weight:600;line-height:1.35;text-align:left;padding:4px 9px;border-radius:6px;z-index:40;pointer-events:none}.report-wrap{display:contents}.report-backdrop{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .18s ease both}.report-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:85;width:min(360px,calc(100vw - 40px));max-height:calc(100dvh - 48px);overflow-y:auto;padding:20px 18px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:10px;text-align:left;animation:modal-in .28s cubic-bezier(.21,1.02,.73,1) both}.report-modal .go-close{display:inline-flex;position:absolute;top:8px;right:8px;width:30px;height:30px;padding:0;background:transparent;color:hsl(var(--muted-foreground));border-radius:8px}.report-modal .go-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.report-modal .result-line{font-size:16px;font-weight:700;padding-right:26px;justify-content:flex-start}.report-block-row input[type=checkbox],.report-reason input[type=radio]{width:16px;height:16px;flex:0 0 16px;padding:0;border:none;box-shadow:none;transition:none}.report-reasons{display:flex;flex-direction:column;gap:4px}.report-reason{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid hsl(var(--border));border-radius:9px;font-size:13.5px;font-weight:500;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.report-reason:hover{background:hsl(var(--accent))}.report-reason.on{border-color:hsl(var(--destructive)/.55);background:hsl(var(--destructive)/.08)}.report-reason input{accent-color:hsl(var(--destructive));margin:0}.report-comment{width:100%;resize:none;padding:8px 10px;border:1px solid hsl(var(--border));border-radius:9px;background:hsl(var(--background));color:hsl(var(--foreground));font:inherit;font-size:13.5px}.report-comment:focus{outline:2px solid hsl(var(--ring)/.4);outline-offset:0}.report-block-row{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;font-weight:500;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.report-block-row input{accent-color:hsl(var(--destructive));margin-top:2px}.report-note{font-size:11.5px;color:hsl(var(--muted-foreground));margin:0}.online-dot{width:7px;height:7px;background:hsl(var(--success));box-shadow:0 0 0 0 hsl(var(--success)/.6);animation:online-pulse 2.4s ease-out infinite}@keyframes online-pulse{0%{box-shadow:0 0 0 0 hsl(var(--success)/.55)}70%{box-shadow:0 0 0 5px hsl(var(--success)/0)}to{box-shadow:0 0 0 0 hsl(var(--success)/0)}}.cam-controls{display:flex;gap:8px;justify-content:center}.ctl{width:40px;height:36px;padding:0;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.ctl:hover{background:hsl(var(--secondary)/.75)}.ctl-off{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.ctl-off:hover{background:hsl(var(--destructive)/.85)}.cam-center{display:none}.center-logo{width:30px;height:30px;border-radius:8px;border:1px solid hsl(var(--border));-webkit-user-select:none;-moz-user-select:none;user-select:none}.oppbar-conn{display:none}.player-bar{display:flex;align-items:center;gap:8px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:6px 12px;min-height:52px}.player-name{font-weight:600;font-size:14px}.player-rating{color:hsl(var(--muted-foreground));font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rating-delta{font-size:11.5px;font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:1px 5px;border-radius:5px;animation:fade-in .25s ease both}.rating-delta.up{color:hsl(var(--success));background:hsl(var(--success)/.14)}.rating-delta.down{color:hsl(var(--destructive));background:hsl(var(--destructive)/.14)}.go-rating{display:flex;align-items:center;justify-content:center;gap:8px;min-height:28px;font-size:15px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:2px 0 4px}.presence{width:7px;height:7px;border-radius:50%;flex:none;transition:background-color .2s ease}.presence.on{background:hsl(var(--success))}.presence.off{background:hsl(var(--destructive));animation:pulse-soft 1s ease infinite}.presence.away{background:hsl(var(--muted-foreground)/.65);animation:pulse-soft 1.4s ease infinite}.reconnecting{display:inline-flex;align-items:center;gap:4px;flex:none;white-space:nowrap;color:hsl(var(--warning));font-size:12px}.reconnect-count{min-width:3ch;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.player-bar .player-name{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-bar .clock{margin-left:auto;flex:none}.clock{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;letter-spacing:.01em;background:hsl(var(--muted));color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);padding:4px 14px;transition:background-color .2s ease,color .2s ease}.clock-active{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.clock-active.clock-low{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));animation:clock-alarm 1s ease infinite}.side-stack{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}.actions{display:flex;gap:8px;flex-wrap:wrap;animation:fade-in .25s ease both}.actions button{flex:1 1}.go-backdrop{display:none}.game-over-banner{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:18px 16px;text-align:center;display:flex;flex-direction:column;gap:10px;animation:fade-in-up .4s cubic-bezier(.21,1.02,.73,1) both}.game-over-banner.won{border-color:hsl(var(--success)/.6);box-shadow:0 0 0 1px hsl(var(--success)/.25)}.game-over-banner.lost{border-color:hsl(var(--destructive)/.5)}.result-line{font-size:17px;font-weight:700;display:inline-flex;align-items:center;gap:8px;justify-content:center}.game-over-banner.won .result-line{color:hsl(var(--success))}.reason-line{color:hsl(var(--muted-foreground));font-size:13px;text-transform:capitalize}.go-close,.go-reopen{display:none}.move-list{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:8px 12px;font-size:13.5px;flex:1 1;min-height:60px}.move-list-empty{color:hsl(var(--muted-foreground));display:grid;place-items:center}.move-row{display:grid;grid-template-columns:30px 1fr 1fr;padding:3px 2px;border-radius:4px}.move-row:nth-child(odd){background:hsl(var(--muted)/.5)}.move-num{color:hsl(var(--muted-foreground));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.move-san{display:inline-block;height:auto;padding:0 4px;margin-left:-4px;background:transparent;border:none;border-radius:4px;font-size:inherit;font-weight:500;font-family:inherit;text-align:left;justify-content:flex-start;cursor:pointer}.move-san,.move-san:hover{color:hsl(var(--foreground))}.move-san:hover{background:hsl(var(--accent));transform:none}.move-san:active{transform:none}.move-san.move-cur{background:hsl(var(--accent));box-shadow:inset 0 0 0 1.5px hsl(var(--ring)/.55)}.choice-panel{position:relative;aspect-ratio:1;max-height:100%;overflow:hidden;border:1px solid hsl(var(--border));border-radius:var(--radius);background-color:var(--sq-light);box-shadow:0 10px 32px -6px hsl(var(--brand-navy)/.25);animation:scale-in .35s cubic-bezier(.21,1.02,.73,1) both}.choice-panel:before{content:"";position:absolute;inset:0;background-color:var(--sq-dark);-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3QgeD0iMSIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iMSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIxIiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMyIgeT0iMiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjUiIHk9IjIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI3IiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI0IiB5PSIzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNiIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNSIgeT0iNCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjciIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjQiIHk9IjUiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI2IiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMSIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSI2IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iNyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48L3N2Zz4=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4IDgiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyI+PHJlY3QgeD0iMSIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSIxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iMSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjEiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIxIiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMyIgeT0iMiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjUiIHk9IjIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI3IiB5PSIyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMCIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjIiIHk9IjMiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI0IiB5PSIzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNiIgeT0iMyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjEiIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIzIiB5PSI0IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNSIgeT0iNCIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjciIHk9IjQiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIwIiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMiIgeT0iNSIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjQiIHk9IjUiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI2IiB5PSI1IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iMSIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjMiIHk9IjYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSI1IiB5PSI2IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNyIgeT0iNiIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjAiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48cmVjdCB4PSIyIiB5PSI3IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIi8+PHJlY3QgeD0iNCIgeT0iNyIgd2lkdGg9IjEiIGhlaWdodD0iMSIvPjxyZWN0IHg9IjYiIHk9IjciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiLz48L3N2Zz4=");-webkit-mask-size:cover;mask-size:cover;pointer-events:none}.dark .choice-panel{opacity:.98}.choice-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;overflow-y:auto;background:hsl(var(--background)/.82);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.choice-panel h2{font-size:19px;letter-spacing:-.02em}.choice-sub{color:hsl(var(--muted-foreground));font-size:13.5px}.choice-list{display:flex;flex-direction:column;gap:10px;width:min(320px,100%)}.choice-btn{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;height:62px;grid-gap:12px;gap:12px;padding:0 14px;background:hsl(var(--background));border:1.5px solid hsl(var(--border));color:hsl(var(--foreground));font-size:15px;text-align:left;border-radius:var(--radius);transition:border-color .18s ease,background-color .18s ease,transform .12s ease,box-shadow .18s ease}.choice-btn:hover{transform:translateY(-1px);border-color:hsl(var(--muted-foreground)/.5);background:hsl(var(--accent))}.choice-bubble{width:38px;height:38px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;flex:none;transition:transform .18s ease}.choice-btn:hover .choice-bubble{transform:scale(1.06)}.bubble-bullet{background:hsl(var(--brand-orange)/.16);color:#ce6b09}.bubble-blitz{background:rgba(232,73,48,.14);color:#d33a22}.bubble-rapid{background:hsl(var(--brand-blue)/.18);color:#2970a3}.dark .bubble-bullet{color:#f79e45}.dark .bubble-blitz{color:#f26e5a}.dark .bubble-rapid{color:#78bce2}.choice-text{display:flex;flex-direction:column;gap:1px;min-width:0}.choice-btn .choice-label{font-weight:700;line-height:1.2}.choice-btn .choice-detail{color:hsl(var(--muted-foreground));font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.choice-status{display:inline-flex;align-items:center;gap:8px}.choice-check{color:hsl(var(--primary));animation:fade-in .15s ease both}.choice-btn.choice-active{border-color:hsl(var(--primary));background:hsl(var(--accent));box-shadow:0 0 0 1px hsl(var(--primary))}.choice-btn.choice-opp:not(.choice-active){border-color:hsl(var(--warning)/.7)}.choice-opp-tag{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--warning));background:hsl(var(--warning)/.12);padding:3px 8px;border-radius:999px;animation:fade-in .2s ease both}.choice-footer{display:flex;gap:8px;margin-top:4px}.choice-wait{font-size:13px;display:inline-flex;align-items:center;gap:8px;animation:fade-in .2s ease both}.choice-wait,.skip-btn{color:hsl(var(--muted-foreground))}.skip-btn{background:transparent;border:1px solid hsl(var(--border));margin-top:4px}.skip-btn:hover{color:hsl(var(--destructive));border-color:hsl(var(--destructive)/.6);background:hsl(var(--destructive)/.06)}.only-mobile{display:none}.scroll-x{overflow-x:auto;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}.nav-menu{position:relative}.nav-menu-up .menu-pop{top:auto;bottom:calc(100% + 8px)}.lobby-bnav .nav-menu-up .menu-pop,.play-bnav .nav-menu-up .menu-pop{right:auto;left:10px}.menu-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:70;min-width:200px;padding:6px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 16px 40px -12px rgba(0,0,0,.35);animation:fade-in-up .18s ease both}.menu-pop,.menu-user{display:flex;flex-direction:column}.menu-user{gap:2px;padding:8px 12px 10px}.menu-sep{height:1px;background:hsl(var(--border));margin:4px 6px}.menu-item{display:inline-flex;align-items:center;height:42px;justify-content:flex-start;gap:10px;padding:0 12px;background:transparent;font-size:14px;font-weight:500;border-radius:8px;text-decoration:none}.menu-item,.menu-item:hover{color:hsl(var(--foreground))}.menu-item:hover{background:hsl(var(--accent))}.menu-danger,.menu-danger:hover{color:hsl(var(--destructive))}.menu-danger:hover{background:hsl(var(--destructive)/.08)}.area-movestrip{display:none;min-width:0}.move-strip{display:flex;align-items:center;gap:4px;height:34px;padding:0 12px;font-size:13px;white-space:nowrap;background:hsl(var(--card));border-block:1px solid hsl(var(--border))}.ms-item{display:inline-flex;align-items:center;gap:3px;flex:none}.ms-num{color:hsl(var(--muted-foreground));font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-left:5px}.move-strip>.ms-num,.ms-item:first-child .ms-num{margin-left:0}.ms-san{height:24px;padding:0 6px;background:transparent;color:hsl(var(--foreground));font-size:13px;font-weight:600;border-radius:6px}.ms-san.ms-cur,.ms-san:hover{background:hsl(var(--accent))}.ms-san.ms-cur{box-shadow:inset 0 0 0 1.5px hsl(var(--ring)/.55)}:root{--bnav-h:56px}.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:35;grid-template-columns:repeat(4,1fr);height:calc(var(--bnav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:hsl(var(--card));border-top:1px solid hsl(var(--border))}.bn-btn{position:relative;height:100%;border-radius:0;background:transparent;color:hsl(var(--foreground))}.bn-btn:active,.bn-btn:hover{background:hsl(var(--accent))}.bn-btn:active{transform:none}.bn-btn:disabled{opacity:.3}.bn-danger,.bn-danger:hover{color:hsl(var(--destructive))}.bn-dot{position:absolute;top:9px;right:calc(50% - 17px);width:9px;height:9px;border-radius:50%;background:hsl(var(--warning));animation:pulse-soft 1.2s ease infinite}:root{--app-topbar-h:48px}.app-topbar{position:fixed;top:0;left:0;right:0;z-index:40;height:calc(var(--app-topbar-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;display:flex;align-items:center;gap:10px;background:hsl(var(--card));border-bottom:1px solid hsl(var(--border))}.app-topbar .brand{color:hsl(var(--foreground));text-decoration:none;font-size:16px}.app-topbar-right{margin-left:auto;display:flex;align-items:center;gap:6px}.app-tabbar{display:grid}.app-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:100%;color:hsl(var(--muted-foreground));text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color .15s ease}.app-tab-label{font-size:10px;font-weight:600;letter-spacing:.01em}.app-tab.is-active{color:hsl(var(--primary))}.app-tab:active{transform:none}html.pwa-shell .game-shell,html.pwa-shell .sub-shell{box-sizing:border-box;padding-top:calc(var(--app-topbar-h) + env(safe-area-inset-top));padding-bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom))}html.pwa-shell .bottom-nav.pulse-bar,html.pwa-shell .topbar{display:none!important}html.pwa-shell .has-bnav .game-grid{padding-bottom:0}html.pwa-shell .sub-body{padding-bottom:20px}html.pwa-standalone .topbar{height:calc(48px + env(safe-area-inset-top));flex-basis:calc(48px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}html.pwa-standalone .page-center{padding-top:calc(16px + env(safe-area-inset-top))}html.pwa-tabbar .sub-body{padding-bottom:calc(24px + var(--bnav-h) + env(safe-area-inset-bottom))}.home-body{flex:1 1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:24px;text-align:center}.home-mark{width:96px;height:96px;border-radius:22px;box-shadow:0 14px 34px -12px rgba(0,0,0,.4);margin-bottom:22px}.home-title{font-size:27px;letter-spacing:-.02em}.home-sub{margin:8px 0 30px;font-size:15px;line-height:1.6;color:hsl(var(--muted-foreground));max-width:30ch}.home-cta{display:inline-flex;align-items:center;gap:9px;text-decoration:none}.home-body .lobby-link{margin-top:18px}.app-meta-row{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;font-size:14px}.app-meta-label{color:hsl(var(--muted-foreground))}.app-meta-value{font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.logout-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;height:42px;font-size:14px;font-weight:600;border-radius:10px;border:1px solid hsl(var(--destructive)/.45);background:hsl(var(--destructive)/.07);color:hsl(var(--destructive))}.logout-btn:hover{background:hsl(var(--destructive)/.13)}@keyframes sheet-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.action-sheet,.draw-wrap,.resign-wrap,.sheet-backdrop{display:none}@media (max-width:900px){.hide-mobile{display:none!important}.only-mobile{display:inline-flex}.has-bnav .topbar{display:none}.game-grid{--grid-pad:10px;padding:var(--grid-pad);gap:8px;grid-template-columns:1fr auto 1fr;grid-template-rows:minmax(96px,1fr) auto auto auto auto auto;grid-template-areas:"camself   camctl    camopp" "movestrip movestrip movestrip" "oppbar    oppbar    oppbar" "board     board     board" "selfbar   selfbar   selfbar" "side      side      side";align-content:stretch}.reconnect-word{display:none}.has-bnav .game-grid{padding-bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom))}html.pwa-standalone .has-bnav .game-grid{padding-top:calc(var(--grid-pad) + env(safe-area-inset-top))}.video-tile{aspect-ratio:auto;height:auto;min-height:96px}.cam-panel{flex-direction:row;align-items:stretch;min-height:0}.cam-panel .video-tile{flex:1 1}.area-camself{justify-content:normal}.cam-center{grid-area:camctl;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.cam-center .ctl{width:40px;height:36px}.oppbar-conn{display:inline-flex;align-items:center;gap:5px;margin-left:auto}.area-oppbar .oppbar-conn+.clock{margin-left:8px}.area-movestrip{display:block;grid-area:movestrip;margin-inline:calc(var(--grid-pad) * -1)}.board-wrap{width:100vw;margin-inline:calc(50% - 50vw);display:flex;justify-content:center;align-items:flex-start}.board-wrap .board-measure,.choice-panel{width:min(100vw,calc(100dvh - 380px));max-width:100vw}.choice-inner{padding:16px;gap:10px}.choice-panel h2{font-size:17px}.player-bar{min-height:44px;padding:5px 10px}.clock{font-size:18px;padding:3px 10px}.actions,.lobby-side-card,.move-list{display:none}.side-stack{overflow:visible}.pulse-card{display:none}.topbar{padding:0 10px}.topbar-user{display:none}.bottom-nav{display:grid}.sheet-backdrop{display:block;position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .18s ease both}.action-sheet{display:flex;flex-direction:column;gap:2px;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:65;padding:8px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.4);animation:sheet-up .22s cubic-bezier(.21,1.02,.73,1) both}.sheet-item{display:inline-flex;align-items:center;height:46px;justify-content:flex-start;gap:12px;padding:0 14px;background:transparent;color:hsl(var(--foreground));font-size:15px;font-weight:500;border-radius:10px;text-decoration:none}.sheet-item:active,.sheet-item:hover{background:hsl(var(--accent));color:hsl(var(--foreground));transform:none}.sheet-item:disabled{opacity:.55}.sheet-danger,.sheet-danger:hover{color:hsl(var(--destructive))}.sheet-sep{height:1px;background:hsl(var(--border));margin:5px 8px}.draw-wrap{display:contents}.draw-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:65;width:min(320px,calc(100vw - 48px));padding:22px 18px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:10px;text-align:center;align-items:stretch;animation:modal-in .28s cubic-bezier(.21,1.02,.73,1) both}.draw-modal-icon{align-self:center;color:hsl(var(--primary));margin-bottom:2px}.draw-later{background:none;border:none;color:hsl(var(--muted-foreground));font-size:13px;padding:4px;margin-top:-2px}.draw-later:active,.draw-later:hover{background:none;color:hsl(var(--foreground));transform:none}.resign-wrap{display:contents}.resign-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:65;width:min(300px,calc(100vw - 48px));padding:22px 18px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:10px;text-align:center;animation:modal-in .28s cubic-bezier(.21,1.02,.73,1) both}.go-backdrop{display:block;position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .2s ease both}.game-over-banner{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:50;width:min(340px,calc(100vw - 40px));padding:24px 20px;box-shadow:0 24px 64px rgba(0,0,0,.4);animation:modal-in .32s cubic-bezier(.21,1.02,.73,1) both}.game-over-banner.no-anim{animation:none}.go-close{display:inline-flex;position:absolute;top:8px;right:8px;width:30px;height:30px;padding:0;background:transparent;color:hsl(var(--muted-foreground));border-radius:8px}.go-close:hover{background:hsl(var(--accent))}.go-close:hover,.go-reopen{color:hsl(var(--foreground))}.go-reopen{display:inline-flex;position:fixed;left:50%;bottom:calc(66px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:45;height:38px;gap:8px;padding:0 8px 0 14px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:999px;box-shadow:0 8px 24px -8px rgba(0,0,0,.45);font-weight:600;animation:rise-in-centered .25s ease both}.go-reopen-cta{background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px}}@media (min-width:620px) and (max-width:900px){.game-grid{--grid-pad:14px;gap:10px;grid-template-rows:minmax(180px,1fr) auto auto auto auto auto}.video-tile{min-height:180px}.board-wrap{width:min(100%,max(calc(100dvh - 500px),280px));margin-inline:auto;display:block}.board-wrap .board-measure{width:100%;max-width:none}.choice-panel{width:auto;max-width:none}.clock{font-size:20px}}@media (max-width:619px){.game-grid{--grid-pad:6px;gap:5px;grid-template-rows:minmax(56px,1fr) auto auto auto auto auto}.has-bnav .game-grid{padding-bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom))}.video-tile{min-height:56px}.ctl{width:34px;height:30px}.cam-controls{gap:6px}.move-strip{height:28px}.player-bar{min-height:38px;padding:4px 10px}.clock{font-size:16px;padding:2px 8px}:root{--bnav-h:52px}.center-logo{width:28px;height:28px}.cam-center .ctl{width:34px;height:32px}.cam-center{gap:6px}.board-wrap .board-measure,.choice-panel{width:min(calc(100vw - 2px),max(calc(100dvh - 250px),260px))}.choice-inner{padding:12px;gap:8px}}@media (max-width:380px){.player-rating,.rating-delta{display:none}.media-pill{width:24px;height:24px}}.sub-shell{height:100dvh;overflow:hidden;display:flex;flex-direction:column}.sub-body{flex:1 1;min-height:0;padding:20px 16px calc(28px + env(safe-area-inset-bottom))}.sub-body>.profile,.sub-body>.settings{width:min(620px,100%);margin:0 auto;display:flex;flex-direction:column;gap:18px;animation:fade-in-up .3s cubic-bezier(.21,1.02,.73,1) both}.section-title{font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.empty-note,.section-title{color:hsl(var(--muted-foreground))}.empty-note{font-size:14px;padding:8px 2px}.avatar{display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff;background:linear-gradient(135deg,hsl(var(--brand-navy)),hsl(var(--brand-blue)));border-radius:50%;-webkit-user-select:none;-moz-user-select:none;user-select:none}.avatar-lg{width:72px;height:72px;font-size:30px;box-shadow:0 8px 22px -10px hsl(var(--brand-navy)/.8)}.profile-head{display:flex;align-items:center;gap:18px}.profile-id h1{font-size:24px;letter-spacing:-.02em}.profile-rating{display:flex;align-items:baseline;gap:6px;margin-top:2px}.rating-num{font-size:20px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:hsl(var(--brand-orange))}.rating-cap{font-size:12px;text-transform:uppercase;letter-spacing:.04em}.provisional-note,.rating-cap{color:hsl(var(--muted-foreground))}.provisional-note{font-size:12.5px;margin-top:4px;max-width:340px}.google-linked{display:inline-flex;align-items:center;gap:7px;margin-top:8px;padding:4px 11px 4px 9px;font-size:12.5px;font-weight:600;color:hsl(var(--foreground));background:hsl(var(--secondary));border:1px solid hsl(var(--border));border-radius:999px}.stat-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px}.stat-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 8px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius)}.stat-value{font-size:22px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-label{font-size:11px;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.03em}.stat-win .stat-value{color:hsl(var(--success))}.stat-loss .stat-value{color:hsl(var(--destructive))}.history{gap:10px}.history,.history-list{display:flex;flex-direction:column}.history-list{gap:6px;list-style:none}.history-row{display:grid;grid-template-columns:auto 26px 1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:8px 12px 8px 8px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);font-size:14px;color:inherit;text-decoration:none;transition:border-color .15s ease,background-color .15s ease}.history-row:hover{border-color:hsl(var(--ring)/.5);background:hsl(var(--accent)/.4)}.history-main{display:flex;flex-direction:column;gap:2px;min-width:0}.history-meta{color:hsl(var(--muted-foreground));font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-sentinel{display:flex;justify-content:center;padding:14px 0;min-height:40px}.mini-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);border-radius:6px;overflow:hidden;flex:none;border:1px solid hsl(var(--border))}.mini-board-empty{background:hsl(var(--muted))}.mb-sq{background:var(--sq-light);display:flex;align-items:center;justify-content:center}.mb-dark{background:var(--sq-dark)}.mb-piece{line-height:1;font-family:Segoe UI Symbol,system-ui,sans-serif}.mb-white{color:#fff;text-shadow:0 0 1px #333,0 1px 1px #333}.mb-black{color:#1f1f1f}.outcome-pill{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;font-size:12px;font-weight:700}.outcome-win{background:hsl(var(--success)/.16);color:hsl(var(--success))}.outcome-loss{background:hsl(var(--destructive)/.14);color:hsl(var(--destructive))}.outcome-draw{background:hsl(var(--muted-foreground)/.16);color:hsl(var(--muted-foreground))}.history-opp{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-opp-rating,.history-vs{color:hsl(var(--muted-foreground));font-size:12px}.history-opp-rating{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.history-reason{color:hsl(var(--muted-foreground));font-size:12.5px;white-space:nowrap}.history-delta{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:46px;justify-content:flex-end}.delta-up{color:hsl(var(--success))}.delta-down{color:hsl(var(--destructive))}.delta-flat{color:hsl(var(--muted-foreground))}.sub-body>.replay{width:min(860px,100%);margin:0 auto;display:flex;flex-direction:column;gap:14px;animation:fade-in-up .3s cubic-bezier(.21,1.02,.73,1) both}.replay-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.replay-players{font-size:15px}.replay-result{color:hsl(var(--muted-foreground));font-size:13px}.replay-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-gap:14px;gap:14px;align-items:start}.replay-board{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}.replay-board .board-measure{width:100%;max-width:min(100%,calc(100dvh - 250px));margin-inline:auto}.replay-strip{display:none}.replay-controls{display:flex;align-items:center;justify-content:center;gap:8px}.replay-controls button{width:44px;padding:0}.replay-ply{min-width:64px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:hsl(var(--muted-foreground));font-size:13px}.replay-side .move-list{max-height:60dvh}@media (max-width:900px){.replay-grid{grid-template-columns:1fr}.replay-side{display:none}.replay-strip{display:flex;margin-inline:-16px}.replay-head{flex-direction:column;align-items:flex-start;gap:2px}}.settings-card{display:flex;flex-direction:column;gap:12px;padding:20px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 2px)}.settings-hint{font-size:13px;color:hsl(var(--muted-foreground));line-height:1.5;margin-top:-4px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px;padding:4px;background:hsl(var(--muted));border-radius:var(--radius)}.segmented .seg{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;background:transparent;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);font-weight:600}.segmented .seg:hover{background:hsl(var(--card)/.6);color:hsl(var(--foreground))}.segmented .seg-on{color:hsl(var(--foreground));box-shadow:0 1px 3px rgba(0,0,0,.12)}.segmented .seg-on,.segmented .seg-on:hover{background:hsl(var(--card))}.settings-preview{width:100%;max-width:320px;aspect-ratio:16/10;margin:2px auto}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:12.5px;font-weight:600;color:hsl(var(--muted-foreground))}.select{height:40px;padding:0 12px;background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);font-size:14px;font-family:inherit;cursor:pointer}.select:disabled{opacity:.55;cursor:not-allowed}.range-slider{position:relative;height:46px;padding-top:6px}.rs-track{left:0;right:0;top:16px;height:5px;background:hsl(var(--muted))}.rs-fill,.rs-track{position:absolute;border-radius:999px}.rs-fill{top:0;bottom:0;background:hsl(var(--primary))}.rs-input{position:absolute;left:0;right:0;top:8px;width:100%;height:20px;margin:0;padding:0;background:transparent;-moz-appearance:none;appearance:none;-webkit-appearance:none;pointer-events:none}.rs-input::-webkit-slider-runnable-track{background:transparent;border:none}.rs-input::-moz-range-track{background:transparent;border:none}.rs-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:20px;height:20px;border-radius:50%;background:hsl(var(--card));border:2px solid hsl(var(--primary));box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:-webkit-grab;cursor:grab}.rs-input::-webkit-slider-thumb:active{cursor:-webkit-grabbing;cursor:grabbing}.rs-input::-moz-range-thumb{pointer-events:auto;width:20px;height:20px;border-radius:50%;background:hsl(var(--card));border:2px solid hsl(var(--primary));box-shadow:0 1px 4px rgba(0,0,0,.25);cursor:grab}.rs-input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px hsl(var(--ring)/.4)}.rs-values{position:absolute;left:0;right:0;top:30px;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:hsl(var(--muted-foreground))}.bracket-foot,.rs-values{display:flex;justify-content:space-between}.bracket-foot{align-items:center;gap:10px}.bracket-summary{font-size:13px;font-weight:600;color:hsl(var(--foreground))}.perm-banner{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius);font-size:13px}.perm-ok{background:hsl(var(--success)/.12);color:hsl(var(--success))}.perm-bad{background:hsl(var(--destructive)/.12);color:hsl(var(--destructive));line-height:1.45}.perm-ask{background:hsl(var(--warning)/.14);color:hsl(var(--warning));justify-content:space-between}.mini-btn{height:30px;padding:0 14px;font-size:13px;background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.safety-list{display:flex;flex-direction:column;gap:2px}.safety-row{display:flex;align-items:center;gap:10px;padding:6px 4px;border-radius:9px}.safety-row:hover{background:hsl(var(--accent)/.6)}.safety-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}.safety-when{font-size:12px;color:hsl(var(--muted-foreground));white-space:nowrap}.safety-row .mini-btn{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}.mini-btn.mini-danger{background:hsl(var(--destructive)/.12);color:hsl(var(--destructive))}.mini-btn.mini-danger:hover{background:hsl(var(--destructive)/.2)}.safety-subtitle{display:inline-flex;align-items:center;gap:7px;margin:8px 0 0;font-weight:700}.safety-empty,.safety-subtitle{font-size:13px;color:hsl(var(--muted-foreground))}.safety-empty{margin:0}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.toggle-label{display:inline-flex;align-items:center;gap:9px;font-size:14px;color:hsl(var(--foreground))}.switch{width:44px;height:26px;padding:0;flex:0 0 44px;background:hsl(var(--muted-foreground)/.4);border-radius:999px;position:relative;transition:background-color .18s ease}.switch:hover{background:hsl(var(--muted-foreground)/.55)}.switch-on,.switch-on:hover{background:hsl(var(--success))}.switch-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .18s cubic-bezier(.21,1.02,.73,1);box-shadow:0 1px 3px rgba(0,0,0,.3)}.switch-on .switch-knob{transform:translateX(18px)}@media (max-width:560px){.stat-grid{grid-template-columns:repeat(3,1fr)}.history-meta{max-width:46vw}}.landing,.legal{height:100dvh;display:flex;flex-direction:column}.landing-head{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:1020px;margin:0 auto;padding:18px 22px;flex:0 0 auto}.landing-head .brand{font-size:17px;color:hsl(var(--foreground));text-decoration:none}.landing-head .brand-mark{width:30px;height:30px}.landing-head-actions{display:flex;align-items:center;gap:10px}.landing-signin{display:inline-flex;align-items:center;height:36px;padding:0 16px;border:1px solid hsl(var(--border));border-radius:10px;background:hsl(var(--card));color:hsl(var(--foreground));font-size:13.5px;font-weight:600;text-decoration:none;transition:background-color .15s ease,border-color .15s ease}.landing-signin:hover{background:hsl(var(--accent));border-color:hsl(var(--ring)/.5)}.landing-hero{flex:1 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:56px 22px 72px;overflow:hidden}.landing,.landing-hero{position:relative}.landing:before{content:"";position:fixed;inset:0;z-index:-1;background:repeating-conic-gradient(hsl(var(--foreground)/.035) 0 25%,transparent 0 50%);background-size:76px 76px;-webkit-mask-image:radial-gradient(ellipse 85% 70% at 50% 32%,transparent 12%,#000 78%);mask-image:radial-gradient(ellipse 85% 70% at 50% 32%,transparent 12%,#000 78%);pointer-events:none}:root:not(.dark) .landing:before{background:repeating-conic-gradient(hsl(var(--foreground)/.05) 0 25%,transparent 0 50%);background-size:76px 76px}.landing-hero>*{position:relative}.landing-hero h1{font-size:clamp(34px,7vw,62px);font-weight:850;letter-spacing:-.03em;line-height:1.06;max-width:13ch}.hero-accent{display:block;color:hsl(var(--brand-orange))}.hero-sub{margin-top:18px;max-width:500px;font-size:16.5px;line-height:1.6;color:hsl(var(--muted-foreground))}.hero-actions{margin-top:30px;display:flex;flex-direction:column;align-items:center;gap:12px}.hero-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 32px;border-radius:var(--radius);background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:16px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;text-decoration:none;border:0;box-shadow:0 6px 18px -8px hsl(var(--primary)/.7);transition:filter .15s ease,box-shadow .15s ease,transform .1s ease}.hero-cta:hover{filter:brightness(1.12)}.hero-cta:active{transform:translateY(1px)}.hero-cta:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.hero-note{font-size:12.5px}.hero-features,.hero-note{color:hsl(var(--muted-foreground))}.hero-features{list-style:none;margin-top:52px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 30px;font-size:14px;font-weight:550}.hero-features li{display:inline-flex;align-items:center;gap:8px}.hero-features svg{color:hsl(var(--brand-blue));flex:0 0 auto}.landing-foot{flex:0 0 auto;border-top:1px solid hsl(var(--border));padding:24px 22px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.foot-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px}.foot-links a{color:hsl(var(--foreground)/.85);font-size:13.5px;font-weight:550;text-decoration:none}.foot-links a:hover{color:hsl(var(--foreground));text-decoration:underline}.foot-social{display:flex;gap:14px}.foot-social a{display:inline-flex;color:hsl(var(--muted-foreground));transition:color .15s ease}.foot-social a:hover{color:hsl(var(--foreground))}.foot-age{font-size:12px;color:hsl(var(--muted-foreground))}.foot-copy{font-size:12px;color:hsl(var(--muted-foreground)/.8)}.landing-nav{display:flex;align-items:center;gap:22px;margin:0 auto}.landing-nav a{font-size:13.5px;font-weight:600;color:hsl(var(--muted-foreground));text-decoration:none}.landing-nav a:hover{color:hsl(var(--foreground))}.flag-marquee{flex:none;padding:10px 0 2px;display:flex;flex-direction:column;gap:8px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.flag-marquee,.flag-row{overflow:hidden}.flag-track{display:inline-flex;gap:8px;width:max-content;animation:flag-scroll 55s linear infinite}.flag-row-rev .flag-track{animation-direction:reverse;animation-duration:70s}@keyframes flag-scroll{0%{transform:translateX(0)}to{transform:translateX(calc(-100% / 6))}}.flag-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid hsl(var(--border));border-radius:999px;background:hsl(var(--card)/.7);font-size:12.5px;font-weight:600;color:hsl(var(--muted-foreground));white-space:nowrap}@media (prefers-reduced-motion:reduce){.flag-track{animation:none}.flag-row{overflow-x:auto}}.landing-stage{display:grid;grid-template-columns:300px minmax(0,1fr) 300px;grid-gap:18px;gap:18px;align-items:center;padding:8px 22px 6px;max-width:1360px;margin:0 auto;width:100%}.stage-col{display:flex;flex-direction:column;gap:14px;min-width:0}.stage-hero{flex:none;padding:40px 10px 18px;min-width:0}.landing-stage-bare{display:flex}.landing-stage-bare .stage-hero{flex:1 0 auto;padding:56px 22px 72px}.lb-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;padding:14px 16px}.lb-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.lb-title{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.lb-title svg{color:hsl(var(--brand-orange))}.lb-hint{font-size:11px;color:hsl(var(--muted-foreground)/.7)}.lb-board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.lb-board li{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13.5px;border-bottom:1px solid hsl(var(--border)/.45)}.lb-board li:last-child{border-bottom:none}.lb-rank{width:18px;flex:none;font-size:11.5px;font-weight:700;color:hsl(var(--muted-foreground)/.8);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lb-board li:first-child .lb-rank{color:hsl(var(--brand-orange))}.lb-board li:nth-child(2) .lb-rank,.lb-board li:nth-child(3) .lb-rank{color:hsl(var(--brand-blue))}.lb-flag{flex:none;font-size:14px}.lb-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.lb-num{margin-left:auto;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:hsl(var(--brand-navy))}.dark .lb-num{color:hsl(var(--brand-blue))}.lb-empty{font-size:13px;color:hsl(var(--muted-foreground));padding:8px 0}.lb-tabs{display:inline-flex;gap:2px;padding:2px;border-radius:8px;background:hsl(var(--secondary))}.lb-tabs button{height:24px;padding:0 9px;font-size:11px;font-weight:700;border-radius:6px;background:none;color:hsl(var(--muted-foreground))}.lb-tabs .lb-tab-on{background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 1px 2px rgba(0,0,0,.12)}.clock-bars{display:flex;align-items:flex-end;gap:3px;height:74px}.clock-bar{flex:1 1;border-radius:3px 3px 0 0;background:hsl(var(--brand-blue)/.45);min-height:4px}.clock-bar-peak{background:hsl(var(--brand-orange))}.clock-axis{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:hsl(var(--muted-foreground)/.7)}.lb-foot{margin-top:8px;font-size:12.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.landing-more.tour-section{padding-top:0;padding-bottom:56px}.tour-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;grid-gap:16px;gap:16px;max-width:880px;margin:0 auto;text-align:left}.tour-featured{background:hsl(var(--card));border:1px solid hsl(var(--brand-orange)/.45);border-radius:16px;padding:18px 20px;box-shadow:0 10px 30px -18px hsl(var(--brand-orange)/.55)}.tour-featured-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.tour-featured-head h3{font-size:16.5px;font-weight:800;letter-spacing:-.01em}.tour-trophy{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:hsl(var(--brand-orange)/.15);color:hsl(var(--brand-orange))}.tour-when{font-size:12px;color:hsl(var(--muted-foreground))}.tour-standings{list-style:none;margin:0;padding:0}.tour-standings li{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:14px;border-bottom:1px solid hsl(var(--border)/.45)}.tour-standings li:last-child{border-bottom:none}.tour-standings li:first-child{font-size:15.5px}.tour-standings li:first-child .lb-name{font-weight:800}.tour-record{margin-left:auto;font-size:12px;color:hsl(var(--muted-foreground));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tour-standings .lb-num{margin-left:0;min-width:3ch;text-align:right}.tour-side{display:flex;flex-direction:column;gap:12px;min-width:0}.tour-upcoming{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;padding:14px 16px}.tour-upcoming ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.tour-upcoming li{display:flex;align-items:center;gap:10px}.tour-up-main{min-width:0;display:flex;flex-direction:column;gap:1px}.tour-up-main b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tour-up-meta{font-size:12px;color:hsl(var(--muted-foreground))}.tour-join{margin-left:auto;flex:none;padding:6px 14px;border-radius:8px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:12.5px;font-weight:700;text-decoration:none}.tour-join:hover{filter:brightness(1.1)}.tour-old{background:hsl(var(--card)/.55);border:1px solid hsl(var(--border)/.7);border-radius:12px;padding:10px 14px;opacity:.7}.tour-old-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.tour-old-head h4{font-size:12.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tour-old-list{list-style:none;margin:6px 0 0;padding:0}.tour-old-list li{display:flex;align-items:center;gap:7px;font-size:12px;padding:2px 0}.tour-old-list .lb-num{font-size:12px}@media (max-width:1099px){.landing-stage{grid-template-columns:1fr 1fr;padding-inline:16px}.stage-hero{grid-column:1/-1;grid-row:1;order:-1;padding:36px 8px 40px}.stage-left,.stage-right{grid-row:2}}@media (max-width:639px){.landing-nav{display:none}.landing-stage{grid-template-columns:1fr;gap:12px}.stage-left,.stage-right{grid-row:auto}.flag-chip{font-size:11.5px;padding:4px 10px}.tour-grid{grid-template-columns:1fr}}.landing-more{flex:0 0 auto;width:100%;max-width:960px;margin:0 auto;padding:56px 22px 72px}.lm-h2{font-size:clamp(22px,4vw,30px);font-weight:800;letter-spacing:-.02em;text-align:center;margin-bottom:30px}.how-steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.how-steps li{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;padding:22px 20px}.how-ico{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:hsl(var(--brand-blue)/.12);color:hsl(var(--brand-blue));margin-bottom:14px}.how-steps h3{font-size:16px;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}.how-steps p{font-size:14px;line-height:1.6;color:hsl(var(--muted-foreground))}.faq-list{max-width:720px;margin:0 auto}.faq-item{padding:18px 2px;border-top:1px solid hsl(var(--border))}.faq-item:first-child{border-top:0}.faq-item h3{font-size:15.5px;font-weight:650;letter-spacing:-.01em;margin-bottom:6px}.faq-item p{font-size:14px;line-height:1.65;color:hsl(var(--muted-foreground))}@media (max-width:760px){.how-steps{grid-template-columns:1fr}}.legal-body{width:100%;max-width:720px;margin:0 auto;padding:10px 22px 64px}.install-body{max-width:540px;padding-top:28px}.install-lead{display:flex;flex-direction:column;align-items:flex-start}.install-center{align-items:center;text-align:center}.install-icon{width:84px;height:84px;border-radius:20px;box-shadow:0 12px 30px -10px rgba(0,0,0,.38);margin-bottom:20px}.install-body h1{font-size:25px;letter-spacing:-.02em}.install-lead>p{margin-top:10px;font-size:15px;line-height:1.65;color:hsl(var(--foreground)/.9)}.install-steps{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-gap:15px;gap:15px;width:100%}.install-steps li{display:flex;align-items:flex-start;gap:13px}.step-num{flex:0 0 auto;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:hsl(var(--brand-orange));color:#14273d;font-size:14px;font-weight:700}.step-text{font-size:15px;line-height:1.55;color:hsl(var(--foreground)/.92);padding-top:2px}.ios-key{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;margin:0 1px;border-radius:7px;background:hsl(var(--secondary));border:1px solid hsl(var(--border));color:hsl(var(--foreground));font-weight:600;font-size:13.5px;white-space:nowrap}.ios-key svg{color:hsl(var(--ring))}.install-cta{display:inline-flex;align-items:center;gap:8px;margin-top:24px;text-decoration:none}.legal-body,.legal-body *{-webkit-user-select:text;-moz-user-select:text;user-select:text}.legal-body h1{font-size:30px;letter-spacing:-.02em}.legal-updated{margin:6px 0 26px;font-size:13px;color:hsl(var(--muted-foreground))}.legal-body h2{font-size:17.5px;margin:28px 0 8px}.legal-body p{font-size:14.5px;line-height:1.7;color:hsl(var(--foreground)/.92)}.legal-body p+p{margin-top:8px}.legal-body ul{margin:8px 0;padding-left:22px;display:grid;grid-gap:7px;gap:7px}.legal-body li{font-size:14.5px;line-height:1.6;color:hsl(var(--foreground)/.92)}.legal-body a{color:hsl(var(--ring));text-decoration:underline;text-underline-offset:2px}@media (max-width:640px){.landing-hero{padding:40px 20px 56px}.hero-features{flex-direction:column;align-items:center;gap:13px;margin-top:42px}.landing-head{padding:14px 16px}}.auth-dob input.invalid,input.invalid{border-color:hsl(var(--destructive)/.65)}input.invalid:focus-visible{border-color:hsl(var(--destructive));box-shadow:0 0 0 1px hsl(var(--destructive))}.field-err{font-size:12.5px;line-height:1.35;color:hsl(var(--destructive));text-align:left;margin-top:-6px}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:40px;color-scheme:light}.dark input[type=date]{color-scheme:dark}.auth-consent{font-size:11.5px;line-height:1.5;color:hsl(var(--muted-foreground))}.auth-consent a{color:hsl(var(--ring));text-decoration:underline;text-underline-offset:2px}.auth-legal{display:flex;align-items:center;gap:8px;font-size:12.5px;color:hsl(var(--muted-foreground))}.auth-legal a{color:inherit;text-decoration:none}.auth-legal a:hover{color:hsl(var(--foreground));text-decoration:underline}.sk{position:relative;display:inline-block;overflow:hidden;background:hsl(var(--muted));border-radius:8px}.sk:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,hsl(var(--card)/.9) 50%,transparent 75%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-100% 0}}.sk-line{height:13px;width:60%}.sk-avatar{width:72px;height:72px}.sk-avatar,.sk-avatar-s{border-radius:50%;flex:0 0 auto}.sk-avatar-s{width:30px;height:30px}.sk-stat{height:74px;border-radius:var(--radius)}.sk-board{width:64px;height:64px;border-radius:6px;flex:0 0 auto}.sk-pill{width:26px;height:22px;border-radius:7px;flex:0 0 auto}.sk-square{display:block;width:100%;aspect-ratio:1;border-radius:8px}.sk-row{pointer-events:none}.sk-row .history-main{display:flex;flex-direction:column;gap:8px}@keyframes soft-refresh-a{0%{opacity:.55}to{opacity:1}}@keyframes soft-refresh-b{0%{opacity:.55}to{opacity:1}}.name-line{display:inline-flex;align-items:center;gap:8px}.name-edit-btn{width:26px;height:26px;color:hsl(var(--muted-foreground));opacity:.75}.name-edit-btn:hover{opacity:1;background:hsl(var(--accent))}.name-edit{display:flex;align-items:center;gap:6px}.name-edit input{width:min(230px,56vw);height:36px;font-size:16px;font-weight:700}.name-edit-ok{color:hsl(var(--success))}.name-edit-hint{margin:4px 0 2px;font-size:12px;color:hsl(var(--muted-foreground))}.fairplay-modal{text-align:center;align-items:center;gap:12px}.fairplay-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:hsl(var(--accent));color:hsl(var(--primary))}.fairplay-title{padding-right:0;justify-content:center}.fairplay-body{font-size:14px;line-height:1.6;color:hsl(var(--foreground)/.9);min-height:4.8em}.fairplay-dots{display:flex;gap:7px;margin:2px 0 4px}.fp-dot{width:7px;height:7px;border-radius:50%;background:hsl(var(--muted-foreground)/.35);transition:background-color .2s ease,transform .2s ease}.fp-dot.on{background:hsl(var(--primary));transform:scale(1.25)}.fairplay-modal>button{width:100%}.flag{position:relative;display:inline-flex;align-items:center;line-height:1;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flag-tip{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:hsl(var(--foreground));color:hsl(var(--background));font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;white-space:nowrap;z-index:40;pointer-events:none}.tile-label .flag{font-size:12px;margin-left:5px}.name-line .flag{font-size:20px;margin-left:8px}.player-bar .flag{font-size:13px;margin-left:2px}.hero-lobby-link,.lobby-link{font-size:13.5px;font-weight:600;color:hsl(var(--muted-foreground));text-decoration:underline;text-underline-offset:3px;-webkit-text-decoration-color:hsl(var(--muted-foreground)/.45);text-decoration-color:hsl(var(--muted-foreground)/.45)}.hero-lobby-link:hover,.lobby-link:hover{color:hsl(var(--foreground))}.lobby-grid{grid-template-columns:250px minmax(280px,auto) 250px;grid-template-areas:"lobbyside oppbar  camopp" "lobbyside board   camopp" "camself   board   side" "camself   selfbar side"}.area-lobbyside{grid-area:lobbyside;min-height:0;display:flex}.lobby-grid .board-wrap{width:min(calc(100dvh - 205px),calc(100vw - 560px),820px)}.lobby-panel{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:10px;width:100%;min-height:0}.lobby-title-row{display:flex;align-items:center;gap:6px;min-height:26px}.lobby-name{font-size:14.5px;font-weight:700;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.lobby-name svg{color:hsl(var(--brand-orange));flex:none}.lobby-rename{display:flex;gap:6px;width:100%;align-items:center}.lobby-rename input{height:30px;font-size:13px}.lobby-badges{display:flex;flex-wrap:wrap;gap:5px}.lobby-badge{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));display:inline-flex;align-items:center;gap:4px}.badge-live{background:hsl(var(--success)/.15);color:hsl(var(--success));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lobby-code{display:flex;align-items:center;gap:7px;background:hsl(var(--secondary));border:1px dashed hsl(var(--border));border-radius:8px;padding:7px 10px;height:auto;font-size:12px;color:hsl(var(--foreground))}.lobby-code:hover{background:hsl(var(--accent))}.lobby-code-text{font-weight:700;letter-spacing:.14em;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lobby-code-hint{margin-left:auto;font-size:11px;font-weight:500;color:hsl(var(--muted-foreground))}.lobby-members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.lobby-member{display:flex;align-items:center;gap:7px;font-size:13px;padding:4px;border-radius:8px;min-height:32px}.lobby-member .player-rating{margin-left:auto;font-size:12px}.lobby-member-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:inline-flex;align-items:center;gap:5px}.lobby-you{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:1px 5px;border-radius:5px;background:hsl(var(--brand-blue)/.18);color:hsl(var(--brand-navy))}.dark .lobby-you{color:hsl(var(--brand-blue))}.lobby-crown{color:hsl(var(--brand-orange));flex:none}.lobby-kick{width:24px;height:24px;color:hsl(var(--muted-foreground))}.lobby-kick:hover{color:hsl(var(--destructive));background:hsl(var(--destructive)/.1)}.lobby-challenge{width:24px;height:24px;color:hsl(var(--muted-foreground))}.lobby-challenge:hover{color:hsl(var(--primary));background:hsl(var(--accent))}.cam-busy-overlay{flex-direction:column;gap:8px;padding:10px;text-align:center;color:hsl(var(--muted-foreground))}.cam-busy-text{font-size:11.5px;line-height:1.35;max-width:20ch}.cam-busy-btn{height:28px;font-size:11.5px;padding:0 10px}.session-taken{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 20px;text-align:center}.session-taken-icon{color:hsl(var(--brand-orange))}.session-taken h1{font-size:19px;font-weight:700;letter-spacing:-.01em}.session-taken p{max-width:46ch;font-size:13.5px;line-height:1.55;color:hsl(var(--muted-foreground))}.session-taken-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:4px}.session-taken-fine{font-size:12px;opacity:.75}.elsewhere-note{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px;padding:9px 13px;margin-bottom:12px;border:1px solid hsl(var(--border));border-radius:10px;background:hsl(var(--card));font-size:12.5px;color:hsl(var(--muted-foreground))}.elsewhere-note svg{color:hsl(var(--brand-orange));flex:none}.elsewhere-note button{height:28px;font-size:12px;padding:0 10px}.lobby-host-controls{display:flex;flex-direction:column;gap:7px}.lobby-host-card{padding:16px;gap:14px}.lobby-host-card>.section-title{margin:0;font-size:12px}.lobby-host-card .lobby-expose-btn{margin-bottom:2px;padding:11px 14px;font-size:13.5px;justify-content:center}.lobby-host-card .lobby-host-controls{gap:10px}.lobby-host-card .seg,.lobby-host-card .seg-wrap{gap:8px}.lobby-host-card .seg-sm button{height:38px;font-size:12.5px;padding:0 10px}.lobby-start{height:36px;font-size:13px;font-weight:700;background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.lobby-start:hover{filter:brightness(1.12)}.lobby-leave{margin-top:2px;height:30px;font-size:12px;background:none;color:hsl(var(--muted-foreground))}.lobby-leave:hover{color:hsl(var(--destructive));background:hsl(var(--destructive)/.08)}.seg{display:flex;gap:6px;height:auto}.seg button{flex:1 1;height:34px;padding:0 10px;font-size:12.5px;font-weight:600;background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid hsl(var(--border));border-radius:8px}.seg button:hover{background:hsl(var(--accent))}.seg button.seg-on{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.seg button.seg-on:hover{background:hsl(var(--primary)/.9)}.seg-wrap{flex-wrap:wrap;height:auto}.seg-wrap button{flex:0 0 auto;min-width:52px}.seg-sm button{height:28px;font-size:11.5px;padding:0 8px}.standings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.standings li{display:flex;align-items:center;gap:8px;font-size:13px;padding:5px 8px;border-radius:8px}.standing-self{background:hsl(var(--accent)/.6)}.standing-rank{width:16px;text-align:right;color:hsl(var(--muted-foreground));font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:12px}.standing-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:inline-flex;align-items:center;gap:4px}.standing-fire{color:hsl(var(--brand-orange));flex:none}.standing-record{color:hsl(var(--muted-foreground));font-size:11.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.standing-points{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:20px;text-align:right}.go-next{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13.5px;color:hsl(var(--muted-foreground));min-height:22px}.sub-body>.lobbies{width:min(620px,100%);margin:0 auto;display:flex;flex-direction:column;gap:18px;animation:fade-in-up .3s cubic-bezier(.21,1.02,.73,1) both}.lobby-join-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.lobby-code-box{display:flex;gap:8px;flex:1 1;min-width:240px}.lobby-code-box input{flex:1 1;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.lobby-code-box input::placeholder{text-transform:none;letter-spacing:normal;font-weight:500}.lobby-create{gap:14px}.lobby-create,.lobby-field{display:flex;flex-direction:column}.lobby-field{gap:6px}.lobby-field>span{font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em}.lobby-field>span,.lobby-hint{color:hsl(var(--muted-foreground))}.lobby-hint{font-size:12px;line-height:1.45}.lobby-form-actions{display:flex;gap:8px}.lobby-list{display:flex;flex-direction:column;gap:6px}.lobby-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);font-size:14px;color:inherit;text-decoration:none;transition:border-color .15s ease,background-color .15s ease}.lobby-row:hover{border-color:hsl(var(--ring)/.5);background:hsl(var(--accent)/.4)}.lobby-row-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1}.lobby-row-name{font-weight:650;display:inline-flex;align-items:center;gap:7px;min-width:0}.lobby-row-name svg{color:hsl(var(--brand-orange));flex:none}.lobby-row-meta{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lobby-row-meta,.lobby-row-side{color:hsl(var(--muted-foreground))}.lobby-row-side{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lobby-fatal{gap:14px}.lobby-fatal h2{font-size:17px;letter-spacing:-.01em}.lobby-fatal a{text-decoration:none}@media (max-width:900px){.lobby-grid{grid-template-columns:1fr auto 1fr;grid-template-rows:minmax(96px,1fr) auto auto auto auto auto;grid-template-areas:"camself   camctl    camopp" "movestrip movestrip movestrip" "oppbar    oppbar    oppbar" "board     board     board" "selfbar   selfbar   selfbar" "side      side      side";padding-bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom))}.lobby-grid .area-lobbyside,.lobby-waiting .area-side{display:none}.lobby-bnav{display:grid;grid-template-columns:repeat(4,1fr)}.lobby-bnav .nav-menu{grid-column:1;display:flex;align-items:stretch}.lobby-sheet{max-height:76dvh;overflow-y:auto;gap:10px;padding:12px}.lobby-sheet .lobby-members{max-height:none}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.sheet-head .section-title{margin:0}.bn-count{position:absolute;top:8px;right:calc(50% - 20px);min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:10px;font-weight:700;line-height:16px;text-align:center}}.rematch-left{margin-left:6px;padding:1px 7px;border-radius:999px;background:hsl(var(--foreground)/.1);font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rematch-left,.rematch-note{color:hsl(var(--muted-foreground))}.rematch-note{font-size:12.5px;line-height:1.5;text-align:center;padding:2px 4px 4px}.code-input{font-family:SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:26px;font-weight:700;letter-spacing:.5em;text-align:center;text-indent:0;height:56px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.code-input::placeholder{color:hsl(var(--muted-foreground)/.35);font-weight:600}.mine-block{margin-bottom:18px}.mine-block .section-title{margin-bottom:10px}.room-clock{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;font-size:12px;color:hsl(var(--muted-foreground))}.room-clock strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:hsl(var(--foreground))}.room-clock-urgent strong{color:hsl(var(--destructive))}.about-account{gap:5px}.about-account,.verified-badge{display:inline-flex;align-items:center}.verified-badge{flex:none;color:hsl(var(--brand-orange))}.verified-badge svg{display:block}.btn-count{margin-left:6px;padding:1px 6px;border-radius:999px;background:hsl(var(--foreground)/.12);font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.btn-count-urgent{background:hsl(var(--destructive)/.9);color:hsl(var(--destructive-foreground))}@media (max-width:619px){.lobby-grid .board-wrap{width:100vw;margin-inline:calc(50% - 50vw)}}@media (min-width:620px) and (max-width:900px){.lobby-grid .board-wrap{width:min(100%,max(calc(100dvh - 500px),280px));margin-inline:auto}}.play-bnav{display:contents}@media (max-width:900px){.play-bnav{display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;position:fixed;left:0;right:0;bottom:0;z-index:35;height:calc(var(--bnav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:hsl(var(--card));border-top:1px solid hsl(var(--border))}.play-bnav .pulse-card{flex:1 1;min-width:0;border:0;border-radius:0;background:transparent;padding:0;align-items:center}.play-bnav .pulse-value{font-size:16px}.play-bnav .pulse-label{font-size:9px}.play-bnav .nav-menu{grid-column:1;display:flex;align-items:stretch}.play-bnav .pulse-card{grid-column:2/-1}.lobby-bnav .nav-menu>.icon-btn,.play-bnav .nav-menu>.icon-btn{position:relative;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;color:hsl(var(--foreground))}.lobby-bnav .nav-menu>.icon-btn:hover,.play-bnav .nav-menu>.icon-btn:hover{background:hsl(var(--accent))}.lobby-bnav .nav-menu>.icon-btn:active,.play-bnav .nav-menu>.icon-btn:active{transform:none;background:hsl(var(--accent))}.lobby-bnav .nav-menu>.icon-btn svg,.play-bnav .nav-menu>.icon-btn svg{width:21px;height:21px}}.bn-cell{justify-content:center}.bn-cell,.bn-cell .nav-menu{display:flex;align-items:stretch}.bn-cell .nav-menu{width:100%}.bn-cell .nav-menu>.icon-btn{width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;color:hsl(var(--foreground))}.bn-cell .nav-menu>.icon-btn:hover{background:hsl(var(--accent))}.bn-cell .nav-menu>.icon-btn:active{transform:none;background:hsl(var(--accent))}.bn-cell .nav-menu>.icon-btn svg{width:21px;height:21px}.bn-cell .nav-menu-up .menu-pop{right:auto;left:10px}.bn-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0}.bn-stat-value{font-size:15px;font-weight:650;line-height:1;color:hsl(var(--foreground));font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bn-stat-label{align-items:center;gap:4px;font-size:9px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;line-height:1;white-space:nowrap}.bn-stat-label,.host-note{display:flex;color:hsl(var(--muted-foreground))}.host-note{align-items:flex-start;gap:8px;margin:0;flex:1 1;min-width:200px;font-size:13px;line-height:1.5}.host-note svg{flex:none;margin-top:2px;color:hsl(var(--brand-orange))}.host-note strong{color:hsl(var(--foreground));font-weight:650}.host-note a{color:hsl(var(--foreground));text-underline-offset:2px}.final-standings{width:min(340px,86%);margin:6px 0 2px;padding:10px 12px;background:hsl(var(--card)/.92);border:1px solid hsl(var(--border));border-radius:var(--radius);max-height:40dvh;overflow-y:auto}.standing-gold{color:hsl(var(--brand-orange))}.lobby-start-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}.lobby-datetime{width:100%;height:40px;padding:0 10px;border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));color:hsl(var(--foreground));font:inherit;font-size:14px}.lobby-datetime:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:1px}.schedule-modal{display:flex;flex-direction:column;gap:12px;max-width:380px}.schedule-modal h2{margin:0;font-size:18px}.schedule-modal .choice-sub{margin:0;text-align:left}.schedule-actions{display:flex;gap:8px}.schedule-actions button{flex:1 1}.lobby-title-row .arena-clock{margin-left:auto}.arena-clock{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;background:hsl(var(--success)/.12);color:hsl(var(--success));border:1px solid hsl(var(--success)/.25);font-size:11.5px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.arena-clock-urgent{background:hsl(var(--destructive)/.12);color:hsl(var(--destructive));border-color:hsl(var(--destructive)/.3);animation:pulse-soft 1.2s ease infinite}.consent-card{position:fixed;z-index:91;left:16px;bottom:16px;width:340px;max-width:calc(100vw - 32px);padding:16px;border-radius:calc(var(--radius) + 4px);border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--card-foreground));box-shadow:0 12px 40px -8px hsl(var(--brand-navy)/.35);animation:consent-in .28s cubic-bezier(.2,.8,.2,1)}@keyframes consent-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.consent-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.consent-logo{width:24px;height:24px;border-radius:6px;flex:none}.consent-head h2{margin:0;font-size:.95rem;font-weight:700;letter-spacing:-.01em}.consent-body{margin:0;font-size:.8rem;line-height:1.5;color:hsl(var(--muted-foreground))}.consent-cats{display:grid;grid-gap:6px;gap:6px;margin-top:12px}.consent-cat{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius);border:1px solid hsl(var(--border));background:hsl(var(--muted)/.5)}.consent-cat>svg{flex:none;color:hsl(var(--primary))}.consent-cat>div{flex:1 1;min-width:0;display:grid}.consent-cat strong{font-size:.78rem}.consent-cat span{font-size:.7rem;line-height:1.35;color:hsl(var(--muted-foreground))}.consent-always{font-size:.65rem!important;font-weight:600;text-transform:uppercase;letter-spacing:.04em;flex:none}.consent-cat-toggle{cursor:pointer}.consent-cat-toggle input[type=checkbox]{width:16px;height:16px;flex:none;min-width:0;padding:0;margin:0;accent-color:hsl(var(--primary));cursor:pointer}.consent-actions{display:flex;gap:6px;margin-top:14px}.consent-btn{flex:1 1;padding:8px 10px;border-radius:var(--radius);border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground));font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease}.consent-btn:hover{background:hsl(var(--muted))}.consent-btn:active{transform:translateY(1px)}.consent-primary{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.consent-primary:hover{background:hsl(var(--primary)/.9)}.consent-foot{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0 0;font-size:.7rem;color:hsl(var(--muted-foreground))}.consent-foot a,.consent-more{color:inherit;text-decoration:underline;text-underline-offset:2px}.consent-foot a:hover,.consent-more:hover{color:hsl(var(--primary))}.consent-more{background:none;border:0;padding:0;font:inherit;cursor:pointer}@media (max-width:900px){.consent-card{left:50%;right:auto;bottom:0;width:100%;max-width:460px;transform:translateX(-50%);border-radius:calc(var(--radius) + 8px) calc(var(--radius) + 8px) 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom))}@keyframes consent-in{0%{opacity:0;transform:translate(-50%,100%)}to{opacity:1;transform:translate(-50%)}}.consent-actions{flex-wrap:wrap}}.consent-fab{position:fixed;left:16px;bottom:16px;z-index:40;width:34px;height:34px;display:grid;place-items:center;padding:0;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--card)/.85);color:hsl(var(--muted-foreground));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 10px -4px hsl(var(--brand-navy)/.3);opacity:.6;cursor:pointer;transition:opacity .15s ease,color .15s ease,transform .1s ease}.consent-fab:hover{opacity:1;color:hsl(var(--primary))}.consent-fab:active{transform:translateY(1px)}.consent-fab:focus-visible{opacity:1;outline:2px solid hsl(var(--ring));outline-offset:2px}.consent-link{background:none;border:0;padding:0;font:inherit;color:hsl(var(--primary));text-decoration:underline;text-underline-offset:2px;cursor:pointer}.chal-toast{position:fixed;z-index:90;left:12px;right:12px;bottom:calc(16px + env(safe-area-inset-bottom, 0px) + var(--chal-toast-lift, 0px));background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 12px 40px -12px rgba(0,0,0,.35);padding:12px 14px;animation:chal-toast-in .22s cubic-bezier(.2,.8,.3,1) both}html.pwa-shell .chal-toast,html.pwa-tabbar .chal-toast{--chal-toast-lift:58px}@media (min-width:560px){.chal-toast{left:auto;right:18px;width:330px}}@keyframes chal-toast-in{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.chal-toast-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:24px;height:24px;border-radius:999px;color:hsl(var(--muted-foreground));background:transparent;border:none;cursor:pointer}.chal-toast-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.chal-toast-row{display:flex;align-items:center;gap:10px;padding-right:20px}.chal-toast-text{display:flex;flex-direction:column;min-width:0;font-size:13.5px}.chal-toast-text b{font-weight:700}.chal-toast-note,.chal-toast-text span{color:hsl(var(--muted-foreground));font-size:12.5px}.chal-toast-note{margin-top:8px}.chal-toast-actions{display:flex;gap:8px;margin-top:10px}.chal-toast-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:9px;font-size:13px;font-weight:650;border:1px solid hsl(var(--border));cursor:pointer}.chal-toast-actions button:disabled{opacity:.6;cursor:default}.chal-accept{flex:1 1;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:transparent}.chal-decline{background:transparent;color:hsl(var(--muted-foreground))}.chal-decline:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.chal-page{min-height:calc(100dvh - 48px);display:grid;place-items:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom, 0px));background:hsl(var(--background))}.chal-card{width:100%;max-width:380px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:16px;padding:26px 22px;display:flex;flex-direction:column;gap:14px;text-align:center;align-items:center;animation:fade-in .25s ease both}.chal-card h1{font-size:19px;font-weight:750;margin:0}.chal-versus{align-items:center;gap:10px}.chal-versus,.chal-who{display:flex;flex-direction:column}.chal-who{gap:2px}.chal-who b{font-size:18px;font-weight:750}.chal-who span{font-size:13px}.chal-sub,.chal-who span{color:hsl(var(--muted-foreground))}.chal-sub{font-size:14px;margin:0}.chal-note{font-size:13px;color:hsl(var(--destructive));margin:0}.chal-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:44px;border-radius:11px;border:none;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:15px;font-weight:700;cursor:pointer}.chal-cta:disabled{opacity:.65;cursor:default}.chal-ghost{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;color:hsl(var(--muted-foreground));font-size:13px;cursor:pointer;padding:6px 10px;border-radius:8px}.chal-ghost:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.chal-linkrow{display:flex;align-items:center;gap:6px;width:100%;background:hsl(var(--accent)/.5);border:1px solid hsl(var(--border));border-radius:10px;padding:8px 10px}.chal-linkrow code{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;text-align:left}.chal-linkrow button{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;border:none;background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;flex:0 0 auto}.chal-linkrow button:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.chal-modal-sub{font-size:13.5px;margin:4px 0 0}.chal-modal-fine,.chal-modal-sub{color:hsl(var(--muted-foreground))}.chal-modal-fine{font-size:12px;margin:2px 0 0;opacity:.85}.chal-speeds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:10px}.chal-speed{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:10px;border:1.5px solid hsl(var(--border));background:transparent;cursor:pointer;color:hsl(var(--foreground))}.chal-speed b{font-size:15px;font-weight:750}.chal-speed span{font-size:11px;color:hsl(var(--muted-foreground))}.chal-speed.on{border-color:hsl(var(--primary));background:hsl(var(--accent)/.6)}.chal-wait-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:hsl(var(--muted-foreground));justify-content:center}.report-modal .chal-cta,.report-modal .chal-linkrow{margin-top:10px}.play-alt-row{display:flex;align-items:center;gap:8px}.play-alt-dot{color:hsl(var(--muted-foreground))}button.lobby-link{background:none;border:none;cursor:pointer;padding:0;font-family:inherit;line-height:inherit;letter-spacing:inherit}.chal-nudge{margin-top:10px;animation:fade-in .3s ease both}.chal-toast-icon{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:hsl(var(--brand-orange)/.15);color:hsl(var(--brand-orange))}.chal-bell,.chal-bell-wrap{position:relative}.chal-bell-count{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:hsl(var(--destructive));color:hsl(var(--destructive-foreground,0 0% 100%));font-size:10.5px;font-weight:750;line-height:16px;text-align:center}.nav-burger-count{top:1px;right:1px}.chal-bell-pop{position:absolute;top:calc(100% + 8px);right:0;width:260px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 12px 40px -12px rgba(0,0,0,.3);padding:6px;z-index:80;display:flex;flex-direction:column;gap:2px}.chal-bell-row{display:flex;align-items:center;gap:6px;padding:6px;border-radius:9px;width:100%;color:hsl(var(--foreground))}.chal-bell-row:hover{background:hsl(var(--accent)/.6)}.chal-bell-who{display:flex;align-items:center;gap:10px;flex:1 1;min-width:0;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;padding:2px}.chal-bell-actions{display:flex;gap:4px;flex:0 0 auto}.chal-bell-actions button{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;border:1px solid hsl(var(--border));cursor:pointer}.chal-bell-actions button:disabled{opacity:.6;cursor:default}.chal-bell-accept{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:transparent}.chal-bell-decline{background:transparent;color:hsl(var(--muted-foreground))}.chal-bell-decline:hover{color:hsl(var(--destructive));background:hsl(var(--destructive)/.1)}.chal-bell-empty{padding:14px 10px;font-size:12.5px;color:hsl(var(--muted-foreground));text-align:center}.chal-bell-text{display:flex;flex-direction:column;min-width:0;font-size:13px}.chal-bell-text b{font-weight:700}.chal-bell-text span{font-size:12px;color:hsl(var(--muted-foreground))}.menu-count{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:hsl(var(--destructive));color:hsl(var(--destructive-foreground,0 0% 100%));font-size:11px;font-weight:750;line-height:18px;text-align:center}.chal-inbox-page{min-height:100dvh;background:hsl(var(--background))}.chal-inbox-body{max-width:480px;margin:0 auto;padding:14px 14px calc(24px + env(safe-area-inset-bottom, 0px));display:flex;flex-direction:column;gap:8px}.chal-inbox-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;color:hsl(var(--foreground))}.chal-inbox-row .chal-bell-text{flex:1 1;min-width:0}.chal-inbox-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.chal-inbox-actions .chal-accept{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 16px;border-radius:9px;border:none;background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:13px;font-weight:650;cursor:pointer}.chal-inbox-actions .chal-decline{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;border:1px solid hsl(var(--border));background:transparent;color:hsl(var(--muted-foreground));cursor:pointer}.chal-inbox-actions .chal-decline:hover{color:hsl(var(--destructive));background:hsl(var(--destructive)/.1)}.chal-inbox-actions button:disabled{opacity:.6;cursor:default}.chal-inbox-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 0;color:hsl(var(--muted-foreground));font-size:14px}.chal-flash{font-size:13px;color:hsl(var(--foreground));text-align:center;cursor:pointer;padding:12px 16px}.chal-otoast-lifted{bottom:calc(16px + env(safe-area-inset-bottom, 0px) + var(--chal-toast-lift, 0px) + 132px)}.chal-otoast-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:hsl(var(--accent));color:hsl(var(--primary));flex:0 0 auto}.chal-otoast-clickable{cursor:pointer}.chal-otoast-clickable:hover{border-color:hsl(var(--primary)/.4)}.chal-otoast-clickable:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:2px}.chal-otoast-clickable .chal-toast-actions button{cursor:pointer}.chal-otoast-waiting{display:inline-flex;align-items:center;gap:6px}.chal-join-pulse{animation:chal-join-pulse 1.6s ease-in-out infinite}@keyframes chal-join-pulse{0%,to{box-shadow:0 0 0 0 hsl(var(--primary)/.45)}50%{box-shadow:0 0 0 6px hsl(var(--primary)/0)}}.chal-waiting-line{display:inline-flex;align-items:center;gap:8px;justify-content:center}.user-link{color:inherit;text-decoration:none}.user-link:hover{text-decoration:underline;text-underline-offset:2px}.online-dot{width:9px;height:9px;border-radius:50%;background:hsl(var(--muted-foreground)/.45);display:inline-block;flex:none}.online-dot.presence-on,.presence-on .online-dot{background:#22a55b;box-shadow:0 0 0 3px rgba(34,165,91,.18)}.presence-line{display:flex;width:-moz-fit-content;width:fit-content;align-items:center;gap:7px;font-size:13px;color:hsl(var(--muted-foreground));margin-top:6px}.presence-line.presence-on{color:#1d8a4d}.member-since{font-size:12.5px;color:hsl(var(--muted-foreground));margin:6px 0 0}.u-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:14px 0 4px}.u-actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.u-act{height:38px;padding:0 14px;border:1px solid hsl(var(--border));border-radius:10px;font-size:13.5px;font-weight:600;gap:7px}.u-act:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.u-act.chal-cta{width:auto;height:38px;border-radius:10px;border-color:transparent;font-size:13.5px}.u-act.chal-cta:hover{background:hsl(var(--primary)/.88);color:hsl(var(--primary-foreground))}.u-act-danger{color:hsl(var(--destructive))!important}.u-act-danger:hover{background:hsl(var(--destructive)/.1)!important}.u-block-link{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;background:none;border:1px solid transparent;border-radius:10px;font-size:12.5px;color:hsl(var(--muted-foreground));cursor:pointer}.u-block-link:hover{color:hsl(var(--destructive));background:hsl(var(--destructive)/.1)}.friend-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.friend-row{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid hsl(var(--border)/.6)}.friend-row:last-child{border-bottom:none}.friend-ava{position:relative;display:inline-flex;flex:none}.friend-dot{position:absolute;right:-1px;bottom:-1px;border:2px solid hsl(var(--background));box-shadow:none}.friend-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1}.friend-name{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-meta{font-size:12.5px;color:hsl(var(--muted-foreground))}.friend-acts{display:inline-flex;align-items:center;gap:6px;flex:none}.friend-ok{color:#1d8a4d}.friend-hint{margin-top:14px}.tile-addfriend{position:absolute;bottom:6px;right:6px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:8px;background:hsl(var(--primary)/.8);color:hsl(var(--primary-foreground));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:.65}.tile-addfriend:focus-visible,.tile-addfriend:hover{opacity:1;background:hsl(var(--primary))}.tile-addfriend-sent,.tile-addfriend-sent:hover{background:rgba(34,165,91,.75);color:hsla(0,0%,100%,.95);cursor:default;opacity:.8}.ad-slot{display:block;width:100%;max-width:728px;margin:24px auto;min-height:100px}.ad-slot:before{content:"Advertisement";display:block;margin-bottom:6px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;text-align:center;color:hsl(var(--muted-foreground))}.ad-slot .adsbygoogle{display:block}.ad-slot:has(.adsbygoogle[data-ad-status=unfilled]){display:none}.spectate-eye{color:hsl(var(--muted-foreground));margin-left:2px}.spectate-grid .board-wrap{touch-action:auto}.spectate-result{padding:10px 12px;border-radius:10px;background:hsl(var(--muted)/.5);font-weight:700;display:flex;flex-direction:column;gap:2px}.spectate-result-reason{font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));text-transform:capitalize}.spectate-moves{min-height:0}.spectate-denied{flex:1 1;display:grid;place-content:center;text-align:center;grid-gap:4px;gap:4px;padding:24px}.spectate-denied-sub{color:hsl(var(--muted-foreground));font-size:14px}.expose-count{font-size:12px;color:hsl(var(--muted-foreground));margin-left:8px}.expose-empty{min-height:40dvh;display:grid;place-content:center;text-align:center;grid-gap:4px;gap:4px;color:hsl(var(--muted-foreground))}.expose-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));grid-gap:14px;gap:14px;padding:14px}.expose-list{display:flex;flex-direction:column;gap:8px;padding:14px}.expose-slot,.expose-slot-row{min-width:0}.expose-cell{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid hsl(var(--border));border-radius:12px;background:hsl(var(--card));transition:border-color .15s ease,transform .15s ease}.expose-cell.click{cursor:pointer}.expose-cell.click:hover{border-color:hsl(var(--primary)/.5);transform:translateY(-1px)}.expose-cell-done{opacity:.75}.expose-cell-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px}.expose-cell-bar .clock{font-size:13px;padding:1px 7px}.expose-cell-name{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expose-cell-mid{display:flex;align-items:center;justify-content:center;gap:10px}.expose-cell-board{width:150px;max-width:58%;aspect-ratio:1;flex:none}.expose-cell-board .cg-wrap{width:100%;height:100%;border-radius:6px;overflow:hidden}.expose-cell-board .board-loading{width:100%;height:100%}.expose-cam{position:relative;width:72px;aspect-ratio:3/4;border-radius:8px;overflow:hidden;background:hsl(var(--muted)/.6);display:grid;place-items:center;flex:none}.expose-cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.expose-cam-avatar{position:relative;z-index:1}.expose-cell-note,.expose-cell-result{align-self:center;font-size:11px;color:hsl(var(--muted-foreground))}.expose-cell-result{font-weight:700}.expose-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid hsl(var(--border));border-radius:10px;background:hsl(var(--card))}.expose-row.click{cursor:pointer}.expose-row.click:hover{border-color:hsl(var(--primary)/.5)}.expose-row-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1}.expose-row-players{font-size:14px}.expose-row-meta{font-size:12px;color:hsl(var(--muted-foreground))}.expose-row-clocks{display:flex;gap:8px}.expose-row-clocks .clock{font-size:12px;padding:1px 6px}.expose-overlay{position:fixed;inset:0;z-index:80;background:hsl(var(--background));display:flex;flex-direction:column;overflow:hidden;transform-origin:0 0;will-change:transform,opacity}.expose-overlay .game-grid{flex:1 1;min-height:0}.expose-focus-bar{flex:none}.expose-pos{font-size:12px;color:hsl(var(--muted-foreground));margin-right:4px}.lobby-expose-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;margin-bottom:10px;border:1px solid hsl(var(--border));border-radius:10px;background:hsl(var(--card));font-size:13px;font-weight:600;text-decoration:none;color:inherit;transition:border-color .15s ease}.lobby-expose-btn:hover{border-color:hsl(var(--primary)/.5)}@media (max-width:900px){.expose-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;padding:10px}.expose-list{gap:6px;padding:10px}.expose-cell{padding:8px;gap:5px;border-radius:10px}.expose-cell.click:hover{transform:none}.expose-cell-mid{gap:7px}.expose-cell-board{width:132px;max-width:54%}.expose-cam{width:60px}.expose-cell-name{font-size:12.5px}.expose-cell-bar .clock{font-size:12px}.expose-row{padding:8px;gap:8px}.expose-row-players{font-size:13px}.expose-count{display:none}.expose-focus-bar .brand{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expose-focus-bar .tc-badge{display:none}.expose-pos{font-size:11px}.expose-overlay .game-grid{padding:8px;gap:6px}.expose-overlay .board-wrap{width:100%}}@media (max-width:619px){.expose-grid{grid-template-columns:1fr}.expose-cell-board{width:140px;max-width:52%}.expose-cam{width:64px}}.specs-gallery{display:flex;flex-direction:column;gap:6px;min-height:0;overflow-y:auto}.specs-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:hsl(var(--muted-foreground))}.specs-tile{position:relative;width:100%;aspect-ratio:4/3;border-radius:10px;overflow:hidden;flex:none}.specs-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.specs-tile .self-cam-video{transform:scaleX(-1)}.specs-self-ctl{position:absolute;bottom:4px;right:4px;z-index:2;display:flex;gap:4px}.specs-self-ctl .ctl{width:24px;height:24px}.specs-dock{position:fixed;z-index:70;display:flex;flex-direction:column;gap:6px;padding:5px;border-radius:12px;background:hsl(var(--card)/.82);border:1px solid hsl(var(--border));box-shadow:0 8px 26px -6px rgba(0,0,0,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);touch-action:none;cursor:-webkit-grab;cursor:grab;max-height:62vh;overflow-y:auto;overscroll-behavior:contain}.specs-dock:active{cursor:-webkit-grabbing;cursor:grabbing}.specs-dock:before{content:"";flex:none;width:26px;height:3px;margin:1px auto 2px;border-radius:2px;background:hsl(var(--muted-foreground)/.5)}.specs-dock .specs-gallery{gap:6px}.specs-dock .specs-label{display:none}.specs-dock .specs-tile{width:100%}.specs-dock video{pointer-events:none}.invite-row{display:flex;gap:8px;margin:10px 0 6px}.invite-row input{flex:1 1}.invite-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:4px}.invite-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:8px;background:hsl(var(--muted)/.4);font-size:14px}.invite-copy{margin-top:8px;width:100%}.bt-wrap{position:relative;display:inline-flex}.bt-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:70;width:268px;padding:12px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:12px;box-shadow:0 16px 40px -12px rgba(0,0,0,.35);animation:fade-in-up .18s ease both}.bt-pop-title{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:hsl(var(--muted-foreground));margin-bottom:10px}.bt-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}.bt-swatch{height:auto;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:8px;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:10px;cursor:pointer;transition:border-color .15s ease,transform .12s ease}.bt-swatch:hover{border-color:hsl(var(--primary)/.6)}.bt-swatch:active{transform:scale(.98)}.bt-swatch.on{border-color:hsl(var(--primary));box-shadow:0 0 0 1px hsl(var(--primary))}.bt-mini{display:grid;grid-template-columns:repeat(4,1fr);width:100%;border-radius:4px;overflow:hidden}.bt-mini>span{display:block;aspect-ratio:1}.bt-label{font-size:12px;font-weight:600;color:hsl(var(--foreground))}.bt-check{position:absolute;top:6px;right:6px;color:hsl(var(--primary))}.bt-note{margin:10px 0 0;font-size:11.5px;color:hsl(var(--muted-foreground))}.bt-modal .bt-grid{grid-template-columns:repeat(3,1fr);margin-top:4px}@media (max-width:380px){.bt-modal .bt-grid{grid-template-columns:repeat(2,1fr)}}.settings-card .bt-grid{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.bt-firstrun-sub{margin:4px 0 12px;font-size:12.5px;line-height:1.45;color:hsl(var(--muted-foreground))}