:root{--bg:#0b1f1a;--panel:#0e2822;--panel-2:#12302a;--line:#1c3a32;--line-2:#2a4d43;--back:#0e3530;--back-line:#2c7a66;--fg:#eaf2ee;--muted:#a9c2b8;--soft:#cfe3da;--you:#8be06b;--alert-bg:#c93a26;--cream:#fff8ec;--wild:#1e2a2f;--on-sun:#2a1a00;--sun:#f2a33a;--sun-ink:#7a4800;--leaf:#3fa86b;--leaf-ink:#1d6340;--wave:#3b82d6;--wave-ink:#1d4c94;--ember:#e0533c;--ember-ink:#9a2e1c;--f-display:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--f-body:Inter, "Segoe UI", system-ui, -apple-system, sans-serif;--cw:84px;--hand-h:160px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:14px/1.45 var(--f-body);-webkit-font-smoothing:antialiased;overscroll-behavior:none;overflow:hidden}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--sun);outline-offset:2px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;letter-spacing:-.01em;margin:0}kbd{font:600 11px var(--f-body);border:1px solid var(--line-2);color:var(--muted);background:var(--bg);border-radius:4px;padding:1px 5px}[hidden]{display:none!important}.app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);height:100%;display:grid}.top{padding-block:8px;padding-top:max(8px,env(safe-area-inset-top,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.brand{font:700 21px var(--f-display);letter-spacing:-.02em;white-space:nowrap;align-items:center;gap:8px;display:flex}.brand i{grid-template-columns:repeat(2,7px);gap:2px;display:grid}.brand i b{border-radius:2px;width:7px;height:7px}.chip{background:var(--panel-2);color:var(--soft);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;display:inline-flex}.chip svg{width:15px;height:15px}.spacer{flex:1}.btn{border:1px solid var(--line-2);background:var(--panel-2);min-height:44px;color:var(--fg);font:600 15px var(--f-body);cursor:pointer;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.btn:hover{border-color:var(--back-line)}.btn.sm{border-radius:10px;min-height:38px;padding:0 12px;font-size:14px}.btn.ghost{color:var(--muted);background:0 0}.btn.primary{background:var(--sun);border-color:var(--sun);color:var(--on-sun)}.btn.primary kbd{color:var(--on-sun);background:0 0;border-color:#2a1a0059}.btn.go{background:var(--you);border-color:var(--you);color:#132a0b}.btn.go kbd{color:#132a0b;background:0 0;border-color:#132a0b59}.btn.danger{background:var(--alert-bg);border-color:var(--alert-bg);color:#fff}.btn.danger kbd{color:#fff;background:0 0;border-color:#fff6}.btn.pulse{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 6px #f2a33a47}}.small{color:var(--muted);font-size:12px}.main{grid-template-columns:minmax(0,1fr) 300px;min-height:0;display:grid}#btnScores{display:none}.stage{touch-action:none;-webkit-user-select:none;user-select:none;min-width:0;min-height:0;position:relative;overflow:hidden}.gl{position:absolute;inset:0}.gl canvas{display:block}.labels{pointer-events:none;position:absolute;inset:0}.labels>*{position:absolute}.pilelabel{white-space:nowrap;text-shadow:0 1px 2px #000;transform:translate(-50%)}#suitChip{transform:translate(-50%)}.chips{gap:6px;display:flex;transform:translate(-50%,-100%)}.colorchip{background:var(--cc);color:#fff;font-weight:700}.colorchip.sun{color:var(--on-sun)}.pendchip{background:var(--alert-bg);color:#fff;font-weight:700}.dirchip.ccw svg{transform:scaleX(-1)}.dirchip.spin svg{animation:.6s spin}@keyframes spin{0%{rotate:0deg}to{rotate:360deg}}.seat{text-align:center;will-change:transform;flex-direction:column;align-items:center;gap:2px;width:110px;display:flex;top:0;left:0}.av{background:var(--line);border-radius:50%;place-items:center;width:52px;height:52px;display:grid;position:relative;box-shadow:0 6px 16px #0006}.av .ini{background:var(--panel-2);width:44px;height:44px;font:700 17px var(--f-display);color:var(--tint);border-radius:50%;place-items:center;display:grid}.seat.active .av{background:var(--tint);box-shadow:0 0 0 4px #ffffff14,0 0 24px var(--tint)}.badge{color:#fff;min-width:26px;height:26px;font:700 13px/22px var(--f-body);border:2px solid var(--bg);font-variant-numeric:tabular-nums;background:#2c5a4e;border-radius:13px;padding:0 6px;position:absolute;top:-5px;right:-9px}.seat.one .badge{background:var(--alert-bg)}.nm{text-shadow:0 1px 3px #000;font-size:14px;font-weight:600;line-height:1.2}.sub{color:var(--soft);text-shadow:0 1px 3px #000;font-size:11px;line-height:1.2}.tag{background:var(--sun);color:var(--on-sun);white-space:nowrap;z-index:3;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;animation:.25s pop;position:absolute;top:-28px;left:50%;transform:translate(-50%)}.tag.bad{background:var(--alert-bg);color:#fff}.tag.info{background:var(--line-2);color:var(--fg)}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.6)}}#toastSlot{max-width:calc(100% - 16px);top:10px;left:50%;transform:translate(-50%)}.toast{background:var(--panel);border:1px solid var(--line-2);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;animation:.25s fade;overflow:hidden;box-shadow:0 8px 20px #00000059}.toast.bad{background:var(--alert-bg);border-color:var(--alert-bg);color:#fff}.toast.good{background:var(--you);border-color:var(--you);color:#132a0b}@keyframes fade{0%{opacity:0;transform:translateY(-6px)}}.bar{left:0;right:0;bottom:var(--hand-h);padding:6px max(16px,env(safe-area-inset-right,0px)) 6px max(16px,env(safe-area-inset-left,0px));pointer-events:none;flex-wrap:wrap;align-items:center;gap:12px;min-height:60px;display:flex;position:absolute}.bar>*{pointer-events:auto}.me{align-items:center;gap:10px;min-width:0;display:flex}.ring{--p:100;--rc:var(--you);background:conic-gradient(var(--rc) calc(var(--p) * 1%),#24443b 0);border-radius:50%;flex:none;place-items:center;width:52px;height:52px;display:grid}.ring.idle{background:#24443b}.ring span{background:var(--panel-2);width:44px;height:44px;font:700 14px var(--f-display);color:var(--you);border-radius:50%;place-items:center;display:grid}.status{text-shadow:0 1px 3px #000;flex-direction:column;min-width:0;display:flex}.status b{font-size:15px}.status b.mine{color:var(--you)}.status span{color:var(--soft);font-size:12.5px}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.prompt{color:var(--soft);text-shadow:0 1px 3px #000;max-width:340px;font-size:13px}.handlabel{height:var(--hand-h);color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;bottom:0;left:0;right:0}.card{--frame:var(--wild);--ink:var(--wild);width:var(--cw);height:calc(var(--cw) * 1.46);padding:calc(var(--cw) * .065);border-radius:calc(var(--cw) * .14);background:var(--frame);text-align:left;border:0;flex:none;display:block;position:relative;box-shadow:0 6px 14px #00000059}.card.s-sun{--frame:var(--sun);--ink:var(--sun-ink)}.card.s-leaf{--frame:var(--leaf);--ink:var(--leaf-ink)}.card.s-wave{--frame:var(--wave);--ink:var(--wave-ink)}.card.s-ember{--frame:var(--ember);--ink:var(--ember-ink)}.face{width:100%;height:100%;padding:calc(var(--cw)*.06) calc(var(--cw)*.075);border-radius:calc(var(--cw)*.09);background:var(--cream);color:var(--ink);flex-direction:column;justify-content:space-between;display:flex;overflow:hidden}.corner{font:700 calc(var(--cw)*.17)/1 var(--f-display);white-space:nowrap}.big{font:700 calc(var(--cw)*.46)/1 var(--f-display);letter-spacing:-.03em;place-items:center;display:grid}.big svg{width:calc(var(--cw)*.46);height:calc(var(--cw)*.46);stroke-width:2.6px}.suit{min-height:calc(var(--cw)*.2);justify-content:flex-end;display:flex}.suit svg{width:calc(var(--cw)*.2);height:calc(var(--cw)*.2)}.disc{width:calc(var(--cw)*.56);height:calc(var(--cw)*.56);background:conic-gradient(var(--sun) 0 25%,var(--leaf) 0 50%,var(--wave) 0 75%,var(--ember) 0);box-shadow:0 0 0 calc(var(--cw)*.03) var(--wild);border-radius:50%;align-self:center;place-items:center;display:grid}.disc b{font:700 calc(var(--cw)*.24)/1 var(--f-display);color:#fff;text-shadow:0 1px 0 var(--wild),0 0 6px var(--wild)}.cb .card.s-sun{background-image:radial-gradient(#ffffff8c 1.3px,#0000 1.8px);background-size:6px 6px}.cb .card.s-leaf{background-image:repeating-linear-gradient(45deg,#fff6 0 2px,#0000 2px 6px)}.cb .card.s-wave{background-image:repeating-linear-gradient(0deg,#fff6 0 2px,#0000 2px 6px)}.cb .card.s-ember{background-image:repeating-linear-gradient(45deg,#00000047 0 2px,#0000 2px 6px),repeating-linear-gradient(-45deg,#00000047 0 2px,#0000 2px 6px)}.side{padding-block:16px;min-height:0;padding-left:16px;padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--panel);border-left:1px solid var(--line);flex-direction:column;gap:14px;display:flex;overflow:auto}.sidehead{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.sidehead h3{font-size:16px}.scores{flex-direction:column;gap:3px;display:flex}.srow,.shead{grid-template-columns:16px 10px minmax(0,1fr) 40px 40px 40px;align-items:center;gap:8px;display:grid}.srow{font-variant-numeric:tabular-nums;border-radius:8px;padding:6px 8px}.srow.me{background:#8be06b1f}.srow.turn{outline:1px solid var(--line-2)}.srow .r{color:var(--muted);text-align:right;font-size:12px}.srow .dot{border-radius:50%;width:10px;height:10px}.srow .n{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.srow.me .n{color:var(--you)}.srow .c{color:var(--muted);text-align:right;font-size:12px}.srow .t{text-align:right;font-weight:700}.shead{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:0 8px;font-size:11px}.shead span:nth-child(n+4){text-align:right}.prog{flex-direction:column;gap:6px;display:flex}.endser{align-self:flex-start;margin-top:8px}.track{background:var(--line);border-radius:3px;height:6px;display:block}.track i{background:var(--sun);border-radius:3px;height:6px;transition:width .6s;display:block}.rule{background:var(--line);flex:none;height:1px}.feed{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.feed li{background:var(--panel-2);color:var(--soft);border-radius:8px;padding:6px 10px;font-size:13px;line-height:1.35}.feed li.bad{color:#ffd9d2;background:#c93a2638}.feed li.good{color:#ddf5d3;background:#8be06b24}.feed li.sys{color:var(--muted);background:0 0;padding-block:2px}.emotes{flex-wrap:wrap;gap:6px;display:flex}.emotes .btn{border-radius:999px;min-height:34px;padding:0 12px;font-size:13px;font-weight:500}.keys{color:var(--muted);font-size:12px;line-height:1.9}.sideclose{display:none}.overlay{z-index:50;padding-block:16px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:#040e0bbd;place-items:center;display:grid;position:fixed;inset:0}.sheet{background:var(--panel);border:1px solid var(--line-2);border-radius:16px;flex-direction:column;gap:16px;width:100%;max-width:560px;max-height:calc(100dvh - 32px);padding:22px;display:flex;overflow:auto;box-shadow:0 30px 80px #00000080}.sheet.wide{max-width:680px}.sheet h2{font-size:22px}.sheet p{color:var(--soft);margin:0}.sheet .row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}fieldset{border:0;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;display:flex}legend{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;padding:0;font-size:12px;font-weight:600}.seg{flex-wrap:wrap;gap:6px;display:flex}.pill{position:relative}.pill input{opacity:0;width:1px;height:1px;position:absolute}.pill span{border:1px solid var(--line-2);background:var(--panel-2);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;min-height:40px;padding:0 14px;font-weight:600;display:inline-flex}.pill span small{color:var(--muted);font-size:11px;font-weight:400}.pill input:checked+span{background:var(--sun);border-color:var(--sun);color:var(--on-sun)}.pill input:checked+span small{color:var(--on-sun)}.pill input:focus-visible+span{outline-offset:2px;outline:2px solid #fff}.check{cursor:pointer;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:4px 10px;display:grid}.check input{width:18px;height:18px;accent-color:var(--sun);margin:2px 0 0}.check b{font-weight:600}.check small{color:var(--muted);grid-column:2;font-size:12.5px}.cols{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;display:grid}.colors{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.colorbtn{min-height:72px;font:700 18px var(--f-display);cursor:pointer;background:var(--cc);color:#fff;border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;display:flex}.colorbtn.sun{color:var(--on-sun)}.colorbtn svg{width:26px;height:26px}.colorbtn small{font:500 12px var(--f-body);opacity:.85}.targets{flex-direction:column;gap:8px;display:flex}.targets .btn{justify-content:space-between;width:100%}.res{flex-direction:column;gap:6px;display:flex}.resrow{background:var(--panel-2);font-variant-numeric:tabular-nums;border-radius:10px;grid-template-columns:minmax(70px,110px) minmax(0,1fr) 54px;align-items:center;gap:10px;padding:8px 10px;display:grid}.resrow.win{background:#8be06b24}.resrow .mini{flex-wrap:wrap;gap:3px;display:flex}.resrow .mini .card{--cw:26px}.resrow .mini .card .corner,.resrow .mini .card .suit{display:none}.resrow .pts{text-align:right;font-weight:700}.totals{flex-direction:column;gap:8px;display:flex}.tot{font-variant-numeric:tabular-nums;grid-template-columns:minmax(60px,100px) minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.tot b{text-align:right}.podium{justify-content:center;align-items:flex-end;gap:10px;padding-top:10px;display:flex}.pod{flex-direction:column;align-items:center;gap:6px;width:96px;display:flex}.pod .blk{background:var(--panel-2);width:100%;font:700 22px var(--f-display);border-radius:10px 10px 0 0;place-items:center;display:grid}.pod.p1 .blk{background:var(--sun);height:110px;color:var(--on-sun)}.pod.p2 .blk{height:80px}.pod.p3 .blk{height:58px}.rules{color:var(--soft);font-size:14px;line-height:1.55}.rules h3{color:var(--fg);margin:10px 0 4px;font-size:15px}.rules ul{margin:0;padding-left:18px}.rules table{border-collapse:collapse;width:100%;font-size:13px}.rules td{border-bottom:1px solid var(--line);padding:4px 6px}.lock{background:var(--panel-2);border-radius:10px;padding:10px 12px;font-size:13px}.confirm{border:1px solid var(--alert-bg);background:#c93a2624;border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}@media (max-width:1000px){.main{grid-template-columns:minmax(0,1fr)}#btnScores{display:inline-flex}.side{z-index:40;width:min(340px,92vw);padding-top:max(16px,env(safe-area-inset-top,0px));transition:transform .25s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-20px 0 60px #00000080}.side.open{transform:none}.sideclose{align-self:flex-end;display:inline-flex}.keys{display:none}}@media (max-width:640px){.top{gap:6px}.brand{font-size:18px}.top .chip.fmt{display:none}.top .btn.sm{min-height:36px;padding:0 9px;font-size:13px}.seat{width:78px}.av{width:42px;height:42px}.av .ini{width:35px;height:35px;font-size:14px}.badge{min-width:22px;height:22px;font-size:12px;line-height:18px;right:-8px}.nm{font-size:12.5px}.sub{font-size:10.5px}.btn{padding:0 12px;font-size:14px}.bar kbd,.prompt{display:none}.ring{width:44px;height:44px}.ring span{width:36px;height:36px;font-size:12px}.status span{display:none}}.compact .top{padding-block:4px}.compact .top .btn.sm{min-height:32px}.compact .top .chip.fmt{display:none}.compact .seat{width:74px}.compact .av{width:36px;height:36px}.compact .av .ini{width:30px;height:30px;font-size:12px}.compact .badge{min-width:20px;height:20px;font-size:11px;line-height:16px;top:-6px;right:-8px}.compact .nm{font-size:12px}.compact .sub{display:none}.compact .bar{min-height:0;padding-block:2px}.compact .ring{width:40px;height:40px}.compact .ring span{width:33px;height:33px;font-size:12px}.compact .status span,.compact .prompt,.compact .bar kbd{display:none}.compact .bar .btn{min-height:38px}.compact .chip{padding:3px 8px;font-size:12px}.compact #topChips .dirchip,.compact #deckLabel{display:none}@media (max-width:420px){#btnRules{display:none}.brand{gap:6px;font-size:16px}.top .btn.sm{padding:0 8px;font-size:12.5px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}#ovSetup,#ovRules,#ovMine{z-index:60}#ovOld{z-index:70}.netchip{color:#ffe1b8;background:#f2a33a2e}.netchip.bad{color:#ffd9d2;background:#c93a2638}.home .homehead{flex-direction:column;gap:2px;display:flex}.brand.large{font-size:30px}.brand.large i{grid-template-columns:repeat(2,10px);gap:3px}.brand.large i b{border-radius:3px;width:10px;height:10px}.field{flex-direction:column;gap:6px;display:flex}.field span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.home input,.lobby input{border:1px solid var(--line-2);background:var(--bg);min-height:44px;color:var(--fg);font:500 16px var(--f-body);border-radius:10px;min-width:0;padding:0 12px}.home input:focus,.lobby input:focus{border-color:var(--sun);outline:none}.homegrid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.btn.tile{white-space:normal;text-align:left;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;min-height:84px;padding:12px 16px}.btn.tile b{font:700 17px var(--f-display)}.btn.tile small{color:var(--muted);font-size:12.5px;font-weight:400;line-height:1.3}.btn.tile.primary small{color:var(--on-sun)}.btn:disabled{opacity:.55;cursor:default}.createbox{background:var(--panel-2);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.joinrow{gap:8px;display:flex}.joinrow input{text-transform:uppercase;letter-spacing:.12em;flex:1}.joinrow input::placeholder{text-transform:none;letter-spacing:0}.joinbox{background:#f2a33a24;border:1px solid #f2a33a66;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.joinbox b{font-family:var(--f-display);letter-spacing:.08em}.err{color:#ffb4a6;min-height:0;margin:0}.err:empty{display:none}.roomlist{flex-direction:column;gap:6px;display:flex}.roomrow{text-align:left;border:1px solid var(--line-2);background:var(--panel-2);cursor:pointer;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;padding:10px 12px;display:grid}.roomrow:hover{border-color:var(--back-line)}.roomrow b,.roomrow .small{grid-column:1}.roomrow .seatsfill{font:700 16px var(--f-display);font-variant-numeric:tabular-nums;grid-area:1/2/3}.share{gap:8px;display:flex}.share input{flex:1;font-size:14px}.lobbyh{margin-bottom:8px;font-size:15px}.seatlist{counter-reset:seat;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.seatlist li{counter-increment:seat;background:var(--panel-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:9px 12px;font-weight:600;display:flex}.seatlist li:before{content:counter(seat);font:700 12px var(--f-display);color:var(--muted);width:14px}.seatlist li.botseat{border:1px dashed var(--line-2);color:var(--muted);background:0 0;font-weight:500}.seatlist .chip{padding:2px 8px;font-size:11px}.sheet .row .grow{flex:1;align-self:center}.seat.human .av{outline-offset:2px;outline:2px solid #ffffff59}.top .btn .sm{display:none}@media (max-width:640px){.top .btn .lg{display:none}.top .btn .sm{display:inline}}@media (max-width:420px){.top .brand .word{display:none}}.home .homehead{align-items:flex-start}.home .brand{flex-direction:row;justify-content:flex-start}
