*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff7f3;color:#692735;font-family:"DM Sans",sans-serif;font-weight:300}.hidden{display:none!important}.grain{position:fixed;inset:0;pointer-events:none;opacity:.12;z-index:10;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E")}.gate{min-height:100svh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 50% 30%,#d64c5e,#a91f38 55%,#71192f);color:#fff8f3;text-align:center}.gate-card{width:min(100%,420px);padding:50px 30px;border:1px solid #ffe0c477;outline:1px solid #ffe0c433;outline-offset:9px}.gate-heart{font-size:27px;color:#ffd1c6;margin-bottom:18px}.gate small,.eyebrow,.page-heading small{font-size:9px;letter-spacing:.27em;font-weight:600}.gate h1, h1,h2{font-family:"Cormorant Garamond",serif;font-weight:400}.gate h1{font-size:58px;margin:15px 0 4px}.initials{font:28px "Cormorant Garamond";letter-spacing:.18em}.initials i{color:#ffd0b6;font-style:normal}.gate p{font-size:12px;color:#ffe2d9;margin:25px 0}.gate form{display:grid;gap:11px}.gate input{background:#ffffff16;border:1px solid #ffe0d0aa;color:white;text-align:center;padding:14px;font-size:20px;letter-spacing:.6em}.gate input::placeholder{color:#f4c8c0}.gate button,.primary-btn{border:0;background:#ffe0c9;color:#8e2338;padding:14px 22px;font:500 11px "DM Sans";letter-spacing:.1em;text-decoration:none;cursor:pointer}.gate label{height:14px;font-size:11px;color:#ffe0d5}.date-mark{display:block;margin-top:27px;color:#f5c6bd}.topbar{height:68px;padding:0 clamp(20px,6vw,80px);display:flex;align-items:center;justify-content:space-between;background:#fffaf7;border-bottom:1px solid #f0ded7;position:sticky;top:0;z-index:8}.brand{text-decoration:none;color:#a52b40;font:22px "Cormorant Garamond";letter-spacing:.08em}.brand span{font-size:14px;color:#df6370}.desktop-nav{display:flex;gap:34px}.desktop-nav button,.mobile-menu button{border:0;background:none;color:#81414c;font:11px "DM Sans";cursor:pointer}.menu-btn{display:none;background:none;border:0;color:#9c2c40;font-size:21px}.mobile-menu{position:sticky;top:68px;z-index:9;background:#fffaf7;padding:12px 20px;box-shadow:0 8px 15px #7c263010}.mobile-menu button{display:block;width:100%;padding:13px;text-align:left;border-bottom:1px solid #f3e3de}.page{display:none;min-height:70vh;animation:appear .45s ease}.page.active{display:block}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.home-hero{min-height:620px;padding:65px 20px 48px;text-align:center;color:#fff7f1;background:radial-gradient(ellipse at 50% 35%,#e75e6c,#bd3049 52%,#861d38);position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;overflow:hidden}.home-hero:before,.home-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid #ffdfd333;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.home-hero:after{width:650px;height:650px}.hero-stars{letter-spacing:.4em;color:#ffdfc0;font-size:14px;margin-bottom:35px;z-index:1}.home-hero .eyebrow{color:#ffe0d4;z-index:1}.home-hero h1{font-size:clamp(76px,13vw,142px);line-height:.78;margin:24px 0;z-index:1}.home-hero h1 em,.home-sky h2 em,footer h2 em,.page-heading h1 em{font-style:italic;color:#ffd6bf}.hero-sub{font-size:12px;color:#ffe8e1;z-index:1}.hero-date{display:flex;align-items:center;gap:18px;margin-top:55px;font-size:9px;letter-spacing:.2em;color:#ffe6da;z-index:1}.hero-date i{font-style:normal;color:#ffc3bd;font-size:16px}.discover{margin-top:50px;background:none;border:1px solid #ffdfd899;color:white;padding:12px 20px;font:10px "DM Sans";letter-spacing:.1em;z-index:1}.discover b{margin-left:10px}.welcome-strip{display:flex;justify-content:center;align-items:center;gap:18px;padding:28px 15px;background:#fffaf7;border-bottom:1px solid #f0e0d9}.welcome-strip span{font:22px "Cormorant Garamond";color:#d84d5e}.welcome-strip p{font:italic 17px "Cormorant Garamond";color:#98636a;text-align:center}.portal-grid{max-width:1050px;margin:65px auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:0 22px}.portal{border:0;min-height:250px;padding:28px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;cursor:pointer;transition:.25s;box-shadow:0 15px 35px #9b34400c}.portal:hover{transform:translateY(-6px)}.music-portal{background:#f8ded8;color:#902b40}.photo-portal{background:#f7e9dd;color:#8b4c4d}.letter-portal{background:#f4d7d6;color:#922a40}.portal-icon{font-size:25px;margin-bottom:28px}.portal small{font-size:8px;letter-spacing:.2em;opacity:.7}.portal strong{font:38px/0.95 "Cormorant Garamond";margin:13px 0 20px}.portal i{font:10px "DM Sans";font-style:normal;margin-top:auto}.home-sky{max-width:1000px;margin:80px auto;padding:0 25px 30px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px}.home-sky h2{font-size:58px;line-height:.9;margin:17px 0}.home-sky p{font-size:12px;color:#a17878}.home-sky small,.timeline small,.little-surprise>div{font-size:9px;letter-spacing:.2em;color:#c34a5a}.text-link,.back-link{border:0;background:none;color:#b53348;font:11px "DM Sans";padding:0;cursor:pointer;margin-top:20px}.sky-graphic,.large-sky{height:300px;position:relative;overflow:hidden;border-radius:4px;background:radial-gradient(ellipse at 50% 45%,#c83d54,#751c36 75%,#421529);box-shadow:0 18px 40px #84253b22}.sky-graphic svg,.large-sky svg{position:absolute;width:90%;height:230px;top:24px;left:5%}.sky-graphic svg path,.large-sky svg path{fill:none;stroke:#f4caa6;stroke-width:1.3;stroke-dasharray:3 5}.sky-graphic svg .faint,.large-sky svg .faint{opacity:.3}.sky-graphic circle,.large-sky circle{fill:#ffe6c5;filter:drop-shadow(0 0 5px #ffe0a9)}.twinkle{position:absolute;color:#ffe8c9}.t1{left:15%;top:20%}.t2{right:17%;top:17%}.t3{right:12%;bottom:22%}.t4{left:23%;bottom:18%}.sky-heart{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#ffd5c5;font-size:23px}.timeline{text-align:center;background:#fffaf7;padding:75px 20px}.timeline h2{font-size:48px;margin:15px 0 35px}.timeline-line{max-width:600px;margin:auto;display:flex;justify-content:space-around;position:relative}.timeline-line:before{content:"";position:absolute;top:9px;left:18%;right:18%;height:1px;background:#e8b8b1}.moment{width:42%;position:relative}.moment span{display:block;color:#d64d5e;background:#fffaf7;width:25px;margin:0 auto 10px;font-size:16px}.moment b{font-size:9px;letter-spacing:.12em;color:#ad4654}.moment p{font:17px "Cormorant Garamond";color:#80535a}.moment.future{opacity:.7}.little-surprise{text-align:center;padding:60px 20px;background:#f8e8e2}.little-surprise>div{font-size:24px}.little-surprise p{font:italic 22px "Cormorant Garamond";color:#874351}.little-surprise button{background:none;border:0;border-bottom:1px solid #d28a8a;color:#a83a4b;font:10px "DM Sans";padding:8px;cursor:pointer}.inner-page{max-width:1100px;margin:auto;padding:35px 25px 100px}.back-link{margin:15px 0 45px}.page-heading{text-align:center;margin:10px auto 45px}.page-heading small{color:#bd5260}.page-heading h1{font-size:clamp(56px,9vw,90px);line-height:.85;margin:22px 0;color:#76283a}.page-heading h1 em{color:#d64c5e}.page-heading p{font-size:12px;color:#a47b7a;line-height:1.8}.record-scene{height:260px;display:grid;place-items:center;position:relative}.record{width:220px;height:220px;border-radius:50%;background:repeating-radial-gradient(circle,#1d1a1c 0 2px,#343033 3px 5px,#171517 6px 7px);display:grid;place-items:center;box-shadow:0 20px 35px #40192733;animation:rotate 14s linear infinite;z-index:1}.record-center{width:76px;height:76px;border-radius:50%;background:#d84c5d;display:grid;place-items:center;color:#fff1e7;font:20px "Cormorant Garamond"}.record-center span{font-size:11px}.record-shadow{position:absolute;bottom:10px;width:210px;height:15px;border-radius:50%;background:#9d344022;filter:blur(8px)}@keyframes rotate{to{transform:rotate(360deg)}}.track-card{text-align:center;margin:5px auto 50px}.track-card small{font-size:9px;letter-spacing:.2em;color:#c34b5b}.track-card h2{font-size:43px;margin:10px 0 0}.track-card p{font-size:12px;color:#a47b7a}.primary-btn{display:inline-block;margin:16px 0}.primary-btn span{margin-left:12px}.tiny-note{font-size:9px!important}.quote-line{text-align:center;padding:25px;border-top:1px solid #f0ded7;font:italic 24px "Cormorant Garamond";color:#a45b64}.photo-count{text-align:center;font-size:10px;color:#a77b7b;letter-spacing:.1em;margin-bottom:25px}.photo-count span{font:24px "Cormorant Garamond";color:#bd4054}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:950px;margin:auto}.photo-card{border:0;background:#fff;padding:9px 9px 12px;box-shadow:0 12px 28px #772a3512;position:relative;cursor:zoom-in;transform:rotate(-1deg);transition:.25s}.photo-card:nth-child(3n){transform:rotate(1.6deg)}.photo-card:nth-child(4n){transform:rotate(-2deg)}.photo-card:hover{transform:translateY(-5px) rotate(0)}.photo-card img{width:100%;height:280px;object-fit:cover;display:block}.photo-zoom{position:absolute;right:15px;bottom:17px;color:#a7384a;background:#fffdf4;width:25px;height:25px;border-radius:50%;display:grid;place-items:center}.gallery-foot{text-align:center;font:italic 20px "Cormorant Garamond";color:#a66d71;margin:40px}.letter-page{min-height:78vh}.big-envelope{width:230px;height:160px;border:0;display:block;margin:50px auto 0;position:relative;background:linear-gradient(145deg,#f6c9c2,#e98f91);box-shadow:0 20px 35px #9d354522;cursor:pointer;overflow:hidden;transition:.35s}.big-envelope:hover{transform:translateY(-7px)}.big-envelope:before{content:"";position:absolute;inset:0;background:linear-gradient(35deg,transparent 49.5%,#fff0e7 50%,transparent 51%),linear-gradient(-35deg,transparent 49.5%,#fbe5dc 50%,transparent 51%)}.envelope-flap{position:absolute;top:0;left:0;width:0;height:0;border-left:115px solid transparent;border-right:115px solid transparent;border-top:83px solid #f9ddd3;z-index:2}.envelope-heart{position:absolute;z-index:3;top:65px;left:0;right:0;font-size:28px;color:#b8334a}.envelope-label{position:absolute;bottom:15px;left:0;right:0;font:16px "Cormorant Garamond";color:#8d3444}.tap-hint{text-align:center;font-size:8px;letter-spacing:.2em;color:#b77d7d;margin-top:22px}.letter-paper{max-width:570px;margin:45px auto 0;background:#fffdf8;padding:55px clamp(28px,7vw,65px);box-shadow:0 20px 60px #8b33401c;position:relative;border:1px solid #f0e2d7;animation:appear .4s}.close-letter{position:absolute;right:17px;top:12px;border:0;background:none;font-size:25px;color:#b84a59;cursor:pointer}.paper-heart{text-align:center;color:#d65b68;font-size:23px}.letter-paper h2{text-align:center;font-size:49px;line-height:.9;margin:17px 0 28px}.letter-paper p{font-size:14px;line-height:2;color:#77555a}.letter-paper .signature{text-align:center;font:24px "Cormorant Garamond";color:#a12e43;margin-top:28px}.paper-end{text-align:center;margin-top:40px;font-size:8px;letter-spacing:.2em;color:#bd8a83}.large-sky{height:400px;max-width:700px;margin:20px auto}.large-sky svg{top:75px;left:5%;height:260px}.sky-dots{position:absolute;inset:25px;color:#ffe5c3;line-height:3;letter-spacing:.4em;text-align:center}.disclaimer{max-width:600px;text-align:center;margin:20px auto;font-size:10px;color:#a9817d;line-height:1.7}footer{background:#a9233b;color:#fff4ec;text-align:center;padding:75px 20px 30px}footer h2{font-size:clamp(55px,9vw,85px);line-height:.86;margin:22px}footer p{font-size:11px;color:#ffe0d8;max-width:330px;margin:22px auto;line-height:1.8}footer b{display:block;color:#ffc4bd;font-size:20px;margin:35px}footer small{font-size:8px;letter-spacing:.22em;color:#f4c3b9}.lightbox{position:fixed;inset:0;background:#1e0c12f2;z-index:20;display:flex;align-items:center;justify-content:center;padding:50px 60px}.lightbox img{max-width:min(80vw,900px);max-height:82vh;object-fit:contain;box-shadow:0 20px 50px #0007}.lightbox button{position:absolute;border:0;background:#ffffff1a;color:white;font-size:34px;width:44px;height:44px;cursor:pointer}.lightbox #lightboxClose{right:20px;top:20px}.lb-prev{left:15px}.lb-next{right:15px}.lightbox span{position:absolute;bottom:18px;color:#f8e2dc;font-size:10px;letter-spacing:.15em}
@media(max-width:700px){.desktop-nav{display:none}.menu-btn{display:block}.home-hero{min-height:570px}.portal-grid{grid-template-columns:1fr;margin:35px auto}.portal{min-height:190px}.portal-icon{margin-bottom:15px}.home-sky{grid-template-columns:1fr;gap:20px;margin:55px auto}.home-sky h2{font-size:52px}.sky-graphic{height:260px}.gallery{grid-template-columns:repeat(2,1fr);gap:14px}.photo-card{padding:6px 6px 9px}.photo-card img{height:210px}.inner-page{padding:25px 16px 70px}.page-heading{margin-bottom:30px}.timeline-line:before{left:10%;right:10%}.welcome-strip p{font-size:15px}.lightbox{padding:45px 40px}.lightbox img{max-width:88vw;max-height:78vh}.lb-prev{left:3px}.lb-next{right:3px}}@media(max-width:390px){.photo-card img{height:175px}.hero-date{gap:9px;font-size:8px}.gate h1{font-size:50px}}
