:root{--ink:#fff8ef;--ink-soft:#fff8efb8;--ink-faint:#fff8ef80;--night:#120c2e;--glass:#1810388c;--glass-strong:#181038c7;--line:#ffffff1f;--ember-1:#ffd36e;--ember-2:#ff8a5c;--pine:#7ee8a4;--radius:22px;--display:"Bricolage Grotesque", system-ui, sans-serif;--body:"DM Sans", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--night);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0}body{min-height:100svh;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}.sky{z-index:0;background:radial-gradient(60% 45% at 50% 105%,#ff8a5c8c,#0000 70%),radial-gradient(40% 35% at 15% 10%,#786eff40,#0000 70%),linear-gradient(#0e0a26 0%,#221752 45%,#4a2a6e 78%,#8a4a72 100%);position:fixed;inset:0}.scene-wrap{z-index:0;transition:filter .8s,opacity .8s;position:fixed;inset:0}.scene-wrap.is-guests{filter:saturate(.9)brightness(.8)}.scene{width:100%;height:100%}.topbar{z-index:20;pointer-events:none;justify-content:space-between;align-items:center;gap:12px;padding:18px clamp(16px,4vw,44px);display:flex;position:fixed;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.logo{font-family:var(--display);letter-spacing:-.01em;align-items:center;gap:10px;font-size:18px;font-weight:700;display:inline-flex}.logo span:last-child{color:var(--ink-faint)}.logo-mark{color:#3a1a0c;background:linear-gradient(135deg, var(--ember-1), var(--ember-2));border-radius:11px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 6px 20px #ff8a5c59}.topbar nav{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);border-radius:999px;gap:4px;padding:4px;display:flex}.topbar nav a{color:var(--ink-soft);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;font-weight:500;transition:background .2s,color .2s;display:inline-flex}.topbar nav a:hover{color:var(--ink)}.topbar nav a.active{color:var(--ink);background:#ffffff1a}.pill{color:#3a1a0c;background:linear-gradient(135deg, var(--ember-1), var(--ember-2));border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 7px;font-size:12px;font-weight:700;display:inline-grid}.eyebrow{letter-spacing:.02em;color:var(--ink-soft);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:8px;padding:7px 14px 7px 10px;font-size:13px;font-weight:500;display:inline-flex}.dot{background:var(--pine);border-radius:50%;width:8px;height:8px;animation:2.4s ease-in-out infinite pulse;box-shadow:0 0 0 4px #7ee8a42e}.btn{cursor:pointer;white-space:nowrap;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;height:54px;padding:0 26px;font-size:16px;font-weight:700;transition:transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .2s,background .2s,opacity .2s;display:inline-flex}.btn:active{transform:scale(.97)}.btn.primary{color:#3a1a0c;background:linear-gradient(135deg, var(--ember-1), var(--ember-2));box-shadow:0 10px 30px #ff8a5c66,inset 0 1px #ffffff80}.btn.primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px #ff8a5c8c,inset 0 1px #ffffff80}.btn.primary svg{transition:transform .2s}.btn.primary:hover svg{transform:translate(3px)}.btn.ghost{color:var(--ink);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px)}.btn.ghost:hover{background:#ffffff1f;transform:translateY(-2px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.block{width:100%}.btn:focus-visible,.topbar a:focus-visible,.close:focus-visible{outline:2px solid var(--ember-1);outline-offset:3px}.home{z-index:1;pointer-events:none;align-items:center;min-height:100svh;padding:110px clamp(16px,6vw,88px) 60px;display:flex;position:relative}.hero{pointer-events:auto;max-width:560px}.hero h1{font-family:var(--display);letter-spacing:-.045em;text-shadow:0 6px 40px #0e0a2699;margin:22px 0 18px;font-size:clamp(3.2rem,8.2vw,7rem);font-weight:800;line-height:.9}.hero h1 em{background:linear-gradient(100deg, var(--ember-1), var(--ember-2) 60%, #ff6f91);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.lede{max-width:420px;color:var(--ink-soft);text-shadow:0 2px 16px #0e0a26cc;margin:0 0 30px;font-size:clamp(16px,1.4vw,18px);line-height:1.55}.actions{flex-wrap:wrap;gap:12px;display:flex}.reveal{opacity:0;animation:.9s cubic-bezier(.2,.8,.2,1) forwards rise;animation-delay:calc(.25s + var(--d,0) * .12s)}@media (aspect-ratio<=11/10){.home{align-items:flex-end;padding-bottom:36px}.hero{max-width:none}}.guests{z-index:1;justify-content:center;align-items:flex-start;min-height:100svh;padding:96px 16px 48px;display:flex;position:relative}.panel{background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(22px)saturate(1.2);border-radius:28px;width:100%;max-width:900px;padding:clamp(20px,4vw,40px);animation:.7s cubic-bezier(.2,.8,.2,1) both rise;box-shadow:0 30px 80px #08051880}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;display:flex}.panel-head h1{font-family:var(--display);letter-spacing:-.04em;margin:14px 0 0;font-size:clamp(2.4rem,6vw,4rem);font-weight:800;line-height:.95}.counter{color:var(--ink-soft);align-items:baseline;gap:10px;display:flex}.counter strong{font-family:var(--display);letter-spacing:-.04em;background:linear-gradient(135deg, var(--ember-1), var(--ember-2));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.6rem,6vw,4rem);font-weight:800;line-height:1}.guest-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.guest-card{border:1px solid var(--line);min-height:72px;animation:.6s cubic-bezier(.2,.8,.2,1) backwards rise;animation-delay:calc(var(--i,0) * 45ms + .15s);background:#ffffff0f;border-radius:18px;align-items:center;gap:14px;padding:12px 16px 12px 12px;transition:transform .25s cubic-bezier(.3,1.6,.5,1),background .2s;display:flex}.guest-card:hover{background:#ffffff1a;transform:translateY(-3px)rotate(-.6deg)}.avatar{width:46px;height:46px;font-family:var(--display);text-transform:uppercase;color:#1c1033;border-radius:14px;flex:none;place-items:center;font-size:16px;font-weight:700;display:grid;box-shadow:inset 0 1px #ffffff80}.guest-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden}.guest-num{font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:13px}.skeleton{opacity:1;background:linear-gradient(90deg,#ffffff0d,#ffffff1c,#ffffff0d) 0 0/200% 100%;animation:1.4s linear infinite shimmer}.empty{text-align:center;color:var(--ink-soft);flex-direction:column;align-items:center;gap:18px;padding:40px 0 16px;display:flex}.empty p{margin:0;font-size:17px}.panel-foot{justify-content:center;margin-top:28px;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(6px);background:#08051880;place-items:center;padding:16px;animation:.25s both fade;display:grid;position:fixed;inset:0}.modal{background:linear-gradient(160deg,#342268eb,#181038f2);border:1px solid #ffffff29;border-radius:28px;width:100%;max-width:420px;padding:30px;animation:.45s cubic-bezier(.3,1.5,.5,1) both pop;position:relative;box-shadow:0 40px 100px #00000080,inset 0 1px #ffffff1f}.modal h2{font-family:var(--display);letter-spacing:-.035em;margin:14px 0 6px;font-size:34px;font-weight:800;line-height:1}.modal p{color:var(--ink-soft);margin:0 0 22px;line-height:1.5}.close{width:36px;height:36px;color:var(--ink-soft);cursor:pointer;background:#ffffff14;border:0;border-radius:50%;place-items:center;transition:background .2s,color .2s,transform .2s;display:grid;position:absolute;top:16px;right:16px}.close:hover{color:var(--ink);background:#ffffff29;transform:rotate(90deg)}.field{margin-bottom:14px;display:block}.field span{color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.field input{width:100%;height:52px;color:var(--ink);font:inherit;background:#0a061e73;border:1px solid #ffffff24;border-radius:14px;outline:none;padding:0 16px;font-size:16px;transition:border-color .2s,box-shadow .2s,background .2s}.field input:focus{border-color:var(--ember-1);background:#0a061e99;box-shadow:0 0 0 4px #ffd36e2e}form .btn.block{margin-top:10px}.error{font-size:14px;color:#ff9a9a!important;margin:4px 0 8px!important}.warning{background:#ffd36e1a;border:1px solid #ffd36e59;border-radius:18px;margin-top:6px;padding:16px;animation:.35s cubic-bezier(.3,1.5,.5,1) both pop}.modal .warning p{color:var(--ink);margin:0 0 14px;font-size:15px}.warning strong{color:var(--ember-1)}.warning-actions{flex-wrap:wrap;gap:8px;display:flex}.warning-actions .btn{flex:auto;height:46px;padding:0 18px;font-size:14px}.done{text-align:center;padding-top:6px}.done-badge{color:#0f3b24;background:linear-gradient(135deg, #a8f5c4, var(--pine));border-radius:50%;place-items:center;width:76px;height:76px;margin:0 auto 8px;animation:.6s cubic-bezier(.3,1.8,.5,1) .1s both pop;display:grid;box-shadow:0 0 0 10px #7ee8a424,0 14px 40px #7ee8a459}.modal-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.85)translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}}@keyframes pulse{50%{box-shadow:0 0 0 7px #7ee8a40d}}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=520px){.topbar{padding-top:14px}.logo{gap:0;font-size:0}.topbar nav a{padding:8px 12px}.actions .btn{flex:100%}.modal{padding:24px 20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
