:root{--bg: #14110d;--card: #1e1a14;--card-top: #221d16;--card-bottom: #1a1612;--board: #1a1612;--board-edge: #0e0b08;--cell: #2a241d;--cell-p1: #274944;--cell-p2: #553337;--p1: #2dd4bf;--p1s: #5eead4;--p2: #fb7185;--p2s: #fda4af;--ink: #f4ecd8;--soft: #a89c82;--dim: #6b6252;--quiet: #4a4236;--gold: #fbbf24;--line: rgba(244,236,216,.08);--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);--ease: cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,Segoe UI,Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}body{min-height:100vh}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a{color:var(--gold);text-decoration:none}.mono{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums}.screen{position:relative;min-height:100vh;min-height:100dvh;max-width:560px;margin:0 auto;padding:calc(var(--sat) + 14px) 20px calc(var(--sab) + 22px);display:flex;flex-direction:column;gap:14px}.glow{background:radial-gradient(640px 420px at -10% -10%,#2dd4bf29,#2dd4bf00 60%),radial-gradient(640px 420px at 110% 110%,#fb718524,#fb718500 60%),var(--bg)}.center{align-items:center;justify-content:center;text-align:center}.center-col{align-items:center}.center-text{text-align:center}.spacer{flex:1}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:12px}.row.between{justify-content:space-between}.gap{gap:12px}.gap-s{gap:8px}.grow{flex:1;min-width:0}.right{text-align:right}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.hr{height:1px;background:var(--line)}.small{font-size:11.5px}.muted{color:var(--soft);font-size:14px;line-height:1.55;margin:0}.dim{color:var(--dim)}.gold{color:var(--gold)}.teal{color:var(--p1s)}.rose{color:var(--p2s)}.eyebrow{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--soft);font-weight:600;margin:0}.eyebrow.small{font-size:9px}.h1{margin:0;font-size:22px;font-weight:700;line-height:1.3}.h1.big{font-size:34px;font-weight:800;letter-spacing:-.03em}.h2{margin:0;font-size:23px;font-weight:700;line-height:1.25}.big{font-size:20px;font-weight:700}.huge{font-size:34px;font-weight:700;line-height:1.1}.title{display:block;font-size:15px;font-weight:600}.sub{display:block;font-size:11.5px;color:var(--soft);margin-top:3px}.self-center{align-self:center}.card{background:linear-gradient(180deg,var(--card-top),var(--card-bottom));border:1px solid rgba(244,236,216,.07);border-radius:18px;box-shadow:0 18px 50px #00000073;padding:16px 18px;text-align:left}.card.row{width:100%}.tile{flex:1;padding:15px 16px;gap:11px;font-size:14px;font-weight:600}.ai-card{border-color:#2dd4bf59}.iconbox{width:36px;height:36px;border-radius:12px;background:#2dd4bf1f;display:flex;align-items:center;justify-content:center;flex-shrink:0}.active-match{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:13.5px;border-color:#fbbf244d}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border-radius:14px;padding:14px 16px;font-size:15px;font-weight:600;transition:transform .12s var(--ease),opacity .2s}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.45}.btn-primary{background:linear-gradient(90deg,var(--p1),var(--p2));color:var(--bg);box-shadow:0 12px 34px #fb71852e}.btn-ghost{background:var(--card);border:1px solid var(--line)}.btn-own{background:#2dd4bf1a;border:1px solid rgba(45,212,191,.35);color:var(--p1s)}.btn-danger{background:var(--card);border:1px solid rgba(251,113,133,.3);color:var(--p2s)}.btn-text{color:var(--dim);font-size:13.5px;padding:12px 6px;width:auto}.chip{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:600;color:var(--ink)}.chip.gold{color:var(--gold)}.chip.rose{color:var(--p2s);border-color:#fb718559}.iconbtn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:12px;color:var(--soft)}.switch{width:44px;height:26px;border-radius:13px;background:#2a241d;position:relative;transition:background .2s}.switch i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--soft);transition:transform .2s var(--ease),background .2s}.switch.on{background:#2dd4bf59}.switch.on i{transform:translate(18px);background:var(--p1)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--p1);box-shadow:0 0 8px var(--p1)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.wordmark{font-weight:800}.wordmark.tracked{letter-spacing:.24em;text-transform:uppercase}.z{color:var(--p2)}.user-chip{padding:6px 12px 6px 6px}.logo{margin:0;font-size:44px;font-weight:800;letter-spacing:-.03em;line-height:1}.logo.big{font-size:52px}.pulse{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}.hero{padding-top:4px}.tagline{margin:0;font-size:14px;line-height:1.55;color:var(--soft);max-width:300px}.cta{position:relative;overflow:hidden;width:100%;border-radius:20px;padding:22px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(90deg,#2dd4bf6b,#fb71856b);border:1px solid rgba(244,236,216,.1);transition:transform .12s var(--ease)}.cta:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#14110d26,#14110d73)}.cta>*{position:relative}.cta:active{transform:scale(.985)}.cta-title{font-size:20px;font-weight:700}.cta-sub{font-size:12px;color:#e8dcc4;opacity:.85;margin-top:5px}.stats .grid3{margin-top:12px}.form{display:flex;gap:3px}.form span{width:16px;height:16px;border-radius:5px;display:flex;align-items:center;justify-content:center}.form span svg{stroke-width:2.6}.form .w{background:#2dd4bf33;color:var(--p1s)}.form .l{background:#fb718533;color:var(--p2s)}.settings{display:flex;flex-direction:column;gap:12px;font-size:14px}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.avatar .initial{font-weight:800}.ticks{display:flex;gap:3px;margin-top:5px}.ticks span{width:3px;height:14px;border-radius:2px;transition:background .3s}.level{gap:12px;padding:14px 16px;border:1px solid var(--line)}.level.sel{border-color:#2dd4bf73;box-shadow:0 0 0 1px #2dd4bf40,0 0 30px #2dd4bf1a}.lvl-n{width:30px;height:30px;border-radius:10px;background:#14110d;display:flex;align-items:center;justify-content:center;color:var(--gold);font-weight:700}.seg{display:flex;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:4px}.seg button{flex:1;text-align:center;padding:9px;border-radius:10px;font-size:13px;color:var(--soft)}.seg button.on{background:var(--gold);color:var(--bg);font-weight:700}.seg button .mono{font-size:11px;opacity:.8}.list{padding:6px;display:flex;flex-direction:column;gap:2px}.lrow{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;font-size:14px}.lrow.me{background:#2dd4bf14;border:1px solid rgba(45,212,191,.35);font-weight:700}.lrow.dots{justify-content:center;color:var(--quiet);font-size:11px}.lrow .rank{width:22px;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:12px;font-weight:700}.lrow .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{display:flex;align-items:center;gap:8px}.progress span:not(.mono){flex:1;height:3px;border-radius:2px;background:#2a241d}.progress span.on{background:linear-gradient(90deg,var(--p1),var(--p2))}.tut-board{padding:6px 4px}.tut-svg{display:block;width:100%;height:auto;max-height:calc(100dvh - 330px);min-height:200px;margin:0 auto}.vs-row{display:flex;align-items:center;gap:30px;margin-top:16px}.vs-side{display:flex;flex-direction:column;align-items:center;gap:10px}.vs-side .name{font-size:15px;font-weight:600}.vs-label{font-size:13px;letter-spacing:.2em;color:var(--quiet);font-weight:700}.empty-seat{width:84px;height:84px;border-radius:50%;border:2px dashed var(--quiet);display:flex;align-items:center;justify-content:center;position:relative}.empty-seat>span{position:absolute;inset:-9px;border-radius:50%;border:1.5px solid rgba(251,113,133,.22);animation:ring 2.4s ease-in-out infinite}@keyframes ring{50%{transform:scale(1.08);opacity:.4}}.versus{background:radial-gradient(520px 360px at 0% 30%,rgba(45,212,191,.22),transparent 62%),radial-gradient(520px 360px at 100% 75%,rgba(251,113,133,.22),transparent 62%),var(--bg);justify-content:center}.pcard{position:relative;overflow:hidden;display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:20px;background:linear-gradient(180deg,var(--card-top),var(--card-bottom));border:1px solid var(--line)}.pcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}.pcard.p1:before{background:var(--p1)}.pcard.p2:before{background:var(--p2)}.pcard .title{font-size:20px;font-weight:700}.vs-mid{display:flex;align-items:center;gap:14px;padding:4px}.vs-mid .line{flex:1;height:1px;background:var(--line)}.vs-mid .vs-label{font-size:22px;font-weight:800;letter-spacing:.1em}.countdown{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:30px;min-height:170px}.ring{position:relative;width:128px;height:128px;display:flex;align-items:center;justify-content:center}.ring svg{position:absolute;inset:0}.ring circle{transition:stroke-dashoffset .12s linear}.ring .num{font-size:60px;font-weight:800;letter-spacing:-.04em}.game{gap:8px;padding-top:calc(var(--sat) + 10px)}.pbar{position:relative;overflow:hidden;display:flex;align-items:center;gap:11px;padding:10px 14px;border-radius:16px;background:linear-gradient(180deg,var(--card-top),var(--card-bottom));border:1px solid var(--line);transition:border-color .3s,box-shadow .3s}.pbar .bar-accent{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--pc)}.pbar.active{border-color:color-mix(in srgb,var(--pc) 45%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--pc) 25%,transparent),0 0 30px color-mix(in srgb,var(--pc) 12%,transparent)}.pbar .pname{font-size:14.5px;font-weight:600;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clock{font-size:20px;font-weight:700;margin-left:4px;min-width:52px;text-align:right;transition:color .3s}.clock.low{animation:tick .5s ease-in-out infinite}@keyframes tick{50%{opacity:.55}}.turn-label{text-align:center;font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-weight:700;min-height:14px}.game-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.keys{text-align:center;letter-spacing:.1em}.watchers{display:inline-flex;align-items:center;gap:4px;margin-left:8px;color:var(--soft)}.board-wrap{width:100%;margin:0 auto;display:flex;flex-direction:column;gap:10px}.board{position:relative;background:var(--board);box-shadow:0 0 0 7px var(--board-edge),0 24px 60px #0009;touch-action:none;user-select:none;-webkit-user-select:none;margin:7px auto}.board.shake{animation:shake .26s ease-in-out}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.cell{position:absolute;background:var(--cell)}.cell.goal-top{background:var(--cell-p2)}.cell.goal-bottom{background:var(--cell-p1)}.last-cell{position:absolute;box-shadow:inset 0 0 0 2px #f4ecd838;pointer-events:none}.dot{position:absolute;border-radius:50%;opacity:.35;pointer-events:none;transition:opacity .2s}.dot.on{opacity:.85}.wall{position:absolute;border-radius:4px;pointer-events:none;animation:land .2s var(--ease)}@keyframes land{0%{transform:scale(1.15);opacity:.4}}.ghost{position:absolute;border-radius:4px;background:#a89c8299;border:1px solid rgba(244,236,216,.55);pointer-events:none}.ghost.bad{background:#fb71858c;border-color:var(--p2s)}.pawn{position:absolute;border-radius:50%;border:2.5px solid var(--card);pointer-events:none;transition:left .14s var(--ease),top .14s var(--ease)}.pawn.win{animation:winpulse 1.1s ease-out infinite;z-index:2}@keyframes winpulse{0%{box-shadow:0 0 #ffffff8c,0 0 18px currentColor}to{box-shadow:0 0 0 26px #fff0,0 0 18px currentColor}}.finish{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:finishout .35s ease-in 2.85s both}.finish-scrim{position:absolute;inset:0;background:#14110d9e;animation:finishin .45s ease-out both}.finish-ring{position:absolute;width:120px;height:120px;border-radius:50%;border:3px solid;opacity:0;animation:ringout 1.3s cubic-bezier(.16,.84,.44,1) .15s both}.finish-ring.second{animation-delay:.45s;animation-duration:1.5s;border-width:2px}@keyframes ringout{0%{transform:scale(.2);opacity:.9}to{transform:scale(7);opacity:0}}.finish-plate{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 26px 28px;border-radius:24px;border:1px solid;background:#1a1612f0;width:min(92vw,420px);overflow:hidden;animation:platein .7s cubic-bezier(.22,1,.36,1) .25s both}@keyframes platein{0%{transform:scale(.72) translateY(18px);opacity:0;filter:blur(8px)}60%{transform:scale(1.03) translateY(0);opacity:1;filter:blur(0)}to{transform:scale(1)}}.finish-word{font-size:clamp(22px,7.2vw,36px);font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding-left:.1em;text-align:center;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;animation:wordin .9s cubic-bezier(.22,1,.36,1) .45s both}@keyframes wordin{0%{letter-spacing:.35em;opacity:0;filter:blur(6px)}to{letter-spacing:.1em;opacity:1;filter:blur(0)}}.finish-sub{font-size:14px;color:var(--soft);text-align:center;animation:finishin .5s ease-out .95s both}.finish-bar{height:3px;width:0;border-radius:2px;margin-top:4px;animation:barin .8s cubic-bezier(.22,1,.36,1) .75s both}@keyframes barin{0%{width:0;opacity:0}to{width:72px;opacity:1}}.finish-icon{filter:drop-shadow(0 0 14px currentColor);animation:pop .6s var(--ease) .4s both}.finish-icon.flag{transform-origin:5px 21px;animation:flagraise .9s var(--ease) .4s both}.finish-icon.flag .cloth{transform-origin:5px 4px;animation:wave 1.1s ease-in-out 1.3s infinite}@keyframes flagraise{0%{transform:translateY(40px) rotate(-25deg);opacity:0}60%{transform:translateY(-6px) rotate(6deg);opacity:1}to{transform:translateY(0) rotate(0);opacity:1}}@keyframes wave{0%,to{transform:skewY(0)}50%{transform:skewY(-7deg) scaleX(.96)}}.finish-icon.clock .hand{transform-origin:12px 12px;animation:spinhand 1.2s cubic-bezier(.5,0,.5,1) .8s 2}@keyframes spinhand{to{transform:rotate(360deg)}}.finish-icon.goal{animation:trophy 1s cubic-bezier(.22,1,.36,1) .4s both}@keyframes trophy{0%{transform:translateY(30px) scale(.6);opacity:0}55%{transform:translateY(-8px) scale(1.1);opacity:1}to{transform:translateY(0) scale(1)}}@keyframes finishin{0%{opacity:0}to{opacity:1}}@keyframes finishout{to{opacity:0;transform:scale(1.04)}}@keyframes pop{0%{transform:scale(.55);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}.result{animation:resultin .55s cubic-bezier(.22,1,.36,1) both}.result>*{animation:rise .6s cubic-bezier(.22,1,.36,1) both}.result>*:nth-child(1){animation-delay:.05s}.result>*:nth-child(2){animation-delay:.15s}.result>*:nth-child(3){animation-delay:.25s}.result>*:nth-child(4){animation-delay:.35s}.result>*:nth-child(5){animation-delay:.45s}@keyframes resultin{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.you-tag{color:var(--dim);font-weight:500;margin-left:6px}.game.celebrating .board{filter:saturate(.8) brightness(.85);transition:filter .6s}.game.celebrating .turn-label,.game.celebrating .game-foot,.game.celebrating .tray{visibility:hidden}.tray{display:flex;align-items:center;justify-content:center;gap:22px;padding:12px 18px;border-radius:18px;background:linear-gradient(180deg,var(--card-top),var(--card-bottom));border:1px solid var(--line);transition:opacity .3s}.tray.idle{opacity:.55}.piece{width:84px;height:56px;border-radius:14px;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;touch-action:none;transition:border-color .2s,box-shadow .2s}.piece:disabled{opacity:.35}.piece.armed{border-color:var(--p1);box-shadow:0 0 0 1px #2dd4bf59,0 0 22px #2dd4bf33}.piece-h{display:block;width:54px;height:8px;border-radius:4px}.piece-v{display:block;width:8px;height:40px;border-radius:4px}.tray-count{text-align:center;min-width:52px}.tray-count .count{font-size:22px;font-weight:700}.result{gap:18px}.result-head{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding-top:24px}.result-card{display:flex;flex-direction:column;gap:16px;padding:20px 22px;border-radius:22px}.loser-row{padding:13px 16px;font-size:14px}@media (min-width: 700px){.screen{padding-top:24px}.game .board{margin:8px auto}}@media (max-height: 720px){.screen{gap:10px;padding-top:calc(var(--sat) + 10px);padding-bottom:calc(var(--sab) + 14px)}.hero{padding-top:0}.logo{font-size:32px}.tagline{margin-top:8px;font-size:13px}.cta{padding:16px 20px}.cta-title{font-size:18px}.card{padding:13px 16px}.stats .grid3{margin-top:8px}.h2{font-size:20px}.muted{font-size:13px}.tut-board{padding:0}.countdown{margin-top:12px;min-height:120px}.result-head{padding-top:6px}.vs-row{margin-top:4px}.pcard{padding:12px 16px}}@media (prefers-reduced-motion: reduce){.pawn,.wall,.cta,.btn{transition:none;animation:none}}
