:root{--bg:#120b10;--bg-soft:#1b1017;--panel:#ffffff0e;--panel-strong:#ffffff17;--cream:#f7eee9;--muted:#bdaeb4;--rose:#d99799;--rose-light:#f2c4bc;--wine:#6d2839;--line:#ffffff21;--serif:"Cormorant Garamond", Georgia, serif;--sans:"Manrope", Arial, sans-serif;color:var(--cream);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{background:var(--bg);min-width:320px;color:var(--cream);margin:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}::selection{background:var(--rose);color:var(--bg)}.site-shell{background:radial-gradient(circle at 10% 20%, #6d28392e, transparent 31rem), radial-gradient(circle at 90% 60%, #d9979917, transparent 34rem), var(--bg);min-height:100vh;overflow:clip}.scroll-progress{z-index:100;transform-origin:0;background:linear-gradient(90deg, var(--rose), var(--rose-light));height:2px;position:fixed;inset:0 0 auto}.grain{z-index:90;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");animation:.25s steps(2,end) infinite grain;position:fixed;inset:-100%}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,3%)}75%{transform:translate(2%,2%)}to{transform:translate(-3%,-3%)}}.section{width:min(1180px,100% - 48px);margin-inline:auto}.eyebrow{color:var(--rose);letter-spacing:.23em;text-transform:uppercase;margin:0 0 18px;font-size:.72rem;font-weight:600}h2{font-family:var(--serif);letter-spacing:-.045em;margin:0;font-size:clamp(3rem,6vw,6.6rem);font-weight:500;line-height:.93}.topbar{z-index:80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(#0c070ac7,#0000);grid-template-columns:1fr auto 1fr;align-items:center;height:88px;padding:0 38px;display:grid;position:fixed;top:0;left:0;right:0}.monogram{aspect-ratio:1;width:46px;font-family:var(--serif);letter-spacing:-.08em;border:1px solid #ffffff59;border-radius:50%;justify-self:start;place-items:center;font-size:1.08rem;transition:all .3s;display:grid}.monogram:hover{background:var(--cream);color:var(--bg);transform:rotate(-5deg)}.desktop-nav{gap:34px;display:flex}.desktop-nav a{color:#ffffffc2;letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;position:relative}.desktop-nav a:after{content:"";background:var(--rose-light);height:1px;transition:all .3s;position:absolute;bottom:-7px;left:0;right:100%}.desktop-nav a:hover:after{right:0}.topbar-actions{justify-self:end;gap:10px;display:flex}.icon-button{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#120b1057;border:1px solid #ffffff38;border-radius:999px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:0 15px;transition:all .25s;display:inline-flex}.icon-button:hover{background:#ffffff1f;transform:translateY(-2px)}.icon-button svg{width:17px}.icon-button span{text-transform:uppercase;letter-spacing:.13em;font-size:.68rem}.menu-button{width:44px;padding:0;display:none}.mobile-menu{display:none}.hero{isolation:isolate;place-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.hero-photo{z-index:-4;background-position:50%;background-size:cover;animation:14s ease-out forwards heroZoom;position:absolute;inset:0;transform:scale(1.035)}@keyframes heroZoom{to{transform:scale(1)}}.hero-shade{z-index:-3;background:linear-gradient(90deg,#0e080cdb 0%,#0e080c94 45%,#0e080c59 100%),linear-gradient(#08040752,#0000 52%,#120b10fa);position:absolute;inset:0}.hero-orb{z-index:-2;filter:blur(4px);opacity:.45;mix-blend-mode:screen;border-radius:50%;position:absolute}.hero-orb-one{background:radial-gradient(circle,#cb63776b,#0000 70%);width:38vw;height:38vw;top:20%;left:-18vw}.hero-orb-two{background:radial-gradient(circle,#f4c3b638,#0000 70%);width:26vw;height:26vw;bottom:5%;right:-8vw}.hero-content{text-align:center;width:min(1080px,100% - 44px);padding-top:80px}.hero-kicker{color:#ffffffb8;animation:.9s .15s both fadeUp}.hero h1{font-family:var(--serif);letter-spacing:-.06em;text-shadow:0 10px 50px #00000040;justify-content:center;align-items:center;gap:clamp(12px,2.8vw,42px);margin:0;font-size:clamp(4.5rem,12vw,10.6rem);font-weight:500;line-height:.76;animation:1s .3s both fadeUp;display:flex}.hero h1 i{color:var(--rose-light);font-size:.45em;font-weight:400}.hero-title{max-width:760px;font-family:var(--serif);color:#fffffff5;margin:40px auto 0;font-size:clamp(1.7rem,3.5vw,3rem);line-height:1.05;animation:.9s .48s both fadeUp}.hero-subtitle{color:#ffffffad;max-width:660px;margin:19px auto 32px;font-size:clamp(.92rem,1.5vw,1.06rem);line-height:1.8;animation:.9s .58s both fadeUp}.primary-button,.secondary-button{background:var(--cream);min-height:54px;color:var(--bg);letter-spacing:.1em;text-transform:uppercase;border:1px solid #ffffff42;border-radius:999px;align-items:center;gap:10px;padding:0 24px;font-size:.75rem;font-weight:600;transition:all .3s;animation:.9s .68s both fadeUp;display:inline-flex}.primary-button:hover,.secondary-button:hover{transform:translateY(-3px);box-shadow:0 17px 44px #00000040}.primary-button svg,.secondary-button svg{width:17px}.scroll-cue{border:1px solid #ffffff47;border-radius:999px;place-items:center;width:42px;height:58px;display:grid;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.scroll-cue svg{width:16px;animation:1.8s ease-in-out infinite bob}@keyframes bob{0%,to{opacity:.5;transform:translateY(-5px)}50%{opacity:1;transform:translateY(5px)}}.hero-side-note{writing-mode:vertical-rl;color:#ffffff6b;letter-spacing:.2em;text-transform:uppercase;font-size:.63rem;position:absolute;bottom:116px;right:28px}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.story-section{grid-template-columns:1.1fr .9fr;align-items:end;gap:clamp(50px,9vw,130px);padding:150px 0 170px;display:grid}.story-copy{padding-bottom:8px}.story-copy>p{color:var(--muted);margin:0;font-size:clamp(1rem,1.7vw,1.23rem);line-height:1.9}.signature{color:var(--rose-light);font-family:var(--serif);align-items:center;gap:10px;margin-top:34px;font-size:1.35rem;font-style:italic;display:flex}.signature svg{width:16px}.gallery-section{padding-bottom:170px}.gallery-heading{grid-template-columns:1.25fr .75fr;align-items:end;gap:70px;margin-bottom:60px;display:grid}.gallery-heading h2{max-width:800px}.gallery-description{color:var(--muted);margin:0 0 8px;line-height:1.8}.gallery-grid{grid-template-columns:repeat(12,1fr);grid-auto-rows:60px;gap:12px;width:min(1400px,100% - 24px);margin:0 auto;display:grid}.gallery-item{border-radius:6px;overflow:hidden}.gallery-item.square{grid-area:span 6/span 4}.gallery-item.portrait{grid-area:span 8/span 4}.gallery-item.landscape{grid-area:span 6/span 8}.gallery-item.wide{grid-area:span 7/span 8}.gallery-item>button{color:#fff;cursor:pointer;background:#21141b;border:0;width:100%;height:100%;padding:0;position:relative;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.8,.2,1),filter .6s}.gallery-item button:hover img{filter:saturate(1.08);transform:scale(1.045)}.gallery-overlay{opacity:0;text-align:left;background:linear-gradient(#0000,#0d070ac7);justify-content:space-between;align-items:end;padding:52px 18px 17px;transition:all .35s;display:flex;position:absolute;inset:auto 0 0;transform:translateY(10px)}.gallery-item button:hover .gallery-overlay{opacity:1;transform:none}.gallery-overlay span{font-family:var(--serif);font-size:1.2rem}.gallery-overlay small{color:#ffffffb3}.quote-section{text-align:center;border-block:1px solid var(--line);background:radial-gradient(circle,#6d283942,#0000 40%),linear-gradient(135deg,#180e14,#0f090d);place-items:center;min-height:72vh;padding:130px 24px;display:grid}.quote-section svg{width:34px;height:34px;color:var(--rose);opacity:.75}.quote-section blockquote{max-width:960px;font-family:var(--serif);letter-spacing:-.035em;margin:34px auto;font-size:clamp(2.8rem,6vw,6rem);font-style:italic;font-weight:500;line-height:1.04}.quote-line{color:var(--muted);letter-spacing:.22em;justify-content:center;align-items:center;gap:16px;font-size:.66rem;display:flex}.quote-line span{background:var(--line);width:56px;height:1px}.journey-section{padding:160px 0}.journey-heading{grid-template-columns:.55fr 1.45fr;align-items:end;margin-bottom:75px;display:grid}.journey-heading .eyebrow{align-self:start;margin-top:10px}.timeline{border-top:1px solid var(--line)}.timeline-row{border-bottom:1px solid var(--line);grid-template-columns:.35fr 1fr .9fr;align-items:center;gap:45px;min-height:300px;padding:38px 0;display:grid}.timeline-number{color:var(--rose);font-family:var(--serif);align-self:start;padding-top:7px;font-size:1.7rem}.timeline-copy h3{font-family:var(--serif);letter-spacing:-.03em;margin:0 0 18px;font-size:clamp(2.2rem,4vw,4rem);font-weight:500}.timeline-copy>p:last-child{color:var(--muted);max-width:560px;margin:0;line-height:1.8}.timeline-row img{aspect-ratio:16/10;object-fit:cover;filter:saturate(.82);border-radius:5px;width:100%;transition:all .5s}.timeline-row:hover img{filter:saturate(1.06);transform:scale(.985)}.memory-cards{grid-template-columns:repeat(3,1fr);gap:14px;padding-bottom:170px;display:grid}.memory-card{border:1px solid var(--line);background:linear-gradient(145deg,#ffffff12,#ffffff05);border-radius:8px;flex-direction:column;justify-content:end;min-height:330px;padding:28px;display:flex;position:relative;overflow:hidden}.memory-card:before{content:"";aspect-ratio:1;background:radial-gradient(circle,#d9979933,#0000 70%);border-radius:50%;width:220px;transition:all .5s;position:absolute;top:-110px;right:-110px}.memory-card:hover:before{transform:scale(1.3)}.memory-card>span{color:var(--rose);letter-spacing:.18em;font-size:.72rem;position:absolute;top:25px;left:28px}.memory-card h3{font-family:var(--serif);margin:0 0 14px;font-size:2.25rem;font-weight:500}.memory-card p{color:var(--muted);margin:0;line-height:1.7}.letters-section{padding-bottom:180px}.letters-intro{max-width:850px;margin-bottom:65px}.letters-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.letter{color:#22131a;background:#efe2db;border-radius:8px;flex-direction:column;justify-content:center;min-height:560px;padding:clamp(34px,5vw,70px);display:flex;position:relative;overflow:hidden}.letter:after{content:"";pointer-events:none;border:1px solid #22131a29;border-radius:4px;position:absolute;inset:14px}.letter-alt{color:#fff5ef;background:#6b2d3e}.letter-heart{width:28px;color:var(--wine);margin-bottom:46px}.letter-alt .letter-heart{color:var(--rose-light)}.letter-label{letter-spacing:.19em;text-transform:uppercase;opacity:.58;font-family:var(--sans)!important;margin:0 0 12px!important;font-size:.66rem!important}.letter h3{font-family:var(--serif);margin:0 0 24px;font-size:clamp(3rem,5vw,5rem);font-weight:500;line-height:.95}.letter>p{max-width:520px;font-family:var(--serif);margin:0;font-size:clamp(1.25rem,2vw,1.62rem);line-height:1.55}.letter-signature{font-family:var(--serif);margin-top:38px;font-size:2.2rem;font-style:italic}.closing-section{isolation:isolate;place-items:center;min-height:90vh;display:grid;position:relative}.closing-photo{z-index:-2;background-position:50%;background-size:cover;background-attachment:fixed;position:absolute;inset:0}.closing-overlay{z-index:-1;background:linear-gradient(90deg,#0e080cf0,#0e080c85),linear-gradient(#0000 60%,#120b10);position:absolute;inset:0}.closing-content{width:min(1180px,100% - 48px)}.closing-content h2{max-width:850px;margin-bottom:36px}.secondary-button{color:#fff;background:0 0;animation:none}.secondary-button:hover{color:var(--bg);background:#fff}footer{text-align:center;border-top:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:280px;display:flex}.footer-mark{aspect-ratio:1;width:62px;font-family:var(--serif);border:1px solid #ffffff40;border-radius:50%;place-items:center;font-size:1.35rem;display:grid}footer p{font-family:var(--serif);color:#ffffffd1;margin:8px 0 0;font-size:1.25rem}footer small{color:#ffffff5c;letter-spacing:.12em;text-transform:uppercase;font-size:.66rem}.lightbox{z-index:200;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#070406f0;place-items:center;padding:45px 80px;animation:.25s both lightboxIn;display:grid;position:fixed;inset:0}@keyframes lightboxIn{0%{opacity:0}}.lightbox figure{flex-direction:column;align-items:center;max-width:min(1100px,86vw);max-height:90vh;margin:0;display:flex}.lightbox figure img{object-fit:contain;border-radius:4px;max-width:100%;max-height:78vh;box-shadow:0 30px 100px #00000073}.lightbox figcaption{color:#ffffffc2;width:100%;font-family:var(--serif);justify-content:space-between;margin-top:15px;font-size:1.18rem;display:flex}.lightbox figcaption small{font-family:var(--sans);color:#ffffff6b}.lightbox button{color:#fff;aspect-ratio:1;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff2e;border-radius:50%;place-items:center;width:46px;transition:all .25s;display:grid;position:absolute}.lightbox button:hover{color:var(--bg);background:#fff}.lightbox-close{top:24px;right:24px}.lightbox-nav{top:50%;transform:translateY(-50%)}.lightbox-prev{left:24px}.lightbox-next{right:24px}.reveal{opacity:0;transition:opacity .85s,transform .85s cubic-bezier(.2,.7,.2,1);transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:none}.gallery-item.reveal{transform:translateY(18px)scale(.985)}.gallery-item.reveal.is-visible{transform:none}@media (width<=980px){.desktop-nav{display:none}.topbar{grid-template-columns:1fr auto;padding:0 20px}.menu-button{display:grid}.mobile-menu{z-index:70;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);opacity:0;visibility:hidden;background:#10090ef7;flex-direction:column;justify-content:center;padding:115px 30px 50px;transition:all .3s;display:flex;position:fixed;inset:0;transform:translateY(-12px)}.mobile-menu.is-open{opacity:1;visibility:visible;transform:none}.mobile-menu a{border-bottom:1px solid var(--line);font-family:var(--serif);align-items:baseline;gap:18px;padding:18px 0;font-size:3rem;display:flex}.mobile-menu a span{font-family:var(--sans);color:var(--rose);font-size:.64rem}.story-section,.gallery-heading{grid-template-columns:1fr}.story-section{gap:45px}.gallery-heading{gap:30px}.journey-heading{grid-template-columns:1fr;gap:15px}.timeline-row{grid-template-columns:.18fr 1fr}.timeline-row img{grid-column:2;margin-top:18px}.memory-cards{grid-template-columns:1fr}.memory-card{min-height:260px}.letters-grid{grid-template-columns:1fr}.closing-photo{background-attachment:scroll}}@media (width<=720px){.section{width:min(100% - 30px,1180px)}.topbar{height:74px}.music-button span{display:none}.hero-content{padding-top:50px}.hero h1{flex-wrap:wrap;gap:0 12px;font-size:clamp(4.25rem,22vw,7.4rem)}.hero h1 span{width:100%}.hero h1 i{font-size:2.2rem;position:absolute}.hero-title{margin-top:34px}.hero-subtitle{line-height:1.65}.hero-side-note{display:none}.story-section{padding:110px 0 120px}.gallery-section{padding-bottom:110px}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:54px;gap:8px;width:calc(100% - 16px)}.gallery-item.square,.gallery-item.portrait,.gallery-item.landscape,.gallery-item.wide{grid-column:span 1}.gallery-item.square{grid-row:span 5}.gallery-item.portrait{grid-row:span 7}.gallery-item.landscape{grid-row:span 5}.gallery-item.wide{grid-area:span 5/span 2}.gallery-overlay{opacity:1;padding:46px 12px 12px;transform:none}.gallery-overlay span{font-size:.95rem}.quote-section{min-height:68vh;padding:100px 18px}.journey-section{padding:110px 0}.timeline-row{grid-template-columns:1fr;gap:18px;padding:30px 0 40px}.timeline-number{padding:0}.timeline-row img{grid-column:1}.memory-cards{padding-bottom:115px}.letters-section{padding-bottom:120px}.letter{min-height:500px;padding:42px 30px}.closing-content{width:calc(100% - 30px)}.lightbox{padding:60px 12px 90px}.lightbox-nav{top:auto;bottom:20px;transform:none}.lightbox-prev{left:calc(50% - 58px)}.lightbox-next{right:calc(50% - 58px)}.lightbox-close{top:16px;right:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
