@font-face{font-family:Alex Brush;src:url(/assets/AlexBrush-Regular-DdOafNbo.ttf);font-display:block}@font-face{font-family:Fraunces;font-weight:300;src:url(/assets/Fraunces9pt-Light-CUilBFTJ.ttf);font-display:swap}@font-face{font-family:Fraunces;font-weight:300;font-style:italic;src:url(/assets/Fraunces9pt-LightItalic-C1yW4gsM.ttf);font-display:swap}@font-face{font-family:Fraunces;font-weight:400;src:url(/assets/Fraunces9pt-Regular-Cm2Ue5AV.ttf);font-display:swap}@font-face{font-family:Fraunces;font-weight:400;font-style:italic;src:url(/assets/Fraunces9pt-Italic-RWurzTYh.ttf);font-display:swap}@font-face{font-family:Fraunces;font-weight:600;src:url(/assets/Fraunces9pt-SemiBold-BXVZs_ih.ttf);font-display:swap}@font-face{font-family:Fraunces;font-weight:600;font-style:italic;src:url(/assets/Fraunces9pt-SemiBoldItalic-BY1MjLrN.ttf);font-display:swap}:root{--paper: #FFF8EF;--navy: #1F2A44;--rose: #C2255C;--mari: #F2A42B;--green: #2E7D50;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--header-h: 56px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--navy);font-family:Fraunces,Georgia,serif;overflow:hidden;overflow-x:hidden}body.scrollable{overflow-y:auto}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:var(--paper);overflow:hidden}.frame-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.names{position:absolute;left:0;right:0;top:50%;padding:0 16px;transform:translateY(-50%);text-align:center;transition:transform 1.1s cubic-bezier(.7,0,.2,1),opacity .9s ease}.n{font-family:Alex Brush,cursive;font-size:clamp(38px,12.5vw,64px);line-height:1.05}.names .n{opacity:0;filter:blur(8px);transform:translateY(14px);animation:in 1.4s ease-out forwards}.n1{color:var(--navy);animation-delay:1.3s!important}.n2{color:var(--rose);animation-delay:2.1s!important}.with{font:600 11px var(--sans);letter-spacing:5px;text-transform:uppercase;color:var(--mari);margin:12px 0 8px;opacity:0;animation:in 1s ease-out 1.8s forwards}.with:before,.with:after{content:"";display:inline-block;width:34px;height:1px;background:currentColor;vertical-align:middle;margin:0 10px;opacity:.6}.tag{font:600 10px var(--sans);letter-spacing:4px;text-transform:uppercase;margin-top:24px;opacity:0;animation:in 1s ease-out 2.8s forwards}@keyframes in{to{opacity:1;filter:blur(0);transform:none}}.drop{animation:drop 1.4s cubic-bezier(.3,1.4,.5,1) both}@keyframes drop{0%{transform:translateY(-110px)}to{transform:none}}.sway{transform-box:fill-box;transform-origin:50% 0;animation:sway 6s ease-in-out infinite alternate}@keyframes sway{0%{transform:rotate(-1.6deg)}to{transform:rotate(1.6deg)}}.tw{animation:tw 2.4s ease-in-out infinite alternate}@keyframes tw{0%{opacity:.35}to{opacity:1}}.spark{transform-box:fill-box;transform-origin:center;animation:spark 3s ease-in-out infinite}@keyframes spark{0%,to{transform:scale(.3);opacity:.2}50%{transform:scale(1.15) rotate(45deg);opacity:1}}.mand{transform-box:fill-box;transform-origin:center;animation:spin 90s linear infinite,fadein 3s ease 1s both}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadein{0%{opacity:0}}.bq{transform-box:fill-box;transform-origin:50% 100%;animation:bq 1.4s cubic-bezier(.3,1.5,.5,1) .6s both,breathe 5s ease-in-out 2s infinite alternate}@keyframes bq{0%{transform:scale(0)}}@keyframes breathe{to{transform:scale(1.04) rotate(1deg)}}.petals{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.petal{position:absolute;top:-20px;width:12px;height:12px;animation:fall linear forwards}@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(var(--r))}}.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:20;display:flex;align-items:center;justify-content:center;font-family:Alex Brush,cursive;font-size:28px;color:var(--navy);background:#fff8efeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 1px #f2a42b80,0 4px 14px #1f2a4414;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .5s,transform .5s}.docked .site-header{opacity:1;transform:none;pointer-events:auto;transition:opacity .8s .5s,transform .8s .5s}.docked .names{transform:translateY(calc(-50vh + var(--header-h) / 2 - 50%)) scale(.28);opacity:0}.veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none;opacity:0;transition:opacity .9s ease,background-color .9s ease;background:#fff8ef8c;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.docked .veil{opacity:1}.docked .splash,.docked .splash *{animation-play-state:paused!important}.docked .petals{opacity:0;transition:opacity .8s}#events{position:relative;z-index:5;padding-top:100vh;padding-top:100svh}#scroll-hint{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:15;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;font:600 11px var(--sans);letter-spacing:3px;text-transform:uppercase;color:var(--navy);opacity:0;transition:opacity .6s}#scroll-hint.show{opacity:.85}#scroll-hint svg{width:22px;height:22px;animation:nudge-down 1.6s ease-in-out infinite}@keyframes nudge-down{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.docked #scroll-hint{padding:7px 14px 4px;border-radius:16px;background:#fff8efd9;box-shadow:0 4px 14px #1f2a441f}.event{padding:28px 16px 36px;min-height:calc(100svh - var(--header-h));display:flex;align-items:flex-start;justify-content:center}.ev-card{width:100%;max-width:440px;background:var(--paper);border-radius:18px;overflow:hidden;color:var(--c);box-shadow:0 22px 44px -18px #1f2a4473,0 2px 6px #1f2a4414}.art{overflow:hidden}.scene{display:block;width:100%;aspect-ratio:105 / 92}.ev-body{padding:14px 24px 26px}.title{margin:0;font:italic 600 46px/1.05 Fraunces,serif;letter-spacing:-.01em}.tagline{margin:6px 0 0;font:italic 300 16px/1.3 Fraunces,serif}.rows{margin-top:18px;border-top:1.5px solid var(--c)}.r{display:grid;grid-template-columns:78px 1fr;gap:8px;align-items:baseline;padding:10px 0 9px;border-bottom:1px solid color-mix(in srgb,var(--c) 30%,transparent)}.r b{font:700 10.5px var(--sans);letter-spacing:.18em;text-transform:uppercase}.r span{font:400 16px/1.35 Fraunces,serif;overflow-wrap:anywhere}.intro{margin:16px 0 0;font:italic 400 15px/1.45 Fraunces,serif}.actions{display:grid;gap:10px;margin-top:20px}.directions{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 18px;border-radius:999px;background:var(--c);color:var(--paper);text-decoration:none;font:600 15px var(--sans);letter-spacing:.02em;box-shadow:0 8px 18px -8px var(--c);-webkit-tap-highlight-color:transparent}.directions svg{width:18px;height:18px;flex:none}.directions:active{transform:scale(.97)}.sign-off{text-align:center;padding:24px 16px calc(48px + env(safe-area-inset-bottom))}.sign-off .n{color:var(--navy);font-size:34px}.sign-off p{margin:6px 0 0;font:italic 300 15px Fraunces,serif}.invalid{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--paper);overflow:hidden}.invalid .msg{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;padding:0 28px}.invalid .n{color:var(--navy);font-size:clamp(34px,10vw,52px)}.invalid .lead{margin:18px 0 6px;font:italic 600 20px Fraunces,serif;color:var(--rose)}.invalid p{margin:0;font:400 16px/1.4 Fraunces,serif}@media(prefers-reduced-motion:reduce){.drop,.sway,.tw,.spark,.mand,.bq,.petal{animation:none!important}.names .n,.with,.tag{animation-name:fade!important;transform:none;filter:none}@keyframes fade{to{opacity:1}}.docked .names{transform:translateY(-50%)}.site-header{transform:none}#scroll-hint svg{animation:none}}
