
:root{--night:#0c1028;--night-2:#171b3b;--ink:#181c3a;--muted:#6d708a;--blue:#8db7ff;--violet:#b6a2ff;--lilac:#e5ddff;--paper:#f7f5ff;--white:#fff;--line:#dfdded;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--script:'Caveat',cursive;--max:1120px;--shadow:0 22px 60px #11132a18}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:82px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--sans);overflow-x:hidden}img,video{display:block;max-width:100%}a{color:inherit}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid #769fff;outline-offset:4px}.skip-link{position:absolute;top:-60px;left:16px;z-index:20;background:white;padding:8px 12px}.skip-link:focus{top:8px}
.site-header{height:76px;position:absolute;z-index:10;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100vw - var(--max))/2),5vw);color:#fff}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:12px;letter-spacing:.11em;text-transform:uppercase}.brand-mark{font:600 18px var(--serif);letter-spacing:0}.brand-mark span{color:#b6a2ff;font-size:14px;padding:0 2px}.site-header nav{display:flex;gap:32px}.site-header nav a{text-decoration:none;color:#deddf1;font-size:12px;letter-spacing:.04em;transition:color .2s}.site-header nav a:hover{color:#fff}.menu-toggle{display:none}
.hero{position:relative;min-height:730px;height:min(850px,100svh);min-height:min(790px,100svh);display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:110px max(calc((100vw - var(--max))/2),7vw) 90px;overflow:hidden;color:#fff;background:radial-gradient(ellipse at 73% 43%,#30366f 0,#171c43 27%,transparent 56%),linear-gradient(115deg,#0c1028,#11152f 62%,#171633)}.sky-grain{position:absolute;inset:0;opacity:.55;background-image:radial-gradient(1px 1px at 10% 21%,#fff 99%,transparent),radial-gradient(1px 1px at 37% 63%,#fff 99%,transparent),radial-gradient(1px 1px at 56% 18%,#fff 99%,transparent),radial-gradient(1.5px 1.5px at 82% 16%,#d8ceff 99%,transparent),radial-gradient(1px 1px at 93% 75%,#fff 99%,transparent),radial-gradient(1px 1px at 31% 88%,#fff 99%,transparent),radial-gradient(1px 1px at 68% 86%,#fff 99%,transparent);background-size:340px 300px;pointer-events:none}.moon{position:absolute;top:14%;right:14%;width:78px;height:78px;border-radius:50%;background:linear-gradient(135deg,#ecedff,#aca9de);box-shadow:0 0 42px #a8a3ff70;opacity:.8}.hero-copy{z-index:1;max-width:490px}.eyebrow{margin:0 0 22px;text-transform:uppercase;letter-spacing:.19em;font-size:10px;font-weight:700;color:#beb1ff}.eyebrow-dark{color:#777aa2}.eyebrow-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#9fbfff;margin:0 9px 1px 0;box-shadow:0 0 10px #a6c5ff}.hero h1{font:500 clamp(68px,8.2vw,112px)/.94 var(--serif);letter-spacing:-.065em;margin:0 0 30px}.hero h1 em,.section h2 em,.section-heading h2 em,.counter-band h2 em{font-weight:500;color:#b9a9ff}.hero-intro{color:#e0e0f0;max-width:420px;font-size:15px;line-height:1.85;margin:0 0 15px}.hero-note{font:500 19px/1.3 var(--script);color:#b4c8ff;margin:0 0 35px}.button{min-height:48px;padding:0 22px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;gap:22px;text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.035em;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-light{color:#171a37;background:#fff}.button-light span{font-size:16px;color:#735bce}.hero-art{position:relative;z-index:1;min-height:460px;display:flex;align-items:center;justify-content:center}.window{position:absolute;width:175px;height:274px;padding:12px 12px 0;border:1px solid #d3d5f15c;border-radius:100px 100px 4px 4px;background:linear-gradient(160deg,#ffffff20,#bfc4ff08);box-shadow:0 18px 55px #07091f50;backdrop-filter:blur(5px)}.window-left{transform:translate(-106px,-5px)}.window-right{transform:translate(106px,24px)}.window-label,.window-caption{display:block;text-align:center;color:#c8c8ea;font-size:9px;letter-spacing:.14em;text-transform:uppercase}.window-label{margin:6px 0 10px}.window-caption{padding:10px 0;font:500 18px var(--script);letter-spacing:0;text-transform:none;color:#fff}.window-view{position:relative;height:187px;border-radius:90px 90px 2px 2px;overflow:hidden;background:linear-gradient(#222854,#665d9b 70%,#e7adca)}.window-view:after{content:"";position:absolute;bottom:0;left:0;right:0;height:47px;background:linear-gradient(160deg,#252e59,#494170)}.window-moon{position:absolute;top:40px;right:33px;width:25px;height:25px;border-radius:50%;background:#f1e9cb;box-shadow:0 0 20px #fff2cc}.star{position:absolute;color:#fff8d9;font-style:normal}.s1{top:32px;left:36px}.s2{top:80px;left:85px;font-size:12px}.s3{top:110px;right:22px}.window-horizon{position:absolute;bottom:39px;width:100%;height:2px;background:#ffdfcd9c;z-index:1}.connection{position:absolute;z-index:2;width:220px;border-top:1px dashed #c6bdff89;transform:translate(0,18px)}.connection span{position:absolute;left:calc(50% - 13px);top:-13px;padding:0 6px;color:#fff;background:#222750;font-size:16px}.orbit{position:absolute;border:1px solid #bab1ff20;border-radius:50%;width:380px;height:270px}.orbit-two{width:450px;height:340px;transform:rotate(-29deg);border-color:#8eb5ff17}.art-caption{position:absolute;bottom:9px;font:500 16px var(--script);color:#c9c3ef;letter-spacing:.06em}.constellation{position:absolute;color:#fbf7da;font-size:11px}.constellation-one{top:40px;left:30px}.constellation-two{right:4px;bottom:75px}.constellation i,.constellation b{display:inline-block;width:45px;border-top:1px solid #cabdff48;transform:rotate(26deg);margin:0 5px}.constellation b{width:28px;transform:rotate(-18deg)}.scroll-cue{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;text-decoration:none;text-transform:uppercase;letter-spacing:.18em;color:#8588ac;font-size:8px}.scroll-cue span{display:block;width:1px;height:25px;background:linear-gradient(#b9adff,transparent)}
.section{padding:105px max(calc((100vw - var(--max))/2),7vw)}.intro-section{padding-bottom:85px;background:#f8f7fc}.section-heading h2,.section h2,.counter-band h2{font:500 clamp(39px,5vw,58px)/1.12 var(--serif);letter-spacing:-.04em;margin:0 0 20px}.section-heading h2 em,.section h2 em{color:#7665bd}.story-grid{display:grid;grid-template-columns:390px 1fr;gap:100px;align-items:center;margin:52px 0 85px}.polaroid{margin:0;padding:12px 12px 0;background:white;box-shadow:var(--shadow);transform:rotate(-2.5deg)}.polaroid img{width:100%;height:450px;object-fit:cover;object-position:center 48%}.polaroid figcaption{padding:13px 4px 15px;font:500 16px var(--script);color:#4b4a66}.polaroid figcaption span{display:block;font:10px var(--sans);color:#85849b;margin-top:2px}.story-copy{max-width:500px}.story-copy p{color:#545670;margin:0 0 19px;line-height:1.9}.story-copy strong{color:#51418d;font-family:var(--serif);font-size:22px;font-weight:500}.story-copy .handwritten{font:600 26px var(--script);color:#6c59b5;margin:24px 0}.text-link{font-size:12px;text-decoration:none;color:#50458a;border-bottom:1px solid #b6add6;padding-bottom:5px}.text-link span{margin-left:12px}.timeline-strip{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:50px;padding-top:30px}.timeline-item{position:relative;padding-right:20px}.timeline-dot{position:absolute;top:-36px;left:0;width:9px;height:9px;border-radius:50%;background:#8d7bcc;box-shadow:0 0 0 5px #e9e6f4}.timeline-item .eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:9px}.timeline-item h3{font:500 23px var(--serif);margin:0 0 6px}.timeline-item p:last-child{margin:0;color:#777891;font-size:12px;line-height:1.7}.future-item .timeline-dot{background:#a9c7ff}.counter-band{position:relative;overflow:hidden;text-align:center;padding:82px 20px 74px;color:white;background:radial-gradient(ellipse at 50% 110%,#6860a7 0,#2c2f64 40%,#171b3c 80%)}.counter-band:before,.counter-band:after{content:"";position:absolute;width:300px;height:300px;border:1px solid #d4d1ff18;border-radius:50%;top:-180px;left:8%}.counter-band:after{width:400px;height:400px;left:auto;right:3%;top:10%}.counter-band .eyebrow{margin-bottom:12px}.counter-band h2{font-size:38px;margin-bottom:26px}.counter{display:flex;align-items:center;justify-content:center;gap:20px}.counter>div{display:grid;justify-items:center;min-width:95px}.counter strong{font:500 50px/1 var(--serif);color:white}.counter span{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:#c9c9e4;margin-top:8px}.counter>i{font:300 25px var(--serif);color:#b3a8eb}.counter-caption{font-size:12px;color:#e0ddf6;margin:25px 0 3px}.counter-footnote{font-size:10px;color:#aaaed1;margin:0}.counter-spark{position:absolute;top:53px;right:16%;color:#ddceff;font-size:22px}
.memories-section{padding-top:103px;padding-bottom:103px}.center-heading{text-align:center;margin:0 auto 48px}.center-heading .eyebrow{margin-bottom:15px}.center-heading h2{margin-bottom:12px}.center-heading>p:last-child{font-size:13px;color:#777891}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.memory-card{position:relative;min-width:0;overflow:hidden;background:white;box-shadow:0 12px 32px #191a3312;transition:transform .25s,box-shadow .25s}.memory-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px #191a3320}.memory-visual{height:255px;background:#e8e5f5;position:relative;overflow:hidden}.memory-visual img,.memory-visual video{width:100%;height:100%;object-fit:cover}.memory-visual img{cursor:zoom-in}.memory-card:nth-child(2) .memory-visual img{object-position:center 34%}.memory-card:nth-child(3) .memory-visual img{object-position:center 34%}.memory-card:nth-child(4) .memory-visual img{object-position:center 43%}.memory-card:nth-child(5) .memory-visual img{object-position:center 47%}.memory-card figcaption{padding:14px 17px 17px}.memory-type{display:block;margin-bottom:5px;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:#8579bd}.memory-title{font:500 19px/1.25 var(--serif);margin:0 0 3px;color:#272849}.memory-detail{font-size:11px;color:#7e7f98;margin:0}.quote-card{display:flex;flex-direction:column;justify-content:space-between;min-height:320px;padding:25px;background:linear-gradient(150deg,#fff,#f0edff)}.quote-card:nth-child(8){background:linear-gradient(150deg,#f4f7ff,#ece8ff)}.quote-mark{font:60px/.75 var(--serif);color:#8d7dcc}.quote-text{font:italic 21px/1.5 var(--serif);color:#343357;margin:15px 0 22px}.quote-translation{font-size:11px;color:#767790;margin-top:-12px}.quote-byline{border-top:1px solid #dcd8ec;padding-top:11px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#757596}.gallery-note{text-align:center;margin:30px 0 0;color:#8989a0;font-size:10px}
.reasons-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px;background:linear-gradient(115deg,#171b3a,#25234d);color:#fff;padding-top:92px;padding-bottom:96px}.reasons-section .section-heading{align-self:center}.reasons-section .section-heading>p:last-child{font-size:12px;color:#aaaed0}.reasons-section h2 em{color:#b5a2ff}.reason-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.reason-card{position:relative;min-height:158px;padding:20px;background:#ffffff0a;border:1px solid #ffffff1a;cursor:pointer;transition:background .2s,transform .2s;perspective:700px}.reason-card:hover{background:#ffffff13;transform:translateY(-2px)}.reason-card:focus-visible{outline:2px solid #c4b6ff;outline-offset:3px}.reason-front,.reason-back{transition:opacity .22s,transform .22s}.reason-card .number{color:#aaa1e4;font-size:9px;letter-spacing:.15em}.reason-front h3{font:500 19px/1.28 var(--serif);margin:14px 0 0}.reason-front:after{content:"↗";position:absolute;right:18px;bottom:15px;color:#aca2d6;font-size:12px}.reason-back{display:none;font-size:12px;color:#e1e0f2;line-height:1.7}.reason-card.is-open .reason-front{display:none}.reason-card.is-open .reason-back{display:block}
.letter-section{text-align:center;background:#f9f8fc;padding-top:96px;padding-bottom:100px}.letter-ornament{font-size:22px;color:#9082c6;margin-bottom:13px}.letter-section .eyebrow{margin-bottom:12px}.letter-section h2{margin-bottom:8px}.letter-teaser{font-size:12px;color:#7a7b96;margin:0 auto 26px}.button-dark{border:0;background:#24264d;color:#fff;cursor:pointer}.button-dark:hover{background:#393567}.letter-paper{max-width:650px;margin:34px auto 0;text-align:left;padding:42px 54px;background:#fffdf9;border:1px solid #ebe6da;box-shadow:0 20px 60px #29233c12;color:#55536b;animation:unfold .45s ease both}.letter-paper p{font:14px/1.9 var(--serif);margin:0 0 16px}.letter-paper .letter-date{font:600 21px var(--script);color:#615594}.letter-signoff{font:600 21px var(--script)!important;color:#64549e!important;margin-top:23px!important}.letter-signoff span{font:500 14px var(--script);color:#8077a3}@keyframes unfold{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.future-section{min-height:540px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;background:linear-gradient(110deg,#10142f,#171637);color:white;padding-top:82px;padding-bottom:82px}.future-copy{max-width:460px}.future-copy .eyebrow{margin-bottom:15px}.future-copy h2{margin-bottom:22px}.future-copy h2 em{color:#b3a1ff}.future-copy>p:not(.eyebrow){font-size:13px;line-height:1.9;color:#cccee2;margin:0 0 16px}.button-outline{margin-top:16px;border:1px solid #9590c4;color:white}.button-outline:hover{background:#ffffff12}.future-sky{height:330px;position:relative;overflow:hidden;border-radius:190px 190px 4px 4px;background:radial-gradient(ellipse at 50% 110%,#8d76af 0,#3b4079 43%,#1a2046 85%);border:1px solid #c5c3ff3a}.future-sky:before{content:"";position:absolute;width:60px;height:60px;right:19%;top:18%;border-radius:50%;background:#e9e5cf;box-shadow:0 0 40px #fff5d4a0}.future-star{position:absolute;color:#fff6da}.f1{top:20%;left:20%}.f2{top:37%;left:47%}.f3{top:16%;right:34%}.future-line{position:absolute;top:57%;left:16%;width:68%;border-top:1px dashed #e8dafaab;transform:rotate(-5deg)}.future-heart{position:absolute;top:calc(57% - 13px);left:calc(50% - 9px);font-size:17px;color:white}.future-hill{position:absolute;bottom:-100px;width:80%;height:180px;border-radius:50% 50% 0 0}.hill-one{left:-15%;background:#252a56}.hill-two{right:-28%;bottom:-123px;background:#33335f}.future-label{position:absolute;top:61%;font:500 14px var(--script);color:#ddd6f4}.label-one{left:10%}.label-two{right:10%}
footer{min-height:100px;padding:22px max(calc((100vw - var(--max))/2),7vw);display:flex;align-items:center;justify-content:space-between;gap:16px;background:#0a0d22;color:#b5b6ce}footer .brand{font-size:9px;color:#dad9ec}footer .brand-mark{font-size:15px}footer p{font:500 17px var(--script);margin:0;color:#d4cef2}footer .footer-year{font-size:10px;color:#8285a7}
.lightbox{width:min(92vw,760px);max-height:92vh;border:0;background:#11142e;color:white;padding:18px;box-shadow:0 20px 100px #0009}.lightbox::backdrop{background:#080a18df;backdrop-filter:blur(7px)}.lightbox-close{display:block;margin:0 0 10px auto;width:36px;height:36px;border:1px solid #ffffff4a;border-radius:50%;background:transparent;color:white;font-size:24px;line-height:1;cursor:pointer}.lightbox #lightbox-content img,.lightbox #lightbox-content video{max-height:72vh;width:auto;max-width:100%;margin:auto;object-fit:contain}.lightbox #lightbox-caption{text-align:center;color:#d7d6ec;font:500 17px var(--serif);margin:12px 0 2px}
@media(max-width:900px){.hero{padding-left:6vw;padding-right:6vw;grid-template-columns:1fr .9fr}.hero-art{transform:scale(.88)}.story-grid{grid-template-columns:330px 1fr;gap:60px}.memory-grid{grid-template-columns:repeat(2,1fr)}.reasons-section{grid-template-columns:1fr;gap:35px}.reason-grid{max-width:740px}.section{padding-left:7vw;padding-right:7vw}}
@media(max-width:650px){html{scroll-padding-top:65px}.site-header{height:64px;padding:0 22px}.site-header nav{display:none;position:absolute;top:60px;left:14px;right:14px;padding:18px;background:#191d40;border:1px solid #ffffff20;box-shadow:0 10px 35px #0004;flex-direction:column;gap:14px}.site-header nav.is-open{display:flex}.site-header nav a{padding:5px}.menu-toggle{display:grid;gap:5px;width:38px;height:38px;align-content:center;justify-content:center;border:1px solid #ffffff4b;background:#ffffff08;color:white}.menu-toggle span{display:block;width:16px;border-top:1px solid white}.hero{height:auto;min-height:880px;display:flex;flex-direction:column;justify-content:flex-start;padding:125px 25px 70px}.hero-copy{width:100%;max-width:490px}.hero .eyebrow{font-size:9px}.hero h1{font-size:78px;margin-bottom:23px}.hero-intro{font-size:14px;max-width:380px}.hero-note{margin-bottom:25px}.hero-art{width:100%;min-height:365px;margin:8px 0 0;transform:scale(.8)}.moon{top:9%;right:12%;width:50px;height:50px}.window-left{transform:translate(-83px,-4px)}.window-right{transform:translate(83px,17px)}.scroll-cue{bottom:18px}.section{padding:75px 24px}.section-heading h2,.section h2{font-size:42px}.story-grid{grid-template-columns:1fr;gap:38px;margin:32px auto 68px;max-width:440px}.polaroid{max-width:330px;margin:0 auto;width:90%}.polaroid img{height:390px}.story-copy{padding:0 4px}.timeline-strip{grid-template-columns:1fr;gap:25px;padding-left:20px;border-top:0;border-left:1px solid var(--line);margin-left:5px}.timeline-item{padding:0 0 2px 10px}.timeline-dot{left:-25px;top:4px}.counter-band{padding:68px 18px 63px}.counter-band h2{font-size:31px}.counter strong{font-size:43px}.counter{gap:12px}.counter>div{min-width:78px}.memory-grid{grid-template-columns:1fr;max-width:440px;margin:auto;gap:16px}.memory-visual{height:260px}.quote-card{min-height:260px}.center-heading{margin-bottom:35px}.gallery-note{max-width:290px;margin:24px auto 0;line-height:1.7}.reasons-section{padding-top:72px;padding-bottom:72px}.reason-grid{gap:9px}.reason-card{min-height:154px;padding:15px}.reason-front h3{font-size:17px}.reason-back{font-size:11px}.letter-section{padding-top:75px;padding-bottom:75px}.letter-paper{padding:30px 23px}.letter-paper p{font-size:13px}.future-section{grid-template-columns:1fr;gap:40px;padding-top:72px;padding-bottom:72px}.future-sky{height:270px;width:100%;max-width:450px;margin:auto}.future-copy{max-width:480px}.future-copy h2{font-size:44px}footer{padding:24px;flex-wrap:wrap}footer p{order:3;width:100%;text-align:center}footer .footer-year{margin-left:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.question-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px 60px;align-items:center;background:#eeecf8}.question-section .eyebrow{grid-column:1/-1;margin:0}.question-section h2{font-size:clamp(34px,4vw,48px);margin:0}.question-section h2 em{color:#7665bd}.question-card{position:relative;padding:27px 30px;background:#fff;border:1px solid #e5e1f1;box-shadow:0 12px 32px #1a1c3510}.question-card p{font:500 22px/1.5 var(--serif);color:#343456;margin:0 0 15px;max-width:480px}.question-spark{position:absolute;right:24px;top:17px;color:#8e7bc8;font-size:20px}.question-button{border:0;background:transparent;padding:0 0 5px;cursor:pointer}.surprise-note{max-width:420px;margin:20px 0 0;padding:16px 18px;border-left:2px solid #b5a2ff;background:#ffffff0c;color:#e2dff5;font:500 19px/1.45 var(--script)}.back-link{display:inline-block;margin:17px 0 0 17px;color:#bab5da;font-size:10px;text-decoration:none;letter-spacing:.04em}.missing-image{height:100%;min-height:200px;display:grid;place-items:center;color:#69678d;font-size:12px}
.rituals-section{background:#f1eff8;padding-top:88px;padding-bottom:91px}.rituals-section .center-heading{margin-bottom:35px}.ritual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.ritual-card{position:relative;padding:24px 23px 25px;min-height:207px;background:#fff;border:1px solid #e6e2f0;box-shadow:0 10px 28px #1719320a}.ritual-index{font-size:9px;letter-spacing:.15em;color:#9292a9}.ritual-icon{float:right;color:#7b6abc;font-size:19px}.ritual-card h3{font:500 21px var(--serif);margin:20px 0 8px}.ritual-card p{margin:0;color:#74758e;font-size:12px;line-height:1.8;max-width:290px}
@media(max-width:650px){.question-section{grid-template-columns:1fr;gap:22px}.question-section .eyebrow{grid-column:1}.question-section h2{font-size:36px}.question-card{padding:23px 21px}.question-card p{font-size:20px}.back-link{display:block;margin:16px 0 0}}
@media(max-width:650px){.rituals-section{padding-top:70px;padding-bottom:72px}.ritual-grid{grid-template-columns:1fr}.ritual-card{min-height:170px;padding:20px}.ritual-card h3{margin:14px 0 5px}}

/* Midnight romance palette and keepsake interactions. */
body{background:#080b18;color:#ecebfa}
.intro-section,.memories-section,.rituals-section,.question-section{background:#0c1122;color:#ecebfa}
.reasons-section{background:#10152b;color:#f1efff}
.letter-section{background:#080b18;color:#f1efff}
.section-heading h2,.section h2,.section-heading h2 em,.section h2 em{color:#f1efff}
.section-heading h2 em,.section h2 em,.question-section h2 em{color:#c1a9ff}
.eyebrow-dark{color:#aebaff}
.section-heading>p:last-child,.story-copy p,.story-copy strong,.timeline-item h3,.timeline-item p:last-child,.center-heading>p:last-child{color:#c7c8df}
.story-copy strong{color:#d8c2ff}
.story-copy .handwritten{color:#c5b3ff}
.polaroid{background:#141a30;box-shadow:0 22px 60px #0008}
.polaroid figcaption{color:#eeeafd}.polaroid figcaption span{color:#a8abc8}
.timeline-strip{border-color:#343955}.timeline-dot{box-shadow:0 0 0 5px #202641}
.text-link{color:#d9ceff;border-color:#8575bd}
.memory-card,.ritual-card,.question-card{background:#141a30;border:1px solid #343955;box-shadow:0 15px 45px #0005;color:#eeeafd}
.memory-visual{background:#090d19}
.memory-visual img{object-fit:cover}
.memory-card:nth-child(1) .memory-visual img,.memory-card:nth-child(2) .memory-visual img,.memory-card:nth-child(3) .memory-visual img{object-fit:contain;background:#090d19}
.memory-card:nth-child(2) .memory-visual img,.memory-card:nth-child(3) .memory-visual img{object-position:center}
.memory-title,.ritual-card h3,.question-card p{color:#f0edff}
.memory-detail,.ritual-card p,.gallery-note{color:#b4b7d2}
.memory-type,.ritual-index{color:#b6a5ff}
.quote-card,.quote-card:nth-child(8){background:linear-gradient(145deg,#1b2040,#11162b);border-color:#424367}
.quote-text{color:#f0ebff}.quote-byline{color:#c3bfdf;border-color:#484760}
.quote-mark,.ritual-icon,.question-spark{color:#c6aaff}
.read-note{display:inline-flex;align-items:center;gap:12px;min-height:44px;justify-content:center;align-self:flex-start;border:1px solid #7869ac;border-radius:999px;padding:0 16px;background:#a68af52b;color:#f4efff;cursor:pointer}
.read-note:hover,.song-card:hover{background:#b69aff28;box-shadow:0 0 28px #9679ff25}
.ritual-card{box-shadow:0 12px 32px #0004}
.letter-teaser{color:#bfc2df}.letter-paper{background:#151a30;color:#eae8fa;border:1px solid #373b5b;box-shadow:0 20px 60px #0007}
.letter-date,.letter-signoff{color:#e4d5ff}
.question-card .text-link{color:#ddd2ff}
.future-section{background:#0c1122;color:#ecebfa}
.back-link{color:#c4c0e4}
.counter-band{background:radial-gradient(ellipse at 50% 110%,#453868 0,#1c2349 47%,#0b1122 85%)}
footer{background:#070a15;color:#bcbdd6;border-top:1px solid #292d48}
.story-photo img{height:auto;max-height:650px;object-fit:contain;object-position:center;background:#070a12}
.soundtrack-section{background:radial-gradient(ellipse at 50% 0,#211c42,#0b1020 70%);color:#f1efff}
.song-list{max-width:820px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.song-card{display:grid;grid-template-columns:42px 1fr auto 24px;align-items:center;gap:12px;min-height:72px;padding:12px 18px;border:1px solid #363754;border-radius:8px;background:#151a30;color:#f2eeff;text-decoration:none;transition:background .2s,box-shadow .2s}
.song-number,.song-artist{color:#aaaed0;font-size:11px}.song-title{font:500 18px/1.2 var(--serif)}
.song-favorite{border-color:#9e83ef;box-shadow:0 0 24px #aa8bff1b}.song-favorite .song-title:after{content:"  ♡";color:#cfb6ff;font:14px var(--sans)}
.song-open{color:#cbb7ff}
.note-dialog{position:fixed;width:min(720px,calc(100% - 28px));max-height:min(84vh,850px);overflow:auto;padding:clamp(26px,5vw,52px);border:1px solid #5c5680;border-radius:14px;background:#11162a;color:#efedfc;box-shadow:0 30px 100px #000b}
.note-dialog::backdrop{background:#02040bd9;backdrop-filter:blur(7px)}
.note-dialog-close{position:sticky;float:right;top:0;width:44px;height:44px;border:1px solid #716891;border-radius:50%;background:#211e3a;color:#fff;font-size:25px;cursor:pointer}
.note-dialog h2{margin:5px 50px 24px 0;font:500 clamp(26px,5vw,40px)/1.2 var(--serif);color:#d7c7ff}
.note-dialog-content{white-space:pre-wrap;font-size:15px;line-height:1.9;color:#e1e0f4}
.intro-section,.memories-section,.rituals-section,.reasons-section,.letter-section,.question-section,.future-section{background-image:radial-gradient(1px 1px at 13% 17%,#d7ccff70 99%,transparent),radial-gradient(1px 1px at 77% 11%,#adcaff65 99%,transparent),radial-gradient(1px 1px at 48% 73%,#fff7d94d 99%,transparent),radial-gradient(1.5px 1.5px at 91% 66%,#d4c7ff60 99%,transparent)}
.soundtrack-section{background-image:radial-gradient(1px 1px at 18% 18%,#d7ccff70 99%,transparent),radial-gradient(1px 1px at 84% 28%,#adcaff65 99%,transparent),radial-gradient(1px 1px at 54% 88%,#fff7d94d 99%,transparent),radial-gradient(ellipse at 50% 0,#211c42,#0b1020 70%)}
@media(max-width:760px){.song-list{grid-template-columns:1fr}}
.intro-overlay{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100%;margin:0;padding:24px;border:0;background:radial-gradient(ellipse at 50% 38%,#242047,#0a0b1d 72%);color:#f3efff;text-align:center;overflow:auto}
.intro-overlay::backdrop{background:#050611;backdrop-filter:blur(10px)}
.intro-scene{position:relative;min-height:min(100%,760px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px;isolation:isolate}
.intro-glow{position:absolute;z-index:-1;width:min(80vw,520px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#9273e444 0,transparent 68%);filter:blur(18px)}
.intro-bouquet{width:min(76vw,340px);max-height:300px;overflow:visible;filter:drop-shadow(0 0 22px #a67df75a);transform-origin:50% 48%;transition:transform .75s ease,filter .75s ease}
.intro-bouquet.is-opening{transform:scale(1.06) rotate(-5deg);filter:drop-shadow(0 0 36px #c29affb5)}
.bouquet-flower{transform-box:fill-box;transform-origin:center;animation:flower-glimmer 3.2s ease-in-out infinite alternate}
.flower-two{animation-delay:.45s}.flower-three{animation-delay:.85s}.flower-four{animation-delay:1.25s}.flower-five{animation-delay:1.6s}
@keyframes flower-glimmer{from{filter:brightness(.96)}to{filter:brightness(1.14)}}
.intro-kicker{margin:4px 0 6px;color:#c9b7ff;text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:.2em}
.intro-overlay h1{margin:0;color:#fff;font:500 clamp(38px,7vw,58px)/1.12 var(--serif);letter-spacing:-.04em}
.intro-overlay h1 em{color:#c7adff;font-weight:500}
.intro-copy{margin:12px 0 24px;color:#c7c5dd;font:15px/1.7 var(--sans)}
.intro-enter{min-height:52px;padding-inline:26px;border:0;cursor:pointer;box-shadow:0 0 28px #a487ef40}
.intro-enter:disabled{opacity:.8;cursor:wait}
.intro-loader{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;margin-top:18px;color:#e5d9ff;font-size:13px;animation:loader-breathe 1.1s ease-in-out infinite alternate}
.intro-loader[hidden]{display:none}
.loader-stars{color:#d3baff;text-shadow:0 0 14px #b898ff;font-size:17px;animation:star-twinkle .7s ease-in-out infinite alternate}
@keyframes loader-breathe{to{opacity:.65;letter-spacing:.04em}}
@keyframes star-twinkle{to{filter:brightness(1.6);transform:scale(1.06)}}
.intro-skip{min-height:44px;margin-top:5px;padding:8px 16px;border:0;background:transparent;color:#aaa8c8;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.note-dialog-content img{display:block;width:min(100%,620px);height:auto;margin:0 auto 18px;border:1px solid #50496c;border-radius:8px}
@media(max-width:480px){.intro-overlay{padding:14px}.intro-scene{min-height:100%;padding:20px 10px}.intro-bouquet{width:min(75vw,290px)}.intro-copy{font-size:13px}}
@media(prefers-reduced-motion:reduce){.bouquet-flower,.loader-stars,.intro-loader{animation:none!important}.intro-bouquet{transition:none}}
.site-shell[hidden]{display:none!important}
.password-gate{position:fixed;inset:0;display:none;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:max(20px,env(safe-area-inset-top)) 18px max(20px,env(safe-area-inset-bottom));overflow:auto;border:0;background:radial-gradient(ellipse at 50% 38%,#20224c 0,#11152f 46%,#080b18 100%);color:#f4f0ff;color-scheme:dark}
.password-gate[open]{display:grid;place-items:center}
.password-gate::backdrop{background:#050611eF;backdrop-filter:blur(9px)}
.password-gate-sky{position:fixed;inset:0;overflow:hidden;pointer-events:none}
.gate-heart{position:absolute;color:#c5afff85;text-shadow:0 0 18px #a87cff65;font:26px var(--serif);animation:float-heart 8s ease-in-out infinite}
.heart-one{left:9%;top:18%;font-size:32px}.heart-two{right:12%;top:26%;animation-delay:-2s}.heart-three{left:17%;bottom:21%;font-size:18px;animation-delay:-4s}.heart-four{right:16%;bottom:18%;font-size:36px;animation-delay:-1s}.heart-five{right:28%;top:12%;font-size:17px;animation-delay:-5s}
@keyframes float-heart{0%,100%{transform:translate3d(0,0,0) rotate(-8deg);opacity:.42}50%{transform:translate3d(0,-17px,0) rotate(8deg);opacity:.9}}
.password-card{position:relative;width:min(100%,440px);padding:clamp(28px,7vw,48px);border:1px solid #a79bdb4f;border-radius:22px;background:linear-gradient(150deg,#202344ed,#11162ced);box-shadow:0 28px 90px #0008,0 0 45px #7d62cb20;text-align:center;backdrop-filter:blur(14px)}
.password-heart{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 13px;border:1px solid #c0aaff66;border-radius:50%;color:#e1ceff;font:29px/1 var(--serif);box-shadow:0 0 24px #a889ff45}
.password-card h1{margin:0;color:#fff;font:500 clamp(36px,8vw,48px)/1.13 var(--serif);letter-spacing:-.045em}
.password-subtitle{margin:11px 0 27px;color:#c7c4e0;font:15px/1.6 var(--sans)}
.password-label{display:block;margin:0 0 8px;color:#ddd9f2;text-align:left;font-size:12px;font-weight:600;letter-spacing:.04em}
.password-input-wrap{display:flex;align-items:center;min-height:56px;border:1px solid #77749f;border-radius:10px;background:#0d1125;transition:border-color .2s,box-shadow .2s}
.password-input-wrap:focus-within{border-color:#b79cff;box-shadow:0 0 0 3px #a488ee30}
.password-input-wrap input{min-width:0;min-height:54px;flex:1;padding:0 15px;border:0;outline:0;background:transparent;color:#fff;font:16px var(--sans)}
.password-input-wrap input::placeholder{color:#9292b1}
.password-input-wrap input[aria-invalid="true"]{color:#ffe7ef}
.password-toggle{min-width:56px;min-height:44px;margin-right:5px;padding:0 11px;border:0;border-left:1px solid #444461;background:transparent;color:#d7c7ff;font-size:12px;font-weight:700;cursor:pointer}
.password-help{margin:8px 0 0;color:#9fa2c0;text-align:left;font-size:11px}
.password-error{min-height:24px;margin:10px 0 3px;color:#ffb9cc;text-align:left;font-size:12px;line-height:1.5}
.password-submit{width:100%;min-height:54px;border:0;border-radius:9px;background:linear-gradient(105deg,#a8c6ff,#c2a0ff);color:#17152e;box-shadow:0 10px 28px #9b80e834;cursor:pointer}
.password-submit:hover{background:linear-gradient(105deg,#c3d7ff,#dbbaff)}
.site-lock{position:fixed;z-index:20;right:max(16px,calc((100vw - var(--max))/2));bottom:max(16px,env(safe-area-inset-bottom));display:inline-flex;min-height:46px;align-items:center;gap:8px;padding:0 16px;border:1px solid #897bbc;border-radius:999px;background:#12162beF;color:#efeaff;font-size:12px;font-weight:600;box-shadow:0 8px 28px #0007;cursor:pointer;backdrop-filter:blur(10px)}
.site-lock span{color:#cfb5ff;font-size:16px}
.site-lock:hover{border-color:#c5aaff;box-shadow:0 0 22px #ac8cff47}
.noscript-note{position:fixed;z-index:999;inset:auto 12px 12px;padding:14px;border:1px solid #9482cb;border-radius:10px;background:#17162a;color:#fff;text-align:center}
@media(max-width:480px){.password-gate{padding-inline:14px}.password-card{padding:29px 22px;border-radius:18px}.password-subtitle{font-size:14px;margin-bottom:23px}.site-lock{right:12px;bottom:max(12px,env(safe-area-inset-bottom));min-height:48px}}
@media(prefers-reduced-motion:reduce){.gate-heart{animation:none!important;opacity:.55}}
.music-dock{position:fixed;z-index:19;left:24px;bottom:max(18px,env(safe-area-inset-bottom));display:grid;width:min(350px,calc(100vw - 40px));grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 13px;border:1px solid #9a88cf75;border-radius:15px;background:linear-gradient(135deg,#171a33f5,#11152af5);color:#f2edff;box-shadow:0 16px 44px #0008,0 0 28px #9a7ce425;backdrop-filter:blur(15px)}
.music-dock[hidden]{display:none!important}
.music-dock-art{display:grid;width:42px;height:42px;place-items:center;border:1px solid #c5aaff83;border-radius:50%;background:radial-gradient(circle,#8e6fc35c,#242044);color:#eadbff;font:24px var(--serif);box-shadow:0 0 18px #aa88ff3b;animation:music-glow 3.6s ease-in-out infinite alternate}
@keyframes music-glow{to{box-shadow:0 0 25px #c3a3ff75;transform:scale(1.035)}}
.music-dock-copy{display:grid;min-width:0;line-height:1.35}
.music-dock-kicker{color:#c1aaff;font-size:8px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.music-dock-copy strong{overflow:hidden;color:#f7f3ff;font:500 14px/1.35 var(--serif);text-overflow:ellipsis;white-space:nowrap}
.music-dock-artist{color:#b7b8d2;font-size:10px}
.music-dock-controls{display:flex;gap:5px}
.music-control{display:grid;width:44px;height:44px;place-items:center;border:1px solid #696387;border-radius:50%;background:#262341;color:#f1eaff;font-size:15px;cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s}
.music-control:hover{border-color:#c5aaff;background:#483b6e;box-shadow:0 0 16px #ad8cff48}
.music-status{grid-column:1/-1;min-height:14px;margin:0;padding-left:2px;color:#aeb0ce;font-size:9px;line-height:1.45}
@media(max-width:480px){.music-dock{left:12px;bottom:max(74px,calc(env(safe-area-inset-bottom) + 62px));width:calc(100vw - 24px);grid-template-columns:40px minmax(0,1fr) auto;gap:9px;padding:10px 11px}.music-dock-art{width:38px;height:38px}.music-dock-copy strong{font-size:13px}.music-control{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.music-dock-art{animation:none!important}}

/* Accessible keyboard target and graceful media fallbacks for keepsakes. */
.memory-image-button {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}
.memory-image-button:focus-visible {
  position: relative;
  z-index: 2;
  outline: 3px solid #8e83c8;
  outline-offset: -3px;
}
.missing-video {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 176px;
  margin: 0;
  place-items: center;
  background: #e7e4f0;
  color: #69678d;
  font-size: 11px;
  text-align: center;
}
.memory-card { margin: 0; }
/* Audit fixes: reset the figure UA margin and strengthen small-text contrast. */
.memory-card { margin: 0; }
.eyebrow-dark { color: #666984; }
.timeline-item p:last-child { color: #686a80; }
.polaroid figcaption span { color: #66677d; }
.center-heading > p:last-child { color: #66677d; }
.memory-type { color: #65568e; }
.memory-detail { color: #66677e; }
.quote-translation { color: #62637a; }
.quote-byline { color: #625f79; }
.gallery-note { color: #66677d; }
.ritual-index { color: #66677d; }
.ritual-card p { color: #65667b; }
.missing-image, .missing-video { color: #5e5d7b; }

/* Narrow-screen refinements: preserve the desktop composition above 760px. */
@media (max-width: 760px) {
  .hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 900px;
    padding-top: 100px;
  }
  .hero-copy { width: min(100%, 590px); margin-inline: auto; }
  .hero-art {
    width: min(100%, 560px);
    min-height: 370px;
    margin: -4px auto 0;
    transform: scale(.8);
  }
  .story-grid { grid-template-columns: minmax(0, 1fr); gap: 42px; }
  .story-photo { width: min(100%, 360px); margin-inline: auto; }
  .story-copy { max-width: 620px; }
  .timeline-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 24px; }
  .timeline-item:last-child { grid-column: 1 / -1; }
}

@media (max-width: 650px) {
  .site-header nav { gap: 4px; }
  .site-header nav a {
    display: flex;
    min-height: 44px;
    align-items: center;
    padding: 8px;
  }
  .menu-toggle { width: 44px; height: 44px; flex: 0 0 44px; }
  .lightbox-close { width: 44px; height: 44px; }
  .question-button { display: inline-flex; min-height: 44px; align-items: center; }
  .memory-grid { width: min(100%, 480px); grid-template-columns: minmax(0, 1fr); margin-inline: auto; }
  .memory-card:nth-child(1) .memory-visual { height: 320px; }
  .memory-card:nth-child(2) .memory-visual,
  .memory-card:nth-child(3) .memory-visual {
    height: min(88vw, 390px);
    min-height: 280px;
  }
}

/* Keep the first chat screenshot intact in its thumbnail rather than cropping away context. */
.memory-card:nth-child(1) .memory-visual img {
  object-fit: contain;
  background: #171a30;
}

@media (max-width: 380px) {
  .hero .eyebrow { max-width: 100%; font-size: 8px; letter-spacing: .12em; }
  .hero-art { transform: scale(.7); }
  .window-left { transform: translate(-72px, -4px); }
  .window-right { transform: translate(72px, 17px); }
  .reason-grid { grid-template-columns: minmax(0, 1fr); }
  .reason-card { min-height: 0; padding: 17px; }
  .reason-front h3 { margin-top: 9px; }
}
@media (max-width: 650px) {
  .timeline-strip { grid-template-columns: minmax(0, 1fr); }
  .timeline-item:last-child { grid-column: auto; }
}

@media (max-width: 380px) {
  .hero h1 { font-size: clamp(58px, 17vw, 68px); }
  .section-heading h2, .section h2 { font-size: 36px; }
  .timeline-strip { grid-template-columns: minmax(0, 1fr); }
  .timeline-item:last-child { grid-column: auto; }
}
@media (max-width: 650px) {
  .site-header .brand, footer .brand { min-height: 44px; align-items: center; }
  .scroll-cue { min-height: 44px; padding-block: 8px; }
  .story-copy .text-link, .back-link { display: inline-flex; min-height: 44px; align-items: center; }
  .back-link { margin: 10px 0 0; }
}
