:root{color:#f0ede8;background:#060504;font-family:Montserrat,sans-serif;font-synthesis:none;--ink: #0d0b09;--paper: #f0ede8;--champagne: #e8d5b0;--gold: #b8893a;--gold-soft: #c9a46c;--rose: #c78f82;--line: rgba(184, 137, 58, .5)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased;background:#050403}.mobile-prototype{width:min(100vw,390px);height:min(100dvh,844px);margin-inline:auto;overflow:hidden;position:relative;background:var(--ink);isolation:isolate;box-shadow:0 0 60px #000000c7}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.page-shell{min-height:100vh;display:grid;place-items:center;background:#050403}.frame-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.frame-art-base{z-index:-3;opacity:.74}.frame-art-glow{z-index:-2;opacity:.19;filter:brightness(1.28) saturate(1.2);animation:candle-breathe 2.8s ease-in-out infinite}.mobile-prototype:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:#08070547}.opening-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:42px 36px;background:#080705e6;transition:opacity .9s ease,visibility .9s ease,transform 1.1s ease}.opening-scene.is-dismissed{opacity:0;visibility:hidden;transform:scale(1.06)}.opening-copy{width:100%;text-align:center;border:1px solid var(--line);border-radius:44px 44px 18px 18px;padding:66px 26px 38px;color:var(--paper);box-shadow:inset 0 0 40px #b8893a14,0 22px 60px #00000073;animation:opening-arrival 1.2s cubic-bezier(.2,.8,.2,1) both}.opening-copy>svg{color:var(--gold-soft);animation:soft-pulse 2s ease-in-out infinite}.opening-copy h1{margin:8px 0 4px;font-family:Cormorant Garamond,serif;font-size:64px;font-weight:500;letter-spacing:-.05em}.opening-note{max-width:240px;margin:0 auto 28px;color:#f0ede8bd;font-family:Cormorant Garamond,serif;font-size:20px;line-height:1.35}.eyebrow{margin:0;color:var(--gold-soft);font-size:10px;font-weight:700;letter-spacing:.24em;line-height:1.5;text-transform:uppercase}.open-button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--gold);border-radius:999px;color:#130f08;background:var(--champagne);padding:0 22px;font-size:12px;font-weight:700;letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;box-shadow:0 8px 28px #b8893a38}.open-button:hover{transform:translateY(-2px);background:#f6ead2;box-shadow:0 12px 32px #b8893a4d}.open-button:focus-visible,.scroll-cue:focus-visible{outline:2px solid var(--paper);outline-offset:4px}.experience-scroll{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-width:none;opacity:0;transition:opacity .7s ease .5s}.experience-scroll::-webkit-scrollbar{display:none}.is-open .experience-scroll{opacity:1}.section{width:100%;min-height:844px;padding:96px 34px 84px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:0;transform:translateY(32px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.8,.2,1)}.section.is-visible{opacity:1;transform:translateY(0)}.section h2,.section p{position:relative;z-index:2}.ornament-line{width:112px;display:flex;align-items:center;justify-content:center;margin-bottom:22px;color:var(--gold-soft);border-top:1px solid var(--line);padding-top:8px}.hero-name{margin:8px 0 0;font-family:Cormorant Garamond,serif;font-size:64px;font-weight:500;line-height:.95;letter-spacing:-.05em;color:var(--paper)}.hero-lead{margin:14px 0 0;font-family:Cormorant Garamond,serif;font-size:24px;color:var(--champagne)}.anniversary-title{margin:0;font-family:Cormorant Garamond,serif;font-size:45px;line-height:1.05;color:var(--paper);letter-spacing:-.035em}.anniversary-title strong{color:var(--gold-soft);font-size:1.5em;font-weight:500}.hero-copy{max-width:302px;margin:34px auto 0;padding-top:28px;border-top:1px solid var(--line);color:#f0ede8d1;font-family:Cormorant Garamond,serif;font-size:19px;line-height:1.5}.scroll-cue{margin-top:35px;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--gold-soft);font-size:9px;letter-spacing:.16em;text-decoration:none;text-transform:uppercase;animation:scroll-hint 2.2s ease-in-out infinite}.scroll-cue span{font-size:18px}.story-section{justify-content:flex-start;padding-top:76px}.photo-frame{width:276px;aspect-ratio:.79;padding:5px;border:1px solid var(--gold-soft);border-radius:138px 138px 20px 20px;background:#0c0a07d1;box-shadow:0 24px 50px #0000008c,0 0 34px #b8893a1c;overflow:hidden}.photo-frame img{width:100%;height:100%;display:block;object-fit:cover;border-radius:132px 132px 15px 15px}.story-copy{margin-top:-25px;width:320px;padding:34px 26px 28px;background:#0d0b09f0;border:1px solid rgba(184,137,58,.35);border-radius:18px;box-shadow:0 18px 45px #0000007a}.story-copy>svg,.details-section>svg{color:var(--gold-soft);margin-bottom:8px}.story-copy h2,.details-section h2,.countdown-section h2,.closing-section h2{margin:8px 0 14px;font-family:Cormorant Garamond,serif;font-size:37px;font-weight:500;line-height:1.03;letter-spacing:-.03em;color:var(--paper)}.story-copy p:last-child{margin:0;color:#f0ede8b8;font-family:Cormorant Garamond,serif;font-size:18px;line-height:1.45}.details-section{min-height:780px}.details-section h2{margin-bottom:0;font-size:43px}.event-time{margin:2px 0 32px;color:var(--gold-soft);font-family:Cormorant Garamond,serif;font-size:32px}.venue-card{width:100%;padding:28px 20px 25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#0908069e}.venue-card p{margin:5px 0;color:#f0ede8bd;font-family:Cormorant Garamond,serif;font-size:17px}.venue-card .venue-name{margin-bottom:10px;color:var(--paper);font-size:23px;font-weight:600}.countdown-section{min-height:540px}.countdown-section h2{font-size:42px}.countdown{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:20px}.countdown-unit{padding:16px 4px 14px;border:1px solid rgba(184,137,58,.38);border-radius:12px;background:#0a0806bd}.countdown-unit span{display:block;color:var(--champagne);font-family:Cormorant Garamond,serif;font-size:28px;font-variant-numeric:tabular-nums;line-height:1}.countdown-unit small{display:block;margin-top:7px;color:#f0ede894;font-size:8px;letter-spacing:.12em;text-transform:uppercase}.closing-section{min-height:780px;padding-bottom:130px}.closing-heart{color:var(--rose);margin-bottom:22px;animation:heart-beat 2s ease-in-out infinite}.closing-kicker{max-width:240px;margin:0;color:var(--gold-soft);font-size:10px;font-weight:700;letter-spacing:.18em;line-height:1.5;text-transform:uppercase}.closing-section h2{margin-top:18px;font-size:54px}@keyframes opening-arrival{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes candle-breathe{0%,to{opacity:.12;filter:brightness(1.05) saturate(1.05)}48%{opacity:.3;filter:brightness(1.48) saturate(1.3)}63%{opacity:.2;filter:brightness(1.22) saturate(1.15)}}@keyframes soft-pulse{0%,to{opacity:.58;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes scroll-hint{0%,to{transform:translateY(0);opacity:.7}50%{transform:translateY(7px);opacity:1}}@keyframes heart-beat{0%,to{transform:scale(1)}14%{transform:scale(1.14)}28%{transform:scale(1)}}@media(min-width:700px){.mobile-prototype{border:1px solid rgba(184,137,58,.36);border-radius:26px}}@media(max-height:720px){.section{min-height:720px;padding-top:76px;padding-bottom:70px}.opening-copy{padding-top:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
