:root{
 --ivory:#fbfaf7;--paper:#f3ead9;--paper2:#fffdf8;--ink:#302b2b;--muted:#7f7471;--rose:#c49aa4;--rose2:#ead7dc;--champ:#b99b62;--gold:#c7aa72;--line:rgba(75,58,48,.14);--shadow:0 25px 70px rgba(66,49,43,.15);--serif:var(--font-ar);--ruqaa:var(--font-ruqaa);--ui:var(--font-ui);--en:var(--font-en)
}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--ivory)}body{font-family:var(--ui);color:var(--ink);background:var(--ivory);overflow-x:hidden;line-height:1.8}body.locked{overflow:hidden}.grain{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.035;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='.6'/%3E%3C/svg%3E")}.cursor{position:fixed;width:30px;height:30px;border:1px solid rgba(185,155,98,.5);border-radius:50%;z-index:10000;pointer-events:none;transform:translate(-50%,-50%);transition:width .2s,height .2s;mix-blend-mode:multiply}.preloader{position:fixed;inset:0;background:#faf7f0;z-index:12000;display:grid;place-items:center;transition:opacity .7s,visibility .7s}.preloader.hide{opacity:0;visibility:hidden}.preloader-mark{width:66px;height:66px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font:32px var(--en);color:var(--gold);animation:prePulse 1.4s infinite}.preloader p{position:absolute;transform:translateY(58px);font:20px var(--ruqaa);color:#74665d}@keyframes prePulse{50%{transform:scale(1.08);box-shadow:0 0 0 12px rgba(199,170,114,.08)}}
#petals{position:fixed;inset:0;z-index:800;pointer-events:none;overflow:hidden}.petal{position:absolute;top:-40px;width:12px;height:17px;border-radius:65% 35% 65% 35%;background:linear-gradient(145deg,#fff,#eee9e1);box-shadow:0 2px 8px rgba(86,70,64,.12),inset -2px -2px 3px rgba(177,158,145,.18);transform:rotate(25deg)}.petal:before,.petal:after{content:"";position:absolute;background:inherit;width:75%;height:75%;border-radius:70% 30% 70% 30%;top:15%}.petal:before{left:-35%;transform:rotate(-28deg)}.petal:after{right:-35%;transform:rotate(28deg)}
.intro{position:fixed;inset:0;z-index:1000;overflow:hidden;background:radial-gradient(circle at 50% 46%,#fff 0,#f7f1eb 35%,#ebe1dc 100%);display:grid;place-items:center}.intro.done{display:none}.intro-light{position:absolute;width:55vw;height:55vw;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.9),rgba(255,255,255,0));filter:blur(5px)}.stage-stars:before{content:"✦  ·  ✧   ·   ✦    ·    ❋";position:absolute;inset:8% 5%;color:rgba(181,155,105,.38);font-size:24px;letter-spacing:32px;line-height:3;animation:stars 8s linear infinite}@keyframes stars{to{transform:translateY(30px)}}.curtain{position:absolute;top:0;bottom:0;width:52%;background:linear-gradient(90deg,#d9c3c8 0,#f9f6f1 18%,#d8c1c7 34%,#fff 50%,#d1b8bf 68%,#f6f0ec 83%,#c9afb7 100%);box-shadow:inset 0 0 50px rgba(90,63,67,.16),0 0 35px rgba(80,60,60,.08);transition:transform 1.7s cubic-bezier(.77,0,.18,1);z-index:10}.curtain:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(120,90,95,.12) 0 18px,rgba(255,255,255,.35) 18px 37px,rgba(120,90,95,.1) 37px 55px);mix-blend-mode:multiply;opacity:.5}.curtain-left{left:0;transform-origin:left}.curtain-right{right:0;transform-origin:right}.intro.opening .curtain-left{transform:translateX(-102%)}.intro.opening .curtain-right{transform:translateX(102%)}.intro-center{position:relative;z-index:20;text-align:center;width:min(560px,90vw)}.intro-date,.intro-footer,.eyebrow{font:500 12px var(--en);letter-spacing:.2em;color:#9b8a82}.intro-eyebrow{margin:16px 0 12px;color:#847772;font:20px var(--ruqaa)}.intro-center h1{font:52px var(--ruqaa);line-height:1.15;font-weight:700;margin-top:0;color:#332e2e}.intro-center h1 em{font-style:normal;color:#b88f9b}.heart-button{position:relative;width:142px;height:142px;border:0;background:transparent;cursor:pointer;margin:8px auto 0;display:grid;place-items:center;touch-action:manipulation}.heart-core{width:94px;height:94px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#eadfe0);box-shadow:0 16px 35px rgba(107,83,83,.16),inset 0 1px 0 #fff;font-size:68px;line-height:1;color:#bd929d;animation:heartBeat 1.25s infinite}.heart-halo{position:absolute;border:1px solid rgba(185,155,98,.35);border-radius:50%;inset:17px;animation:halo 2.4s infinite}.halo-2{inset:2px;animation-delay:.7s}@keyframes heartBeat{0%,100%{transform:scale(1)}12%{transform:scale(1.09)}22%{transform:scale(.98)}32%{transform:scale(1.05)}}@keyframes halo{0%{transform:scale(.8);opacity:.7}100%{transform:scale(1.3);opacity:0}}.heart-button.pressed .heart-core{animation:none;transform:scale(1.25);box-shadow:0 0 0 25px rgba(205,173,180,.12),0 0 80px rgba(199,170,114,.3)}.spark{position:absolute;color:var(--gold);font-size:22px;animation:floatSpark 2s infinite}.spark-a{top:7px;right:15px}.spark-b{bottom:22px;left:7px;animation-delay:.5s}.spark-c{top:38px;left:0;animation-delay:1s}@keyframes floatSpark{50%{transform:translateY(-10px) rotate(20deg);opacity:.45}}.intro-hint{margin-top:25px;color:#8b7d78;font:20px var(--ruqaa)}.intro-hint span{color:var(--gold);padding:0 10px}.intro-footer{position:absolute;bottom:24px;z-index:20;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:9px}.intro-botanical{position:absolute;width:250px;height:380px;bottom:-40px;z-index:15;opacity:.82}.botanical-left{left:-10px;transform:scaleX(-1)}.botanical-right{right:-10px}.botanical-stem{position:absolute;bottom:0;left:50%;width:3px;height:85%;background:linear-gradient(#9d9c87,#c8c0ac);transform:rotate(12deg);transform-origin:bottom}.white-rose{position:absolute;width:65px;height:65px;border-radius:50%;background:radial-gradient(circle at 50% 48%,#b9aaa0 0 5%,transparent 6%),radial-gradient(circle at 35% 35%,#fff 0 29%,#e9e5df 31% 44%,#fff 46% 62%,#ded9d1 64% 100%);box-shadow:0 8px 18px rgba(86,72,67,.13)}.white-rose:before,.white-rose:after{content:"";position:absolute;inset:9px;border-radius:50%;border:8px solid rgba(255,255,255,.9);transform:rotate(35deg)}.white-rose:after{transform:rotate(-35deg);border-color:rgba(220,215,208,.65)}.intro-botanical .r1{bottom:235px;left:72px}.intro-botanical .r2{bottom:175px;left:118px;transform:scale(.68)}.intro-botanical .l1{position:absolute;bottom:150px;left:80px}.intro-botanical .l2{position:absolute;bottom:105px;left:145px}.leaf{width:72px;height:26px;background:linear-gradient(90deg,#b5b39e,#e0ddce);border-radius:100% 0 100% 0;display:block;transform:rotate(-30deg);position:absolute}.intro-botanical .l1{transform:rotate(28deg)}.intro-botanical .l2{transform:rotate(-36deg)}
.site{opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity 1.1s,transform 1.1s,visibility 1.1s}.site.visible{opacity:1;visibility:visible;transform:none}.topbar{position:fixed;top:0;left:0;right:0;height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:rgba(251,250,247,.76);backdrop-filter:blur(16px);border-bottom:1px solid rgba(88,70,61,.08);z-index:500}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.brand span{width:35px;height:35px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font:18px var(--en);color:#9b8050}.brand b{font:21px var(--ruqaa)}.top-date{font:11px var(--en);letter-spacing:.18em;color:#887b74}.music-control{border:1px solid rgba(111,91,79,.18);background:#fffdf9;border-radius:99px;height:38px;padding:0 15px;display:flex;align-items:center;gap:5px;color:#776a65;font:12px var(--ui);cursor:pointer}.music-control i{width:2px;height:10px;background:#b39b72;display:block}.music-control.playing i:nth-child(1){animation:eq .65s infinite}.music-control.playing i:nth-child(2){animation:eq .5s .12s infinite}.music-control.playing i:nth-child(3){animation:eq .75s .05s infinite}@keyframes eq{50%{height:19px}}
.scene{min-height:100svh;position:relative;overflow:hidden}.hero{display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,#fff 0,#f8f3ed 48%,#eee4df 100%);padding:110px 6vw 70px}.hero-inner{text-align:center;position:relative;z-index:3}.hero-inner h2{font:700 clamp(48px,8vw,102px) var(--ruqaa);line-height:.98;margin:22px 0}.hero-inner h2 span{color:#ae8892}.hero-inner h2 em{font-style:normal;color:#8f7771}.hero-copy{font:21px/2 var(--ruqaa);color:#766a65}.hero-watermark{position:absolute;right:5vw;bottom:5vh;font:42vw/1 var(--en);color:rgba(187,158,102,.07)}.hero-moon{position:absolute;width:46vw;height:46vw;border-radius:50%;border:1px solid rgba(188,161,112,.25);box-shadow:0 0 0 45px rgba(188,161,112,.025)}.hero-ring{position:absolute;border:1px solid rgba(178,148,113,.2);border-radius:50%;animation:slowSpin 20s linear infinite}.ring-one{width:65vw;height:65vw}.ring-two{width:80vw;height:80vw;animation-duration:30s;animation-direction:reverse}@keyframes slowSpin{to{transform:rotate(360deg)}}.hero-stamp{position:absolute;left:6vw;bottom:9vh;width:105px;height:105px;border:1px dashed rgba(167,138,92,.65);border-radius:50%;display:grid;place-items:center;align-content:center;line-height:1;color:#9b8050;transform:rotate(-8deg);z-index:3}.hero-stamp span{font:35px var(--en)}.hero-stamp small,.hero-stamp b{font:9px var(--en);letter-spacing:.2em}.scroll-cue{margin-top:38px;display:inline-flex;flex-direction:column;align-items:center;gap:8px;color:#8c7d76;text-decoration:none;font:13px var(--ruqaa)}.scroll-cue i{width:1px;height:42px;background:#b89d75;position:relative}.scroll-cue i:after{content:"";position:absolute;width:6px;height:6px;border-right:1px solid #b89d75;border-bottom:1px solid #b89d75;transform:rotate(45deg);bottom:0;left:-3px}.hero-botanical{position:absolute;right:4vw;bottom:-10px;width:270px;height:430px;opacity:.65}.hero-botanical .stem{position:absolute;width:3px;height:100%;left:55%;bottom:0;background:#bbb9a7;transform:rotate(-9deg)}.hero-botanical .r1{bottom:290px;right:50px}.hero-botanical .r2{bottom:200px;right:115px;transform:scale(.7)}.hero-botanical .r3{bottom:135px;right:40px;transform:scale(.5)}.hero-botanical .l1,.hero-botanical .l2,.hero-botanical .l3{position:absolute;width:85px;height:28px;background:#c5c4b3;border-radius:100% 0 100% 0}.hero-botanical .l1{bottom:220px;right:115px;transform:rotate(-30deg)}.hero-botanical .l2{bottom:170px;right:30px;transform:rotate(25deg)}.hero-botanical .l3{bottom:105px;right:105px;transform:rotate(-35deg)}
.section-light{background:var(--ivory)}.container{width:min(1180px,90vw);margin:auto}.birthday{padding:130px 0;background:linear-gradient(180deg,#fffdfa,#f7f1eb)}.birthday-grid,.memory-grid,.letter-grid,.calendar-layout{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.copy h2{font:700 clamp(42px,6vw,74px) var(--ruqaa);line-height:1.1;margin:12px 0 24px}.copy h2 em{font-style:normal;color:#aa8590}.copy>p:not(.eyebrow){font:20px/2 var(--ruqaa);color:#6f6460;max-width:600px}.signature{margin-top:25px;font:22px var(--ruqaa);color:#9c7d82}.signature span{color:#b99b62}.age-art{height:470px;display:grid;place-items:center;position:relative}.age-circle{width:min(360px,70vw);aspect-ratio:1;border:1px solid rgba(188,157,103,.55);border-radius:50%;display:grid;place-items:center;align-content:center;position:relative;background:radial-gradient(circle,#fff,#f3e9e2);box-shadow:0 30px 70px rgba(75,58,49,.1)}.age-circle:before,.age-circle:after{content:"";position:absolute;inset:22px;border:1px dashed rgba(187,155,99,.38);border-radius:50%}.age-circle:after{inset:65px;border:1px solid rgba(190,161,111,.16)}.age-circle small,.age-circle span{font:10px var(--en);letter-spacing:.25em;color:#9d8a80}.age-circle strong{font:130px/.9 var(--en);font-weight:400;color:#b99866}.age-caption{position:absolute;bottom:20px;font:15px var(--en);letter-spacing:.18em;color:#8f8179}.paper-doodle{position:absolute;color:rgba(186,155,101,.35);font-size:70px}.doodle-a{top:15%;right:4%}.doodle-b{bottom:12%;left:4%}
.memory{padding:130px 0;background:#f0e9e3}.memory-grid{min-height:75vh}.memory.reverse{background:#f7f2ec}.photo-card{position:relative}.photo-frame{background:#fff;padding:15px 15px 48px;box-shadow:var(--shadow);transform:rotate(-2deg);position:relative}.photo-card:nth-child(even) .photo-frame{transform:rotate(2deg)}.photo-frame img{width:100%;height:550px;display:block;object-fit:cover;background:#eee8e1}.photo-number{position:absolute;bottom:13px;left:18px;font:11px var(--en);letter-spacing:.15em;color:#a28b7d}.photo-card figcaption{font:20px var(--ruqaa);position:absolute;bottom:-1px;right:25px;color:#7a6b64}.copy blockquote{margin-top:35px;padding-right:22px;border-right:2px solid var(--gold);font:24px var(--ruqaa);color:#9c7c83}.word-mark{margin-top:30px;font:italic 55px var(--en);color:rgba(177,145,106,.35)}
.gallery{padding:120px 0;background:#fffdfa}.gallery-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:45px}.gallery-head h2{font:700 clamp(40px,5vw,65px) var(--ruqaa);line-height:1.05;margin-top:8px}.gallery-head h2 em{font-style:normal;color:#a9858e}.gallery-note{text-align:left;font:15px/1.9 var(--ruqaa);color:#887a74}.gallery-stage{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;cursor:grab;touch-action:pan-x;overscroll-behavior-x:contain}.gallery-stage:active{cursor:grabbing}.gallery-stage::-webkit-scrollbar{display:none}.gallery-track{display:flex;gap:24px;width:max-content;padding:18px 4px 40px}.gallery-card{width:310px;background:#fff;padding:11px;box-shadow:0 20px 50px rgba(76,58,48,.12);transform:rotate(var(--r,-1deg));transition:transform .45s,box-shadow .45s;cursor:pointer}.gallery-card:nth-child(2n){--r:2deg}.gallery-card:nth-child(3n){--r:-3deg}.gallery-card:hover{transform:translateY(-12px) rotate(0) scale(1.015);box-shadow:0 35px 75px rgba(76,58,48,.18)}.gallery-card img{width:100%;height:390px;object-fit:cover;display:block;background:#eee8e1}.gallery-card figcaption{padding:13px 5px 5px;font:18px var(--ruqaa);display:flex;gap:10px;align-items:center}.gallery-card figcaption span{font:10px var(--en);color:#a68d63}.gallery-controls{display:flex;align-items:center;gap:20px;width:min(520px,100%);margin:auto}.gallery-controls button{width:48px;height:48px;border-radius:50%;border:1px solid rgba(110,86,70,.2);background:#fff;color:#766862;cursor:pointer;font-size:22px}.gallery-progress{height:1px;background:#e2d8ce;flex:1}.gallery-progress span{display:block;width:14%;height:2px;background:#b89a69;transition:width .45s}
.quote{display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,#fff,#f0e7e1);padding:90px 5vw}.quote-watermark{position:absolute;font:55vw/.7 var(--en);color:rgba(181,149,107,.045)}.quote-card{width:min(820px,90vw);padding:75px 8vw;background:rgba(255,253,248,.8);border:1px solid rgba(168,140,99,.22);box-shadow:var(--shadow);position:relative;text-align:center}.quote-card:before{content:"";position:absolute;inset:13px;border:1px solid rgba(168,140,99,.13);pointer-events:none}.quote-mark{font:100px/.5 var(--en);color:#b99b68}.quote-card p{font:28px/2.05 var(--ruqaa);color:#655a56}.quote-card b{display:block;margin-top:25px;font:25px var(--ruqaa);color:#a17e87}
.letter-section{padding:130px 0;background:linear-gradient(180deg,#fffdfa,#f1e9e2);position:relative}.letter-stage{min-height:620px;display:grid;place-items:center;perspective:1500px}.envelope-button{border:0;background:transparent;cursor:pointer;position:relative;width:min(480px,86vw);height:500px;touch-action:manipulation}.envelope-shadow{position:absolute;width:76%;height:40px;bottom:44px;left:12%;background:rgba(72,57,48,.16);filter:blur(18px);border-radius:50%}.envelope{position:absolute;left:50%;top:50%;width:90%;height:62%;transform:translate(-50%,-50%);transform-style:preserve-3d;transition:transform 1s cubic-bezier(.2,.75,.2,1);filter:drop-shadow(0 25px 30px rgba(73,55,48,.15))}.envelope-back,.envelope-front{position:absolute;inset:0;background:linear-gradient(145deg,#fffefa,#eae2d8);border:1px solid rgba(147,117,81,.25);border-radius:6px}.envelope-back:before,.envelope-front:before{content:"";position:absolute;inset:10px;border:1px solid rgba(184,151,101,.28)}.envelope-front{clip-path:polygon(0 0,50% 58%,100% 0,100% 100%,0 100%);background:linear-gradient(145deg,#fffdf8,#e4d9cd);z-index:4}.envelope-flap{position:absolute;z-index:5;left:0;right:0;top:0;height:64%;background:linear-gradient(145deg,#fffefa,#e8dfd5);clip-path:polygon(0 0,100% 0,50% 74%);transform-origin:top center;transition:transform .85s cubic-bezier(.2,.7,.2,1);border-top:1px solid rgba(147,117,81,.25);backface-visibility:hidden}.letter-teaser{position:absolute;z-index:3;width:70%;height:76%;left:15%;top:12%;background:#f7efdf;border:1px solid #c8ae7e;box-shadow:0 10px 20px rgba(68,51,43,.1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:transform 1.15s cubic-bezier(.18,.8,.18,1),opacity .5s}.letter-teaser small{font:9px var(--en);letter-spacing:.25em;color:#9c8257}.letter-teaser strong{font:45px var(--ruqaa);color:#806a5e}.letter-teaser b{font:9px var(--en);letter-spacing:.15em;color:#a68b61}.envelope-lace{position:absolute;z-index:6;width:72%;height:1px;background:#b69a6a;left:14%;opacity:.55}.lace-one{top:50%}.lace-two{top:50%;transform:rotate(90deg)}.wax-seal{position:absolute;z-index:8;left:50%;top:50%;width:80px;height:80px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d9d0c4);border:2px solid #b79b6a;box-shadow:0 8px 18px rgba(73,54,44,.22);display:grid;place-items:center;color:#92774d;transition:transform .35s,opacity .35s}.wax-seal b{font:31px var(--en);border:1px solid #a98b5b;border-radius:50%;width:48px;height:48px;display:grid;place-items:center}.wax-seal i{position:absolute;width:11px;height:4px;background:#9f8460;transform:rotate(-35deg);right:13px;bottom:18px;border-radius:3px}.envelope-hint{position:absolute;bottom:12px;left:0;right:0;color:#9b8178;font:18px var(--ruqaa);animation:hint 1.6s infinite}@keyframes hint{50%{transform:translateY(-5px);opacity:.55}}.envelope-button.opened .envelope-flap{transform:rotateX(178deg)}.envelope-button.opened .letter-teaser{transform:translateY(-135%) rotateX(-5deg) scale(.96)}.envelope-button.opened .wax-seal{transform:translate(-50%,-50%) scale(1.25) rotate(12deg);opacity:0}.envelope-button.opened .envelope{transform:translate(-50%,-50%) rotateX(2deg) scale(.98)}.envelope-button.opened .envelope-hint{opacity:0}
.letter-modal{position:fixed;inset:0;z-index:11000;display:grid;place-items:center;padding:4dvh 3vw;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}.letter-modal.open{opacity:1;visibility:visible}.letter-backdrop{position:absolute;inset:0;background:rgba(43,35,32,.72);backdrop-filter:blur(13px)}.letter-dialog{position:relative;width:min(940px,94vw);height:min(900px,92dvh);max-height:92dvh;z-index:2;display:flex;flex-direction:column;align-items:center;min-height:0}.modal-caption{height:42px;display:flex;align-items:center;justify-content:center;gap:18px;color:#fff;position:relative;z-index:3;font:11px var(--en);letter-spacing:.18em;flex:0 0 42px}.modal-caption b{font:18px var(--ruqaa);letter-spacing:0;color:#f7eee5}.letter-close{position:absolute;z-index:20;top:-4px;right:-4px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.16);color:#fff;cursor:pointer;font:28px/1 Arial;display:flex;align-items:center;justify-content:center;gap:6px}.letter-close span{display:none}.scroll-paper{width:min(780px,90vw);height:calc(100% - 78px);min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bda77d transparent;position:relative;padding:40px 30px 60px;background:linear-gradient(90deg,rgba(177,144,91,.12),transparent 4%,transparent 96%,rgba(177,144,91,.12)),#efe4d2;box-shadow:0 35px 100px rgba(0,0,0,.35);border:1px solid rgba(197,164,103,.5);transform:perspective(1300px) rotateX(7deg) translateY(35px) scale(.94);opacity:0;transition:transform 1s cubic-bezier(.2,.75,.15,1),opacity .65s}.letter-modal.open .scroll-paper{transform:perspective(1300px) rotateX(0) translateY(0) scale(1);opacity:1}.scroll-paper:before{content:"";position:absolute;inset:20px;border:1px solid rgba(137,108,69,.22);pointer-events:none}.old-letter{position:relative;z-index:2;width:100%;min-height:100%;padding:55px clamp(25px,6vw,75px);background:radial-gradient(circle at 50% 10%,rgba(255,255,255,.62),transparent 45%),linear-gradient(90deg,#f1e6d4,#fbf5e8 10%,#f8efdf 90%,#eadcc7);border:1px solid rgba(125,96,58,.22);box-shadow:inset 0 0 45px rgba(122,92,55,.08)}.old-letter:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 33px,rgba(132,102,69,.045) 34px);pointer-events:none}.paper-corner{position:absolute;color:#a88a5b;font:38px var(--ruqaa);opacity:.55}.corner-tl{top:18px;left:20px;transform:rotate(-45deg)}.corner-tr{top:18px;right:20px;transform:rotate(45deg)}.corner-bl{bottom:18px;left:20px;transform:rotate(-135deg)}.corner-br{bottom:18px;right:20px;transform:rotate(135deg)}.ornament{text-align:center;color:#b29361;font:34px var(--ruqaa);letter-spacing:8px}.old-letter-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;margin:15px 0 35px;color:#947b63;font:10px var(--en);letter-spacing:.13em}.old-letter-head i{height:1px;background:#c1a77b}.old-letter-head span:last-child{text-align:left}.old-letter-head b{font:18px var(--ruqaa);letter-spacing:0;color:#7d675c}.old-letter-body{position:relative}.old-letter-body p{font:22px/2.15 var(--ruqaa);color:#4e4540;margin:0 0 18px}.old-letter-body .salutation{font-size:30px;color:#856d63}.old-letter-body h3{font:700 34px var(--ruqaa);color:#876873;margin:8px 0 22px}.old-letter-body strong{color:#8f6570}.old-signature{text-align:center;margin:32px 0 10px;color:#805e66}.signature-line{display:block;font:42px var(--ruqaa)}.old-signature small{font:13px var(--ruqaa);color:#9b8378}.bottom-ornament{margin-top:18px}.old-letter footer{text-align:center;margin-top:25px;color:#a08c78;font:9px var(--en);letter-spacing:.16em}.scroll-roll{height:42px;width:calc(100% + 24px);background:linear-gradient(#d8c6a9,#f3e7d2,#c4ae8a);border:1px solid #a88c5f;box-shadow:0 8px 20px rgba(50,40,33,.2);border-radius:50%;position:relative;z-index:5;flex:0 0 42px}.scroll-roll span{display:block;height:12px;width:75%;margin:14px auto;border-radius:50%;border-top:2px solid rgba(103,78,48,.25);border-bottom:2px solid rgba(255,255,255,.5)}.roll-top{margin-bottom:-20px}.roll-bottom{margin-top:-20px}.letter-bottom-close{flex:0 0 40px;margin-top:10px;border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.12);color:#fff;border-radius:99px;padding:5px 18px;cursor:pointer;font:14px var(--ruqaa)}
.calendar-section{padding:130px 0;background:#eee6df}.calendar{background:#fffdf8;border:1px solid rgba(147,116,79,.18);box-shadow:var(--shadow);padding:35px;position:relative}.calendar header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:18px}.calendar header span{font:10px var(--en);letter-spacing:.2em;color:#a28a7c}.calendar header strong{display:block;font:32px var(--en);color:#9c8050}.calendar header>b{font-size:34px;color:#b18f98}.week,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week{margin:20px 0 8px}.week span{text-align:center;font:9px var(--en);color:#9c8c82}.day{min-height:48px;display:grid;place-items:center;border:1px solid transparent;font:15px var(--en);color:#675d58;position:relative}.day.birthday{background:#f1e2e4;border-color:#c39ca5;border-radius:50%;color:#875f69}.day.birthday i{position:absolute;font-style:normal;color:#b58e98;font-size:10px;bottom:1px}.calendar aside{margin-top:25px;padding:15px;background:#f8f0e9;display:flex;gap:18px;align-items:center}.calendar aside strong{font:48px var(--en);color:#ad8a5e}.calendar aside p{font:17px var(--ruqaa);color:#766964}.final{padding:130px 0 110px;text-align:center;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#fff,#f4ebe7)}.final-inner{position:relative;z-index:2}.final-bouquet{height:100px;position:relative;margin-bottom:10px}.final-bouquet .white-rose{left:50%;transform:translateX(-50%) scale(.9)}.final-bouquet .small{left:42%;top:35px;transform:scale(.45)}.final-bouquet .leaf{left:60%;top:48px;transform:rotate(-20deg)}.final h2{font:700 clamp(45px,7vw,85px) var(--ruqaa);line-height:1.05}.final h2 em{font-style:normal;color:#a7808a}.final p{font:21px/2 var(--ruqaa);color:#716660;margin:25px 0}.final-date{display:flex;justify-content:center;align-items:center;gap:15px;color:#9a805a;margin:35px 0}.final-date b{font:70px var(--en);font-weight:400}.final-date span{font:11px var(--en);letter-spacing:.18em;text-align:left}.final-love{font:14px var(--en);letter-spacing:.08em;color:#a08780}.footer{min-height:75px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;background:#302a28;color:#e9dfd6;font:10px var(--en);letter-spacing:.14em}.footer b{font:22px var(--ruqaa);color:#fff}
.lightbox{position:fixed;inset:0;z-index:11500;background:rgba(35,29,27,.9);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.3s;padding:5vh 6vw}.lightbox.open{opacity:1;visibility:visible}.lightbox-content{width:min(850px,90vw);height:86vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px}.lightbox-content img{max-width:100%;max-height:78vh;object-fit:contain;box-shadow:0 30px 90px #000}.lightbox-content p{font:22px var(--ruqaa);color:#fff}.lightbox>button{position:absolute;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.08);color:#fff;border-radius:50%;width:50px;height:50px;font-size:32px;cursor:pointer;z-index:2}.lightbox #lightboxClose{top:22px;right:22px}.lightbox #lightboxPrev{left:24px;top:50%;transform:translateY(-50%)}.lightbox #lightboxNext{right:24px;top:50%;transform:translateY(-50%)}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.in-view{opacity:1;transform:none}.burst-particle{position:fixed;z-index:13000;pointer-events:none;color:#b89a69;font-size:18px;left:0;top:0}
@media(max-width:800px){.topbar{height:62px;padding:0 4vw}.top-date{display:none}.brand b{font-size:18px}.music-control span{display:none}.music-control{width:40px;padding:0;justify-content:center}.hero{padding-top:85px}.hero-inner h2{font-size:57px}.hero-copy{font-size:18px}.hero-stamp{width:80px;height:80px;left:4vw;bottom:6vh}.hero-stamp span{font-size:27px}.hero-botanical{right:-100px;opacity:.45}.birthday-grid,.memory-grid,.letter-grid,.calendar-layout{grid-template-columns:1fr;gap:55px}.copy{text-align:center}.copy>p:not(.eyebrow){margin:auto}.age-art{height:390px}.photo-frame img{height:450px}.gallery-head{display:block}.gallery-note{text-align:right;margin-top:15px}.gallery-card{width:275px}.gallery-card img{height:355px}.letter-section{padding:95px 0}.letter-stage{min-height:520px}.envelope{height:58%}.letter-modal{padding:2dvh 2vw}.letter-dialog{width:96vw;height:96dvh;max-height:96dvh}.modal-caption{height:35px;flex-basis:35px}.letter-close{top:0;right:0;width:44px;height:44px;background:rgba(40,32,28,.75)}.scroll-paper{width:94vw;height:calc(100% - 72px);padding:30px 12px 45px}.old-letter{padding:45px 24px 50px}.old-letter-head{grid-template-columns:1fr;gap:5px;text-align:center}.old-letter-head span:last-child{text-align:center}.old-letter-head i{display:none}.old-letter-body p{font-size:19px;line-height:2}.old-letter-body h3{font-size:28px}.signature-line{font-size:34px}.calendar{padding:20px}.day{min-height:42px}.footer{padding:18px 5vw;flex-wrap:wrap;gap:10px}.intro-center h1{font-size:48px}.intro-botanical{transform:scale(.7)}.botanical-left{transform:scaleX(-1) scale(.7)}.intro-footer{font-size:7px}.quote-card{padding:55px 28px}.quote-card p{font-size:21px}.lightbox{padding:5vh 2vw}.lightbox #lightboxPrev{left:5px}.lightbox #lightboxNext{right:5px}}
@media(max-width:430px){.intro-eyebrow{font-size:18px}.heart-button{width:125px;height:125px}.heart-core{width:86px;height:86px;font-size:60px}.hero-inner h2{font-size:49px}.hero-copy{font-size:16px}.age-circle strong{font-size:105px}.photo-frame img{height:390px}.envelope-button{height:440px}.old-letter{padding:42px 19px}.old-letter-body p{font-size:18px}.old-letter-body h3{font-size:26px}.paper-corner{font-size:28px}.calendar aside{gap:10px}.calendar aside p{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.petal,.cursor{display:none}}

/* =========================================================
   WHITE ROSE GARDEN + INTERACTIVE CALENDAR PATCH
   ========================================================= */
#petals{z-index:801}
.petal{background:radial-gradient(circle at 50% 22%,#ffffff 0 17%,#f8f6f2 18% 52%,#d9d4cd 53% 100%);border:1px solid rgba(157,143,132,.28);box-shadow:0 3px 11px rgba(83,70,64,.18),inset 0 1px 2px rgba(255,255,255,.95)}
.petal:before,.petal:after{border:1px solid rgba(150,137,126,.15)}

/* More visible botanical roses on the white theme */
.calendar-section,.final{isolation:isolate}
.calendar-roses,.final-rose-field{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.garden-rose{position:absolute;width:92px;height:92px;border-radius:50%;background:
 radial-gradient(circle at 50% 50%,#b7a99d 0 5%,transparent 6%),
 radial-gradient(circle at 50% 50%,#fff 0 22%,#eee9e1 23% 34%,#fff 35% 49%,#ddd7cf 50% 62%,#fff 63% 76%,#d4cec5 77% 100%);
 box-shadow:0 13px 30px rgba(74,61,55,.18),0 0 0 5px rgba(255,255,255,.55),0 0 35px rgba(185,155,98,.12);}
.garden-rose:before,.garden-rose:after{content:"";position:absolute;inset:14px;border-radius:50%;border:10px solid rgba(255,255,255,.92);transform:rotate(32deg)}
.garden-rose:after{transform:rotate(-32deg);border-color:rgba(213,207,199,.78)}
.garden-leaf{position:absolute;width:100px;height:34px;border-radius:100% 0 100% 0;background:linear-gradient(90deg,#8f987f,#dfe1d4);filter:drop-shadow(0 5px 8px rgba(70,70,60,.12));transform:rotate(-24deg)}
.calendar-roses-left .garden-rose:first-child{left:-20px;top:18%;transform:rotate(-12deg)}
.calendar-roses-left .r-small{left:75px;top:33%;transform:scale(.62) rotate(14deg)}
.calendar-roses-left .garden-leaf{left:10px;top:42%;transform:rotate(24deg)}
.calendar-roses-left .l2{left:75px;top:49%;transform:rotate(-35deg) scale(.75)}
.calendar-roses-right .garden-rose:first-child{right:-20px;bottom:15%;transform:rotate(15deg)}
.calendar-roses-right .r-small{right:70px;bottom:30%;transform:scale(.62) rotate(-10deg)}
.calendar-roses-right .garden-leaf{right:5px;bottom:39%;transform:rotate(-25deg)}
.calendar-roses-right .l2{right:75px;bottom:46%;transform:rotate(32deg) scale(.75)}
.final-rose-field .garden-rose:first-child{left:4%;bottom:10%;transform:scale(.8)}
.final-rose-field .r2{right:4%;bottom:13%;transform:scale(.75)}
.final-rose-field .r3{left:15%;top:14%;transform:scale(.45)}
.final-rose-field .garden-leaf{left:8%;bottom:24%;transform:rotate(25deg)}
.final-rose-field .l2{right:8%;bottom:25%;transform:rotate(-28deg)}

/* Native scroll inside the open letter — Lenis must not hijack it */
body.locked .letter-modal.open{touch-action:none}
.letter-modal.open .scroll-paper{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;pointer-events:auto;scroll-behavior:smooth}
.letter-modal.open .scroll-paper::-webkit-scrollbar{width:7px}
.letter-modal.open .scroll-paper::-webkit-scrollbar-track{background:rgba(122,97,67,.08);border-radius:99px}
.letter-modal.open .scroll-paper::-webkit-scrollbar-thumb{background:linear-gradient(#c9ae7c,#a88b61);border-radius:99px}
.letter-modal.open .old-letter{min-height:calc(100% + 120px)}

/* Calendar — luxury interactive card */
.calendar-section{background:radial-gradient(circle at 50% 45%,#fff 0,#f7f1ed 52%,#ebe1dc 100%);padding:150px 0;}
.calendar-layout{position:relative;z-index:3;align-items:center}
.calendar-copy{position:relative;z-index:4}
.calendar-copy h2{font:700 clamp(60px,8vw,104px) var(--ruqaa);line-height:.9;margin:20px 0 28px;color:#302b2b}
.calendar-copy h2 em{font-style:normal;color:#9c7d63}
.calendar-copy>p:not(.eyebrow){max-width:480px;font:20px/2 var(--ruqaa);color:#756965}
.calendar-note-card{margin-top:28px;width:min(390px,100%);display:flex;align-items:center;gap:16px;padding:15px 18px;border:1px solid rgba(170,143,99,.28);background:rgba(255,255,255,.72);box-shadow:0 18px 45px rgba(76,58,49,.1);border-radius:18px}
.calendar-note-card>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#f2e5e3;color:#a67d88;font-size:21px}
.calendar-note-card b{display:block;font:18px var(--en);letter-spacing:.08em;color:#8e735b}.calendar-note-card small{display:block;font:17px var(--ruqaa);color:#786b65}
.calendar{width:min(680px,100%);padding:28px 30px 24px;border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(249,244,238,.98));border:1px solid rgba(160,126,82,.22);box-shadow:0 35px 100px rgba(65,48,42,.16),0 0 0 7px rgba(255,255,255,.42);position:relative;overflow:hidden}
.calendar:before{content:"";position:absolute;inset:10px;border:1px solid rgba(176,146,96,.14);border-radius:21px;pointer-events:none}
.calendar-topline{display:flex;align-items:center;gap:12px;color:#a08b78;font:9px var(--en);letter-spacing:.2em}.calendar-topline i{height:1px;background:#d8c8b4;flex:1}
.calendar header{position:relative;z-index:2;border:0;padding:17px 0 10px;display:grid;grid-template-columns:48px 1fr 48px;align-items:center}
.calendar-nav{width:42px;height:42px;border-radius:50%;border:1px solid rgba(160,126,82,.25);background:#fff;color:#8f765f;font:30px/1 Arial;cursor:pointer;transition:.25s}.calendar-nav:hover{transform:scale(1.08);background:#f6eceb}
.calendar-title{text-align:center}.calendar-title span{display:block;font:10px var(--en);letter-spacing:.25em;color:#a38b7b}.calendar-title strong{display:block;font:42px var(--en);line-height:1;color:#9b7c55}.calendar-title small{display:block;margin-top:7px;font:17px var(--ruqaa);color:#816e67}
.calendar-divider{display:flex;align-items:center;gap:12px;margin:2px 0 18px;color:#b19067}.calendar-divider:before,.calendar-divider:after{content:"";height:1px;background:linear-gradient(90deg,transparent,#d3b98f);flex:1}.calendar-divider:after{transform:scaleX(-1)}.calendar-divider span{font-size:18px}
.week,.days{gap:7px}.week span{padding:6px 0;font:10px var(--ruqaa);color:#9a867d}.day{appearance:none;-webkit-appearance:none;min-height:62px;border-radius:16px;border:1px solid transparent;background:rgba(255,255,255,.52);font:17px var(--en);color:#5f5651;cursor:pointer;transition:transform .22s,background .22s,border-color .22s,box-shadow .22s;position:relative;display:grid;place-items:center}
.day:not(.empty):hover{transform:translateY(-3px);background:#fff;border-color:rgba(177,145,94,.28);box-shadow:0 10px 22px rgba(78,58,49,.1)}.day.empty{background:transparent;cursor:default}.day span{position:relative;z-index:2}.day i{position:absolute;bottom:5px;width:18px;height:1px;background:#d5c5ae;opacity:.5}.day.selected{background:#f7eee9;border-color:rgba(180,145,105,.28);box-shadow:0 8px 22px rgba(96,72,58,.08)}
.day.birthday{background:radial-gradient(circle at 50% 42%,#fff 0 29%,#f2e4e4 30% 72%,#dfc4c8 73% 100%);border:1px solid #b9909a;border-radius:50%;color:#805b64;box-shadow:0 0 0 5px rgba(190,151,160,.1),0 14px 28px rgba(122,91,91,.2);transform:scale(1.06);z-index:2}.day.birthday i{width:auto;height:auto;background:none;bottom:3px;font-size:13px;color:#a57480;opacity:1}.day.birthday b{position:absolute;top:-10px;right:-8px;padding:2px 6px;border-radius:99px;background:#fff;border:1px solid #d2b78b;color:#9b7c55;font:9px var(--ruqaa);box-shadow:0 4px 10px rgba(65,48,42,.1)}.day.birthday.selected{animation:calendarHeartbeat 1.8s infinite}
@keyframes calendarHeartbeat{0%,100%{box-shadow:0 0 0 5px rgba(190,151,160,.1),0 14px 28px rgba(122,91,91,.2)}50%{box-shadow:0 0 0 10px rgba(190,151,160,.12),0 18px 35px rgba(122,91,91,.24)}}
.calendar-event{margin-top:23px;padding:15px 17px;border:1px solid rgba(166,136,96,.2);border-radius:19px;background:linear-gradient(135deg,#f8f1ea,#fff);display:grid;grid-template-columns:74px 1fr 40px;align-items:center;gap:14px;transition:.35s;box-shadow:0 12px 28px rgba(73,54,47,.07)}
.calendar-event.special{border-color:rgba(179,139,149,.42);background:linear-gradient(135deg,#f5e8e8,#fffdf9);box-shadow:0 15px 34px rgba(125,90,95,.12)}
.event-date{display:flex;align-items:center;gap:7px}.event-date b{font:48px var(--en);color:#9e7a56;line-height:.8}.event-date span{font:9px var(--en);letter-spacing:.1em;color:#a18a79}.event-copy small{font:8px var(--en);letter-spacing:.17em;color:#a78d78}.event-copy strong{display:block;font:23px var(--ruqaa);color:#7d6268}.event-copy p{font:14px/1.7 var(--ruqaa);color:#8a7b75}.event-heart{font-size:30px;color:#b58b96;text-align:center}.calendar-tip{text-align:center;margin-top:14px;font:13px var(--ruqaa);color:#9a8881}

@media(max-width:800px){
 .calendar-section{padding:105px 0}.calendar{padding:23px 16px 19px;border-radius:23px}.calendar:before{inset:7px}.calendar-title strong{font-size:36px}.calendar-title small{font-size:15px}.calendar-nav{width:38px;height:38px;font-size:26px}.week,.days{gap:4px}.day{min-height:48px;border-radius:12px;font-size:15px}.day.birthday{transform:scale(1.03)}.calendar-event{grid-template-columns:62px 1fr 30px;gap:9px;padding:12px}.event-date b{font-size:39px}.event-copy strong{font-size:20px}.event-copy p{font-size:13px}.event-heart{font-size:25px}.calendar-roses-left .garden-rose:first-child{left:-48px}.calendar-roses-right .garden-rose:first-child{right:-48px}.final-rose-field .garden-rose{opacity:.72}
}
@media(max-width:430px){.calendar-title strong{font-size:32px}.calendar-title small{font-size:14px}.week span{font-size:8px}.day{min-height:43px;font-size:14px}.day.birthday b{font-size:8px;right:-6px}.calendar-event{grid-template-columns:55px 1fr 25px}.event-date b{font-size:34px}.event-copy strong{font-size:18px}.calendar-note-card{width:100%}}

/* ================================================================
   PERFORMANCE + WHITE ROSE FLOWER FALL — v4
   ================================================================ */
#petals{contain:layout paint;will-change:contents}
.petal{top:-45px;will-change:transform,opacity;animation:roseFall var(--fall-duration,10s) linear forwards;transform:translate3d(0,0,0) rotate(0deg)}
.petal:before,.petal:after{will-change:transform}
@keyframes roseFall{
  0%{transform:translate3d(0,-55px,0) rotate(0deg);opacity:0}
  8%{opacity:.82}
  28%{transform:translate3d(calc(var(--wind)*.22),27vh,0) rotate(calc(var(--spin)*.22))}
  52%{transform:translate3d(calc(var(--wind)*-.08),52vh,0) rotate(calc(var(--spin)*.5))}
  76%{transform:translate3d(calc(var(--wind)*.55),77vh,0) rotate(calc(var(--spin)*.76))}
  100%{transform:translate3d(var(--wind),112vh,0) rotate(var(--spin));opacity:0}
}
/* Small whole white flowers mixed into the breeze. */
.fall-flower{border-radius:50%;background:
 radial-gradient(circle at 50% 12%,#fff 0 27%,transparent 29%),
 radial-gradient(circle at 86% 38%,#fff 0 27%,transparent 29%),
 radial-gradient(circle at 68% 84%,#fff 0 27%,transparent 29%),
 radial-gradient(circle at 32% 84%,#fff 0 27%,transparent 29%),
 radial-gradient(circle at 14% 38%,#fff 0 27%,transparent 29%),
 radial-gradient(circle at 50% 50%,#d5c4a7 0 12%,#f8f4ed 13% 20%,transparent 21%);
 box-shadow:0 2px 8px rgba(101,82,67,.14);border:0}
.fall-flower:before,.fall-flower:after{display:none}

/* ================================================================
   CALENDAR — balanced editorial layout, no oversized 20
   ================================================================ */
.calendar{overflow:visible}
.calendar:before{z-index:0}
.calendar>*{position:relative;z-index:1}
.calendar header{grid-template-columns:44px minmax(0,1fr) 44px}
.week,.days{grid-template-columns:repeat(7,minmax(0,1fr));width:100%;gap:7px}
.week span{min-width:0;white-space:nowrap;font-size:10px}
.day{width:100%;min-width:0;height:58px;min-height:58px;padding:0;border-radius:15px;overflow:visible;display:grid;place-items:center;background:rgba(255,255,255,.72)}
.day span{font:500 16px/1 var(--en);color:#655a54}
.day i{bottom:8px}
.day.selected:not(.birthday){background:linear-gradient(145deg,#fff,#f7eeea);border-color:rgba(185,155,105,.35);box-shadow:inset 0 -3px 0 rgba(185,155,105,.3),0 8px 18px rgba(76,58,48,.08)}
.day.birthday{width:100%;height:58px;min-height:58px;transform:none;border-radius:15px;background:linear-gradient(145deg,#fffdf8,#f3e2e4);border:1px solid rgba(181,140,150,.58);color:#805d65;box-shadow:inset 0 0 0 2px rgba(255,255,255,.9),0 9px 22px rgba(126,91,98,.14);overflow:visible}
.day.birthday:before{content:"";position:absolute;inset:4px;border:1px dashed rgba(181,140,150,.35);border-radius:11px;pointer-events:none}
.day.birthday span{font-size:18px;font-weight:700;color:#8c626b;z-index:2}
.day.birthday i{position:absolute;bottom:5px;right:7px;width:auto;height:auto;background:none;font:14px/1 var(--ui);color:#b17c88;opacity:1;z-index:2}
.day.birthday b{top:-7px;right:6px;padding:2px 6px;border-radius:7px;background:#b99866;color:#fff;border:2px solid #fff;font:9px/1 var(--ruqaa);box-shadow:0 4px 10px rgba(80,60,45,.12);z-index:4}
.day.birthday.selected{animation:calendarSoftPulse 2.2s ease-in-out infinite}
@keyframes calendarSoftPulse{0%,100%{box-shadow:inset 0 0 0 2px rgba(255,255,255,.9),0 9px 22px rgba(126,91,98,.14)}50%{box-shadow:inset 0 0 0 2px rgba(255,255,255,.9),0 0 0 5px rgba(181,140,150,.10),0 14px 28px rgba(126,91,98,.17)}}
.calendar-event{grid-template-columns:72px minmax(0,1fr) 38px}
.event-copy{min-width:0}.event-copy strong,.event-copy p{overflow-wrap:anywhere}

/* Botanical flowers: more recognizable layered white roses */
.garden-rose,.white-rose{isolation:isolate}
.garden-rose{background:
 radial-gradient(circle at 50% 52%,#c5b39c 0 7%,#f5f0e8 8% 14%,transparent 15%),
 radial-gradient(ellipse at 50% 20%,#fff 0 26%,#e7e1d8 27% 37%,transparent 38%),
 radial-gradient(ellipse at 79% 39%,#fff 0 26%,#e7e1d8 27% 37%,transparent 38%),
 radial-gradient(ellipse at 67% 76%,#fff 0 26%,#e7e1d8 27% 37%,transparent 38%),
 radial-gradient(ellipse at 33% 76%,#fff 0 26%,#e7e1d8 27% 37%,transparent 38%),
 radial-gradient(ellipse at 21% 39%,#fff 0 26%,#e7e1d8 27% 37%,transparent 38%);
 background-color:#f7f4ef;border:1px solid rgba(166,148,127,.25);box-shadow:0 13px 30px rgba(74,61,55,.16),0 0 0 6px rgba(255,255,255,.5)}
.garden-rose:before,.garden-rose:after{inset:18px;border:7px solid rgba(255,255,255,.92);box-shadow:inset 0 0 7px rgba(174,158,141,.22)}
.garden-rose:after{inset:28px;border-width:5px;border-color:rgba(224,218,208,.8)}
.garden-leaf{box-shadow:0 4px 9px rgba(70,70,60,.15);border:1px solid rgba(103,112,91,.18)}

@media(max-width:800px){
 .calendar{width:min(680px,94vw);padding:21px 13px 18px}
 .week,.days{gap:5px}
 .day,.day.birthday{height:52px;min-height:52px;border-radius:13px}
 .day span{font-size:15px}.day.birthday span{font-size:17px}
 .day.birthday b{right:4px;font-size:8px;padding:2px 5px}
 .calendar-event{grid-template-columns:58px minmax(0,1fr) 28px}
}
@media(max-width:430px){
 .calendar{padding:19px 9px 16px}
 .week,.days{gap:4px}
 .week span{font-size:8px}
 .day,.day.birthday{height:45px;min-height:45px;border-radius:11px}
 .day span{font-size:13px}.day.birthday span{font-size:15px}
 .day.birthday i{font-size:12px;bottom:4px;right:5px}
 .day.birthday b{top:-6px;right:2px;font-size:7px;padding:2px 4px}
 .calendar-event{grid-template-columns:50px minmax(0,1fr) 24px}
}
@media(prefers-reduced-motion:reduce){.petal{animation:none;display:none}.day.birthday.selected{animation:none}}

/* ===== FINAL LUXE LAYER ===== */
:root{--font-en:"Cormorant Garamond",Georgia,serif;--font-num:"Cormorant Garamond",Georgia,serif}
.countdown-section{min-height:72svh;display:grid;place-items:center;padding:110px 0;background:linear-gradient(135deg,#fffdfa,#f4ebeb 72%,#eee0df);position:relative;overflow:hidden}.countdown-inner{text-align:center;position:relative;z-index:4}.countdown-inner h2{font:500 clamp(48px,6vw,78px)/.95 var(--font-serif);margin:18px 0 34px}.countdown-inner h2 em{font-style:normal;color:#a97884}.countdown-glow{position:absolute;width:55vw;height:55vw;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,255,255,.98),rgba(231,209,211,.18) 48%,transparent 70%);filter:blur(2px)}.countdown{direction:ltr;display:flex;align-items:center;justify-content:center;gap:12px}.count-box{width:108px;padding:18px 10px;border:1px solid rgba(166,136,96,.24);border-radius:18px;background:rgba(255,255,255,.65);box-shadow:0 18px 45px rgba(80,60,52,.08);backdrop-filter:blur(10px)}.count-box strong{display:block;font:600 clamp(46px,6vw,70px)/.82 var(--font-num);color:#8e715d;letter-spacing:.02em}.count-box span{display:block;margin-top:10px;font:600 12px var(--font-serif);color:#8d7b77}.countdown>i{font:600 34px var(--font-num);font-style:normal;color:#c09b70;margin-top:-17px}.countdown-note{margin-top:25px;color:#8d7b77;font:18px var(--font-serif)}.countdown-rose-field{position:absolute;inset:0;pointer-events:none;opacity:.9}.countdown-rose-field .garden-rose{position:absolute;left:3%;bottom:-10%;transform:scale(.9)}.countdown-rose-field .r2{left:auto;right:4%;top:8%;transform:scale(.55)}.countdown-rose-field .garden-leaf{left:12%;top:18%;transform:rotate(-30deg)}
/* Premium birthday date card — no oversized circle */
.age-card-premium{position:relative;width:min(430px,80vw);aspect-ratio:1.08;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#fffefa,#f3e8e5);border:1px solid rgba(166,136,96,.35);box-shadow:0 35px 80px rgba(73,54,47,.15),inset 0 0 0 7px rgba(255,255,255,.7);clip-path:polygon(4% 0,96% 0,100% 5%,100% 95%,96% 100%,4% 100%,0 95%,0 5%);overflow:hidden}.age-card-premium:before{content:"";position:absolute;inset:16px;border:1px solid rgba(174,142,95,.28);pointer-events:none}.age-card-premium:after{content:"✦";position:absolute;top:22px;right:27px;color:#c6a26a;font-size:17px}.age-card-label{font:600 13px var(--font-en);letter-spacing:.25em;color:#a38a72}.age-card-premium strong{font:600 clamp(130px,18vw,205px)/.68 var(--font-num);color:#a97f89;margin:17px 0 13px}.age-card-year{font:600 29px var(--font-en);letter-spacing:.22em;color:#8e745e}.age-card-premium i{margin-top:17px;font:600 9px var(--font-en);letter-spacing:.22em;color:#aa927f;font-style:normal}.birthday-bouquet{position:absolute;inset:-20px;pointer-events:none;z-index:3}.bouquet-stem{position:absolute;width:3px;height:45%;bottom:0;left:50%;background:linear-gradient(#778b72,#aeb7a9);transform-origin:bottom;border-radius:10px}.s1{transform:rotate(-18deg)}.s2{transform:rotate(0)}.s3{transform:rotate(17deg)}.bouquet-rose{position:absolute;width:82px;height:82px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#d7cfc7 0 7%,#fff 8% 18%,#e8e0da 19% 25%,#fff 26% 39%,#ddd3cd 40% 46%,#fff 47% 64%,#d6cbc5 65% 68%,#fff 69%);filter:drop-shadow(0 12px 14px rgba(72,58,49,.16));animation:bloomFloat 5s ease-in-out infinite}.br1{left:12%;top:23%;transform:scale(.78)}.br2{left:38%;top:10%;transform:scale(1.05);animation-delay:.5s}.br3{right:10%;top:22%;transform:scale(.82);animation-delay:1s}.br4{left:46%;top:32%;transform:scale(.58);animation-delay:1.5s}.bouquet-leaf{position:absolute;width:70px;height:27px;border-radius:100% 0;background:linear-gradient(135deg,#aab5a5,#71816e)}.bl1{left:14%;top:48%;transform:rotate(-28deg)}.bl2{right:10%;top:49%;transform:rotate(28deg)}@keyframes bloomFloat{0%,100%{translate:0 0}50%{translate:0 -5px}}
/* Star map */
.star-map-section{min-height:92svh;padding:135px 0;background:radial-gradient(circle at 75% 35%,#2d3544 0,#171c29 45%,#0b0f18 100%);color:#f9f4ed;position:relative;overflow:hidden}.star-map-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18) 0 1px,transparent 2px),radial-gradient(circle at 80% 75%,rgba(255,255,255,.16) 0 1px,transparent 2px);background-size:130px 130px,190px 190px;opacity:.55}.star-map-grid{position:relative;z-index:2;display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:center}.star-map-copy h2{font:500 clamp(50px,6vw,82px)/.94 var(--font-serif);margin:18px 0 25px}.star-map-copy h2 em{font-style:normal;color:#e3c5cc}.star-map-copy>p:not(.eyebrow){font:18px/2 var(--font-serif);color:rgba(249,244,237,.7);max-width:520px}.star-map-copy blockquote{border-right:1px solid rgba(226,199,153,.5);padding-right:20px;color:#d7bd8e;font:24px/1.8 var(--font-serif)}.star-map-frame{margin:0;position:relative;aspect-ratio:1.18;overflow:hidden;border:1px solid rgba(227,199,153,.4);background:linear-gradient(145deg,#252d3b,#0e131e);box-shadow:0 35px 90px rgba(0,0,0,.4);padding:12px}.star-map-frame:before{content:"";position:absolute;inset:22px;border:1px solid rgba(227,199,153,.24);z-index:2;pointer-events:none}.star-map-frame img{width:100%;height:100%;object-fit:cover;opacity:.82;filter:sepia(.12) contrast(1.08)}.star-map-frame img[src="images/star-map.jpg"]{background:radial-gradient(circle at 30% 30%,#53627c,#101621 70%)}.star-map-frame figcaption{position:absolute;z-index:3;left:34px;right:34px;bottom:30px;display:flex;justify-content:space-between;align-items:end;gap:20px;padding:15px 0;border-top:1px solid rgba(255,255,255,.18)}.star-map-frame figcaption span{font:13px var(--font-en);letter-spacing:.18em;color:#d9c092}.star-map-frame figcaption b{font:21px var(--font-serif);font-weight:400}
/* Timeline */
.timeline-section{padding:145px 0 170px;background:linear-gradient(#fffdfa,#f2e9e7);position:relative;overflow:hidden}.timeline-head{text-align:center;max-width:750px;margin:0 auto 85px}.timeline-head h2{font:500 clamp(52px,7vw,88px)/.9 var(--font-serif);margin:17px 0}.timeline-head h2 em{font-style:normal;color:#a97f89}.timeline-head>p:last-child{font:18px var(--font-serif);color:#8b7771}.timeline-head strong{color:#a67e87}.timeline{position:relative;max-width:900px;margin:auto;padding:15px 0 40px}.timeline-line{position:absolute;top:0;bottom:55px;left:50%;width:2px;transform:translateX(-50%);background:linear-gradient(#d8c6a4,#b9979e 45%,#d8c6a4 85%,transparent);overflow:hidden}.timeline-progress{display:block;width:100%;height:28%;background:#a9828b;box-shadow:0 0 16px rgba(169,130,139,.45);transition:height 1.2s var(--ease)}.timeline-item{position:relative;width:50%;padding:0 50px 75px}.timeline-item:nth-of-type(odd){margin-left:0;text-align:right}.timeline-item:nth-of-type(even){margin-left:50%;text-align:left}.timeline-dot{position:absolute;top:5px;width:15px;height:15px;border-radius:50%;background:#fff;border:2px solid #b9949e;box-shadow:0 0 0 7px rgba(185,148,158,.1)}.timeline-item:nth-of-type(odd) .timeline-dot{right:-7px}.timeline-item:nth-of-type(even) .timeline-dot{left:-7px}.timeline-date{font:600 34px var(--font-num);color:#a27f68;letter-spacing:.04em;margin-bottom:10px}.timeline-card{display:inline-block;max-width:370px;padding:22px 25px;background:rgba(255,255,255,.7);border:1px solid rgba(166,136,96,.2);box-shadow:0 20px 50px rgba(73,54,47,.07);border-radius:2px}.timeline-card small{font:600 9px var(--font-en);letter-spacing:.18em;color:#b09272}.timeline-card h3{font:500 27px var(--font-serif);margin:7px 0;color:#6e5b59}.timeline-card p{font:16px/1.9 var(--font-serif);color:#8c7c77;margin:0}.timeline-card.special{border-color:rgba(185,148,158,.5);background:linear-gradient(145deg,#fff,#f4e7e8);box-shadow:0 22px 55px rgba(148,108,118,.14)}.timeline-card.special h3{color:#a06f7c}.timeline-item.future .timeline-dot{width:19px;height:19px;top:3px;background:#b58b96;border-color:#fff;box-shadow:0 0 0 8px rgba(181,139,150,.14),0 0 30px rgba(181,139,150,.35)}.timeline-infinity{text-align:center;color:#b08b72;font:60px var(--font-num);padding-top:5px}.timeline-infinity span{display:block;font:16px var(--font-serif);color:#8e7b76}.timeline-flowers{position:absolute;inset:0;pointer-events:none}.timeline-flowers .garden-rose{position:absolute;right:-38px;top:22%;transform:scale(.85)}.timeline-flowers .r2{right:auto;left:-45px;bottom:12%;transform:scale(.65)}.timeline-flowers .garden-leaf{right:8%;top:12%;transform:rotate(25deg)}
/* Better English/numbers across new areas */
.hero-stamp,.calendar-title strong,.calendar-note-card b,.event-date b,.final-date b{font-family:var(--font-num)!important}.hero-stamp span{font-weight:600}
/* White rose realism: layered bloom */
.garden-rose,.white-rose{box-shadow:0 12px 24px rgba(78,63,54,.14)}
/* Mobile */
@media(max-width:800px){.countdown-section{min-height:68svh;padding:95px 0}.countdown{gap:5px}.count-box{width:72px;padding:14px 6px;border-radius:14px}.count-box strong{font-size:42px}.count-box span{font-size:11px}.countdown>i{font-size:24px}.star-map-grid{grid-template-columns:1fr;gap:45px}.star-map-section{padding:100px 0}.star-map-copy{text-align:center}.star-map-copy>p:not(.eyebrow){margin-left:auto;margin-right:auto}.star-map-copy blockquote{border-right:0;border-top:1px solid rgba(226,199,153,.35);padding:15px 0 0}.star-map-frame{width:100%}.timeline-section{padding:105px 0}.timeline-line{left:17px;transform:none}.timeline-item,.timeline-item:nth-of-type(even),.timeline-item:nth-of-type(odd){width:100%;margin:0;text-align:right;padding:0 0 58px 0;padding-right:50px}.timeline-item:nth-of-type(odd) .timeline-dot,.timeline-item:nth-of-type(even) .timeline-dot{right:10px;left:auto}.timeline-card{max-width:none;width:100%}.timeline-date{font-size:30px}.birthday-bouquet{inset:-5px}.age-card-premium{width:min(420px,88vw)}.age-card-premium strong{font-size:140px}.age-card-premium i{font-size:8px}.bouquet-rose{width:62px;height:62px}.br1{left:4%}.br3{right:4%}}
@media(max-width:430px){.count-box{width:64px}.count-box strong{font-size:36px}.count-box span{font-size:10px}.countdown>i{font-size:20px}.countdown-note{font-size:16px}.star-map-copy h2,.timeline-head h2{font-size:49px}.age-card-premium{aspect-ratio:1}.age-card-premium strong{font-size:122px}.timeline-date{font-size:27px}.timeline-card h3{font-size:24px}}

/* =========================================================
   2026 LUXURY EDITORIAL REFINEMENT
   Timeline / Star Map / Hero / Final banner / Password Gate
   ========================================================= */
:root{
  --font-en:'Bodoni Moda','Cormorant Garamond',Georgia,serif;
  --font-num:'Cormorant Garamond',Georgia,serif;
  --font-serif:var(--font-ar);
}

/* HERO — premium editorial masthead */
.hero{min-height:100svh;display:grid;place-items:center;position:relative;overflow:hidden;background:
  radial-gradient(circle at 74% 25%,rgba(255,255,255,.98),transparent 30%),
  linear-gradient(120deg,#fcfbf8 0%,#f5ece9 55%,#eee2e0 100%);}
.hero:before{content:"";position:absolute;inset:28px;border:1px solid rgba(166,136,96,.15);pointer-events:none;z-index:1}
.hero:after{content:"";position:absolute;width:42vw;height:42vw;max-width:620px;max-height:620px;border:1px solid rgba(185,148,158,.16);border-radius:50%;right:-12vw;top:8%;box-shadow:0 0 0 55px rgba(185,148,158,.025),0 0 0 110px rgba(185,148,158,.02);}
.hero-inner{position:relative;z-index:5;width:min(920px,90vw);text-align:center;padding:100px 0 80px}
.hero-inner .eyebrow{font-family:var(--font-en);font-size:10px;letter-spacing:.34em;color:#9b826f;margin-bottom:28px}
.hero-inner h2{font-family:var(--font-ruqaa);font-size:clamp(62px,8vw,112px);line-height:.94;letter-spacing:-.02em;text-shadow:0 14px 35px rgba(90,68,62,.08);margin:0}
.hero-inner h2 span{color:#a77885}
.hero-inner h2 em{font-family:var(--font-ruqaa);color:#8f6b74;font-style:normal}
.hero-copy{max-width:590px;margin:35px auto 0!important;font-family:var(--font-ar)!important;font-size:clamp(18px,2vw,23px)!important;line-height:2.05!important;color:#746763!important}
.scroll-cue{margin-top:42px!important;font-family:var(--font-ar)!important;font-size:18px!important;color:#8d7770!important}
.hero-stamp{left:auto!important;right:5vw!important;bottom:8vh!important;width:104px!important;height:104px!important;border:1px solid rgba(166,136,96,.45)!important;background:rgba(255,255,255,.52)!important;backdrop-filter:blur(8px);box-shadow:0 18px 45px rgba(75,57,50,.09)}
.hero-stamp span{font-family:var(--font-num)!important;font-size:38px!important;line-height:.7}
.hero-stamp small,.hero-stamp b{font-family:var(--font-en)!important;letter-spacing:.16em}

/* STAR MAP — typography hierarchy */
.star-map-section{min-height:94svh;padding:clamp(95px,10vw,150px) 0!important}
.star-map-copy{direction:rtl;text-align:right}
.star-map-copy .eyebrow{direction:ltr;text-align:right;font-family:var(--font-en);font-size:11px;letter-spacing:.3em;color:#d8c49b}
.star-map-copy h2{font-family:var(--font-ruqaa)!important;font-weight:700!important;font-size:clamp(46px,5.7vw,82px)!important;line-height:1.08!important;letter-spacing:0!important;margin:20px 0 30px!important}
.star-map-copy h2 em{font-family:var(--font-ruqaa)!important;color:#e5cbd1!important}
.star-map-copy>p:not(.eyebrow){font-family:var(--font-ar)!important;font-size:20px!important;line-height:2!important;color:rgba(249,244,237,.72)!important}
.star-map-copy blockquote{font-family:var(--font-ar)!important;font-size:25px!important;line-height:1.9!important;border-right:1px solid rgba(226,199,153,.48);margin-top:28px}
.star-map-frame{border-radius:4px!important;padding:14px!important;box-shadow:0 40px 100px rgba(0,0,0,.5)!important}
.star-map-frame figcaption span{font-family:var(--font-en)!important}
.star-map-frame figcaption b{font-family:var(--font-ar)!important;font-size:20px!important}

/* TIMELINE — centered editorial museum layout */
.timeline-section{padding:clamp(100px,11vw,155px) 0 clamp(120px,13vw,185px)!important;background:
  radial-gradient(circle at 12% 25%,rgba(201,170,180,.13),transparent 23%),
  radial-gradient(circle at 88% 75%,rgba(199,170,114,.11),transparent 25%),
  linear-gradient(145deg,#fffdfa,#f6eeeb)!important}
.timeline-head{max-width:780px!important;margin-bottom:90px!important}
.timeline-head .eyebrow{font-family:var(--font-en)!important;font-size:11px!important;letter-spacing:.34em!important;color:#a18a78!important}
.timeline-head h2{font-family:var(--font-ruqaa)!important;font-size:clamp(50px,6.5vw,88px)!important;line-height:1.03!important;font-weight:700!important;letter-spacing:0!important;margin:18px 0 20px!important;color:#463c39}
.timeline-head h2 em{font-family:var(--font-ruqaa)!important;color:#a77885!important}
.timeline-head>p:last-child{font-family:var(--font-ar)!important;font-size:20px!important;color:#8b7771!important}
.timeline{max-width:1040px!important;padding:10px 0 45px!important}
.timeline-line{left:50%!important;width:1px!important;background:linear-gradient(to bottom,transparent,#c5aa7c 8%,#b9949f 50%,#c5aa7c 92%,transparent)!important;opacity:.8}
.timeline-progress{background:linear-gradient(#a77f88,#c9a86f)!important;width:2px!important;box-shadow:0 0 18px rgba(169,130,139,.42)!important}
.timeline-item{padding-left:62px!important;padding-right:62px!important;padding-bottom:92px!important}
.timeline-item:nth-of-type(odd){text-align:right!important}
.timeline-item:nth-of-type(even){text-align:left!important}
.timeline-dot{width:13px!important;height:13px!important;top:9px!important;background:#fff!important;border:1px solid #b58f99!important;box-shadow:0 0 0 6px rgba(181,143,153,.09),0 5px 16px rgba(75,57,50,.1)!important}
.timeline-item:nth-of-type(odd) .timeline-dot{right:-6px!important}
.timeline-item:nth-of-type(even) .timeline-dot{left:-6px!important}
.timeline-date{font-family:var(--font-num)!important;font-size:clamp(34px,4vw,52px)!important;font-weight:600!important;line-height:1!important;letter-spacing:.08em!important;color:#9b785f!important;margin-bottom:15px!important}
.timeline-card{position:relative!important;display:inline-block!important;max-width:430px!important;width:min(100%,430px)!important;padding:25px 29px 27px!important;border-radius:3px!important;background:rgba(255,255,255,.78)!important;border:1px solid rgba(166,136,96,.18)!important;box-shadow:0 24px 55px rgba(73,54,47,.075),inset 0 1px 0 #fff!important;backdrop-filter:blur(8px)}
.timeline-card:before{content:"";position:absolute;top:17px;bottom:17px;width:2px;background:linear-gradient(transparent,#c3a06e,transparent);opacity:.45}
.timeline-item:nth-of-type(odd) .timeline-card:before{right:0}
.timeline-item:nth-of-type(even) .timeline-card:before{left:0}
.timeline-card small{font-family:var(--font-en)!important;font-size:10px!important;letter-spacing:.25em!important;color:#ae906e!important}
.timeline-card h3{font-family:var(--font-ar)!important;font-size:29px!important;line-height:1.45!important;font-weight:700!important;color:#5d4e4b!important;margin:8px 0 5px!important}
.timeline-card p{font-family:var(--font-ar)!important;font-size:17px!important;line-height:1.95!important;color:#897a74!important}
.timeline-card.special{background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(247,232,235,.92))!important;border-color:rgba(184,145,156,.4)!important;box-shadow:0 28px 70px rgba(145,104,117,.14)!important}
.timeline-card.special h3{color:#9d6f7b!important}
.timeline-item.future .timeline-dot{width:18px!important;height:18px!important;top:7px!important;background:#b68b96!important;border:3px solid #fff!important;box-shadow:0 0 0 7px rgba(181,139,150,.13),0 0 28px rgba(181,139,150,.35)!important}
.timeline-infinity{font-family:var(--font-num)!important;font-size:78px!important;line-height:.8!important;color:#ae8b70!important;padding-top:12px!important}
.timeline-infinity span{font-family:var(--font-ar)!important;font-size:18px!important;color:#897772!important;margin-top:15px}

/* FINAL BANNER — cleaner ending / signature */
.final{min-height:78svh!important;padding:clamp(100px,10vw,145px) 0 100px!important;background:
  radial-gradient(circle at 50% 0,#fff 0,#f8eeeb 45%,#eee1de 100%)!important;border-top:1px solid rgba(166,136,96,.13);border-bottom:1px solid rgba(166,136,96,.12);overflow:hidden}
.final:before{content:"20";position:absolute;left:50%;top:7%;transform:translateX(-50%);font-family:var(--font-num);font-size:min(36vw,420px);line-height:1;color:rgba(169,127,137,.045);pointer-events:none}
.final-inner{width:min(850px,90vw)!important}
.final .eyebrow{font-family:var(--font-en)!important;font-size:11px!important;letter-spacing:.34em!important;color:#a58b76!important}
.final-bouquet{height:130px!important;margin-bottom:5px!important}
.final h2{font-family:var(--font-ruqaa)!important;font-size:clamp(48px,7vw,88px)!important;line-height:1.08!important;font-weight:700!important}
.final h2 em{font-family:var(--font-ruqaa)!important;color:#a67883!important}
.final p{font-family:var(--font-ar)!important;font-size:21px!important;line-height:2.05!important;color:#746660!important}
.final-date{gap:18px!important;margin:38px 0!important;padding-top:25px;border-top:1px solid rgba(166,136,96,.2);display:inline-flex!important}
.final-date b{font-family:var(--font-num)!important;font-size:82px!important;line-height:.75!important}
.final-date span{font-family:var(--font-en)!important;font-size:12px!important;letter-spacing:.22em!important}
.final-love{font-family:var(--font-en)!important;font-size:12px!important;letter-spacing:.12em!important;color:#9b817b!important}
.footer{min-height:92px!important;padding:0 7vw!important;background:#292321!important;border-top:1px solid rgba(216,192,143,.18)!important}
.footer b{font-family:var(--font-ruqaa)!important;font-size:24px!important}
.footer span{font-family:var(--font-en)!important;letter-spacing:.2em!important}

/* PASSWORD GATE — discreet, cinematic, premium */
.password-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:22px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility .35s ease}
.password-modal.open{opacity:1;visibility:visible;pointer-events:auto}
.password-backdrop{position:absolute;inset:0;background:rgba(31,24,22,.64);backdrop-filter:blur(15px)}
.password-card{position:relative;z-index:2;width:min(430px,92vw);padding:48px 38px 35px;text-align:center;background:linear-gradient(145deg,#fffdfa,#f4e9e5);border:1px solid rgba(203,170,112,.48);box-shadow:0 40px 120px rgba(0,0,0,.35);border-radius:5px;overflow:hidden}
.password-card:before{content:"";position:absolute;inset:12px;border:1px solid rgba(166,136,96,.2);pointer-events:none}
.password-seal{width:72px;height:72px;margin:-3px auto 22px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 38% 30%,#d9b3bd,#9e6976 65%,#6e4650);box-shadow:0 12px 28px rgba(90,55,62,.25),inset 4px 4px 8px rgba(255,255,255,.18);color:#fff;transform:rotate(-5deg)}
.password-seal span{font-family:var(--font-en);font-size:31px;border:1px solid rgba(255,255,255,.38);width:52px;height:52px;border-radius:50%;display:grid;place-items:center}
.password-kicker{font-family:var(--font-en)!important;font-size:9px!important;letter-spacing:.28em!important;color:#ad906d!important;margin:0 0 12px!important}
.password-card h2{font-family:var(--font-ruqaa)!important;font-size:34px!important;color:#514541!important;margin:0 0 9px!important}
.password-copy{font-family:var(--font-ar)!important;font-size:17px!important;color:#8b7973!important;margin:0 auto 25px!important}
.password-input-wrap{position:relative;width:90px;margin:0 auto 15px}
.password-input-wrap input{width:90px;height:74px;border:1px solid rgba(166,136,96,.34);border-radius:4px;background:rgba(255,255,255,.76);text-align:center;font-family:var(--font-en);font-size:38px;color:#9b7180;outline:none;box-shadow:inset 0 1px 0 #fff,0 12px 30px rgba(72,55,49,.07);transition:.25s}
.password-input-wrap input:focus{border-color:#b38a95;box-shadow:0 0 0 4px rgba(179,138,149,.1),0 14px 35px rgba(72,55,49,.1)}
.password-input-wrap input.shake{animation:passwordShake .42s ease}
@keyframes passwordShake{25%{transform:translateX(-8px)}50%{transform:translateX(8px)}75%{transform:translateX(-5px)}}
.password-input-wrap>span{display:block;margin-top:8px;font-family:var(--font-ar);font-size:13px;color:#a18d84}
.password-error{height:0;overflow:hidden;opacity:0;margin:0!important;font-family:var(--font-ar)!important;font-size:14px!important;color:#a65f70!important;transition:.25s}
.password-error.show{height:28px;opacity:1}
.password-submit{width:100%;height:54px;border:0;border-radius:2px;background:linear-gradient(135deg,#4c403c,#2e2826);color:#fff;display:flex;align-items:center;justify-content:center;gap:18px;font-family:var(--font-ar);font-size:17px;cursor:pointer;box-shadow:0 18px 35px rgba(45,35,31,.18);transition:transform .25s,box-shadow .25s}
.password-submit:hover{transform:translateY(-2px);box-shadow:0 22px 42px rgba(45,35,31,.24)}
.password-submit b{font-family:var(--font-en);font-size:18px;font-weight:400}
.password-submit.unlocking{pointer-events:none;letter-spacing:.08em}
.password-note{display:block;margin-top:15px;font-family:var(--font-en);font-size:9px;letter-spacing:.15em;color:#a7958d}
.password-close{position:absolute;right:18px;top:16px;z-index:4;width:32px;height:32px;border:1px solid rgba(94,72,63,.15);background:rgba(255,255,255,.55);border-radius:50%;color:#786963;font-size:20px;cursor:pointer}

@media(max-width:800px){
 .hero:before{inset:14px}.hero-inner{padding:90px 0 65px}.hero-inner h2{font-size:clamp(53px,14vw,74px)}.hero-copy{font-size:18px!important;line-height:1.95!important}.hero-stamp{right:4vw!important;left:auto!important;bottom:4vh!important;width:82px!important;height:82px!important}.hero-stamp span{font-size:29px!important}
 .star-map-copy{text-align:center}.star-map-copy .eyebrow{text-align:center}.star-map-copy blockquote{border-right:0;border-top:1px solid rgba(226,199,153,.35);padding:16px 0 0}
 .timeline-section{padding-top:105px!important}.timeline-head{margin-bottom:62px!important}.timeline-line{left:auto!important;right:16px!important}.timeline-item,.timeline-item:nth-of-type(even),.timeline-item:nth-of-type(odd){width:100%!important;margin:0!important;text-align:right!important;padding:0 0 58px 48px!important;padding-right:48px!important}.timeline-item:nth-of-type(odd) .timeline-dot,.timeline-item:nth-of-type(even) .timeline-dot{right:10px!important;left:auto!important}.timeline-card{width:100%!important;max-width:none!important;padding:22px 22px 24px!important}.timeline-card h3{font-size:26px!important}.timeline-card p{font-size:16px!important}.timeline-date{font-size:34px!important}.timeline-infinity{font-size:64px!important}
 .final{min-height:70svh!important}.final p{font-size:18px!important}.final-date b{font-size:66px!important}.footer{min-height:105px!important;justify-content:center!important;text-align:center;gap:8px;flex-direction:column}
 .password-card{padding:43px 25px 30px}.password-card h2{font-size:31px!important}
}

/* V6 — reasons / message jar / mini player / wish box */
.reasons-section{position:relative;padding:clamp(100px,11vw,165px) 0;background:linear-gradient(180deg,#fbfaf7,#f6eeea);overflow:hidden}
.luxe-heading{max-width:760px;margin:0 auto 64px;text-align:center}.luxe-heading .eyebrow{font-family:var(--font-editorial)!important;letter-spacing:.3em;font-size:11px;color:#aa8a70}.luxe-heading h2{font-family:var(--font-ruqaa)!important;font-size:clamp(46px,6vw,76px);line-height:1.08;margin:10px 0 18px;color:#4c403d}.luxe-heading h2 em{color:#a87884}.luxe-heading>p:last-child{font-family:var(--font-ar);font-size:18px;line-height:1.9;color:#82736d}
.reasons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px 22px;max-width:1120px;margin:auto}.reason-card{position:relative;min-height:245px;padding:25px 21px 28px;background:#fffdf9;border:1px solid rgba(112,83,68,.12);box-shadow:0 16px 35px rgba(65,48,41,.08);transform:rotate(var(--r));transition:transform .35s,box-shadow .35s;overflow:hidden}.reason-card:nth-child(3n){--r:-1.3deg}.reason-card:nth-child(3n+1){--r:1deg}.reason-card:nth-child(3n+2){--r:-.4deg}.reason-card:hover{transform:translateY(-9px) rotate(0deg);box-shadow:0 25px 50px rgba(65,48,41,.13)}.reason-card:before{content:"";position:absolute;inset:10px;border:1px solid rgba(181,143,153,.12);pointer-events:none}.reason-photo{height:88px;margin:-4px -4px 18px;position:relative;background:linear-gradient(135deg,#eee7df,#d9c8c0);overflow:hidden}.reason-photo:after{content:"♡";position:absolute;inset:0;display:grid;place-items:center;font:38px var(--font-editorial);color:rgba(255,255,255,.65)}.reason-number{font-family:var(--font-editorial);font-size:13px;letter-spacing:.16em;color:#a8836e}.reason-card h3{font-family:var(--font-ar);font-size:22px;line-height:1.55;color:#594945;margin:8px 0}.reason-card p{font-family:var(--font-ar);font-size:15px;line-height:1.8;color:#8a7770;margin:0}.reason-card .tape{position:absolute;top:8px;left:50%;width:62px;height:16px;transform:translateX(-50%) rotate(-2deg);background:rgba(212,190,161,.35)}
.message-jar-section{position:relative;min-height:850px;padding:120px 0;background:#d9c3a3;overflow:hidden}.jar-paper-texture{position:absolute;inset:0;opacity:.35;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:9px 9px}.jar-wrap{position:relative;text-align:center}.message-jar{position:relative;width:230px;height:330px;margin:30px auto 35px;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 25px 25px rgba(72,51,37,.2));transition:transform .35s}.message-jar:hover{transform:translateY(-8px) rotate(-1deg)}.jar-lid{position:absolute;top:30px;left:36px;width:158px;height:34px;border-radius:8px 8px 13px 13px;background:linear-gradient(#7c5b4b,#4d382f);box-shadow:inset 0 5px 0 rgba(255,255,255,.15)}.jar-neck{position:absolute;top:54px;left:54px;width:122px;height:52px;background:rgba(255,249,238,.72);border:2px solid rgba(110,76,57,.35);border-bottom:0}.jar-body{position:absolute;top:82px;left:25px;width:180px;height:205px;border-radius:35px 35px 45px 45px;background:linear-gradient(100deg,rgba(255,255,255,.76),rgba(244,230,204,.5));border:2px solid rgba(110,76,57,.28);box-shadow:inset 12px 0 20px rgba(255,255,255,.32),inset -12px 0 25px rgba(110,76,57,.08);overflow:hidden}.jar-body b{position:absolute;inset:0;display:grid;place-items:center;font:60px var(--font-editorial);color:rgba(139,101,73,.3)}.jar-paper{position:absolute;width:45px;height:16px;background:#f8efd9;border:1px solid #c8ad83;box-shadow:0 4px 8px rgba(80,56,37,.15)}.jar-paper.p1{left:18px;top:55px;transform:rotate(16deg)}.jar-paper.p2{right:18px;top:90px;transform:rotate(-12deg)}.jar-paper.p3{left:50px;bottom:42px;transform:rotate(-7deg)}.jar-ribbon{position:absolute;z-index:3;top:5px;left:50%;transform:translateX(-50%) rotate(-5deg);width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#a97985;color:white;font:25px var(--font-editorial);box-shadow:0 8px 20px rgba(80,48,54,.25)}.message-jar small{position:absolute;bottom:3px;left:0;right:0;font:11px var(--font-editorial);letter-spacing:.2em;color:#5f473a}.random-message{width:min(650px,90vw);min-height:110px;margin:auto;padding:26px 30px;background:#f5ead3;border:1px solid rgba(108,75,49,.22);box-shadow:0 18px 35px rgba(75,51,34,.12);font-family:var(--font-ar);font-size:20px;line-height:1.9;color:#614c41;transform:rotate(-.5deg)}.random-message.show{animation:paperReveal .55s ease}@keyframes paperReveal{0%{opacity:0;transform:translateY(10px) rotate(-2deg)}100%{opacity:1;transform:translateY(0) rotate(-.5deg)}}
.mini-player{width:min(820px,92vw);margin:45px auto 38px;padding:17px 20px;display:flex;gap:18px;align-items:center;background:rgba(255,255,255,.68);border:1px solid rgba(166,136,96,.2);box-shadow:0 18px 45px rgba(68,50,44,.09);backdrop-filter:blur(12px)}.record-wrap{position:relative;width:82px;height:82px;flex:0 0 82px}.vinyl{width:82px;height:82px;border-radius:50%;background:repeating-radial-gradient(circle,#201d1b 0 2px,#3a3632 3px 4px);display:grid;place-items:center;box-shadow:0 8px 18px rgba(0,0,0,.25)}.vinyl:before{content:"";width:25px;height:25px;border-radius:50%;background:#b58c73;border:5px solid #eee5dc}.vinyl i{position:absolute;width:7px;height:7px;border-radius:50%;background:#fff}.vinyl.playing{animation:spinVinyl 3.2s linear infinite}@keyframes spinVinyl{to{transform:rotate(360deg)}}.player-play{position:absolute;z-index:3;inset:24px;width:34px;height:34px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(55,44,40,.8);color:#fff;display:grid;place-items:center;cursor:pointer}.player-play span{font-size:11px;margin-left:2px}.player-info{flex:1}.player-top,.player-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;font:11px var(--font-editorial);letter-spacing:.08em;color:#7d6960}.player-top{margin-bottom:10px}.player-bottom{margin-top:7px}.player-bottom button{border:0;background:none;color:#9a6f7a;font:12px var(--font-editorial);cursor:pointer}.mini-player input[type=range]{width:100%;accent-color:#a87984;cursor:pointer}.mini-player input[type=range]::-webkit-slider-runnable-track{height:3px;background:#d9c8bf}.mini-player input[type=range]::-webkit-slider-thumb{margin-top:-5px}
.wish-section{padding:115px 0;background:linear-gradient(180deg,#f5ebe7,#fbfaf7)}.wish-inner{display:flex;justify-content:center}.wish-card{width:min(680px,92vw);padding:50px 46px;text-align:center;background:rgba(255,255,255,.8);border:1px solid rgba(166,136,96,.18);box-shadow:0 30px 80px rgba(76,56,49,.1);position:relative}.wish-card:before{content:"";position:absolute;inset:13px;border:1px solid rgba(166,136,96,.13);pointer-events:none}.wish-card h2{font:48px var(--font-ruqaa);color:#51433f;margin:5px 0 12px}.wish-card>p:not(.eyebrow){font:18px/1.9 var(--font-ar);color:#88766f}.wish-card textarea{position:relative;width:100%;min-height:150px;margin-top:20px;padding:18px 20px;resize:vertical;border:1px solid rgba(157,119,102,.2);background:#fffdfa;font:18px/1.9 var(--font-ar);color:#5d4b45;outline:none}.wish-card textarea:focus{border-color:#b98b96;box-shadow:0 0 0 4px rgba(185,139,150,.1)}.wish-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:13px}.wish-bottom span{font:11px var(--font-editorial);color:#a08b82}.wish-bottom button{border:0;background:#3e3431;color:#fff;padding:14px 23px;font:16px var(--font-ar);cursor:pointer;box-shadow:0 12px 24px rgba(45,35,31,.14)}.wish-status{min-height:24px;margin-top:15px;font:15px var(--font-ar);color:#9c6d78}.wish-status.ok{color:#70866f}.wish-status.error{color:#a45f6e}
@media(max-width:900px){.reasons-grid{grid-template-columns:repeat(2,1fr);gap:22px 15px}.reason-card{min-height:225px}.mini-player{padding:13px}.record-wrap,.vinyl{width:68px;height:68px;flex-basis:68px}.player-play{inset:18px}.message-jar-section{min-height:760px}}
@media(max-width:560px){.reasons-grid{grid-template-columns:1fr 1fr}.reason-card{min-height:215px;padding:20px 16px}.reason-photo{height:65px}.reason-card h3{font-size:19px}.reason-card p{font-size:14px}.message-jar{transform:scale(.9)}.mini-player{gap:11px}.record-wrap,.vinyl{width:58px;height:58px;flex-basis:58px}.player-play{inset:13px;width:32px;height:32px}.player-top{font-size:9px}.player-bottom{font-size:9px}.wish-card{padding:40px 22px}.wish-card h2{font-size:40px}.wish-bottom{gap:10px;align-items:flex-end}.wish-bottom button{padding:12px 16px}}
