@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-vietnamese-600-normal-BoXdMtcr.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-600-normal-C4HEjEaf.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-vietnamese-400-normal-CRcqvyg1.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-400-normal-BuGn0gnm.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-vietnamese-500-normal-DREgrEoJ.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-500-normal-CfdwVo8-.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-vietnamese-600-normal-nyU-ZL2p.woff2) format("woff2"),url(/assets/be-vietnam-pro-vietnamese-600-normal-DkpCIyan.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/be-vietnam-pro-latin-400-normal-PpnXBOrz.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-400-normal-bXgqVju9.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/be-vietnam-pro-latin-500-normal-B6LVzGNe.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-500-normal-BJkVuMHw.woff) format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/be-vietnam-pro-latin-600-normal-BZDkUTrt.woff2) format("woff2"),url(/assets/be-vietnam-pro-latin-600-normal-5IO4e7bK.woff) format("woff")}:root{--bg: oklch(.13 .012 60);--bg-2: oklch(.19 .014 70);--bg-3: oklch(.24 .016 72);--line: oklch(.82 .11 85 / .22);--line-strong: oklch(.82 .11 85 / .5);--text: oklch(.95 .02 85);--text-2: oklch(.78 .03 80);--text-3: oklch(.62 .03 78);--gold: oklch(.82 .11 85);--gold-deep: oklch(.62 .1 75);--gold-ink: oklch(.2 .03 70);--felt: oklch(.3 .06 165);--felt-deep: oklch(.2 .045 165);--beer: oklch(.8 .15 72);--danger: oklch(.68 .17 28);--gold-metal: linear-gradient(135deg, #f7e6ad 0%, #c79f4a 42%, #f0d488 68%, #8d6c2b 100%);--f-display: "Cormorant Garamond", "Times New Roman", serif;--f-ui: "Be Vietnam Pro", system-ui, sans-serif;--t-xs: .75rem;--t-sm: .875rem;--t-md: 1rem;--t-lg: 1.25rem;--t-xl: 1.75rem;--t-2xl: clamp(2.25rem, 7vw, 3.25rem);--t-3xl: clamp(3rem, 12vw, 5.5rem);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--r-sm: 8px;--r-md: 14px;--r-lg: 24px;--r-pill: 999px;--ease: cubic-bezier(.16, 1, .3, 1);--d-fast: .18s;--d-med: .32s;--d-slow: .7s;--shadow-lift: 0 1px 0 oklch(1 0 0 / .06) inset, 0 18px 40px -18px oklch(0 0 0 / .8);--die: 54px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--f-ui);font-size:var(--t-md);line-height:1.5;font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body{background:radial-gradient(120% 70% at 50% -10%,oklch(.26 .03 75 / .9),transparent 60%),radial-gradient(80% 50% at 50% 110%,oklch(.22 .04 160 / .5),transparent 70%),var(--bg);overscroll-behavior:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");z-index:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;-webkit-user-select:none;user-select:none}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}#app{position:relative;z-index:1;min-height:100dvh}.display{font-family:var(--f-display);font-weight:500;letter-spacing:.01em;line-height:1.02}.eyebrow{font-size:var(--t-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:500}.gold-text{background:var(--gold-metal);-webkit-background-clip:text;background-clip:text;color:transparent}.muted{color:var(--text-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:48px;padding:0 var(--s-5);border-radius:var(--r-pill);font-weight:600;font-size:var(--t-md);letter-spacing:.02em;transition:transform var(--d-fast) var(--ease),background-color var(--d-fast) var(--ease),box-shadow var(--d-fast) var(--ease),opacity var(--d-fast) var(--ease)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-gold{background:var(--gold-metal);color:var(--gold-ink);box-shadow:0 1px #ffffff80 inset,0 -2px #0003 inset,0 12px 30px -10px #d6a54d8c}.btn-gold:hover{box-shadow:0 1px #ffffff80 inset,0 -2px #0003 inset,0 16px 40px -10px #d6a54dbf}.btn-ghost{border:1px solid var(--line-strong);color:var(--gold);background:#e5bf6d0a}.btn-ghost:hover{background:#e5bf6d1a}.btn-lg{min-height:60px;font-size:var(--t-lg);padding:0 var(--s-6)}.btn-block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--r-pill);color:var(--text-2);border:1px solid var(--line);background:#1a150f99;transition:color var(--d-fast) var(--ease),border-color var(--d-fast) var(--ease),transform var(--d-fast) var(--ease)}.icon-btn:hover{color:var(--gold);border-color:var(--line-strong)}.icon-btn:active{transform:scale(.94)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.icon-btn svg{width:20px;height:20px}.gate{min-height:100dvh;display:grid;place-items:center;padding:var(--s-6) var(--s-4);text-align:center}.gate-inner{max-width:440px;display:grid;justify-items:center;gap:var(--s-5);animation:rise var(--d-slow) var(--ease) both}.gate h1{margin:0;font-size:var(--t-3xl)}.gate p{margin:0;color:var(--text-2);max-width:34ch}.gate .btns{display:grid;gap:var(--s-3);width:100%}.fineprint{font-size:var(--t-xs);color:var(--text-3)}.setup{max-width:560px;margin:0 auto;padding:var(--s-6) var(--s-4) calc(var(--s-8) + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-6);animation:rise var(--d-slow) var(--ease) both}.setup h1{margin:0;font-size:var(--t-2xl)}.panel{min-width:0;grid-template-columns:minmax(0,1fr);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,#1a150fd9,#130f0ad9);padding:var(--s-5);display:grid;gap:var(--s-4);box-shadow:var(--shadow-lift)}.panel h2{margin:0;font-family:var(--f-display);font-weight:500;font-size:var(--t-xl)}.field{flex:1 1 0;width:0;min-width:0;min-height:48px;padding:0 var(--s-4);border-radius:var(--r-pill);border:1px solid var(--line);background:#080503;transition:border-color var(--d-fast) var(--ease)}.field:focus{outline:none;border-color:var(--gold)}.field::placeholder{color:var(--text-3)}.hint{margin:0;font-size:var(--t-sm);color:var(--text-3)}.hint.error{color:var(--danger)}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--s-1);padding:var(--s-1);border-radius:var(--r-pill);background:#080503;border:1px solid var(--line)}.seg button{min-height:44px;padding:0 var(--s-3);border-radius:var(--r-pill);color:var(--text-2);font-size:var(--t-sm);font-weight:500;transition:background-color var(--d-fast) var(--ease),color var(--d-fast) var(--ease)}.seg button[aria-pressed=true]{background:var(--gold-metal);color:var(--gold-ink);font-weight:600}.row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}.row-label{display:grid}.row:has(>.switch){min-height:48px}label.row-label{cursor:pointer}.row-label small{color:var(--text-3);font-size:var(--t-sm)}.stepper{display:flex;align-items:center;gap:var(--s-2)}.stepper output{font-family:var(--f-display);font-size:var(--t-xl);min-width:2.2ch;text-align:center}.switch{position:relative;width:60px;height:36px;flex:none;border-radius:var(--r-pill);background:#312d28;border:1px solid var(--line);transition:background-color var(--d-fast) var(--ease)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:28px;height:28px;border-radius:50%;background:var(--text-2);transition:transform var(--d-med) var(--ease),background-color var(--d-fast) var(--ease)}.switch[aria-checked=true]{background:var(--felt);border-color:var(--line-strong)}.switch[aria-checked=true]:after{transform:translate(24px);background:var(--gold)}.table{min-height:100dvh;display:grid;grid-template-rows:auto auto 1fr auto;max-width:560px;margin:0 auto;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.topbar{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4) 0}.topbar .brand{display:flex;align-items:center;gap:var(--s-2);margin-right:auto;font-family:var(--f-display);font-size:var(--t-lg);letter-spacing:.08em}.topbar .brand .monogram{width:32px;height:32px}.practice-tag{font-size:var(--t-xs);letter-spacing:.16em;text-transform:uppercase;padding:2px var(--s-2);border:1px solid var(--line-strong);border-radius:var(--r-pill);color:var(--gold)}.rail{display:flex;gap:var(--s-2);padding:var(--s-4);overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.rail::-webkit-scrollbar{display:none}.chip{flex:none;scroll-snap-align:center;display:flex;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3) var(--s-1) var(--s-1);min-height:48px;border-radius:var(--r-pill);border:1px solid var(--line);background:#15110ccc;color:var(--text-2);transition:border-color var(--d-med) var(--ease),background-color var(--d-med) var(--ease),opacity var(--d-med) var(--ease)}.chip .av{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-family:var(--f-display);font-size:var(--t-lg);background:var(--bg-3);color:var(--text);position:relative}.chip .meta{display:grid;line-height:1.2;text-align:left}.chip .nm{font-size:var(--t-sm);font-weight:500;max-width:9ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip .ct{font-size:var(--t-xs);color:var(--text-3);font-variant-numeric:lining-nums tabular-nums}.chip.current{border-color:var(--gold);background:#e5bf6d1a;color:var(--text)}.chip.current .av{background:var(--gold-metal);color:var(--gold-ink);box-shadow:0 0 0 3px var(--bg),0 0 0 4px var(--gold)}.chip.out{opacity:.4}.chip.warn .av:after{content:"!";position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--danger);color:#fff;font:700 11px/16px var(--f-ui);text-align:center}.stage{display:grid;grid-template-rows:auto auto;align-content:center;gap:var(--s-3);padding:0 var(--s-4);min-height:0}.turn{text-align:center;display:grid;gap:var(--s-1)}.turn .who{margin:0;font-size:var(--t-2xl)}.turn .sub{display:flex;gap:var(--s-2);justify-content:center;align-items:center;min-height:28px;font-size:var(--t-sm);color:var(--text-2)}.streak{display:inline-flex;align-items:center;gap:var(--s-1);padding:2px var(--s-3);border-radius:var(--r-pill);background:#e5bf6d1f;color:var(--gold);font-weight:600;font-size:var(--t-xs);letter-spacing:.08em;animation:pop var(--d-med) var(--ease)}.felt{position:relative;align-self:start;border-radius:120px/96px;padding:var(--s-7) var(--s-5) var(--s-6);display:grid;grid-template-columns:.8fr 1.2fr;align-items:end;gap:var(--s-3);min-height:320px;background:radial-gradient(70% 60% at 50% 35%,oklch(.36 .07 165),transparent 75%),radial-gradient(100% 100% at 50% 50%,var(--felt),var(--felt-deep));box-shadow:0 0 0 2px #050302,0 0 0 4px #a97d3ab3,0 0 0 5px #050302,inset 0 20px 60px #00000073,0 40px 80px -30px #000000e6;isolation:isolate;overflow:hidden}.felt:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.35;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E")}.felt:after{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:inherit;border:1px dashed oklch(.82 .11 85 / .18);pointer-events:none}.felt.flash-half{animation:flash-gold .9s var(--ease)}.felt.flash-all{animation:flash-red 1.1s var(--ease)}.pot{display:grid;justify-items:center;gap:var(--s-2)}.pot .glass{width:min(120px,100%);height:auto;overflow:visible}.pot-label{text-align:center;line-height:1.1}.pot-label .v{font-family:var(--f-display);font-size:var(--t-xl)}.pot-label .u{font-size:var(--t-xs);letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;color:var(--text-2)}.glass .liquid{transition:transform 1.1s var(--ease)}.glass .foam{fill:#fbf3df;animation:wave 3.2s linear infinite}.glass .bubble{fill:#ffffff8c;animation:bubble 3s linear infinite}.glass .glass-body{stroke:#ffffff80;stroke-width:1.2}.glass .glass-facets{stroke:#ffffff14;stroke-width:1;fill:none}.glass .glass-base{stroke:#ffffff59;stroke-width:6}.glass .glass-rim{fill:none;stroke:#ffffffb3;stroke-width:1.2}.glass .glass-glint{stroke:#ffffff73;stroke-width:3;stroke-linecap:round}.glass .glass-shadow{fill:#00000073}.glass .mark line{stroke:var(--gold);stroke-width:1.2;opacity:.7}.glass .mark text{fill:var(--gold);font:500 13px var(--f-display);font-variant-numeric:lining-nums;opacity:.85}.glass .mark.on text{font-weight:700;opacity:1}.bowl{position:relative;display:grid;justify-items:center;align-items:end;width:100%;aspect-ratio:240 / 170;max-width:260px;justify-self:center}.bowl .plate{position:absolute;bottom:0;width:100%}.bowl .dice{position:absolute;bottom:18%;left:50%;translate:-50% 0;display:flex;gap:14px;perspective:600px}.bowl .lid{position:absolute;bottom:9%;width:92%;left:4%;filter:drop-shadow(0 18px 18px oklch(0 0 0 / .55));transform-origin:50% 100%;transition:transform .9s var(--ease),opacity .6s var(--ease)}.bowl.shaking{animation:shake .11s linear infinite}.bowl.open .lid{transform:translate(10%,-90%) rotate(12deg) scale(.9);opacity:0;transition:transform .5s var(--ease),opacity .4s ease-in}.die{width:var(--die);height:var(--die)}.cube{position:relative;width:100%;height:100%;transform-style:preserve-3d;transform:rotateX(var(--rx, -18deg)) rotateY(var(--ry, 24deg)) rotate(var(--rz, 0deg));transition:transform 1.2s var(--ease)}.face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template:repeat(3,1fr) / repeat(3,1fr);padding:15%;border-radius:18%;background:radial-gradient(circle at 30% 25%,#fffdf6,#efe5cd 70%,#d6c8a6);box-shadow:inset 0 0 0 1px #e5bf6d99,inset 0 -4px 8px #56443040;backface-visibility:hidden}.face i{display:block;margin:18%;border-radius:50%}.face i.pip{background:radial-gradient(circle at 35% 30%,#6b5320,#2b2010 70%);box-shadow:inset 0 1px 1px #0009,0 1px #fff9}.face i.pip.red{background:radial-gradient(circle at 35% 30%,#e45b4a,#8a1f14 70%)}.face.one i.pip{margin:0}.f-front{transform:translateZ(calc(var(--die) / 2))}.f-back{transform:rotateY(180deg) translateZ(calc(var(--die) / 2))}.f-right{transform:rotateY(90deg) translateZ(calc(var(--die) / 2))}.f-left{transform:rotateY(-90deg) translateZ(calc(var(--die) / 2))}.f-top{transform:rotateX(90deg) translateZ(calc(var(--die) / 2))}.f-bottom{transform:rotateX(-90deg) translateZ(calc(var(--die) / 2))}.dock{padding:var(--s-4) var(--s-4) var(--s-5);display:grid;gap:var(--s-3)}.keypad{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--s-2)}.keypad button{min-height:52px;border-radius:var(--r-md);font-family:var(--f-display);font-size:var(--t-xl);border:1px solid var(--line);background:#17130e;transition:transform var(--d-fast) var(--ease),background-color var(--d-fast) var(--ease)}.keypad button:active{transform:scale(.94)}.keypad button.hot{grid-column:span 2;background:var(--gold-metal);color:var(--gold-ink);font-weight:600;font-size:2rem;border:0}.keypad-label{margin:0;text-align:center;font-size:var(--t-sm);color:var(--text-3)}.dock-tools{display:flex;justify-content:center;gap:var(--s-3)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#030101b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:grid;align-items:end;justify-items:center;animation:fade var(--d-med) var(--ease) both}.sheet{width:100%;max-width:560px;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:var(--r-lg) var(--r-lg) 0 0;border:1px solid var(--line);border-bottom:0;background:linear-gradient(180deg,#1d1711,#110c08);padding:var(--s-5) var(--s-5) calc(var(--s-5) + env(safe-area-inset-bottom));display:grid;gap:var(--s-4);animation:slide-up var(--d-med) var(--ease) both;box-shadow:0 -30px 80px -20px #000c}.sheet .grab{justify-self:center;width:44px;height:4px;border-radius:4px;background:var(--line-strong)}.sheet h2{margin:0;font-family:var(--f-display);font-weight:500;font-size:var(--t-2xl);line-height:1.05}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.verdict{text-align:center;display:grid;justify-items:center;gap:var(--s-3)}.verdict .big{font-family:var(--f-display);font-size:clamp(5rem,26vw,8rem);line-height:.85;animation:slam .7s var(--ease) both}.verdict .title{margin:0;font-family:var(--f-display);font-size:var(--t-2xl);line-height:1.1}.verdict .title b{font-weight:600}.verdict .detail{margin:0;color:var(--text-2)}.verdict .warnline{margin:0;padding:var(--s-2) var(--s-4);border-radius:var(--r-md);background:#ef675a24;border:1px solid oklch(.68 .17 28 / .4);color:#ffc0af;color:oklch(.86 .08 35);font-size:var(--t-sm)}.verdict .actions{width:100%;display:grid;gap:var(--s-2)}.pick{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center}.pick button{min-height:44px;padding:0 var(--s-4);border-radius:var(--r-pill);border:1px solid var(--line);font-size:var(--t-sm);transition:border-color var(--d-fast) var(--ease)}.pick button:hover{border-color:var(--gold)}.pour-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:var(--s-2)}.pour-opts button{display:grid;justify-items:center;gap:2px;padding:var(--s-3) var(--s-2);min-height:88px;border-radius:var(--r-md);border:1px solid var(--line);background:#0c0805;transition:border-color var(--d-fast) var(--ease),background-color var(--d-fast) var(--ease),transform var(--d-fast) var(--ease)}.pour-opts button .n{font-family:var(--f-display);font-size:2rem;line-height:1}.pour-opts button small{font-size:var(--t-xs);color:var(--text-3)}.pour-opts button[aria-pressed=true]{border-color:var(--gold);background:#e5bf6d1f}.pour-opts button[aria-pressed=true] .n{color:var(--gold)}.pour-preview{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;justify-items:center;gap:var(--s-3)}.pour-preview .glass{width:76px}.pour-preview .arrow{color:var(--gold);font-family:var(--f-display);font-size:var(--t-xl)}.pour-preview figcaption{text-align:center;font-size:var(--t-sm);color:var(--text-2)}.odds{margin:0;display:flex;gap:var(--s-3);align-items:center;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:#080503;border:1px solid var(--line);font-size:var(--t-sm);color:var(--text-2)}.odds b{font-family:var(--f-display);font-size:var(--t-xl);color:var(--gold);font-weight:600}.ledger{display:grid;gap:var(--s-4)}.rank{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}.rank li{display:grid;grid-template-columns:2em 1fr auto;align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:#0a0704b3}.rank .pos{font-family:var(--f-display);font-size:var(--t-xl);color:var(--text-3);text-align:center}.rank li:first-child .pos{color:var(--gold)}.rank .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank .nm small{display:block;color:var(--text-3);font-size:var(--t-xs)}.rank .tot{font-family:var(--f-display);font-size:var(--t-xl);font-variant-numeric:lining-nums tabular-nums}.bar{grid-column:2 / -1;height:3px;border-radius:3px;background:#ffffff0f;overflow:hidden}.bar i{display:block;height:100%;width:var(--w);background:var(--gold-metal);transition:width var(--d-slow) var(--ease)}.feed{list-style:none;margin:0;padding:0;display:grid;font-size:var(--t-sm);color:var(--text-2)}.feed li{display:flex;gap:var(--s-3);padding:var(--s-2) 0;border-bottom:1px solid oklch(1 0 0 / .05)}.feed .k{flex:none;width:1.6em;text-align:center;font-family:var(--f-display);font-size:var(--t-lg);line-height:1.2;color:var(--gold)}.feed .k.dim{color:var(--text-3)}.empty{margin:0;padding:var(--s-5);text-align:center;color:var(--text-3);font-size:var(--t-sm)}.side{display:none}.rules-list{margin:0;padding:0;list-style:none;display:grid;gap:var(--s-2)}.rules-list li{display:grid;grid-template-columns:2.4rem 1fr;gap:var(--s-3);align-items:baseline;color:var(--text-2)}.rules-list li b{font-family:var(--f-display);font-size:var(--t-xl);color:var(--gold);text-align:center}.toast{position:fixed;left:50%;bottom:calc(var(--s-8) + env(safe-area-inset-bottom));translate:-50% 0;z-index:30;padding:var(--s-3) var(--s-5);border-radius:var(--r-pill);background:#241e17;border:1px solid var(--line-strong);box-shadow:var(--shadow-lift);font-size:var(--t-sm);animation:rise var(--d-med) var(--ease) both;white-space:nowrap}@media(min-width:768px){:root{--die: 64px}.felt{min-height:380px;border-radius:200px/150px;padding:var(--s-7) var(--s-6) var(--s-6)}.pot .glass{width:150px}.scrim{align-items:center}.sheet{border-radius:var(--r-lg);border-bottom:1px solid var(--line);max-width:520px;animation-name:zoom-in}.sheet .grab{display:none}}@media(min-width:1024px){.table{max-width:1240px;grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:auto auto 1fr auto;column-gap:var(--s-6);padding:0 var(--s-6)}.topbar,.rail{grid-column:1 / -1}.stage,.dock{grid-column:1;width:100%;max-width:720px;justify-self:center}.dock .ledger-btn{display:none}.side{display:grid;grid-column:2;grid-row:3 / 5;align-content:start;gap:var(--s-4);padding:var(--s-5);margin-bottom:var(--s-5);border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,#18130dcc,#0e0a06cc);max-height:calc(100dvh - 180px);overflow-y:auto}.side h2{margin:0;font-family:var(--f-display);font-weight:500;font-size:var(--t-xl)}.felt{min-height:440px}:root{--die: 72px}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes fade{0%{opacity:0}}@keyframes slide-up{0%{transform:translateY(100%)}}@keyframes zoom-in{0%{opacity:0;transform:scale(.94) translateY(12px)}}@keyframes pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12);opacity:1}}@keyframes slam{0%{transform:scale(2.4);opacity:0;filter:blur(8px)}55%{transform:scale(.92);opacity:1;filter:blur(0)}75%{transform:scale(1.04)}}@keyframes shake{0%{transform:translate(0) rotate(0)}25%{transform:translate(-5px,1px) rotate(-2deg)}50%{transform:translate(4px,-2px) rotate(1.5deg)}75%{transform:translate(-3px,2px) rotate(-1deg)}}@keyframes wave{to{transform:translate(60px)}}@keyframes bubble{0%{transform:translateY(0);opacity:0}15%{opacity:1}to{transform:translateY(-170px);opacity:0}}@keyframes flash-gold{30%{box-shadow:0 0 0 2px #050302,0 0 0 4px var(--gold),0 0 0 5px #050302,inset 0 0 120px #e5bf6d59,0 0 80px -10px #e5bf6d99}}@keyframes flash-red{30%{box-shadow:0 0 0 2px #050302,0 0 0 4px var(--danger),0 0 0 5px #050302,inset 0 0 140px #ef675a66,0 0 90px -10px #ef675a99}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.glass .bubble,.glass .foam{animation:none!important}}.stage3d-host{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.stage3d-host canvas{width:100%;height:100%;display:block}.felt.is-3d .bowl>svg,.felt.is-3d .bowl .dice{visibility:hidden}.felt.is-3d .bowl.shaking{animation:none}.felt .pot{position:relative;z-index:2}:root{--lacquer: linear-gradient(180deg, oklch(.19 .016 55), oklch(.135 .012 55));--hair: oklch(.82 .11 85 / .28);--glass-bg: oklch(.13 .012 60 / .62)}body{background:radial-gradient(90% 55% at 50% -8%,oklch(.3 .05 70 / .55),transparent 62%),radial-gradient(70% 40% at 50% 108%,oklch(.24 .05 165 / .35),transparent 70%),var(--bg)}.panel{background:var(--lacquer);border-color:var(--hair);border-radius:20px;box-shadow:0 1px #ffffff0d inset,0 24px 48px -28px #000000e6}.panel h2{font-size:var(--t-lg);font-family:var(--f-ui);font-weight:600;letter-spacing:.02em}.gate{position:relative;overflow:hidden;place-items:end stretch;text-align:left;padding:var(--s-6) var(--s-5) calc(var(--s-6) + env(safe-area-inset-bottom))}.gate-art{position:absolute;inset:0 0 auto;height:62dvh;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;padding:0 var(--s-4);font-family:var(--f-display);font-weight:500;font-size:min(44vw,15rem);line-height:.8;text-align:center;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 30%,transparent 96%);mask-image:linear-gradient(180deg,#000 30%,transparent 96%)}.gate-art span{background:var(--gold-metal);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.9;animation:rise var(--d-slow) var(--ease) both}.gate-art span:nth-child(2){transform:translateY(18%);animation-delay:90ms}.gate-art span:nth-child(3){transform:translateY(36%);animation-delay:.18s}.gate-inner{position:relative;max-width:440px;justify-items:start;gap:var(--s-4);margin:0 auto;width:100%}.gate-brand{display:flex;align-items:center;gap:var(--s-3)}.gate-brand .eyebrow{margin:0}.gate h1{font-size:clamp(2.75rem,13vw,4.5rem);line-height:.95}.gate p{max-width:36ch}.setup{gap:var(--s-4);padding-top:calc(var(--s-5) + env(safe-area-inset-top));padding-bottom:0}.setup-head{display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-1) var(--s-2)}.setup-head .eyebrow{margin:0}.count-panel{justify-items:center;text-align:center;padding-block:var(--s-5);background:radial-gradient(70% 90% at 50% 40%,oklch(.82 .11 85 / .08),transparent 70%),var(--lacquer)}.count-panel h2{font-size:var(--t-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--text-3)}.count{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:var(--s-3);width:100%;max-width:320px}.count-btn{width:56px;height:56px;border-radius:50%;border:1px solid var(--hair);background:#1b1510;color:var(--gold);font-size:1.75rem;line-height:1;transition:transform var(--d-fast) var(--ease),opacity var(--d-fast) var(--ease)}.count-btn:active{transform:scale(.9)}.count-btn:disabled{opacity:.3}.count-face{display:grid;justify-items:center;line-height:1}.count-v{font-size:clamp(5rem,26vw,7rem);font-weight:600;line-height:.9;background:var(--gold-metal);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:lining-nums tabular-nums}.count-u{font-size:var(--t-sm);color:var(--text-2);letter-spacing:.12em}.count-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.count-chip{min-width:38px;min-height:44px;padding:0 var(--s-2);border-radius:var(--r-pill);border:1px solid var(--line);background:transparent;color:var(--text-2);font-family:var(--f-display);font-size:var(--t-lg);font-weight:600;transition:background-color var(--d-fast) var(--ease),color var(--d-fast) var(--ease),border-color var(--d-fast) var(--ease)}.count-chip[aria-pressed=true]{background:var(--gold-metal);border-color:transparent;color:var(--gold-ink)}.seat-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2);counter-reset:none}.seat-row{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;column-gap:var(--s-3)}.seat-row.enter{animation:rise var(--d-med) var(--ease) both}.seat-row .seat{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--hair);font-family:var(--f-display);font-size:var(--t-lg);font-weight:600;color:var(--gold)}.seat-row .field{width:100%;min-width:0;min-height:48px}.seat-row.invalid .field{border-color:var(--danger);box-shadow:0 0 0 3px #ef675a2e}.seat-row.invalid .seat{border-color:var(--danger);color:var(--danger)}.seat-err{grid-column:2;font-size:var(--t-xs);color:var(--danger)}.seat-err:empty{display:none}.seat-err.note{color:var(--text-2)}.setup-cta{position:sticky;bottom:0;z-index:5;display:grid;gap:var(--s-2);margin:0 calc(-1 * var(--s-4));padding:var(--s-5) var(--s-4) calc(var(--s-4) + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,var(--bg) 38%)}.setup-cta .hint{margin:0;text-align:center}.table{grid-template-rows:auto auto 1fr auto}.topbar{position:sticky;top:0;z-index:6;padding:calc(var(--s-2) + env(safe-area-inset-top)) var(--s-4) var(--s-2);background:var(--glass-bg);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid oklch(.82 .11 85 / .12)}.rail{padding:var(--s-3) var(--s-4)}.chip{min-height:44px;background:#130e0ae6}.chip .av{width:34px;height:34px}.stage{padding:0 var(--s-2);grid-template-rows:minmax(0,1fr);align-content:stretch}.felt{grid-template-columns:.75fr 1.25fr;grid-template-rows:auto 1fr;align-items:end;align-self:stretch;min-height:min(50dvh,520px);padding:var(--s-5) var(--s-5) var(--s-7);border-radius:44% 44% 36px 36px/22% 22% 36px 36px}.felt:after{top:10px;right:10px;bottom:10px;left:10px;border-style:solid;border-color:#e5bf6d24}.felt .turn{grid-column:1 / -1;align-self:start;position:relative;z-index:2;padding-top:var(--s-3);text-shadow:0 2px 18px oklch(.1 .03 165 / .8)}.felt .turn .eyebrow{color:#cbd7accc}.felt .turn .who{font-size:clamp(2.25rem,10vw,3.25rem);line-height:1}.felt .turn .sub{color:#e2e8d2d9}.dock{position:relative;z-index:4;margin-top:var(--s-3);padding:var(--s-4) var(--s-4) calc(var(--s-4) + env(safe-area-inset-bottom));background:var(--lacquer);border-top:1px solid var(--hair);border-radius:24px 24px 0 0;box-shadow:0 -24px 48px -24px #000000e6}.sheet{background:linear-gradient(90deg,transparent,oklch(.82 .11 85 / .6),transparent) top / 100% 1px no-repeat,var(--lacquer);border-color:var(--hair)}@media(min-width:1024px){.dock{position:static;border-radius:24px;margin-bottom:var(--s-5);border:1px solid var(--hair)}.felt{min-height:480px}}.glasses{--gw: 110px;display:grid;grid-template-columns:repeat(var(--cols, 1),minmax(0,1fr));justify-items:center;align-items:end;gap:var(--s-1) var(--s-2);width:100%}.glasses[data-n="2"]{--cols: 2;--gw: 64px}.glasses[data-n="3"],.glasses[data-n="4"]{--cols: 2;--gw: 54px}.glasses .glass,.pot .glasses .glass{width:100%;max-width:var(--gw);height:auto;overflow:visible;animation:glass-in var(--d-slow) var(--ease) both}.glasses .glass:nth-child(2){animation-delay:80ms}.glasses .glass:nth-child(3){animation-delay:.16s}.glasses .glass:nth-child(4){animation-delay:.24s}.glasses .glass.is-empty .foam,.glasses .glass.is-empty .bubble{opacity:0}.glasses .glass .foam,.glasses .glass .bubble{transition:opacity var(--d-med) var(--ease)}.glasses[data-n="3"] .glass:last-child{grid-column:1 / -1}@keyframes glass-in{0%{opacity:0;transform:translateY(14px) scale(.86)}}.beer-preview .glasses{display:flex;justify-content:center;gap:var(--s-4);min-height:96px}.beer-preview .glass{max-width:64px}.pour-preview .glasses{--gw: 46px}.pour-preview .glasses[data-n="1"]{--gw: 76px}.felt.is-3d .pot .glasses .glass{visibility:hidden}.felt.is-3d.flash-half,.felt.is-3d.flash-all{animation:none}.table.round .rail{visibility:hidden;height:0;min-height:0;padding:0;margin:0;border:0;overflow:hidden}.table.round .felt{display:block;height:auto;min-height:clamp(400px,58dvh,560px);padding:0}.seats{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;list-style:none;z-index:3;pointer-events:none}.table:not(.round) .seats{display:none}.seats li{position:absolute;left:50%;top:50%;translate:calc(-50% + var(--x, 0px)) calc(-50% + var(--y, 0px));pointer-events:auto;transition:translate .6s var(--ease)}.seat-btn{display:grid;justify-items:center;gap:2px;min-width:64px;padding:2px;background:none;border:0;color:inherit;font:inherit;cursor:pointer;transition:scale var(--d-med) var(--ease)}.seat-btn.current{scale:1.08}.seat-btn .meta{display:grid;justify-items:center;line-height:1.2}.seat-btn .av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#1c140c;border:1px solid var(--line-strong);font-family:var(--f-display);font-size:1.125rem;transition:border-color var(--d-med) var(--ease),box-shadow var(--d-med) var(--ease)}.seat-btn.current .av{background:#e5bf6d2e;border-color:var(--gold);color:var(--gold);box-shadow:0 0 0 3px #e5bf6d40,0 0 18px #e5bf6d73}.seat-btn .nm{font-size:13px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 8px oklch(.1 .03 165 / .9)}.seat-btn.current .nm{color:var(--gold);font-weight:600}.seat-btn .ct{font-size:12px;color:var(--text-2)}.seat-btn.out{opacity:.45}.seat-btn.warn .ct{color:var(--danger, #e26b5a)}.seat-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:12px}.table.round .felt .turn{position:absolute;top:var(--turn-top, 84px);left:50%;translate:-50% 0;width:var(--col, 60%);padding:0;gap:2px}.table.round .felt .turn .who{font-size:clamp(1.75rem,8vw,2.5rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-bottom:2px}.table.round .felt .turn .sub{min-height:2.8em;align-content:center;flex-wrap:wrap;gap:2px var(--s-2);font-size:13px;line-height:1.3}.table.round .felt .turn .sub .streak{padding-block:0;line-height:1.3}.table.round .bowl{position:absolute;top:var(--bowl-top, 45%);left:50%;translate:-50% 0;width:var(--bowl-w, 50%);max-width:none}.table.round .felt .pot{position:absolute;left:18px;right:18px;bottom:10px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}.table.round .pot .glasses,.table:not(.round) .pot .glasses{width:min(120px,calc(50% - 48px));--gw: 44px}.table.round .pot .glasses[data-n="1"],.table:not(.round) .pot .glasses[data-n="1"]{--gw: 46px;justify-items:start}.table.round .pot .glasses[data-n="3"],.table.round .pot .glasses[data-n="4"],.table:not(.round) .pot .glasses[data-n="3"],.table:not(.round) .pot .glasses[data-n="4"]{--gw: 24px;width:60px}.table.round .pot .pot-label,.table:not(.round) .pot .pot-label{width:min(120px,calc(50% - 48px));text-align:right}.table:not(.round) .stage{min-height:0}.table:not(.round) .felt{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;align-items:center;min-height:0;height:100%;padding:var(--s-4) var(--s-4) var(--s-3)}.table:not(.round) .felt .turn{grid-row:1}.table:not(.round) .felt .bowl{grid-row:2;justify-self:center;align-self:center;height:min(100%,184px);width:auto;max-width:100%;min-height:110px}.table:not(.round) .felt .pot{grid-row:3;display:flex;justify-content:space-between;align-items:end;width:100%}.who.handoff{animation:handoff .7s var(--ease) both}@keyframes handoff{0%{opacity:0;transform:translate(var(--from-x, 0),var(--from-y, 16px));filter:blur(6px)}to{opacity:1;transform:none;filter:none}}@media(prefers-reduced-motion:reduce){.who.handoff{animation:none}.seats li,.seat-btn{transition:none}}.recap{display:grid;gap:var(--s-4)}.recap-sub{margin:0}.recap-hl{margin:0;padding:0;list-style:none;display:grid;gap:var(--s-1);color:var(--gold);font-size:var(--t-sm)}.recap-list{margin:0;padding:0;list-style:none;display:grid;gap:var(--s-2)}.recap-list li{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-md);background:#0a0704b3}.recap-list .nm{display:grid}.recap-list small{color:var(--danger, #e26b5a);font-size:var(--t-xs)}.recap-list .tot{font-family:var(--f-display);font-size:var(--t-lg);color:var(--gold)}.recap .fineprint{margin:0}.recap .actions{display:grid;gap:var(--s-2)}.table.round #turn-eyebrow{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.keypad{grid-template-columns:repeat(24,minmax(0,1fr));gap:6px 6px}.keypad button{grid-column:span 6;min-height:44px;padding:0;font-size:var(--t-lg)}.keypad button.hot{grid-column:span 8;min-height:52px}@media(max-height:760px){.table.round.is-real .felt{min-height:clamp(340px,50dvh,560px)}.table.round.is-real .felt .pot{bottom:6px}.table.round.is-real .pot .glasses[data-n="3"],.table.round.is-real .pot .glasses[data-n="4"]{--gw: 20px;width:50px}.table:not(.round).is-real .felt{grid-template-rows:auto minmax(0,1fr)}.table:not(.round).is-real .felt .turn{padding-top:0}.table:not(.round).is-real #turn-eyebrow{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.table:not(.round).is-real .felt .bowl,.table:not(.round).is-real .felt .pot{grid-row:2;grid-column:1}.table:not(.round).is-real .felt .pot{align-self:end}.table:not(.round).is-real .felt .bowl{max-width:calc(100% - 136px);height:min(calc(100% - 48px),184px);align-self:start}.table:not(.round).is-real .pot .glasses{width:fit-content}.table:not(.round).is-real .pot .pot-label{width:60px}.table:not(.round).is-real .pot .pot-label .u{white-space:normal}}.btn.countdown{position:relative;overflow:hidden}.btn.countdown:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--gold-ink);opacity:.45;transform-origin:left;animation:countdown var(--auto) linear forwards}@keyframes countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.keypad-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.keypad-head .keypad-label{text-align:left}.keypad-head .dock-tools{flex:none}.table.round .dock{margin-top:var(--s-2);padding-top:var(--s-3)}.turn .sum{position:absolute;top:0;right:0;bottom:0;left:0;display:none;place-items:center;pointer-events:none;font-family:var(--f-display);font-weight:600;font-size:4.5rem;line-height:1;font-variant-numeric:lining-nums tabular-nums;color:var(--text);text-shadow:0 2px 14px oklch(.1 .03 165 / .9)}.table.round .turn .sum{font-size:calc(var(--turn-h, 60px) * .9)}.turn.has-sum .sum{display:grid;animation:pop .6s var(--ease) both}.turn.has-sum>:not(.sum){visibility:hidden}.turn .sum.hot{background:var(--gold-metal);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 4px 16px oklch(.75 .12 80 / .55))}
