.guest-name-modal{z-index:40;pointer-events:none;place-items:center;padding:1.25rem;display:grid;position:absolute;inset:0}.guest-name-modal__backdrop{pointer-events:auto;background:color-mix(in srgb, var(--maroon-deep) 55%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);position:absolute;inset:0}.guest-name-modal__card{z-index:1;pointer-events:auto;background:var(--maroon);width:min(100%,20.5rem);color:var(--ink-on-dark);border:1px solid color-mix(in srgb, var(--cream) 35%, transparent);animation:guest-name-modal-in .28s var(--ease-elegant);border-radius:1.15rem;padding:1.35rem 1.25rem 1.2rem;position:relative;box-shadow:0 16px 40px #00000059}.guest-name-modal__title{font-family:var(--font-serif);letter-spacing:.02em;text-align:center;margin:0 0 1rem;font-size:1.05rem;font-weight:500;line-height:1.35}.guest-name-modal__label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.guest-name-modal__input{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--cream) 45%, transparent);background:color-mix(in srgb, var(--cream) 12%, transparent);width:100%;color:var(--ink-on-dark);font-family:var(--font-serif);transition:border-color .2s var(--ease-elegant), background .2s var(--ease-elegant);border-radius:.65rem;outline:none;padding:.75rem .9rem;font-size:.95rem}.guest-name-modal__input::placeholder{color:color-mix(in srgb, var(--cream) 55%, transparent)}.guest-name-modal__input:focus{border-color:var(--cream);background:color-mix(in srgb, var(--cream) 18%, transparent)}.guest-name-modal__hint{text-align:right;font-family:var(--font-serif);letter-spacing:.04em;color:color-mix(in srgb, var(--cream) 65%, transparent);margin:.4rem 0 0;font-size:.68rem}.guest-name-modal__actions{gap:.55rem;margin-top:1.05rem;display:flex}.guest-name-modal__btn{font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;transition:background .2s var(--ease-elegant), color .2s var(--ease-elegant), border-color .2s var(--ease-elegant);border-radius:999px;flex:1;padding:.7rem .85rem;font-size:.72rem;font-weight:600}.guest-name-modal__btn--primary{background:var(--cream);color:var(--ink-on-cream);border:1px solid #0000}.guest-name-modal__btn--primary:hover,.guest-name-modal__btn--primary:focus-visible{background:var(--cream-soft)}.guest-name-modal__btn:focus-visible{outline:2px solid var(--cream);outline-offset:2px}@keyframes guest-name-modal-in{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.music-toggle{z-index:30;border:1px solid color-mix(in srgb, var(--cream) 55%, transparent);background:color-mix(in srgb, var(--maroon) 88%, black);width:42px;height:42px;color:var(--cream);transition:background .22s var(--ease-elegant), color .22s var(--ease-elegant), transform .22s var(--ease-elegant);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:14px;right:14px;box-shadow:0 4px 14px #00000047}.music-toggle:hover,.music-toggle:focus-visible{background:var(--maroon);transform:scale(1.04)}.music-toggle:focus-visible{outline:2px solid var(--cream);outline-offset:2px}.music-toggle__icon{width:20px;height:20px;display:block}.envelope{z-index:40;background:var(--maroon);pointer-events:auto;transition:opacity .55s var(--ease-elegant) .9s, visibility .55s var(--ease-elegant) .9s;position:absolute;inset:0;overflow:hidden}.envelope--open{opacity:0;visibility:hidden;pointer-events:none}.envelope__flap{transition:transform 1.15s var(--ease-elegant);will-change:transform;position:absolute;inset:0}.envelope__flap img{object-fit:cover;width:100%;height:100%}.envelope__flap--left{transform-origin:0;z-index:1}.envelope__flap--right{transform-origin:100%;z-index:1}.envelope--open .envelope__flap--left{transform:translate(-100%)}.envelope--open .envelope__flap--right{transform:translate(100%)}.envelope__seal{z-index:3;transition:opacity .5s var(--ease-elegant), transform .85s var(--ease-elegant);place-items:center;padding:0;display:grid;position:absolute;inset:0}.envelope__seal img{filter:drop-shadow(0 10px 28px #00000080);width:min(38cqw,168px);height:auto;transition:transform .35s var(--ease-elegant)}.envelope__seal:not(:disabled):hover img,.envelope__seal:not(:disabled):focus-visible img{transform:scale(1.05)}.envelope__seal:focus-visible{outline:2px solid var(--cream);outline-offset:-16px}.envelope--open .envelope__seal{opacity:0;pointer-events:none;transform:scale(.82)}.envelope__hint{z-index:4;text-align:center;letter-spacing:.2em;text-transform:uppercase;color:#ffffff8c;margin:0;font-size:.7rem;transition:opacity .3s;animation:2.4s ease-in-out infinite hint-pulse;position:absolute;bottom:11%;left:0;right:0}.envelope--open .envelope__hint{opacity:0}@keyframes hint-pulse{0%,to{opacity:.4}50%{opacity:.95}}.collage{background:var(--cream);background-image:url(/assets/collage-bg.png);background-position:50%;background-size:cover;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.collage__scroll-cue{z-index:4;border:1px solid color-mix(in srgb, var(--cream) 55%, transparent);background:color-mix(in srgb, var(--maroon) 88%, black);width:42px;height:42px;color:var(--cream);transition:background .22s var(--ease-elegant), color .22s var(--ease-elegant);animation:collage-scroll-cue-bounce 2.8s var(--ease-elegant) infinite;border-radius:999px;place-items:center;margin:0;padding:0;display:grid;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000047}.collage__scroll-cue:hover,.collage__scroll-cue:focus-visible{background:var(--maroon)}.collage__scroll-cue:focus-visible{outline:2px solid var(--cream);outline-offset:2px}.collage__scroll-cue-icon{width:20px;height:20px;display:block}@keyframes collage-scroll-cue-bounce{0%,62%,to{transform:translate(-50%)translateY(0)}72%{transform:translate(-50%)translateY(-10px)}82%{transform:translate(-50%)translateY(0)}90%{transform:translate(-50%)translateY(-5px)}96%{transform:translate(-50%)translateY(0)}}.collage__strips{opacity:0;width:min(92%,22rem);height:min(88%,38rem);transition:opacity .8s var(--ease-elegant), transform .9s var(--ease-elegant);justify-content:center;align-items:stretch;gap:1.1rem;display:flex;transform:translateY(20px)}.collage--visible .collage__strips{opacity:1;transform:translateY(0)}.collage__strip{background:#fff;border-radius:.15rem;flex:1 1 0;min-width:0;max-width:10rem;padding:.85rem .55rem .55rem;position:relative;box-shadow:0 12px 32px #3c1e1433}.collage__pin{z-index:2;background:radial-gradient(circle at 35% 30%,#c8c4be 0%,#8a8680 55%,#5c5854 100%);border-radius:50%;width:.72rem;height:.72rem;position:absolute;top:.28rem;left:50%;transform:translate(-50%);box-shadow:0 1px 2px #281e1459,inset 0 1px 1px #ffffff73}.collage__viewport{border-radius:.05rem;height:100%;overflow:hidden}.collage__track{will-change:transform;flex-direction:column;display:flex}.collage__track--down{transform:translateY(-50%)}.collage--visible .collage__track--up{animation:32s linear infinite collage-marquee-up}.collage--visible .collage__track--down{animation:32s linear infinite collage-marquee-down}.collage__cell{aspect-ratio:1;background:#e8e4de;flex-shrink:0;width:100%;margin:0 0 .45rem;overflow:hidden}.collage__cell img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}@keyframes collage-marquee-up{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes collage-marquee-down{0%{transform:translateY(-50%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.collage__strips{opacity:1;transition:none;transform:none}.collage--visible .collage__track--up,.collage--visible .collage__track--down{animation:none;transform:translateY(0)}.collage__scroll-cue{animation:none}}.intro{background:#111}.intro__bg{background:url(/assets/intro-bg.jpg) 50%/cover no-repeat;position:absolute;inset:0;transform:scale(1.02)}.intro__vignette{background:radial-gradient(#00000026 0%,#0000008c 100%);position:absolute;inset:0}.intro__fade{background:linear-gradient(to bottom, #f8f0e300 0%, #f8f0e38c 45%, var(--cream) 100%);height:42%;position:absolute;bottom:0;left:0;right:0}.intro__content{z-index:2;text-align:center;flex-direction:column;align-items:center;height:100%;padding:7% 8% 9%;display:flex;position:relative}.intro__names{flex-direction:column;flex:1;justify-content:center;gap:12%;width:100%;display:flex}.intro__monogram{font-family:var(--font-serif);letter-spacing:.08em;color:var(--maroon);opacity:0;transition:opacity .7s var(--ease-elegant), transform .7s var(--ease-elegant);margin:0;font-size:1.65rem;font-weight:600;transform:translateY(-12px)}.intro__person{opacity:0;transition:opacity .8s var(--ease-elegant), transform .8s var(--ease-elegant);transform:translateY(18px)}.intro__person--groom{transition-delay:.12s}.intro__person--bride{transition-delay:.28s}.intro__name{font-family:var(--font-script);color:var(--ink-on-dark);text-shadow:0 2px 18px #00000059;margin:0;font-size:clamp(2.35rem,11cqw,3.15rem);font-weight:400;line-height:1.15}.intro__parents{letter-spacing:.02em;color:#ffffffeb;margin:.55rem 0 0;font-size:.78rem}.intro__cta{background:var(--maroon);color:var(--ink-on-dark);letter-spacing:.16em;opacity:0;transition:opacity .8s var(--ease-elegant) .4s, transform .8s var(--ease-elegant) .4s, background .25s ease;border-radius:999px;padding:.85rem 1.9rem;font-size:.72rem;font-weight:600;transform:translateY(16px);box-shadow:0 8px 24px #00000040}.intro__cta:hover,.intro__cta:focus-visible{background:var(--maroon-deep)}.intro--visible .intro__monogram,.intro--visible .intro__person,.intro--visible .intro__cta{opacity:1;transform:translateY(0)}.details{background:var(--cream-soft)}.details__bg{opacity:.95;background:url(/assets/details-bg.jpg) 50%/cover no-repeat;position:absolute;inset:0}.details__card{z-index:1;text-align:center;background:var(--maroon);width:calc(100% - 2.4rem);max-width:22rem;height:88%;color:var(--ink-on-dark);opacity:0;transition:opacity .85s var(--ease-elegant), transform .85s var(--ease-elegant);border-radius:1.15rem;flex-direction:column;justify-content:space-between;align-items:center;margin:6% auto;padding:1.75rem 1.35rem 1.5rem;display:flex;position:relative;transform:translateY(24px);box-shadow:inset 0 0 0 1.5px #ffffff8c,0 18px 40px #280a0f47}.details--visible .details__card{opacity:1;transform:translateY(0)}.details__verse{white-space:pre-line;max-width:16rem;margin:0;font-size:.92rem;font-style:italic;line-height:1.55}.details__body{white-space:pre-line;max-width:15.5rem;margin:0;font-size:.82rem;line-height:1.65}.details__when{flex-direction:column;align-items:center;gap:.75rem;width:100%;display:flex}.details__date{grid-template-columns:1fr auto 1fr;align-items:center;gap:.65rem;width:100%;max-width:14rem;display:grid}.details__month,.details__year{font-size:1.05rem;font-style:italic}.details__month{text-align:right}.details__year{text-align:left}.details__day{background:var(--cream);width:3.1rem;height:3.1rem;color:var(--ink-on-cream);border-radius:50%;place-items:center;font-size:1.35rem;font-weight:700;display:grid}.details__time{letter-spacing:.04em;margin:0;font-size:1rem;font-weight:600}.details__where{flex-direction:column;align-items:center;gap:.35rem;display:flex}.details__venue{margin:0;font-size:1.05rem;font-weight:700}.details__address{white-space:pre-line;opacity:.95;max-width:14rem;margin:0;font-size:.78rem;line-height:1.55}.details__cta{background:var(--cream);color:var(--ink-on-cream);letter-spacing:.02em;transition:transform .25s var(--ease-elegant), background .25s ease;border-radius:.65rem;flex-shrink:0;justify-content:center;align-items:center;padding:.75rem 1.75rem;font-size:.85rem;font-weight:600;display:inline-flex}.details__cta:hover,.details__cta:focus-visible{background:var(--cream-soft);transform:translateY(-1px)}@container phone (width>=400px){.details__card{padding:1.9rem 1.5rem 1.6rem}.details__verse{font-size:.96rem}.details__body{font-size:.86rem}.details__day{width:3.25rem;height:3.25rem;font-size:1.4rem}.details__cta{padding:.8rem 1.9rem;font-size:.88rem}}:root{--maroon:#5d1624;--maroon-deep:#501d1d;--cream:#f8f0e3;--cream-soft:#fbf3e8;--ink-on-dark:#fff;--ink-on-cream:#5d1624;--chrome:#1a0a0e;--chrome-mid:#2a1016;--chrome-glow:#3d1820;--font-script:"Great Vibes", cursive;--font-serif:"Playfair Display", "Times New Roman", serif;--phone-max:440px;--phone-radius:26px;--ease-elegant:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0}body{font-family:var(--font-serif);background:var(--chrome);color:var(--ink-on-dark);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}#root{width:100%;height:100%}button{font:inherit;cursor:pointer;background:0 0;border:none}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.phone-shell{width:100%;max-width:var(--phone-max);background:var(--maroon);height:100dvh;margin:0 auto;position:relative;overflow:hidden;container:phone/size}@media (width>=480px){body{background:radial-gradient(ellipse 70% 55% at 50% 42%, var(--chrome-glow) 0%, var(--chrome-mid) 42%, var(--chrome) 78%), var(--chrome);justify-content:center;align-items:center;min-height:100dvh;display:flex}#root{justify-content:center;align-items:center;width:100%;min-height:100dvh;display:flex}.phone-shell{border-radius:var(--phone-radius);height:min(100dvh,920px);box-shadow:0 0 0 1px #ffffff1a,inset 0 0 0 1px #00000059,0 24px 64px #0000008c,0 8px 24px #00000059}}.scroll-snap{scroll-snap-type:y mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;height:100%;overflow:hidden auto}.snap-section{scroll-snap-align:start;scroll-snap-stop:always;height:100%;min-height:100%;position:relative;overflow:hidden}
