
:root{
  --bg:#0b080a; --bg2:#130d11; --wine:#711f32; --wine2:#3a101c;
  --gold:#d3af6b; --gold2:#8f7040; --cream:#f5ead9; --paper:#e9dbc5;
  --ink:#2c1b1f; --muted:#ab9b93; --line:rgba(211,175,107,.22);
  --hold:0%;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--cream);font-family:Inter,system-ui,sans-serif;overflow-x:hidden}
body.locked{overflow:hidden}
button{font:inherit}
img{display:block;max-width:100%}
::selection{background:#7b2b42;color:#fff}
.grain{position:fixed;inset:0;z-index:150;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' 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='.85'/%3E%3C/svg%3E")}
#sparkCanvas{position:fixed;inset:0;z-index:145;pointer-events:none;width:100%;height:100%}
.progress{position:fixed;left:0;right:0;top:0;height:2px;background:rgba(255,255,255,.06);z-index:210}
.progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--wine),var(--gold));box-shadow:0 0 14px rgba(211,175,107,.45)}
.story-nav{position:fixed;z-index:200;top:16px;left:18px;right:18px;display:flex;align-items:center;gap:10px;pointer-events:none;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#cabdaf;mix-blend-mode:normal}
.story-nav>*{pointer-events:auto}
.nav-crown{font-size:1rem;color:var(--gold)}
.heart-counter{margin-left:auto;border:1px solid rgba(211,175,107,.25);background:rgba(8,6,7,.55);backdrop-filter:blur(10px);padding:7px 10px;border-radius:99px;color:#cfbcae}
.heart-counter b{color:var(--gold)}
.secret-letter-nav{border:1px solid rgba(211,175,107,.45);background:rgba(113,31,50,.55);color:#fff1df;border-radius:99px;padding:7px 11px;cursor:pointer}

.prelude{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:#080607;transition:opacity 1s ease,visibility 1s}
.prelude.hide{opacity:0;visibility:hidden}
.prelude-glow{position:absolute;width:min(90vw,800px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(113,31,50,.32),transparent 62%);filter:blur(30px)}
.book-cover{position:relative;width:min(86vw,520px);min-height:min(78vh,700px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:54px 40px;border:1px solid #765d35;background:
radial-gradient(circle at 50% 0,rgba(211,175,107,.09),transparent 38%),
linear-gradient(145deg,#1b0e13,#080607 75%);box-shadow:0 40px 120px #000,inset 0 0 0 8px #0c0809,inset 0 0 0 9px rgba(211,175,107,.24)}
.book-cover:before,.book-cover:after{content:"";position:absolute;inset:19px;border:1px solid rgba(211,175,107,.25);pointer-events:none}
.book-cover:after{inset:27px;border-style:dotted;opacity:.4}
.cover-ornament{color:var(--gold);letter-spacing:.7em;margin-bottom:30px}
.smallcaps,.section-kicker{text-transform:uppercase;letter-spacing:.24em;font-size:.68rem;font-weight:600;color:var(--gold)}
.book-cover h1,.hero h1{font-family:"Cormorant Garamond",serif;font-weight:500;line-height:.75;margin:.22em 0;color:#f6e8cf}
.book-cover h1{font-size:clamp(4rem,14vw,7.5rem)}
.cover-line{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.35rem;color:#cab7a7;margin:20px 0}
.enter-button{display:flex;align-items:center;gap:28px;border:1px solid rgba(211,175,107,.5);border-radius:99px;background:rgba(113,31,50,.18);color:#f5e5d3;padding:14px 20px 14px 24px;margin-top:22px;cursor:pointer;transition:.3s}
.enter-button:hover{background:rgba(113,31,50,.48);transform:translateY(-2px)}
.enter-button i{font-style:normal;color:var(--gold)}
.tiny{position:absolute;bottom:39px;color:#746762;font-size:.62rem}

.hero,.finale{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden}
.hero-bg,.finale-bg{position:absolute;inset:-6%;background:url('assets/hero.webp') center 30%/cover no-repeat;will-change:transform;transform:scale(1.07)}
.hero-vignette,.finale-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,5,6,.17),rgba(7,5,6,.52) 52%,#0b080a 100%),linear-gradient(90deg,rgba(0,0,0,.22),transparent 50%,rgba(0,0,0,.22))}
.hero-copy{position:relative;z-index:2;text-align:center;width:min(900px,92vw);padding-top:8vh}
.hero h1{font-size:clamp(5rem,16vw,10rem);text-shadow:0 12px 70px #000}
.hero-sub{font:italic clamp(1.3rem,3vw,2rem) "Cormorant Garamond",serif;color:#ead8ca}
.hero-rule{display:flex;align-items:center;gap:12px;justify-content:center;color:var(--gold);margin:24px auto;max-width:360px}
.hero-rule span{height:1px;background:linear-gradient(90deg,transparent,var(--gold));flex:1}
.hero-rule span:last-child{background:linear-gradient(90deg,var(--gold),transparent)}
.scroll-copy{font:1.18rem/1.6 "Cormorant Garamond",serif;color:#d4c5bb}
.ghost-button{margin-top:15px;border:0;background:none;color:#d4bf9e;letter-spacing:.08em;cursor:pointer;padding:12px}

main{background:radial-gradient(circle at 50% 0,#211219 0,#0b080a 25%)}
.chapter,.memories,.art,.conchita,.reasons,.future{max-width:1460px;margin:auto;padding:13vh 6vw}
.prologue{text-align:center;max-width:1100px}
h2,h3,blockquote,.signature,.conchita-name{font-family:"Cormorant Garamond",serif}
section h2{font-size:clamp(3rem,7vw,6.2rem);font-weight:500;line-height:.92;margin:.18em 0 .38em}
section h2 em{font-weight:400;color:#d6bda7}
.lead{font:clamp(1.3rem,2.5vw,1.9rem)/1.55 "Cormorant Garamond",serif;color:#d4c5bb;max-width:900px;margin:0 auto}
.narrow{max-width:760px}
.ink-line{height:1px;width:min(450px,70vw);margin:52px auto 0;background:linear-gradient(90deg,transparent,var(--gold),transparent)}

.cinema-split,.portrait-section{max-width:1400px;margin:auto;padding:12vh 7vw;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:min(8vw,100px);position:relative}
.copy p,.portrait-copy p{line-height:1.9;color:#c7b8af;max-width:620px}
.copy blockquote{font-size:clamp(2rem,4vw,3.3rem);font-style:italic;color:#ebd4bf;margin:1.1em 0 0}
.hero-photo{margin:0;height:min(75vh,820px);position:relative;overflow:hidden;border:1px solid rgba(211,175,107,.24);box-shadow:0 50px 100px rgba(0,0,0,.35)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo figcaption{position:absolute;left:18px;right:18px;bottom:17px;padding:11px 13px;background:rgba(9,6,7,.64);backdrop-filter:blur(10px);font:italic .95rem "Cormorant Garamond",serif;color:#decfc3}

.section-note{color:#a99a92;max-width:720px;line-height:1.7}
.memory-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:130px;gap:12px;margin-top:34px}
.memory{position:relative;padding:0;border:0;background:#111;cursor:pointer;overflow:hidden;grid-column:span 3;grid-row:span 3}
.memory.m2,.memory.m7{grid-row:span 4}
.memory.m4,.memory.m8{grid-column:span 6}
.memory img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.03);transition:transform .65s ease,filter .4s}
.memory:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.7));transition:.4s}
.memory span{position:absolute;z-index:2;left:15px;bottom:13px;color:#f0e1d3;font:.86rem "Cormorant Garamond",serif;letter-spacing:.07em}
.memory:hover img{transform:scale(1.045);filter:saturate(1)}
.memory:hover:after{background:linear-gradient(180deg,transparent 50%,rgba(70,17,31,.68))}

.library{position:relative;min-height:100svh;display:grid;align-items:center;overflow:hidden}
.library-bg{position:absolute;inset:0;background:url('assets/bookshelf.webp') center/cover no-repeat;filter:brightness(.46) saturate(.8);transform:scale(1.04)}
.library-fade{position:absolute;inset:0;background:linear-gradient(90deg,#0b080a 0,rgba(11,8,10,.94) 35%,rgba(11,8,10,.45) 68%,rgba(11,8,10,.1))}
.library-content{position:relative;z-index:2;width:min(720px,88vw);margin-left:7vw;padding:90px 0}
.library-content p{line-height:1.9;color:#cbbcb2}
.spines{display:grid;grid-template-columns:repeat(4,1fr);align-items:end;gap:8px;height:210px;margin:36px 0 22px}
.spines button{height:100%;border:1px solid rgba(211,175,107,.28);background:linear-gradient(90deg,#180e12,#3b1722,#180e12);color:#d7c4b2;writing-mode:vertical-rl;transform:rotate(180deg);padding:14px 10px;cursor:pointer;letter-spacing:.08em;transition:.3s}
.spines button:nth-child(2){height:88%;background:linear-gradient(90deg,#130f16,#2d2430,#130f16)}
.spines button:nth-child(3){height:96%;background:linear-gradient(90deg,#1b120d,#4e2b19,#1b120d)}
.spines button:nth-child(4){height:82%;background:linear-gradient(90deg,#0e1318,#20313b,#0e1318)}
.spines button:hover,.spines button.active{transform:rotate(180deg) translateY(-10px);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.spines span{color:var(--gold);margin-bottom:12px}
.book-reveal{min-height:94px;border-left:2px solid var(--gold2);padding:12px 18px;background:rgba(16,9,12,.58);display:flex;align-items:center;gap:16px}
.bookmark{font-family:"Cormorant Garamond",serif;color:var(--gold);font-size:2rem}
.book-reveal p{margin:0;font-family:"Cormorant Garamond",serif;font-size:1.35rem;line-height:1.4;color:#ebdccf}

.museum-gallery{display:grid;gap:28px;margin-top:36px}
.museum-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.museum-piece{padding:16px;background:linear-gradient(#151014,#0e0b0d);border:1px solid var(--line)}
.art-open{display:block;border:0;background:none;padding:0;width:100%;cursor:zoom-in}
.museum-frame{display:grid;place-items:center;background:#050505;border:10px solid #21160f;outline:1px solid rgba(211,175,107,.48);box-shadow:inset 0 0 0 1px #654c2a,0 20px 50px rgba(0,0,0,.35);overflow:hidden;transition:.35s}
.museum-frame.landscape{aspect-ratio:2.22/1}
.museum-frame.portrait{height:min(67vw,680px)}
.museum-frame img{width:100%;height:100%;object-fit:contain}
.art-open:hover .museum-frame{transform:translateY(-4px)}
.museum-label{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:16px 2px 4px}
.museum-label h3{font-size:1.9rem;margin:0}
.museum-label p{margin:2px 0;color:#9f9188;font-size:.78rem}
.museum-label>span{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.art-thought{color:#b8aaa1;line-height:1.7}

.conchita{text-align:center;position:relative}
.conchita-name{font-size:clamp(3.8rem,11vw,8rem);line-height:.8;color:#cfae75;margin:.05em 0 .3em;letter-spacing:.08em}
.dog-stage{position:relative;max-width:980px;height:min(67vw,720px);margin:56px auto 32px}
.dog-main{position:absolute;inset:0 13%;margin:0;overflow:hidden;border:1px solid var(--line)}
.dog-main img{width:100%;height:100%;object-fit:cover}
.dog-polaroid{position:absolute;width:27%;aspect-ratio:4/5;background:#eee2d2;padding:9px 9px 28px;margin:0;box-shadow:0 22px 50px rgba(0,0,0,.45)}
.dog-polaroid img{width:100%;height:100%;object-fit:cover}
.dog-polaroid.p1{left:0;bottom:-2%;transform:rotate(-7deg)}
.dog-polaroid.p2{right:0;top:8%;transform:rotate(7deg)}
.paw-button{border:1px solid rgba(211,175,107,.45);background:#181014;color:#ecdccc;border-radius:99px;padding:13px 20px;cursor:pointer}
.paw-message{color:#8f827b;font-size:.8rem}
.paw-secret{width:min(630px,88vw);margin:20px auto 0;padding:22px;border:1px solid var(--line);background:#140e11}
.paw-secret span{font-size:1.7rem}
.paw-secret p{font:italic 1.35rem "Cormorant Garamond",serif;color:#e6d5c7;margin:8px 0}

.escorial{min-height:90vh;padding:12vh 7vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:center;background:radial-gradient(circle at 80% 30%,rgba(113,31,50,.18),transparent 35%)}
.escorial-copy p{color:#c0b0a7;line-height:1.8;max-width:530px}
.muted{color:#81736d!important}
.postcard{position:relative;border:0;background:none;padding:0;aspect-ratio:1.55;cursor:pointer;perspective:1200px;color:inherit}
.postcard>span{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:8%;backface-visibility:hidden;transition:transform .9s cubic-bezier(.2,.7,.2,1);box-shadow:0 35px 90px rgba(0,0,0,.35)}
.postcard-front{background:
linear-gradient(rgba(236,220,196,.9),rgba(236,220,196,.9)),
repeating-linear-gradient(0deg,transparent 0 29px,rgba(90,66,47,.12) 30px);color:#43292d;transform:rotateY(0)}
.postcard-front:before{content:"";position:absolute;inset:12px;border:1px solid rgba(95,64,42,.28)}
.postcard-back{background:#1b1115;color:#ecdcca;border:1px solid rgba(211,175,107,.35);transform:rotateY(180deg)}
.postcard.flipped .postcard-front{transform:rotateY(-180deg)}
.postcard.flipped .postcard-back{transform:rotateY(0)}
.postcard b{font:500 clamp(1.8rem,4vw,3.8rem) "Cormorant Garamond",serif;max-width:650px}
.postcard i{font:italic 1.15rem "Cormorant Garamond",serif;margin-top:18px}
.postcard em{font-style:normal;font-size:.62rem;letter-spacing:.17em;margin-top:26px}
.postcard small{margin-top:22px;color:#bdaa9c;max-width:520px;line-height:1.6}

.reason-stack{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-top:36px}
.reason-card{height:240px;border:1px solid var(--line);background:linear-gradient(180deg,#221219,#100b0e);color:#d9c5b6;writing-mode:vertical-rl;transform:rotate(180deg);padding:16px 13px;cursor:pointer;transition:.35s;letter-spacing:.06em}
.reason-card:hover,.reason-card.active{transform:rotate(180deg) translateY(-14px);background:linear-gradient(180deg,#5d1a2d,#1a0c11)}
.reason-card span{color:var(--gold);font-size:.72rem;margin-bottom:14px}
.reason-reveal{margin-top:24px;min-height:110px;display:grid;place-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px;text-align:center;font:italic clamp(1.4rem,3vw,2.1rem) "Cormorant Garamond",serif;color:#ebd7c7}

.future{position:relative}
.future-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:36px}
.future-card{position:relative;min-height:300px;border:0;background:none;padding:0;perspective:1000px;cursor:pointer;color:inherit}
.future-card>span{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:26px;border:1px solid var(--line);backface-visibility:hidden;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.future-card .front{background:linear-gradient(145deg,#171014,#0d0a0b)}
.future-card .back{transform:rotateY(180deg);justify-content:center;background:#e5d6bf;color:#372126;font:1.4rem/1.45 "Cormorant Garamond",serif}
.future-card.flipped .front{transform:rotateY(-180deg)}
.future-card.flipped .back{transform:rotateY(0)}
.future-card b{color:var(--gold);font:400 1rem "Cormorant Garamond",serif}
.future-card strong{font:500 2.2rem "Cormorant Garamond",serif}

.portrait-triptych{display:grid;grid-template-columns:1fr 1fr;height:min(70vh,760px);gap:10px}
.portrait-triptych img{width:100%;height:100%;object-fit:cover;filter:saturate(.84)}
.promise{padding:14vh 6vw;display:grid;place-items:center;background:linear-gradient(180deg,#0b080a,#171014,#0b080a)}
.promise-paper{position:relative;width:min(900px,92vw);padding:clamp(38px,7vw,88px);background:#eadcc8;color:#2d1b20;box-shadow:0 50px 120px rgba(0,0,0,.43)}
.promise-paper:before{content:"";position:absolute;inset:14px;border:1px solid rgba(89,50,45,.22)}
.promise-paper .section-kicker{color:#8f6547}
.promise-paper h2{color:#51222d}
.promise-paper p{font:1.28rem/1.65 "Cormorant Garamond",serif}
.promise-paper blockquote{font-size:clamp(2.4rem,5vw,4.8rem);line-height:.95;font-style:italic;color:#7b2337;margin:1em 0}
.signature{text-align:right;font-size:2rem}

.finale-bg{background-image:url('assets/hero.webp');filter:saturate(.8)}
.finale-copy{position:relative;z-index:2;text-align:center;width:min(820px,90vw)}
.finale h2{font-size:clamp(3.2rem,8vw,6.5rem);margin:.15em 0}
.finale-copy>p:not(.smallcaps){font:1.35rem "Cormorant Garamond",serif;color:#d6c7bc}
.hold-button{position:relative;width:116px;height:116px;border-radius:50%;border:0;background:#120c0f;color:#f2dfce;margin-top:34px;cursor:pointer}
.hold-ring{position:absolute;inset:-6px;border-radius:50%;background:conic-gradient(var(--gold) var(--hold),rgba(255,255,255,.1) 0);mask:radial-gradient(circle,transparent 60%,#000 62%)}
.hold-text{position:absolute;inset:0;display:grid;place-items:center;font-size:.72rem;line-height:1.3;padding:20px}
.hold-hint{font-size:.72rem!important;color:#8f8179!important}

.secret-heart{position:absolute;z-index:20;width:34px;height:34px;border:1px solid rgba(211,175,107,.28);border-radius:50%;background:rgba(12,8,10,.45);color:#a7824d;cursor:pointer;opacity:.48;transition:.3s}
.secret-heart:hover{opacity:1;transform:scale(1.12)}
.secret-heart.found{opacity:1;color:#f2cf8c;background:#711f32;animation:heartPop .55s}
.h1{right:7%;bottom:13%}.h2{left:3%;bottom:16%}.h3{right:4%;top:28%}.h4{right:8%;bottom:9%}.h5{left:5%;bottom:8%}
@keyframes heartPop{50%{transform:scale(1.45)}}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s ease}
.reveal.visible{opacity:1;transform:none}

dialog{border:1px solid rgba(211,175,107,.35);background:#130d10;color:#f2e3d5;border-radius:5px;box-shadow:0 40px 120px #000}
dialog::backdrop{background:rgba(0,0,0,.77);backdrop-filter:blur(7px)}
.text-dialog{width:min(580px,92vw);padding:44px 35px;text-align:center}
.dialog-heart{color:var(--gold)}
.text-dialog p{font:italic 1.8rem/1.4 "Cormorant Garamond",serif}
.close-dialog{position:absolute;z-index:5;right:11px;top:8px;border:0;background:none;color:#eee;font-size:2rem;cursor:pointer}
.close-dialog.dark{color:#2b1a20}
.art-dialog{width:min(1200px,96vw);max-width:none;padding:0;background:#050505}
.art-dialog-stage{display:grid;place-items:center;min-height:60vh;max-height:83vh;padding:24px}
.art-dialog-stage img{max-width:100%;max-height:76vh;width:auto;height:auto}
.art-dialog-meta{display:flex;justify-content:space-between;gap:18px;align-items:baseline;padding:16px 22px;border-top:1px solid var(--line)}
.art-dialog-meta h3{font-size:1.7rem;margin:0}.art-dialog-meta p{color:#9c8d84;font-size:.78rem;text-align:right}
.secret-dialog{width:min(740px,94vw);padding:0;background:none;border:0}
.secret-paper{position:relative;background:#eadcc8;color:#2c1b20;padding:clamp(38px,7vw,72px);border:1px solid #b99968}
.secret-paper:before{content:"";position:absolute;inset:13px;border:1px solid rgba(76,42,40,.2)}
.secret-paper h2{font-size:clamp(2.7rem,6vw,4.5rem);margin:.25em 0;color:#5f2030}
.secret-paper p{font:1.2rem/1.65 "Cormorant Garamond",serif}
.secret-sign{text-align:right;font-style:italic;margin-top:30px!important}

.ending{position:fixed;inset:0;z-index:500;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity 1s ease;background:#060405}
.ending.show{opacity:1;visibility:visible}
.ending-bg{position:absolute;inset:0;background:url('assets/fountain.webp') center/cover no-repeat;filter:brightness(.28) saturate(.8)}
.ending-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(91,19,39,.12),rgba(5,3,4,.85))}
#confettiCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ending-content{position:relative;z-index:2;text-align:center;width:min(900px,92vw)}
.ending-crown{display:block;font-size:3rem;color:var(--gold)}
.ending-content>p:first-of-type{text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;color:#d2b777}
.ending-content h2{font:500 clamp(5rem,15vw,10rem)/.75 "Cormorant Garamond",serif;margin:.25em 0;color:#f5e3cf;text-shadow:0 12px 70px #000}
.ending-rule{width:min(300px,60vw);height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:30px auto}
.ending-small{font:italic 1.5rem "Cormorant Garamond",serif;color:#d8c6b8}
#replay{border:1px solid rgba(211,175,107,.44);background:rgba(20,10,13,.6);color:#ead9c8;border-radius:99px;padding:12px 18px;margin-top:18px;cursor:pointer}

@media(max-width:800px){
  .story-nav{top:10px;left:10px;right:10px}
  #chapterLabel{display:none}
  .book-cover{min-height:72svh}
  .hero-bg{background-position:52% center}
  .cinema-split,.portrait-section,.escorial{grid-template-columns:1fr;padding:10vh 5vw;gap:45px}
  .hero-photo{height:62vh}
  .memory-grid{grid-template-columns:1fr 1fr;grid-auto-rows:140px}
  .memory,.memory.m4,.memory.m8{grid-column:span 1;grid-row:span 2}
  .memory.m2,.memory.m7{grid-row:span 3}
  .library-content{margin:0 6vw;width:auto}
  .library-fade{background:linear-gradient(90deg,rgba(11,8,10,.97),rgba(11,8,10,.65))}
  .spines{height:180px}
  .museum-pair{grid-template-columns:1fr}
  .museum-piece{padding:11px}
  .museum-frame.portrait{height:68vh}
  .dog-stage{height:75vh;margin-top:36px}
  .dog-main{inset:4% 7% 10%}
  .dog-polaroid{width:34%}
  .dog-polaroid.p1{bottom:0}.dog-polaroid.p2{top:0}
  .escorial{min-height:auto}
  .reason-stack{grid-template-columns:repeat(3,1fr);row-gap:16px}
  .reason-card{height:180px}
  .future-grid{grid-template-columns:1fr 1fr}
  .future-card{min-height:230px}
  .portrait-triptych{height:56vh;order:2}
  .portrait-copy{order:1}
}
@media(max-width:500px){
  section h2{font-size:clamp(2.8rem,15vw,4.5rem)}
  .heart-counter{font-size:.6rem}
  .secret-letter-nav{font-size:.6rem}
  .memory-grid{gap:7px}
  .spines{gap:4px}
  .spines button{font-size:.7rem;padding:10px 6px}
  .future-grid{grid-template-columns:1fr}
  .future-card{min-height:220px}
  .reason-stack{grid-template-columns:repeat(2,1fr)}
  .dog-stage{height:64vh}
  .museum-frame.portrait{height:64vh}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}


/* =========================
   V3 — MIDNIGHT / CINEMA OPENING
   ========================= */
.midnight-wrap{position:absolute;top:max(22px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:6;text-align:center;width:min(90vw,520px)}
.midnight-label{display:block;color:#8e7b70;font-size:.6rem;letter-spacing:.26em;margin-bottom:5px}
.midnight-wrap strong{font:italic 1rem "Cormorant Garamond",serif;color:#d8c3ae;font-weight:400}
.book-scene{position:relative;width:min(86vw,520px);min-height:min(78svh,700px);perspective:1600px;transform-style:preserve-3d}
.book-page,.book-cover{position:absolute;inset:0;transform-origin:left center;backface-visibility:hidden}
.book-page{display:grid;place-items:center;text-align:center;background:#e9dcc7;color:#2b1a20;border:1px solid #a4875a;box-shadow:0 40px 120px #000,inset 0 0 0 12px #dfcfb7,inset 0 0 0 13px rgba(89,54,45,.18)}
.book-page:after{content:"";position:absolute;inset:25px;border:1px solid rgba(91,54,48,.22)}
.page-inner{position:relative;z-index:2;padding:38px}
.page-crown{display:block;font-size:2.4rem;color:#7d563b}
.book-page h2{font:500 clamp(3rem,11vw,5rem)/.9 "Cormorant Garamond",serif;margin:.25em 0;color:#5f2734}
.book-page p:not(.smallcaps){font:italic 1.25rem "Cormorant Garamond",serif;color:#735f55}
.page-heart{display:block;margin-top:26px;color:#7b2639}
.book-cover{min-height:0;width:auto;transform:rotateY(0deg);transition:transform 1.45s cubic-bezier(.18,.8,.18,1),box-shadow .8s;z-index:3}
.book-scene.opened .book-cover{transform:rotateY(-166deg);box-shadow:0 0 0 transparent}
.book-scene.opened{animation:bookLift 1.7s ease both}
@keyframes bookLift{50%{transform:scale(1.015)}100%{transform:scale(.98)}}
.opening-caption{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:20px;right:20px;text-align:center;font:italic 1rem "Cormorant Garamond",serif;color:#8f7f76;opacity:0;transition:.5s}
.opening-caption.show{opacity:1}

/* =========================
   ROYAL SEAL
   ========================= */
.royal-interlude{max-width:1000px;margin:auto;padding:10vh 6vw 14vh;display:grid;grid-template-columns:1fr auto;gap:7vw;align-items:center;border-top:1px solid rgba(211,175,107,.1)}
.royal-copy p{color:#a99b93;line-height:1.7}
.royal-seal{width:150px;height:150px;border-radius:50%;border:8px double rgba(80,20,37,.9);background:radial-gradient(circle at 42% 35%,#a8495e,#6f1d32 55%,#3e0f1d);color:#f0cda0;box-shadow:0 22px 50px rgba(0,0,0,.38),inset 0 0 20px rgba(0,0,0,.35);cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:.62rem;letter-spacing:.12em;transition:.35s}
.royal-seal:hover{transform:rotate(-4deg) scale(1.05)}
.seal-crown{font-size:2.3rem;line-height:1}
.royal-dialog{width:min(760px,94vw);padding:0;border:0;background:none}
.decree-paper{position:relative;background:#eadcc7;color:#2d1c21;padding:clamp(40px,7vw,78px);border:1px solid #ac8d5f;box-shadow:0 35px 100px #000}
.decree-paper:after{content:"";position:absolute;inset:14px;border:1px solid rgba(92,54,47,.24)}
.decree-crown{text-align:center;font-size:3rem;color:#855c3f}
.decree-paper h2{text-align:center;font:500 clamp(3rem,8vw,5rem) "Cormorant Garamond",serif;color:#67283a;margin:.1em 0 .35em}
.decree-paper p,.decree-paper li{font:1.15rem/1.55 "Cormorant Garamond",serif}
.decree-paper ul{padding-left:1.4em}
.decree-final{text-align:center;font-style:italic;margin-top:28px!important;color:#72263a}
.decree-sign{text-align:right;font:italic 1.3rem "Cormorant Garamond",serif;margin-top:25px}

/* =========================
   QUEEN NOTES
   ========================= */
.queen-notes{padding:12vh 6vw;max-width:1300px;margin:auto}
.queen-notes-inner{display:grid;grid-template-columns:1fr auto;gap:6vw;align-items:center}
.queen-crown{grid-row:1/3;grid-column:2;width:190px;height:190px;border-radius:50%;border:1px solid rgba(211,175,107,.35);background:radial-gradient(circle,rgba(113,31,50,.45),rgba(14,9,11,.85));color:#d8b76d;font-size:6rem;cursor:pointer;transition:.35s;box-shadow:0 0 0 12px rgba(211,175,107,.025)}
.queen-crown:hover{transform:scale(1.04) rotate(3deg);box-shadow:0 0 60px rgba(113,31,50,.28)}
.queen-note{grid-column:1/3;border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:110px;display:grid;place-items:center;text-align:center;padding:20px;font:italic clamp(1.5rem,3.4vw,2.4rem) "Cormorant Garamond",serif;color:#ead5c4}

/* =========================
   SCRATCH REVEAL
   ========================= */
.scratch-section{max-width:1200px;margin:auto;padding:13vh 6vw}
.scratch-copy{text-align:center}
.scratch-wrap{position:relative;width:min(850px,92vw);aspect-ratio:1.85;margin:42px auto 18px;border:1px solid rgba(211,175,107,.3);overflow:hidden;touch-action:none;box-shadow:0 35px 90px rgba(0,0,0,.33)}
.scratch-message{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:7%;background:radial-gradient(circle at 50% 20%,#efe1cc,#dcc7a9);color:#352127}
.scratch-crown{font-size:2rem;color:#80583d}
.scratch-message p{font:1.25rem "Cormorant Garamond",serif;margin:.5em 0;color:#6e594f}
.scratch-message strong{font:italic 600 clamp(1.8rem,4vw,3.2rem)/1 "Cormorant Garamond",serif;max-width:690px;color:#67263a}
.scratch-message small{margin-top:24px;color:#876f63}
#scratchCanvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}
.scratch-hint{text-align:center;color:#887a73;font-size:.78rem}

/* =========================
   SPHYNX FUTURE
   ========================= */
.sphynx-card .front{overflow:hidden}
.sphynx-mark{position:absolute;right:14px;bottom:12px;width:58%;height:auto;fill:none;stroke:rgba(211,175,107,.56);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Mobile memory experience becomes swipe-first */
@media(max-width:800px){
  .memory-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:4px 7vw 18px;margin-left:-5vw;margin-right:-5vw;scrollbar-width:none}
  .memory-grid::-webkit-scrollbar{display:none}
  .memory,.memory.m2,.memory.m4,.memory.m7,.memory.m8{flex:0 0 78vw;height:58vh;min-height:430px;grid-column:auto;grid-row:auto;scroll-snap-align:center}
  .royal-interlude{grid-template-columns:1fr;text-align:center}
  .royal-seal{margin:auto;width:135px;height:135px}
  .queen-notes-inner{grid-template-columns:1fr;text-align:center}
  .queen-crown{grid-column:auto;grid-row:auto;margin:auto;width:150px;height:150px;font-size:4.6rem}
  .queen-note{grid-column:auto}
  .scratch-wrap{aspect-ratio:1.1}
  .scratch-message{padding:9%}
}
@media(max-width:500px){
  .book-scene{width:88vw;min-height:70svh}
  .book-cover{padding:42px 28px}
  .book-cover h1{font-size:clamp(4rem,18vw,6rem)}
  .midnight-wrap strong{font-size:.9rem}
  .queen-crown{width:132px;height:132px}
  .scratch-wrap{width:90vw;aspect-ratio:.92}
  .scratch-message strong{font-size:2rem}
}

/* Final promise */
.final-promise-button{border:1px solid rgba(211,175,107,.45);background:rgba(113,31,50,.42);color:#f0ddca;border-radius:99px;padding:12px 17px;margin:10px 8px 4px;cursor:pointer}
.final-promise{width:min(620px,88vw);margin:18px auto 8px;padding:18px;border-top:1px solid rgba(211,175,107,.3);border-bottom:1px solid rgba(211,175,107,.3)}
.final-promise p{font:1rem "Cormorant Garamond",serif!important;margin:0 0 7px!important;color:#b6a69c!important}
.final-promise strong{font:italic 1.6rem "Cormorant Garamond",serif;color:#ecd7c3;font-weight:500}


/* V4 enhancements */
.secret-letter-nav.subtle{
  background:rgba(17,11,14,.52);
  border-color:rgba(211,175,107,.28);
  color:#cfbda7;
}

.memory-marquee{
  overflow:hidden;
  margin: 16px 0 20px;
  border-top:1px solid rgba(211,175,107,.12);
  border-bottom:1px solid rgba(211,175,107,.12);
  color:#b99f81;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.memory-marquee span{
  display:inline-block;
  padding:10px 0;
  min-width:200%;
  animation:marqueeFlow 18s linear infinite;
}
@keyframes marqueeFlow{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

.memory{
  border:1px solid rgba(211,175,107,.14);
  box-shadow:0 18px 45px rgba(0,0,0,.18);
  isolation:isolate;
}
.memory:before{
  content:"TAP";
  position:absolute;
  top:12px;
  right:12px;
  z-index:2;
  background:rgba(10,7,8,.55);
  border:1px solid rgba(211,175,107,.3);
  color:#eedcc8;
  font-size:.58rem;
  letter-spacing:.16em;
  padding:6px 8px;
  border-radius:999px;
  backdrop-filter:blur(8px);
  opacity:.9;
}
.memory:after{
  background:linear-gradient(180deg,transparent 46%,rgba(0,0,0,.76));
}
.memory img{
  transition:transform .7s ease, filter .45s ease;
}
.memory:hover img{
  transform:scale(1.065);
}
.memory:nth-child(odd){
  animation:floatMemoryA 5.5s ease-in-out infinite;
}
.memory:nth-child(even){
  animation:floatMemoryB 6.2s ease-in-out infinite;
}
@keyframes floatMemoryA{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-4px)}
}
@keyframes floatMemoryB{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(4px)}
}
.memory.active-memory{
  transform:scale(.985);
}
.memory-dialog-title{
  display:block;
  color:var(--gold);
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.72rem;
  margin:2px 0 6px;
}
.memory-dialog-foot{
  display:block;
  color:#9b8d86;
  margin-top:6px;
}
.heart-hint-dialog h3{
  margin:.35em 0 .5em;
  font-family:"Cormorant Garamond",serif;
  font-size:2rem;
  font-weight:500;
}
#heartHintContent{
  text-align:left;
  font-family:"Cormorant Garamond",serif;
  font-size:1.2rem;
  line-height:1.5;
}
#heartHintContent ul{
  margin:10px 0 0;
  padding-left:1.2em;
}
#heartHintContent li{
  margin:6px 0;
}
#heartHintContent .done{
  color:#c8b9ad;
  opacity:.72;
  text-decoration:line-through;
}
#heartHintContent .todo{
  color:#f1dcc7;
}
.royal-seal, .queen-crown, .paw-button, .hold-button{
  touch-action:manipulation;
}

.seven-years{
  max-width:1380px;
  margin:auto;
  padding:12vh 6vw;
}
.year-cards{
  margin-top:32px;
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:12px;
}
.year-cards article{
  min-height:240px;
  padding:18px 16px;
  background:linear-gradient(180deg,#1a1014,#0d0a0d);
  border:1px solid rgba(211,175,107,.18);
  transition:.35s;
  position:relative;
  overflow:hidden;
}
.year-cards article:before{
  content:"";
  position:absolute;
  inset:auto -20% 0 auto;
  width:80px;
  height:80px;
  background:radial-gradient(circle,rgba(113,31,50,.25),transparent 70%);
}
.year-cards article:hover{
  transform:translateY(-8px);
  border-color:rgba(211,175,107,.38);
}
.year-cards span{
  display:block;
  color:var(--gold);
  font-family:"Cormorant Garamond",serif;
  font-size:2rem;
  margin-bottom:10px;
}
.year-cards h3{
  font-size:1.7rem;
  margin:.2em 0;
}
.year-cards p{
  color:#c9bbb1;
  line-height:1.7;
  font-size:.95rem;
}
.seven-quote{
  margin-top:28px;
  text-align:center;
}
.seven-quote blockquote{
  font-size:clamp(2rem,4vw,3.1rem);
  color:#ead6c4;
  margin:0 auto;
  max-width:980px;
}

.pitstop{
  position:relative;
  max-width:1380px;
  margin:auto;
  padding:13vh 6vw;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:4vw;
  align-items:center;
}
.pitstop-track{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.25;
  background:
    repeating-linear-gradient(90deg, transparent 0 48px, rgba(255,255,255,.04) 48px 56px),
    linear-gradient(180deg, transparent 0 36%, rgba(211,175,107,.10) 36% 37%, transparent 37% 63%, rgba(211,175,107,.10) 63% 64%, transparent 64%);
  mask:linear-gradient(180deg, transparent, #000 12%, #000 88%, transparent);
}
.pitstop-copy{
  position:relative;
  z-index:2;
}
.pitstop-copy p{
  color:#c8b7ad;
  line-height:1.85;
  max-width:720px;
}
.pitstop-copy blockquote{
  font-size:clamp(2.3rem,4.5vw,3.6rem);
  color:#ecd7c3;
  margin:1em 0 0;
  font-style:italic;
}
.pitstop-panel{
  position:relative;
  z-index:2;
  padding:28px;
  min-height:260px;
  border:1px solid rgba(211,175,107,.26);
  background:
    radial-gradient(circle at top right, rgba(113,31,50,.28), transparent 45%),
    linear-gradient(145deg,#171014,#0d0a0c);
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  box-shadow:0 28px 60px rgba(0,0,0,.25);
}
.pitstop-panel .dash{
  color:var(--gold);
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.78rem;
}
.pitstop-panel strong{
  font-family:"Cormorant Garamond",serif;
  font-size:2.7rem;
  font-weight:500;
}
.pitstop-panel small{
  color:#b8aaa1;
  line-height:1.6;
}

.secret-heart{
  animation:heartBeacon 2.2s ease-in-out infinite;
}
@keyframes heartBeacon{
  0%,100%{box-shadow:0 0 0 rgba(211,175,107,0)}
  50%{box-shadow:0 0 20px rgba(211,175,107,.18)}
}

@media(max-width:1100px){
  .year-cards{
    grid-template-columns:repeat(3,1fr);
  }
}
@media(max-width:800px){
  .year-cards{
    grid-template-columns:repeat(2,1fr);
  }
  .pitstop{
    grid-template-columns:1fr;
  }
  .pitstop-panel{
    min-height:auto;
  }
}
@media(max-width:500px){
  .year-cards{
    grid-template-columns:1fr;
  }
  .memory:before{
    font-size:.54rem;
    padding:5px 7px;
  }
  .pitstop-copy blockquote{
    font-size:2rem;
  }
}


/* V5 tocha */
.gift-nav{
  background:linear-gradient(180deg, rgba(123,41,64,.32), rgba(31,16,22,.72));
  border-color:rgba(211,175,107,.34);
  color:#f0dec8;
}
.gift-nav:hover{transform:translateY(-2px)}

.why-you{
  max-width:1280px;
  margin:auto;
  padding:12vh 6vw;
}
.vow-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:28px;
}
.vow-card{
  text-align:left;
  padding:22px 20px;
  border:1px solid rgba(211,175,107,.18);
  background:linear-gradient(180deg, rgba(25,15,19,.94), rgba(11,9,12,.98));
  transition:.35s;
  box-shadow:0 20px 50px rgba(0,0,0,.18);
}
.vow-card span{
  display:block;
  color:var(--gold);
  font-family:"Cormorant Garamond",serif;
  font-size:2rem;
  margin-bottom:10px;
}
.vow-card strong{
  display:block;
  font-family:"Cormorant Garamond",serif;
  font-size:1.8rem;
  font-weight:500;
  margin-bottom:4px;
}
.vow-card small{
  color:#b8aba1;
}
.vow-card:hover,.vow-card.active{
  transform:translateY(-8px);
  border-color:rgba(211,175,107,.42);
  box-shadow:0 28px 70px rgba(92,28,47,.26);
}
.vow-reveal{
  margin-top:20px;
  min-height:152px;
  padding:24px 24px;
  border:1px solid rgba(211,175,107,.16);
  background:rgba(18,12,15,.68);
  color:#ecddd0;
  line-height:1.9;
  font-size:1.05rem;
}
.vow-reveal p{
  margin:0;
}

.constellation{
  max-width:1360px;
  margin:auto;
  padding:12vh 6vw;
}
.starfield{
  position:relative;
  margin-top:26px;
  min-height:430px;
  border:1px solid rgba(211,175,107,.14);
  background:
    radial-gradient(circle at 50% 25%, rgba(123,41,64,.18), transparent 30%),
    radial-gradient(circle at 20% 80%, rgba(211,175,107,.06), transparent 30%),
    linear-gradient(180deg, #0d0b10, #09070a);
  overflow:hidden;
}
.constellation-lines{
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, transparent 0 32%, rgba(211,175,107,.08) 32.2% 32.6%, transparent 32.8% 100%),
    linear-gradient(75deg, transparent 0 48%, rgba(211,175,107,.06) 48.2% 48.5%, transparent 48.7% 100%),
    linear-gradient(150deg, transparent 0 62%, rgba(211,175,107,.06) 62.2% 62.5%, transparent 62.7% 100%);
  opacity:.9;
  pointer-events:none;
}
.wish-star{
  position:absolute;
  border:none;
  background:none;
  color:#f6dfb6;
  font-size:2rem;
  text-shadow:0 0 12px rgba(211,175,107,.45), 0 0 24px rgba(211,175,107,.22);
  animation:twinkle 2.8s ease-in-out infinite;
  transition:transform .25s ease, text-shadow .25s ease;
}
.wish-star:hover,.wish-star.active{
  transform:scale(1.35);
  text-shadow:0 0 20px rgba(211,175,107,.6),0 0 32px rgba(211,175,107,.34);
}
.wish-star.s1{top:18%;left:12%}
.wish-star.s2{top:32%;left:61%}
.wish-star.s3{top:62%;left:19%}
.wish-star.s4{top:72%;left:74%}
.wish-star.s5{top:22%;left:84%}
@keyframes twinkle{
  0%,100%{opacity:.6}
  50%{opacity:1}
}
.wish-reveal{
  margin-top:16px;
  padding:18px 22px;
  border:1px solid rgba(211,175,107,.16);
  background:rgba(13,10,12,.72);
  color:#ead6c3;
  min-height:80px;
  display:flex;
  align-items:center;
  line-height:1.8;
}

.midnight-dialog .midnight-paper{
  width:min(700px, 92vw);
  margin:auto;
  text-align:center;
  background:
    radial-gradient(circle at top, rgba(123,41,64,.20), transparent 30%),
    linear-gradient(180deg,#f4ecdc,#eadcc3 65%,#dcc8ab);
  color:#2a1717;
  padding:44px 28px 34px;
  border-radius:28px;
  box-shadow:0 24px 80px rgba(0,0,0,.28);
}
.midnight-gift-icon{
  font-size:2rem;
  color:#7b2940;
  margin:6px 0 10px;
}
.midnight-paper h2{
  font-size:clamp(2.6rem,5vw,4.2rem);
  margin:.18em 0;
}
.midnight-paper p{
  line-height:1.85;
}
.midnight-paper strong{
  display:block;
  margin-top:10px;
  font-size:1.05rem;
}

.ultimate-vow-button{
  margin-top:14px;
  border:1px solid rgba(211,175,107,.24);
  background:rgba(255,255,255,.02);
  color:#ecd7c4;
  border-radius:999px;
  padding:14px 20px;
  font-size:.95rem;
  letter-spacing:.02em;
}
.ultimate-vow{
  margin-top:16px;
  padding:22px 20px;
  border:1px solid rgba(211,175,107,.18);
  background:linear-gradient(180deg, rgba(24,15,19,.96), rgba(10,8,10,.98));
  max-width:760px;
  margin-inline:auto;
  text-align:left;
}
.ultimate-vow h3{
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.08;
  margin:.2em 0 .35em;
}
.ultimate-vow p{
  color:#daccc1;
  line-height:1.85;
}

.midnight-live{
  animation:livePulse 1.8s ease-in-out infinite;
  color:#f0dec7 !important;
}
@keyframes livePulse{
  0%,100%{text-shadow:0 0 0 rgba(211,175,107,0)}
  50%{text-shadow:0 0 22px rgba(211,175,107,.32)}
}

@media(max-width:900px){
  .vow-grid{
    grid-template-columns:1fr;
  }
  .starfield{
    min-height:360px;
  }
}
@media(max-width:520px){
  .wish-star{font-size:1.85rem}
  .ultimate-vow h3{
    font-size:1.8rem;
  }
}


/* V6 fixes + extra */
.memories{
  position:relative;
}
.vow-card{
  color:#efe2d6;
}
.vow-card strong{
  color:#f4e8dd;
}
.vow-card.active strong,
.vow-card:hover strong{
  color:#fff3e6;
}
.vow-card.active small,
.vow-card:hover small{
  color:#d8c7bb;
}

/* More cinematic opening caption */
.opening-caption{
  max-width:min(720px, 88vw);
  text-align:center;
}

/* Seven promises */
.promises-seven{
  max-width:1320px;
  margin:auto;
  padding:12vh 6vw;
}
.promise-tabs{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:12px;
  margin-top:28px;
}
.promise-tab{
  border:1px solid rgba(211,175,107,.18);
  background:linear-gradient(180deg, rgba(25,15,19,.94), rgba(11,9,12,.98));
  color:#f0dfd0;
  padding:18px 12px;
  min-height:108px;
  text-align:left;
  transition:.35s ease;
}
.promise-tab span{
  display:block;
  color:var(--gold);
  font-family:"Cormorant Garamond",serif;
  font-size:1.8rem;
  margin-bottom:8px;
}
.promise-tab:hover,
.promise-tab.active{
  transform:translateY(-7px);
  border-color:rgba(211,175,107,.42);
  box-shadow:0 26px 70px rgba(92,28,47,.24);
}
.promise-reveal-rich{
  margin-top:18px;
  min-height:178px;
  padding:26px 24px;
  border:1px solid rgba(211,175,107,.16);
  background:
    radial-gradient(circle at top right, rgba(123,41,64,.13), transparent 28%),
    rgba(17,11,14,.72);
  color:#ecddd0;
}
.promise-reveal-rich p{
  margin:0;
  line-height:1.95;
  font-size:1.06rem;
}

@media(max-width:1100px){
  .promise-tabs{
    grid-template-columns:repeat(4,1fr);
  }
}
@media(max-width:700px){
  .promise-tabs{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:430px){
  .promise-tabs{
    grid-template-columns:1fr;
  }
}


/* V7 full send */
.deep-letter{
  max-width:1260px;
  margin:auto;
  padding:12vh 6vw;
}
.deep-tabs{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:28px;
}
.deep-tab{
  padding:18px 16px;
  text-align:left;
  border:1px solid rgba(211,175,107,.18);
  background:linear-gradient(180deg, rgba(25,15,19,.94), rgba(11,9,12,.98));
  color:#f0dfd0;
  transition:.35s ease;
}
.deep-tab span{
  margin-right:8px;
  color:var(--gold);
}
.deep-tab:hover,.deep-tab.active{
  transform:translateY(-7px);
  border-color:rgba(211,175,107,.42);
  box-shadow:0 24px 70px rgba(92,28,47,.26);
}
.deep-paper{
  position:relative;
  margin-top:18px;
  overflow:hidden;
  border:1px solid rgba(211,175,107,.16);
  background:
    linear-gradient(180deg, rgba(18,12,15,.84), rgba(9,8,10,.94));
  padding:30px 26px;
  min-height:220px;
}
.deep-ink{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(123,41,64,.12), transparent 24%),
    radial-gradient(circle at 80% 70%, rgba(211,175,107,.06), transparent 18%);
  pointer-events:none;
}
.deep-letter-text{
  position:relative;
  z-index:2;
  margin:0;
  color:#efe2d7;
  font:1.15rem/2 "Cormorant Garamond",serif;
  white-space:pre-wrap;
  min-height:9em;
}

.timeline-seven{
  max-width:1420px;
  margin:auto;
  padding:12vh 6vw;
}
.timeline-track{
  margin-top:30px;
  display:grid;
  grid-template-columns:repeat(7, minmax(180px, 1fr));
  gap:14px;
  overflow-x:auto;
  padding-bottom:8px;
  scrollbar-width:none;
}
.timeline-track::-webkit-scrollbar{display:none}
.timeline-card{
  position:relative;
  min-height:280px;
  padding:20px 18px;
  border:1px solid rgba(211,175,107,.16);
  background:
    linear-gradient(180deg, rgba(24,15,19,.95), rgba(10,8,10,.98));
  transition:.35s ease;
}
.timeline-card:before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg, transparent, rgba(211,175,107,.7), transparent);
}
.timeline-card:hover{
  transform:translateY(-10px);
  border-color:rgba(211,175,107,.34);
  box-shadow:0 26px 65px rgba(0,0,0,.22);
}
.timeline-no{
  display:block;
  color:var(--gold);
  font-family:"Cormorant Garamond",serif;
  font-size:2rem;
  margin-bottom:10px;
}
.timeline-card h3{
  font-size:1.8rem;
  margin:.18em 0 .35em;
}
.timeline-card p{
  color:#d5c6ba;
  line-height:1.8;
  font-size:.98rem;
}

.next-chapter-button{
  margin-top:14px;
  border:1px solid rgba(211,175,107,.24);
  background:linear-gradient(180deg, rgba(123,41,64,.24), rgba(20,12,16,.85));
  color:#f0deca;
  border-radius:999px;
  padding:14px 20px;
  font-size:.96rem;
}
.next-chapter{
  margin-top:16px;
  padding:22px 20px;
  border:1px solid rgba(211,175,107,.18);
  background:linear-gradient(180deg, rgba(24,15,19,.96), rgba(10,8,10,.98));
  max-width:790px;
  margin-inline:auto;
  text-align:left;
}
.next-chapter h3{
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.08;
  margin:.22em 0 .35em;
}
.next-chapter p{
  color:#daccc1;
  line-height:1.85;
}

@media(max-width:900px){
  .deep-tabs{
    grid-template-columns:1fr;
  }
  .timeline-track{
    grid-template-columns:repeat(7, 78vw);
  }
}


/* FINAL PREMIUM */
.love-progress-wrap{
  display:flex;
  justify-content:center;
  margin-bottom:14px;
}
.love-progress-text{
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#cbb59c;
  background:rgba(18,12,15,.58);
  border:1px solid rgba(211,175,107,.16);
  border-radius:999px;
  padding:10px 16px;
  backdrop-filter:blur(8px);
  text-align:center;
  max-width:min(92vw, 720px);
}

.gratitude-chamber{
  max-width:1340px;
  margin:auto;
  padding:12vh 6vw;
}
.gratitude-grid{
  margin-top:28px;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
}
.gratitude-card{
  padding:22px 18px;
  min-height:240px;
  border:1px solid rgba(211,175,107,.16);
  background:
    radial-gradient(circle at top right, rgba(123,41,64,.16), transparent 30%),
    linear-gradient(180deg, rgba(24,15,19,.95), rgba(10,8,10,.98));
  transition:.35s ease;
}
.gratitude-card:hover{
  transform:translateY(-8px);
  border-color:rgba(211,175,107,.35);
  box-shadow:0 28px 60px rgba(0,0,0,.22);
}
.gratitude-card span{
  display:block;
  color:var(--gold);
  font-family:"Cormorant Garamond",serif;
  font-size:2rem;
  margin-bottom:10px;
}
.gratitude-card h3{
  margin:.15em 0 .35em;
  font-size:1.75rem;
}
.gratitude-card p{
  color:#d9cbc0;
  line-height:1.85;
  font-size:.98rem;
}
.gratitude-final{
  margin-top:22px;
}
.gratitude-final blockquote{
  margin:0;
  text-align:center;
  color:#ecd8c4;
  font-size:clamp(2rem,4vw,3.1rem);
  line-height:1.18;
}

.reason-wall{
  max-width:1320px;
  margin:auto;
  padding:12vh 6vw;
}
.reason-grid{
  margin-top:28px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.reason-chip{
  border:1px solid rgba(211,175,107,.18);
  background:linear-gradient(180deg, rgba(25,15,19,.9), rgba(11,9,12,.98));
  color:#f0ddd0;
  padding:14px 16px;
  border-radius:999px;
  font-size:.95rem;
  transition:.28s ease;
}
.reason-chip:hover,
.reason-chip.active{
  transform:translateY(-3px) scale(1.02);
  border-color:rgba(211,175,107,.44);
  box-shadow:0 14px 30px rgba(92,28,47,.24);
  background:linear-gradient(180deg, rgba(123,41,64,.3), rgba(17,11,14,.96));
}

.crown-room-button{
  margin-top:14px;
  border:1px solid rgba(211,175,107,.24);
  background:linear-gradient(180deg, rgba(123,41,64,.24), rgba(20,12,16,.85));
  color:#f0deca;
  border-radius:999px;
  padding:14px 20px;
  font-size:.96rem;
}
.crown-room{
  margin-top:16px;
  padding:24px 22px;
  border:1px solid rgba(211,175,107,.2);
  background:
    radial-gradient(circle at top, rgba(123,41,64,.18), transparent 34%),
    linear-gradient(180deg, rgba(24,15,19,.96), rgba(10,8,10,.99));
  max-width:820px;
  margin-inline:auto;
  text-align:left;
}
.crown-room h3{
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.08;
  margin:.22em 0 .35em;
}
.crown-room p{
  color:#daccc1;
  line-height:1.85;
}
.crown-room-end{
  font-weight:600;
  color:#f0dfcf !important;
}

@media(max-width:1050px){
  .gratitude-grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:560px){
  .gratitude-grid{
    grid-template-columns:1fr;
  }
  .love-progress-text{
    font-size:.72rem;
    padding:9px 14px;
  }
}


/* FINAL PREMIUM POLISH */

/* 1) Fix hidden heart on mobile vertical in chapter I */
@media (max-width: 700px){
  .hero .h1{
    right: 4vw !important;
    top: 58% !important;
    bottom: auto !important;
    width: 42px !important;
    height: 42px !important;
    font-size: 1rem !important;
    opacity: .92 !important;
    background: rgba(17,11,14,.72) !important;
    border-color: rgba(211,175,107,.38) !important;
  }
}

/* 2) Make ending readable and scrollable */
.ending{
  overflow-y: auto !important;
  overflow-x: hidden !important;
  align-items: flex-start !important;
  justify-items: center !important;
  padding: 4vh 0 8vh !important;
  -webkit-overflow-scrolling: touch;
}
.ending-content{
  padding: 4vh 0 10vh !important;
}
.ending-content > p:first-of-type{
  color:#e1c98b !important;
}
.ending-small{
  color:#ead7c6 !important;
}
.final-promise,
.ultimate-vow,
.next-chapter,
.crown-room{
  background:
    radial-gradient(circle at top right, rgba(123,41,64,.15), transparent 28%),
    linear-gradient(180deg, rgba(23,14,18,.96), rgba(9,8,10,.99)) !important;
  border:1px solid rgba(211,175,107,.22) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.20);
}
.final-promise p,
.final-promise strong,
.ultimate-vow p,
.ultimate-vow h3,
.next-chapter p,
.next-chapter h3,
.crown-room p,
.crown-room h3{
  color:#f1e0d0 !important;
}
.final-promise,
.ultimate-vow,
.next-chapter,
.crown-room{
  text-align:left !important;
}
.final-promise strong{
  display:block;
  margin-top:8px;
}

@media (max-width: 680px){
  .ending-content{
    width:min(94vw, 720px) !important;
  }
  .ending-content h2{
    font-size: clamp(3.2rem, 16vw, 5.4rem) !important;
    line-height: .84 !important;
  }
  .ending-small{
    font-size: 1.24rem !important;
  }
}

/* 3) Slightly elevate Chapter XII */
.pitstop-heartline{
  margin-top: 18px;
  color:#f0ded0;
  font: italic 1.18rem/1.85 "Cormorant Garamond", serif;
  max-width: 700px;
}
.pitstop-panel{
  border-color: rgba(211,175,107,.32) !important;
  box-shadow: 0 30px 70px rgba(0,0,0,.28), 0 0 0 1px rgba(211,175,107,.08) inset;
}
.pitstop-panel strong{
  color:#f4e2cf;
}
.pitstop-panel small{
  color:#d5c3b7;
}
