*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#10090c;--text:#f4eee9;--muted:#aaa09d;--accent:#e29aaa;--line:rgba(244,238,233,.13)}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif;overflow-x:hidden}.hidden{display:none!important}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 0%,rgba(226,154,170,.13),transparent 35%),radial-gradient(circle at 10% 60%,rgba(117,38,58,.12),transparent 30%)}.grain{position:fixed;inset:-50%;width:200%;height:200%;opacity:.035;pointer-events:none;z-index:20;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='.5'/%3E%3C/svg%3E")}.site{position:relative;z-index:1}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:10px;color:var(--muted);line-height:1.6}.hero{min-height:100vh;display:flex;align-items:center;padding:10vw 11vw;border-bottom:1px solid var(--line)}.hero-inner{max-width:900px}.hero h2{font-family:"Playfair Display",serif;font-size:clamp(58px,10vw,128px);line-height:.9;font-weight:500;letter-spacing:-.045em;margin:28px 0}.hero h2 em,h2 em{color:var(--accent)}.hero-copy{font-size:17px;color:#c4bcba;line-height:1.8}.scroll-btn{margin-top:60px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);padding:0 0 12px;display:flex;gap:45px;cursor:pointer;font:inherit}.scroll-btn span{transition:transform .3s}.scroll-btn:hover span{transform:translateY(5px)}
.story-section{min-height:100vh;display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,1fr);gap:9vw;align-items:center;padding:12vw 11vw;border-bottom:1px solid var(--line)}.story-section.reverse .story-copy{order:1}.story-section.reverse .section-photo{order:2}.story-copy{max-width:650px;position:relative}.story-copy:before{content:"♡";display:block;color:rgba(226,154,170,.5);font-size:20px;margin-bottom:18px}.story-copy h2{font-family:"Playfair Display",serif;font-size:clamp(45px,5.7vw,78px);font-weight:500;line-height:1.02;letter-spacing:-.04em;margin:22px 0 35px}.story-copy p:not(.eyebrow){font-size:17px;line-height:1.9;color:#c8c0bd;margin-bottom:18px}.story-copy strong{color:var(--text);font-weight:500}.section-photo{position:relative;border-radius:2px;box-shadow:0 25px 80px rgba(0,0,0,.28);transform:translateY(0);transition:transform 1s ease,box-shadow 1s ease;min-height:520px;overflow:hidden;background:linear-gradient(145deg,#241217,#120c0f);border:1px solid rgba(255,255,255,.08)}.section-photo:after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.10);pointer-events:none}.section-photo img{width:100%;height:100%;min-height:520px;display:block;object-fit:cover;opacity:.88;filter:saturate(.75)}.section-photo span{position:absolute;left:18px;bottom:16px;font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:rgba(255,255,255,.48);background:rgba(10,7,9,.45);padding:7px 9px}.memory-intro{padding:13vw 11vw 7vw;border-bottom:1px solid var(--line)}.memory-intro h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(48px,7vw,94px);line-height:1;margin:25px 0}.memory-note{color:var(--muted);font-size:14px}.memory-grid{display:grid;position:relative;grid-template-columns:1fr 1fr;gap:5vw;padding:5vw 11vw 12vw}.memory-grid figure{margin:0}.memory-grid figure:nth-child(even){margin-top:100px}.memory-grid img{display:block;border-radius:2px;width:100%;height:520px;object-fit:cover;background:#211217}.memory-grid figcaption{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);padding-top:14px}.ending{min-height:100vh;position:relative;display:flex;align-items:center;padding:14vw 11vw}.ending-inner{max-width:900px;position:relative}.ending-inner:before{content:"♡";display:block;color:var(--accent);font-size:28px;margin-bottom:18px}.ending h2{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(48px,6.5vw,92px);line-height:1.04;letter-spacing:-.045em;margin:25px 0 35px}.ending-copy{font-size:17px;line-height:1.9;color:#c8c0bd;max-width:750px;margin-bottom:16px}.ending-copy strong{color:var(--text);font-weight:500}.talk-btn{margin-top:50px;border-radius:1px;display:flex;justify-content:space-between;gap:40px;width:230px;padding:18px 22px;border:1px solid rgba(244,238,233,.35);color:var(--text);text-decoration:none;font-size:13px;transition:.3s}.talk-btn:hover{background:var(--text);color:var(--bg)}.tiny{margin-top:30px;color:#71696a;font-size:9px;text-transform:uppercase;letter-spacing:.18em}
.lock-screen{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:25px;background:#10090c;overflow:hidden}.lock-screen:before{content:"";position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(226,154,170,.16),transparent 68%)}.lock-card{position:relative;border-radius:2px;text-align:left;width:min(620px,100%);padding:55px 45px;border:1px solid rgba(255,255,255,.11);background:rgba(22,12,16,.72);backdrop-filter:blur(18px)}.mini-heart{font-size:34px;color:var(--accent);margin-bottom:28px}.lock-card h1{font-family:"Playfair Display",serif;font-size:clamp(40px,6vw,70px);font-weight:500;line-height:1.02;margin:18px 0}.lock-card h1 em{color:var(--accent)}.lock-note{color:var(--muted);font-size:14px;margin:25px 0}.lock-card form{display:flex;flex-direction:column;gap:12px;max-width:340px}.lock-card input{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.18);padding:15px 16px;color:var(--text);font:inherit;outline:none}.lock-card input:focus{border-color:rgba(226,154,170,.7)}.lock-card button{border:1px solid rgba(226,154,170,.65);background:rgba(226,154,170,.12);color:var(--text);padding:15px;cursor:pointer;font:inherit}.error{height:16px;color:#e29aaa;font-size:11px}.heart-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:5}.float-heart{position:absolute;bottom:-30px;color:rgba(226,154,170,.34);font-size:14px;animation:floatUp linear forwards;text-shadow:0 0 15px rgba(226,154,170,.25)}@keyframes floatUp{from{transform:translateY(0) rotate(0deg);opacity:0}12%{opacity:1}to{transform:translateY(-115vh) rotate(35deg);opacity:0}}
@media(max-width:760px){.hero,.story-section,.memory-intro,.ending{padding-left:25px;padding-right:25px}.story-section{min-height:auto;display:flex;flex-direction:column;align-items:stretch;gap:45px;padding-top:25vw;padding-bottom:25vw}.story-section.reverse .story-copy,.story-section.reverse .section-photo{order:initial}.story-copy{max-width:none}.story-copy h2{font-size:48px}.story-copy p:not(.eyebrow),.ending-copy{font-size:15px;line-height:1.8}.section-photo,.section-photo img{min-height:400px}.memory-grid{display:block;padding:10vw 25px 25vw}.memory-grid figure,.memory-grid figure:nth-child(even){margin:0 0 45px}.memory-grid img{height:430px}.lock-card{padding:38px 25px}}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}

/* Section numbering and labels intentionally removed. */
.section-number{display:none}


/* Memory video */
.memory-video-wrap{max-width:1120px;margin:0 auto 10rem;padding:0 6vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem;align-items:center}
.memory-video-copy p{max-width:30rem;color:rgba(255,255,255,.68);line-height:1.8}
.memory-video{width:100%;max-height:680px;object-fit:cover;border-radius:28px;border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 80px rgba(0,0,0,.35);background:#090607}
@media (max-width:800px){.memory-video-wrap{grid-template-columns:1fr;gap:1.5rem;margin-bottom:6rem}.memory-video{max-height:70vh}}
