:root{--bg: #08070d;--bg-2: #0e0c16;--panel: #16131f;--panel-2: #1f1b2c;--line: #2a2540;--text: #f4f1ff;--muted: #9b93b8;--gold-1: #ffd34d;--gold-2: #ff8a00;--glow: rgba(255, 150, 20, .45);--red: #ff3b46;--blue: #4f7cff;--green: #2fd07a;--yellow: #ffce3a;--display: "Unbounded", system-ui, sans-serif;--body: "Sora", system-ui, sans-serif;--radius: 18px;--shadow: 0 18px 50px rgba(0, 0, 0, .5)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--text);font-family:var(--body);overflow-x:hidden}.bg-aurora{position:fixed;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:-2;background:radial-gradient(40% 35% at 18% 12%,rgba(255,138,0,.22),transparent 70%),radial-gradient(45% 40% at 85% 18%,rgba(79,124,255,.2),transparent 70%),radial-gradient(50% 45% at 50% 100%,rgba(47,208,122,.16),transparent 70%),radial-gradient(40% 40% at 100% 80%,rgba(255,59,70,.16),transparent 70%);filter:blur(20px) saturate(125%);animation:drift 22s ease-in-out infinite alternate}@keyframes drift{to{transform:translate3d(0,-3%,0) scale(1.08)}}.bg-grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;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='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}h1,h2,.brand,.logo{font-family:var(--display);letter-spacing:-.02em}button{font:inherit;cursor:pointer;border:none;border-radius:12px;color:var(--text);background:var(--panel-2);display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .06s ease,filter .15s ease,box-shadow .2s ease,border-color .2s ease}button:active{transform:scale(.97)}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:linear-gradient(135deg,var(--gold-1),var(--gold-2));color:#1a0f02;font-weight:800;box-shadow:0 10px 30px var(--glow)}.primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 14px 40px var(--glow)}.ghost{background:#ffffff0a;border:1px solid var(--line);font-weight:600}.ghost:hover:not(:disabled){border-color:var(--gold-2)}.big{width:100%;padding:16px;font-size:1.05rem}.dot{width:13px;height:13px;border-radius:50%;display:inline-block;flex:0 0 auto;box-shadow:0 0 8px currentColor}.screen{max-width:560px;margin:0 auto;padding:clamp(20px,5vw,44px) 16px 56px;display:flex;flex-direction:column;gap:18px}.hero{text-align:center;padding:8px 0 4px}.eyebrow{display:inline-block;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-1);border:1px solid var(--line);padding:6px 14px;border-radius:999px;margin-bottom:14px}.hero h1{margin:0;font-size:clamp(2.4rem,9vw,3.6rem);font-weight:900;line-height:1}.hero p{margin:12px 0 0;color:var(--muted)}.logo{font-weight:900;font-size:clamp(3.6rem,17vw,6rem);line-height:.9;background:linear-gradient(180deg,#fff,#cdbfff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 30px rgba(120,110,255,.35))}.logo-o{background:linear-gradient(180deg,var(--gold-1),var(--gold-2));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 16px var(--glow))}.panel{background:linear-gradient(180deg,#ffffff09,#fff0) var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column;gap:14px}.panel h2{margin:0;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.18em;font-weight:700}.count-picker{display:flex;gap:12px}.count-btn{flex:1;padding:18px;font-size:1.5rem;font-weight:800;font-family:var(--display);background:var(--panel-2);border:1px solid var(--line)}.count-btn.active{background:linear-gradient(135deg,var(--gold-1),var(--gold-2));color:#1a0f02;box-shadow:0 8px 22px var(--glow);border-color:transparent}.names{display:flex;flex-direction:column;gap:10px}.name-row{display:flex;align-items:center;gap:10px}.name-row input{flex:1;padding:13px 14px;border-radius:11px;border:1px solid var(--line);background:var(--bg-2);color:var(--text);font:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.name-row input:focus{border-color:var(--pc, var(--gold-2));box-shadow:0 0 0 3px color-mix(in srgb,var(--pc, var(--gold-2)) 22%,transparent)}.options{display:flex;gap:12px}.options label{flex:1;display:flex;flex-direction:column;gap:7px;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.options select{padding:12px;border-radius:11px;border:1px solid var(--line);background:var(--bg-2);color:var(--text);font:inherit}.shape-note{flex:1;display:flex;align-items:center;gap:8px;padding:12px;border-radius:11px;border:1px dashed var(--line);color:var(--gold-1);font-size:.8rem;font-weight:600}.rule-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.rule-list li{display:flex;align-items:center;gap:9px;font-size:.86rem;color:var(--muted)}.ri{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);flex:0 0 auto}.ri.red{color:var(--red)}.ri.green{color:var(--green)}.ri.gold{color:var(--gold-1)}.rule-foot{margin:4px 0 0;font-size:.82rem;color:var(--muted)}.game{max-width:660px;margin:0 auto;padding:14px 12px 36px;display:flex;flex-direction:column;gap:12px}.topbar{display:flex;align-items:center;gap:10px}.brand{font-weight:900;font-size:1.4rem;letter-spacing:.05em;background:linear-gradient(180deg,#fff,#cdbfff);-webkit-background-clip:text;background-clip:text;color:transparent}.deck-count{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.9rem;font-weight:600}.topbar .ghost{padding:9px 13px;font-size:.85rem}.topbar .ghost.icon{padding:9px}.players{display:flex;flex-wrap:wrap;gap:8px}.player-chip{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:.85rem;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.player-chip.current{border-color:var(--pc);box-shadow:0 0 0 1px var(--pc),0 8px 22px color-mix(in srgb,var(--pc) 30%,transparent);transform:translateY(-1px)}.player-chip .pname{font-weight:700}.player-chip .ccount{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}.turn-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-radius:14px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--pc)}.turn-who{display:inline-flex;align-items:center;gap:9px;font-size:1.05rem}.turn-who b{font-family:var(--display);font-weight:700}.roll-meaning{display:inline-flex;align-items:center;gap:7px;font-weight:700;padding:6px 12px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line)}.roll-meaning.drink{color:var(--gold-1)}.board{display:grid;gap:6px;aspect-ratio:1 / 1;width:100%;padding:8px;border-radius:16px;background:linear-gradient(180deg,#ffffff05,#0003);border:1px solid var(--line)}.cell{position:relative;border-radius:10px;background:#100e1a;border:1px solid rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center}.cell-icon{opacity:.55;display:flex}.cell-void{background:transparent;border:none}.cell-red{background:radial-gradient(circle at 50% 35%,#ff3b4647,#ff3b4614);border-color:#ff3b4680;color:var(--red)}.cell-green{background:radial-gradient(circle at 50% 35%,#2fd07a42,#2fd07a12);border-color:#2fd07a80;color:var(--green)}.cell-start{background:#4f7cff1f;border-color:#4f7cff73;color:var(--blue)}.cell-gold{background:radial-gradient(circle at 50% 40%,#ffe27a,#f2a900);border-color:#fff3b0;color:#6a4500;box-shadow:0 0 16px #ffb428b3;animation:goldpulse 1.7s ease-in-out infinite}.cell-gold .cell-icon{opacity:1}@keyframes goldpulse{50%{box-shadow:0 0 26px #ffbe3cf2}}.pawns{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px;padding:3px}.pawn{width:clamp(11px,3.6vw,19px);height:clamp(11px,3.6vw,19px);border-radius:50%;border:2px solid rgba(255,255,255,.92);box-shadow:0 0 10px var(--pc, #fff),0 2px 5px #00000080}.pawn.active{animation:bob .9s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-3px)}}.roller-area{display:flex;flex-direction:column;align-items:center;gap:10px;padding:6px 0}.roller{position:relative;width:188px;height:188px;border-radius:50%;background:radial-gradient(circle at 50% 38%,#211c30,#0d0b15 72%);border:1px solid var(--line);box-shadow:inset 0 2px 18px #0009,0 16px 40px #00000080;color:var(--gold-1);overflow:hidden}.roller:hover:not(:disabled){border-color:var(--gold-2)}.roller-ring{position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:50%;border:2px dashed rgba(255,255,255,.08)}.roller.spinning .roller-ring{border-color:#ffaa2859}.roller-tick{position:absolute;width:7px;height:7px;border-radius:50%;background:#ffffff29;left:50%;top:50%}.roller-tick-n{transform:translate(-50%,-50%) translateY(-74px)}.roller-tick-s{transform:translate(-50%,-50%) translateY(74px)}.roller-tick-e{transform:translate(-50%,-50%) translate(74px)}.roller-tick-w{transform:translate(-50%,-50%) translate(-74px)}.roller-pointer{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 12px var(--glow));transform-origin:50% 50%}.roller-pointer.idle{animation:compass-idle 2.6s ease-in-out infinite}@keyframes compass-idle{0%,to{transform:rotate(-7deg) scale(1)}50%{transform:rotate(7deg) scale(1.06)}}.roller-pointer.spin{animation:compass-spin .9s cubic-bezier(.32,.08,.18,1);filter:drop-shadow(0 0 20px var(--gold-1))}@keyframes compass-spin{0%{transform:rotate(0)}to{transform:rotate(1260deg)}}.roller-hint{color:var(--muted);font-size:.85rem;font-weight:600;letter-spacing:.02em;min-height:1.2em}.dirpad{display:grid;grid-template-columns:repeat(3,62px);grid-template-rows:repeat(3,62px);gap:8px;place-content:center;padding:6px 0}.dirbtn{display:flex;align-items:center;justify-content:center;border-radius:16px;color:#fff;background:radial-gradient(circle at 50% 35%,#211c30,#0d0b15 78%);border:1px solid var(--line);box-shadow:inset 0 2px 12px #00000080;cursor:pointer;transition:transform .08s ease,border-color .15s ease,box-shadow .15s ease}.dirbtn:hover{border-color:var(--pc);box-shadow:0 0 18px -2px var(--pc),inset 0 2px 12px #00000080}.dirbtn:active{transform:scale(.92)}.dir-up{grid-area:1 / 2}.dir-left{grid-area:2 / 1}.dir-right{grid-area:2 / 3}.dir-down{grid-area:3 / 2}.dirbtn svg{animation:dir-nudge 1.4s ease-in-out infinite}.dir-up svg{animation-delay:0s}.dir-right svg{animation-delay:.35s}.dir-down svg{animation-delay:.7s}.dir-left svg{animation-delay:1.05s}@keyframes dir-nudge{0%,70%,to{transform:translate(0);opacity:.8}35%{transform:translate(var(--nx, 0),var(--ny, 0));opacity:1}}.dir-up svg{--ny: -4px}.dir-down svg{--ny: 4px}.dir-left svg{--nx: -4px}.dir-right svg{--nx: 4px}.drink-event{text-align:center;align-items:center}.drink-icon{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin:4px auto 2px;border-radius:50%;color:var(--gold-1);background:radial-gradient(circle at 50% 35%,#2a2033,#140f1c 75%);border:1px solid var(--gold-2);box-shadow:0 0 28px -4px var(--glow);animation:drink-pop .4s cubic-bezier(.2,1.4,.4,1)}@keyframes drink-pop{0%{transform:scale(.5) rotate(-12deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.drink-title{font-family:Unbounded,system-ui,sans-serif;font-size:1.5rem;font-weight:800;margin:6px 0 2px;color:var(--gold-1)}.drink-sips{color:var(--muted);margin-bottom:16px}.drink-sips b{color:#fff;font-size:1.15em}.moves{display:flex;flex-direction:column;gap:8px;max-height:210px;overflow-y:auto;padding:2px}.moves.empty{color:var(--muted);font-size:.85rem;padding:16px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px}.move-chip{display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--pc);border-radius:11px;font-size:.88rem;animation:slidein .25s ease-out}@keyframes slidein{0%{transform:translate(-12px);opacity:0}}.move-who{display:flex;align-items:center;gap:6px;font-weight:700;min-width:76px}.move-roll{font-family:var(--display);font-weight:800;font-size:1.05rem;width:24px;text-align:center;color:var(--gold-1)}.move-dir,.move-kind{display:inline-flex;align-items:center}.move-kind.kind-red{color:var(--red)}.move-kind.kind-green,.move-kind.kind-give,.move-kind.kind-draw{color:var(--green)}.move-kind.kind-drink,.move-kind.kind-replay,.move-kind.kind-win{color:var(--gold-1)}.move-kind.kind-wall{color:var(--red)}.move-text{color:var(--muted);margin-left:auto;text-align:right}.active-cards{background:linear-gradient(180deg,#ffffff09,#fff0) var(--panel);border:1px solid var(--line);border-left:4px solid var(--gold-2);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:11px}.active-head{display:flex;align-items:center;gap:10px}.active-toggle{background:transparent;border:none;padding:2px;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem;color:var(--text)}.active-toggle .chev{color:var(--muted);transition:transform .2s ease}.active-cards.open .active-toggle .chev{transform:rotate(180deg)}.active-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:linear-gradient(135deg,var(--gold-1),var(--gold-2));color:#1a0f02;font-size:.78rem;font-weight:800}.ghost.mini{margin-left:auto;padding:7px 11px;font-size:.78rem;font-weight:600}.active-empty{display:none;color:var(--muted);font-size:.86rem;padding:6px 2px}.active-strip{display:none;gap:10px;overflow-x:auto;padding:6px 2px;scroll-snap-type:x mandatory}.active-cards.open .active-strip{display:flex}.active-cards.open .active-empty{display:block}.mini-card{position:relative;flex:0 0 auto;width:205px;min-height:96px;padding:12px 13px;border-radius:12px;background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-top:3px solid var(--pc);scroll-snap-align:start;display:flex;flex-direction:column;justify-content:space-between;gap:8px}.mini-card.dim{opacity:.62}.mini-card.live{opacity:1;border-color:var(--gold-2);border-top-color:var(--gold-1);box-shadow:0 0 0 1px var(--gold-2),0 8px 24px var(--glow)}.mini-owner{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:600;color:var(--muted)}.mini-card.oneshot{opacity:.78}.card-tag{align-self:flex-start;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}.card-tag.lasting{color:var(--gold-1);border-color:#ffb42866}.live-badge{position:absolute;top:-9px;right:10px;display:inline-flex;align-items:center;gap:4px;font-size:.62rem;font-weight:800;letter-spacing:.08em;padding:3px 8px;border-radius:999px;background:linear-gradient(135deg,var(--gold-1),var(--gold-2));color:#1a0f02;box-shadow:0 4px 12px var(--glow)}.mini-text{margin:0;font-size:.86rem;line-height:1.35;color:var(--text)}.cards-modal{max-width:480px;max-height:84vh}.cards-modal-head{display:flex;align-items:center;justify-content:space-between}.card-top.neutral{background:var(--panel-2);border:1px solid var(--line);color:var(--text)}.cards-scroll{display:flex;flex-direction:column;gap:14px;overflow-y:auto;padding-right:4px}.player-cards{border:1px solid var(--line);border-left:4px solid var(--pc);border-radius:12px;padding:12px;background:#ffffff05;display:flex;flex-direction:column;gap:10px}.player-cards.is-current{box-shadow:0 0 0 1px var(--pc),0 8px 22px color-mix(in srgb,var(--pc) 25%,transparent)}.player-cards-head{display:flex;align-items:center;gap:8px}.player-cards-head .pname{font-weight:700}.badge-turn{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border-radius:999px;background:var(--pc);color:#08070d}.player-cards-head .ccount{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:.85rem}.player-card-list{display:flex;flex-wrap:wrap;gap:10px}.player-card-list .mini-card{width:calc(50% - 5px);min-height:72px}@media(max-width:460px){.player-card-list .mini-card{width:100%}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#06050bcc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{width:100%;max-width:430px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px;animation:pop .2s ease-out}@keyframes pop{0%{transform:scale(.9);opacity:0}}.card-top{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;font-family:var(--display);font-weight:800;letter-spacing:.14em;font-size:.78rem;padding:8px 14px;border-radius:999px;color:#1a0f02}.card-top.red{background:linear-gradient(135deg,#ff6a72,var(--red));color:#fff}.card-top.green{background:linear-gradient(135deg,#5fe6a0,var(--green));color:#06301c}.challenge-card{border-top:5px solid var(--red)}.card-text{margin:0;font-family:var(--display);font-size:1.4rem;font-weight:700;line-height:1.3}.card-for{color:var(--muted);font-size:.9rem}.target-list{display:flex;flex-direction:column;gap:10px}.target-btn{display:flex;align-items:center;gap:10px;padding:14px;background:var(--panel-2);border:1px solid var(--line);border-left:4px solid var(--pc);font-size:1rem;font-weight:700;justify-content:flex-start}.target-btn:hover{border-color:var(--pc)}.target-btn .ccount{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-weight:500}.scoreboard{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.score-row{display:flex;align-items:center;gap:11px;padding:13px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line);border-left:4px solid var(--pc)}.score-row .rank{font-family:var(--display);font-weight:800;color:var(--muted);width:18px}.score-row .pname{font-weight:700}.score-row .cards{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:.88rem}.score-row .sips{display:inline-flex;align-items:center;gap:5px;font-weight:800;color:var(--gold-1)}.winner-box{align-items:center;text-align:center}.winner-head{display:inline-flex;align-items:center;gap:9px;color:var(--gold-1)}.winner-names{font-family:var(--display);font-size:1.5rem;font-weight:800;margin:0}.marc-rule{color:var(--muted);font-size:.9rem;line-height:1.55;margin:0}.gold-box{background:linear-gradient(165deg,rgba(255,160,20,.16),var(--panel));border-color:#ffb42880;box-shadow:0 0 40px #ffa0142e,var(--shadow)}.winner-crown{color:var(--gold-1);filter:drop-shadow(0 0 18px var(--glow));animation:bob 1.4s ease-in-out infinite}.big-dot{width:28px;height:28px;border-radius:50%;border:3px solid #fff;display:inline-block;box-shadow:0 0 16px var(--pc)}.win-screen .hero h1{background:linear-gradient(180deg,var(--gold-1),var(--gold-2));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 22px var(--glow))}@media(min-width:900px){.game{max-width:1000px;display:grid;grid-template-columns:1.35fr 1fr;grid-template-areas:"top top" "players players" "banner banner" "active active" "board roller" "board moves";column-gap:22px;align-items:start}.topbar{grid-area:top}.players{grid-area:players}.turn-banner{grid-area:banner}.active-cards{grid-area:active}.active-strip{display:flex}.active-empty{display:block}.active-toggle{cursor:default}.active-toggle .chev{display:none}.board{grid-area:board}.roller-area,.dirpad{grid-area:roller;align-self:center}.moves{grid-area:moves;max-height:320px}}
