@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Inter+Tight:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap";:root{--bg:#140c10;--bg-deep:#0a0608;--bg-soft:#1c1016;--surface:#24151d;--text:#fff4f2;--text-secondary:#fff4f2ad;--text-tertiary:#fff4f26b;--accent:#ff7a8a;--accent-deep:#e2556a;--blush:#ffb4bf;--champagne:#f3d6c4;--line:#fff4f21f;--glow-rose:#ff7a8a38;--font:"Inter Tight", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Fraunces", Georgia, serif;--ease:cubic-bezier(.25, .1, .25, 1);--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg-deep)}body{min-height:100vh;color:var(--text);font-family:var(--font);background:radial-gradient(900px 600px at 15% -5%, #ff7a8a2e, transparent 55%), radial-gradient(800px 500px at 90% 10%, #f3d6c41a, transparent 50%), var(--bg-deep);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.5;overflow-x:hidden}#root{min-height:100vh}img{max-width:100%;display:block}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}::selection{color:#fff;background:#ff7a8a66}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:min(1120px,100% - 2.5rem);margin-inline:auto}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 1rem;font-size:.75rem;font-weight:600}.display{font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(2.75rem,7.5vw,5.5rem);font-weight:500;line-height:1.02}.display-italic{font-style:italic}.lead{max-width:32rem;color:var(--text-secondary);letter-spacing:-.01em;margin:1.15rem 0 0;font-size:clamp(1.05rem,1.6vw,1.25rem);font-weight:400;line-height:1.45}.section-light{--text:#2a151c;--text-secondary:#2a151ca3;--text-tertiary:#2a151c66;--line:#2a151c1a;color:var(--text);background:radial-gradient(700px 420px at 80% 0,#ffb4bf59,#0000 60%),#fff1ef}.section-dark{color:var(--text);background:0 0}.section-rose{color:var(--text);background:radial-gradient(800px 500px at 20% 30%,#ff7a8a29,#0000 55%),linear-gradient(#1a0e14 0%,#120910 100%)}.progress{z-index:90;pointer-events:none;width:100%;height:2px;position:fixed;top:0;left:0}.progress__bar{transform-origin:0;background:linear-gradient(90deg,#ffb4bf,#ff7a8a,#e2556a);width:100%;height:100%}.hero{color:#fff4f2;place-items:center;min-height:100dvh;display:grid;position:relative;overflow:clip}.hero__media{position:absolute;inset:0}.hero__media img,.hero__media-el{object-fit:cover;object-position:center 28%;filter:saturate(1.05)contrast(1.04);width:100%;height:100%}.hero__dim{background:linear-gradient(#0a060880 0%,#0a060838 40%,#0a0608c7 100%),radial-gradient(at 50% 40%,#0000 10%,#0a06088c 100%);position:absolute;inset:0}.hero__bloom{pointer-events:none;background:radial-gradient(#ff7a8a47,#0000 65%);height:45%;position:absolute;inset:auto 0 0}.hero__content{z-index:1;text-align:center;will-change:transform, opacity;width:min(920px,100% - 2.5rem);position:relative}.hero__brand{font-family:var(--font-display);letter-spacing:-.045em;background:linear-gradient(#fff 0%,#ffb4bf 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 1rem;font-size:clamp(4rem,14vw,9rem);font-style:italic;font-weight:500;line-height:.9}.hero__title{font-family:var(--font-display);letter-spacing:-.03em;color:#fff4f2f0;gap:.08em;margin:0;font-size:clamp(1.65rem,4vw,2.8rem);font-weight:500;line-height:1.12;display:grid}.hero__title span{display:block}.hero__intro{gap:.85rem;max-width:34rem;margin:1.5rem auto 0;display:grid}.hero__intro p{color:#fff4f2b8;letter-spacing:-.01em;margin:0;font-size:clamp(1rem,2.4vw,1.12rem);line-height:1.45}.hero__meta{letter-spacing:.1em;text-transform:uppercase;color:#ffb4bfb3;margin:2rem 0 0;font-size:.78rem;font-weight:500}.hero__hint{z-index:2;width:1px;height:48px;position:absolute;bottom:1.75rem;left:50%;overflow:hidden;transform:translate(-50%)}.hero__hint span{background:linear-gradient(#0000,#ffb4bfe6);width:100%;height:100%;animation:1.8s ease-in-out infinite hint;display:block}@keyframes hint{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.statement{background:radial-gradient(700px 480px at 50% 40%,#ff7a8a1a,#0000 60%),#0a0608;padding:4.5rem 0}.statement__list{text-align:center;gap:1.5rem;display:grid}.statement__line{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.6rem,6vw,2.8rem);font-style:italic;font-weight:500;line-height:1.15}.loves{padding:4.5rem 0 3rem}.loves__intro{margin-bottom:1.75rem}.loves__grid{grid-template-columns:1fr;gap:.75rem;display:grid}.love-card{border:1px solid var(--line);min-height:auto;color:inherit;text-align:left;background:#fff4f20a;border-radius:1.1rem;align-content:start;gap:.4rem;padding:1.25rem 1.15rem;display:grid;position:relative}.love-card.is-open{background:#ff7a8a1a;border-color:#ff7a8a59}.love-card__index{letter-spacing:.14em;color:var(--text-tertiary);font-size:.72rem;font-weight:600}.love-card__label{letter-spacing:.08em;text-transform:uppercase;color:var(--blush);font-size:.8rem;font-weight:600}.love-card__title{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.55rem,2.6vw,2.1rem);font-weight:500;line-height:1.15}.love-card__text{max-width:34ch;color:var(--text-secondary);margin:.35rem 0 0;font-size:1.02rem;line-height:1.45}.love-card__hint{color:var(--accent);letter-spacing:-.01em;margin-top:.75rem;font-size:.85rem;font-weight:500}@media (width>=760px){.loves__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.memories{padding:4rem 0 2rem}.memories__intro{margin-bottom:2rem}.memories__stack{gap:2.25rem;display:grid}.memory-card{gap:.9rem;width:min(1120px,100% - 2rem);margin-inline:auto;display:grid}.memory-card img{aspect-ratio:4/5;object-fit:cover;background:var(--surface);border-radius:1.1rem;width:100%}.memory-card__text span{letter-spacing:.12em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:.35rem;font-size:.72rem;font-weight:600;display:block}.memory-card__text h3{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:1.7rem;font-weight:500}.memory-card__text p{color:var(--text-secondary);margin:.5rem 0 0;font-size:1.02rem;line-height:1.45}@media (width>=800px){.memory-card{grid-template-columns:1.05fr .95fr;align-items:center;gap:1.75rem}.memory-card:nth-child(2n) img{order:2}.memory-card img{aspect-ratio:4/5}}.quoteplay{place-items:center;min-height:85vh;padding:6rem 0;display:grid;position:relative;overflow:hidden}.quoteplay__inner{text-align:center;justify-items:center;display:grid}.quoteplay__note{color:var(--text-secondary);letter-spacing:-.01em;margin:0 0 2rem;font-size:1.1rem}.quoteplay__phrase{max-width:14ch;font-family:var(--font-display);letter-spacing:-.035em;color:var(--text);background:0 0;border:0;padding:.5rem;font-size:clamp(2.4rem,8vw,5.2rem);font-style:italic;font-weight:500;line-height:1.05;transition:color .3s}.quoteplay__phrase:hover,.quoteplay__phrase.is-escaped{color:var(--accent-deep)}.quoteplay__hint{color:var(--text-tertiary);margin:1.75rem 0 0;font-size:.95rem;font-weight:500}.quoteplay__pop{max-width:22rem;color:var(--accent-deep);font-family:var(--font-display);background:#e2556a1a;border-radius:1rem;margin-top:1.5rem;padding:1rem 1.2rem;font-size:1.2rem;font-style:italic;line-height:1.35}.cinematic{padding:1rem 0 2rem}.cinematic__frame{aspect-ratio:4/5;background:#120910;border-radius:1.1rem;width:min(1120px,100% - 2rem);margin-inline:auto;position:relative;overflow:hidden}.cinematic__img{object-fit:cover;width:100%;height:100%}.cinematic__shade{background:linear-gradient(#0000001a,#0000009e);position:absolute;inset:0}.cinematic__copy{z-index:2;font-family:var(--font-display);letter-spacing:-.03em;gap:.1em;font-size:clamp(1.6rem,6vw,2.6rem);font-style:italic;font-weight:500;line-height:1.1;display:grid;position:absolute;inset:auto 1.25rem 1.5rem}.cinematic__copy span{display:block}@media (width>=800px){.cinematic__frame{aspect-ratio:16/10}}.places{padding:4rem 0 3.5rem}.places__head{margin-bottom:2rem}.places__grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.place{gap:.75rem;display:grid}.place__media{aspect-ratio:4/5;background:#d2d2d7;border-radius:1.1rem;overflow:hidden}.place__media img{object-fit:cover;width:100%;height:100%}.place__meta span{letter-spacing:.12em;color:var(--accent);margin-bottom:.3rem;font-size:.72rem;font-weight:600;display:block}.place__meta h3{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:1.4rem;font-weight:500}.place__meta p{color:var(--text-secondary);margin:.35rem 0 0;font-size:.98rem}@media (width>=700px){.places__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 1rem}}@media (width>=1000px){.places__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.gallery{padding:4.5rem 0 3rem}.gallery__intro{margin-bottom:2rem}.gallery__grid{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.shot{margin:0}.shot__frame{aspect-ratio:3/4;background:var(--surface);border-radius:.9rem;overflow:hidden}.shot:nth-child(3n) .shot__frame{aspect-ratio:4/3}.shot img{object-fit:cover;width:100%;height:100%}.shot figcaption{color:var(--text-tertiary);margin-top:.45rem;font-size:.78rem;font-weight:500}@media (width>=800px){.gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}}.clips{padding:7rem 0 5rem}.clips__intro{margin-bottom:3rem}.clips__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.clip{margin:0}.clip__frame{aspect-ratio:9/16;border:1px solid var(--line);background:#120910;border-radius:1.25rem;overflow:hidden}.clip__frame video{object-fit:cover;width:100%;height:100%;display:block}.clip figcaption{color:var(--text-secondary);letter-spacing:-.01em;margin-top:.7rem;font-size:.88rem;font-weight:500}@media (width<=900px){.clips__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.clips__grid{grid-template-columns:1fr}.clip__frame{aspect-ratio:4/5}}.future{padding:7rem 0 5rem}.future__intro{text-align:center;justify-items:center;margin-bottom:3rem;display:grid}.future__intro .lead{text-align:center}.future__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;max-width:820px;display:grid}.future__card{text-align:center;margin:0}.future__frame{aspect-ratio:3/4;background:#e8d7d4;border-radius:1.5rem;overflow:hidden;box-shadow:0 24px 50px #2a151c1f}.future__frame img{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease-out)}.future__card:hover img{transform:scale(1.04)}.future__card figcaption{font-family:var(--font-display);color:var(--text-secondary);margin-top:.9rem;font-size:1.2rem;font-style:italic}@media (width<=640px){.future__grid{grid-template-columns:1fr;max-width:360px}}.letter{padding:4.5rem 0 3.5rem}.letter__inner{max-width:38rem}.letter__body{gap:1.25rem;display:grid}.letter__body p{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text);margin:0;font-size:clamp(1.15rem,3.6vw,1.4rem);font-weight:400;line-height:1.55}.letter__body p:first-child{font-size:clamp(1.4rem,4vw,1.75rem);font-style:italic}.letter__sign{gap:.3rem;margin-top:2.5rem;display:grid}.letter__sign span{color:var(--text-tertiary);font-size:.95rem}.letter__sign strong{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.5rem;font-style:italic;font-weight:500}.finale{text-align:center;padding:8rem 0 6rem}.finale__inner{justify-items:center;display:grid}.finale__question{max-width:14ch}.finale__question span{display:block}.finale__inner .lead,.finale__inner .eyebrow{text-align:center}.finale__actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2.5rem;display:flex}.finale__yes{color:#fff4f2;letter-spacing:-.01em;background:#2a151c;border:0;border-radius:980px;padding:.95rem 1.55rem;font-size:1rem;font-weight:500;transition:background .25s,transform .25s}.finale__yes:disabled{opacity:.7;cursor:default}.finale__hint{font-family:var(--font-display);color:#2a151c73;letter-spacing:-.01em;margin:.85rem 0 0;font-size:.98rem;font-style:italic}.finale__maybe{color:#2a151c;letter-spacing:-.01em;background:#2a151c14;border:0;border-radius:980px;padding:.95rem 1.4rem;font-size:1rem;font-weight:500;transition:background .25s}.finale__maybe:hover{background:#2a151c24}.finale__reply{max-width:28rem;color:var(--accent-deep);font-family:var(--font-display);letter-spacing:-.015em;margin:2rem 0 0;font-size:1.25rem;font-style:italic}.finale__footer{letter-spacing:.08em;text-transform:uppercase;color:#2a151c66;margin:4.5rem 0 0;font-size:.75rem;font-weight:500}
