@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap";:root{color:#25324a;font-synthesis:none;--ink:#25324a;--muted:#74809a;--primary:#7357e8;--primary-dark:#5740c2;--mint:#3fcda1;--yellow:#ffc84a;--pink:#ff7190;--line:#e9e5dd;--shadow:0 5px 0 #ddd5ca;background:#fff8ed;font-family:Nunito,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}main{min-height:100vh}header{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:70px;padding:0 max(20px,50% - 470px);display:flex}.brand{align-items:center;gap:10px;font-size:19px;font-weight:900;display:flex}.logo{background:var(--yellow);color:#8a5e00;border-radius:13px;place-items:center;width:38px;height:38px;display:grid}.icon-btn{color:var(--primary);background:#f2efff;border:0;border-radius:12px;padding:10px}.page{max-width:940px;margin:0 auto;padding:34px 20px 70px}.progress-wrap{max-width:940px;margin:18px auto 0;padding:0 20px}.progress-label{color:var(--muted);text-transform:uppercase;justify-content:space-between;font-size:12px;font-weight:800;display:flex}.progress{background:#eee9df;border-radius:10px;height:11px;margin-top:7px;overflow:hidden}.progress div{background:linear-gradient(90deg,var(--mint),var(--primary));border-radius:inherit;height:100%}.hero{text-align:center}.hero-orb,.step-icon,.winner-trophy{background:var(--yellow);border-radius:30px;place-items:center;width:92px;height:92px;margin:8px auto 20px;font-size:48px;display:grid;box-shadow:0 7px #e6af35}.eyebrow{letter-spacing:1.6px;color:var(--primary);margin:0 0 10px;font-size:12px;font-weight:900}.hero h1{letter-spacing:-3px;margin:0;font-size:clamp(48px,11vw,76px);font-weight:900;line-height:.9}.hero h1 span{color:var(--primary)}h2{letter-spacing:-1px;margin:0 0 10px;font-size:clamp(30px,6vw,46px);font-weight:900;line-height:1.05}h3{margin:0;font-size:20px}p{color:var(--muted);font-size:16px}.lead{font-size:18px}.actions{gap:13px;max-width:420px;margin:30px auto;display:grid}.actions a,.btn{width:100%}.btn{background:var(--primary);color:#fff;box-shadow:0 5px 0 var(--primary-dark);border:0;border-radius:16px;justify-content:center;align-items:center;gap:9px;padding:16px 20px;font-size:16px;font-weight:900;transition:all .15s;display:flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.secondary{color:var(--primary);background:#fff;box-shadow:0 5px #d8d1ed}.btn.ghost{color:var(--primary);box-shadow:none;background:0 0}.stats{grid-template-columns:repeat(3,1fr);gap:10px;max-width:620px;margin:30px auto;display:grid}.stats .card{text-align:center;padding:16px 8px}.stats strong{white-space:nowrap;text-overflow:ellipsis;font-size:21px;display:block;overflow:hidden}.stats span{color:var(--muted);font-size:11px;font-weight:800}.tip{color:var(--muted);justify-content:center;align-items:center;gap:8px;font-weight:700;display:flex}.section-head{margin-bottom:24px}.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:20px;padding:19px}.add-player{gap:10px;margin-bottom:22px;display:flex}.add-player input{flex:1;min-width:0}.add-player .btn{width:auto}.list{gap:11px;margin-bottom:24px;display:grid}.player-row{justify-content:space-between;align-items:center;display:flex}.player-row label{align-items:center;gap:13px;font-weight:800;display:flex}.player-row input,.check-row input{accent-color:var(--primary);width:21px;height:21px}.text-btn{color:var(--primary);background:0 0;border:0;padding:6px}.text-btn.danger{color:var(--pink)}input:not([type=checkbox]){background:#fff;border:2px solid #e5e0d8;border-radius:13px;outline:none;width:100%;padding:14px}input:focus{border-color:var(--primary)}.empty{text-align:center;color:var(--muted);padding:36px}.empty svg{color:var(--yellow)}.center-step{text-align:center;max-width:650px;margin:0 auto}.step-icon{width:80px;height:80px;font-size:38px}.center-step .card{text-align:left;margin:24px 0}.field-label{gap:8px;margin-bottom:16px;font-weight:800;display:grid}.chosen h1,.winner h1{color:var(--primary);margin:10px 0;font-size:clamp(42px,10vw,72px);font-weight:900}.chosen-die{margin:25px;font-size:70px}.chosen-badge{color:#916900;background:#fff0c7;border-radius:14px;align-items:center;gap:7px;margin:8px 0 22px;padding:11px 15px;font-weight:800;display:inline-flex}.confetti{pointer-events:none;position:fixed;inset:80px 0 0;overflow:hidden}.confetti i{left:var(--x);background:hsl(calc(var(--i)*55),80%,60%);width:9px;height:18px;transform:rotate(var(--rot));animation:fall var(--duration) linear infinite;animation-delay:calc(var(--i)*-.09s);position:absolute;top:-20px}@keyframes fall{0%{transform:translate(0,0) rotate(var(--rot))}to{transform:translate(var(--drift),100vh) rotate(calc(var(--rot) + 540deg))}}.games-grid,.vote-grid,.score-list,.history-list{gap:16px;margin:24px 0;display:grid}.game-title,.score-top{align-items:center;gap:10px;display:flex}.game-title svg{color:var(--primary)}.game-title h3{flex:1}.score-pill{color:var(--primary);background:#f0edff;border-radius:10px;padding:5px 9px;font-size:13px;font-weight:900}.check-row{align-items:center;gap:10px;margin-top:15px;display:flex}.check-row span{flex:1}.check-row b{color:var(--mint)}.owned{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}.owned>strong{font-size:13px}.vote-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.vote-card{text-align:center;cursor:pointer;transition:all .2s}.vote-card:hover{border-color:var(--primary);transform:translateY(-4px)}.vote-card span{font-size:34px}.vote-card small{color:var(--muted)}.score-top strong{flex:1}.score-top b{color:var(--primary)}.rank{background:var(--yellow);border-radius:9px;place-items:center;width:28px;height:28px;font-weight:900;display:grid}.score-bar{background:#eeeaf7;border-radius:10px;height:16px;margin:15px 0 7px;overflow:hidden}.score-bar div{background:linear-gradient(90deg,var(--mint),var(--primary));border-radius:inherit;height:100%;transition:width 1s}.score-detail{color:var(--muted);justify-content:space-between;font-size:12px;font-weight:800;display:flex}.roulette{position:relative;overflow:hidden}.wheel{background:conic-gradient(var(--primary) 0 25%,var(--yellow) 25% 50%,var(--mint) 50% 75%,var(--pink) 75%);border:9px solid #fff;border-radius:50%;place-items:center;width:150px;height:150px;margin:20px auto;font-size:65px;transition:transform 2.2s cubic-bezier(.1,.8,.2,1);display:grid;box-shadow:0 4px #d8d2c9}.spinning .wheel{transform:rotate(1260deg)}.pointer{z-index:2;color:var(--pink);font-size:26px;position:absolute;top:13px;left:calc(50% - 12px)}.odds{gap:8px;display:grid}.odds div{background:#faf7f1;border-radius:10px;justify-content:space-between;padding:8px 10px;font-size:13px;display:flex}.odds b{color:var(--primary)}.winner-trophy{background:var(--primary);color:var(--yellow);box-shadow:0 7px 0 var(--primary-dark);margin-top:25px}.winner-meta{background:#fff;border-radius:20px;margin:20px 0 24px;padding:8px 20px}.winner-meta p{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:8px 0;font-size:14px;display:flex}.winner-meta p:last-child{border:0}.history-card h3{color:var(--primary);margin:8px 0;font-size:25px}.history-card p{margin:7px 0;font-size:14px}.history-date{color:var(--muted);text-transform:uppercase;align-items:center;gap:6px;font-size:12px;font-weight:900;display:flex}.stats-card{margin-top:24px}.stats-card p{border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:10px;display:flex}.back{color:var(--primary);margin-bottom:25px;font-weight:900;text-decoration:none;display:inline-block}@media (width>=700px){.page{padding-top:50px}.games-grid,.history-list{grid-template-columns:repeat(2,1fr)}}.pie-wheel-wrap{width:min(100%,330px);margin:12px auto 26px;position:relative}.pie-wheel{filter:drop-shadow(0 5px #d8d2c9);transform-origin:50%;border-radius:50%;width:100%;height:auto;display:block}.pie-wheel-wrap .pointer{text-shadow:0 2px #fff;font-size:30px;top:-14px;left:calc(50% - 15px)}.pie-percent{fill:#25324a;paint-order:stroke;stroke:#fff8ed;stroke-width:2px;stroke-linejoin:round;font-size:9px;font-weight:900}.pie-name{fill:#fff;paint-order:stroke;stroke:#25324a47;stroke-width:1.2px;stroke-linejoin:round;pointer-events:none;dominant-baseline:middle;font-weight:900}.pie-center{font-size:18px}.legend{overflow-wrap:anywhere;align-items:center;gap:8px;min-width:0;display:flex}.legend i{border-radius:4px;flex-shrink:0;width:12px;height:12px;display:inline-block}.odds div{transition:background .2s,transform .2s}.odds .odds-winner{background:#fff0c7;font-weight:900;transform:scale(1.03)}.header-actions{align-items:center;gap:8px;display:flex}.back-stage,.exit-stage{color:var(--primary);background:0 0;border:0;border-radius:10px;align-items:center;gap:5px;padding:9px;font-weight:900;display:flex}.back-stage:hover{background:#f0edff}.exit-stage{color:var(--pink)}.exit-stage:hover{background:#fff0f3}.actions a,.back,.page a{text-decoration:none}.access-options{gap:10px;margin-top:18px;display:grid}.access-option{text-align:left;width:100%;color:var(--ink);background:#fff;border:2px solid #eee9e2;border-radius:16px;align-items:center;gap:10px;padding:11px 12px;transition:all .15s;display:flex}.access-option:hover{border-color:var(--primary);transform:translateY(-1px)}.access-option.selected{border-color:var(--mint);background:#ecfff8}.option-icon{font-size:25px}.access-option span:nth-child(2){flex:1;display:grid}.access-option small{color:var(--muted);font-size:11px}.access-option b{color:var(--mint)}.option-check{color:var(--mint);display:none}.access-option.selected .option-check{display:block}.owned-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px;margin-top:10px;display:grid}.owner-chip{color:var(--ink);background:#fff;border:2px solid #eee9e2;border-radius:13px;align-items:center;gap:6px;padding:8px;font-size:12px;font-weight:800;display:flex}.owner-chip span{width:25px;height:25px;color:var(--primary);background:#f0edff;border-radius:8px;place-items:center;display:grid}.owner-chip b{color:var(--muted);margin-left:auto;font-size:10px}.owner-chip.selected{border-color:var(--primary);background:#f4f1ff}.owner-chip.selected span{background:var(--primary);color:#fff}.owner-chip.selected b{color:var(--primary)}.backup-card{gap:16px;margin:24px 0;display:grid}.backup-card h3{font-size:19px}.btn.danger{color:var(--pink);box-shadow:none;background:0 0}.btn.danger:hover:not(:disabled){background:#fff0f3}.backup-card p{margin:5px 0 0;font-size:14px}.backup-actions{gap:10px;display:grid}.backup-actions .btn{width:100%}@media (width>=600px){.backup-card{grid-template-columns:1fr auto;align-items:center}.backup-actions{display:flex}.backup-actions .btn{width:auto}}.optional-rule-card{text-align:left}.rule-toggle{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:14px;padding:0;display:flex}.rule-toggle-copy{flex:1;gap:4px;display:grid}.rule-toggle-copy small,.category-result small{color:var(--muted);font-size:12px}.toggle-indicator{color:var(--primary);background:#f0edff;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:900}.rule-toggle.selected .toggle-indicator{color:#168b6a;background:#dffbf1}.category-result{border-top:1px solid var(--line);text-align:center;gap:8px;margin-top:20px;padding-top:18px;display:grid}.category-label{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:900}.category-result strong{color:var(--primary);font-size:clamp(30px,7vw,48px);line-height:1}.category-result .btn{margin-top:8px}.rule-error{color:#c9516a;margin:14px 0 0;font-size:13px}.optional-rules>.btn{margin-top:20px}.ability-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:25px 0;display:grid}.ability-card{cursor:pointer;text-align:left;transition:all .15s}.ability-card:hover,.ability-card.selected{border-color:var(--primary);background:#f8f6ff;transform:translateY(-3px)}.ability-card h3{color:var(--primary);font-size:18px}.ability-card p{margin:8px 0;font-size:14px}.ability-card small{color:var(--mint);font-weight:900}.ability-icon{font-size:35px}.effect-panel{text-align:left;margin:22px 0}.effect-actions{gap:9px;margin-top:14px;display:grid}.effect-actions .btn{width:auto}.effect-actions select{color:var(--ink);background:#fff;border:2px solid #e5e0d8;border-radius:13px;padding:12px}.btn{transition:box-shadow .12s,background .15s,opacity .15s}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--primary-dark)}.btn.secondary:active:not(:disabled){box-shadow:0 1px #d8d1ed}.btn:not(:disabled):hover{filter:brightness(1.06)}.burst{pointer-events:none;z-index:50;width:0;height:0;position:fixed}.burst i{border-radius:3px;width:8px;height:8px;animation:.6s cubic-bezier(.2,.7,.3,1) forwards burst;position:absolute;top:-4px;left:-4px}@keyframes burst{0%{transform:translate(0)scale(1)rotate(0)}to{transform:translate(var(--dx),var(--dy)) scale(0) rotate(240deg);opacity:.2}}.score-delta-anchor{width:0;height:0;display:inline-block;position:relative}.score-delta{white-space:nowrap;pointer-events:none;paint-order:stroke;-webkit-text-stroke:4px #fff;font-size:18px;font-weight:900;position:absolute;bottom:0;left:4px}.score-delta.up{color:var(--mint)}.score-delta.down{color:var(--pink)}.hero-orb,.step-icon{animation:3.2s ease-in-out infinite float}.hero-orb:hover,.step-icon:hover{animation:.5s ease-in-out wiggle}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(3deg)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)scale(1.08)}75%{transform:rotate(12deg)scale(1.08)}}.access-option.selected,.owner-chip.selected,.rule-toggle.selected .toggle-indicator{animation:.32s cubic-bezier(.3,1.6,.5,1) pop}.access-option:active,.owner-chip:active,.rule-toggle:active{transform:scale(.97)}.owner-chip{transition:transform .12s,border-color .15s,background .15s}@keyframes pop{0%{transform:scale(.94)}60%{transform:scale(1.04)}to{transform:scale(1)}}.slot-name{min-width:4ch;display:inline-block}.slot-name.rolling{color:var(--muted);filter:blur(.4px)}.vote-card{position:relative}.vote-card.picked{border-color:var(--mint);background:#ecfff8}.vote-card.dimmed{opacity:.45;pointer-events:none}.vote-stamp{color:var(--mint);pointer-events:none;place-items:center;font-size:30px;font-weight:900;display:grid;position:absolute;inset:0}.pie-wheel-wrap .pointer{transform-origin:50% 20%}.pie-wheel{transition:none}.pie-slice.winner{animation:.7s ease-in-out infinite alternate winner-pulse}@keyframes winner-pulse{0%{filter:brightness()}to{filter:brightness(1.25)drop-shadow(0 0 6px #fff)}}.roulette.landed{animation:.4s cubic-bezier(.3,1.6,.5,1) pop}.coin-stage{perspective:400px;place-items:center;gap:6px;margin:6px 0;display:grid}.coin{background:radial-gradient(circle at 35% 30%,#ffe9a6,var(--yellow) 60%,#e6af35);color:#8a5e00;border-radius:50%;place-items:center;width:64px;height:64px;font-size:26px;font-weight:900;display:grid;box-shadow:0 4px #c48f1d}.coin-result{font-weight:900}.category-result strong.rolling{color:var(--muted)}.score-card,.score-top b{position:relative}@media (prefers-reduced-motion:reduce){.hero-orb,.step-icon,.access-option.selected,.owner-chip.selected,.pie-slice.winner,.roulette.landed{animation:none}}.ability-card,.vote-card{transition:border-color .15s,background .15s,opacity .2s}.score-bar div{transition:none}.winner-meta p{overflow:hidden}
