: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{max-width:480px;margin:0 auto;background:var(--night);min-height:100svh;box-shadow:0 0 80px #0000008c;overflow:hidden}: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-size:cover;background-position:center}.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{display:block;font-size:2.6em;line-height:.95;background:var(--button-bg);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 18px rgba(27,11,46,.65))}.welcome-logo-space{height:21svh}.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: 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 22px}.footer a{font-size:.95rem;color:#eadcff}.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}
