:root{--violet:#5b21b6;--deep:#2e1065;--soft:#ede9fe;--ink:#211638;--white:#fff;--line:rgba(91,33,182,.15)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:Manrope,sans-serif;overflow-x:hidden}body::before{content:"";position:fixed;inset:0;pointer-events:none;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");mix-blend-mode:multiply}.ambient{position:fixed;width:45vw;height:45vw;border-radius:50%;filter:blur(100px);opacity:.12;pointer-events:none}.ambient-one{background:#7c3aed;top:-20vw;right:-15vw}.ambient-two{background:#c4b5fd;bottom:-20vw;left:-15vw}.topbar{position:absolute;z-index:5;top:0;left:0;width:100%;padding:28px clamp(22px,5vw,72px);display:flex;justify-content:space-between;align-items:center}.monogram{color:var(--deep);font:600 18px "Cormorant Garamond",serif;letter-spacing:.16em;text-decoration:none}.monogram span{color:#8b5cf6}.sound-toggle{border:1px solid var(--line);background:rgba(255,255,255,.7);backdrop-filter:blur(12px);color:var(--deep);border-radius:999px;padding:10px 15px;display:flex;gap:9px;align-items:center;font:500 12px Manrope;cursor:pointer}.sound-bars{height:13px;display:flex;align-items:center;gap:2px}.sound-bars i{display:block;width:2px;height:5px;background:#7c3aed}.sound-toggle[aria-pressed=true] i{animation:pulse .7s infinite alternate}.sound-toggle[aria-pressed=true] i:nth-child(2){animation-delay:.2s}.sound-toggle[aria-pressed=true] i:nth-child(3){animation-delay:.4s}@keyframes pulse{to{height:13px}}
.hero{min-height:100svh;padding:130px 24px 70px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative;isolation:isolate;background:radial-gradient(circle at 50% 48%,#f3e8ff 0,rgba(245,243,255,.6) 28%,transparent 58%)}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:600;color:#7c3aed}.hero h1{font:600 clamp(68px,12vw,160px)/.76 "Cormorant Garamond",serif;letter-spacing:-.055em;margin:30px 0 36px;color:var(--deep)}.hero h1 em{font-weight:500;color:#7c3aed}.hero-copy{font:500 clamp(18px,2vw,24px)/1.6 "Cormorant Garamond",serif;max-width:590px;color:#584a70}.scroll-cue{margin-top:42px;color:#5b21b6;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:13px;text-transform:uppercase;letter-spacing:.16em;font-size:11px}.scroll-cue b{font-size:20px;animation:float 1.8s ease-in-out infinite}@keyframes float{50%{transform:translateY(6px)}}.hero-orbit{position:absolute;width:min(78vw,680px);aspect-ratio:1;border:1px solid var(--line);border-radius:50%;z-index:-1;animation:rotate 24s linear infinite}.hero-orbit span{position:absolute;width:7px;height:7px;border-radius:50%;background:#8b5cf6;box-shadow:0 0 22px #8b5cf6}.hero-orbit span:nth-child(1){top:8%;left:25%}.hero-orbit span:nth-child(2){right:4%;top:52%}.hero-orbit span:nth-child(3){bottom:10%;left:18%}@keyframes rotate{to{transform:rotate(360deg)}}
.anniversary-badge{display:flex;align-items:baseline;gap:8px;margin-bottom:20px;padding:10px 18px;border:1px solid rgba(91,33,182,.22);border-radius:999px;background:rgba(255,255,255,.72);box-shadow:0 12px 40px rgba(91,33,182,.09);color:#7c3aed}.anniversary-badge span{font:italic 17px "Cormorant Garamond",serif}.anniversary-badge strong{font-size:12px;letter-spacing:.18em;text-transform:uppercase}.anniversary-badge i{font-style:normal;font-size:16px}
.love-calendar{position:relative;padding:clamp(90px,12vw,160px) clamp(20px,6vw,90px);background:linear-gradient(180deg,#fff 0,#faf7ff 55%,#f3edff 100%);overflow:hidden}.love-calendar::before{content:"30";position:absolute;right:-15px;top:5px;font:600 clamp(180px,30vw,420px)/1 "Cormorant Garamond",serif;color:rgba(91,33,182,.035);pointer-events:none}.calendar-intro{position:relative;max-width:760px;margin:0 auto 60px;text-align:center}.calendar-intro h2{font:600 clamp(46px,7vw,86px)/.95 "Cormorant Garamond",serif;color:var(--deep);letter-spacing:-.04em;margin:24px 0}.calendar-intro h2 em{font-weight:500;color:#7c3aed}.calendar-intro>p:last-of-type{max-width:590px;margin:0 auto;color:#665a77;font:500 19px/1.7 "Cormorant Garamond",serif}.calendar-progress{max-width:430px;margin:34px auto 0;color:#5b21b6;font-size:13px;font-weight:600}.progress-track{height:5px;margin-top:12px;border-radius:99px;background:#e8e0f5;overflow:hidden}.progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7c3aed,#a78bfa);transition:width .8s ease}.calendar-grid{position:relative;max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.day-card{position:relative;min-height:190px;padding:22px 18px;border:1px solid var(--line);background:rgba(255,255,255,.86);display:flex;flex-direction:column;text-align:left;color:var(--ink);font-family:inherit;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;overflow:hidden}.day-card.unlocked{cursor:pointer}.day-card.unlocked:hover,.day-card.unlocked:focus-visible{transform:translateY(-5px);box-shadow:0 20px 55px rgba(91,33,182,.13);border-color:rgba(91,33,182,.35);outline:none}.day-card.today{border-color:#8b5cf6;box-shadow:inset 0 0 0 1px #8b5cf6}.day-number{font:600 14px "Cormorant Garamond",serif;color:#8b5cf6;letter-spacing:.08em}.day-icon{margin:auto 0 13px;font-size:27px;color:#7c3aed}.day-reason{margin:0;color:#493c5e;font:600 18px/1.35 "Cormorant Garamond",serif}.day-card.locked{background:rgba(246,242,252,.72);color:#958aa4}.day-card.locked .day-number{color:#9c92a9}.day-card.locked .day-icon{color:#b8afc3}.day-date{margin:0;font-size:11px;line-height:1.4;color:#91869f;text-transform:uppercase;letter-spacing:.1em}.day-card.is-open{background:linear-gradient(150deg,#5b21b6,#7c3aed);border-color:transparent;box-shadow:0 24px 60px rgba(76,29,149,.25)}.day-card.is-open .day-number,.day-card.is-open .day-icon,.day-card.is-open .day-reason{color:#fff}
.letter-section{position:relative;padding:clamp(90px,14vw,190px) 24px;background:linear-gradient(145deg,#2e1065,#4c1d95 55%,#6d28d9);color:white;overflow:hidden}.letter-section::after{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:-180px;top:-200px}.section-number{position:absolute;left:5vw;top:45px;color:rgba(255,255,255,.14);font:600 100px "Cormorant Garamond",serif}.letter{max-width:760px;margin:auto;padding:clamp(30px,6vw,80px);background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 40px 120px rgba(15,4,40,.35);position:relative}.letter::before{content:"";position:absolute;inset:12px;border:1px solid rgba(91,33,182,.16);pointer-events:none}.letter-kicker{color:#7c3aed;text-transform:uppercase;letter-spacing:.2em;font-size:11px}.letter h2{font:600 clamp(42px,7vw,72px)/1 "Cormorant Garamond",serif;color:var(--deep);margin:32px 0}.letter p:not(.letter-kicker):not(.signature){font:500 clamp(18px,2vw,22px)/1.75 "Cormorant Garamond",serif;color:#4c405e}.signature{font:italic 22px/1.5 "Cormorant Garamond",serif;margin-top:42px;color:#5b21b6}.signature strong{font-size:34px}
.reasons{padding:clamp(90px,13vw,170px) clamp(24px,7vw,100px);max-width:1400px;margin:auto}.reasons-head{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:start;margin-bottom:70px}.reasons h2{font:600 clamp(44px,6vw,78px)/.98 "Cormorant Garamond",serif;margin:0;color:var(--deep);letter-spacing:-.035em}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.reason-card{padding:38px 30px;min-height:310px;border:1px solid var(--line);background:linear-gradient(160deg,#fff,#faf7ff);display:flex;flex-direction:column;transition:.35s ease}.reason-card:hover{transform:translateY(-8px);box-shadow:0 24px 70px rgba(91,33,182,.12);border-color:rgba(91,33,182,.35)}.reason-card span{font:600 15px "Cormorant Garamond",serif;color:#8b5cf6}.reason-card h3{font:600 36px "Cormorant Garamond",serif;color:var(--deep);margin:auto 0 15px}.reason-card p{color:#665a77;line-height:1.7;margin:0;font-size:15px}
.promise{padding:80px 24px 130px}.promise-card{max-width:1100px;margin:auto;text-align:center;padding:clamp(60px,9vw,120px) clamp(25px,8vw,110px);border-radius:50% 50% 4px 4px / 22% 22% 4px 4px;background:#f6f2ff;border:1px solid var(--line)}blockquote{font:500 clamp(34px,5vw,62px)/1.2 "Cormorant Garamond",serif;color:var(--deep);margin:35px auto;max-width:900px}.infinity{font:500 60px "Cormorant Garamond",serif;color:#8b5cf6}
.finale{min-height:90svh;display:grid;place-items:center;text-align:center;padding:100px 24px;position:relative;overflow:hidden;background:var(--deep);color:white}.finale::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(139,92,246,.28),transparent 56%)}.finale-content{position:relative;z-index:2}.finale .eyebrow{color:#c4b5fd}.finale h2{font:600 clamp(48px,8vw,104px)/.9 "Cormorant Garamond",serif;margin:35px 0 50px;letter-spacing:-.04em}.finale h2 em{color:#c4b5fd;font-weight:500}.love-button{border:1px solid rgba(255,255,255,.45);background:white;color:var(--deep);border-radius:999px;padding:17px 25px;font:600 14px Manrope;cursor:pointer;transition:.3s ease}.love-button:hover{transform:scale(1.04);box-shadow:0 0 40px rgba(196,181,253,.4)}.secret-message{max-height:0;opacity:0;margin:0 auto;color:#e9d5ff;font:italic 24px "Cormorant Garamond",serif;transition:.6s ease;max-width:580px}.secret-message.show{max-height:120px;opacity:1;margin-top:28px}.spark{position:absolute;width:6px;height:6px;background:#ddd6fe;border-radius:50%;pointer-events:none;animation:spark 1.4s ease-out forwards}@keyframes spark{to{transform:translate(var(--x),var(--y)) scale(0);opacity:0}}footer{background:#1c0b3a;color:#c4b5fd;padding:25px clamp(24px,6vw,80px);display:flex;justify-content:space-between;font-size:11px;letter-spacing:.16em;text-transform:uppercase}.reveal{opacity:0;transform:translateY(25px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:980px){.calendar-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.topbar{padding:22px}.hero h1{font-size:74px}.hero-orbit{width:125vw}.calendar-grid{grid-template-columns:repeat(2,1fr);gap:10px}.day-card{min-height:165px;padding:18px 15px}.reasons-head{grid-template-columns:1fr;gap:15px}.reason-grid{grid-template-columns:1fr}.reason-card{min-height:240px}.letter{padding:42px 30px}.promise-card{border-radius:120px 120px 4px 4px}.finale h2{font-size:54px}footer{gap:20px;flex-direction:column;text-align:center}}@media(max-width:390px){.calendar-grid{grid-template-columns:1fr}.day-card{min-height:145px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
