:root{--bg:#060a09;--felt-in:#1f8a63;--felt-out:#0a3324;--rail:#1a1310;--rail-hi:#2e2119;--gold:#e2c185;--gold-dim:#8d7448;--ink:#f2ede4;--ink-dim:#9aa3a0;--chip:#d8b04a;--fold:#39434e;--call:#17845a;--raise:#bc7f30;--danger:#b8433c;--seat-bg:#060e0cd1;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font-variant-numeric:tabular-nums;font-family:inherit}.shell{flex-direction:column;max-width:560px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}.topbar{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);justify-content:space-between;align-items:center;padding:10px 14px 6px;font-size:12px;display:flex}.topbar .brand{color:var(--gold);letter-spacing:.16em;font-weight:700}.iconbtn{color:var(--gold);cursor:pointer;background:0 0;border:1px solid #e2c18547;border-radius:999px;place-items:center;width:32px;height:32px;font-size:14px;display:grid}.iconbtn:active{transform:scale(.94)}.tablewrap{flex:auto;min-height:0;padding:8px 10px 0;position:relative}.table{background:radial-gradient(ellipse 62% 52% at 50% 42%, var(--felt-in) 0%, #146146 46%, var(--felt-out) 100%);width:100%;height:100%;box-shadow:0 0 0 9px var(--rail), 0 0 0 10px #e2c1854d, 0 0 0 15px var(--rail-hi), 0 26px 50px #000000a6, inset 0 0 90px #0000006b;border-radius:46%/38%;position:relative}.table:after{content:"";pointer-events:none;border:1px solid #e2c18524;border-radius:46%/38%;position:absolute;inset:7%}.center{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.potline{color:var(--gold);letter-spacing:.05em;white-space:nowrap;background:#0000006b;border:1px solid #e2c18538;border-radius:999px;align-items:center;gap:7px;padding:4px 14px;font-size:13px;font-weight:700;display:inline-flex}.potline .dot{background:radial-gradient(circle at 35% 30%, #f0d68f, var(--chip));border-radius:50%;width:9px;height:9px;box-shadow:0 0 6px #d8b04ab3}.board{align-items:center;gap:5px;min-height:62px;display:flex}.msg{letter-spacing:.06em;min-height:18px;color:var(--gold);text-shadow:0 1px 6px #000c;text-align:center;padding:0 12px;font-size:12px}.seat{flex-direction:column;align-items:center;gap:3px;width:92px;transition:opacity .3s;display:flex;position:absolute;transform:translate(-50%,-50%)}.seat.out{opacity:.38}.avatarwrap{width:46px;height:46px;position:relative}.avatar{color:#08110e;border:2px solid #00000080;border-radius:50%;place-items:center;width:46px;height:46px;font-size:17px;font-weight:700;display:grid;box-shadow:0 4px 12px #00000080}.ring{pointer-events:none;position:absolute;inset:-5px;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:3.5px;stroke-linecap:round}.ring .bg{stroke:#00000073}.ring .fg{stroke:var(--gold);transition:stroke-dashoffset .25s linear}.namebar{background:var(--seat-bg);text-align:center;border:1px solid #ffffff14;border-radius:7px;width:100%;padding:3px 6px 4px;line-height:1.25}.seat.acting .namebar{border-color:var(--gold);box-shadow:0 0 14px #e2c18559}.namebar .n{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.namebar .s{color:var(--gold);font-size:12px;font-weight:700;display:block}.namebar .s.allin{color:var(--danger)}.minicards{gap:2px;height:30px;display:flex}.bet{color:var(--chip);white-space:nowrap;background:#0000008c;border:1px solid #d8b04a59;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:700;animation:.22s ease-out pop;display:inline-flex;position:absolute}.dealer{color:#12241d;background:linear-gradient(160deg,#fff,#cfd3cf);border-radius:50%;place-items:center;width:21px;height:21px;font-size:11px;font-weight:800;display:grid;position:absolute;box-shadow:0 2px 7px #0009}.tag{letter-spacing:.1em;background:var(--danger);color:#fff;border-radius:999px;padding:1px 7px;font-size:9px;font-weight:700;position:absolute;top:-7px;left:50%;transform:translate(-50%)}.tag.win{background:var(--gold);color:#14100a}.card{color:#16181c;background:linear-gradient(175deg,#fdfcf8,#e9e5dc);border-radius:5px;flex-direction:column;justify-content:space-between;animation:.3s cubic-bezier(.2,.9,.3,1.2) backwards deal;display:flex;position:relative;overflow:hidden;box-shadow:0 3px 9px #00000080}.card.red{color:#c0392b}.card .r{font-weight:800;line-height:1}.card .p{opacity:.9;position:absolute;bottom:3%;right:6%}.card.back{background:repeating-linear-gradient(45deg,#1d3f77 0 5px,#16325f 5px 10px);box-shadow:0 3px 9px #00000080,inset 0 0 0 2px #ffffff24}.card.dim{filter:brightness(.52)saturate(.6)}.card.hl{box-shadow:0 0 0 2px var(--gold), 0 0 18px #e2c185a6}.hero{padding:4px 12px calc(8px + var(--safe-b));flex:none}.herocards{z-index:3;justify-content:center;gap:8px;margin:-30px 0 4px;display:flex;position:relative}.herocards .card:first-child{transform:rotate(-6deg)translateY(2px)}.herocards .card:last-child{transform:rotate(6deg)translateY(2px)}.heroinfo{color:var(--ink-dim);justify-content:center;align-items:center;gap:10px;margin-bottom:7px;font-size:12px;display:flex}.heroinfo b{color:var(--gold);font-size:14px}.quick{gap:6px;margin-bottom:7px;display:flex}.quick button{color:var(--gold);cursor:pointer;background:#ffffff0d;border:1px solid #e2c18533;border-radius:8px;flex:1;padding:7px 0;font-size:11px;font-weight:700}.quick button:active{background:#e2c18529}.quick button:disabled{opacity:.3}.slider{align-items:center;gap:10px;margin-bottom:8px;display:flex}.slider input{accent-color:var(--raise);flex:1;height:26px}.slider .amt{text-align:center;min-width:66px;color:var(--gold);font-size:14px;font-weight:800}.actions{gap:8px;display:flex}.actions button{color:#fff;letter-spacing:.03em;cursor:pointer;border:none;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1px;min-height:54px;font-size:14px;font-weight:800;transition:transform 80ms;display:flex;box-shadow:0 4px #00000059,0 8px 18px #0006}.actions button:active{transform:translateY(2px);box-shadow:0 2px #00000059}.actions button:disabled{opacity:.32;box-shadow:none}.actions .sub{opacity:.85;font-size:11px;font-weight:600}.actions .f{background:linear-gradient(180deg, #4a5561, var(--fold))}.actions .c{background:linear-gradient(180deg, #21a06c, var(--call))}.actions .r{background:linear-gradient(180deg, #d9964a, var(--raise))}.waiting{min-height:54px;color:var(--ink-dim);letter-spacing:.1em;text-transform:uppercase;place-items:center;font-size:12px;display:grid}.nexthand{background:linear-gradient(180deg, #f0d795, var(--gold));color:#14100a;letter-spacing:.04em;cursor:pointer;border:none;border-radius:12px;width:100%;min-height:54px;font-size:15px;font-weight:800;box-shadow:0 4px #00000059,0 8px 18px #0006}.nexthand:active{transform:translateY(2px)}.log{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#030706f0;padding:16px;position:absolute;inset:0;overflow-y:auto}.log h2{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:13px}.log ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.log li{color:var(--ink-dim);border-bottom:1px solid #ffffff0d;padding-bottom:6px;font-size:12px}.log li b{color:var(--ink)}.log .close{position:absolute;top:12px;right:14px}@keyframes deal{0%{opacity:0;transform:translateY(-26px)scale(.82)}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes glow{0%,to{box-shadow:0 0 0 2px var(--gold), 0 0 14px #e2c18580}50%{box-shadow:0 0 0 2px var(--gold), 0 0 26px #e2c185f2}}.win-glow{animation:1.1s ease-in-out infinite glow}@media (prefers-reduced-motion:reduce){.card,.bet,.win-glow{animation:none}}@media (max-height:700px){.seat{width:82px}.avatarwrap,.avatar{width:40px;height:40px}.herocards{margin-top:-24px}}.screen{min-height:0;padding:20px 20px calc(20px + var(--safe-b));flex-direction:column;flex:auto;gap:18px;display:flex;overflow-y:auto}.title{color:var(--gold);letter-spacing:.04em;text-align:center;margin:10px 0 0;font-size:26px;font-weight:800}.subtitle{color:var(--ink-dim);text-align:center;margin:-12px 0 4px;font-size:13px}.field{flex-direction:column;gap:6px;display:flex}.field label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-size:11px}.field input{color:var(--ink);font-variant-numeric:tabular-nums;background:#ffffff0d;border:1px solid #e2c18540;border-radius:10px;outline:none;padding:12px 14px;font-size:16px}.field input:focus{border-color:var(--gold)}.field input.codeinput{text-transform:uppercase;letter-spacing:.3em;text-align:center;font-size:20px;font-weight:800}.btn{letter-spacing:.03em;cursor:pointer;border:none;border-radius:12px;min-height:52px;font-size:15px;font-weight:800;transition:transform 80ms;box-shadow:0 4px #00000059,0 8px 18px #0006}.btn:active{transform:translateY(2px);box-shadow:0 2px #00000059}.btn:disabled{opacity:.35;box-shadow:none}.btn.primary{background:linear-gradient(180deg, #f0d795, var(--gold));color:#14100a}.btn.secondary{color:var(--ink);box-shadow:none;background:#ffffff0f;border:1px solid #e2c18540}.btn.secondary:active{transform:translateY(1px)}.btn.danger{background:linear-gradient(180deg, #c95850, var(--danger));color:#fff}.btn.ghostlink{box-shadow:none;color:var(--ink-dim);background:0 0;border:none;min-height:auto;padding:4px;font-size:12px;text-decoration:underline}.formerror{color:var(--danger);text-align:center;font-size:12px}.codebox{background:#00000059;border:1px solid #e2c18547;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:16px;display:flex}.codebox .code{letter-spacing:.3em;color:var(--gold);font-size:30px;font-weight:800}.codebox button{color:var(--gold);cursor:pointer;background:0 0;border:1px solid #e2c18566;border-radius:8px;padding:6px 10px;font-size:12px}.playerlist{flex-direction:column;gap:8px;display:flex}.playerrow{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.playerrow .dot{color:#08110e;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:12px;font-weight:700;display:grid}.playerrow .nick{color:var(--ink);flex:1;font-size:14px}.playerrow .stack{color:var(--gold);font-size:13px;font-weight:700}.playerrow .badge{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:2px 6px;font-size:9px;font-weight:700}.playerrow .badge.host{background:var(--gold);color:#14100a}.playerrow .badge.you{color:var(--gold);background:#e2c1852e;border:1px solid #e2c18566}.playerrow.paused{opacity:.5}.banner{z-index:15;color:var(--gold);letter-spacing:.08em;pointer-events:none;background:#000000b3;border:1px solid #e2c1854d;border-radius:999px;padding:5px 12px;font-size:11px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.chatdrawer{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#030706f0;flex-direction:column;padding:16px;display:flex;position:absolute;inset:0}.chatdrawer h2{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;font-size:13px}.chatlog{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.chatmsg{color:var(--ink);font-size:13px}.chatmsg b{color:var(--gold);margin-right:6px}.chatform{gap:8px;margin-top:10px;display:flex}.chatform input{color:var(--ink);background:#ffffff0f;border:1px solid #e2c18540;border-radius:10px;outline:none;flex:1;padding:10px 12px}.chatform button{background:var(--gold);color:#14100a;cursor:pointer;border:none;border-radius:10px;padding:0 16px;font-weight:800}
