:root{--sky: #070b16;--sky-2: #10182c;--ink: #f7f1e3;--muted: #9aa3b8;--gold: #f0c14b;--gold-2: #ffe08a;--panel: rgba(12, 18, 36, .72);--line: rgba(255, 255, 255, .1);--btn: rgba(255, 255, 255, .06);--danger: #ff8a9a;--sans: "Outfit", system-ui, sans-serif;--serif: "Fraunces", Georgia, serif;--radius: 18px}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}html{color-scheme:dark}body{margin:0;min-height:100%;font-family:var(--sans);color:var(--ink);background:var(--sky);overflow-x:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sky{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(900px 520px at 50% -10%,rgba(88,70,180,.22),transparent 60%),radial-gradient(700px 420px at 85% 20%,rgba(40,90,160,.16),transparent 55%),radial-gradient(600px 380px at 10% 80%,rgba(120,50,130,.12),transparent 50%),var(--sky)}.sky__glow{position:absolute;inset:auto 0 0;height:40%;background:radial-gradient(ellipse at 50% 120%,rgba(240,193,75,.08),transparent 60%)}.sky__stars:after{content:"";position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;box-shadow:40px 80px #fff,120px 40px #ffe08a,210px 160px #fff,300px 70px #fff,380px 220px #fff,470px 30px #ffe08a,560px 180px #fff,640px 90px #fff,720px 260px #fff,810px 50px #fff,890px 200px #ffe08a,980px 120px #fff,1060px 300px #fff,70px 340px #fff,180px 410px #ffe08a,290px 380px #fff,430px 450px #fff,540px 360px #fff,680px 420px #ffe08a,800px 390px #fff,930px 470px #fff,110px 520px #fff,250px 580px #ffe08a,390px 610px #fff,530px 560px #fff,670px 640px #fff,820px 590px #ffe08a,960px 630px #fff,150px 250px #fff,620px 140px #fff,860px 330px #fff,40px 600px #ffe08a;filter:drop-shadow(0 0 2px rgba(255,236,180,.95));opacity:.75}.sky__stars{position:absolute;inset:0;background-image:radial-gradient(1.1px 1.1px at 8% 18%,#fff,transparent),radial-gradient(5px 5px at 8% 18%,rgba(255,255,255,.22),transparent),radial-gradient(1.8px 1.8px at 16% 8%,#fff,transparent),radial-gradient(7px 7px at 16% 8%,rgba(255,255,255,.28),transparent),radial-gradient(1px 7px at 16% 8%,rgba(255,255,255,.4),transparent 70%),radial-gradient(7px 1px at 16% 8%,rgba(255,255,255,.4),transparent 70%),radial-gradient(1.5px 1.5px at 22% 72%,#fff,transparent),radial-gradient(6px 6px at 22% 72%,rgba(255,255,255,.22),transparent),radial-gradient(1.1px 1.1px at 28% 40%,#ffe08a,transparent),radial-gradient(5px 5px at 28% 40%,rgba(255,224,138,.22),transparent),radial-gradient(1.2px 1.2px at 34% 28%,#ffe08a,transparent),radial-gradient(6px 6px at 34% 28%,rgba(255,224,138,.24),transparent),radial-gradient(1.3px 1.3px at 41% 58%,#fff,transparent),radial-gradient(5px 5px at 41% 58%,rgba(255,255,255,.2),transparent),radial-gradient(1.3px 1.3px at 48% 12%,#fff,transparent),radial-gradient(6px 6px at 48% 12%,rgba(255,255,255,.24),transparent),radial-gradient(1px 1px at 53% 77%,#fff,transparent),radial-gradient(4px 4px at 53% 77%,rgba(255,255,255,.18),transparent),radial-gradient(1px 1px at 61% 64%,#fff,transparent),radial-gradient(4px 4px at 61% 64%,rgba(255,255,255,.18),transparent),radial-gradient(2px 2px at 66% 14%,#fff,transparent),radial-gradient(8px 8px at 66% 14%,rgba(255,255,255,.3),transparent),radial-gradient(1px 8px at 66% 14%,rgba(255,255,255,.42),transparent 70%),radial-gradient(8px 1px at 66% 14%,rgba(255,255,255,.42),transparent 70%),radial-gradient(1.6px 1.6px at 73% 22%,#fff,transparent),radial-gradient(7px 7px at 73% 22%,rgba(255,255,255,.26),transparent),radial-gradient(1px 1px at 77% 49%,#fff,transparent),radial-gradient(4px 4px at 77% 49%,rgba(255,255,255,.18),transparent),radial-gradient(1.2px 1.2px at 81% 81%,#ffe08a,transparent),radial-gradient(5px 5px at 81% 81%,rgba(255,224,138,.22),transparent),radial-gradient(1.4px 1.4px at 88% 63%,#fff,transparent),radial-gradient(6px 6px at 88% 63%,rgba(255,255,255,.22),transparent),radial-gradient(1.1px 1.1px at 91% 36%,#fff,transparent),radial-gradient(4px 4px at 91% 36%,rgba(255,255,255,.18),transparent),radial-gradient(1.2px 1.2px at 14% 48%,#fff,transparent),radial-gradient(5px 5px at 14% 48%,rgba(255,255,255,.2),transparent),radial-gradient(1px 1px at 19% 88%,#fff,transparent),radial-gradient(4px 4px at 19% 88%,rgba(255,255,255,.18),transparent),radial-gradient(1px 1px at 40% 86%,#fff,transparent),radial-gradient(4px 4px at 40% 86%,rgba(255,255,255,.18),transparent),radial-gradient(1.2px 1.2px at 56% 42%,#fff,transparent),radial-gradient(5px 5px at 56% 42%,rgba(255,255,255,.2),transparent),radial-gradient(1.5px 1.5px at 68% 90%,#fff,transparent),radial-gradient(6px 6px at 68% 90%,rgba(255,255,255,.22),transparent),radial-gradient(1.3px 1.3px at 95% 10%,#ffe08a,transparent),radial-gradient(6px 6px at 95% 10%,rgba(255,224,138,.26),transparent),radial-gradient(1px 6px at 95% 10%,rgba(255,224,138,.38),transparent 70%),radial-gradient(6px 1px at 95% 10%,rgba(255,224,138,.38),transparent 70%);opacity:.95;animation:twinkle 7s ease-in-out infinite}.sky__sparkle{position:absolute;inset:0;pointer-events:none;overflow:hidden}.sky__sparkle span{position:absolute;left:var(--x);top:var(--y);width:36px;height:36px;margin:-18px 0 0 -18px;background:radial-gradient(circle at 50% 50%,#fff 0 2.4px,transparent 3px),linear-gradient(transparent 8%,#fff 46%,#fff 54%,transparent 92%) 50% / 2.4px 100% no-repeat,linear-gradient(90deg,transparent 8%,#fff 46%,#fff 54%,transparent 92%) 50% / 100% 2.4px no-repeat;filter:drop-shadow(0 0 8px #fff);mix-blend-mode:plus-lighter;animation:star-shine var(--t, 2s) ease-in-out var(--d, 0s) infinite}.sky__sparkle span:after{content:"";position:absolute;inset:8px;background:linear-gradient(transparent 18%,rgba(255,255,255,.85) 48%,rgba(255,255,255,.85) 52%,transparent 82%) 50% / 1.4px 100% no-repeat,linear-gradient(90deg,transparent 18%,rgba(255,255,255,.85) 48%,rgba(255,255,255,.85) 52%,transparent 82%) 50% / 100% 1.4px no-repeat;transform:rotate(45deg)}.sky__sparkle span.is-gold{background:radial-gradient(circle at 50% 50%,#fff6c8 0 2.4px,transparent 3px),linear-gradient(transparent 8%,#ffe08a 46%,#ffe08a 54%,transparent 92%) 50% / 2.4px 100% no-repeat,linear-gradient(90deg,transparent 8%,#ffe08a 46%,#ffe08a 54%,transparent 92%) 50% / 100% 2.4px no-repeat;filter:drop-shadow(0 0 8px #ffe08a)}.sky__shoot{position:absolute;width:90px;height:1px;top:18%;left:-10%;background:linear-gradient(90deg,transparent,#fff);opacity:0;transform:rotate(32deg);animation:shoot 11s linear infinite}@keyframes twinkle{0%,to{opacity:.7}50%{opacity:1}}@keyframes star-shine{0%,to{transform:scale(.75) rotate(-12deg);opacity:.7;filter:drop-shadow(0 0 6px #fff) brightness(1.15)}50%{transform:scale(1.55) rotate(18deg);opacity:1;filter:drop-shadow(0 0 16px #fff) drop-shadow(0 0 8px #ffe08a) brightness(2.2)}}@keyframes shoot{0%,78%{opacity:0;transform:rotate(32deg) translate(0)}80%{opacity:.8}92%{opacity:0;transform:rotate(32deg) translate(85vw)}to{opacity:0}}.page{position:relative;z-index:1;min-height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:12px 0;padding:14px 20px 16px;max-width:1180px;margin:0 auto}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px}.brand{display:flex;align-items:center;gap:10px;padding:5px 16px 5px 7px;color:inherit;text-decoration:none;min-width:0;background:var(--panel);border:1px solid rgba(240,193,75,.22);border-radius:999px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 32px #00000038}.brand:hover{border-color:#f0c14b73}.brand:hover .brand__mark{filter:drop-shadow(0 0 14px rgba(240,193,75,.55))}.brand__mark{color:var(--gold);display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:radial-gradient(circle at 50% 38%,rgba(240,193,75,.22),transparent 68%);filter:drop-shadow(0 0 10px rgba(240,193,75,.35));transition:filter .18s ease}.brand__mark svg{display:block}.brand__text h1{margin:0;font-family:var(--serif);font-size:clamp(1.28rem,2vw,1.7rem);font-weight:700;letter-spacing:-.028em;line-height:1;white-space:nowrap}.brand__star{color:var(--gold-2);text-shadow:0 0 18px rgba(240,193,75,.38)}.top__tools{display:flex;align-items:center;gap:2px;flex:none;padding:4px;background:var(--panel);border:1px solid rgba(240,193,75,.22);border-radius:999px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 32px #00000038}.top__tools .icon-btn{width:38px;height:38px;border:0;border-radius:999px;background:transparent;color:var(--ink)}.top__tools #sound-toggle .icon-sound-on,.top__tools #sound-toggle[aria-pressed=true] .icon-sound-off{display:none}.top__tools #sound-toggle[aria-pressed=true] .icon-sound-on{display:block}.top__tools .icon-btn:hover,body.is-fullscreen #fullscreen-toggle{border-color:transparent;background:#f0c14b29;color:var(--gold-2)}.top__tools #sound-toggle[aria-pressed=false]{color:var(--muted)}.top__tools #sound-toggle[aria-pressed=true]{color:var(--gold-2);background:transparent}.top__tools #sound-toggle[aria-pressed=false]:hover,.top__tools #sound-toggle[aria-pressed=true]:hover{background:#f0c14b29;color:var(--gold-2)}.icon-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--btn);color:var(--ink);display:grid;place-items:center;cursor:pointer}.icon-btn:hover,.icon-btn[aria-pressed=true],.icon-btn[aria-expanded=true]{border-color:#f0c14b73;color:var(--gold-2)}.icon-btn:focus-visible,.brand:focus-visible,.btn:focus-visible,.text-link:focus-visible,.tab:focus-visible,.kind:focus-visible,.wheel-hit:focus-visible,.stepper__btn:focus-visible,.switch:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.stage{--spin: min( calc(100dvh - 24rem) , 100%, 460px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);grid-template-rows:auto auto;gap:12px 28px;align-items:start;min-height:0;padding-top:48px}.wheel-col,.wheel-stack{display:contents}.list-col{display:flex;flex-direction:column;grid-column:2;grid-row:1;align-self:start;height:var(--spin);min-width:0;min-height:0;overflow:hidden}.wheel-fit{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:center;gap:12px;width:var(--spin);justify-self:center}.wheel-stage{position:relative;width:100%;aspect-ratio:1}.pointer{position:absolute;top:-32px;left:50%;z-index:3;transform:translate(-50%);filter:drop-shadow(0 3px 6px rgba(0,0,0,.5));pointer-events:none}.pointer__arm{display:block;transform-origin:50% 12px}.pointer__arm svg{display:block}.wheel-col.is-spinning .pointer__arm{will-change:transform}.wheel-hit{appearance:none;border:0;padding:0;background:none;width:100%;height:100%;border-radius:50%;cursor:pointer;display:block}.wheel-hit canvas{width:100%;height:100%;border-radius:50%;filter:drop-shadow(0 0 18px rgba(240,193,75,.18)) drop-shadow(0 18px 40px rgba(0,0,0,.45))}.wheel-col.is-spinning .spin-start,.wheel-col.has-winner .spin-start{display:none}.kinds{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;width:100%}.kind{appearance:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:11px;padding:6px 4px;font:inherit;font-size:.72rem;font-weight:500;cursor:pointer}.kind svg{flex:none}.kind.is-on{background:#f0c14b1f;border-color:#f0c14b66;color:var(--gold-2)}.kind:disabled{opacity:.5;cursor:not-allowed}.wheel-col[data-kind=arrow] .pointer,.wheel-col[data-kind=orbit] .pointer,.wheel-col[data-kind=bottle] .pointer,.wheel-col[data-kind=ferris] .pointer,.wheel-col[data-kind=radar] .pointer,.wheel-col[data-kind=saturn] .pointer,.wheel-col[data-kind=reel] .pointer,.wheel-col[data-kind=tape] .pointer,.wheel-col[data-kind=flap] .pointer,.wheel-col[data-kind=cards] .pointer,.wheel-col[data-kind=hex] .pointer{display:none}.wheel-col[data-kind=reel] .wheel-hit,.wheel-col[data-kind=tape] .wheel-hit,.wheel-col[data-kind=flap] .wheel-hit,.wheel-col[data-kind=cards] .wheel-hit,.wheel-col[data-kind=hex] .wheel-hit{border-radius:0;overflow:visible;background:transparent}.wheel-col[data-kind=reel] .wheel-hit canvas,.wheel-col[data-kind=tape] .wheel-hit canvas,.wheel-col[data-kind=flap] .wheel-hit canvas,.wheel-col[data-kind=cards] .wheel-hit canvas,.wheel-col[data-kind=hex] .wheel-hit canvas{border-radius:0;filter:none}.burst{position:absolute;inset:12%;z-index:2;pointer-events:none}.burst span{position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;background:var(--gold-2);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(0 0 4px #ffe08a);animation:burst .9s ease-out forwards}@keyframes burst{0%{transform:translate(0) scale(.3);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(1);opacity:0}}.outcome{display:grid;grid-column:1;grid-row:2;width:var(--spin);min-height:0;align-items:start;justify-items:center;justify-self:center}.outcome:has(>.result[hidden]){display:none}.outcome>*{grid-area:1 / 1}.result{width:100%;text-align:center}.result__line{margin:0 0 22px;font-family:var(--serif);font-size:clamp(1.2rem,2.4vw,1.7rem);line-height:1.25}.result__line strong{display:block;margin-top:2px;color:var(--gold-2);font-size:1.15em}.result__actions{display:flex;flex-direction:column;align-items:stretch;gap:10px}.result__actions .text-link,.result__actions .btn:not(.btn--cta){align-self:center}.panel{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;background:var(--panel);border:1px solid rgba(240,193,75,.18);border-radius:var(--radius);padding:14px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 16px 50px #00000047}.pane{flex:1;display:flex;flex-direction:column;min-height:0}.pane[hidden]{display:none}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-bottom:12px;padding:4px;background:#070b168c;border:1px solid var(--line);border-radius:999px}.panel__head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.panel__head .tabs{flex:1;min-width:0;margin-bottom:0}.panel__head .icon-btn{width:38px;height:38px}.tab{appearance:none;border:0;background:transparent;color:var(--muted);border-radius:999px;padding:8px 12px;font:inherit;font-weight:500;cursor:pointer}.tab.is-on{background:#f0c14b2e;color:var(--gold-2)}.tab:disabled{opacity:.5;cursor:not-allowed}textarea,input[type=number]{width:100%;border:1px solid var(--line);background:#070b168c;color:var(--ink);border-radius:12px;font:inherit;padding:10px 12px}textarea{flex:1;min-height:0;overflow:auto;resize:none;line-height:1.45}.micro{margin:8px 0 12px;color:var(--muted);font-size:.82rem}.row{display:flex;flex-wrap:wrap;gap:8px}.btn{appearance:none;border:1px solid var(--line);background:var(--btn);color:var(--ink);border-radius:11px;padding:8px 12px;font:inherit;font-weight:500;cursor:pointer}.btn:hover{border-color:#ffffff38}.btn--gold{background:linear-gradient(180deg,#ffe08a,var(--gold));color:#2a1d00;border-color:transparent;font-weight:600}.btn--gold:hover{filter:brightness(1.05)}.btn--cta{width:100%;padding:16px 24px;font-size:1.2rem;border-radius:16px}.btn.spin-start{grid-column:1;grid-row:2;width:var(--spin);justify-self:center}.btn:disabled{opacity:.5;cursor:not-allowed}.text-link{appearance:none;border:0;background:none;padding:6px 4px;font:inherit;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.text-link:hover{color:var(--gold-2)}.spin-opts{display:grid;gap:8px;margin-bottom:14px}.setting{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px}.setting[hidden]{display:none}.setting label{font-size:.86rem;color:var(--muted)}.setting__controls{display:flex;align-items:center;gap:12px}.unique-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;color:var(--muted)}.unique-toggle[hidden]{display:none}.stepper{display:inline-flex;align-items:center;flex:none;background:#070b168c;border:1px solid var(--line);border-radius:999px;overflow:hidden}.stepper__btn{appearance:none;width:36px;height:36px;border:0;background:transparent;color:var(--gold-2);font:inherit;font-size:1.15rem;line-height:1;cursor:pointer}.stepper__btn:hover:not(:disabled){background:#f0c14b1f}.stepper__btn:disabled{opacity:.45;cursor:not-allowed}.stepper input[type=number]{width:2.4rem;max-width:none;margin:0;padding:8px 0;border:0;border-radius:0;background:transparent;text-align:center;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}.stepper input[type=number]::-webkit-outer-spin-button,.stepper input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.stepper__unit{color:var(--muted);font-size:.78rem;padding-right:2px}.switch{appearance:none;position:relative;width:44px;height:26px;flex:none;padding:0;border:1px solid var(--line);border-radius:999px;background:#070b168c;cursor:pointer}.switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--muted);transform:translate(0);transition:transform .16s ease,background .16s ease}.switch.is-on{background:#f0c14b38;border-color:#f0c14b80}.switch.is-on:after{transform:translate(18px);background:var(--gold)}.switch:disabled{opacity:.5;cursor:not-allowed}.result__names{margin:8px auto 0;padding:0;width:fit-content;list-style:none;text-align:left;counter-reset:win}.result__names li{counter-increment:win}.result__names li:before{content:counter(win) ". ";color:var(--muted)}.result__names strong{display:inline;margin:0;font-size:1em}.range{display:flex;align-items:end;gap:10px;margin-bottom:14px}.range label{flex:1;display:grid;gap:6px;font-size:.82rem;color:var(--muted)}.range__dash{padding-bottom:10px;color:var(--muted)}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:5;max-width:min(92vw,420px);padding:10px 14px;border-radius:12px;background:#161d32;border:1px solid rgba(240,193,75,.35);color:var(--ink);box-shadow:0 10px 40px #00000059}body.is-fullscreen .page{max-width:1320px;padding-top:10px}body.is-fullscreen .stage{--spin: min( calc(100dvh - 20rem) , 100%, 560px)}@media(max-width:860px){.page{padding:10px 14px 16px;grid-template-rows:auto 1fr auto;gap:10px 0}.top{min-height:48px;gap:12px}.brand__text h1{font-size:1.18rem}.kinds{grid-template-columns:repeat(4,minmax(0,1fr))}.stage{--spin: min(72vw, 360px);grid-template-columns:1fr;grid-template-rows:auto;gap:16px;align-items:start;padding-top:40px}.wheel-fit,.list-col,.btn.spin-start,.outcome{grid-column:auto;grid-row:auto;justify-self:center}.list-col{width:100%;height:auto;align-self:start;overflow:visible}.kind{gap:2px;padding:6px 2px;font-size:.68rem}textarea{min-height:160px}}@media(max-width:380px){.brand{padding-right:12px;gap:8px}.brand__text h1{font-size:1.05rem}}@media(prefers-reduced-motion:reduce){.sky__stars,.sky__sparkle span,.sky__shoot,.burst span{animation:none}.pointer__arm{transform:none!important}.switch:after,.brand__mark{transition:none}}
