:root{--bg:#070707;--panel:#101010;--soft:#1a1a1a;--line:rgba(255,255,255,.12);--text:#f1f1f1;--muted:#9a9a9a;--silver:#c8c8c8;--white:#fff;--serif:'Cormorant Garamond',serif;--sans:'Inter',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 70% 10%,#222 0,#0b0b0b 28%,#050505 70%);color:var(--text);font-family:var(--sans);overflow-x:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}.hidden{display:none!important}.grain{position:fixed;inset:0;pointer-events:none;opacity:.055;z-index:50;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='.7'/%3E%3C/svg%3E")}.hearts{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}.heart{position:absolute;color:#fff;opacity:0;animation:float 9s linear infinite;font-size:12px}.screen{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;z-index:10}.gate{background:radial-gradient(circle at 50% 35%,#202020 0,#0b0b0b 45%,#050505 100%)}.gate-card{width:min(560px,100%);padding:58px 54px;text-align:center;border:1px solid var(--line);border-radius:30px;box-shadow:0 30px 100px #000;backdrop-filter:blur(18px);position:relative;overflow:hidden}.glass:before{content:"";position:absolute;inset:-2px;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.07),transparent 55%);transform:translateX(-100%);animation:shine 6s infinite}.tiny{font-size:9px;letter-spacing:.35em;color:#777;margin-bottom:25px}.seal{width:66px;height:66px;border:1px solid #666;border-radius:50%;display:grid;place-items:center;margin:0 auto 25px;font-size:27px;color:#eee;box-shadow:0 0 45px rgba(255,255,255,.08)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.24em;color:#888}.gate h1{font:500 clamp(44px,7vw,70px)/.9 var(--serif);margin:18px 0}.gate h1 em,.hero h2 em,.letter-title h3 em,.photo-heading h3 em,.story h3 em{font-style:italic;color:#aaa}.muted{color:#858585;font-size:13px;line-height:1.8}.gate-actions{display:flex;gap:12px;justify-content:center;margin-top:32px}.btn{border:1px solid #444;border-radius:999px;padding:15px 24px;background:#111;color:#eee;cursor:pointer;transition:.3s;position:relative;z-index:2}.btn:hover{transform:translateY(-3px);border-color:#aaa;box-shadow:0 15px 35px #000}.btn.primary{background:#eee;color:#0a0a0a;border-color:#eee}.btn.ghost{background:transparent}.btn.wide{width:100%;margin-top:18px}.date-card label{display:block;text-align:left;color:#777;font-size:10px;text-transform:uppercase;letter-spacing:.18em;margin-top:30px}.date-card input{width:100%;margin-top:10px;background:#0b0b0b;border:1px solid #333;color:#eee;border-radius:12px;padding:15px}.micro{min-height:18px;margin-top:17px;color:#aaa;font-size:11px}.nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:22px 5vw;background:linear-gradient(#050505dd,transparent);backdrop-filter:blur(3px)}.brand{font:600 25px var(--serif);letter-spacing:.02em}.brand span{font-style:italic;color:#aaa}.brand i{font-size:14px;margin-left:5px}.navlinks{display:flex;gap:28px;color:#888;font-size:11px;text-transform:uppercase;letter-spacing:.15em}.navlinks a:hover{color:#fff}.section{padding:140px 8vw;position:relative}.hero{min-height:100vh;display:flex;align-items:center;justify-content:space-between;gap:40px;overflow:hidden}.hero-copy{max-width:720px;z-index:3}.hero h2{font:500 clamp(70px,11vw,150px)/.78 var(--serif);letter-spacing:-.04em;margin:25px 0 40px}.lead{max-width:490px;color:#999;font-size:15px;line-height:1.9}.scroll{display:inline-flex;align-items:center;gap:12px;margin-top:35px;color:#ddd;font-size:11px;text-transform:uppercase;letter-spacing:.16em}.scroll span{width:34px;height:34px;border:1px solid #555;border-radius:50%;display:grid;place-items:center}.hero-orbit{width:42vw;height:42vw;max-width:620px;max-height:620px;min-width:330px;min-height:330px;position:absolute;right:-5vw;top:50%;transform:translateY(-50%);opacity:.8}.orbit{position:absolute;inset:10%;border:1px solid #333;border-radius:50%;animation:spin 24s linear infinite}.o2{inset:25%;border-color:#444;animation-direction:reverse;animation-duration:16s}.hero-heart{position:absolute;inset:0;display:grid;place-items:center;font-size:130px;color:#ddd;text-shadow:0 0 80px #aaa;animation:pulse 3s ease-in-out infinite}.floating-word{position:absolute;color:#777;font:italic 28px var(--serif)}.w1{top:10%;left:20%}.w2{bottom:15%;right:5%}.w3{top:48%;right:-2%;font-size:45px}.section-tag{font-size:9px;letter-spacing:.3em;color:#666;margin-bottom:55px}.letter{background:linear-gradient(180deg,#080808,#111)}.letter-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:9vw;align-items:start}.letter-title h3,.photo-heading h3,.story h3{font:500 clamp(55px,7vw,100px)/.8 var(--serif);margin:20px 0}.letter-paper{background:#e9e9e7;color:#161616;min-height:580px;padding:70px 8%;position:relative;box-shadow:30px 35px 100px #000;transform:rotate(-1deg)}.paper-mark{font:30px var(--serif);color:#777}.note-text{white-space:pre-line;font:500 20px/1.65 var(--serif);margin-top:25px}.signature{font:italic 24px var(--serif);margin-top:30px}.photos{background:#0c0c0c}.photo-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:60px}.photo-heading p{max-width:310px;color:#777;line-height:1.7;font-size:12px}.gallery{display:grid;grid-template-columns:1.05fr .75fr 1.1fr;grid-template-rows:300px 370px;gap:22px}.photo{margin:0;position:relative;overflow:hidden;border:1px solid #333;background:#151515;padding:8px;box-shadow:0 20px 70px #000}.photo img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(100%);transition:1s;}.photo:hover img{filter:grayscale(0%);transform:scale(1.04)}.photo figcaption{position:absolute;bottom:16px;left:18px;color:#eee;font:italic 17px var(--serif);text-shadow:0 2px 12px #000}.p1{grid-row:1/3}.p2{transform:translateY(35px)}.p3{grid-column:3;grid-row:1/3}.p4{grid-column:2;transform:translateY(25px)}.story{min-height:100vh}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.story-grid p{color:#777;max-width:350px;line-height:1.8}.story-note{white-space:pre-line;border-left:1px solid #333;padding:30px 0 30px 50px;color:#aaa;font:20px/1.8 var(--serif)}.forever{white-space:pre-line;margin-top:110px;padding:65px;border-top:1px solid #222;border-bottom:1px solid #222;text-align:center;font:italic 30px/1.5 var(--serif);color:#ddd}footer{text-align:center;padding:110px 20px 70px;background:#030303;border-top:1px solid #171717}.footer-heart{font-size:45px;animation:pulse 2.5s infinite}footer h4{font:500 38px var(--serif);margin:15px 0}footer p{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#555}footer span{display:block;margin-top:35px;font-size:9px;letter-spacing:.3em;color:#666}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;background:#eee;color:#111;padding:13px 20px;border-radius:999px;font-size:11px;z-index:100;transition:.4s}.toast.show{opacity:1;transform:translate(-50%,0)}.reveal{opacity:0;transform:translateY(35px);transition:1s ease}.reveal.visible{opacity:1;transform:none}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shine{0%{transform:translateX(-110%)}35%,100%{transform:translateX(110%)}}@keyframes float{0%{transform:translateY(105vh) rotate(0);opacity:0}15%{opacity:.3}85%{opacity:.12}100%{transform:translateY(-10vh) rotate(180deg);opacity:0}}@media(max-width:800px){.navlinks{display:none}.section{padding:100px 6vw}.hero{display:block;padding-top:150px}.hero h2{font-size:74px}.hero-orbit{position:relative;right:auto;top:auto;transform:none;width:85vw;height:85vw;margin:20px auto -60px}.letter-layout,.story-grid{grid-template-columns:1fr}.letter-paper{margin-top:10px;padding:45px 8%;min-height:auto}.photo-heading{display:block}.gallery{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:260px 260px 260px}.p1,.p3{grid-row:auto}.p1{grid-column:1}.p2{grid-column:2;transform:none}.p3{grid-column:1;grid-row:2}.p4{grid-column:2;grid-row:2;transform:none}.gate-card{padding:45px 25px}.gate-actions{flex-direction:column}.btn{width:100%}}

/* Our Developers */
.dev-link{border:0;background:none;color:#777;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.15em;cursor:pointer;padding:0}.dev-link:hover{color:#fff}.dev-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:24px}.dev-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(12px)}.dev-card{width:min(650px,100%);padding:62px 52px;text-align:center;border:1px solid rgba(255,255,255,.16);border-radius:30px;background:linear-gradient(145deg,rgba(25,25,25,.96),rgba(7,7,7,.98));box-shadow:0 40px 120px #000;position:relative;overflow:hidden;animation:devIn .55s cubic-bezier(.2,.8,.2,1)}.dev-close{position:absolute;right:20px;top:16px;width:38px;height:38px;border-radius:50%;border:1px solid #444;background:#111;color:#aaa;font-size:25px;cursor:pointer}.dev-close:hover{color:#fff;border-color:#777}.dev-icon{width:76px;height:76px;border:1px solid #555;border-radius:22px;display:grid;place-items:center;margin:0 auto 24px;color:#ddd;font:600 19px var(--sans);box-shadow:inset 0 0 30px rgba(255,255,255,.04),0 0 50px rgba(255,255,255,.05)}.dev-card h3{font:500 clamp(48px,7vw,76px)/.9 var(--serif);margin:15px 0 30px}.dev-card h3 em{color:#aaa}.dev-text{white-space:pre-line;color:#aaa;font:20px/1.7 var(--serif);max-width:500px;margin:auto}.dev-signature{margin-top:30px;color:#777;font:italic 18px var(--serif)}.from-sprinkle{margin-top:45px;font:italic 24px var(--serif);color:#aaa;letter-spacing:.02em}@keyframes devIn{from{opacity:0;transform:translateY(25px) scale(.96)}to{opacity:1;transform:none}}@media(max-width:800px){.dev-card{padding:55px 25px}.dev-text{font-size:18px}}

/* Audio control, intentionally subtle */
#loveAudio{position:fixed;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}

body.modal-open{overflow:hidden}
