:root{--night: #1b0b2e;--night-2: #2a1147;--paper: #fff8ff;--ink: #24103d;--ink-soft: #5d4a78;--magenta: #e93bd1;--violet: #7b3ff2;--lilac: #dda9ff;--sky: #a8e1ff;--rose: #ffa9e6;--gold: #f6d68b;--font-display: "Unbounded", system-ui, sans-serif;--font-body: "Golos Text", system-ui, sans-serif;--radius: 22px;--page-bg: repeating-linear-gradient( 90deg, rgba(255, 255, 255, .035) 0 6px, transparent 6px 14px ), linear-gradient(180deg, #2a0b3a 0%, #7d1f8f 30%, #3b1a7a 65%, #1b1466 100%);--button-bg: linear-gradient(100deg, var(--sky), var(--lilac) 50%, var(--rose));--button-ink: var(--night);--choice-yes: var(--sky);--choice-no: var(--rose);--choice-count: var(--lilac)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--night);background-image:var(--page-bg);background-attachment:fixed;color:var(--paper);font-family:var(--font-body);font-size:18px;line-height:1.5}img{display:block;max-width:100%}a{color:inherit}h1,h2,p{margin:0}.page{position:relative;max-width:480px;margin:0 auto;background:var(--night);min-height:100svh;box-shadow:0 0 80px #0000008c;overflow:hidden}.intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:24px;background:#1b0b2ef0;pointer-events:none;animation:intro-fade 2.2s ease forwards}.intro-banner{width:min(100%,620px);padding:30px 24px 34px;border:2px solid var(--gold);border-radius:28px;background:linear-gradient(145deg,#e93bd1f5,#7d1f8ff5);color:var(--paper);text-align:center;box-shadow:0 18px 60px #00000073,0 0 36px #f6d68b38;animation:intro-zoom 2.2s cubic-bezier(.22,.8,.25,1) forwards}.intro-banner p{font-family:var(--font-display);font-size:clamp(1rem,4vw,1.35rem);font-weight:700}.intro-banner strong{display:block;margin:4px 0 8px;color:var(--magenta);font-family:var(--font-display);font-size:clamp(5rem,25vw,9rem);line-height:.9;-webkit-text-stroke:3px var(--gold);text-shadow:0 0 18px rgba(246,214,139,.7),0 8px 0 rgba(27,11,46,.24)}.intro-banner span{display:block;font-size:clamp(1rem,4.5vw,1.35rem);font-weight:600;line-height:1.35}.page-intro .welcome,.page-intro>section,.page-intro>footer{animation:page-settle 2.2s cubic-bezier(.22,.8,.25,1) both}@keyframes intro-fade{0%,72%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes intro-zoom{0%{transform:scale(1.08);opacity:0}14%{opacity:1}72%{transform:scale(1);opacity:1}to{transform:scale(.62);opacity:0}}@keyframes page-settle{0%{transform:scale(1.08);opacity:.35}72%{transform:scale(1);opacity:1}to{transform:none;opacity:1}}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.welcome{position:relative;min-height:100svh;display:grid;grid-template-rows:1fr auto 1fr;padding:28px 22px 26px;text-align:center;background-image:repeating-linear-gradient(118deg,rgba(255,255,255,.09) 0 3px,transparent 3px 18px),linear-gradient(145deg,#ef3fcf,#a925a4 40%,#552080 74%,#21104f)}.welcome:after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(180deg,transparent,var(--night) 92%);pointer-events:none}.welcome>*{position:relative;z-index:1}.welcome-top{align-self:start;padding-top:6svh}.welcome-line{font-size:1rem;font-weight:500;color:var(--gold);margin-bottom:10px}.welcome h1{font-family:var(--font-display);font-weight:900;font-size:clamp(2.1rem,10.5vw,3.1rem);line-height:1.02;letter-spacing:-.01em;text-shadow:0 3px 24px rgba(27,11,46,.7)}.welcome h1 .age{position:relative;display:block;width:max-content;margin:0 auto;font-size:2.6em;line-height:.95;color:var(--magenta);-webkit-text-stroke:2px var(--gold);text-shadow:0 0 12px rgba(246,214,139,.72),0 4px 18px rgba(27,11,46,.65);filter:drop-shadow(0 4px 18px rgba(27,11,46,.65))}.welcome h1 .age:after{content:"✦";position:absolute;top:4%;right:-.35em;color:var(--gold);font-size:.3em;-webkit-text-stroke:0;animation:sparkle 1.4s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(.7) rotate(0);opacity:.6}50%{transform:scale(1.15) rotate(18deg);opacity:1}}.welcome-logo-space{height:21svh;display:grid;place-items:center;align-content:center;gap:4px;color:var(--paper);text-align:center}.welcome-logo-space:before,.welcome-logo-space:after{display:block;font-family:var(--font-display);font-size:clamp(.9rem,4vw,1.2rem);font-weight:800;line-height:1;letter-spacing:.08em;text-transform:none;text-shadow:0 3px 14px rgba(27,11,46,.6)}.welcome-logo-space:before{content:"Alia's"}.welcome-logo-space:after{content:"Birthday Party"}.welcome-logo{width:min(92%,360px);max-height:15svh;object-fit:contain;filter:brightness(0) invert(1) drop-shadow(0 8px 18px rgba(27,11,46,.45))}.welcome-bottom{align-self:end;display:grid;gap:14px}.welcome-when{font-family:var(--font-display);font-weight:700;font-size:1.05rem;line-height:1.35}.welcome-where{font-size:1rem;color:#eadcff}.button{display:block;width:100%;border:0;border-radius:999px;padding:18px 22px;font-family:var(--font-display);font-weight:700;font-size:1.05rem;text-align:center;text-decoration:none;cursor:pointer;background:var(--button-bg);color:var(--button-ink);box-shadow:0 6px #00000059,0 12px 30px #e93bd159}.button:active{transform:translateY(3px);box-shadow:0 3px #00000059}.button[disabled]{opacity:.55;cursor:default}.button.quiet{background:transparent;color:var(--paper);box-shadow:inset 0 0 0 2px #ffffff73}.reply-by{font-size:.95rem;color:#eadcff}.section{padding:34px 22px}.section h2{font-family:var(--font-display);font-weight:700;font-size:1.55rem;line-height:1.15;margin-bottom:18px}.ticket{position:relative;background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:22px 22px 20px}.ticket dl{margin:0;display:grid;gap:14px}.ticket dt{font-size:.85rem;color:var(--ink-soft)}.ticket dd{margin:0;font-family:var(--font-display);font-weight:700;font-size:1.1rem;line-height:1.3}.ticket dd small{display:block;font-family:var(--font-body);font-weight:400;font-size:.95rem;color:var(--ink-soft);margin-top:2px}.ticket-tear{position:relative;margin:20px -22px;border-top:3px dashed #cdb7e6}.ticket-tear:before,.ticket-tear:after{content:"";position:absolute;top:-15px;width:28px;height:28px;border-radius:50%;background:var(--night)}.ticket-tear:before{left:-14px}.ticket-tear:after{right:-14px}.ticket-stub{display:flex;align-items:center;gap:14px}.ticket-stub img{width:96px;flex:none}.ticket-stub p{font-size:.95rem;color:var(--ink-soft)}.ticket-stub strong{color:var(--ink)}.poster{height:300px;border-radius:var(--radius) var(--radius) 0 0;background-size:cover;background-position:center bottom}.form-card{background:var(--paper);color:var(--ink);border-radius:0 0 var(--radius) var(--radius);padding:24px 22px 26px}.form-card h2{color:var(--ink)}.field{margin-bottom:22px;border:0;padding:0;min-width:0}.field>label,.field>legend{display:block;font-weight:600;margin-bottom:8px;padding:0}.field input[type=text]{width:100%;font:inherit;font-size:1.15rem;padding:15px 16px;border-radius:14px;border:2px solid #cdb7e6;background:#fff;color:var(--ink)}.field input[type=text]:focus{border-color:var(--violet);outline:none;box-shadow:0 0 0 4px #7b3ff233}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{position:relative}.choice input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;cursor:pointer}.choice>span{display:grid;place-items:center;min-height:76px;padding:10px;border-radius:18px;border:3px solid transparent;background:var(--tint);font-family:var(--font-display);font-weight:700;font-size:1rem;text-align:center;line-height:1.2;opacity:.72;transition:transform .12s ease,opacity .12s ease}.choice input:checked+span{opacity:1;border-color:var(--ink);transform:scale(1.03);box-shadow:0 5px 0 var(--ink)}.choice input:focus-visible+span{outline:3px solid var(--violet);outline-offset:3px}.choice.yes{--tint: var(--choice-yes)}.choice.no{--tint: var(--choice-no)}.choice.count{--tint: var(--choice-count)}.choice.count>span{font-size:1.7rem}.choice.count small{display:block;font-family:var(--font-body);font-weight:500;font-size:.85rem}.form-error{background:#ffe1ea;color:#8a0f37;border-radius:14px;padding:12px 14px;margin-bottom:16px;font-size:.95rem}.form-note{font-size:.85rem;color:var(--ink-soft);margin-top:14px;text-align:center}.hp{position:absolute;left:-9999px}.thanks{text-align:center}.thanks img{width:78%;margin:4px auto 18px;filter:drop-shadow(0 2px 0 rgba(36,16,61,.25));background:var(--night);border-radius:18px;padding:16px}.thanks p{margin-bottom:18px}.thanks .button.quiet{color:var(--ink);box-shadow:inset 0 0 0 2px #cdb7e6}@media (prefers-reduced-motion: reduce){.intro-overlay{display:none}.page-intro .welcome,.page-intro>section,.page-intro>footer{animation:none}.welcome h1 .age:after{animation:none}}@media (prefers-reduced-motion: no-preference){.thanks img{animation:pop .6s cubic-bezier(.2,1.4,.4,1) both}@keyframes pop{0%{transform:scale(.6) rotate(-6deg);opacity:0}to{transform:none;opacity:1}}}.venue-band{height:170px;border-radius:var(--radius);background-size:cover;background-position:center top;margin-bottom:20px}.venue-list{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:14px}.venue-list li{display:grid;gap:2px}.venue-list .k{font-size:.85rem;color:#cbb7ea}.venue-list .v{font-weight:600;font-size:1.08rem}.venue-actions{display:grid;gap:12px}.footer{padding:10px 22px 44px;text-align:center}.footer img{width:64%;margin:0 auto}.memories{padding:34px 22px 60px}.memories h1{font-family:var(--font-display);font-weight:900;font-size:1.9rem;line-height:1.1;margin-bottom:10px}.memories .lead{color:#eadcff;margin-bottom:26px}.memory{background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:20px;margin-bottom:16px}.memory h2{font-family:var(--font-display);font-size:1.2rem;margin-bottom:4px}.memory .meta{color:var(--ink-soft);font-size:.95rem}.memory .photos{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.memory .photos img{border-radius:12px;aspect-ratio:1;object-fit:cover;width:100%}.back{display:inline-block;margin-top:18px}
