:root{--cream: #fff4dc;--ink: #193536;--teal: #255f5f;--mint: #bbf0d1;--gold: #ffb000;--coral: #f56f3a;--berry: #e5484d;--blue: #2f6df6;--paper: #fffaf0;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-soft: cubic-bezier(.32, .72, 0, 1);--spin-ease: cubic-bezier(.13, .84, .06, 1);--z-wordmark: 5;--z-pointer: 6;--z-menu: 30;--z-dialog: 40;--z-panel: 50;--z-confetti: 60;font-family:Outfit,Cabinet Grotesk,sans-serif;-webkit-font-smoothing:antialiased;color:var(--ink);background:var(--cream);text-rendering:geometricPrecision}*{box-sizing:border-box}html{min-height:100%;-webkit-text-size-adjust:100%;background:var(--cream)}body{min-height:100%;margin:0;overflow:hidden}button,input{font:inherit}button,[role=button],input[type=color]{touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid rgba(25,53,54,.55);outline-offset:3px}button:disabled,input:disabled{cursor:not-allowed;opacity:.5}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;white-space:nowrap;border:0;clip:rect(0,0,0,0)}.stage{position:relative;display:grid;place-items:center;width:100%;min-height:100dvh;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));overflow:hidden;background:radial-gradient(circle at 50% 36%,rgba(255,176,0,.4),transparent 46%),radial-gradient(circle at 8% 8%,rgba(47,109,246,.16),transparent 30%),radial-gradient(circle at 92% 14%,rgba(245,111,58,.18),transparent 28%),radial-gradient(circle at 50% 108%,rgba(37,95,95,.32),transparent 46%),linear-gradient(168deg,#fff7e6,#ffe9bf 44%,#d6f5e2);isolation:isolate}.stage:before{position:absolute;inset:0;z-index:-1;pointer-events:none;content:"";background-image:linear-gradient(rgba(25,53,54,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(25,53,54,.16) 1px,transparent 1px);background-size:46px 46px;opacity:.1;-webkit-mask-image:radial-gradient(circle at center,black 0%,transparent 72%);mask-image:radial-gradient(circle at center,black 0%,transparent 72%)}.confetti-canvas{position:fixed;inset:0;z-index:var(--z-confetti);width:100%;height:100%;pointer-events:none}.menu-trigger{position:fixed;top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));z-index:var(--z-menu);display:grid;gap:5px;place-content:center;width:58px;height:58px;cursor:pointer;background:#fffaf0b8;border:0;border-radius:20px;box-shadow:inset 0 1px #ffffffe6,0 0 0 1px #19353614,0 14px 30px #1935362e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .22s var(--ease-out-expo)}.menu-trigger span{width:24px;height:2.5px;background:var(--ink);border-radius:999px}.menu-trigger span:nth-child(2){width:17px}.wheel-wrap{--wheel-size: min(86vw, 78dvh, 720px);position:relative;display:flex;flex-direction:column;align-items:center;width:100%}.wheel-glow{position:absolute;top:50%;left:50%;z-index:-1;width:calc(var(--wheel-size) * 1.4);aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,rgba(255,176,0,.36),transparent 62%);filter:blur(12px);transform:translate(-50%,-50%)}.wheel-stage{position:relative;display:grid;place-items:center;width:var(--wheel-size);aspect-ratio:1}.wheel-pointer{position:absolute;top:calc(var(--wheel-size) * -.035);left:50%;z-index:var(--z-pointer);width:0;height:0;border-top:calc(var(--wheel-size) * .058) solid var(--ink);border-right:calc(var(--wheel-size) * .032) solid transparent;border-left:calc(var(--wheel-size) * .032) solid transparent;filter:drop-shadow(0 6px 10px rgba(25,53,54,.3));transform:translate(-50%)}.wheel-pointer:after{position:absolute;top:calc(var(--wheel-size) * -.044);left:50%;width:calc(var(--wheel-size) * .032);height:calc(var(--wheel-size) * .032);content:"";background:var(--gold);border:calc(var(--wheel-size) * .006) solid var(--ink);border-radius:999px;transform:translate(-50%)}.wheel-button{position:relative;display:grid;place-items:center;width:100%;height:100%;padding:0;cursor:pointer;background:none;border:0;border-radius:999px;transition:transform .36s var(--ease-out-expo)}.wheel-svg{width:100%;height:100%;filter:drop-shadow(0 30px 60px rgba(25,53,54,.32));transform-origin:50% 50%;transition:transform 4.6s var(--spin-ease);will-change:transform}.wheel-rim{stroke:var(--ink)}.wheel-segment{stroke:#fffaf0eb;stroke-width:.5;stroke-linejoin:round}.wheel-label{font-family:Outfit,sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.01em}.wheel-bulb{fill:var(--gold);stroke:#19353673;stroke-width:.25}.wheel-hub{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;width:27%;aspect-ratio:1;font-family:Fraunces,serif;line-height:.85;color:var(--ink);text-align:center;pointer-events:none;background:radial-gradient(circle at 32% 26%,#ffffff,transparent 38%),var(--gold);border-radius:999px;box-shadow:inset 0 1px 1px #ffffffd9,0 0 0 1.4vmin var(--paper),0 0 0 1.7vmin #19353629,0 14px 28px #19353647}.hub-line{margin:0;font-size:clamp(.72rem,2.1vmin,1.05rem);font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.78}.hub-word{margin-top:.04em;font-size:clamp(1.5rem,5vmin,2.7rem);font-weight:800}.wheel-button:not(:disabled) .wheel-hub{animation:hub-pulse 2.6s var(--ease-soft) infinite}.empty-hint{margin:28px 0 0;font-size:.95rem;font-weight:700;color:#193536ad;text-align:center}.wordmark{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:50%;z-index:var(--z-wordmark);font-family:Fraunces,serif;font-size:.9rem;font-weight:650;color:#1935366b;letter-spacing:.01em;transform:translate(-50%)}.panel{position:fixed;inset:0;z-index:var(--z-panel);overflow-y:auto;background:radial-gradient(circle at 88% -6%,rgba(255,176,0,.26),transparent 34%),radial-gradient(circle at 4% 102%,rgba(37,95,95,.16),transparent 32%),var(--paper);animation:panel-in .3s var(--ease-out-expo)}.panel-inner{display:flex;flex-direction:column;gap:20px;width:100%;max-width:680px;padding:clamp(24px,5vw,48px) clamp(22px,5vw,40px) max(32px,env(safe-area-inset-bottom));margin:0 auto}.panel-head{display:flex;align-items:flex-end;justify-content:space-between}.eyebrow{margin:0 0 8px;font-size:11px;font-weight:900;color:#19353699;text-transform:uppercase;letter-spacing:.22em}.panel-head h1{margin:0;font-family:Fraunces,serif;font-size:clamp(2.2rem,6vw,3.2rem);font-weight:800;line-height:.92}.panel-close{min-height:48px;padding:0 22px;font-weight:800;color:var(--paper);cursor:pointer;background:var(--ink);border:0;border-radius:999px;transition:transform .18s var(--ease-out-expo)}.panel-summary{display:flex;gap:14px;align-items:baseline;padding:18px 22px;background:#255f5f1a;border-radius:22px}.summary-count{font-family:Fraunces,serif;font-size:2.6rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:.8;color:var(--teal)}.summary-label{font-size:.95rem;font-weight:700;color:#193536b3}.prize-list{display:grid;gap:12px}.prize-row{display:grid;grid-template-columns:46px minmax(0,1fr) 72px;gap:12px;align-items:end;padding:14px;background:#1935360d;border-radius:20px;box-shadow:inset 0 1px #fffc}.swatch-wrap{display:grid;place-items:center;align-self:end;width:46px;height:46px;background:#fffaf0e6;border-radius:999px;box-shadow:inset 0 0 0 1px #19353614}.swatch-input{width:34px;height:34px;padding:0;-webkit-appearance:none;appearance:none;cursor:pointer;border:0;border-radius:999px;box-shadow:inset 0 0 0 2px #ffffffb3}.swatch-input::-webkit-color-swatch-wrapper{padding:0}.swatch-input::-webkit-color-swatch{border:0;border-radius:999px}.field{display:grid;gap:6px;min-width:0}.field span{font-size:10px;font-weight:900;color:#19353699;text-transform:uppercase;letter-spacing:.12em}.field input{width:100%;min-height:44px;padding:0 14px;font-size:16px;font-weight:700;color:var(--ink);background:var(--paper);border:0;border-radius:13px;box-shadow:inset 0 0 0 1px #1935361a}.count-field input{font-variant-numeric:tabular-nums;text-align:center}.prize-meta{display:flex;grid-column:2 / 4;gap:10px;justify-content:space-between;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums;color:#19353699}.row-buttons{display:flex;grid-column:1 / 4;gap:10px;justify-content:space-between}.toggle,.remove-button{min-height:40px;padding:0 18px;font-size:13px;font-weight:800;cursor:pointer;border:0;border-radius:999px;transition:transform .16s var(--ease-out-expo)}.toggle.on{color:var(--paper);background:var(--teal)}.toggle.off{color:#19353699;background:#1935361a}.remove-button{color:var(--berry);background:#e5484d1f}.panel-actions{display:flex;flex-wrap:wrap;gap:12px;padding-bottom:8px}.ghost-action{flex:1 1 auto;min-height:52px;padding:0 22px;font-weight:800;color:var(--ink);cursor:pointer;background:#19353614;border:0;border-radius:999px;transition:transform .18s var(--ease-out-expo)}.ghost-action.danger{color:var(--berry);background:#e5484d1f}.dialog-backdrop{position:fixed;inset:0;z-index:var(--z-dialog);display:grid;place-items:center;padding:24px;background:#19353675;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:fade-in .22s var(--ease-out-expo)}.result-dialog{width:min(520px,100%);padding:clamp(28px,5vw,44px);text-align:center;background:radial-gradient(circle at 84% 10%,rgba(255,176,0,.42),transparent 30%),var(--paper);border-radius:36px;box-shadow:inset 0 1px 1px #fffffff0,0 30px 90px #19353666;animation:dialog-pop .36s var(--ease-soft)}.result-dialog h2{margin:0;font-family:Fraunces,serif;font-size:clamp(2rem,6vw,3rem);font-weight:800;line-height:.95}.result-prize{margin:14px 0 0;font-family:Fraunces,serif;font-size:clamp(2.3rem,9vw,4.4rem);font-weight:800;line-height:.92;color:var(--teal);text-wrap:balance}.result-dialog.win .result-prize{color:var(--coral)}.result-copy{margin:18px 0 26px;font-size:16px;font-weight:700;line-height:1.5;color:#193536a8}.dialog-actions{display:flex;gap:12px;justify-content:center}.primary-action{min-height:56px;padding:0 32px;font-weight:800;color:var(--paper);cursor:pointer;background:var(--ink);border:0;border-radius:999px;transition:transform .18s var(--ease-out-expo)}@keyframes hub-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes panel-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-pop{0%{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}button:active:not(:disabled){transform:scale(.97)}@media(hover:hover)and (pointer:fine){.menu-trigger:hover,.panel-close:hover,.primary-action:hover,.ghost-action:hover,.toggle:hover,.remove-button:hover{transform:translateY(-1px)}.wheel-button:not(:disabled):hover .wheel-hub{transform:scale(1.05);animation:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.001ms!important;animation:none!important}}
