body[data-theme=citrus],body{--bg: #FFF3E0;--surface: #FFFBF4;--surface2: #F9E7C6;--ink: #33150A;--accent: #EE4D12;--accent2: #D2317F;--good: #2A9D5C;--warn: #C77800;--danger: #D63A3A;--muted: rgba(51, 21, 10, .55);--line: rgba(51, 21, 10, .14)}body[data-theme=confetti]{--bg: #FAF5EC;--surface: #FFFFFF;--surface2: #F3EBDD;--ink: #221635;--accent: #FF4D7D;--accent2: #6C4DF6;--good: #1E9E6E;--warn: #DA8300;--danger: #E23D3D;--muted: rgba(34, 22, 53, .55);--line: rgba(34, 22, 53, .12)}body[data-theme=neon]{--bg: #0F0D18;--surface: #181527;--surface2: #221E36;--ink: #F5F2FF;--accent: #D8FF4F;--accent2: #FF5CCB;--good: #4ADE9C;--warn: #FFC24B;--danger: #FF6B6B;--muted: rgba(245, 242, 255, .55);--line: rgba(245, 242, 255, .14)}@media(max-width:1023.98px){body[data-theme=citrus],body{--line: rgba(51, 21, 10, .13)}}:root{--font-display: "Bricolage Grotesque", system-ui, sans-serif;--font-body: "Instrument Sans", system-ui, sans-serif;--r-chip: 9px;--r-card: 14px;--r-hero: 22px;--r-pill: 99px;--shadow-hero: 0 30px 70px -30px rgba(0, 0, 0, .4);--tab-h: 62px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.45;font-optical-sizing:auto;--accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);--accent-ink: #fff;--accent2-soft: color-mix(in srgb, var(--accent2) 12%, transparent);--good-soft: color-mix(in srgb, var(--good) 14%, transparent);--warn-soft: color-mix(in srgb, var(--warn) 14%, transparent);--danger-soft: color-mix(in srgb, var(--danger) 12%, transparent)}h1,h2,h3,.display{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;margin:0}.app{max-width:430px;margin:0 auto;min-height:100dvh;padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom))}.shell-web{width:100%;min-height:100dvh}.screen{padding:16px 16px 24px;animation:bash-in .4s ease both}.tabbar{position:fixed;inset:auto 0 0 0;margin:0 auto;max-width:430px;height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:var(--surface);border-top:1px solid var(--line);z-index:40}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:44px;color:var(--muted);text-decoration:none;font-size:11px;font-weight:600}.tabbar a.active{color:var(--accent)}.tabbar .fab{align-self:center;justify-self:center;width:48px;height:48px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:26px;line-height:48px;text-align:center;box-shadow:0 8px 20px -8px var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:14px}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface2);font-size:12px;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;width:100%;border:none;border-radius:var(--r-chip);background:var(--accent);color:#fff;font:600 14px var(--font-body);cursor:pointer;transition:transform .18s ease,opacity .18s ease}.btn:active{transform:scale(.98)}.btn.ghost{background:var(--surface2);color:var(--ink)}.btn.good{background:var(--good)}.muted{color:var(--muted)}.row{display:flex;align-items:center;gap:10px}.stack{display:grid;gap:12px}.stepper{display:flex;gap:6px;overflow-x:auto;padding:10px 0;scrollbar-width:none}.stepper::-webkit-scrollbar{display:none}.step{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);background:var(--surface2);color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.step.done{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good)}.step.current{background:var(--accent);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}.party-header{border-radius:var(--r-hero);background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;padding:20px 16px}.tabstrip{display:flex;gap:8px;overflow-x:auto;padding:12px 0;scrollbar-width:none}.tabstrip::-webkit-scrollbar{display:none}.tabstrip a{flex:0 0 auto;padding:8px 14px;border-radius:var(--r-pill);background:var(--surface2);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}.tabstrip a.active{background:var(--ink);color:var(--bg)}.invite-backdrop{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(120% 90% at 50% 0%,color-mix(in srgb,var(--accent2) 22%,var(--bg)),var(--bg) 70%)}.invite-card{width:min(420px,100%);background:var(--surface);border-radius:var(--r-hero);box-shadow:var(--shadow-hero);padding:28px 20px;text-align:center}.invite-emoji{font-size:52px;margin-top:-56px}.invite-cover{height:96px;border-radius:var(--r-card);background:linear-gradient(135deg,var(--accent),var(--accent2))}.facts{border:1px solid var(--line);border-radius:var(--r-card);padding:12px;text-align:left}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:50}.sheet{position:fixed;inset:auto 0 0 0;margin:0 auto;max-width:430px;background:var(--surface);border-radius:var(--r-hero) var(--r-hero) 0 0;padding:12px 16px calc(20px + env(safe-area-inset-bottom));z-index:51;animation:sheet-up .3s ease both}.sheet .grab{width:36px;height:4px;border-radius:4px;background:var(--line);margin:0 auto 12px}@keyframes bash-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes bash-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes ev-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes ev-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes ev-sheet{0%{transform:translateY(100%)}to{transform:none}}@keyframes bash-spin{to{transform:rotate(360deg)}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.pulse-dot{width:8px;height:8px;border-radius:99px;background:currentColor;animation:bash-pulse 1.4s ease infinite}@media(prefers-reduced-motion:reduce){.screen,.sheet,.pulse-dot{animation:none}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
