body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 16% 28%,#7ec8e329,#0000 34%),radial-gradient(circle at 88% 80%,#fcdab71f,#0000 30%),radial-gradient(circle at 82% 24%,#7ec8e31a,#0000 32%),linear-gradient(150deg,#0f1e35,#1d2d50 50%,#133b5c);background-attachment:fixed;color:#e6f1fa;font-family:Avenir Next,Nunito,Segoe UI,sans-serif;margin:0;min-width:320px}code{font-family:ui-monospace,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--bg-0:#0f1e35;--bg-1:#1d2d50;--bg-2:#133b5c;--peach:#fcdab7;--peach-deep:#e8b98a;--sky:#7ec8e3;--sky-deep:#4eaed6;--steel:#b8d4e8;--steel-deep:#7fa8c6;--text:#e6f1fa;--muted:#9ab3c6;--muted-soft:#a8c4d4;--muted-deep:#6a8fa5;--muted-dark:#3a5a72;--muted-strong:#bfd4e5;--danger:#ff8f9f;--card-bg:#1e3558a3;--card-border:#fcdab733;--card-shadow:0 28px 56px #0000007a;--card-inset:inset 0 1px 0 #ffffff2e;--cell-size:min(27vw,108px)}*{box-sizing:border-box}.page{background:#0000;color:#e6f1fa;color:var(--text);font-family:Avenir Next,Nunito,Segoe UI,sans-serif;isolation:isolate;min-height:100vh;padding:1.35rem max(1rem,env(safe-area-inset-right)) 2rem max(1rem,env(safe-area-inset-left));position:relative}.page:before{background:linear-gradient(90deg,#0000 0,#0000 calc(25% - 1px),#ffffff2e calc(25% - 1px),#ffffff2e calc(25% + 1px),#0000 calc(25% + 1px),#0000 calc(75% - 1px),#ffffff2e calc(75% - 1px),#ffffff2e calc(75% + 1px),#0000 calc(75% + 1px)),linear-gradient(180deg,#0000 0,#0000 calc(25% - 1px),#ffffff2e calc(25% - 1px),#ffffff2e calc(25% + 1px),#0000 calc(25% + 1px),#0000 calc(75% - 1px),#ffffff2e calc(75% - 1px),#ffffff2e calc(75% + 1px),#0000 calc(75% + 1px));opacity:.42;z-index:-2}.page:after,.page:before{content:"";inset:0;pointer-events:none;position:fixed}.page:after{background:radial-gradient(circle at 8% 10%,#ffffff2e 0 2px,#0000 3px),radial-gradient(circle at 91% 34%,#ffffff24 0 2px,#0000 3px),radial-gradient(circle at 19% 78%,#ffffff24 0 2px,#0000 3px),radial-gradient(circle at 94% 86%,#ffffff1c 0 2px,#0000 3px);z-index:-1}.page-shell{margin:0 auto;max-width:980px;position:relative;z-index:1}.page-header{margin-bottom:1.2rem;text-align:center}.page-header h1{color:#fcdab7;color:var(--peach);font-size:clamp(2rem,4.4vw,3rem);letter-spacing:.05em;line-height:1.06;margin:0;text-shadow:0 0 12px #fcdab73d,0 0 28px #fcdab729;text-transform:uppercase}.hero-card{overflow:hidden;position:relative}.hero-card:after{background:radial-gradient(circle,#fcdab733,#7ec8e314 48%,#0000 72%);border-radius:50%;content:"";height:260px;inset:auto -14% -52% auto;pointer-events:none;position:absolute;width:260px}.mini-board-logo{grid-gap:2px;align-items:center;animation:logoFloat 4s ease-in-out infinite;background:radial-gradient(circle at 18% 16%,#ffffff3d,#0000 48%),linear-gradient(160deg,#1a456df2,#123456f5 54%,#0f233dfa);border:1px solid #fcdab747;border-radius:18px;box-shadow:inset 0 1px 0 #ffffff57,0 9px 26px #00000073,0 0 18px #7ec8e340;display:grid;gap:2px;grid-template-columns:repeat(3,1fr);height:74px;justify-items:center;margin:0 auto .95rem;padding:10px;position:relative;width:74px}.mini-board-logo:before{background:linear-gradient(90deg,#0000 calc(33.33% - 1px),#fff3 calc(33.33% - 1px),#fff3 calc(33.33% + 1px),#0000 calc(33.33% + 1px),#0000 calc(66.66% - 1px),#fff3 calc(66.66% - 1px),#fff3 calc(66.66% + 1px),#0000 calc(66.66% + 1px)),linear-gradient(180deg,#0000 calc(33.33% - 1px),#fff3 calc(33.33% - 1px),#fff3 calc(33.33% + 1px),#0000 calc(33.33% + 1px),#0000 calc(66.66% - 1px),#fff3 calc(66.66% - 1px),#fff3 calc(66.66% + 1px),#0000 calc(66.66% + 1px));border:1px solid #fcdab738;border-radius:11px;content:"";inset:9px;position:absolute}.mini-cell{align-items:center;animation:cellPulse 3.2s ease-in-out infinite;display:flex;height:100%;justify-content:center;opacity:.9;position:relative;width:100%;z-index:1}.mini-cell svg{height:11px;overflow:visible;width:11px}.mini-cell.mini-x{color:#fcdab7e6;text-shadow:0 0 8px #fcdab747}.mini-cell.mini-o{color:#7ec8e3eb;text-shadow:0 0 8px #7ec8e347}.mini-cell:nth-child(2n){animation-delay:.3s}.mini-cell:nth-child(3n){animation-delay:.6s}.eyebrow{align-items:center;background:#fcdab71a;border:1px solid #fcdab742;border-radius:999px;color:#fcdab7;color:var(--peach);display:inline-flex;font-size:.75rem;font-weight:700;justify-content:center;letter-spacing:.14em;margin-bottom:.78rem;padding:.34rem .86rem;text-transform:uppercase}.hero-copy{margin:.95rem auto 0;max-width:44rem}.muted{color:#9ab3c6;color:var(--muted);margin:0}.small{font-size:.92rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1e3558a3;background:var(--card-bg);border:1px solid #fcdab733;border:1px solid var(--card-border);border-radius:26px;box-shadow:0 28px 56px #0000007a,inset 0 1px 0 #ffffff2e;box-shadow:var(--card-shadow),var(--card-inset);margin-bottom:1rem;padding:1.2rem;position:relative}.card:before{background:linear-gradient(90deg,#0000,#ffffff75,#0000);content:"";height:1px;left:10px;pointer-events:none;position:absolute;right:10px;top:0}.card h2{color:#eff7ff;font-size:1.15rem;letter-spacing:.02em;margin:0 0 .35rem}.section-heading{align-items:flex-start;display:flex;gap:.9rem;justify-content:space-between;margin-bottom:1rem}.chip-row{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin-top:1rem}.chip-row.centered{margin-bottom:.9rem;margin-top:0}.chip{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:700;justify-content:center;letter-spacing:.06em;min-height:32px;padding:.3rem .8rem;text-transform:uppercase}.chip.soft{background:#7ec8e31f;border-color:#7ec8e357;color:#d9f2ff}.chip.subtle{background:#fcdab71f;border-color:#fcdab742;color:#fcdab7;color:var(--peach)}.chip-btn{border-radius:999px;font-size:.82rem;min-height:32px;padding:.3rem .8rem}.row{display:flex;flex-wrap:wrap;gap:.68rem}.btn{appearance:none;background:linear-gradient(140deg,#234266eb,#172d4af0);border:1px solid #7ec8e347;border-radius:14px;color:#e5f3ff;cursor:pointer;font-size:.95rem;font-weight:700;min-height:48px;padding:.76rem 1.04rem;transition:transform .14s ease,box-shadow .16s ease,border-color .16s ease,filter .16s ease}.btn:hover:enabled{box-shadow:0 12px 26px #00000059;transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;filter:saturate(.7);opacity:.56}.btn.primary,.quick-btn{background:linear-gradient(135deg,#fcdab7,#e8b98a);background:linear-gradient(135deg,var(--peach) 0,var(--peach-deep) 100%);border-color:#fcdab78c;box-shadow:0 0 0 1px #fcdab733,0 10px 28px #fcdab74d;color:#16253d}.btn.secondary{background:linear-gradient(135deg,#3e587df2,#253d5bf5);border-color:#b8d4e866;color:#d9ebfa}.btn.public-btn{background:linear-gradient(135deg,#7ec8e3,#4eaed6);background:linear-gradient(135deg,var(--sky) 0,var(--sky-deep) 100%);border-color:#7ec8e380;box-shadow:0 0 0 1px #7ec8e32e,0 10px 24px #7ec8e347;color:#0f1e35}.btn.private-btn{background:linear-gradient(135deg,#b8d4e8,#7fa8c6);background:linear-gradient(135deg,var(--steel) 0,var(--steel-deep) 100%);border-color:#b8d4e880;box-shadow:0 0 0 1px #b8d4e82e,0 10px 24px #b8d4e83d;color:#10223c}.btn.mode-refresh{min-width:134px}.banner{border-radius:14px;font-size:.93rem;line-height:1.5;margin:0 0 1rem;padding:.9rem 1rem}.banner.error{background:#ff8f9f26;border:1px solid #ff8f9f4d;color:#ffd7de}.banner.info{background:#7ec8e321;border:1px solid #7ec8e34d;color:#d5f3ff}.mode-card{border-width:1px}.quick-mode-card{border-color:#fcdab73d}.quick-mode-card:after{background:radial-gradient(circle,#fcdab733,#0000 68%);border-radius:50%;content:"";height:190px;inset:auto -10% -58% auto;pointer-events:none;position:absolute;width:190px}.public-mode-card{border-color:#7ec8e34d}.public-mode-card:after{background:radial-gradient(circle,#7ec8e338,#0000 68%);border-radius:50%;content:"";height:170px;inset:-52% auto auto -10%;pointer-events:none;position:absolute;width:170px}.empty-state{padding:.85rem 0}.room-list{display:flex;flex-direction:column;gap:.78rem}.room-row{animation:roomIn .34s ease both;background:linear-gradient(135deg,#1e5f7429,#133b5c8c);border:1px solid #fcdab71f;border-radius:16px;box-shadow:0 4px 24px #00000047,inset 0 1px 0 #fcdab71a;gap:.95rem;justify-content:space-between;padding:.9rem 1rem}.room-row,.room-title-row{align-items:center;display:flex}.room-title-row{flex-wrap:wrap;gap:.55rem;margin-bottom:.28rem}.room-title{color:#e9f6ff;font-size:1rem}.room-id{color:#aac9de;word-break:break-all}.search-state{background:linear-gradient(140deg,#243d61bd,#182f4ecc);text-align:center}.room-id-banner{align-items:center;display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin-bottom:.5rem}.room-id-copy{font-size:.82rem;min-height:38px;padding:.35rem .7rem}.join-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.65rem}.private-room-block{border-top:1px dashed #b8d4e859;margin-top:.88rem;padding-top:.75rem}.input{background:linear-gradient(155deg,#1d385ae6,#122742eb);border:1px solid #b8d4e842;border-radius:14px;color:#e6f1fa;color:var(--text);flex:1 1;font-size:1rem;min-height:48px;padding:0 .92rem}.input::placeholder{color:#88a4ba}.input:focus{border-color:#7ec8e3a3;outline:2px solid #7ec8e35c}.lobby-page.page-shell{max-width:none;width:100%}.game.page-shell{max-width:430px}.lobby-stage{margin:0 auto;max-width:452px;padding:1.1rem .75rem .95rem;position:relative;z-index:1}.lobby-decor{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.ambient-glow{border-radius:999px;filter:blur(60px);position:absolute}.ambient-glow-a{background:radial-gradient(circle,#1e5f7457,#0000 67%);height:min(58vw,700px);left:-12vw;opacity:.5;top:-12vh;width:min(58vw,700px)}.ambient-glow-b{background:radial-gradient(circle,#ffffff29 0,#fcdab733 22%,#7ec8e31a 52%,#0000 74%);bottom:-18vh;height:min(84vw,1050px);opacity:.9;right:-12vw;width:min(84vw,1050px)}.ambient-glow-c{background:radial-gradient(circle,#7ec8e324,#0000 72%);height:min(34vw,360px);right:22%;top:26%;width:min(34vw,360px)}.floating-symbol{opacity:.11;position:absolute;will-change:transform}.floating-symbol svg{display:block}.floating-x{color:#fcdab7;color:var(--peach)}.floating-o{color:#7ec8e3;color:var(--sky)}.floating-a{animation:floatSymbolA 5.5s ease-in-out infinite;left:7%;opacity:.14;top:7%}.floating-b{animation:floatSymbolB 6s ease-in-out 1s infinite;opacity:.12;right:7%;top:13%}.floating-c{animation:floatSymbolC 7s ease-in-out 2s infinite;bottom:16%;color:#b8d4e8;color:var(--steel);left:9%}.floating-d{animation:floatSymbolD 4.8s ease-in-out .5s infinite;bottom:8%;color:#e8b98a;color:var(--peach-deep);opacity:.13;right:8%}.floating-e{animation:floatSymbolC 5.5s ease-in-out 1.5s infinite;color:#7ec8e3;color:var(--sky);left:16%;opacity:.09;top:47%}.floating-f{animation:floatSymbolD 6.5s ease-in-out .8s infinite;color:#fcdab7;color:var(--peach);opacity:.09;right:14%;top:68%}.lobby-top-actions{align-items:center;display:flex;gap:.6rem;justify-content:space-between;margin-bottom:.85rem;position:relative;z-index:1}.waiting-top-spacer{height:48px;margin-bottom:.85rem}.menu-home{align-items:center;display:flex;flex-direction:column;gap:.5rem;position:relative;z-index:1}.menu-home .mini-board-logo{height:92px;margin-bottom:.75rem;width:92px}.menu-home .mini-cell svg{height:17px;width:17px}.menu-title{color:#fcdab7;color:var(--peach);font-size:2.1rem;font-weight:900;line-height:1.03;text-shadow:none}.menu-subtitle,.menu-title{letter-spacing:.16em;margin:0;text-transform:uppercase}.menu-subtitle{color:#6a8fa5;color:var(--muted-deep);font-size:.76rem}.menu-card-list{display:flex;flex-direction:column;gap:.76rem;margin-top:.95rem;width:100%}.menu-card{align-items:center;animation:cardIn .38s ease both;background:linear-gradient(135deg,#2a436861,#133b5c9e);border:1px solid #fcdab71f;border-radius:18px;box-shadow:0 4px 24px #00000059,inset 0 1px 0 #fcdab71f;color:inherit;cursor:pointer;display:flex;gap:.72rem;overflow:hidden;padding:1rem .95rem;position:relative;text-align:left;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s cubic-bezier(.22,1,.36,1),border-color .28s ease,background .28s ease;width:100%;will-change:transform,box-shadow}.menu-card:after{content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .28s ease}.menu-card:hover{box-shadow:0 12px 40px #00000080,inset 0 1px 0 #fcdab724,0 0 0 1px #fcdab71f;transform:translateY(-4px) scale(1.024)}.menu-card:active{box-shadow:0 6px 22px #00000057,inset 0 1px 0 #fcdab71f;transform:scale(.982)}.menu-card-quick{animation-delay:.08s;border-color:#fcdab73d}.menu-card-quick:after{background:radial-gradient(ellipse at 20% 50%,#fcdab738 0,#0000 65%)}.menu-card-public{animation-delay:.16s;border-color:#7ec8e347}.menu-card-public:after{background:radial-gradient(ellipse at 20% 50%,#7ec8e333 0,#0000 65%)}.menu-card-private{animation-delay:.24s;border-color:#b8d4e847}.menu-card-private:after{background:radial-gradient(ellipse at 20% 50%,#b8d4e833 0,#0000 65%)}.menu-card:hover:after{opacity:1}.menu-card-icon{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:14px;color:#d8efff;display:flex;flex:0 0 52px;font-size:1rem;font-weight:800;height:52px;justify-content:center;letter-spacing:.08em;transition:background .28s ease,border-color .28s ease,box-shadow .28s ease;width:52px}.menu-card-icon svg{stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;height:24px;width:24px}.menu-card-quick .menu-card-icon{border-color:#fcdab757;color:#fcdab7;color:var(--peach)}.menu-card-public .menu-card-icon{border-color:#7ec8e366;color:#7ec8e3;color:var(--sky)}.menu-card-private .menu-card-icon{border-color:#b8d4e866;color:#b8d4e8;color:var(--steel)}.menu-card-quick:hover{border-color:#fcdab757}.menu-card-public:hover{border-color:#7ec8e361}.menu-card-private:hover{border-color:#b8d4e861}.menu-card-quick:hover .menu-card-icon{background:linear-gradient(135deg,#fcdab72e,#fcdab70f);border-color:#fcdab759;box-shadow:0 0 18px #fcdab729}.menu-card-public:hover .menu-card-icon{background:linear-gradient(135deg,#7ec8e32e,#7ec8e30f);border-color:#7ec8e359;box-shadow:0 0 18px #7ec8e326}.menu-card-private:hover .menu-card-icon{background:linear-gradient(135deg,#b8d4e829,#b8d4e80f);border-color:#b8d4e857;box-shadow:0 0 18px #b8d4e824}.menu-card-content{flex:1 1;min-width:0}.menu-card-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:.46rem;margin-bottom:.14rem}.menu-card-title-row strong{color:#e9f4ff;font-size:1.02rem}.menu-card-content p{color:#a8c4d4;color:var(--muted-soft);font-size:.8rem;line-height:1.4;margin:0}.menu-badge{background:#fcdab724;border:1px solid #fcdab759;border-radius:999px;color:#fcdab7;color:var(--peach);font-size:.58rem;font-weight:700;letter-spacing:.08em;line-height:1;padding:.28rem .45rem;text-transform:uppercase}.menu-card-arrow{align-items:center;color:#3a5a72;color:var(--muted-dark);display:inline-flex;flex:0 0 auto;justify-content:center;transition:transform .18s ease,color .18s ease}.menu-card-arrow svg{stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;height:18px;width:18px}.menu-card:hover .menu-card-arrow{transform:translateX(5px)}.menu-card-quick:hover .menu-card-arrow{color:#fcdab7;color:var(--peach)}.menu-card-public:hover .menu-card-arrow{color:#7ec8e3;color:var(--sky)}.menu-card-private:hover .menu-card-arrow{color:#b8d4e8;color:var(--steel)}.menu-version{color:#3a5a72;color:var(--muted-dark);font-size:.74rem;letter-spacing:.1em;margin:.9rem 0 0}.menu-footer-nav{margin-top:.7rem}.mode-screen{align-items:stretch;animation:screenSlideIn .34s ease;display:flex;flex-direction:column;gap:1rem;margin:0 auto;max-width:384px;position:relative;width:100%;z-index:1}.mode-icon-box{align-items:center;align-self:center;background:linear-gradient(145deg,#39577fb8,#223c60d1);border:1px solid #fff3;border-radius:16px;box-shadow:0 4px 20px #0000004d,inset 0 1px 0 #fcdab71f;display:flex;font-size:1.06rem;font-weight:800;height:64px;justify-content:center;letter-spacing:.08em;width:64px}.mode-icon-box svg{stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;height:28px;width:28px}.mode-icon-quick{border-color:#fcdab766;color:#fcdab7;color:var(--peach)}.mode-icon-public{border-color:#7ec8e366;color:#7ec8e3;color:var(--sky)}.mode-icon-private{border-color:#b8d4e86b;color:#b8d4e8;color:var(--steel)}.mode-screen h2{color:#fcdab7;color:var(--peach);font-size:1.4rem;font-weight:800;letter-spacing:.01em;line-height:1.2;margin:.05rem 0 0;text-align:center;text-shadow:none;text-transform:none}.mode-screen>.muted{color:#a8c4d4;color:var(--muted-soft);font-size:.86rem;line-height:1.5;margin:0 auto;max-width:22rem;text-align:center}.mode-tabs{grid-gap:.42rem;background:#133b5c80;border:1px solid #fcdab71a;border-radius:12px;box-shadow:inset 0 2px 8px #0000004d;display:grid;gap:.42rem;grid-template-columns:1fr 1fr;padding:.26rem}.mode-tab{appearance:none;background:#0000;border:1px solid #0000;border-radius:9px;color:#8ea8bc;cursor:pointer;font-size:.86rem;font-weight:600;min-height:38px;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}.mode-tab.active{background:linear-gradient(135deg,#1e5f74b3,#45688280);border-color:#b8d4e838;box-shadow:0 2px 8px #00000040,inset 0 1px 0 #b8d4e81f;color:#d7edfc;font-weight:700}.mode-tabs-small{margin-bottom:.3rem}.mode-action-block{align-items:center;background:linear-gradient(135deg,#fcdab712,#133b5c94);border:1px solid #fcdab73d;border-radius:14px;display:flex;flex-direction:column;gap:.9rem;justify-content:center;padding:1rem .95rem;text-align:center}.quick-match-main-btn{min-height:50px;width:100%}.mode-footer-row>.btn{align-items:center;display:inline-flex;flex:1 1;justify-content:center}.room-code{color:#d9eeff;font-weight:800;letter-spacing:.05em;margin:0}.room-row-actions{align-items:center;display:flex;gap:.6rem}.room-player-badge{align-items:center;color:#6a8fa5;color:var(--muted-deep);display:inline-flex;font-size:.8rem;gap:.32rem}.room-player-badge svg{stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;height:13px;width:13px}.room-join-btn{min-height:38px;padding:.45rem .82rem}.waiting-room-page{max-width:430px}.waiting-room-list{margin-top:.1rem}.waiting-room-row{align-items:center;gap:.7rem}.waiting-room-code{font-size:.88rem;letter-spacing:.03em;margin:0;overflow-wrap:anywhere}.waiting-copy-btn{align-items:center;background:linear-gradient(135deg,#35567ee6,#234066f2);border:1px solid #7ec8e373;border-radius:10px;color:#dff2ff;cursor:pointer;display:inline-flex;flex:0 0 34px;height:34px;justify-content:center;transition:transform .14s ease,border-color .14s ease;width:34px}.waiting-copy-btn:hover{border-color:#fcdab780;transform:translateY(-1px)}.waiting-copy-hint,.waiting-empty{text-align:center}.waiting-empty{padding-top:.2rem}.queued-search-page{max-width:430px;padding-top:.72rem}.queued-search-screen{align-items:center;display:flex;flex-direction:column;gap:.8rem;padding:.2rem 0 .5rem;text-align:center}.queued-search-badge{align-items:center;background:#283f6473;border:1px solid #fcdab73d;border-radius:999px;color:#fcdab7;color:var(--peach);display:inline-flex;font-size:.8rem;font-weight:800;gap:.42rem;justify-content:center;letter-spacing:.08em;min-height:30px;padding:.3rem .8rem;text-transform:uppercase}.queued-search-badge svg{color:#fcdab7;color:var(--peach);height:14px;width:14px}.queued-search-title{color:#fcdab7;color:var(--peach);font-size:clamp(2.1rem,7vw,3rem);letter-spacing:.1em;line-height:.98;margin:.1rem 0 0;text-transform:uppercase}.queued-search-subtitle{color:#bfd4e5;color:var(--muted-strong);font-size:.98rem;margin:-.15rem 0 0}.queued-matchup-card,.queued-status-card{background:linear-gradient(145deg,#28446ac7,#1b3353db);border-radius:20px;margin-bottom:0;width:100%}.queued-matchup-card{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:1fr auto 1fr;padding:1rem 1rem .92rem}.queued-player-slot{align-items:center;display:flex;flex-direction:column;gap:.36rem}.queued-player-mark{align-items:center;background:linear-gradient(145deg,#3f5f85b3,#264165d1);border:1px solid #ffffff2e;border-radius:15px;box-shadow:inset 0 1px 0 #ffffff29,0 10px 24px #0000003d;display:inline-flex;font-size:2rem;font-weight:800;height:54px;justify-content:center;width:54px}.queued-player-mark-self{color:#fcdab7;color:var(--peach)}.queued-player-mark-opponent{border-color:#7ec8e380;border-style:dashed;color:#7ec8e3;color:var(--sky);position:relative}.queued-player-mark-opponent:before{animation:ringSpin 8s linear infinite;border:1px dashed #7ec8e35c;border-radius:20px;content:"";inset:-7px;position:absolute}.queued-player-name{color:#eff7ff;font-size:1rem;font-weight:700;margin:0}.queued-player-tag{background:#fcdab729;border:1px solid #fcdab733;border-radius:999px;color:#fcdab7;color:var(--peach);font-size:.7rem;min-height:22px;padding:.15rem .45rem;text-transform:uppercase}.queued-player-tag,.queued-vs-chip{align-items:center;display:inline-flex;font-weight:800;justify-content:center;letter-spacing:.08em}.queued-vs-chip{background:#1d304ed6;border:1px solid #b8d4e81f;border-radius:14px;color:#a8c4d4;color:var(--muted-soft);font-size:.9rem;height:42px;width:42px}.queued-typing-dots{display:inline-flex;gap:.3rem}.queued-typing-dots span{animation:cellPulse 1.2s ease-in-out infinite;background:#7ec8e3cc;border-radius:999px;height:7px;width:7px}.queued-typing-dots span:nth-child(2){animation-delay:.18s}.queued-typing-dots span:nth-child(3){animation-delay:.36s}.queued-status-card{padding:.95rem 1rem .92rem}.queued-status-main{justify-content:space-between}.queued-status-copy,.queued-status-main{align-items:center;display:flex;gap:.7rem}.queued-status-copy{text-align:left}.queued-status-icon,.queued-status-time{align-items:center;color:#a8c4d4;color:var(--muted-soft);display:inline-flex;justify-content:center}.queued-status-icon{background:#1c2f4cb8;border:1px solid #b8d4e81f;border-radius:999px;flex:0 0 34px;height:34px;width:34px}.queued-status-time{font-feature-settings:"tnum";color:#9ab3c6;color:var(--muted);font-size:.86rem;font-variant-numeric:tabular-nums;gap:.36rem}.queued-status-icon svg,.queued-status-time svg{stroke:currentColor;stroke-width:1.9;fill:none;height:15px;width:15px}.queued-status-title{color:#eef7ff;font-size:.98rem;font-weight:700;margin:0}.queued-status-subtitle{color:#9ab3c6;color:var(--muted);font-size:.82rem;margin:.12rem 0 0}.queued-status-bar{background:#ffffff14;border-radius:999px;height:4px;margin:.95rem 0 .7rem;overflow:hidden}.queued-status-progress{animation:waitingProgress 2.2s ease-in-out infinite;background:linear-gradient(90deg,#fcdab72e,#fcdab7e6,#7ec8e338);border-radius:inherit;display:block;height:100%;width:36%}.queued-progress-label{color:#6a8fa5;color:var(--muted-deep);font-size:.78rem;font-weight:700;letter-spacing:.12em;margin:0;text-transform:uppercase}.queued-cancel-btn{justify-content:center;margin-top:.15rem;min-height:44px;width:100%}.private-join-form{margin-top:0}.private-create-wrap{display:flex;flex-direction:column;gap:.5rem}.matchmaking-block .btn.secondary{min-width:118px}.matchmaking-spinner{height:96px;position:relative;width:96px}.matchmaking-ring{animation:ringSpin 2s linear infinite;border-bottom:3px solid #0000;border-left:3px solid #0000;border-radius:50%;border-right:3px solid #e8b98a80;border-top:3px solid #fcdab7;border-top-color:var(--peach);inset:0;position:absolute}.matchmaking-ring-inner{animation:ringSpinReverse 3s linear infinite;border-left-color:#fcdab7;border-left-color:var(--peach);border-top-color:#e8b98a8c;inset:8px}.matchmaking-center-icon{align-items:center;color:#fcdab7;color:var(--peach);display:flex;inset:0;justify-content:center;position:absolute}.matchmaking-center-icon svg{fill:none;stroke:currentColor;stroke-width:1.9;height:22px;width:22px}.matchmaking-title{color:#eef4f8;font-weight:700;margin:0}.btn-inline-icon{align-items:center;display:inline-flex;justify-content:center;margin-right:.38rem}.btn-inline-icon svg{stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round;height:14px;width:14px}.menu-back-btn{align-items:center;align-self:center;appearance:none;background:none;border:none;color:#6a8fa5;color:var(--muted-deep);cursor:pointer;display:inline-flex;font-size:.86rem;justify-content:center;margin-top:.15rem;text-decoration:none;transition:color .18s ease}.menu-back-btn:hover{color:#fcdab7;color:var(--peach)}.header-symbol{align-items:center;background:linear-gradient(145deg,#39577fb8,#223c60d1);border:1px solid #ffffff3d;border-radius:14px;box-shadow:inset 0 1px 0 #ffffff29,0 10px 24px #00000052;display:flex;height:54px;justify-content:center;margin:0 auto .85rem;width:54px}.header-symbol svg{height:24px;width:24px}.leaderboard-symbol{border-color:#fcdab761;color:#fcdab7;color:var(--peach)}.waiting-symbol{border-color:#7ec8e366;color:#7ec8e3;color:var(--sky)}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes cellPulse{0%,to{opacity:.88}50%{opacity:1}}@keyframes screenIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes screenSlideIn{0%{opacity:0;transform:translateX(36px)}to{opacity:1;transform:translateX(0)}}@keyframes cardIn{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes roomIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes waitingProgress{0%,to{opacity:.7;transform:translateX(-12%)}50%{opacity:1;transform:translateX(145%)}}@keyframes ringSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes ringSpinReverse{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}@keyframes floatSymbolA{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-14px) rotate(8deg)}}@keyframes floatSymbolB{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(16px) rotate(-7deg)}}@keyframes floatSymbolC{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(10px) rotate(-5deg)}}@keyframes floatSymbolD{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-10px) rotate(12deg)}}.auth-stage{padding-top:1.6rem}.auth-home{gap:.34rem}.auth-logo-board{margin-bottom:.55rem}.auth-title{font-size:1.95rem}.auth-panel{background:linear-gradient(150deg,#2d486dc2,#193151e0);border-color:#b8d4e82e;border-radius:24px;box-shadow:0 22px 42px #0000006b,inset 0 1px 0 #ffffff24;margin-top:1.15rem;max-width:392px;padding:.95rem;width:100%}.auth-card{margin-left:auto;margin-right:auto}.auth-segmented{grid-gap:.34rem;background:#12243dd1;border:1px solid #7ec8e31f;border-radius:16px;box-shadow:inset 0 2px 10px #00000052;display:grid;gap:.34rem;grid-template-columns:1fr 1fr;margin-bottom:1rem;padding:.3rem}.auth-segmented-btn{appearance:none;background:#0000;border:1px solid #0000;border-radius:12px;color:#86a3bb;cursor:pointer;font-size:.93rem;font-weight:700;min-height:34px;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}.auth-segmented-btn.active{background:linear-gradient(135deg,#416181f2,#2c4d71f0);border-color:#7ec8e333;box-shadow:0 6px 16px #0000003d,inset 0 1px 0 #ffffff1f;color:#fcdab7;color:var(--peach)}.auth-error-banner{margin-bottom:.9rem}.auth-form{gap:.86rem}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:.45rem}.auth-label{color:#bfd4e5;color:var(--muted-strong);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.auth-input-shell{align-items:center;background:linear-gradient(155deg,#314c7085,#1c3657a3);border:1px solid #b8d4e838;border-radius:14px;box-shadow:inset 0 1px 0 #ffffff12,0 0 0 #0000;display:flex;min-height:50px;padding:0 .86rem;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.auth-input-shell:focus-within{border-color:#7ec8e37a;box-shadow:0 0 0 3px #7ec8e31a,inset 0 1px 0 #ffffff14}.auth-input-icon,.auth-visibility-toggle{align-items:center;color:#8eabc0;display:inline-flex;flex:0 0 auto;justify-content:center}.auth-input-icon svg,.auth-submit-icon svg,.auth-visibility-toggle svg{stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;height:18px;width:18px}.auth-input{background:#0000;border:none;box-shadow:none;min-height:48px;padding:0 0 0 .7rem}.auth-input:focus{border:none;outline:none}.auth-visibility-toggle{appearance:none;background:none;border:none;cursor:pointer;padding:0}.auth-submit{border-radius:16px;gap:.5rem;margin-top:.2rem;min-height:50px;width:100%}.auth-submit,.auth-submit-icon{align-items:center;display:inline-flex;justify-content:center}.auth-submit-icon{color:#1b2d49}.auth-switch-copy{color:#6a8fa5;color:var(--muted-deep);font-size:.92rem;margin:.45rem 0 0;text-align:center}.auth-switch-link{color:#fcdab7;color:var(--peach);font-weight:800;margin-left:.34rem;text-decoration:none}.footer-nav{display:flex;flex-wrap:wrap;gap:1.25rem;justify-content:center;margin-top:1.45rem;text-align:center}.footer-nav a{color:#d8efff;font-weight:700;letter-spacing:.03em;text-decoration:none}.footer-nav a:hover{color:#fcdab7;color:var(--peach);text-shadow:0 0 12px #fcdab740}.board-card{padding:1.1rem}.game .board{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,min(27vw,108px));grid-template-columns:repeat(3,var(--cell-size));grid-template-rows:repeat(3,min(27vw,108px));grid-template-rows:repeat(3,var(--cell-size));justify-content:center}.game .cell{align-items:center;background:linear-gradient(150deg,#234266e6,#152b49f5);border:1px solid #7ec8e352;border-radius:18px;color:#e6f1fa;color:var(--text);cursor:pointer;display:flex;font-size:clamp(1.9rem,8vw,2.6rem);font-weight:800;height:min(27vw,108px);height:var(--cell-size);justify-content:center;padding:0;transition:transform .14s ease,border-color .16s ease,box-shadow .16s ease;width:min(27vw,108px);width:var(--cell-size)}.game .cell:hover:enabled{border-color:#fcdab785;box-shadow:0 14px 26px #00000057;transform:translateY(-2px)}.game .cell:disabled{cursor:not-allowed;opacity:.95}.game .cell.filled{background:linear-gradient(145deg,#274c75eb,#173150f0)}.game .cell.mark-x{color:#fcdab7;color:var(--peach);text-shadow:0 0 14px #fcdab742}.game .cell.mark-o{color:#7ec8e3;color:var(--sky);text-shadow:0 0 14px #7ec8e342}.timer{font-feature-settings:"tnum";color:#d9efff;font-variant-numeric:tabular-nums;font-weight:800;margin:.52rem 0 0}.timer-urgent{color:#ffc7cf;text-shadow:0 0 10px #ff8f9f54}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08101e9e;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:30}.modal-card{background:linear-gradient(145deg,#224065f7,#142b49fa);border:1px solid #fcdab74d;border-radius:20px;box-shadow:inset 0 1px 0 #fff3,0 24px 44px #0000007a;padding:1.2rem;width:min(100%,430px)}.modal-card h2{color:#fcdab7;color:var(--peach);font-size:1.28rem;margin:0 0 .5rem}.result-actions{margin-top:.95rem}.modal-link-btn{align-items:center;display:inline-flex;justify-content:center;text-decoration:none}.linkish{background:none;border:none;color:#fcdab7;color:var(--peach);cursor:pointer;display:inline;font:inherit;margin:0;padding:0;text-decoration:underline}.table-wrap{background:linear-gradient(145deg,#224066bf,#152c4acc);border:1px solid #7ec8e34d;border-radius:20px;overflow-x:auto}.lb-table{border-collapse:collapse;font-size:.94rem;width:100%}.lb-table td,.lb-table th{border-bottom:1px solid #7ec8e333;padding:.84rem .8rem;text-align:left}.lb-table th{color:#d4ecff;font-weight:700}.lb-table tbody tr:last-child td{border-bottom:none}@media (max-width:720px){.room-row,.section-heading{align-items:stretch;flex-direction:column}.room-row .btn{width:100%}}@media (max-width:520px){.page{padding-top:.95rem}.card{border-radius:22px;padding:1rem}.page-header h1{font-size:clamp(1.78rem,8vw,2.25rem)}}
/*# sourceMappingURL=main.ec728c68.css.map*/