.poker-arena{inset:70px 0 calc(120px + env(safe-area-inset-bottom));color:#edf7ff;background:radial-gradient(#233247,#0a1023 75%);flex-direction:column;align-items:center;padding:8px 20px 24px;display:flex;position:absolute;overflow:hidden}.poker-heading{color:#a8c5d3;align-items:center;gap:24px;font-size:13px;display:flex}.poker-heading strong{color:#ffdc73;font-size:18px}.poker-table-zone{flex:1;width:min(1100px,100%);min-height:0;margin:12px 0;position:relative}.poker-event-overlay{z-index:6;color:#ffdc73;text-align:center;pointer-events:none;background:#091126ee;border:3px solid #ffdc73;border-radius:14px;flex-direction:column;align-items:center;gap:7px;max-width:min(520px,90%);padding:16px 24px;font-size:clamp(17px,2.3vw,28px);font-weight:700;animation:2.4s ease-out forwards poker-event-overlay;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 0 45px #000c}.poker-winner-overlay{gap:9px;width:min(900px,96%);max-width:96%;max-height:calc(100% - 8px);padding:12px;animation:.18s ease-out both poker-winner-overlay-in}@keyframes poker-winner-overlay-in{0%{opacity:0;transform:translate(-50%,-46%)scale(.94)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.poker-showdown-title{letter-spacing:1px;font-size:clamp(15px,2vw,22px)}.poker-showdown-header{justify-content:center;align-items:center;gap:14px;display:flex}.poker-showdown-board{color:#d4d8e5;justify-content:center;align-items:center;gap:8px;font-size:10px;display:flex}.poker-showdown-board-cards{gap:3px;display:flex}.poker-showdown-hands{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px;width:100%;display:grid}.poker-showdown-hand{color:#d4d8e5;text-align:left;background:#101a2ef2;border:1px solid #59617b;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;min-width:0;padding:5px 7px;font-size:10px;display:grid}.poker-showdown-hand.winner{color:#ffdc73;border-color:#ffdc73;box-shadow:inset 0 0 12px #ffdc7326}.poker-showdown-cards{gap:3px;display:flex}.poker-showdown-cards .poker-card,.poker-showdown-board-cards .poker-card{width:25px;height:35px;font-size:14px;animation:none}.poker-showdown-detail{flex-direction:column;gap:1px;min-width:0;line-height:1.15;display:flex}.poker-showdown-detail strong,.poker-showdown-category{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.poker-showdown-category{color:#aebbd2}.poker-showdown-hand.winner .poker-showdown-category{color:#fff1b0}.poker-showdown-hidden{color:#aebbd2;text-align:center;place-items:center;width:53px;min-height:35px;font-size:8px;line-height:1.15;display:grid}.poker-turn-status{color:#ffdc73;white-space:nowrap;background:#091126ee;border:2px solid #ffdc73;border-radius:9px;align-items:center;min-height:36px;padding:7px 13px;font-size:14px;display:inline-flex}.poker-turn-status.own-turn{animation:1.45s ease-in-out infinite poker-turn-shimmer}.poker-urgent-countdown{color:#fff2d2;background:#2b0d1bee;border:3px solid #ff647c;border-radius:50%;flex:none;place-items:center;width:58px;height:58px;font-size:34px;line-height:1;animation:.45s ease-out poker-countdown-pulse;display:grid;box-shadow:0 0 22px #ff496b99}.poker-felt{background:radial-gradient(#256958,#173e3f);border:10px solid #66475c;border-radius:45%;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:18% 14%;box-shadow:0 0 0 4px #b98769,inset 0 0 50px #071e26,0 18px 50px #0008}.poker-table-title{color:#7fb0a0;letter-spacing:3px;font-size:12px}.poker-community,.poker-own-cards,.poker-seat-cards{gap:5px;display:flex}.poker-card{color:#15202d;background:#eef5e8;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;width:clamp(42px,5.8vw,78px);height:clamp(60px,8vw,110px);font-size:clamp(22px,3vw,34px);font-weight:700;line-height:1.05;animation:.18s ease-out poker-deal;display:flex;box-shadow:0 2px 3px #0006}.poker-card span{font-size:.8em}.poker-card.card-red{color:#bc3459}.poker-card.card-back{color:#9e9add;background:repeating-linear-gradient(45deg,#242954,#242954 4px,#373e70 4px 8px);border:2px solid #b7afd5}.poker-pot{color:#ffdc73;font-size:20px}.poker-announcement{text-align:center;max-width:80%;min-height:30px;font-size:12px;overflow:hidden}.poker-timer{color:#ffdc73;margin-left:10px;display:inline-block}.poker-seats{pointer-events:none;position:absolute;inset:0}.poker-seat{text-align:center;background:#101a2eef;border:1px solid #59617b;border-radius:9px;flex-direction:column;align-items:center;gap:2px;width:125px;padding:5px;font-size:11px;display:flex;position:absolute;transform:translate(-50%,-50%)}.poker-action-bubble{z-index:3;color:#182139;white-space:nowrap;filter:drop-shadow(0 3px 3px #05091377);pointer-events:none;background:#f7f2dc;border:2px solid #182139;border-radius:12px;max-width:120px;padding:6px 9px;font-size:11px;font-weight:700;line-height:1;animation:.18s ease-out both poker-action-bubble-in;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%)}.poker-action-bubble:after{content:"";background:#f7f2dc;border-bottom:2px solid #182139;border-right:2px solid #182139;width:9px;height:9px;position:absolute;top:calc(100% - 2px);left:50%;transform:translate(-50%)rotate(45deg)}.poker-seat strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.poker-seat.active{border-color:#ffdc73;box-shadow:0 0 16px #ffdc7355}.poker-seat.own-seat{color:#61e5ed}.poker-seat.folded{opacity:.6}.poker-seat.out{opacity:.4}.poker-seat-cards .poker-card{width:22px;height:28px;font-size:12px}.poker-seat small{height:12px;font-size:9px}.dealer-chip{z-index:4;color:#1c253c;background:#ecefdc;border:2px solid #a89f79;border-radius:50%;place-items:center;width:25px;height:25px;font-size:11px;line-height:1;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 7px #030711aa}.poker-own-hand{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;min-height:30px;font-size:13px;display:flex}.poker-own-cards .poker-card{width:62px;height:86px;font-size:29px}.poker-actions{align-items:end;gap:8px;margin-top:10px;display:flex}.poker-actions button{min-height:44px;padding:8px 14px}.poker-actions .poker-raise-step{color:#11182b;min-width:46px;text-shadow:none;background:#ffdc73;border-color:#fff0a1;padding-inline:9px}.poker-actions .poker-raise-step:disabled{color:#ffe27f;opacity:1;background:#34495b;border-color:#8394a4}.poker-actions label{flex-direction:column;gap:2px;font-size:10px;display:flex}.poker-actions input{width:96px;min-height:44px;padding:8px}.large-table{gap:25px;display:flex}.large-table .poker-seats{order:-1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:5px;width:38%;min-height:0;display:grid;position:static}.large-table .poker-seat{gap:1px;width:auto;padding:3px;font-size:10px;line-height:1.1;position:relative;transform:none;top:auto!important;left:auto!important}.large-table .dealer-chip{width:18px;height:18px;font-size:8px;top:50%!important;left:100%!important}.poker-reveal-text{display:none}.large-table .poker-reveal-text{margin-left:4px;display:inline}.large-table .poker-seat small,.large-table .poker-seat-cards{display:none}.large-table .poker-felt{flex:1;align-self:center;height:75%;position:relative;inset:auto}@keyframes poker-deal{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes poker-action-bubble-in{0%{opacity:0;transform:translate(-50%,5px)scale(.85)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes poker-turn-shimmer{0%,to{border-color:#ffdc73;box-shadow:0 0 10px #ffdc7355,0 0 18px #0008}50%{color:#fff8d8;border-color:#fff5bd;box-shadow:0 0 20px #ffdc73cc,0 0 28px #61e5ed66,0 0 18px #0008}}@keyframes poker-countdown-pulse{0%{transform:scale(1.3);box-shadow:0 0 36px #ff496bcc}to{transform:scale(1);box-shadow:0 0 22px #ff496b99}}@keyframes poker-event-overlay{0%{opacity:0;transform:translate(-50%,-45%)scale(.86)}12%,78%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;visibility:hidden;transform:translate(-50%,-56%)scale(.97)}}@media (width<=700px),(height<=600px){.poker-arena{inset:64px 0 calc(120px + env(safe-area-inset-bottom));padding:4px 10px 20px}.poker-heading{flex-wrap:wrap;justify-content:center;gap:4px 12px;font-size:10px}.poker-heading strong{font-size:14px}.poker-table-zone{flex-direction:column;gap:10px;margin:8px 0;display:flex}.poker-winner-overlay{width:min(900px,98%);max-width:98%;padding:7px}.poker-showdown-hands{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:4px}.poker-showdown-hand{gap:4px;padding:3px 4px;font-size:8px}.poker-showdown-cards .poker-card,.poker-showdown-board-cards .poker-card{width:21px;height:29px;font-size:12px}.poker-showdown-hidden{width:45px;min-height:29px;font-size:7px}.large-table .poker-seats,.poker-seats{order:-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;display:grid;position:static}.large-table .poker-seat,.poker-seat{width:auto;padding:3px 1px;font-size:9px;position:relative;transform:none;top:auto!important;left:auto!important}.dealer-chip{width:18px;height:18px;font-size:8px;top:calc(100% + 4px)!important;left:50%!important}.poker-reveal-text{margin-left:4px;display:inline}.poker-seat-cards{display:none}.poker-seat small{height:9px;font-size:8px}.large-table .poker-felt,.poker-felt{border-width:5px;flex:1;align-self:stretch;gap:5px;height:auto;min-height:105px;position:relative;inset:auto}.poker-table-title{display:none}.poker-pot{font-size:15px}.poker-announcement{max-width:95%;min-height:25px;font-size:10px}.poker-community .poker-card{width:32px;height:46px;font-size:18px}.poker-own-hand{font-size:11px}.poker-own-cards .poker-card{width:32px;height:43px;font-size:18px}.poker-actions{flex-wrap:wrap;justify-content:center;gap:5px}.poker-actions button{padding:8px 10px;font-size:12px}.poker-actions input{width:76px}}@media (width>=701px) and (height<=600px){.poker-showdown-hands{grid-template-columns:repeat(8,minmax(0,1fr))}.poker-showdown-hand{gap:3px;padding-inline:3px;font-size:7px}.poker-showdown-cards .poker-card{width:18px;height:26px;font-size:10px}}@media (height<=450px){.large-table .poker-seat{gap:0;padding:1px;font-size:8px}.large-table .poker-seats{gap:3px}.large-table .dealer-chip{padding:0 2px}.poker-arena{padding:2px 10px 6px}.poker-table-zone{margin:4px 0}.poker-seat small{display:none}.poker-seat{padding:2px 1px}.poker-felt,.large-table .poker-felt{gap:2px;min-height:65px}.poker-community .poker-card{width:28px;height:38px;font-size:16px}.poker-announcement{min-height:14px}.poker-table-zone{flex-direction:row}.large-table .poker-seats,.poker-seats{align-content:center;width:45%}.poker-felt{min-width:40%}.poker-own-hand{max-width:30%;position:absolute;bottom:14px;left:52px}.poker-own-cards .poker-card{width:23px;height:32px;font-size:13px}.poker-own-hand{flex-wrap:nowrap;gap:6px;max-width:38%}.poker-turn-status{min-height:28px;padding:4px 7px;font-size:10px}.poker-urgent-countdown{border-width:2px;width:40px;height:40px;font-size:24px}.poker-actions{margin-top:0;margin-left:20%}}@media (prefers-reduced-motion:reduce){.poker-card,.poker-action-bubble{animation:none}.poker-event-overlay{animation:3s step-end forwards poker-event-overlay-reduced}.poker-winner-overlay{animation:none;transform:translate(-50%,-50%)}.poker-turn-status.own-turn,.poker-urgent-countdown{animation:none}}@keyframes poker-event-overlay-reduced{0%,90%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;visibility:hidden;transform:translate(-50%,-50%)}}.blackjack-felt{background:radial-gradient(#1f7157,#123b38)}.blackjack-dealer-label{color:#ffdc73;letter-spacing:1px;font-size:14px}.blackjack-dealer-cards{min-height:60px}.blackjack-seat{min-height:74px}.blackjack-result{color:#ffdc73;font-size:9px;font-weight:700}.blackjack-own-hand .poker-own-cards{max-width:360px;overflow-x:auto}.blackjack-actions button{min-width:112px}@media (width<=700px),(height<=600px){.blackjack-seat{min-height:48px}.blackjack-dealer-cards .poker-card{width:34px;height:48px;font-size:18px}.blackjack-actions button{min-width:90px}}.dice-poker-felt{background:radial-gradient(#1f7157,#123b38)}.dice-poker-cup{color:#ffdc73;filter:drop-shadow(0 5px 8px #061a18);font-size:48px;transform:rotate(45deg)}.dice-poker-seat{min-height:78px}.dice-poker-seat-dice{justify-content:center;gap:2px;margin:3px 0;display:flex}.dice-poker-die{color:#17211f;background:#f7f3e8;border:1px solid #d5d9dc;border-radius:5px;place-items:center;width:25px;height:25px;font-size:24px;line-height:1;display:inline-grid;box-shadow:0 2px 4px #07181580}.dice-poker-die.held{border-color:#ffdc73;transform:translateY(-3px);box-shadow:0 0 0 2px #ffdc73,0 3px 8px #071815}.dice-poker-result{color:#ffdc73;font-size:9px;font-weight:700}.dice-poker-own-dice{gap:8px;display:flex}.dice-poker-own-dice button{background:0 0;border:0;padding:0}.dice-poker-own-dice .dice-poker-die{cursor:pointer;border-radius:9px;width:48px;height:48px;font-size:45px}.dice-poker-own-dice button:disabled .dice-poker-die{cursor:default}.dice-poker-actions button{min-width:140px}@media (width<=700px),(height<=600px){.dice-poker-seat{min-height:50px}.dice-poker-seat-dice .dice-poker-die{width:17px;height:17px;font-size:17px}.dice-poker-own-dice{gap:5px}.dice-poker-own-dice .dice-poker-die{width:39px;height:39px;font-size:37px}.dice-poker-actions button{min-width:112px}}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-latin-400-normal-_wFEWmAB.woff2)format("woff2"),url(/assets/press-start-2p-latin-400-normal-KLytu4cr.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#eff3ff;font-synthesis:none;--panel:#131a36;--line:#2b365a;--muted:#a6b3d3;--cyan:#61e5ed;--violet:#ac94ff;background:#090e24;font-family:system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.5}main{max-width:1380px;margin:auto;padding:24px 32px}header{justify-content:space-between;align-items:center;gap:20px;display:flex}.brand{font:18px/1.5 "Press Start 2P",monospace}.dot{color:var(--cyan)}label{color:var(--muted);font-size:13px}select,input{color:#eff3ff;width:100%;min-width:0;min-height:46px;font:inherit;background:#0c132c;border:1px solid #394568;border-radius:7px;padding:10px 12px}header select{width:auto;margin-left:10px}section{padding:32px 0}.eyebrow{letter-spacing:.15em;color:var(--cyan);text-transform:uppercase;font-size:11px;font-weight:700}h1,h2,h3{overflow-wrap:anywhere;font-family:"Press Start 2P",monospace;font-weight:400;line-height:1.7}h1{max-width:1000px;margin:20px 0;font-size:clamp(22px,3vw,36px)}h2{margin:16px 0;font-size:13px}h3{font-size:12px}.intro{max-width:620px;color:var(--muted);margin-bottom:28px;font-size:18px}.lobby-section{padding:16px 0}.lobby-section h1{margin:10px 0 20px;font-size:20px}.muted,footer{color:var(--muted)}.error{color:#ffb4b8;overflow-wrap:anywhere}.ready{color:var(--cyan)}footer{padding:20px 0;font-size:12px}button,summary,input,select{outline-offset:4px}:focus-visible{outline:2px solid var(--cyan)}button{border:1px solid var(--cyan);color:#091b2b;background:var(--cyan);min-height:46px;font:inherit;cursor:pointer;border-radius:8px;padding:10px 16px;font-weight:700}button:hover:not(:disabled){border-color:#b4f9ff}button:disabled{opacity:.45;cursor:default}button.secondary{color:#eff3ff;border-color:var(--line);background:#1a2344}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;min-width:0;margin-top:20px;padding:24px}.field{gap:7px;margin-bottom:16px;display:grid}.entry-card{grid-template-columns:1fr 1fr;gap:18px;max-width:100%;display:grid}.entry-card>.field{margin:0}.entry-card>button{align-self:end}.join{align-items:end;gap:12px;display:flex}.join .field{flex:1;margin:0}.lobby-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.lobby-heading p{color:var(--muted);margin:0 0 5px;font-size:12px}.lobby-code{color:var(--cyan);letter-spacing:.08em;font:18px/1.6 "Press Start 2P",monospace}.invite-button{margin:12px 0 18px}.lobby-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;display:grid}.lounge-column{min-width:0;position:sticky;top:16px}.room-panel{margin:0;padding:0;overflow:hidden}.room-info{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:10px;padding:13px 18px;font-size:12px;display:flex}.world-viewport{aspect-ratio:900/560;background:#0c112a;width:100%;position:relative;overflow:hidden}.world-viewport canvas{width:100%;height:100%;display:block}.voxel-overlay{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.voxel-avatar-label,.voxel-machine{white-space:nowrap;will-change:transform;position:absolute;top:0;left:0}.voxel-avatar-label{color:#eff3ff;text-shadow:0 2px 2px #02040c,1px 0 #02040c,-1px 0 #02040c;justify-items:center;gap:3px;font:11px/1.2 system-ui,sans-serif;display:grid}.voxel-avatar-label.own .voxel-name{color:var(--cyan)}.voxel-avatar-label.disconnected{opacity:.55}.voxel-ready{color:#8ef0b4;font-size:20px}.voxel-speech{white-space:normal;overflow-wrap:anywhere;color:#11172e;max-width:190px;text-shadow:none;background:#f3f6ff;border:2px solid #26365b;padding:7px 10px;position:absolute;bottom:42px;box-shadow:3px 3px #03061199}.voxel-overlay>.voxel-machine{pointer-events:auto;color:#eff3ff;white-space:normal;background:#0d142be6;border:2px solid #64719d;border-radius:2px;width:60px;padding:5px 7px;font:6px/1.2 "Press Start 2P",monospace;overflow:hidden;box-shadow:3px 3px #030611aa}.voxel-overlay>.voxel-machine.selected{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 14px #61e5ed88,3px 3px #030611aa}@media (width<=700px),(pointer:coarse){.voxel-overlay>.voxel-machine{width:48px;padding:3px;font-size:5px}.voxel-speech{width:max-content}}.world-status{color:var(--muted);position:absolute;inset:20px}.room-controls{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:14px 18px;display:flex}.room-controls .field{flex:1;max-width:260px;margin:0}.room-hint{font-size:12px}.mobile-hint,.joystick{display:none}.joystick-pad{touch-action:none;-webkit-user-select:none;user-select:none;background:#0b1431;border:2px solid #8292b5;border-radius:50%;place-items:center;width:84px;height:84px;display:grid}.joystick-pad span{color:#eff3ff;background:#738ca8;border-radius:50%;place-items:center;width:40px;height:40px;font-size:24px;display:grid}.lobby-sidebar{flex-direction:column;gap:14px;min-width:0;display:flex}.sidebar-panel{margin:0;padding:0 18px}summary{cursor:pointer;padding:16px 0;font-size:14px;font-weight:700}.sidebar-body{padding-bottom:16px}.members{margin:12px 0;padding:0;list-style:none}.members li{border-top:1px solid var(--line);overflow-wrap:anywhere;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:12px 0;display:flex}.participants-panel .members{max-height:360px;padding-right:4px;overflow-y:auto}.member-info{flex-wrap:wrap;flex:1;justify-content:space-between;gap:10px;min-width:0;font-size:13px;display:flex}.badges{color:var(--muted);flex-wrap:wrap;gap:7px;font-size:11px;display:flex}.badges .admin{color:var(--violet)}.member-actions{flex-wrap:wrap;gap:6px;width:100%;display:flex}.members button,.chat-byline button{min-height:44px;padding:8px 10px;font-size:11px}.chat{padding-bottom:16px}.chat-messages{max-height:250px;margin:0;padding:0;list-style:none;overflow-y:auto}.chat-messages li{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:12px 0}.chat-byline{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.chat-byline strong{color:var(--violet)}.chat-byline time{color:var(--muted);font-size:11px}.chat-messages p{white-space:pre-wrap;margin:7px 0 0;font-size:13px;line-height:1.5}.chat form{margin:16px 0 0}.chat form button{width:100%}.settings{border-top:1px solid var(--line);padding-top:4px}.settings-grid{grid-template-columns:1fr;gap:8px;display:grid}.settings .muted{font-size:12px}@media (width<=1000px){.lobby-grid{grid-template-columns:minmax(0,1fr) 300px;gap:14px}main{padding:20px}}@media (width<=700px){.tetris-touch{bottom:max(12px, env(safe-area-inset-bottom));z-index:20;background:#141c36;border:1px solid #61e5ed;border-radius:12px;padding:10px;position:fixed;left:16px;right:16px}.tetris-column{padding-bottom:88px}main{padding:16px}header{flex-wrap:wrap;gap:12px}.brand{font-size:15px}header label{font-size:11px}header select{margin-left:5px;padding:8px;font-size:12px}section{padding:24px 0}h1{font-size:22px}.lobby-section h1{font-size:17px}.intro{font-size:15px}.panel{padding:18px}.entry-card{grid-template-columns:1fr;gap:16px}.join{flex-direction:column;align-items:stretch}.lobby-heading{align-items:start}.lobby-code{font-size:16px}.lobby-heading button{font-size:12px}.invite-button{width:100%}.lobby-grid{grid-template-columns:1fr}.lounge-column{position:static}.room-panel{padding:0}.world-viewport{aspect-ratio:1}.room-info{padding:10px 12px;font-size:11px}.room-controls{padding:12px}.joystick{display:block}.desktop-hint{display:none}.mobile-hint{display:block}.sidebar-panel{padding:0 16px}.lobby-sidebar{gap:10px}.settings-grid{gap:8px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.tetris-column{align-self:start;min-width:0}.game-boards{align-items:start;gap:16px;display:flex}.tetris-main{flex:1;width:min(100%,420px);min-width:200px}.tetris-main canvas,.tetris-previews canvas{display:block}.opponent-column{width:258px;min-width:0;overflow:auto}.opponent-names{flex-wrap:wrap;gap:6px;display:flex}.opponent-names button{min-height:36px;padding:6px;font-size:11px}.game-focus{margin:12px 0}.game-focus p{font-size:13px;line-height:1.6}.game-actions{flex-wrap:wrap;gap:10px;display:flex}.countdown{color:#61e5ed;font-size:24px}.tetris-touch{justify-content:center;gap:8px;margin:16px 0;display:flex}.tetris-touch button{touch-action:none;-webkit-user-select:none;user-select:none;min-width:46px;min-height:52px;padding:8px;font-size:24px}@media (width<=1100px){.game-boards{flex-direction:column}.opponent-column{width:100%}}@media (width<=700px){.tetris-column{padding:12px 12px 88px}.tetris-main{width:100%}.tetris-touch{gap:4px}.tetris-touch button{flex:1;min-width:36px;padding:4px}.opponent-column{overflow-x:auto}.opponent-names{flex-wrap:nowrap;width:max-content}.opponent-names button{flex-shrink:0;width:86px}}.arcade-shell{background:radial-gradient(#202044,#090e24 75%);width:100%;max-width:none;height:100dvh;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.arcade-shell [hidden]{display:none!important}.arcade-shell .lobby-grid{height:100%;display:block}.arcade-hud{z-index:10;justify-content:initial;pointer-events:none;gap:10px;position:absolute;inset:16px 24px auto}.arcade-hud>*{pointer-events:auto}.arcade-hud .brand{margin-right:auto;font-size:14px}.arcade-hud button{background:#11172ee8;min-height:42px;padding:8px 14px}.arcade-hud .lobby-code{letter-spacing:.14em;font:14px monospace}.code-button{align-items:center;gap:12px;display:flex}.hud-label{color:var(--muted);font-size:11px}.arcade-shell .lounge-column,.arcade-shell .room-panel{background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.arcade-shell .world-viewport{aspect-ratio:auto;border:0;border-radius:0;width:100%;height:100%}.arcade-shell .world-viewport canvas{touch-action:none;cursor:grab;display:block}.arcade-shell .world-viewport canvas.camera-moving{cursor:grabbing}.voxel-lobby:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(115deg,#61e5ed0d,#0000 25%),linear-gradient(295deg,#ac94ff0d,#0000 28%),repeating-linear-gradient(0deg,#0000 0 3px,#02040c14 3px 4px);position:absolute;inset:0;box-shadow:inset 0 0 120px #02040ccc}.voxel-lobby .arcade-hud button,.voxel-lobby .ready-dock,.voxel-lobby .chat-toggle,.voxel-lobby .chat-feed>p{background:#0d142bea;border:2px solid #64719d;border-radius:2px;box-shadow:4px 4px #030611cc,inset 2px 2px #ffffff12}.voxel-lobby .arcade-hud button:hover,.voxel-lobby .ready-dock button:hover,.voxel-lobby .chat-toggle:hover{border-color:var(--cyan);transform:translate(-1px,-1px);box-shadow:5px 5px #030611cc,inset 2px 2px #ffffff18}.voxel-lobby .arcade-hud .brand{color:#eff3ff;border-left:5px solid var(--cyan);text-shadow:2px 2px #563f83;background:#0d142bea;padding:11px 15px 10px;box-shadow:4px 4px #030611cc}.voxel-lobby .lobby-code{color:var(--cyan);text-shadow:2px 2px #17335b}.voxel-lobby .ready-dock{border-color:#806aa8;border-bottom-width:6px}.voxel-lobby .ready-dock button{border-radius:1px}.voxel-lobby .chat-feed>p{border-left:5px solid var(--cyan)}.voxel-lobby .arcade-dialog{background:#0d142bf5;border:3px solid #7564a6;border-radius:2px;box-shadow:10px 10px #030611dd,inset 3px 3px #ffffff12}.voxel-lobby .arcade-dialog button,.voxel-lobby .arcade-dialog input,.voxel-lobby .arcade-dialog select{border-radius:1px}.voxel-lobby .overlay-heading{border-bottom:4px solid #26365b;padding-bottom:14px}.voxel-lobby .joystick-pad{background:#0d142bd9;border-width:4px;border-radius:3px;box-shadow:7px 7px #030611aa}.arcade-shell .room-info,.arcade-shell .room-hint{display:none}.arcade-shell .room-controls{padding:0;position:absolute;bottom:20px;left:20px}.arcade-shell .joystick{display:none}.ready-dock{white-space:nowrap;z-index:9;background:#11172ee8;border:1px solid #57618a;border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.ready-dock button{min-height:40px;padding:8px 12px;font-size:13px}.chat-toggle{z-index:11;background:#11172ec9;min-height:38px;padding:6px 12px;position:absolute;bottom:20px;left:24px}.chat-feed{z-index:12;pointer-events:none;width:min(280px,100% - 48px);font-size:12px;position:absolute;bottom:68px;left:24px}.chat-feed>p{border-left:2px solid var(--cyan);overflow-wrap:anywhere;background:#10182ed9;border-radius:3px;margin:6px 0;padding:9px 12px}.chat-feed strong{color:var(--cyan);font-size:11px;display:block}.chat-feed:not(.editing){flex-direction:column;justify-content:flex-end;max-height:35dvh;display:flex;overflow:hidden}.chat-feed>p{flex-shrink:0}.chat-feed:not(.editing) span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-feed.editing{pointer-events:auto;width:min(440px,100% - 48px)}.chat-feed form{gap:5px;display:flex}.chat-feed input{min-height:42px}.chat-feed button{min-height:42px;padding:6px 10px;font-size:12px}.arcade-toast{z-index:30;background:#131a36ed;max-width:90%;padding:8px 16px;font-size:13px;position:absolute;top:76px;left:50%;transform:translate(-50%)}.arcade-dialog{width:min(680px,100% - 32px);max-height:calc(100dvh - 48px);color:var(--fg,#eff3ff);background:#131a36f5;border:1px solid #73609d;border-radius:14px;padding:22px;overflow:auto;box-shadow:0 20px 90px #0008}.arcade-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05091999}.overlay-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.overlay-heading h1{margin:0;font-size:14px}.overlay-heading button{min-height:38px;padding:4px 12px;font-size:24px}.arcade-menu{gap:10px;display:grid}.arcade-menu button{text-align:left}.arcade-dialog .lobby-sidebar{width:100%;display:block}.arcade-dialog .sidebar-panel{background:0 0;border:0;padding:0}.arcade-dialog summary{display:none}.arcade-dialog .sidebar-body{padding:0}.arcade-dialog .settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.arcade-dialog .settings-grid .field{grid-template-rows:minmax(40px,auto) 46px}.arcade-dialog .chat-messages{height:auto;max-height:40dvh}.arcade-dialog .members{margin:14px 0}.arcade-dialog h2{font-size:12px}.arcade-shell .tetris-column{background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0;overflow:hidden}.arcade-shell .tetris-column>h2{margin:0;font-size:12px;position:absolute;top:86px;left:28px}.arcade-shell .countdown{text-align:center;z-index:6;pointer-events:none;color:var(--cyan);font:24px "Press Start 2P",monospace;position:absolute;inset:35% 0 auto}.arcade-shell .game-focus{width:220px;margin:0;position:absolute;top:126px;left:28px}.arcade-shell .game-focus p{margin:0 0 8px;font-size:12px;line-height:1.5}.arcade-shell .game-focus select{min-height:38px;margin-top:6px}.next-piece{width:96px;height:54px;color:var(--cyan);display:block}.game-stats{grid-template-columns:1fr auto;gap:10px;font-size:12px;display:grid}.game-stats dt{color:var(--muted)}.game-stats dd{color:var(--cyan);margin:0;font:15px monospace}.arcade-shell .game-boards{outline-offset:3px;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(180px,1fr);gap:clamp(16px,3vw,48px);display:grid;position:absolute;inset:116px 28px 70px clamp(260px,25vw,360px)}.arcade-shell .game-boards:focus-visible{outline:none}.arcade-shell .tetris-main{justify-self:center;width:100%;min-width:0;max-width:calc(50dvh - 69px);height:100%;min-height:0}.arcade-shell .opponent-column{width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.arcade-shell .tetris-previews{width:100%;height:100%;min-height:0}.arcade-shell .opponent-names{gap:0;display:grid;position:absolute;inset:0}.arcade-shell .opponent-names button{color:#0000;background:0 0;border:0;width:100%;min-height:0;padding:0;overflow:hidden}.arcade-shell .opponent-names button:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}.arcade-shell .opponent-names button:disabled{opacity:1}.arcade-shell .tetris-touch{display:none}.arcade-shell .tetris-column>.muted{margin:0;font-size:10px;position:absolute;bottom:20px;left:310px;right:24px}.arcade-shell .game-results{z-index:8;background:#11172ef5;border:1px solid #73609d;border-radius:12px;width:min(620px,100% - 48px);max-height:calc(100dvh - 190px);padding:20px;position:absolute;top:86px;left:50%;overflow:auto;transform:translate(-50%)}.arcade-shell .game-results h3{font-size:12px}@media (width<=700px),(pointer:coarse){.arcade-hud{gap:6px;inset:12px 12px auto}.arcade-hud .brand{font-size:9px}.arcade-hud button{min-height:38px;padding:6px 9px}.arcade-hud .lobby-code{letter-spacing:.08em;font-size:12px}.arcade-hud .hud-label{display:none}.arcade-shell .joystick{display:block}.arcade-shell .room-controls{bottom:82px;left:16px}.ready-dock{gap:8px;max-width:calc(100% - 88px);margin-left:28px;padding:8px;bottom:18px}.ready-dock .hud-label{display:none}.ready-dock button{padding:7px 8px;font-size:11px}.chat-toggle{padding:6px 10px;bottom:20px;left:12px}.chat-toggle .hud-label{display:none}.chat-feed{width:min(280px,100% - 24px);bottom:68px;left:12px}.chat-feed.editing{width:calc(100% - 24px)}.chat-feed.editing>p{max-height:50px;overflow:hidden}.arcade-dialog{padding:16px}.arcade-dialog .settings-grid{grid-template-columns:1fr}.arcade-dialog .settings-grid .field{grid-template-rows:auto 46px}.arcade-shell .tetris-column>h2{font-size:10px;top:62px;left:16px}.arcade-shell .game-focus{width:100px;top:87px;left:16px}.arcade-shell .game-focus p{font-size:10px;line-height:1.6}.arcade-shell .game-focus label{font-size:10px}.arcade-shell .game-focus select{width:100px;padding:4px;font-size:10px}.arcade-shell .game-boards{display:block;inset:86px 12px 172px 126px}.arcade-shell .tetris-main{width:100%;max-width:none;height:100%}.arcade-shell .opponent-column{width:auto;height:98px;position:fixed;bottom:66px;left:12px;right:12px;overflow-x:auto}.arcade-shell .tetris-previews{width:max-content;min-width:100%;height:98px}.arcade-shell .opponent-names{grid-auto-columns:52px;grid-auto-flow:column;width:max-content;min-width:100%;height:98px;grid-template-columns:none!important}.arcade-shell .opponent-names button{width:52px}.arcade-shell .tetris-touch{gap:4px;margin:0;display:flex;position:absolute;bottom:10px;left:64px;right:12px}.arcade-shell .tetris-touch button{flex:1;min-width:0;min-height:44px;padding:4px;font-size:21px}.arcade-shell .tetris-column>.muted{display:none}.arcade-shell .game-results{max-height:calc(100dvh - 154px);top:82px}}.ready-short{display:none}@media (width<=700px),(pointer:coarse){.ready-long{display:none}.ready-short{display:inline}.game-stats{gap:8px;font-size:10px}.game-stats dd{font-size:12px}}@media (pointer:coarse) and (width>=701px) and (height<=500px){.arcade-shell .game-boards{inset:70px 216px 66px 160px}.arcade-shell .game-focus{width:130px;top:76px}.arcade-shell .opponent-column{width:180px;height:auto;inset:76px 12px 66px auto}.arcade-shell .tetris-previews,.arcade-shell .opponent-names{height:100%}.arcade-shell .tetris-touch{left:180px;right:216px}}@media (width>=701px) and (height<=650px) and (pointer:fine){.arcade-shell .next-piece{width:80px;height:40px}.arcade-shell .game-stats{gap:4px;margin:8px 0;font-size:11px}.arcade-shell .game-stats dd{font-size:13px}.arcade-shell .game-focus select{min-height:32px;margin:0 0 8px;padding:4px 8px}.arcade-shell .watch-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}.snake-stage{position:absolute;inset:0}.snake-title{position:absolute;top:65px;left:24px}.snake-board.game-boards{display:block;position:absolute;inset:110px 28px 100px}.snake-board canvas{width:100%;height:100%;display:block}.snake-help{position:absolute;bottom:20px;right:30px}.snake-touch{display:none}@media (width<=700px),(pointer:coarse){.snake-title{font-size:12px;top:65px;left:12px}.snake-board.game-boards{inset:100px 12px 145px}.snake-touch{gap:6px;display:flex;position:absolute;bottom:72px;right:12px}.snake-touch button{touch-action:none;min-width:48px;min-height:48px}.snake-help{display:none}}.game-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.game-card{border:1px solid #60558c;border-radius:12px;padding:16px}.game-card.highlighted{border-color:#61e5ed}.game-card h2{font-size:14px;line-height:1.5}.game-card p{line-height:1.5}@media (width<=700px){.game-picker{grid-template-columns:1fr}}.performance-hud{right:max(12px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom));z-index:12;color:#b7c6df;white-space:nowrap;background:#080d20d9;border-radius:6px;gap:10px;padding:4px 8px;font:10px/1.4 ui-monospace,monospace;display:flex;position:absolute}.performance-hud[data-state=timeout],.performance-hud[data-state=offline]{color:#ffb1ba}.arcade-shell .tetris-column>.muted,.snake-help{bottom:42px}@media (width<=700px),(pointer:coarse){.arcade-shell .tetris-touch{bottom:calc(28px + env(safe-area-inset-bottom))}.arcade-shell .ready-dock{bottom:calc(32px + env(safe-area-inset-bottom))}.arcade-shell .opponent-column{bottom:calc(88px + env(safe-area-inset-bottom))}.arcade-shell .tetris-column .game-boards{bottom:calc(194px + env(safe-area-inset-bottom))}.performance-hud{gap:8px;padding:2px 5px;font-size:9px}}@media (pointer:coarse) and (width>=701px) and (height<=500px){.arcade-shell .tetris-column .game-boards{bottom:calc(88px + env(safe-area-inset-bottom))}}.tower-stage,.pong-stage{position:absolute;inset:0}.pong-title{font-size:13px;position:absolute;top:68px;left:24px}.pong-board.game-boards{display:block;position:absolute;inset:106px 24px 92px}.pong-board canvas{width:100%;height:100%;display:block}.pong-help{font-size:11px;position:absolute;bottom:40px;right:24px}.pong-touch{display:none}@media (width<=700px),(pointer:coarse){.pong-title{font-size:11px;top:65px;left:12px}.pong-board.game-boards{inset:96px 8px 128px}.pong-help{display:none}.pong-touch{bottom:calc(48px + env(safe-area-inset-bottom));gap:18px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.pong-touch button{touch-action:none;-webkit-user-select:none;user-select:none;min-width:72px;min-height:48px;font-size:24px}}.tower-title{max-width:calc(100% - 48px);font-size:13px;line-height:1.6;position:absolute;top:68px;left:24px}.tower-board.game-boards{display:block;position:absolute;inset:112px 24px 100px}.tower-board canvas{width:100%;height:100%;display:block}.tower-watch{z-index:5;width:160px;font-size:12px;position:absolute;top:110px;left:24px}.tower-watch select{width:100%;margin-top:8px;font-size:12px}.tower-help{font-size:11px;position:absolute;bottom:40px;right:24px}.tower-touch{display:none}@media (width<=700px),(pointer:coarse){.tower-title{max-width:calc(100% - 24px);font-size:11px;top:65px;left:12px}.tower-board.game-boards{inset:164px 12px 130px}.tower-watch{align-items:center;gap:10px;width:auto;display:flex;top:94px;left:12px;right:12px}.tower-watch select{width:160px;min-height:32px;margin:0}.tower-touch{bottom:calc(48px + env(safe-area-inset-bottom));gap:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tower-touch button{touch-action:none;-webkit-user-select:none;user-select:none;min-width:58px;min-height:48px;font-size:24px}.tower-help{display:none}}@media (pointer:coarse) and (width>=701px) and (height<=500px){.tower-board.game-boards{inset:104px 190px 40px}.tower-watch{width:160px;display:block;right:auto}.tower-touch{gap:4px;bottom:48px;left:auto;right:12px;transform:none}.tower-touch button{min-width:48px}}.performance-hud{grid-template-columns:repeat(2,max-content);gap:1px 10px;max-width:calc(100% - 24px);font-size:9px;line-height:1.35;display:grid}.performance-hud strong{color:#ffb1ba;grid-column:1/-1}@media (width<=700px),(pointer:coarse){.performance-hud{gap:1px 6px;font-size:8px}}.performance-hud button{min-height:16px;font:inherit;color:inherit;background:0 0;border:1px solid #39476d;padding:0 3px;line-height:1.3}.arcade-shell .ready-dock{bottom:calc(120px + env(safe-area-inset-bottom))}.arcade-shell .ready-dock.lobby-ready-dock{bottom:max(12px, env(safe-area-inset-bottom))}@media (width<=700px),(pointer:coarse){.arcade-shell .ready-dock.lobby-ready-dock,.arcade-shell .tetris-touch,.snake-touch,.tower-touch,.pong-touch,.chat-toggle,.arcade-shell .joystick{bottom:calc(120px + env(safe-area-inset-bottom))}.pong-touch{bottom:calc(136px + env(safe-area-inset-bottom))}.arcade-shell .opponent-column{bottom:calc(180px + env(safe-area-inset-bottom))}.arcade-shell .tetris-column .game-boards{bottom:calc(284px + env(safe-area-inset-bottom))}.snake-board.game-boards{bottom:calc(190px + env(safe-area-inset-bottom))}.tower-board.game-boards{bottom:calc(210px + env(safe-area-inset-bottom))}}@media (pointer:coarse) and (width>=701px) and (height<=500px){.arcade-shell .tetris-column .game-boards,.tower-board.game-boards{bottom:120px}}:root .debug-bar{z-index:40;background:#080d20;align-items:center;gap:12px;min-height:54px;padding:8px 16px;display:flex;position:absolute;inset:0 0 auto}.debug-bar strong{margin-right:auto}.debug-bar span{font-size:12px}.debug-note{z-index:30;margin:0;font-size:12px;position:absolute;top:58px;left:16px;right:16px}.debug-stage{pointer-events:none;position:absolute;inset:100px 0 0}.debug-stage .arcade-hud,.debug-stage .ready-dock,.debug-stage .chat-toggle,.debug-stage .chat-feed,.debug-stage .performance-hud{visibility:hidden}.debug-report{flex-direction:column;gap:12px;display:flex;position:absolute;inset:70px 16px 16px}.debug-report h1{margin:0;font-size:20px}.debug-report p{margin:0;font-size:13px}.debug-actions{flex-wrap:wrap;gap:8px;display:flex}.debug-report textarea{resize:none;color:#eaffff;background:#080d20;border:1px solid #39476d;flex:1;width:100%;min-height:60px;padding:12px;font:12px monospace}@media (width<=700px){.debug-bar{flex-wrap:wrap;gap:4px;padding:6px 10px}.debug-bar strong{font-size:12px}.debug-bar button{padding:6px;font-size:12px}.debug-stage{top:120px}.debug-report{top:80px}}
