:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#182229;--muted:#66717a;--paper:#fff8ec;--paper-strong:#fffdf7;--line:#21313b;--blue:#1767d2;--blue-deep:#0b3e8a;--red:#f04438;--yellow:#ffd33d;--mint:#3ed8a7;--wood:#c9873e;--shadow:0 18px 44px #1f242a2e;--radius:8px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--ink);background-color:#f2b65b;background-image:linear-gradient(90deg,#fff3 1px,#0000 1px),linear-gradient(#ffffff2e 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:34px 34px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}.brand-lockup,.rail-brand{letter-spacing:0;align-items:center;gap:10px;font-weight:900;display:inline-flex}.brand-mark{border:3px solid var(--ink);background:var(--yellow);width:38px;height:38px;box-shadow:4px 4px 0 var(--ink);border-radius:50%;place-items:center;font-size:.76rem;display:grid}.primary-button,.ghost-button,.icon-text-button,.icon-button{border:2px solid var(--ink);border-radius:var(--radius);min-height:42px;color:var(--ink);box-shadow:3px 3px 0 var(--ink);transition:transform .15s,box-shadow .15s,background .15s}.primary-button:hover,.ghost-button:hover,.icon-text-button:hover,.icon-button:hover{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.primary-button:active,.ghost-button:active,.icon-text-button:active,.icon-button:active,.reaction-button:active,.rail-game:not(:disabled):active,.mode-button:not(:disabled):active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)scale(.99)}.primary-button:disabled:hover,.ghost-button:disabled:hover,.icon-text-button:disabled:hover,.icon-button:disabled:hover{box-shadow:3px 3px 0 var(--ink);transform:none}.primary-button{background:var(--mint);justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:900;display:inline-flex}.ghost-button,.icon-text-button,.icon-button{background:var(--paper-strong)}.icon-button{place-items:center;width:44px;height:44px;padding:0;display:grid}.icon-text-button{align-items:center;gap:8px;padding:0 13px;font-weight:800;display:inline-flex}.lobby-shell{width:min(1240px,100vw - 32px);margin:0 auto;padding:20px 0 34px}.lobby-topbar,.room-topbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar-actions,.feature-row{flex-wrap:wrap;gap:10px;display:flex}.topbar-actions span,.feature-row span{background:#fffdf7c2;border:2px solid #182229d1;border-radius:999px;align-items:center;gap:7px;min-height:34px;padding:0 11px;font-size:.88rem;font-weight:800;display:inline-flex}.lobby-stage{grid-template-columns:minmax(280px,.82fr) minmax(360px,1.42fr);align-items:start;gap:clamp(22px,3vw,42px);min-height:calc(100vh - 86px);padding-top:clamp(10px,2.4vh,24px);padding-bottom:clamp(18px,4vh,34px);display:grid}.lobby-copy h1{letter-spacing:0;text-wrap:balance;margin:0;font-size:clamp(3rem,9vw,7.5rem);line-height:.82}.lobby-copy p{color:#303b43;max-width:500px;margin:26px 0 22px;font-size:1.18rem;font-weight:650;line-height:1.45}.game-library{align-self:start;gap:12px;min-height:0;display:grid}.library-heading{justify-content:space-between;align-items:center;gap:14px;padding-inline:4px;display:flex}.library-heading>div{gap:4px;display:grid}.library-heading span{color:#334049;text-transform:uppercase;font-size:.82rem;font-weight:900}.library-heading strong{font-size:1.3rem;line-height:1}.game-search{border:2px solid var(--ink);border-radius:var(--radius);min-width:min(230px,44vw);min-height:42px;box-shadow:3px 3px 0 var(--ink);background:#fffdf7e0;align-items:center;gap:7px;padding:0 11px;display:flex}.game-search input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-weight:850}.game-search input::placeholder{color:#1822297a}.game-category-tabs{scrollbar-color:var(--ink) transparent;gap:8px;padding:2px 4px 8px;display:flex;overflow-x:auto}.category-tab,.option-chip{border:2px solid var(--ink);border-radius:var(--radius);background:var(--paper-strong);min-height:34px;color:var(--ink);box-shadow:2px 2px 0 var(--ink);font-size:.78rem;font-weight:950;transition:transform .14s,box-shadow .14s,background .14s}.category-tab{flex:none;padding:0 12px}.category-tab.active,.option-chip.active{background:var(--yellow)}.category-tab:not(.active):hover,.option-chip:not(.active):hover{box-shadow:1px 1px 0 var(--ink);transform:translate(1px,1px)}.game-stack{scrollbar-color:var(--ink) #fffdf79e;grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));gap:13px;min-height:0;max-height:min(720px,100vh - 184px);padding:4px 8px 10px 4px;display:grid;overflow:auto}.game-poster{border:3px solid var(--ink);border-radius:var(--radius);background:var(--paper-strong);min-height:152px;box-shadow:6px 6px 0 var(--ink);grid-template-columns:132px minmax(0,1fr);grid-template-areas:"preview copy""preview actions";align-items:center;gap:12px 16px;padding:16px;display:grid}.game-poster>:first-child{grid-area:preview}.game-copy{grid-area:copy;min-width:0}.game-poster h2{margin:0 0 6px;font-size:clamp(1.12rem,2vw,1.34rem);line-height:1.05}.game-poster p{color:var(--muted);margin:0;font-weight:680;line-height:1.35}.game-badges{flex-wrap:wrap;gap:6px;margin-bottom:7px;display:flex}.game-badge{text-transform:uppercase;white-space:nowrap;background:#3ed8a738;border:2px solid #182229cc;border-radius:999px;place-items:center;min-height:24px;padding:0 7px;font-size:.68rem;font-weight:950;display:inline-grid}.poster-actions{flex-wrap:wrap;grid-area:actions;align-items:center;gap:10px;min-width:0;display:flex}.poster-actions .primary-button,.poster-actions .ghost-button{flex:112px}.poster-actions .ghost-button{justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 12px;font-weight:950;display:inline-flex}.mini-connect{border:3px solid var(--ink);border-radius:var(--radius);background:var(--blue);grid-template-columns:repeat(7,1fr);gap:5px;width:100%;padding:10px;display:grid;box-shadow:inset 0 -8px #00000029}.mini-connect span{aspect-ratio:1;background:var(--paper);border:2px solid var(--blue-deep);border-radius:50%}.mini-connect .red{background:var(--red)}.mini-connect .yellow{background:var(--yellow)}.mini-tic{aspect-ratio:1;border:3px solid var(--ink);border-radius:var(--radius);background:#fffaf0;grid-template-columns:repeat(3,1fr);width:100%;padding:6px;display:grid;rotate:-2deg}.mini-tic span{color:#df3c31;border:2px solid #263039;place-items:center;font-family:Trebuchet MS,cursive;font-size:1.7rem;font-weight:900;display:grid}.mini-gomoku{aspect-ratio:1;border:3px solid var(--ink);border-radius:var(--radius);background-color:#ca8842;background-image:linear-gradient(90deg,#46270e61 1px,#0000 1px),linear-gradient(#46270e61 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:16.6667% 16.6667%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;grid-template-columns:repeat(7,1fr);width:100%;padding:8px;display:grid}.mini-gomoku span{position:relative}.mini-gomoku .black:after,.mini-gomoku .white:after{content:"";background:#111;border-radius:50%;position:absolute;inset:18%;box-shadow:0 2px 3px #0000004d}.mini-gomoku .white:after{background:#fff9ea;border:1px solid #00000042}.mini-ultimate,.mini-dots,.mini-battleship,.mini-checkers,.mini-hex,.mini-mancala,.mini-last-card,.mini-flappy,.mini-snake,.mini-twenty{aspect-ratio:1;border:3px solid var(--ink);border-radius:var(--radius);background:var(--paper);width:100%;display:grid;overflow:hidden}.mini-ultimate{background:linear-gradient(90deg, transparent 32%, var(--ink) 32% 34%, transparent 34% 65%, var(--ink) 65% 67%, transparent 67%), linear-gradient(transparent 32%, var(--ink) 32% 34%, transparent 34% 65%, var(--ink) 65% 67%, transparent 67%), #fffaf0;grid-template-columns:repeat(9,1fr)}.mini-ultimate span{border:1px solid #18222947;place-items:center;display:grid}.mini-ultimate .x:after,.mini-ultimate .o:after{content:"X";color:var(--red);font-size:.8rem;font-weight:950}.mini-ultimate .o:after{content:"O";color:var(--blue)}.mini-dots{background:#fffdf7;grid-template-columns:repeat(5,1fr);place-items:center}.mini-dots span{background:var(--ink);border-radius:50%;width:8px;height:8px}.mini-dots .line{background:var(--blue);border-radius:999px;width:70%;height:5px}.mini-battleship,.mini-hex{background:#88d8ef;grid-template-columns:repeat(7,1fr);gap:2px;padding:6px}.mini-battleship span,.mini-hex span{background:#ffffff47;border:1px solid #1822293d}.mini-battleship .hit{background:var(--red)}.mini-battleship .miss{background:#fff;border-radius:50%}.mini-checkers{background:#fffaf0;grid-template-columns:repeat(8,1fr)}.mini-checkers span:nth-child(2n){background:#5b351d}.mini-checkers .red:after,.mini-checkers .black:after,.mini-hex .p1:after,.mini-hex .p2:after{content:"";background:var(--red);border-radius:50%;width:72%;height:72%;margin:14%;display:block}.mini-checkers .black:after,.mini-hex .p2:after{background:#111}.mini-last-card{background:radial-gradient(circle at 18% 18%,#ffffff57 0 12%,#0000 13%),#27405f;display:block;position:relative}.mini-last-card .card{border:3px solid var(--ink);color:#fffdf7;border-radius:7px;place-items:center;width:34%;height:50%;font-size:1rem;font-weight:950;display:grid;position:absolute;box-shadow:3px 3px #1822299e}.mini-last-card .red{background:#e94335;top:14%;left:13%;rotate:-11deg}.mini-last-card .yellow{color:var(--ink);background:#f2c32c;top:22%;left:34%;rotate:5deg}.mini-last-card .green{background:#20a96b;top:35%;left:20%;rotate:8deg}.mini-last-card .blue,.mini-last-card .wild{background:#2674d9;top:30%;right:12%;rotate:-7deg}.mini-last-card .wild{background:radial-gradient(ellipse at center, #fffdf7d1 0 34%, transparent 35%), conic-gradient(from 45deg, #e94335 0 25%, #f2c32c 0 50%, #20a96b 0 75%, #2674d9 0);color:var(--ink)}.mini-mancala{background:#c9873e;grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(7,1fr);gap:5px;padding:8px}.mini-mancala span{background:#f8c873;border:2px solid #5c3415;border-radius:50%;place-items:center;font-size:.72rem;font-weight:900;display:grid}.mini-flappy{background:radial-gradient(circle at 24% 24%,#fff 0 10%,#0000 11%),radial-gradient(circle at 35% 22%,#fff 0 13%,#0000 14%),#73d7ff;display:block;position:relative}.mini-flappy .mini-bird{border:3px solid var(--ink);background:var(--yellow);border-radius:52% 48% 45% 55%;width:28px;height:22px;position:absolute;top:43%;left:22%}.mini-flappy .mini-bird:after{border:2px solid var(--ink);content:"";background:#ff9a3d;border-left:0;width:12px;height:8px;position:absolute;top:7px;right:-9px}.mini-flappy .mini-pipe{background:#35c658;border:3px solid #0c6c33;width:28px;position:absolute;right:24%;box-shadow:inset -5px 0 #ffffff3d}.mini-flappy .mini-pipe.top{height:35%;top:0}.mini-flappy .mini-pipe.bottom{height:28%;bottom:16%}.mini-flappy .mini-ground{border-top:3px solid var(--ink);background:repeating-linear-gradient(90deg,#d79b43 0 14px,#f4cd76 14px 28px);height:16%;position:absolute;inset:auto 0 0}.mini-snake{background:#214c3c;grid-template-columns:repeat(8,1fr);gap:3px;padding:7px}.mini-snake span{background:#ffffff1a;border-radius:3px}.mini-snake .body{background:var(--mint);box-shadow:inset 0 -3px #18222938}.mini-snake .food{background:var(--red);border-radius:50%}.mini-twenty{background:#8a6640;grid-template-columns:repeat(4,1fr);gap:5px;padding:7px}.mini-twenty span{background:#d8b982;border:2px solid #18222957;border-radius:6px;place-items:center;font-size:.7rem;font-weight:950;display:grid}.mini-twenty .filled{background:var(--yellow)}.room-shell{grid-template-columns:190px minmax(0,1fr) 330px;gap:18px;min-height:100vh;padding:18px;display:grid;position:relative;overflow:hidden}.game-rail,.chat-panel{z-index:2;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffdf7e0;position:relative}.game-rail{flex-direction:column;gap:14px;max-height:calc(100vh - 36px);padding:14px;display:flex;overflow:hidden}.home-button{border:2px solid var(--ink);width:42px;height:42px;color:inherit;background:var(--mint);box-shadow:3px 3px 0 var(--ink);border-radius:50%;place-items:center;display:grid}.rail-brand{flex-direction:column;align-items:flex-start}.rail-games{scrollbar-color:var(--ink) transparent;align-content:start;gap:8px;min-height:0;padding-right:2px;display:grid;overflow:auto}.rail-game{border-radius:var(--radius);min-height:52px;color:var(--ink);text-align:left;background:0 0;border:2px solid #0000;grid-template-columns:28px 1fr;align-items:center;gap:10px;padding:9px;font-weight:850;display:grid}.rail-game.active{border-color:var(--ink);background:var(--yellow)}.rail-game:disabled{cursor:not-allowed}.rail-game:disabled:not(.active){opacity:.42}.rail-icon{border:2px solid var(--ink);width:26px;height:26px}.rail-icon.four-in-a-row{background:var(--blue);border-radius:6px}.rail-icon.tic-tac-toe{background:linear-gradient(90deg, transparent 31%, var(--ink) 31% 37%, transparent 37% 63%, var(--ink) 63% 69%, transparent 69%), linear-gradient(transparent 31%, var(--ink) 31% 37%, transparent 37% 63%, var(--ink) 63% 69%, transparent 69%), #fffaf0}.rail-icon.gomoku{background:radial-gradient(circle,#111 0 33%,#fff9ea 34% 56%,#c9873e 57%);border-radius:50%}.rail-icon.ultimate-tic-tac-toe{background:linear-gradient(90deg, transparent 28%, var(--ink) 28% 34%, transparent 34% 64%, var(--ink) 64% 70%, transparent 70%), linear-gradient(transparent 28%, var(--ink) 28% 34%, transparent 34% 64%, var(--ink) 64% 70%, transparent 70%), #fffaf0}.rail-icon.dots-and-boxes{background:radial-gradient(circle, var(--ink) 0 18%, transparent 20%) 0 0 / 50% 50%, linear-gradient(var(--blue), var(--blue)) 50% 50% / 70% 5px no-repeat, #fffdf7}.rail-icon.reversi{background:radial-gradient(circle at 36%,#111 0 27%,#0000 28%),radial-gradient(circle at 68%,#fff9ea 0 27%,#0000 28%),#20805a;border-radius:50%}.rail-icon.checkers{background:linear-gradient(45deg,#704222 25%,#f8dcae 25% 50%,#704222 50% 75%,#f8dcae 75%) 0 0/14px 14px}.rail-icon.battleship{background:linear-gradient(var(--red), var(--red)) 48% 50% / 16px 5px no-repeat, #88d8ef}.rail-icon.mancala{background:radial-gradient(circle at 30% 35%,#f8c873 0 16%,#0000 17%),radial-gradient(circle at 68% 65%,#f8c873 0 16%,#0000 17%),#c9873e;border-radius:999px}.rail-icon.hex{clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);background:linear-gradient(90deg, var(--red) 0 45%, #f0c477 45% 55%, #111 55%)}.rail-icon.nine-mens-morris{background:radial-gradient(circle at 15% 15%,#111 0 10%,#0000 11%),radial-gradient(circle at 50% 15%,#fff9ea 0 10%,#0000 11%),radial-gradient(circle at 85% 15%,#111 0 10%,#0000 11%),linear-gradient(90deg,#0000 12%,#5c3415 12% 17%,#0000 17% 83%,#5c3415 83% 88%,#0000 88%),linear-gradient(#0000 12%,#5c3415 12% 17%,#0000 17% 83%,#5c3415 83% 88%,#0000 88%),#d99749}.rail-icon.last-card{background:linear-gradient(27deg,#0000 0 34%,#e94335 35% 56%,#0000 57%),linear-gradient(-24deg,#0000 0 34%,#2674d9 35% 58%,#0000 59%),linear-gradient(90deg,#f2c32c 0 48%,#20a96b 48% 100%);border-radius:6px}.rail-icon.flappy-bird{background:radial-gradient(circle at 33% 53%, var(--yellow) 0 18%, transparent 19%), linear-gradient(#35c658, #35c658) 78% 0 / 18% 34% no-repeat, linear-gradient(#35c658, #35c658) 78% 76% / 18% 30% no-repeat, #73d7ff;border-radius:6px}.rail-icon.snake{background:radial-gradient(circle at 72% 30%, var(--red) 0 10%, transparent 11%), linear-gradient(90deg, var(--mint) 0 70%, transparent 70%) 18% 58% / 54% 20% no-repeat, linear-gradient(var(--mint), var(--mint)) 18% 38% / 18% 36% no-repeat, #214c3c;border-radius:6px}.rail-icon.twenty-forty-eight{background:var(--yellow);border-radius:6px;place-items:center;display:grid}.rail-icon.twenty-forty-eight:after{color:var(--ink);content:"2";font-size:.9rem;font-weight:950}.play-column{z-index:1;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;min-width:0;display:grid;position:relative}.board-size-toolbar{border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);background:#fffdf7e0;justify-content:center;gap:8px;margin-bottom:-8px;padding:8px;display:flex}.room-topbar{border:3px solid var(--ink);border-radius:var(--radius);min-height:72px;box-shadow:var(--shadow);background:#fffdf7e0;padding:12px 14px}.room-topbar p{color:var(--muted);text-transform:uppercase;margin:0 0 3px;font-size:.82rem;font-weight:850}.room-topbar h1{margin:0;font-size:clamp(1.45rem,4vw,2.3rem);line-height:1}.status-chip{border:2px solid var(--ink);background:var(--paper);text-align:center;border-radius:999px;min-width:136px;padding:10px 12px;font-weight:900}.status-chip.connection-connecting,.status-chip.connection-reconnecting{background:var(--yellow)}.status-chip.connection-reconnecting{animation:1.1s ease-in-out infinite reconnect-pulse}.board-stage{align-self:stretch;place-items:center;width:100%;min-height:clamp(340px,64vh,760px);padding:clamp(12px,2vw,18px);display:grid;overflow:hidden}.bot-move-stage{animation:.48s ease-out both table-nudge}.connect-board{--columns:7;grid-template-columns:repeat(var(--columns), 1fr);aspect-ratio:7/6;border:clamp(5px, .9vw, 9px) solid var(--blue-deep);border-radius:var(--radius);background:linear-gradient(#2479ec, var(--blue));width:min(100%,760px,116vh - 255.2px);box-shadow:0 16px 0 var(--blue-deep), 0 24px 35px #0f1c2f47, inset 0 -20px 0 #0000001f;gap:clamp(7px,1.1vw,12px);padding:clamp(14px,2vw,24px);display:grid}.connect-column{background:0 0;border:0;grid-template-rows:repeat(6,minmax(0,1fr));gap:clamp(7px,1.1vw,12px);min-width:0;min-height:0;padding:0;display:grid}.connect-column:not(:disabled):hover .connect-slot:first-child span{transform:translateY(-3px)}.connect-column:disabled,.tic-board button:disabled,.gomoku-board button:disabled{cursor:default;opacity:1}.connect-slot{aspect-ratio:1;background:var(--blue-deep);border-radius:50%;place-items:center;min-width:0;display:grid}.connect-slot span{background:var(--paper);border-radius:50%;width:78%;height:78%;box-shadow:inset 0 7px 8px #0003}.connect-slot.p1 span{background:radial-gradient(circle at 34% 28%, #ff9d87, var(--red) 58%, #be2020 100%)}.connect-slot.p2 span{background:radial-gradient(circle at 34% 28%, #fff49a, var(--yellow) 58%, #d59b08 100%)}.connect-slot.win span,.tic-board .win,.gomoku-board .win span{outline:4px solid var(--mint);outline-offset:2px}.tic-board{grid-template-columns:repeat(var(--board-columns,3), 1fr);grid-template-rows:repeat(var(--board-columns,3), minmax(0, 1fr));width:min(100%, var(--square-board-max,560px), calc(100vh - 230px));aspect-ratio:1;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:10px 12px 0 var(--ink);background:#fffaf0;padding:clamp(10px,2vw,20px);display:grid;rotate:-1deg;container-type:inline-size}.tic-board button{color:#e33e36;min-width:0;min-height:0;font-family:Trebuchet MS,cursive;font-size:clamp(1.4rem, calc(72cqi / var(--board-columns,3)), 6rem);text-align:center;background:0 0;border:2px solid #202b32;place-items:center;font-weight:900;line-height:1;display:grid;overflow:hidden}.tic-mark{aspect-ratio:1;width:63%;display:block;position:relative}.tic-mark.p1:before,.tic-mark.p1:after{content:"";background:#e33e36;border-radius:999px;width:16%;height:112%;position:absolute;top:-6%;left:43%}.tic-mark.p1:before{transform:rotate(45deg)}.tic-mark.p1:after{transform:rotate(-45deg)}.tic-mark.p2{border:clamp(3px, calc(8cqi / var(--board-columns,3)), 10px) solid var(--blue);border-radius:50%;width:57%}.gomoku-board{aspect-ratio:1;border-radius:var(--radius);width:min(100%,660px,100vh - 230px);box-shadow:10px 14px 0 var(--ink);background-color:#0000;background-image:linear-gradient(90deg,#43250d8a 1px,#0000 1px),linear-gradient(#43250d8a 1px,#0000 1px),linear-gradient(135deg,#d99749,#bd7331);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:7.14286% 7.14286%;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:4px solid #5c3415;grid-template-rows:repeat(15,minmax(0,1fr));grid-template-columns:repeat(15,1fr);padding:18px;display:grid}.variant-classic{--square-board-max:560px;--large-board-max:690px}.variant-wide{--square-board-max:640px;--large-board-max:780px}.variant-party{--square-board-max:700px;--large-board-max:820px}.ultimate-board{grid-template-columns:repeat(var(--board-columns,9), 1fr);grid-template-rows:repeat(var(--board-columns,9), minmax(0, 1fr));width:min(100%, var(--large-board-max,690px), calc(100vh - 220px));aspect-ratio:1;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:10px 12px 0 var(--ink);background:#fffaf0;padding:12px;display:grid;container-type:inline-size}.ultimate-board button{min-width:0;min-height:0;color:var(--red);font-family:Trebuchet MS,cursive;font-size:clamp(.82rem, calc(70cqi / var(--board-columns,9)), 3.2rem);background:0 0;border:1px solid #18222938;place-items:center;font-weight:950;line-height:1;display:grid;overflow:hidden}.ultimate-board button:nth-child(odd){color:var(--blue)}.ultimate-board .tic-mark.p2{border-width:clamp(2px, calc(8cqi / var(--board-columns,9)), 7px)}.ultimate-board .active-mini:not(:disabled){background:#3ed8a729}.ultimate-board .claimed-mini{background:#18222914}.dots-wrap,.battleship-wrap{width:min(100%, var(--large-board-max,660px), calc(100vh - 300px));gap:12px;display:grid}.dots-score,.fleet-status{justify-content:center;gap:10px;font-weight:900;display:flex}.dots-score span,.fleet-status span{border:2px solid var(--ink);background:var(--paper-strong);border-radius:999px;padding:7px 10px}.dots-board{grid-template-columns:repeat(var(--dots-grid), 1fr);grid-template-rows:repeat(var(--dots-grid), minmax(0, 1fr));aspect-ratio:1;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:10px 12px 0 var(--ink);background:#fffdf7;padding:16px;display:grid}.dot-node,.dot-box,.dot-edge{place-items:center;min-width:0;min-height:0;display:grid}.dot-node:after{aspect-ratio:1;background:var(--ink);content:"";border-radius:50%;width:42%}.dot-edge{background:0 0;border:0}.dot-edge:after{content:"";background:#18222929;border-radius:999px}.dot-edge.horizontal:after{width:100%;height:8px}.dot-edge.vertical:after{width:8px;height:100%}.dot-edge.drawn:after{background:var(--blue)}.dot-box{border-radius:6px}.dot-box.almost{outline-offset:-5px;background:repeating-linear-gradient(45deg,#ffd33d6b 0 7px,#ffd33d1a 7px 14px);outline:2px dashed #1822295c}.dot-box.p1{background:#1767d247}.dot-box.p2{background:#f0443847}.reversi-board,.checkers-board,.battleship-board,.hex-board,.morris-board{aspect-ratio:1;border:4px solid var(--ink);border-radius:var(--radius);width:min(100%,640px,100vh - 230px);box-shadow:10px 12px 0 var(--ink);display:grid;overflow:hidden}.reversi-board,.checkers-board{grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,1fr)}.battleship-board{background:#88d8ef;grid-template-rows:repeat(10,minmax(0,1fr));grid-template-columns:repeat(10,1fr);width:min(100%,620px,100vh - 250px);position:relative}.hex-board{background:#21313b;grid-template-rows:repeat(11,minmax(0,1fr));grid-template-columns:repeat(11,1fr);gap:2px;padding:9px}.morris-board{background:linear-gradient(90deg,#0000 12%,#5c3415 12% 14%,#0000 14% 86%,#5c3415 86% 88%,#0000 88%),linear-gradient(#0000 12%,#5c3415 12% 14%,#0000 14% 86%,#5c3415 86% 88%,#0000 88%),#d99749;grid-template-rows:repeat(7,minmax(0,1fr));grid-template-columns:repeat(7,1fr);padding:14px}.reversi-board{background:#20805a}.reversi-board button,.checkers-board button,.battleship-board button,.hex-board button,.morris-board button{border:1px solid #18222947;place-items:center;min-width:0;min-height:0;display:grid;overflow:hidden}.reversi-board button{background:0 0}.reversi-board button span,.hex-board button span,.morris-board button span{border-radius:50%;width:72%;height:72%}.reversi-board .p1 span,.hex-board .p1 span,.morris-board .p1 span{background:#111;box-shadow:0 3px 4px #00000057}.reversi-board .p2 span,.hex-board .p2 span,.morris-board .p2 span{background:#fff8e6;border:1px solid #00000042}.checkers-board .light{background:#f8dcae}.checkers-board .dark{background:#704222}.checkers-board button span{border-radius:50%;width:72%;height:72%;box-shadow:inset 0 -5px #00000029,0 3px 4px #00000040}.checkers-board .p1 span{background:var(--red)}.checkers-board .p2 span{background:#151515}.checkers-board .king span:after{height:100%;color:var(--yellow);content:"K";place-items:center;font-size:.78rem;font-weight:950;display:grid}.checkers-board .selected,.morris-board .selected{outline:4px solid var(--mint);outline-offset:-5px}.battleship-board button{z-index:1;color:var(--ink);background:#ffffff2e;font-weight:950;position:relative}.battleship-board .hit{background:var(--red)}.battleship-board .miss{background:#fff}.ship-reveal{z-index:3;pointer-events:none;place-items:center;min-width:0;min-height:0;padding:3px;animation:.48s cubic-bezier(.18,1.42,.32,1) both ship-rise;display:grid;overflow:hidden}.ship-reveal>span{filter:drop-shadow(0 5px #18222957);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-radius:6px;width:100%;height:100%;display:block}.ship-reveal.carrier>span{background-image:url(/assets/battleship/crops/carrier-alpha.png)}.ship-reveal.battleship>span{background-image:url(/assets/battleship/crops/battleship-alpha.png)}.ship-reveal.cruiser>span{background-image:url(/assets/battleship/crops/cruiser-alpha.png)}.ship-reveal.submarine>span{background-image:url(/assets/battleship/crops/submarine-alpha.png)}.ship-reveal.patrol>span{background-image:url(/assets/battleship/crops/patrol-alpha.png)}.ship-reveal.carrier.horizontal>span{background-image:url(/assets/battleship/crops/carrier-horizontal-alpha.png)}.ship-reveal.battleship.horizontal>span{background-image:url(/assets/battleship/crops/battleship-horizontal-alpha.png)}.ship-reveal.cruiser.horizontal>span{background-image:url(/assets/battleship/crops/cruiser-horizontal-alpha.png)}.ship-reveal.submarine.horizontal>span{background-image:url(/assets/battleship/crops/submarine-horizontal-alpha.png)}.ship-reveal.patrol.horizontal>span{background-image:url(/assets/battleship/crops/patrol-horizontal-alpha.png)}.hex-board button{clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);background:#f0c477}.hex-board .win span,.reversi-board .win span{outline:4px solid var(--mint);outline-offset:2px}.mancala-board{width:min(100%,760px);min-height:330px;box-shadow:10px 14px 0 var(--ink);background:linear-gradient(135deg,#d99749,#bd7331);border:5px solid #5c3415;border-radius:42px;grid-template-rows:repeat(2,1fr);grid-template-columns:82px minmax(0,1fr) 82px;gap:12px;padding:18px;display:grid}.mancala-store{background:#f8c873;border:3px solid #5c3415;border-radius:999px;grid-row:span 2;place-items:center;font-size:2.4rem;font-weight:950;display:grid}.mancala-store.p1{grid-column:3}.mancala-pits{grid-column:2;grid-template-columns:repeat(6,1fr);gap:10px;display:grid}.mancala-pits button{color:var(--ink);background:#ffe2a5;border:3px solid #5c3415;border-radius:50%;font-size:1.35rem;font-weight:950;box-shadow:inset 0 -7px #5c34152e}.morris-board .blank{pointer-events:none;opacity:0}.morris-board .point{background:#fff3c8;border:0;border-radius:50%}.last-card-table{border:5px solid var(--ink);border-radius:var(--radius);width:min(100%,780px);min-height:min(680px,100vh - 220px);box-shadow:10px 14px 0 var(--ink);background:radial-gradient(circle at 16% 18%,#ffffff24 0 10%,#0000 11%),radial-gradient(circle at 84% 22%,#ffd33d2e 0 12%,#0000 13%),#1e6d55;gap:clamp(12px,2vw,18px);padding:clamp(14px,2vw,22px);display:grid}.last-card-players{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.last-card-player{border:3px solid var(--ink);border-radius:var(--radius);background:#fffdf7eb;gap:2px;min-width:0;padding:10px 12px;display:grid;box-shadow:4px 4px #182229ad}.last-card-player.active{background:var(--yellow)}.last-card-player span,.last-card-player small{color:var(--muted);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.78rem;font-weight:900;overflow:hidden}.last-card-player strong{text-overflow:ellipsis;white-space:nowrap;font-size:1.2rem;line-height:1;overflow:hidden}.last-card-center{grid-template-columns:minmax(120px,.72fr) minmax(130px,1fr);place-items:center;gap:clamp(14px,3vw,30px);min-height:220px;display:grid}.last-card-draw,.last-card-discard{justify-items:center;gap:8px;display:grid}.last-card-draw{color:#fffdf7;background:0 0;border:0;font-weight:950}.last-card-draw strong,.last-card-draw small,.last-card-pile-count{border:2px solid var(--ink);background:var(--paper-strong);color:var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:999px;padding:5px 9px;font-size:.8rem;font-weight:950}.last-card-back,.last-card-face{aspect-ratio:5/7;border:4px solid var(--ink);border-radius:9px;width:clamp(82px,15vw,118px);display:grid;box-shadow:5px 6px #182229b8}.last-card-back{background:radial-gradient(#fffdf7f5 0 22%,#0000 23%),linear-gradient(135deg,#e94335 0 24%,#2674d9 24% 50%,#20a96b 50% 76%,#f2c32c 76%)}.last-card-face{color:#fffdf7;place-items:center;padding:9px;position:relative;overflow:hidden}.last-card-face:before{content:"";background:#fffdf71f;border:3px solid #fffdf7c7;border-radius:999px;position:absolute;inset:14px 9px;transform:rotate(-24deg)}.last-card-face.red{background:#e94335}.last-card-face.yellow{color:var(--ink);background:#f2c32c}.last-card-face.green{background:#20a96b}.last-card-face.blue{background:#2674d9}.last-card-face.wild{background:radial-gradient(ellipse at center, #fffdf7d6 0 23%, transparent 24%), conic-gradient(from 40deg, #e94335 0 25%, #f2c32c 0 50%, #20a96b 0 75%, #2674d9 0);color:#fffdf7}.last-card-face.wild:before{background:#18222929;border-color:#fffdf7e0}.last-card-face span,.last-card-face small{z-index:1;text-transform:uppercase;justify-self:start;font-size:.7rem;font-weight:950;line-height:1;position:relative}.last-card-face strong{z-index:1;text-shadow:2px 2px #1822296b;font-size:clamp(1.9rem,6vw,3.4rem);line-height:.9;position:relative}.last-card-face small{align-self:end}.last-card-event{text-align:center;place-items:center;min-height:38px;display:grid}.last-card-event span{border:2px solid var(--ink);background:#fffdf7eb;border-radius:999px;padding:7px 12px;font-size:.86rem;font-weight:900}.last-card-hand{scrollbar-color:var(--ink) #fffdf76b;justify-content:center;align-items:end;gap:clamp(7px,1.4vw,12px);min-height:170px;padding:8px 4px 12px;display:flex;overflow-x:auto}.last-card-hand-card{transform-origin:50% 100%;background:0 0;border:0;flex:none;padding:0;transition:transform .15s,filter .15s}.last-card-hand-card:not(:disabled):hover,.last-card-hand-card.playable:not(:disabled){transform:translateY(-8px)}.last-card-hand-card:disabled .last-card-face{filter:saturate(.62)brightness(.82)}.last-card-spectator-note{color:#fffdf7;justify-items:center;gap:10px;font-weight:950;display:grid}.gomoku-board button{background:0 0;border:0;position:relative}.gomoku-board button span{border-radius:50%;position:absolute;inset:10%}.gomoku-board .p1 span{background:radial-gradient(circle at 34% 28%,#555,#111 58%,#000 100%);box-shadow:0 3px 4px #00000052}.gomoku-board .p2 span{background:radial-gradient(circle at 34% 28%,#fff,#fff8e6 60%,#d8c9a2 100%);border:1px solid #00000040;box-shadow:0 3px 4px #00000038}.connect-slot.last-move span,.gomoku-board .last-move span,.reversi-board .last-move span,.checkers-board .last-move span,.hex-board .last-move span,.morris-board .last-move span{animation:.48s cubic-bezier(.18,1.42,.32,1) both piece-pop}.tic-board .last-move .tic-mark,.ultimate-board .last-move .tic-mark,.mancala-pits .last-move{animation:.42s cubic-bezier(.18,1.42,.32,1) both cell-pop}.battleship-board .last-move:after{content:"";border:3px solid #fffdf7db;border-radius:50%;animation:.48s ease-out both splash-ring;position:absolute;inset:14%}.battleship-board .miss.last-move:after{border-color:#1767d285}.dot-edge.last-move:after{animation:.34s ease-out both line-snap}.dot-box.last-move{animation:.5s cubic-bezier(.18,1.42,.32,1) both box-claim}@keyframes piece-pop{0%{opacity:.45;transform:translateY(-10px)scale(.62)}68%{opacity:1;transform:translateY(2px)scale(1.12)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes reconnect-pulse{0%,to{box-shadow:0 0 #ffd33d00}50%{box-shadow:0 0 0 6px #ffd33d47}}@keyframes table-nudge{0%{transform:scale(1)}45%{transform:scale(1.006)}to{transform:scale(1)}}@keyframes cell-pop{0%{filter:brightness(1.18);transform:scale(.82)}72%{transform:scale(1.05)}to{filter:none;transform:scale(1)}}@keyframes line-snap{0%{background:var(--yellow);transform:scale(.25)}to{transform:scale(1)}}@keyframes box-claim{0%{transform:scale(.75)rotate(-2deg)}70%{transform:scale(1.06)rotate(1deg)}to{transform:scale(1)rotate(0)}}@keyframes splash-ring{0%{opacity:.95;transform:scale(.35)}to{opacity:0;transform:scale(1.45)}}@keyframes ship-rise{0%{opacity:0;transform:scale(.72)}70%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.flappy-game{aspect-ratio:42/62;border:5px solid var(--ink);border-radius:var(--radius);width:420px;max-width:100%;height:auto;min-height:0;box-shadow:10px 12px 0 var(--ink);touch-action:manipulation;background:radial-gradient(circle at 16% 18%,#fff 0 5%,#0000 5.4%),radial-gradient(circle at 25% 17%,#fff 0 7%,#0000 7.4%),radial-gradient(circle at 74% 30%,#fff 0 6%,#0000 6.4%),radial-gradient(circle at 84% 28%,#fff 0 8%,#0000 8.4%),linear-gradient(#73d7ff 0 74%,#6ecb73 74% 100%);outline:0;position:relative;overflow:hidden}.flappy-game:focus-visible{outline:4px solid var(--mint);outline-offset:4px}.flappy-score{z-index:5;color:#fff;text-shadow:3px 3px 0 var(--ink), -2px 2px 0 var(--ink), 2px -2px 0 var(--ink);justify-items:center;font-family:Trebuchet MS,ui-sans-serif,sans-serif;display:grid;position:absolute;top:14px;left:50%;transform:translate(-50%)}.flappy-score span{font-size:3.2rem;font-weight:950;line-height:.85}.flappy-score small{border:2px solid var(--ink);color:var(--ink);text-shadow:none;background:#fffdf7c7;border-radius:999px;padding:3px 8px;font-size:.78rem;font-weight:950}.flappy-bird-track{z-index:4;pointer-events:none;transform:translate3d(0, var(--bird-y), 0);will-change:transform;position:absolute;inset:0}.flappy-bird-sprite{aspect-ratio:1;backface-visibility:hidden;width:8.09524%;transform:translate3d(0, 0, 0) rotate(var(--bird-tilt));transform-origin:55%;will-change:transform;position:absolute;top:0;left:27.6191%}.flappy-bird-sprite:before{border:3px solid var(--ink);background:var(--yellow);content:"";border-radius:53% 47% 48% 52%;position:absolute;inset:6% -17% 8% 12%;box-shadow:inset -6px -6px #d69b085c}.flappy-bird-sprite:after{border:3px solid var(--ink);content:"";background:#ff9a3d;border-left:0;border-radius:0 999px 999px 0;width:35%;height:22%;position:absolute;top:39%;right:-25%}.flappy-bird-sprite span{z-index:1;aspect-ratio:1;border:3px solid var(--ink);background:#fff;border-radius:50%;width:18%;position:absolute;top:25%;left:58%}.flappy-bird-sprite span:after{background:var(--ink);content:"";border-radius:50%;position:absolute;inset:30% 18% 18% 43%}.flappy-pipe{transform:translate3d(var(--pipe-x), 0, 0);will-change:transform;position:absolute;inset:0}.flappy-pipe span{background:linear-gradient(90deg,#ffffff3d,#0000 28%),#35c658;border:4px solid #0b652e;width:15.7143%;position:absolute;box-shadow:inset -8px 0 #0a5d2a38,4px 0 #1822291f}.flappy-pipe .pipe-top{height:var(--gap-top);border-top:0;border-radius:0 0 7px 7px;top:0}.flappy-pipe .pipe-bottom{top:calc(var(--gap-top) + var(--gap-size));border-bottom:0;border-radius:7px 7px 0 0;bottom:12.6%}.flappy-cloud{background:#ffffffd6;border-radius:999px;width:84px;height:28px;position:absolute}.flappy-cloud:before,.flappy-cloud:after{background:inherit;content:"";border-radius:50%;position:absolute}.flappy-cloud:before{width:32px;height:32px;top:-12px;left:14px}.flappy-cloud:after{width:39px;height:39px;top:-17px;right:13px}.flappy-cloud.one{top:17%;left:9%}.flappy-cloud.two{top:33%;right:8%;scale:.76}.flappy-ground{z-index:5;border-top:5px solid var(--ink);background:repeating-linear-gradient(90deg,#c88436 0 18px,#f2c86b 18px 36px);height:12.6%;position:absolute;inset:auto 0 0}.flappy-start{z-index:8;border:3px solid var(--ink);border-radius:var(--radius);background:var(--yellow);min-width:112px;min-height:46px;color:var(--ink);box-shadow:4px 4px 0 var(--ink);padding:0 18px;font-weight:950;position:absolute;bottom:118px;left:50%;transform:translate(-50%)}.flappy-game.crashed .flappy-bird-sprite{animation:.28s ease-out both cell-pop}.flappy-game.playing{touch-action:none}.snake-game,.twenty-game{border:5px solid var(--ink);border-radius:var(--radius);width:min(100%,620px,100vh - 230px);box-shadow:10px 12px 0 var(--ink);touch-action:none;background-color:#214c3c;background-image:linear-gradient(90deg,#ffffff1f 1px,#0000 1px),linear-gradient(#ffffff1f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:26px 26px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;gap:12px;padding:clamp(12px,2vw,18px);display:grid;position:relative}.twenty-game{background:linear-gradient(135deg,#9b7245,#d1994b)}.arcade-score{justify-content:center;align-items:center;gap:10px;min-height:42px;font-weight:950;display:flex}.arcade-score span{border:3px solid var(--ink);border-radius:var(--radius);background:var(--yellow);text-align:center;min-width:72px;box-shadow:3px 3px 0 var(--ink);padding:5px 12px;font-size:1.65rem;line-height:1}.arcade-score small{border:2px solid var(--ink);background:var(--paper-strong);border-radius:999px;padding:7px 10px}.snake-grid{aspect-ratio:1;border:3px solid var(--ink);border-radius:var(--radius);background:#142f27;grid-template-rows:repeat(14,minmax(0,1fr));grid-template-columns:repeat(14,1fr);justify-self:center;gap:3px;width:min(100%,500px,100vh - 330px);padding:10px;display:grid}.snake-grid span{background:#ffffff12;border-radius:4px}.snake-grid .snake-body,.snake-grid .snake-head{background:var(--mint);box-shadow:inset 0 -4px #18222938}.snake-grid .snake-head{background:#9cffcf;border-radius:50% 40% 40% 50%}.snake-grid .snake-food{background:radial-gradient(circle at 35% 30%, #ffb3a8, var(--red) 62%, #b82921);border-radius:50%;box-shadow:0 0 0 2px #18222947}.snake-controls{grid-template-columns:repeat(4,44px);justify-content:center;gap:8px;display:grid}.snake-controls button{border:2px solid var(--ink);border-radius:var(--radius);background:var(--paper-strong);width:44px;height:42px;box-shadow:2px 2px 0 var(--ink);place-items:center;display:grid}.snake-thumb-pad{touch-action:none;-webkit-user-select:none;user-select:none;grid-template-rows:repeat(3,clamp(56px,15vw,76px));grid-template-columns:repeat(3,clamp(68px,19vw,88px));justify-content:center;gap:8px;display:grid}.snake-thumb-pad button,.snake-thumb-pad .pad-center{border:2px solid var(--ink);border-radius:var(--radius);place-items:center;min-width:0;min-height:0;display:grid}.snake-thumb-pad button{background:var(--paper-strong);box-shadow:3px 3px 0 var(--ink);color:var(--ink);transition:transform .12s,box-shadow .12s,background .12s}.snake-thumb-pad button:active{background:var(--yellow);box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.snake-thumb-pad .pad-up{grid-area:1/2}.snake-thumb-pad .pad-left{grid-area:2/1}.snake-thumb-pad .pad-center{background:radial-gradient(circle, var(--mint) 0 24%, transparent 25%), #ffffff21;grid-area:2/2}.snake-thumb-pad .pad-right{grid-area:2/3}.snake-thumb-pad .pad-down{grid-area:3/2}.arcade-start{border:3px solid var(--ink);border-radius:var(--radius);background:var(--yellow);min-width:116px;min-height:44px;color:var(--ink);box-shadow:4px 4px 0 var(--ink);justify-content:center;justify-self:center;align-items:center;gap:7px;padding:0 16px;font-weight:950;display:inline-flex}.twenty-board{aspect-ratio:1;border:4px solid var(--ink);border-radius:var(--radius);background:#765735;grid-template-columns:repeat(4,1fr);justify-self:center;gap:clamp(7px,1.6vw,13px);width:min(100%,500px,100vh - 330px);padding:clamp(10px,2vw,16px);display:grid;box-shadow:inset 0 0 0 4px #ffffff1f}.twenty-board .tile{min-width:0;min-height:0;color:var(--ink);background:#caa36b;border:2px solid #18222961;border-radius:8px;place-items:center;font-size:clamp(1.25rem,7vw,2.8rem);font-weight:950;line-height:1;display:grid;box-shadow:inset 0 -6px #1822291f}.twenty-board .value-2,.twenty-board .value-4{background:#ffe7a5}.twenty-board .value-8,.twenty-board .value-16,.twenty-board .value-32{color:#fffdf7;background:#ffad5b}.twenty-board .value-64,.twenty-board .value-128,.twenty-board .value-256{background:var(--yellow)}.twenty-board .value-512,.twenty-board .value-1024,.twenty-board .value-2048{background:var(--mint)}.reaction-dock{border:3px solid var(--ink);border-radius:var(--radius);min-height:66px;box-shadow:var(--shadow);background:#fffdf7e0;justify-content:center;align-items:center;gap:9px;padding:10px;display:flex}.reaction-dock span{align-items:center;gap:7px;font-weight:900;display:inline-flex}.reaction-button{border:2px solid var(--ink);background:var(--paper);width:42px;height:42px;box-shadow:2px 2px 0 var(--ink);border-radius:50%;font-size:1.2rem}.reaction-dock.locked{background:repeating-linear-gradient(-45deg,#1822290f 0 8px,#0000 8px 16px),#fffdf7e0}.reaction-button:disabled{filter:grayscale(.75);box-shadow:none}.chat-panel{grid-template-rows:auto;align-content:start;gap:14px;min-width:0;max-height:calc(100vh - 36px);padding:14px;display:grid;overflow:auto}.invite-strip{border-bottom:2px dashed #18222959;grid-template-columns:1fr auto;align-items:center;gap:10px;padding-bottom:14px;display:grid;position:relative}.invite-strip p,.section-title{color:var(--muted);text-transform:uppercase;margin:0 0 6px;font-size:.78rem;font-weight:900}.invite-strip strong{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:.86rem;display:block;overflow:hidden}.copied-note{border:2px solid var(--ink);background:var(--mint);border-radius:999px;padding:5px 8px;font-size:.75rem;font-weight:900;position:absolute;top:48px;right:0}.players-strip{gap:9px;display:grid}.bot-strip,.rules-strip,.history-strip,.spectator-strip{border-bottom:2px dashed #1822293d;gap:8px;padding-bottom:12px;display:grid}.rules-strip p,.bot-personality,.quiet-note{color:var(--muted);margin:0;font-size:.82rem;font-weight:760;line-height:1.35}.bot-modes{grid-template-columns:repeat(3,1fr);align-items:start;gap:7px;display:grid}.mode-button{border:2px solid var(--ink);border-radius:var(--radius);background:var(--paper-strong);height:38px;min-height:34px;box-shadow:2px 2px 0 var(--ink);place-items:center;padding:0 8px;font-size:.76rem;font-weight:900;display:inline-grid}.mode-button.active{background:var(--yellow)}.section-title{align-items:center;gap:6px;display:inline-flex}.player-row{border-radius:var(--radius);background:#fff;border:2px solid #1822292e;grid-template-columns:20px 1fr auto;align-items:center;gap:9px;min-height:34px;padding:6px 8px;font-weight:850;display:grid}.player-row small{color:var(--muted);font-weight:900}.player-piece{border:2px solid var(--ink);border-radius:50%;width:18px;height:18px}.player-row.p1 .player-piece{background:var(--red)}.player-row.p2 .player-piece{background:var(--yellow)}.seat-note{color:var(--muted);margin:0;font-size:.82rem;font-weight:800}.move-list{gap:7px;margin:0;padding:0;list-style:none;display:grid}.move-list li,.spectator-row{border-radius:var(--radius);background:#fff;border:2px solid #18222929;grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:30px;padding:6px 8px;font-size:.82rem;font-weight:850;display:grid}.move-list li.p1{border-left:6px solid var(--red)}.move-list li.p2{border-left:6px solid var(--yellow)}.move-list strong,.spectator-row small{color:var(--muted);font-size:.78rem;font-weight:950}.compact-action{justify-content:center;align-items:center;gap:7px;min-height:36px;padding:0 10px;font-size:.82rem;font-weight:900;display:inline-flex}.game-over-banner{border:3px solid var(--ink);border-radius:var(--radius);background:var(--yellow);box-shadow:var(--shadow);grid-template-columns:auto auto 1fr;align-items:center;gap:10px;padding:10px 14px;font-weight:850;display:grid}.game-over-banner strong{font-size:1.05rem}.game-over-banner span{color:#334049}.chat-log{grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid}.chat-messages{flex-direction:column;gap:9px;min-height:0;padding-right:4px;display:flex;overflow:auto}.chat-bubble{border:2px solid var(--ink);border-radius:var(--radius);background:#fff;gap:4px;padding:10px 11px;display:grid;box-shadow:3px 3px #182229d1}.chat-bubble strong{font-size:.78rem}.chat-bubble span{line-height:1.32}.chat-form{grid-template-columns:1fr auto;align-items:end;gap:8px;padding-top:12px;display:grid}.chat-form label{color:var(--muted);text-transform:uppercase;grid-column:1/-1;font-size:.78rem;font-weight:900}.chat-form input,.join-panel input{border:2px solid var(--ink);border-radius:var(--radius);min-width:0;min-height:44px;color:var(--ink);background:#fff;padding:0 12px;font-weight:760}.reaction-layer{pointer-events:none;z-index:999;width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}.reaction-burst{filter:drop-shadow(0 5px #18222933);will-change:transform, opacity;line-height:1;animation:1.5s cubic-bezier(.16,1,.3,1) both burst;position:absolute}@keyframes burst{0%{opacity:0;transform:translateY(24px)scale(.45)rotate(-12deg)}20%{opacity:1}to{opacity:0;transform:translateY(-80px)scale(1.15)rotate(18deg)}}.join-screen,.loading-room{place-items:center;min-height:100vh;padding:24px;display:grid}.join-panel{border:3px solid var(--ink);border-radius:var(--radius);background:var(--paper-strong);width:min(460px,100%);box-shadow:8px 8px 0 var(--ink);padding:22px}.join-panel h1{margin:22px 0 10px;font-size:2.4rem;line-height:.95}.join-panel p{color:var(--muted);font-weight:760;line-height:1.4}.join-panel form{gap:10px;display:grid}.join-panel label{text-transform:uppercase;font-size:.85rem;font-weight:900}.join-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.loading-room{font-weight:900}.loading-token{border:3px solid var(--ink);border-radius:var(--radius);background:var(--yellow);box-shadow:6px 6px 0 var(--ink);padding:16px 20px}.toast{z-index:8;border:2px solid var(--ink);border-radius:var(--radius);max-width:min(460px,100vw - 32px);box-shadow:4px 4px 0 var(--ink);background:#fff;padding:10px 14px;font-weight:850;position:fixed;top:16px;left:50%;transform:translate(-50%)}.mini-darts,.mini-word,.mini-cup-pong,.mini-dominoes{aspect-ratio:1;border:3px solid var(--ink);border-radius:var(--radius);width:100%;display:grid;overflow:hidden}.mini-darts{background:repeating-conic-gradient(from -9deg, #1f2328 0 9deg, #fff4d6 9deg 18deg), #1f2328;place-items:center;position:relative}.mini-darts span{border:6px solid;border-radius:50%;position:absolute}.mini-darts span:first-child{border-color:#df3c31;inset:9%}.mini-darts span:nth-child(2){border-color:#1aa35e;inset:26%}.mini-darts span:nth-child(3){background:#1aa35e;border-color:#df3c31;inset:43%}.mini-darts strong{z-index:1;color:#fffdf7;font-size:1rem;font-weight:950}.mini-word{background:#2e6b8f;grid-template-columns:repeat(4,1fr);gap:4px;padding:7px}.mini-word span{border:2px solid var(--ink);background:#fff8dc;border-radius:5px;place-items:center;font-weight:950;display:grid}.mini-cup-pong{background:#2e8b76;grid-template-columns:repeat(4,1fr);align-content:center;gap:6px;padding:14px;position:relative}.mini-cup-pong span{aspect-ratio:1/1.2;border:2px solid var(--ink);background:#d83c34;border-radius:0 0 50% 50%;box-shadow:inset 0 -6px #00000029}.mini-cup-pong strong{aspect-ratio:1;border:2px solid var(--ink);background:#fffdf7;border-radius:50%;width:18px;position:absolute;top:22%;left:22%}.mini-dominoes{background:#2f715f;grid-template-columns:repeat(2,1fr);gap:7px;padding:10px}.mini-dominoes span{border:2px solid var(--ink);background:#fffdf7;border-radius:7px;grid-template-columns:repeat(2,1fr);display:grid;box-shadow:3px 3px #18222980}.mini-dominoes b{border-right:1px solid var(--ink);place-items:center;font-size:.85rem;display:grid}.mini-dominoes b:last-child{border-right:0}.rail-icon.darts{background:radial-gradient(circle, #df3c31 0 17%, #1aa35e 18% 28%, #fff4d6 29% 42%, transparent 43%), repeating-conic-gradient(#111 0 18deg, #fff4d6 18deg 36deg);border-radius:50%}.rail-icon.word-hunt{background:linear-gradient(90deg, transparent 32%, var(--ink) 32% 38%, transparent 38% 66%, var(--ink) 66% 72%, transparent 72%), linear-gradient(transparent 32%, var(--ink) 32% 38%, transparent 38% 66%, var(--ink) 66% 72%, transparent 72%), #fff8dc;border-radius:6px}.rail-icon.cup-pong{background:radial-gradient(circle at 28% 28%,#fffdf7 0 10%,#0000 11%),radial-gradient(at 45% 67%,#d83c34 0 16%,#0000 17%),radial-gradient(at 66% 67%,#d83c34 0 16%,#0000 17%),radial-gradient(at 55% 43%,#d83c34 0 16%,#0000 17%),#2e8b76;border-radius:6px}.rail-icon.dominoes{background:linear-gradient(90deg, var(--ink) 0 8%, transparent 8% 46%, var(--ink) 46% 54%, transparent 54% 92%, var(--ink) 92%), linear-gradient(#fffdf7, #fffdf7);border-radius:6px}.bot-start-toggle{border:2px solid var(--ink);border-radius:var(--radius);background:#fffdf7;align-items:center;gap:9px;margin-top:10px;padding:9px 10px;font-size:.86rem;font-weight:900;display:flex}.bot-start-toggle input{width:18px;height:18px;accent-color:var(--red)}.darts-table,.word-hunt-table,.cup-pong-table,.domino-table{border:5px solid var(--ink);width:min(100%,780px,100vw - 260px);min-height:min(690px,100vh - 220px);box-shadow:10px 14px 0 var(--ink);border-radius:10px}.darts-table{background:radial-gradient(circle at 50% 52%,#ffffff21 0 7%,#0000 8%),linear-gradient(135deg,#5d3827,#8c5235 52%,#4c2d20);grid-template-rows:auto 1fr auto;gap:14px;padding:clamp(14px,2vw,24px);display:grid}.darts-scoreboard,.word-hunt-header,.cup-pong-score,.domino-seats,.domino-open-ends{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.darts-scoreboard div,.word-hunt-header span,.cup-pong-score span,.domino-seat,.domino-open-ends span,.dart-throws span,.domino-last{border:2px solid var(--ink);background:var(--paper-strong);box-shadow:2px 2px 0 var(--ink);border-radius:999px;padding:7px 10px;font-weight:950}.darts-scoreboard .active,.word-hunt-header .active,.domino-seat.active{background:var(--yellow)}.darts-scoreboard div{text-align:center;min-width:100px;display:grid}.darts-scoreboard span,.domino-seat small{color:var(--muted);text-transform:uppercase;font-size:.72rem}.dartboard{aspect-ratio:1;background:radial-gradient(circle, #e7372e 0 4.7%, #159557 4.9% 9.2%, #161b1f 9.5% 28.5%, #f6e7c0 28.8% 51.5%, #159557 51.8% 57.5%, #161b1f 57.8% 75.5%, #e7372e 75.8% 82.5%, #161b1f 82.8%), repeating-conic-gradient(from -9deg, #f6e7c0 0 9deg, #171d22 9deg 18deg);border:clamp(8px,1.3vw,12px) solid #171d22;border-radius:50%;place-self:center;width:min(100%,560px,100vh - 300px);position:relative;box-shadow:0 0 0 7px #e8d1a5,0 0 0 12px #171d22,9px 12px #182229b3}.dartboard:before,.dartboard:after{content:"";pointer-events:none;border:2px solid #ffffff47;border-radius:50%;position:absolute;inset:13%}.dartboard:after{border-color:#ffffff59;inset:41%}.dart-number-ring{z-index:3;pointer-events:none;position:absolute;inset:-2px}.dart-number-ring span{color:#fff7dc;text-shadow:0 2px #111;font-size:clamp(.72rem,2vw,1rem);font-weight:950;position:absolute;transform:translate(-50%,-50%)}.dart-slice{transform:rotate(calc(var(--slice) * 18deg));pointer-events:none;position:absolute;inset:0}.dart-slice button{color:#0000;pointer-events:auto;width:clamp(24px,4.6vw,38px);height:clamp(22px,4vw,34px);transform:translateX(-50%) rotate(calc(var(--slice) * -18deg));background:#fff0;border:0;border-radius:50%;font-size:0;font-weight:950;position:absolute;left:50%}.dart-slice button:first-child{top:22%}.dart-slice button:nth-child(2){top:40%}.dart-slice button:nth-child(3){top:71%}.dart-slice button:not(:disabled):hover,.dart-slice button:not(:disabled):focus-visible{outline:3px solid var(--yellow);outline-offset:1px;background:#ffffff75}.dart-bull{border:2px solid var(--ink);border-radius:50%;font-weight:950;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dart-bull.outer{background:#1aa35e;width:76px;height:76px}.dart-bull.inner{color:#fffdf7;background:#df3c31;width:44px;height:44px}.dart-throw-line{border:2px solid var(--ink);background:var(--yellow);border-radius:999px;width:92px;height:10px;position:absolute;bottom:-38px;left:50%;transform:translate(-50%)}.dart-throws{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.word-hunt-table{background:linear-gradient(#ffffff24,#0000 24%),#1659b7;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:clamp(12px,2vw,18px);padding:clamp(14px,2vw,22px);display:grid}.word-hunt-header{grid-column:1/-1;align-items:center}.word-hunt-header span{color:#0d3472;justify-content:center;align-items:center;gap:9px;min-width:126px;padding:8px 12px;line-height:1;display:inline-flex}.word-hunt-header strong{font-size:1.15rem}.word-grid{grid-template-columns:repeat(var(--word-size), 1fr);grid-template-rows:repeat(var(--word-size), minmax(0, 1fr));aspect-ratio:1;background:linear-gradient(#164ca5,#0d3472);border:4px solid #0d3472;border-radius:12px;place-self:center;gap:clamp(8px,1.4vw,13px);width:min(100%,470px,100vh - 330px);padding:clamp(8px,1.2vw,13px);display:grid;box-shadow:inset 0 5px #ffffff24,6px 8px #0b1e4280}.word-grid span{color:#fff;text-shadow:0 3px #0a377c;background:linear-gradient(#78b7ff,#2f7ee7);border:0;border-radius:9px;place-items:center;font-size:clamp(1.5rem,7vw,4rem);font-weight:950;display:grid;box-shadow:inset 0 4px #ffffff57,inset 0 -6px #00000029,3px 4px #0b1e428c}.word-entry{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;justify-self:center;gap:8px;width:min(100%,640px);display:grid}.word-entry label{clip:rect(0 0 0 0);position:absolute}.word-entry input{border-radius:var(--radius);text-transform:uppercase;border:3px solid #0d3472;min-width:0;padding:12px 14px;font-size:1rem;font-weight:950;box-shadow:inset 0 3px #0d34721f}.word-hunt-side{align-content:start;justify-self:center;gap:12px;width:min(100%,640px);display:grid}.word-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.word-list span{color:#ffffffb8;text-align:center;text-overflow:ellipsis;background:#ffffff2e;border:2px solid #0d3472;border-radius:8px;padding:8px;font-size:.78rem;font-weight:950;overflow:hidden}.word-list .found{color:#1659b7;background:#fff}.cup-pong-table{background:radial-gradient(#ffffff29 0 9%,#0000 10%),linear-gradient(90deg,#ffffff14 1px,#0000 1px) 0 0/34px 34px,linear-gradient(#ffffff14 1px,#0000 1px) 0 0/34px 34px,linear-gradient(#23896f,#145f52);align-content:space-between;gap:18px;padding:clamp(14px,3vw,32px);display:grid;position:relative}.cup-rack{z-index:2;justify-items:center;gap:10px;display:grid;position:relative}.cup-rack strong{z-index:3;border:2px solid var(--ink);background:var(--paper-strong);border-radius:999px;padding:6px 10px;font-weight:950;position:relative}.cup-rack-grid{width:min(320px,78vw);max-width:320px;height:192px;position:relative}.cup-rack-grid.cups-6{height:166px}.cup-rack-grid button{aspect-ratio:1/1.15;border:3px solid var(--ink);background:radial-gradient(at 50% 18%,#ffffffd1 0 24%,#0000 25%),linear-gradient(#ff5a4e 0 32%,#d72f2c 33% 100%);border-radius:50% 50% 44% 44%;width:clamp(48px,9vw,64px);position:absolute;transform:translate(-50%)perspective(300px)rotateX(14deg);box-shadow:inset 0 -11px #00000029,5px 7px #18222975}.cup-rack:first-child .cup-rack-grid button{background:radial-gradient(at 50% 18%,#ffffffd1 0 24%,#0000 25%),linear-gradient(#ff6256 0 32%,#d92f2c 33% 100%)}.cup-rack:last-of-type .cup-rack-grid button{background:radial-gradient(at 50% 18%,#ffffffd1 0 24%,#0000 25%),linear-gradient(#54a2ff 0 32%,#2674d9 33% 100%)}.cup-rack-grid .gone{opacity:.25;transform:translate(-50%)scale(.78)}.cup-rack-grid.cups-6 button:first-child{top:0;left:30%}.cup-rack-grid.cups-6 button:nth-child(2){top:0;left:50%}.cup-rack-grid.cups-6 button:nth-child(3){top:50px;left:20%}.cup-rack-grid.cups-6 button:nth-child(4){top:50px;left:40%}.cup-rack-grid.cups-6 button:nth-child(5){top:50px;left:60%}.cup-rack-grid.cups-6 button:nth-child(6){top:100px;left:40%}.cup-rack-grid.cups-10 button:first-child{top:0;left:20%}.cup-rack-grid.cups-10 button:nth-child(2){top:0;left:40%}.cup-rack-grid.cups-10 button:nth-child(3){top:0;left:60%}.cup-rack-grid.cups-10 button:nth-child(4){top:46px;left:30%}.cup-rack-grid.cups-10 button:nth-child(5){top:46px;left:50%}.cup-rack-grid.cups-10 button:nth-child(6){top:46px;left:70%}.cup-rack-grid.cups-10 button:nth-child(7){top:92px;left:40%}.cup-rack-grid.cups-10 button:nth-child(8){top:92px;left:60%}.cup-rack-grid.cups-10 button:nth-child(9){top:138px;left:50%}.cup-rack-grid.cups-10 button:nth-child(10){top:46px;left:10%}.cup-rack.active .cup-rack-grid button:not(:disabled){cursor:crosshair}.cup-ball{z-index:1;aspect-ratio:1;border:3px solid var(--ink);background:radial-gradient(circle at 34% 30%,#fff 0 18%,#0000 19%),#fffdf7;border-radius:50%;width:clamp(32px,6vw,52px);position:absolute;top:50%;left:calc(50% + min(210px,24vw));transform:translate(-50%,-50%);box-shadow:5px 6px #1822296b}.cup-pong-score{z-index:1;position:relative}.domino-table{background:radial-gradient(at 50% 45%,#ffffff29 0 18%,#0000 19%),radial-gradient(circle at 18% 16%,#ffd75d24 0 9%,#0000 10%),linear-gradient(#225f51,#123f39);grid-template-rows:auto minmax(310px,1fr) auto auto;gap:clamp(10px,1.7vw,16px);padding:clamp(12px,1.8vw,20px);display:grid}.domino-score-strip{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.team-score,.domino-target,.domino-table-badge,.domino-round-summary,.domino-last{border:2px solid var(--ink);background:var(--paper-strong);color:var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:999px;font-weight:950}.team-score,.domino-target{justify-content:center;align-items:center;gap:7px;min-height:34px;padding:7px 11px;display:inline-flex}.team-score strong{font-size:1.08rem}.team-score.northSouth,.domino-seat.northSouth.active,.team-score.active{background:var(--yellow)}.team-score.eastWest,.domino-seat.eastWest.active{background:var(--mint)}.domino-target{color:var(--muted);text-transform:uppercase;background:#fff8dc;font-size:.78rem}.domino-arena{grid-template-rows:auto minmax(210px,1fr) auto;grid-template-columns:minmax(98px,.48fr) minmax(0,1.8fr) minmax(98px,.48fr);gap:clamp(8px,1.4vw,14px);min-height:320px;display:grid}.domino-seat{border:2px solid var(--ink);background:#fffdf7e0;border-radius:12px;align-items:center;gap:9px;min-width:0;padding:8px 10px;display:flex;position:relative;box-shadow:3px 4px #18222980}.domino-seat.top,.domino-seat.bottom{grid-column:2;justify-self:center;min-width:min(280px,100%)}.domino-seat.left{grid-area:2/1;align-self:center}.domino-seat.right{grid-area:2/3;align-self:center}.domino-seat.bottom{grid-row:3}.domino-seat.you{outline:3px solid var(--yellow);outline-offset:2px}.domino-avatar{aspect-ratio:1;border:2px solid var(--ink);color:#fffdf7;background:#1f2730;border-radius:50%;flex:none;place-items:center;width:36px;font-size:.64rem;font-weight:950;display:grid}.domino-seat strong,.domino-seat small{line-height:1.1;display:block}.domino-seat strong{text-overflow:ellipsis;white-space:nowrap;max-width:136px;overflow:hidden}.domino-seat small{color:var(--muted);margin-top:3px;font-size:.72rem;font-weight:900}.domino-turn-dot{aspect-ratio:1;border:2px solid var(--ink);background:var(--red);border-radius:50%;width:10px;animation:1.2s ease-in-out infinite dominoPulse;position:absolute;top:8px;right:8px}.domino-center{background:radial-gradient(at 50% 45%,#fffdf721 0 28%,#0000 29%),#0000001f;border:3px solid #fffdf73d;border-radius:22px;grid-area:2/2;grid-template-rows:auto minmax(135px,1fr) auto;gap:10px;min-width:0;padding:clamp(10px,1.8vw,16px);display:grid}.domino-table-badge{text-align:center;justify-self:center;gap:2px;padding:7px 13px;display:inline-grid}.domino-table-badge span{color:var(--muted);text-transform:uppercase;font-size:.7rem}.domino-chain{scrollbar-color:var(--yellow) transparent;background:#fffdf714;border:3px dashed #fffdf757;border-radius:16px;justify-content:flex-start;align-items:center;gap:7px;min-width:0;min-height:142px;padding:14px;display:flex;overflow-x:auto}.domino-chain-tile{animation:.18s ease-out dominoDeal;display:inline-flex}.domino-face{border:3px solid var(--ink);background:linear-gradient(#fffef7,#eee6d3);border-radius:6px;grid-template-columns:repeat(2,1fr);width:82px;min-width:82px;height:41px;font-weight:950;display:inline-grid;box-shadow:inset 0 3px #ffffffb3,4px 5px #1822297a}.domino-pips{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;padding:5px;display:grid;position:relative}.domino-pips:first-child{border-right:2px solid var(--ink)}.domino-pips i{aspect-ratio:1;background:var(--ink);border-radius:50%;width:6px}.pips-0 i{display:none}.pips-1 i:first-child{grid-area:2/2}.pips-2 i:first-child{grid-area:1/1}.pips-2 i:nth-child(2){grid-area:3/3}.pips-3 i:first-child{grid-area:1/1}.pips-3 i:nth-child(2){grid-area:2/2}.pips-3 i:nth-child(3){grid-area:3/3}.pips-4 i:first-child{grid-area:1/1}.pips-4 i:nth-child(2){grid-area:1/3}.pips-4 i:nth-child(3){grid-area:3/1}.pips-4 i:nth-child(4){grid-area:3/3}.pips-5 i:first-child{grid-area:1/1}.pips-5 i:nth-child(2){grid-area:1/3}.pips-5 i:nth-child(3){grid-area:2/2}.pips-5 i:nth-child(4){grid-area:3/1}.pips-5 i:nth-child(5){grid-area:3/3}.pips-6 i:first-child{grid-area:1/1}.pips-6 i:nth-child(2){grid-area:1/3}.pips-6 i:nth-child(3){grid-area:2/1}.pips-6 i:nth-child(4){grid-area:2/3}.pips-6 i:nth-child(5){grid-area:3/1}.pips-6 i:nth-child(6){grid-area:3/3}.domino-open-ends{justify-content:center;gap:8px;display:flex}.domino-open-ends button{border:2px solid var(--ink);background:var(--yellow);min-width:112px;box-shadow:2px 3px 0 var(--ink);border-radius:999px;padding:9px 12px;font-weight:950}.domino-open-ends button:disabled{color:#1822298c;box-shadow:none;background:#fffdf76b}.domino-hand-panel{background:#0000001f;border:3px solid #fffdf738;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.domino-hand-copy{color:#fffdf7;flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.domino-hand-copy span{color:#fffdf7c2;font-size:.82rem;font-weight:850}.domino-hand{flex-wrap:wrap;justify-content:flex-start;gap:8px;min-width:0;display:flex}.domino-hand>button{background:0 0;border:0;padding:0;transition:opacity .15s,transform .15s}.domino-hand>button.playable{cursor:pointer}.domino-hand>button:not(.playable){opacity:.36}.domino-hand>button.selected{transform:translateY(-8px)}.domino-hand>button.selected .domino-face{box-shadow:0 0 0 4px var(--yellow), inset 0 3px 0 #ffffffb3, 4px 7px 0 #18222999}.domino-pass{align-self:center;min-width:92px}.domino-empty{color:#fffdf7;font-weight:950}.domino-log{flex-wrap:wrap;justify-content:center;gap:7px;display:flex}.domino-round-summary,.domino-last{margin:0;padding:6px 10px;font-size:.78rem}@keyframes dominoDeal{0%{opacity:0;transform:translateY(-10px)rotate(-2deg)}}@keyframes dominoPulse{50%{transform:scale(1.35)}}@media (width<=1060px){.room-shell{grid-template-columns:150px minmax(0,1fr)}.chat-panel{grid-column:1/-1;grid-template-rows:auto;grid-template-columns:1fr 1fr;max-height:none}.chat-log,.bot-strip,.rules-strip,.history-strip,.spectator-strip{grid-column:1/-1}}@media (width<=760px){.lobby-stage,.game-poster,.room-shell,.chat-panel{grid-template-columns:1fr}.lobby-topbar,.room-topbar{flex-direction:column;align-items:flex-start}.lobby-stage{gap:18px;min-height:0;padding-top:14px}.lobby-copy h1{font-size:clamp(3.65rem,17vw,4.7rem)}.lobby-copy p{margin:18px 0 16px}.game-library{align-self:stretch}.library-heading{flex-direction:column;align-items:stretch}.game-search{width:100%;min-width:0}.game-stack{grid-template-columns:1fr;max-height:none;padding-right:4px;overflow:visible}.game-poster{grid-template-columns:112px minmax(0,1fr);grid-template-areas:"preview copy""actions actions";min-height:0}.game-rail{grid-template-columns:auto 1fr;max-height:none;display:grid}.rail-games{grid-column:1/-1;gap:8px;padding:2px 2px 8px;display:flex;overflow-x:auto}.rail-game{text-align:center;flex:0 0 min(132px,38vw);grid-template-columns:1fr;place-items:center;font-size:.75rem}.reaction-dock{flex-wrap:wrap}.game-over-banner{grid-template-columns:auto 1fr}.game-over-banner span{grid-column:1/-1}.board-stage{overscroll-behavior-x:none;min-height:auto;padding-inline:8px;overflow:hidden visible}.connect-board,.tic-board,.gomoku-board,.ultimate-board,.dots-wrap,.reversi-board,.checkers-board,.battleship-wrap,.hex-board,.morris-board,.last-card-table,.darts-table,.word-hunt-table,.cup-pong-table,.domino-table,.flappy-game,.snake-game,.twenty-game{width:min(100%,100vw - 40px)}.board-stage.gomoku,.board-stage.ultimate-tic-tac-toe,.board-stage.dots-and-boxes,.board-stage.battleship,.board-stage.hex,.board-stage.nine-mens-morris,.board-stage.darts,.board-stage.word-hunt,.board-stage.cup-pong,.board-stage.dominoes{place-items:center}.board-stage.gomoku .gomoku-board,.board-stage.ultimate-tic-tac-toe .ultimate-board,.board-stage.dots-and-boxes .dots-wrap,.board-stage.battleship .battleship-wrap,.board-stage.hex .hex-board,.board-stage.nine-mens-morris .morris-board,.board-stage.darts .darts-table,.board-stage.word-hunt .word-hunt-table,.board-stage.cup-pong .cup-pong-table,.board-stage.dominoes .domino-table{width:min(100%,100vw - 32px);max-width:100%}.dot-node:after{width:54%}.dot-edge.horizontal:after{height:12px}.dot-edge.vertical:after{width:12px}.battleship-board button,.dot-edge{min-height:34px}.flappy-game{height:auto;min-height:0}.snake-grid,.twenty-board{width:100%}.last-card-table{min-height:560px}.darts-table,.word-hunt-table,.cup-pong-table,.domino-table{min-height:auto}.dartboard{width:min(100%,100vw - 84px)}.dart-slice button{width:36px;height:24px;font-size:.62rem}.word-hunt-table,.word-hunt-side{grid-template-columns:1fr}.word-list{grid-template-columns:repeat(3,minmax(0,1fr))}.cup-rack-grid,.cup-rack-grid.cups-6{width:min(285px,78vw)}.cup-rack-grid button{width:clamp(42px,13vw,56px)}.cup-ball{width:clamp(30px,9vw,42px);left:calc(50% + min(132px,28vw))}.domino-chain{justify-content:flex-start}.domino-table{grid-template-rows:auto auto auto auto;gap:10px;padding:10px}.domino-score-strip{justify-content:flex-start}.domino-arena{grid-template-rows:auto auto auto auto;grid-template-columns:repeat(2,minmax(0,1fr));min-height:0}.domino-seat.top,.domino-seat.bottom,.domino-center{grid-column:1/-1}.domino-seat.top{grid-row:1}.domino-center{grid-row:2}.domino-seat.left,.domino-seat.right{grid-row:3;align-self:stretch}.domino-seat.left{grid-column:1}.domino-seat.right{grid-column:2}.domino-seat.bottom{grid-row:4}.domino-seat{min-width:0;padding:7px}.domino-seat strong{max-width:92px}.domino-center{grid-template-rows:auto minmax(118px,auto) auto;padding:10px}.domino-chain{flex-wrap:wrap;place-content:center;min-height:118px;padding:10px;overflow-x:visible}.domino-hand-panel{grid-template-columns:1fr}.domino-hand{flex-wrap:wrap;justify-content:center;padding-bottom:0;overflow-x:visible}.domino-hand .domino-face{width:clamp(60px,19vw,70px);min-width:clamp(60px,19vw,70px);height:clamp(30px,9.5vw,35px)}.domino-chain .domino-face{width:clamp(62px,18vw,74px);min-width:clamp(62px,18vw,74px);height:clamp(31px,9vw,37px)}.domino-open-ends button{flex:1;min-width:0}.last-card-center{grid-template-columns:repeat(2,minmax(0,1fr));min-height:180px}.last-card-back,.last-card-face{width:clamp(72px,25vw,98px)}.last-card-hand{justify-content:flex-start;min-height:142px}.mancala-board{border-radius:28px;grid-template-columns:54px minmax(0,1fr) 54px;min-height:230px;padding:12px}.mancala-pits{gap:6px}.mancala-pits button{font-size:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reaction-burst{animation:1.25s ease-out both burst-reduced!important}}@keyframes burst-reduced{0%{opacity:0;transform:scale(.8)}25%{opacity:1}to{opacity:0;transform:scale(1.05)}}
