:root{--paper:#fff;--ink:#141414;--ink-soft:#595959;--ink-faint:#e6e6e6;--red:#c8372d;--hi:#ffe14d;--font:"Shantell Sans", "Comic Sans MS", system-ui, sans-serif;--gutter:clamp(16px, 3vw, 32px);--lift:0 1px 0 var(--ink), 0 10px 18px -10px #14141473;--squiggle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 8'%3E%3Cpath d='M0 5 C5 1 10 1 15 4 S25 7 30 4 S38 2 40 4' fill='none' stroke='%23141414' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;caret-color:var(--ink);font-size:16px;line-height:1.45}::selection{background:var(--hi);color:var(--ink)}:focus-visible{outline:2.5px dashed var(--ink);outline-offset:3px}*{scrollbar-width:thin;scrollbar-color:var(--ink) transparent}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}h1,h2,p{margin:0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.num,.ticket__stack,.pot__amt,.bet{font-variant-numeric:tabular-nums}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.topbar{padding:14px var(--gutter);border-bottom:2px solid var(--ink);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.topbar--home{border-bottom:0}.logo{color:var(--ink);align-items:center;gap:4px;margin-right:8px;font-size:26px;font-weight:800;text-decoration:none;display:inline-flex}.logo .icon{width:20px;height:20px}.spacer{flex:1}.pill{border:2px solid var(--ink);background:var(--paper);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 12px;font-size:14px;display:inline-flex}.pill--warn{background:var(--hi)}.pill--btn{transition:background-color .15s ease-out,transform .1s ease-out}.pill--btn:hover{background:var(--ink-faint)}.pill--btn:active{transform:scale(.96)}.sticker{border:2.5px solid var(--ink);background:var(--paper);box-shadow:var(--lift);border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:18px;font-weight:800;line-height:1.1;transition:transform .1s ease-out,box-shadow .15s ease-out,background-color .15s ease-out;display:inline-flex}.sticker:hover:not(:disabled){box-shadow:0 1px 0 var(--ink), 0 14px 22px -12px #14141480}.sticker:active:not(:disabled){transform:scale(.96)}.sticker--main{background:var(--hi)}.sticker .icon{width:20px;height:20px}kbd{color:var(--ink-soft);border:1.5px solid;border-radius:4px;padding:0 4px;font-family:inherit;font-size:11px;font-weight:600}@media (hover:none){kbd{display:none}}input:not([type]),input[type=number],input[type=text]{border:2px solid var(--ink);background:var(--paper);border-radius:10px;min-width:0;padding:9px 12px;font-size:17px}input::placeholder{color:#767676}.receipt{background:var(--paper);border:2px solid var(--ink);padding:10px 14px}.receipt__label,.receipt__sub{color:var(--ink-soft);font-size:13px;display:block}.toast{z-index:50;background:var(--ink);color:var(--paper);opacity:0;pointer-events:none;border-radius:10px;padding:10px 16px;font-weight:600;transition:opacity .2s ease-out;position:fixed;bottom:24px;left:50%;translate:-50%}.toast.is-on{opacity:1;transition-duration:.15s}.loading{text-align:center;color:var(--ink-soft);padding:96px 16px;font-size:18px}.card{--cw:clamp(40px, 5vw, 70px);width:var(--cw);aspect-ratio:100/140;background:0 0;border:0;flex:none;padding:0;transition:translate .18s cubic-bezier(.22,1,.36,1);display:block;position:relative}.card svg{width:100%;height:100%;display:block;overflow:visible}.card__edge{fill:var(--paper);stroke:var(--ink);stroke-width:3px}.card__rank{font-family:var(--font);text-anchor:middle;font-size:25px;font-weight:800;translate:6px}.ink{fill:var(--ink);color:var(--ink)}.ink-red{fill:var(--red);color:var(--red)}.card__court>path:first-child{fill:none;stroke:currentColor;stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.card__court-rank{font-family:var(--font);text-anchor:middle;font-size:30px;font-weight:800}.card__back-art{stroke:var(--ink);stroke-width:2.5px;fill:none;color:var(--ink);stroke-linecap:round;stroke-linejoin:round}.card--slot{border:2px dashed var(--ink-faint);border-radius:9px}button.card:hover{translate:0 -4px}.card--selected,button.card--selected:hover{translate:0 -18px}.card--selected .card__edge{stroke-width:5px}.room{max-width:1480px;padding:16px var(--gutter) 28px;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;margin:0 auto;display:grid}.felt-area{flex-direction:column;align-items:center;min-width:0;display:flex}.stage{aspect-ratio:1000/620;width:min(100%,161dvh - 579.6px);min-width:min(100%,520px);margin-top:4%;position:relative;container-type:inline-size}.stage__table{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.table-line{fill:none;stroke:var(--ink);stroke-width:3px;vector-effect:non-scaling-stroke}.turn-path{fill:none;stroke:var(--ink);stroke-width:1.6px;stroke-dasharray:1 9;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.75}.dealer-spot{width:1px;height:1px;position:absolute;top:32%;left:50%}.centre{flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;top:47%;left:50%;translate:-50% -50%}.board{perspective:600px;gap:clamp(3px,1cqi,10px);display:flex}.board .card{--cw:clamp(30px, 6.6cqi, 72px)}.pot{min-width:clamp(96px,16cqi,150px);padding:6px 12px;rotate:-1.5deg}.pot__amt{font-size:clamp(18px,3.2cqi,32px);font-weight:800;line-height:1.1;display:block}.seat{z-index:2;text-align:center;flex-direction:column;align-items:center;gap:3px;width:clamp(80px,14cqi,128px);display:flex;position:absolute;translate:-50% -50%}.seat__cards{margin-bottom:-4px;display:flex}.seat__cards .card{--cw:clamp(20px, 3.6cqi, 38px)}.seat__cards .card+.card{margin-left:calc(var(--cw) * -.45)}.seat__avatar{aspect-ratio:1;border:2.5px solid var(--ink);background:var(--paper);border-radius:50% 46% 52% 48%;place-items:center;width:clamp(34px,5.6cqi,58px);font-size:clamp(15px,2.4cqi,24px);font-weight:800;display:grid;position:relative}.ring{width:calc(100% + 22px);height:calc(100% + 22px);position:absolute;inset:-11px;overflow:visible;rotate:-90deg}.ring circle{fill:none;stroke:var(--ink);stroke-width:4.5px;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:0}.dealer-btn{border:2px solid var(--ink);background:var(--paper);border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:grid;position:absolute;bottom:-6px;right:-12px}.ticket{border:2px solid var(--ink);background:var(--paper);border-radius:4px;flex-direction:column;align-items:center;min-width:78px;max-width:128px;padding:2px 8px;font-size:clamp(11px,1.5cqi,14px);line-height:1.2;transition:background-color .2s ease-out,color .2s ease-out;display:flex;box-shadow:0 6px 12px -8px #14141459}.ticket__name{text-overflow:ellipsis;white-space:nowrap;justify-content:center;align-items:center;gap:4px;max-width:100%;display:inline-flex;overflow:hidden}.ticket__name .icon{width:14px;height:14px}.ticket__now{font-weight:800}.ticket__secs{font-weight:700}.ticket__stack{font-size:clamp(13px,1.9cqi,17px);font-weight:800}.ticket__tag{color:var(--ink-soft);font-size:12px}.seat--now .ticket{background:var(--hi);font-weight:600}.ticket.is-low .ticket__secs{color:var(--red)}.seat--folded{opacity:.55}.seat--folded .ticket__name,.seat--folded .ticket__stack{text-decoration:line-through;text-decoration-thickness:2.5px}.seat--won .ticket{background:var(--ink);color:var(--paper)}.seat--won .ticket__tag{color:var(--ink-faint)}.seat__hand{background:var(--paper);padding:0 6px;font-size:13px;font-weight:700}.seat__win{opacity:0;pointer-events:none;font-size:20px;font-weight:800;position:absolute;top:-20px}.seat--empty{opacity:.6;background:0 0;border:0;padding:0;transition:opacity .15s ease-out}.seat--empty:hover,.seat--empty:focus-visible{opacity:1}.seat--empty .seat__avatar{border-style:dashed}.ticket--empty{color:var(--ink-soft);box-shadow:none;border-style:dashed}.bet{z-index:1;background:var(--paper);border-radius:999px;align-items:center;gap:4px;padding:1px 8px 1px 2px;font-size:clamp(12px,1.6cqi,15px);font-weight:800;display:inline-flex;position:absolute;translate:-50% -50%}.bet svg{width:clamp(16px,2.2cqi,22px);height:clamp(16px,2.2cqi,22px)}.bet circle{fill:var(--paper);stroke:var(--ink);stroke-width:2px}.bet .chip-inner{stroke-dasharray:2 2.4}.join{z-index:5;flex-direction:column;gap:10px;width:min(300px,80%);padding:16px;display:flex;position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:-1deg;box-shadow:0 18px 30px -18px #14141480}.join__label{font-size:18px;font-weight:800}.lobby-note{text-align:center;width:60%;position:absolute;top:48%;left:50%;translate:-50% -50%}.lobby-note__title{font-size:clamp(20px,2.2vw,28px);font-weight:800}.lobby-note__sub{color:var(--ink-soft)}.my-hand{z-index:3;flex-direction:column;align-items:center;min-height:40px;margin-top:clamp(8px,2vw,22px);display:flex;position:relative}.fan{justify-content:center;padding-top:4px;display:flex}.fan__slot{margin:0 calc(var(--cwb) * -.14);rotate:calc(var(--i) * 6deg);translate:0 calc(var(--i) * var(--i) * 4px);--cwb:clamp(76px, 7.6vw, 112px);display:block}.card--big{--cw:clamp(76px, 7.6vw, 112px)}.my-hand.is-folded .fan{opacity:.4}.my-hand__label{margin-top:6px;font-size:16px;font-weight:800}.draw-bar{align-items:center;gap:12px;margin-top:10px;display:flex}.side{flex-direction:column;gap:16px;min-width:0;display:flex}.log__title{border-bottom:2px solid var(--ink);align-items:center;gap:6px;margin-bottom:4px;padding-bottom:6px;font-size:16px;font-weight:800;display:flex}.log ol{max-height:240px;margin:0;padding:0;font-size:14px;list-style:none;overflow-y:auto}.log li{border-bottom:1px solid var(--ink-faint);justify-content:space-between;gap:12px;padding:5px 0;display:flex}.log li:last-child{border-bottom:0}.log .num{font-weight:700}.log__live{color:var(--ink-soft)}.suit-red{color:var(--red)}.actions{flex-direction:column;gap:14px;display:flex}.actions--idle p{text-align:center;color:var(--ink-soft);border:2px dashed var(--ink-faint);border-radius:14px;padding:16px}.raise{flex-direction:column;gap:8px;display:flex}.raise label b{font-size:18px}.raise__quick{flex-wrap:wrap;gap:6px;display:flex}.stickers{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;display:grid}input[type=range]{appearance:none;border:2px solid var(--ink);background:var(--paper);border-radius:8px;width:100%;height:12px}input[type=range]::-webkit-slider-thumb{appearance:none;border:2.5px solid var(--ink);background:var(--hi);border-radius:50%;width:26px;height:26px;box-shadow:0 4px 8px -4px #14141480}input[type=range]::-moz-range-thumb{border:2.5px solid var(--ink);background:var(--hi);border-radius:50%;width:22px;height:22px}.host{flex-direction:column;gap:12px;display:flex}.host__row{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.host__form{flex-direction:column;gap:12px;display:flex}.seg{border:0;gap:6px;margin:0;padding:0;display:grid}.seg label{border:2px solid var(--ink);cursor:pointer;border-radius:10px;padding:7px 12px;font-weight:700;transition:background-color .15s ease-out;position:relative}.seg label.is-on{background:var(--hi)}.seg label:focus-within{outline:2.5px dashed var(--ink);outline-offset:2px}.seg input{opacity:0;pointer-events:none;position:absolute}.host__grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.host__grid label{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:13px;display:flex}.host__grid input{width:100%;color:var(--ink);padding:6px 10px;font-size:16px}.check{align-items:flex-start;gap:8px;font-size:14px;display:flex}.check input{accent-color:var(--ink);flex:none;width:18px;height:18px;margin-top:2px}.host__note{color:var(--ink-soft)}.host__legend{margin-bottom:6px;padding:0;font-size:15px;font-weight:800}.host__set{border:0;border-top:1px solid var(--ink-faint);flex-direction:column;gap:8px;margin:0;padding:12px 0 0;display:flex}.host__wide{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:13px;display:flex}.host__wide input{color:var(--ink);padding:6px 10px;font-size:16px}.seg label{flex-direction:column;gap:1px;display:flex}.seg__tag{color:var(--ink-soft);font-size:13px;font-weight:400}.seg label.is-on .seg__tag{color:var(--ink)}.hint{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:13px;line-height:1.45;display:flex}.check b{color:var(--ink)}.rules{flex-direction:column;gap:8px;font-size:14px;display:flex}.rules__mode{font-size:18px;font-weight:800}.rules__facts{grid-template-columns:auto 1fr;gap:4px 12px;margin:4px 0 0;display:grid}.rules__facts dt{color:var(--ink-soft)}.rules__facts dd{margin:0;font-weight:600}.guide summary{cursor:pointer;border-bottom:0;margin:0;padding-bottom:0;list-style:none}.guide summary::-webkit-details-marker{display:none}.guide summary:after{content:"+";margin-left:auto;font-size:20px;line-height:1}.guide[open] summary{border-bottom:2px solid var(--ink);margin-bottom:8px;padding-bottom:6px}.guide[open] summary:after{content:"−"}.guide__list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.guide__list li{align-items:center;gap:12px;font-size:13px;display:flex}.guide__list li b{font-size:14px;display:block}.guide__list li span{color:var(--ink-soft)}.guide__cards{flex:none;display:flex}.guide__cards .card{--cw:30px}.guide__cards .card+.card{margin-left:-12px}.guide__note{color:var(--ink-soft);margin-top:10px;font-size:13px}.host__players summary{cursor:pointer;font-weight:700}.host__players ul{margin:6px 0 0;padding:0;list-style:none}.host__players li{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.home__main{max-width:1040px;padding:clamp(16px, 4vw, 48px) var(--gutter) 64px;margin:0 auto}.home__hero h1{letter-spacing:-.02em;background:var(--squiggle) left bottom / 52px 11px repeat-x;padding-bottom:16px;font-size:clamp(44px,7vw,92px);font-weight:800;line-height:1;display:inline-block}.home__lede{color:var(--ink-soft);max-width:44ch;margin-top:18px;font-size:clamp(17px,1.6vw,21px)}.game{border:2.5px solid var(--ink);box-shadow:0 1px 0 var(--ink), 0 24px 40px -28px #14141473;border-radius:22px;grid-template-columns:minmax(240px,380px) 1fr;align-items:center;gap:clamp(20px,4vw,48px);margin-top:clamp(36px,6vw,64px);padding:clamp(20px,3vw,36px);display:grid}.game__art{height:230px;position:relative}.game__art .card{--cw:104px;margin:-73px 0 0 -52px;position:absolute;top:50%;left:50%}.game h2{font-size:clamp(28px,3vw,38px);font-weight:800}.game p{color:var(--ink-soft);max-width:46ch;margin-top:6px}.game__actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;display:flex}.join-code{gap:8px;display:flex}.join-code input{width:220px}.form-err{color:var(--red);margin-top:10px;font-size:14px}.home__more{text-align:center;color:var(--ink-soft);border:2px dashed var(--ink-faint);border-radius:18px;margin-top:28px;padding:20px}.site-foot{padding:8px var(--gutter) 28px;justify-content:center;display:flex}.site-foot a{color:var(--ink-soft);border-radius:999px;align-items:center;gap:8px;padding:4px 10px;font-size:14px;text-decoration:none;transition:color .15s ease-out,background-color .15s ease-out;display:inline-flex}.site-foot a:hover{color:var(--ink);background:var(--ink-faint)}.site-foot a:active{transform:scale(.96)}@media (width<=960px){.room{grid-template-columns:1fr;padding-top:8px}.stage{width:100%;min-width:0}.actions{z-index:10;background:var(--paper);border-top:2px solid var(--ink);padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));gap:10px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 24px -18px #14141466}.actions--idle p{border:0;padding:8px}.room:has(.actions){padding-bottom:24px}body:has(.actions) .site-foot{padding-bottom:230px}.raise{flex-flow:wrap;align-items:center;gap:6px 10px}.raise label{flex:none}.raise input{flex:1;min-width:120px}.raise__quick{width:100%}.sticker{padding:10px 12px;font-size:17px}.side{gap:12px}.log ol{max-height:150px}}@media (width<=640px){.stage{aspect-ratio:10/12}.ticket{min-width:60px}.game{grid-template-columns:1fr}.game__art{height:200px}.join-code input{width:100%}.join-code{flex:1}.topbar .pill--quiet{display:none}}
