:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--night:#140f24;--night-deep:#050309;--plum:#2b1c47;--plum-glow:#3a2560;--wine:#3b1838;--rose:#ff6f91;--peach:#ff9f6b;--gold:#ffc56b;--lilac:#c9a7ff;--ink:#f7eef6;--muted:#b9a9cc;--faint:#8a7aa0;--hairline:#ffffff1f;--surface:#ffffff0f;--surface-strong:#ffffff1c;--radius:22px;--font-display:"Fraunces", Georgia, serif;--font-body:"DM Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{min-height:100dvh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(120% 70% at 50% -10%, var(--plum-glow) 0%, transparent 60%), radial-gradient(80% 50% at 100% 100%, var(--wine) 0%, transparent 70%), var(--night);-webkit-font-smoothing:antialiased;margin:0}body.is-staged{overflow:hidden}button,select{font:inherit;color:inherit}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.sky,.sky:before,.sky:after{pointer-events:none;position:fixed;inset:0}.sky{z-index:0;background-image:radial-gradient(1px 1px at 37px 59px,#ffffffd9,#0000),radial-gradient(1px 1px at 151px 13px,#fff9,#0000),radial-gradient(1.5px 1.5px at 93px 171px,#fff0dce6,#0000),radial-gradient(1px 1px at 211px 97px,#ffffff8c,#0000),radial-gradient(1px 1px at 17px 211px,#ffffff73,#0000);background-size:241px 241px}.sky:before{content:"";background-image:radial-gradient(1.5px 1.5px at 71px 283px,#ffffffe6,#0000),radial-gradient(1px 1px at 199px 41px,#ffdce6cc,#0000),radial-gradient(1px 1px at 307px 157px,#ffffffb3,#0000),radial-gradient(1.5px 1.5px at 23px 109px,#ffecc8d9,#0000),radial-gradient(1px 1px at 251px 233px,#fff9,#0000);background-size:337px 337px;animation:7s ease-in-out infinite twinkle}.sky:after{content:"";background:radial-gradient(circle at 86% 12%,#ff6f9129,#0000 18%),radial-gradient(circle at 8% 78%,#ffc56b1a,#0000 22%),radial-gradient(circle at 72% 90%,#c9a7ff1f,#0000 16%),radial-gradient(circle at 16% 20%,#c9a7ff14,#0000 12%)}@keyframes twinkle{0%,to{opacity:.35}50%{opacity:1}}.page{z-index:1;max-width:460px;min-height:100dvh;padding:max(64px, env(safe-area-inset-top)) 16px max(48px, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;margin:0 auto;display:flex;position:relative}.masthead{text-align:center;margin-bottom:28px;animation:.6s ease-out both rise}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin:0 0 12px;font-size:12px;font-weight:700}.masthead__title{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(38px,11vw,52px);font-weight:700;line-height:1}.masthead__title em{background:linear-gradient(90deg, var(--rose), var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;padding-right:.06em;font-weight:500}.hat-count{border:1px solid var(--hairline);background:var(--surface);border-radius:999px;align-items:center;gap:8px;margin:18px 0 0;padding:6px 14px;font-size:13px;display:inline-flex}.hat-count:before{content:"🎩"}.planner{border:1px solid var(--hairline);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#ffffff14,#ffffff08);gap:18px;padding:22px;animation:.6s ease-out .1s both rise;display:grid;box-shadow:0 30px 60px -30px #0009,inset 0 1px #ffffff0f}.is-staged .planner{opacity:0}.field{gap:8px;display:grid}.field__label{font-size:15px;font-weight:700}.field__optional{color:var(--faint);margin-left:4px;font-size:13px;font-weight:400}.select{position:relative}.select:after{content:"";border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);pointer-events:none;width:8px;height:8px;position:absolute;top:50%;right:20px;transform:translateY(-70%)rotate(45deg)}.select select{appearance:none;border:1px solid var(--hairline);cursor:pointer;background:#0a071473;border-radius:14px;width:100%;min-height:54px;padding:12px 48px 12px 16px;font-size:17px;transition:border-color .15s,box-shadow .15s}.select select:hover{border-color:#ffffff40}.select select:focus-visible{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #ffc56b40}.select option{color:var(--ink);background:#1e1636}.planner__footer{gap:12px;margin-top:4px;display:grid}.fit{text-align:center;min-height:1.4em;color:var(--muted);margin:0;font-size:14px;line-height:1.45}.fit--empty{color:var(--gold)}.btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:56px;padding:0 28px;font-size:17px;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .15s,background .15s;display:inline-flex}.btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.btn--primary{background:linear-gradient(135deg, var(--rose) 0%, var(--peach) 55%, var(--gold) 100%);color:#2a0f1d;box-shadow:0 14px 30px -12px #ff6f91b3}.btn--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 18px 36px -12px #ff6f91d9}.btn--primary:active:not(:disabled){transform:translateY(1px)scale(.99)}.btn--primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn--ghost{border:1px solid var(--hairline);background:var(--surface);color:var(--ink)}.btn--ghost:hover{background:var(--surface-strong)}.planner .btn{width:100%}.sound-toggle{top:max(14px, env(safe-area-inset-top));right:max(14px, env(safe-area-inset-right));z-index:70;border:1px solid var(--hairline);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#140f2499;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;font-size:18px;display:grid;position:fixed}.sound-toggle:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.stage{z-index:50;outline:none;display:flex;position:fixed;inset:0;overflow-y:auto}.stage__backdrop,.stage__rays{pointer-events:none;position:fixed}.stage__backdrop{background:radial-gradient(circle at 50% 45%, var(--plum) 0%, #120c20 45%, var(--night-deep) 100%);inset:0}.stage__rays{opacity:0;background:repeating-conic-gradient(#ffc56b29 0deg 7deg,#0000 7deg 24deg);width:180vmax;height:180vmax;margin:-90vmax 0 0 -90vmax;transition:opacity .8s;top:50%;left:50%;-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 38%);mask-image:radial-gradient(circle,#000 0%,#0000 38%)}.stage--rays .stage__rays{opacity:1;animation:40s linear infinite rays-turn}@keyframes rays-turn{to{transform:rotate(1turn)}}.stage__body{z-index:1;width:100%;padding:max(72px, env(safe-area-inset-top)) 16px max(32px, env(safe-area-inset-bottom));text-align:center;flex-direction:column;align-items:center;gap:22px;margin:auto;display:flex;position:relative}.stage__caption{max-width:26ch;min-height:1.3em;font-family:var(--font-display);color:var(--gold);margin:0;font-size:clamp(20px,5.5vw,28px);font-style:italic;line-height:1.3}.stage__center{place-items:center;width:100%;min-height:220px;display:grid}.stage__actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.stage__skip{letter-spacing:.04em;color:var(--faint);margin:0;font-size:13px}.card-back{background:radial-gradient(circle,#ff6f9159 0 22%,#0000 23%),repeating-linear-gradient(45deg,#3a1f55 0 10px,#2d1844 10px 20px);border:2px solid #ffc56ba6;border-radius:16px;place-items:center;display:grid;box-shadow:0 20px 40px -18px #000c,inset 0 0 0 6px #140f248c}.card-back__mark{font-size:calc(var(--card-w) * .3);color:var(--gold);text-shadow:0 0 18px #ffc56b99}.deck{--card-w:min(124px, (100vw - 32px - 2 * var(--card-gap)) / 3);--card-gap:14px;width:calc(var(--card-w) * 3 + var(--card-gap) * 2);height:calc(var(--card-w) * 1.4);perspective:900px;position:relative}.deck__card{width:var(--card-w);height:100%;margin-left:calc(var(--card-w) / -2);translate:calc(var(--i) * -2px) calc(var(--i) * -3px);position:absolute;top:0;left:50%}.deck__card.is-dealt{translate:calc(var(--slot) * (var(--card-w) + var(--card-gap))) 0}.flip{perspective:1400px;width:min(100%,400px)}.result{box-shadow:inset 0 0 0 1px #ffffff0a, 0 30px 80px -20px #000c, 0 0 70px -10px color-mix(in srgb, var(--cat) 50%, transparent);background:linear-gradient(160deg,#2e1f4d 0%,#1c1430 100%);border:1px solid #ffc56b73;border-radius:24px;justify-items:center;gap:16px;padding:34px 24px 30px;display:grid}.result__badge{border:1px solid color-mix(in srgb, var(--cat) 70%, transparent);background:color-mix(in srgb, var(--cat) 22%, transparent);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:700;display:inline-flex}.result__idea{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;outline:none;margin:0;font-size:clamp(28px,8vw,40px);font-weight:650;line-height:1.12}.result__chips{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.result__chip{border:1px solid var(--hairline);background:var(--surface);border-radius:999px;padding:8px 14px;font-size:15px;font-weight:700}.stage--rays .result>*{animation:.5s cubic-bezier(.2,.7,.3,1) both rise}.stage--rays .result>:first-child{animation-delay:.3s}.stage--rays .result>:nth-child(2){animation-delay:.4s}.stage--rays .result>:nth-child(3){animation-delay:.5s}.confetti{z-index:60;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}@media (width>=720px){.planner{padding:28px}}@media (height<=520px){.page{padding-top:32px}.stage__body{gap:12px;padding-top:20px}.stage__center{min-height:0}.result{gap:10px;padding:20px}.result__idea{font-size:26px}}@media (prefers-reduced-motion:reduce){.sky:before,.masthead,.planner,.stage--rays .result>*{animation:none}.stage__rays{display:none}.btn{transition:none}}
