:root{--bg: #fff3f8;--card: #ffffff;--ink: #2a1d3a;--muted: #6b5a7b;--line: #f1d6e4;--accent: #e0307a;--accent-ink: #ffffff;--soft: #ffe5f0;--focus: #5b3fd6;--error: #b42318;--balloon-1: #ff4f8b;--balloon-2: #7b5cff;--balloon-3: #ffbe2e;--check: #22a06b;--party-green: #1f9d55;--party-red: #e0322b;--party-orange: #f57c00;--you: #111111;--party-1: #e0307a;--party-2: #6a4be0;--party-3: #e98a00;--party-4: #0a9d8f;--party-5: #2f7be0;--dot-1: rgba(255, 79, 139, .35);--dot-2: rgba(123, 92, 255, .3);--dot-3: rgba(255, 190, 46, .45);--dot-4: rgba(224, 50, 43, .3);--dot-5: rgba(10, 157, 143, .3);color-scheme:light;font-family:Segoe UI,system-ui,-apple-system,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #1a1326;--card: #241a33;--ink: #f7eefc;--muted: #b9a8c9;--line: #3d2f50;--accent: #ff6fa5;--accent-ink: #22101a;--soft: #33213f;--focus: #b3a4ff;--error: #ff8a7a;--balloon-1: #ff6fa5;--balloon-2: #a08cff;--balloon-3: #ffd166;--check: #4fd69c;--party-green: #4fd68a;--party-red: #ff6b5e;--party-orange: #ffa040;--you: #f7eefc;--party-1: #ff6fa5;--party-2: #a08cff;--party-3: #ffc04d;--party-4: #4fd6c4;--party-5: #6fb0ff;--dot-1: rgba(255, 111, 165, .3);--dot-2: rgba(160, 140, 255, .28);--dot-3: rgba(255, 209, 102, .28);--dot-4: rgba(255, 107, 94, .28);--dot-5: rgba(79, 214, 196, .26);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background-color:var(--bg);color:var(--ink);font-size:1.1rem;line-height:1.55;background-image:radial-gradient(circle at 12% 18%,var(--dot-1) 0 6px,transparent 7px),radial-gradient(circle at 82% 9%,var(--dot-2) 0 5px,transparent 6px),radial-gradient(circle at 64% 58%,var(--dot-3) 0 6px,transparent 7px),radial-gradient(circle at 28% 76%,var(--dot-4) 0 4px,transparent 5px),radial-gradient(circle at 92% 84%,var(--dot-5) 0 5px,transparent 6px),radial-gradient(circle at 46% 34%,var(--dot-5) 0 3px,transparent 4px),radial-gradient(circle at 6% 52%,var(--dot-3) 0 4px,transparent 5px),radial-gradient(circle at 74% 92%,var(--dot-4) 0 4px,transparent 5px);background-size:260px 260px}.shell{max-width:40rem;margin:0 auto;padding:max(1.5rem,env(safe-area-inset-top)) max(1.1rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(1.1rem,env(safe-area-inset-left))}.eyebrow{margin:0;font-size:.9rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}h1{margin:.5rem 0 0;font-size:clamp(2.1rem,9vw,3.6rem);line-height:1.05;font-weight:800;text-wrap:balance}h1 span{color:var(--accent)}h2{margin:.3rem 0 .4rem;font-size:clamp(1.6rem,6vw,2.2rem);line-height:1.1}h3{margin:0 0 .3rem;font-size:1.2rem}.intro{position:relative;isolation:isolate;padding-block:1rem 1.5rem}.intro:after{content:"";display:block;clear:both}.balloons{position:absolute;z-index:-1;top:-.2rem;right:-.4rem;width:clamp(7.5rem,36vw,13rem);overflow:visible;opacity:.9}.title{margin:0;padding-top:clamp(2.4rem,11vw,3.8rem);white-space:nowrap;font-size:clamp(1.55rem,8.9vw,3.75rem);line-height:1;font-weight:900;letter-spacing:-.035em;word-spacing:.08em}.title .rainbow span:nth-child(odd){color:var(--party-red)}.title .rainbow span:nth-child(2n){color:var(--party-orange)}.title .rainbow:first-child span:nth-child(4){color:var(--party-5)}.title .rainbow:nth-child(2) span:nth-child(2){color:var(--balloon-2)}.title .rainbow:nth-child(2) span:nth-child(5){color:var(--party-green)}.title .you{color:var(--you);font-family:Fredoka,Segoe UI,system-ui,sans-serif;font-weight:700;letter-spacing:0}.slogan{margin:.8rem 0 0;font-family:Fredoka,Segoe UI,system-ui,sans-serif;font-size:clamp(.9rem,4.1vw,1.5rem);line-height:1.25;font-weight:600;white-space:nowrap}.slogan span{color:var(--accent)}.title .rainbow span{display:inline-block;animation:hop .7s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i) * 55ms)}@keyframes hop{0%{transform:translateY(-1.1em) scale(.6);opacity:0}55%{transform:translateY(.08em) scaleY(.85);opacity:1}75%{transform:translateY(-.12em)}to{transform:none}}.title .you{display:inline-block;position:relative;transform-origin:50% 100%;animation:slam .55s cubic-bezier(.5,0,.75,0) 1s both,settle .45s ease-out 1.55s both}@keyframes slam{0%{transform:translateY(-1.6em) scale(2.4);opacity:0}70%{opacity:1}to{transform:none;opacity:1}}@keyframes settle{0%{transform:scale(1.25,.7)}40%{transform:scale(.9,1.15)}70%{transform:scale(1.04,.97)}to{transform:none}}.title{animation:thud .3s ease-out 1.55s}@keyframes thud{25%{transform:translateY(.06em)}60%{transform:translateY(-.02em)}}.burst{position:absolute;z-index:-1;left:50%;top:50%;width:0;height:0;pointer-events:none}.burst i{position:absolute;left:-.1em;top:-.1em;width:.2em;height:.2em;border-radius:50%;opacity:0;animation:pop .7s ease-out 1.55s both}@keyframes pop{0%{transform:rotate(var(--a)) translate(.7em) scale(1);opacity:1}to{transform:rotate(var(--a)) translate(1.8em) scale(.3);opacity:0}}.intro .slogan,.intro .checks{animation:rise .6s ease-out both}.intro .slogan{animation-delay:1.9s}.intro .checks{animation-delay:2.1s}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.balloon{animation:bob 4.8s ease-in-out infinite;transform-box:fill-box}@keyframes bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}.checks{list-style:none;padding:0;margin:1.2rem 0 0;display:grid;gap:.55rem;clear:both}.checks li{display:flex;align-items:center;gap:.7rem;font-size:1.15rem;font-weight:600}.checks li:before{content:"✓";flex:none;display:grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:7px;background:var(--check);color:var(--card);font-weight:900;font-size:1rem}.checks li:nth-child(4n+1):before{background:var(--party-red)}.checks li:nth-child(4n+2):before{background:var(--party-orange)}.checks li:nth-child(4n+3):before{background:var(--balloon-2)}.checks li:nth-child(4n):before{background:var(--party-4)}.intro.compact{padding-block:.5rem 1rem}.lede{margin:1rem 0 0;font-size:1.15rem;color:var(--muted)}.hint{color:var(--muted);font-size:1rem;margin:.6rem 0 0}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:1.3rem 1.1rem 1.4rem}.card{border-top:0;background-image:linear-gradient(90deg,var(--party-red),var(--party-orange),var(--balloon-3),var(--party-4),var(--balloon-2),var(--balloon-1));background-size:100% 6px;background-repeat:no-repeat;background-color:var(--card)}fieldset{border:0;margin:0;padding:0;min-width:0}legend{font-size:1.45rem;font-weight:800;line-height:1.2;margin-bottom:.8rem;padding:0}label{display:block;font-weight:600;margin-top:1rem}label small{font-weight:400;color:var(--muted)}input[type=text],input:not([type]),input[type=date]{display:block;width:100%;margin-top:.35rem;font:inherit;font-size:1.15rem;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:.75rem .85rem;min-height:3rem}input:focus-visible,button:focus-visible,a:focus-visible,.theme:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:inherit;font-weight:700;min-height:3rem;padding:.7rem 1.3rem;border-radius:99px;border:2px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;text-decoration:none}button.secondary,.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}button:disabled{opacity:.55;cursor:not-allowed}button.danger{background:var(--error);border-color:var(--error);color:#fff}button.link{background:none;border:0;color:var(--accent);padding:.4rem 0;min-height:0;text-decoration:underline;margin-top:1rem}.nav{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}.nav button[type=submit]{flex:1 1 10rem}.steps{display:flex;gap:.3rem;list-style:none;padding:0;margin:0 0 1.2rem;overflow-x:auto}.steps li{flex:1;min-width:3.6rem;font-size:.8rem;text-align:center;border-top:4px solid var(--line);padding-top:.35rem;color:var(--muted)}.steps li.current{border-color:var(--accent);color:var(--ink);font-weight:700}.steps li.done{border-color:var(--accent)}.steps li button{all:unset;cursor:pointer;text-decoration:underline}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}.chip{min-height:2.6rem;padding:.4rem .9rem;font-weight:600;background:var(--bg);color:var(--ink);border:2px solid var(--line)}.chip.on{background:var(--soft);border-color:var(--accent)}.inline{display:flex;gap:.5rem;align-items:stretch}.inline input{flex:1}.inline button{margin-top:.35rem}.picked{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem}.picked li{background:var(--soft);border-radius:99px;padding:.2rem .3rem .2rem .8rem;font-weight:600;display:flex;align-items:center;gap:.2rem}.picked button{min-height:2rem;width:2rem;padding:0;border:0;background:none;color:var(--ink);font-size:1.2rem}.themes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.theme{position:relative;margin:0;border:2px solid var(--line);border-radius:16px;padding:.6rem;cursor:pointer;display:grid;gap:.2rem;align-content:start}.theme.on{border-color:var(--accent);background:var(--soft)}.theme input{position:absolute;opacity:0}.theme .swatch{width:100%;height:4.2rem;border-radius:10px;margin-bottom:.3rem}.theme b{line-height:1.25}.theme small{color:var(--muted);font-weight:400;font-size:.9rem;line-height:1.35}.review{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:0}.review dt{color:var(--muted)}.review dd{margin:0;font-weight:600;overflow-wrap:anywhere}.turnstile{margin-top:1.2rem;min-height:65px}input[type=password],input[type=email]{display:block;width:100%;margin-top:.35rem;font:inherit;font-size:1.15rem;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:.75rem .85rem;min-height:3rem}.admin-page{margin-top:1rem}.admin-page h2{margin-top:0}.confirm{display:flex;flex-wrap:wrap;gap:.7rem}.shell>.card+.card{margin-top:1rem}.paused{margin-bottom:1rem}.paused h2{margin-top:0}.reasons{margin-top:1rem;display:grid;gap:.5rem}.reasons legend{font-size:1.15rem;margin-bottom:.2rem}.reason{margin:0;display:flex;align-items:center;gap:.7rem;min-height:3rem;padding:.55rem .9rem;border:2px solid var(--line);border-radius:12px;font-weight:600;cursor:pointer}.reason.on{border-color:var(--accent);background:var(--soft)}.reason input{width:1.2rem;height:1.2rem;accent-color:var(--accent);flex:none}.reason:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}textarea{display:block;width:100%;margin-top:.35rem;font:inherit;font-size:1.05rem;color:var(--ink);background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:.75rem .85rem;resize:vertical}textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.count{display:block;text-align:right;color:var(--muted);font-weight:400;margin-top:.25rem}.report-page{margin:0}.field-note{display:block;margin-top:.35rem;font-weight:400;color:var(--muted);font-size:.9rem}.sent{margin:1rem 0 0;font-weight:600}.notice{background:var(--soft);border:2px solid var(--accent);border-radius:14px;padding:.8rem 1rem;margin:0 0 1rem}.your-pages{margin-bottom:1rem}.your-pages h2{margin-top:0;font-size:1.35rem}.your-pages ul{list-style:none;padding:0;margin:.4rem 0 0;display:grid;gap:.9rem}.your-pages li{display:grid;gap:.5rem;padding-top:.9rem;border-top:1px solid var(--line)}.your-pages li:first-child{border-top:0;padding-top:0}.your-pages .who{display:grid}.your-pages .who small{color:var(--muted)}.your-pages .actions{display:flex;flex-wrap:wrap;gap:.5rem}.your-pages .actions .button,.your-pages .actions button{min-height:2.6rem;padding:.4rem 1rem}.private .nav{margin-top:.8rem}.error{color:var(--error);font-weight:600;margin:1rem 0 0}.working{text-align:center;padding-block:2.5rem}.working p{margin:.8rem 0 0;font-size:1.2rem;font-weight:600}.spinner{width:3rem;height:3rem;margin:0 auto;border-radius:50%;border:5px solid var(--line);border-top-color:var(--accent);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.link-box{margin-top:1rem;background:var(--soft);border-radius:12px;padding:.9rem 1rem;font-size:1.25rem;font-weight:700;overflow-wrap:anywhere}.link-box a{color:var(--ink)}.link-box.small{font-size:.9rem;font-weight:400;margin-bottom:.8rem}.private{margin-top:1.6rem;border-top:1px solid var(--line);padding-top:1.2rem}.private p{margin:0;color:var(--muted)}.site-footer{text-align:center;color:var(--muted);font-size:.9rem;margin-top:2rem}@media(min-width:40rem){.card{padding:2rem 2.2rem}.themes{grid-template-columns:repeat(3,minmax(0,1fr))}.theme .swatch{height:5.5rem}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}.balloon,.title,.title .rainbow span,.title .you,.burst i,.intro .slogan,.intro .checks{animation:none}}
