@import url('/assets/fonts.css');
:root{color-scheme:dark;--ink:#0d1230;--navy:#151947;--violet:#35216d;--purple:#6a3e9f;--cream:#fff7dc;--gold:#ffdd75;--mango:#ffc85c;--mint:#79ead2;--pink:#f582b1;--line:#ffffff31;font-family:'Chakra Petch',system-ui,sans-serif;background:#10143a;color:var(--cream)}*{box-sizing:border-box}body{min-width:320px;margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -8%,#743f9b 0%,#21215a 36%,#101435 72%)}button,input,select{font:inherit}button{cursor:pointer}.arcade-page::before{content:'';position:fixed;inset:0;z-index:-1;opacity:.25;background:repeating-radial-gradient(ellipse at center,#fff0 0 45px,#eee6ff1a 46px 48px);pointer-events:none}.app-shell{width:min(1180px,calc(100% - 32px));margin:auto;padding:24px 0 42px}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:45px;height:45px;border:2px solid #ffe8a8;border-radius:13px;color:#ffdc77;background:linear-gradient(145deg,#743e92,#26356a);box-shadow:0 4px 0 #0d1030,0 0 20px #f9d76d55;font-size:27px}.brand b{display:block;color:#fff8dc;font-size:28px;line-height:.83}.brand small{display:block;margin-top:6px;color:#bcd7ff;font:7px 'Press Start 2P';letter-spacing:.5px}.top-copy{display:flex;flex-direction:column;gap:4px;color:#b9ccff;font-size:13px}.top-copy span,.eyebrow{color:#ffdc7b;font:8px 'Press Start 2P';letter-spacing:.4px}.top-copy b{font-size:14px}.site-nav{display:flex;justify-content:flex-end;gap:5px}.site-nav a{display:grid;min-width:54px;padding:6px 5px;border:1px solid transparent;border-radius:10px;color:#bcd0ff;text-decoration:none;text-align:center;transition:.15s}.site-nav a:hover,.site-nav a[aria-current=page]{border-color:#ffe7a071;color:#fff5cb;background:#ffffff12}.site-nav span{font-size:18px;line-height:18px}.site-nav small{margin-top:3px;font:5px 'Press Start 2P'}
.lobby-hero{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:36px;min-height:320px;margin:28px 0 22px;padding:34px 48px;border:1px solid #ffffff36;border-radius:26px;background:linear-gradient(120deg,#1b245dda,#4d2a75b8),url('/assets/table-background.png') center/cover;box-shadow:inset 0 1px #ffffff2b,0 16px 40px #05072255}.lobby-hero h1{margin:13px 0 12px;color:#fff7d8;font:clamp(34px,6vw,68px)/.88 'Press Start 2P';letter-spacing:-3px;text-shadow:4px 5px #33154c}.lobby-hero h1 em{color:#ffda79;font-style:normal}.lobby-hero p{max-width:520px;margin:0;color:#e8e5ff;font-size:18px;line-height:1.45}.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:19px}.hero-tags span,.rank-chip{padding:7px 9px;border:1px solid #ffffff45;border-radius:8px;color:#d9f8ee;background:#182355ae;font:6px 'Press Start 2P'}.hero-court{position:relative;display:grid;place-items:center;min-height:220px;overflow:hidden}.hero-court::before,.hero-court::after{content:'';position:absolute;border:2px dashed #ffde8b77;border-radius:50%}.hero-court::before{width:220px;height:220px}.hero-court::after{width:154px;height:154px;border-color:#82eadc77}.hero-court i{position:absolute;z-index:1;display:grid;place-items:center;width:75px;height:75px;border:2px solid #ffeaac;border-radius:50%;color:#ffdd79;background:#3d2968;box-shadow:0 0 24px #ffdc7a66;font-size:38px;font-style:normal}.hero-court i:nth-child(1){top:11px;left:18%}.hero-court i:nth-child(2){right:13%;bottom:19px;color:#ffc2e3}.hero-court i:nth-child(3){bottom:6%;left:11%;color:#baf4df}.hero-court i:nth-child(4){top:15%;right:6%;color:#ffaac5}.hero-court b{z-index:2;color:#fff7dc;font:24px 'Press Start 2P';text-shadow:0 3px #281642}.lobby-grid{display:grid;grid-template-columns:1fr 1fr .7fr;gap:16px}.surface{min-width:0;padding:23px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#28336dd9,#192253e8);box-shadow:inset 0 1px #ffffff1b,0 8px 22px #09102b55}.surface h2{margin:10px 0 18px;color:#fff3cf;font:16px 'Press Start 2P';line-height:1.5}.surface p{color:#d8e2ff;font-size:16px;line-height:1.45}.surface label{display:block;margin:14px 0;color:#dce7ff;font-size:13px;font-weight:600}.surface input,.surface select{display:block;width:100%;margin-top:6px;padding:11px 12px;border:1px solid #ffffff38;border-radius:10px;outline:0;color:#fff8df;background:#111a45}.surface input:focus,.surface select:focus{border-color:#ffdc75;box-shadow:0 0 0 3px #ffdc7533}.check-row{display:flex!important;align-items:center;gap:9px}.check-row input{display:inline;width:auto;margin:0;accent-color:#ffce65}.primary-button,.secondary-button,.text-button{border:0;border-radius:11px;font-weight:700}.primary-button{width:100%;margin-top:13px;padding:13px 15px;color:#583b40;background:linear-gradient(135deg,#ffed9b,#f5bd5d);box-shadow:0 4px #b9793e}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.45}.secondary-button{padding:10px 13px;color:#eafff7;background:linear-gradient(135deg,#417e9c,#2b4e83);box-shadow:0 3px #172d5d}.text-button{padding:3px 0;color:#ffe18c;background:transparent;font-size:11px}.status-line{display:block;min-height:27px;margin-top:13px;color:#bdeee4;font:10px 'Press Start 2P';line-height:1.55}.join-code-row{display:flex;gap:8px}.join-code-row input{margin:0;min-width:0;font-family:'Press Start 2P';letter-spacing:2px}.lobby-divider{display:grid;place-items:center;margin:20px 0;border-bottom:1px solid #ffffff2a;line-height:0}.lobby-divider span{padding:0 9px;color:#aebfe9;background:#202b61;font:7px 'Press Start 2P'}.open-rooms-head{display:flex;justify-content:space-between;align-items:center;color:#e7efff;font:8px 'Press Start 2P'}.room-list{max-height:240px;margin:0;padding:0;overflow:auto;list-style:none}.room-list li{display:flex;justify-content:space-between;gap:9px;align-items:center;padding:12px 0;border-top:1px solid #ffffff20}.room-list b,.room-list small{display:block}.room-list b{color:#fff3cf}.room-list small{margin-top:3px;color:#bcd1fa;font-size:12px}.network-card{display:flex;flex-direction:column}.network-light{display:flex;align-items:center;gap:8px;margin:16px 0 4px;color:#bff7e8;font:10px 'Press Start 2P'}.network-light i{width:12px;height:12px;border-radius:50%;background:#63edcf;box-shadow:0 0 12px #63edcf}.network-card dl{margin:auto 0 13px}.network-card dl div{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid #ffffff20}.network-card dt{color:#b6c8f3;font:7px 'Press Start 2P'}.network-card dd{margin:0;color:#ffe192;font:8px 'Press Start 2P'}.inline-link{color:#ffe18a;font:9px 'Press Start 2P';text-decoration:none}.footer-bar{display:flex;justify-content:space-between;gap:16px;margin-top:19px;color:#adc3ee;font:7px 'Press Start 2P'}
.content-page{max-width:850px;margin:42px auto}.page-card{padding:31px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#29366edb,#171e4ddd);box-shadow:0 15px 35px #080c2d77}.page-card h1{margin:11px 0 10px;color:#fff1bf;font:25px 'Press Start 2P';line-height:1.45}.page-card p{color:#dce7ff;font-size:17px;line-height:1.5}.profile-grid,.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.stat{padding:16px;border:1px solid #ffffff26;border-radius:13px;background:#131a47aa;text-align:center}.stat b{display:block;color:#ffde81;font:18px 'Press Start 2P'}.stat small{display:block;margin-top:8px;color:#b5c9f5;font:7px 'Press Start 2P'}.leaderboard-list{margin:20px 0 0;padding:0;list-style:none}.leaderboard-list li{display:grid;grid-template-columns:40px 1fr 92px 70px;gap:12px;align-items:center;padding:14px;border-bottom:1px solid #ffffff24}.leaderboard-list li:nth-child(1) b:first-child{color:#ffe27b}.leaderboard-list small{color:#b9cdf6}.leaderboard-list strong{color:#fff4c7;text-align:right}.rules-list{display:grid;gap:10px;margin:20px 0;padding:0;list-style:none}.rules-list li{padding:15px;border:1px solid #ffffff2a;border-radius:12px;background:#131c4caa;color:#dce7ff;line-height:1.5}.rules-list b{display:block;margin-bottom:5px;color:#ffdf88}.form-row{display:flex;gap:10px;align-items:end}.form-row input{flex:1}
.game-shell{width:min(1180px,calc(100% - 26px));margin:auto;padding:20px 0 38px}.game-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}.room-head{color:#c7d8ff;text-align:center}.room-head b{display:block;color:#ffdf87;font:12px 'Press Start 2P'}.room-head small{display:block;margin-top:7px;font:7px 'Press Start 2P'}.game-actions{display:flex;gap:7px}.game-actions button{padding:8px 10px;border:1px solid #ffffff37;border-radius:9px;color:#fff7d9;background:#273568;font:7px 'Press Start 2P'}.game-table{position:relative;min-height:480px;margin-top:20px;overflow:visible;border:1px solid #ffffff35;border-radius:28px;background:radial-gradient(ellipse at center,#392d7bb8,#14204ddd 64%,#0d1237ee),url('/assets/table-background.png') center/cover;box-shadow:inset 0 1px #ffffff24,0 18px 35px #05082477}.game-table::before{content:'';position:absolute;inset:14px;border:1px dashed #78ede177;border-radius:50%;pointer-events:none}.table-status{position:absolute;z-index:5;top:16px;left:50%;width:min(520px,88%);padding:10px 16px;transform:translateX(-50%);border:1px solid #ffffff45;border-radius:13px;color:#fff9e8;background:#18265bdc;text-align:center;font-weight:700;box-shadow:0 4px 13px #07102a88}.seats{position:absolute;inset:0}.seat{position:absolute;z-index:2;display:flex;align-items:center;gap:8px;transform:translate(-50%,-50%);filter:drop-shadow(0 3px 0 #0b143266)}.seat[data-slot="1"]{top:29%;left:15%}.seat[data-slot="2"]{top:17%;left:50%}.seat[data-slot="3"]{top:29%;left:85%}.seat[data-slot="4"]{top:55%;left:93%}.seat[data-slot="5"]{top:55%;left:7%}.seat-stack{position:relative;min-width:58px;height:78px}.card-back{position:absolute;width:52px;height:74px;border:2px solid #f9e6b7;border-radius:7px;background:linear-gradient(135deg,#d66b9c,#604b9e);box-shadow:2px 3px #0d183c}.card-back::after{content:'✦';position:absolute;inset:6px;border:1px solid #ffe0a1;border-radius:4px;color:#ffe0a1;font-size:25px;line-height:54px;text-align:center}.stack-count{position:absolute;z-index:2;top:-5px;left:50%;padding:3px 6px;transform:translateX(-50%);border-radius:8px;color:#4d3544;background:#ffce69;font:8px 'Press Start 2P';box-shadow:0 2px #b8763a}.seat-name{max-width:120px;color:#fff8df;font-weight:700;text-shadow:0 2px #10194a}.seat-name small{display:block;margin-top:2px;color:#b9d2ff;font:6px 'Press Start 2P';white-space:nowrap}.seat.current .seat-stack{filter:drop-shadow(0 0 6px #ffe478) drop-shadow(0 0 16px #ffe478)}.seat.current .seat-name{color:#ffec9b}.seat.you{display:none}.pile-zone{position:absolute;z-index:4;top:54%;left:50%;width:310px;min-height:182px;transform:translate(-50%,-50%);text-align:center}.turn-arrow{color:#83f1e4;font-size:29px;text-shadow:0 0 13px #33dbd4}.pile-label{margin:4px 0;color:#fff5d6;font:7px 'Press Start 2P'}.pile{display:flex;justify-content:center;align-items:center;min-height:116px}.pile-card{width:79px;height:111px;margin-right:-45px;filter:drop-shadow(2px 4px 5px #070c26a8)}.pile-card:last-child{margin-right:0}.empty-pile{display:grid;place-items:center;width:94px;height:116px;border:2px dashed #ffe6acaa;border-radius:12px;color:#fff0ca;background:#1a2b5dbb;font:7px 'Press Start 2P';line-height:1.7}.pile-detail{margin:5px 0;color:#d5e4ff;font-size:14px}.flight-layer{position:absolute;z-index:8;inset:0;pointer-events:none}.flight-card{position:absolute;top:53%;left:50%;width:62px;height:88px;border:2px solid #f9e6b7;border-radius:7px;opacity:0;background:linear-gradient(135deg,#d66b9c,#604b9e);box-shadow:0 4px 12px #060a25;animation:table-flight .7s cubic-bezier(.2,.75,.2,1) forwards}.flight-card::after{content:'✦';position:absolute;inset:6px;border:1px solid #ffe0a1;border-radius:4px;color:#ffe0a1;font-size:24px;line-height:64px;text-align:center}@keyframes table-flight{0%{opacity:0;transform:translate(calc(-50% + var(--from-x)),calc(-50% + var(--from-y))) scale(.66)}12%{opacity:1}100%{opacity:.15;transform:translate(calc(-50% + var(--to-x)),calc(-50% + var(--to-y))) scale(.78)}}.player-area{margin-top:17px;padding:15px;border:1px solid #ffffff34;border-radius:20px;background:#182253d1;box-shadow:inset 0 1px #ffffff20}.player-meta{display:flex;justify-content:center;align-items:center;gap:10px;color:#dbe8ff}.player-meta b{color:#fff4d9;font-size:18px}.role-badge{padding:5px 7px;border-radius:7px;color:#47345b;background:#ffdc80;font:6px 'Press Start 2P'}.hand{display:flex;justify-content:center;align-items:flex-end;min-height:151px;padding:12px;overflow:visible}.card{flex:0 0 79px;height:111px;margin-right:-36px;padding:0;overflow:visible;border:0;border-radius:9px;background:transparent;filter:drop-shadow(0 4px 5px #07112a88);transition:transform .15s,filter .15s}.card:last-child{margin-right:0}.card img{width:100%;height:100%;border-radius:9px}.card.selectable:hover,.card.selected{transform:translateY(-20px);filter:drop-shadow(0 0 8px #ffe378) drop-shadow(0 6px 6px #07112a88)}.card.selected{outline:3px solid #f5c85e;border-radius:9px}.controls{display:flex;justify-content:center;gap:10px}.controls button{padding:13px 22px;border:0;border-radius:12px;color:#fff8e6;font:8px 'Press Start 2P';box-shadow:0 4px #08112e}.controls .play{background:linear-gradient(135deg,#e36591,#b9467c)}.controls .pass{background:linear-gradient(135deg,#4e719f,#344b7c)}.controls button:disabled{cursor:not-allowed;opacity:.42;filter:grayscale(.7)}.exchange-panel,.table-lobby{position:absolute;z-index:9;top:50%;left:50%;width:min(480px,92%);padding:22px;transform:translate(-50%,-50%);border:2px solid #ffe29a;border-radius:20px;color:#fff8dd;background:linear-gradient(135deg,#28174edf,#583073e8);box-shadow:0 0 0 5px #69449966,0 15px 38px #070a27cc;text-align:center}.exchange-panel h2,.table-lobby h2{margin:5px 0 9px;color:#ffdf85;font:14px 'Press Start 2P';line-height:1.6}.exchange-panel p,.table-lobby p{color:#dbeaff}.exchange-cards{display:flex;justify-content:center;gap:7px;margin:12px 0}.exchange-cards img{width:55px;height:78px;border-radius:7px}.exchange-panel .primary-button{max-width:270px}.toast{position:fixed;z-index:22;bottom:18px;left:50%;padding:11px 17px;transform:translate(-50%,15px);opacity:0;border-radius:14px;color:#533745;background:#ffe08a;box-shadow:0 5px #b9793d,0 10px 22px #02052177;font-weight:700;transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}
@media(max-width:850px){.topbar{grid-template-columns:1fr auto}.top-copy{display:none}.site-nav{grid-column:1/-1;justify-content:space-between}.site-nav a{flex:1}.lobby-hero{grid-template-columns:1fr;padding:30px;min-height:0}.hero-court{display:none}.lobby-grid{grid-template-columns:1fr}.network-card{display:none}.game-table{min-height:440px}.seat[data-slot="1"]{top:32%;left:15%}.seat[data-slot="2"]{top:20%;left:50%}.seat[data-slot="3"]{top:32%;left:85%}.seat[data-slot="4"]{top:57%;left:89%}.seat[data-slot="5"]{top:57%;left:11%}.seat{gap:3px}.seat-name{max-width:74px;font-size:12px}.seat-stack{transform:scale(.82)}.pile-zone{transform:translate(-50%,-50%) scale(.84)}.game-head{grid-template-columns:1fr auto}.game-head .room-head{display:none}.footer-bar{font-size:5px}.leaderboard-list li{grid-template-columns:28px 1fr 60px}.leaderboard-list li small:last-child{display:none}}
@media(max-width:480px){.app-shell,.game-shell{width:calc(100% - 16px);padding-top:14px}.brand b{font-size:23px}.site-nav small{font-size:4px}.site-nav a{min-width:0}.lobby-hero{padding:24px}.lobby-hero h1{font-size:35px}.page-card{padding:20px}.profile-grid,.stat-grid{grid-template-columns:1fr}.game-table{margin-top:12px;border-radius:18px}.seat-stack{transform:scale(.65)}.seat-name{display:none}.pile-zone{transform:translate(-50%,-50%) scale(.72)}.card{flex-basis:62px;height:88px;margin-right:-30px}.hand{min-height:124px}.controls button{padding:12px 14px;font-size:6px}.game-actions button{font-size:6px}.exchange-panel{padding:16px}}

.mode-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:20px}.mode-actions a{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center;min-width:196px;padding:12px 15px;border:1px solid #fff3bb99;border-radius:13px;color:#3e3045;font:10px 'Press Start 2P';text-decoration:none;box-shadow:0 4px #a86d3c;transition:transform .15s,filter .15s}.mode-actions a:hover{transform:translateY(-2px);filter:brightness(1.08)}.mode-actions a:focus-visible{outline:3px solid #b6fff4;outline-offset:3px}.mode-actions a span{grid-row:1/3;font-size:24px}.mode-actions small{grid-column:2;margin-top:5px;color:#684e62;font:5px 'Press Start 2P'}.play-now{background:linear-gradient(135deg,#ffeda7,#f2bd5b)}.create-online{background:linear-gradient(135deg,#aaf1df,#6bc7d6)}

/* Each non-table page receives its own fixed arcade scene. The play table keeps its existing background. */
body.lobby-page{background:radial-gradient(ellipse at 50% -14%,#ffbd6c60 0 17%,#b2468a42 32%,transparent 55%),radial-gradient(circle at 8% 27%,#7df5df27 0 2px,transparent 3px),radial-gradient(circle at 91% 19%,#ffe7983b 0 2px,transparent 3px),linear-gradient(155deg,#191245 0%,#352066 47%,#102a52 100%);background-attachment:fixed}body.lobby-page::before{opacity:.55;background:linear-gradient(135deg,transparent 0 47%,#ffd98312 47% 49%,transparent 49% 100%),repeating-linear-gradient(90deg,transparent 0 88px,#ffe6ab0b 89px 91px),repeating-linear-gradient(0deg,transparent 0 88px,#ffe6ab0a 89px 91px)}body.lobby-page .surface{background:linear-gradient(145deg,#342667e8,#17275ae8);border-color:#ffe4aa42}body.lobby-page .lobby-hero{box-shadow:inset 0 1px #fff3d64a,0 18px 42px #070c3488,0 0 60px #f28d8840}
body.profile-page{background:radial-gradient(ellipse at 20% 2%,#83e7d645 0 16%,transparent 43%),radial-gradient(ellipse at 88% 79%,#f6bd7a2a 0 12%,transparent 44%),linear-gradient(148deg,#0f3456 0%,#193d67 40%,#36235f 100%);background-attachment:fixed}body.profile-page::before{opacity:.48;background:repeating-linear-gradient(125deg,transparent 0 37px,#bffce50b 38px 40px),repeating-linear-gradient(55deg,transparent 0 78px,#ffe2a10c 79px 80px)}body.profile-page .page-card{border-color:#96f5df5c;background:linear-gradient(145deg,#1c536cd9,#1c2857ec);box-shadow:inset 0 1px #d8fff83d,0 18px 42px #071d3880,0 0 55px #64d7ca1c}body.profile-page .stat{background:linear-gradient(145deg,#173f61c9,#182656d9);border-color:#9cf2df40}
body.leaderboard-page{background:radial-gradient(ellipse at 50% -10%,#ffce6e58 0 18%,transparent 49%),radial-gradient(circle at 17% 30%,#fff5b828 0 2px,transparent 3px),radial-gradient(circle at 77% 19%,#fff5b81d 0 2px,transparent 3px),linear-gradient(160deg,#201344 0%,#4a2769 49%,#27134f 100%);background-attachment:fixed}body.leaderboard-page::before{opacity:.58;background:repeating-radial-gradient(ellipse at 50% 24%,transparent 0 70px,#ffd9780c 71px 73px,transparent 74px 142px),linear-gradient(90deg,transparent 0 10%,#fbe2960a 10.2% 10.4%,transparent 10.6% 89.4%,#fbe2960a 89.6% 89.8%,transparent 90%)}body.leaderboard-page .page-card{border-color:#ffe39d73;background:linear-gradient(145deg,#4d2d70df,#1c1b51ee);box-shadow:inset 0 1px #fff4c348,0 18px 43px #1005228a,0 0 68px #f4bf6726}body.leaderboard-page .leaderboard-list li{border-bottom-color:#ffe4a92e;background:linear-gradient(90deg,#fff0b707,transparent 68%)}
body.rules-page{background:radial-gradient(ellipse at 6% 8%,#e0a36532 0 13%,transparent 43%),radial-gradient(ellipse at 94% 90%,#a97dd842 0 15%,transparent 45%),linear-gradient(145deg,#201333 0%,#342047 47%,#17264a 100%);background-attachment:fixed}body.rules-page::before{opacity:.53;background:repeating-linear-gradient(0deg,transparent 0 48px,#ffe9bf09 49px 50px),repeating-linear-gradient(90deg,transparent 0 48px,#cf92e30a 49px 50px),linear-gradient(45deg,transparent 0 49%,#ffe1a10a 50% 51%,transparent 52% 100%)}body.rules-page .page-card{border-color:#e9c8916b;background:linear-gradient(145deg,#3c2854e8,#1c3157ec);box-shadow:inset 0 1px #ffeccd3b,0 18px 43px #09091f86,0 0 65px #cb83ce26}body.rules-page .rules-list li{border-color:#f5d59a38;background:linear-gradient(145deg,#44315aac,#20365aaa)}
