:root{--gold:#e9b949;--wine:#742f39;--deep-wine:#4a1f27}

body.intro-open{overflow:hidden}
.intro h2 em,.gallery-heading h2 em,.stats-heading h2 em,.promises-heading h2 em{color:#b95e5d}.section .eyebrow.accent{color:#a94a4d}.record-copy .eyebrow.accent{color:#e8b8ad}
.cinematic-intro{position:fixed;inset:0;z-index:120;display:grid;place-items:center;overflow:hidden;color:var(--cream);text-align:center;background:radial-gradient(circle at 50% 55%,#9d424b 0,#401a22 62%,#1d1014 100%);transition:opacity .9s ease,visibility .9s ease}
.cinematic-intro.is-leaving{opacity:0;visibility:hidden}
.cinematic-intro[hidden]{display:none}
.cinematic-glow{position:absolute;width:min(74vw,760px);aspect-ratio:1;border:1px solid rgba(255,238,202,.2);border-radius:50%;box-shadow:0 0 0 70px rgba(255,218,173,.035),0 0 140px rgba(233,185,73,.13);animation:intro-breathe 4s ease-in-out infinite}
.cinematic-copy{position:relative;width:min(90%,760px)}
.cinematic-monogram{margin:0 0 42px;font:500 20px var(--serif);letter-spacing:8px;opacity:0;animation:cinema-rise .9s .25s forwards}
.cinematic-monogram span{color:#f1b9ae}.cinematic-line{font:italic clamp(16px,2vw,22px) var(--serif);letter-spacing:.4px;opacity:0;animation:cinema-rise .9s 1.2s forwards}
.cinematic-copy h2{font-size:clamp(50px,8vw,102px);margin:20px 0 28px;opacity:0;animation:cinema-rise 1.1s 2.15s forwards}.cinematic-copy h2 em{color:#f1b9ae}
.cinematic-date{font-size:9px;font-weight:700;letter-spacing:4px;opacity:0;animation:cinema-rise .9s 3.35s forwards}
.intro-skip{position:absolute;right:clamp(22px,4vw,64px);bottom:32px;z-index:2;padding:10px 0;border:0;border-bottom:1px solid rgba(255,255,255,.42);color:inherit;background:transparent;text-transform:uppercase;letter-spacing:1.8px;font:700 9px var(--sans);cursor:pointer}.intro-skip span{margin-left:14px}.intro-skip:hover{border-color:#fff}
@keyframes cinema-rise{from{opacity:0;transform:translateY(24px);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}
@keyframes intro-breathe{50%{transform:scale(1.045);opacity:.72}}

/* Portada: composición completa y estable desde portátil hasta monitor grande. */
@media(min-width:901px){.hero{min-height:max(720px,100svh)}.hero .nav,.hero .hero-content{width:min(1380px,calc(100% - 64px));max-width:none}.hero-content{padding-top:clamp(92px,12vh,138px);padding-right:0}.hero-content h1{max-width:840px;margin-bottom:24px;font-size:clamp(72px,5.7vw,104px);line-height:.91;letter-spacing:-4px}.hero-content h1 em{white-space:nowrap}.hero-copy{width:380px;max-width:380px;margin-bottom:27px;font-size:14px}.hero-portrait{top:clamp(118px,15vh,158px);right:max(2vw,calc((100vw - 1380px)/2));width:min(39vw,600px);opacity:.94}.hero-scribble{right:max(8%,calc((100vw - 1260px)/2));bottom:10%}}
@media(min-width:701px) and (max-width:900px){.hero{min-height:760px}.hero-content{padding-top:115px;padding-right:33%}.hero-content h1{font-size:68px;line-height:.93;letter-spacing:-3px}.hero-content h1 em{white-space:normal}.hero-portrait{top:160px;right:-8%;width:55vw;opacity:.68}.hero-copy{width:310px}}

.scroll-progress{position:fixed;top:0;left:0;z-index:95;width:100%;height:3px;background:transparent;pointer-events:none}.scroll-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#f1b9ae,#ffe0a0);box-shadow:0 0 10px rgba(255,221,160,.75)}
.anniversary-banner{position:fixed;top:14px;left:50%;z-index:94;transform:translate(-50%,-90px);padding:11px 22px;border:1px solid rgba(255,235,190,.5);border-radius:40px;color:#fff8e7;background:rgba(91,36,44,.9);box-shadow:0 12px 35px rgba(40,13,19,.24);backdrop-filter:blur(12px);font:600 11px var(--sans);letter-spacing:.7px;transition:transform .8s cubic-bezier(.16,1,.3,1)}.anniversary-banner span{color:#f4cb69;margin:0 8px}.anniversary-banner.is-visible{transform:translate(-50%,0)}
.celebration-petal{position:fixed;top:-30px;z-index:93;width:9px;height:14px;border-radius:80% 20% 70% 30%;background:var(--petal,#f5c45d);pointer-events:none;animation:confetti-fall var(--fall,6s) linear forwards}
@keyframes confetti-fall{to{transform:translate3d(var(--drift,20px),110vh,0) rotate(760deg);opacity:.1}}

body.is-enhanced .reveal-section{opacity:0;transform:translateY(42px);transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}body.is-enhanced .reveal-section.is-visible{opacity:1;transform:none}

.year-stats{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:end}.stats-heading{margin-bottom:0}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.stats-grid article{min-height:180px;padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.stats-grid strong{font:500 clamp(50px,6vw,82px) var(--serif);color:var(--red)}.stats-grid span{max-width:150px;color:#786b65;font-size:11px;line-height:1.5;text-transform:uppercase;letter-spacing:1.2px}

.promises{padding-top:30px}.promises-heading{display:grid;grid-template-columns:1.4fr .6fr;gap:50px;align-items:end}.promises-heading .eyebrow{grid-column:1/-1}.promises-heading h2{margin:0}.promises-heading>p:last-child{margin:0 0 8px;color:#776b65;line-height:1.7;font-size:13px}.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.promise-envelope{min-height:355px;position:relative;overflow:hidden;padding:28px;border:1px solid rgba(84,45,43,.16);color:var(--ink);background:#eee1d5;text-align:left;cursor:pointer;transition:transform .45s cubic-bezier(.16,1,.3,1),background .35s}.promise-envelope:nth-child(2){background:#e8d1ca}.promise-envelope:nth-child(3){background:#e9dcc6}.promise-envelope:hover{transform:translateY(-8px)}.promise-number{position:absolute;top:22px;right:25px;color:#9d8177;font-size:10px;letter-spacing:2px}.envelope-shape{position:absolute;left:50%;top:68px;width:112px;height:76px;transform:translateX(-50%);border:1px solid rgba(85,48,43,.3);background:rgba(255,255,255,.2)}.envelope-shape:before,.envelope-shape:after{content:"";position:absolute;inset:0;clip-path:polygon(0 0,50% 65%,100% 0);background:#d3b8ad;transform-origin:top;transition:transform .7s cubic-bezier(.16,1,.3,1)}.envelope-shape:after{clip-path:polygon(0 100%,50% 36%,100% 100%);background:#dfc9be}.promise-title{position:absolute;left:28px;right:28px;bottom:30px;font:500 25px var(--serif);transition:transform .55s}.promise-text{position:absolute;left:28px;right:28px;bottom:34px;opacity:0;transform:translateY(30px);font:italic 18px/1.55 var(--serif);color:#713f40;transition:.55s}.promise-envelope.is-open{background:#fff9f1;transform:translateY(-8px)}.promise-envelope.is-open .envelope-shape:before{transform:rotateX(180deg)}.promise-envelope.is-open .promise-title{opacity:0;transform:translateY(35px)}.promise-envelope.is-open .promise-text{opacity:1;transform:none}

.soundtrack{padding-top:20px}.record-card{display:grid;grid-template-columns:.72fr 1.28fr;min-height:520px;color:var(--cream);background:linear-gradient(135deg,#221e1d,#3b292a);overflow:hidden}.record-art{position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle,#d5b17b 0 5%,#612e35 6% 9%,#1d1918 10% 12%,#322928 13% 15%,#1b1817 16% 100%);border-radius:50%;margin:55px;aspect-ratio:1;box-shadow:0 0 0 1px rgba(255,255,255,.12),18px 25px 40px rgba(0,0,0,.28)}.record-art:after{content:"";position:absolute;inset:3%;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 7px,rgba(255,255,255,.045) 8px 9px)}.record-art span{z-index:1;font:500 18px var(--serif);letter-spacing:2px}.record-copy{align-self:center;padding:60px 70px 60px 20px}.record-copy h2{font-size:clamp(45px,5vw,68px)}.record-copy p{color:#c9bbb4;line-height:1.7;font-size:13px}.record-copy #music-note strong{color:#f0d5cc;font:italic 20px var(--serif);font-weight:500}.music-button{display:inline-flex;max-width:100%;gap:14px;align-items:center;margin-top:20px;padding:13px 18px;border:1px solid rgba(255,255,255,.32);color:#f3e9e2;background:transparent;font:600 10px var(--sans);letter-spacing:1.2px;text-transform:uppercase;cursor:pointer;transition:background .25s,border-color .25s,transform .25s}.music-button:hover{transform:translateY(-2px);border-color:#f1b9ae;background:rgba(241,185,174,.1)}.music-button:disabled{opacity:.55;cursor:not-allowed}.music-icon{display:grid;flex:0 0 30px;place-items:center;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;font-size:12px}.music-timeline{display:grid;grid-template-columns:36px minmax(120px,330px) 36px;gap:11px;align-items:center;margin-top:24px;color:#b9aba4;font:500 9px var(--sans);font-variant-numeric:tabular-nums}.music-timeline span:last-child{text-align:right}.music-timeline input{--music-progress:0%;width:100%;height:18px;margin:0;cursor:pointer;appearance:none;background:transparent}.music-timeline input::-webkit-slider-runnable-track{height:3px;border-radius:4px;background:linear-gradient(90deg,#f1b9ae var(--music-progress),rgba(255,255,255,.18) var(--music-progress))}.music-timeline input::-webkit-slider-thumb{width:13px;height:13px;margin-top:-5px;border:2px solid #2a2020;border-radius:50%;appearance:none;background:#f7e0d8;box-shadow:0 0 0 1px rgba(247,224,216,.5)}.music-timeline input::-moz-range-track{height:3px;border-radius:4px;background:rgba(255,255,255,.18)}.music-timeline input::-moz-range-progress{height:3px;border-radius:4px;background:#f1b9ae}.music-timeline input::-moz-range-thumb{width:11px;height:11px;border:2px solid #2a2020;border-radius:50%;background:#f7e0d8}.record-card.is-playing .record-art{animation:record-spin 7s linear infinite}@keyframes record-spin{to{transform:rotate(360deg)}}

.future{padding-top:0}.future-card{position:relative;overflow:hidden;padding:clamp(55px,8vw,105px);color:var(--cream);background:linear-gradient(120deg,#8e3943,#c85d5f)}.future-card:after{content:"";position:absolute;width:480px;height:480px;right:-170px;top:-220px;border:1px solid rgba(255,255,255,.2);border-radius:50%;box-shadow:0 0 0 65px rgba(255,255,255,.04)}.future-card h2{max-width:690px}.future-card>p:not(.eyebrow){max-width:510px;color:#f5deda;line-height:1.8;font-size:14px}.future-line{display:flex;align-items:center;gap:20px;margin-top:60px;font-size:9px;letter-spacing:2px}.future-line i{display:block;flex:1;height:1px;background:rgba(255,255,255,.35)}.future-line strong{color:#ffe0a0}

.closing-credits{min-height:720px;display:grid;place-items:center;padding:120px 24px;color:#f6eee8;background:#171414;text-align:center;overflow:hidden}.credits-track{max-width:820px}.credits-track>p:first-child,.credit-role,.credit-date,.credits-track>p:last-child{font-size:9px;letter-spacing:3px;line-height:1.8}.credits-track h2{margin:42px 0;font-size:clamp(47px,7vw,88px)}.credits-track h2 em{color:#e6ada7}.credit-role{margin:55px auto 20px;max-width:460px;color:#b9aaa3}.love-verse{position:relative;max-width:650px;margin:52px auto;padding:35px 40px;border-top:1px solid rgba(238,210,198,.2);border-bottom:1px solid rgba(238,210,198,.2)}.love-verse:before{content:"“";position:absolute;left:5px;top:12px;color:#c8585c;font:70px/1 var(--serif);opacity:.45}.love-verse p{margin:0 0 14px;color:#ead8d0;font:italic clamp(21px,2.5vw,30px)/1.45 var(--serif)}.love-verse cite{color:#c9958e;font:600 9px var(--sans);font-style:normal;letter-spacing:2.5px;text-transform:uppercase}.credit-date{color:#dfcfc8}.credits-heart{margin:55px 0;color:#c8585c;font-size:28px;animation:heart-beat 2s ease-in-out infinite}@keyframes heart-beat{50%{transform:scale(1.16)}}

.memory-lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;color:#fff;background:rgba(19,14,14,.96);overflow:hidden}.memory-lightbox::backdrop{background:rgba(21,13,15,.82);backdrop-filter:blur(12px)}.lightbox-backdrop{position:absolute;inset:-40px;background:center/cover no-repeat;filter:blur(35px) brightness(.25);opacity:.55;transform:scale(1.1)}.lightbox-content{position:relative;z-index:1;width:min(82vw,1120px);height:100%;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:45px;align-items:center}.lightbox-image-wrap{height:min(78vh,820px);display:grid;place-items:center}.lightbox-image-wrap img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 22px 40px rgba(0,0,0,.38))}.lightbox-content figcaption span{color:#eab8ad;font-size:10px;letter-spacing:2px}.lightbox-content figcaption h2{font-size:42px;margin:18px 0}.lightbox-content figcaption p{color:#cabdb7;font:italic 18px/1.6 var(--serif)}.lightbox-close{position:absolute;right:25px;top:20px;z-index:3;width:46px;height:46px;border:1px solid rgba(255,255,255,.5);border-radius:50%;color:#fff;background:rgba(0,0,0,.16);font-size:28px;cursor:pointer}.lightbox-arrow{position:absolute;top:50%;z-index:3;width:46px;height:46px;border:1px solid rgba(255,255,255,.35);border-radius:50%;color:#fff;background:rgba(0,0,0,.12);font-size:20px;cursor:pointer}.lightbox-prev{left:24px}.lightbox-next{right:24px}.lightbox-arrow:hover,.lightbox-close:hover{background:var(--red)}
.photo-card{cursor:zoom-in}.photo-card:focus-visible{outline:3px solid var(--red);outline-offset:5px}
.carousel-count{display:none;min-width:54px;color:#7a6d67;font:600 10px var(--sans);letter-spacing:1.6px;text-align:center}
.turtle-stage.is-complete{box-shadow:0 18px 50px rgba(44,24,17,.2),0 0 55px rgba(242,188,54,.14)}.turtle-stage.is-complete #sunflower-canvas{transform-origin:50% 100%;animation:flower-breeze 5.5s ease-in-out infinite}@keyframes flower-breeze{0%,100%{transform:rotate(-.25deg)}50%{transform:rotate(.35deg)}}

.secret-toast{position:fixed;left:50%;bottom:24px;z-index:130;width:min(90%,520px);padding:17px 22px;transform:translate(-50%,110px);border:1px solid rgba(255,229,190,.5);border-radius:4px;color:#fff8e7;background:#592833;box-shadow:0 18px 50px rgba(44,14,20,.32);text-align:center;font:italic 16px var(--serif);transition:transform .7s cubic-bezier(.16,1,.3,1)}.secret-toast.is-visible{transform:translate(-50%,0)}

:focus-visible{outline:3px solid #f0bd65;outline-offset:4px}

@media(max-width:800px){.year-stats{grid-template-columns:1fr;gap:40px}.promises-heading{grid-template-columns:1fr;gap:18px}.promises-heading .eyebrow{grid-column:auto}.promise-grid{grid-template-columns:1fr}.promise-envelope{min-height:270px}.record-card{grid-template-columns:1fr}.record-art{width:min(70vw,330px);margin:45px auto 5px}.record-copy{padding:40px}.carousel-dots{display:none}.carousel-count{display:block}.lightbox-content{width:100%;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:8px;padding:70px 18px 22px}.lightbox-image-wrap{height:auto;min-height:0}.lightbox-content figcaption{text-align:center}.lightbox-content figcaption h2{font-size:28px;margin:9px 0}.lightbox-content figcaption p{font-size:15px;margin-bottom:0}.lightbox-arrow{top:auto;bottom:24px}.lightbox-prev{left:18px}.lightbox-next{right:18px}.lightbox-close{right:16px;top:14px}.closing-credits{min-height:620px}.anniversary-banner{white-space:nowrap;font-size:9px;padding:9px 12px}}
@media(max-width:500px){.cinematic-copy h2{font-size:48px}.cinematic-line{padding:0 25px}.stats-grid article{min-height:145px;padding:22px}.stats-grid strong{font-size:48px}.stats-grid span{font-size:9px}.promise-envelope{min-height:245px}.record-copy{padding:35px 26px 45px}.record-copy h2{font-size:42px}.music-button{width:100%;justify-content:center;padding-inline:12px}.music-timeline{grid-template-columns:32px minmax(0,1fr) 32px}.future-card{padding:55px 28px}.future-line{gap:10px}.closing-credits{padding:90px 24px}.love-verse{margin:40px auto;padding:28px 18px}.love-verse p{font-size:20px}.lightbox-content{padding-bottom:88px}.lightbox-content figcaption h2{font-size:24px}.lightbox-image-wrap{max-height:62vh}.anniversary-banner{top:8px;white-space:normal;width:calc(100% - 20px);text-align:center}}
@media(prefers-reduced-motion:reduce){.cinematic-glow,.record-card.is-playing .record-art,.credits-heart,.turtle-stage.is-complete #sunflower-canvas{animation:none}.cinematic-copy>*{animation-duration:.01ms!important;animation-delay:0s!important}.celebration-petal{display:none}body.is-enhanced .reveal-section{opacity:1;transform:none;transition:none}}
