:root{--bg:#08070a;--paper:#f8f1e8;--muted:#aaa09a;--gold:#d8b492;--rose:#b98278;--line:rgba(255,255,255,.11)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--paper);font-family:Inter,system-ui,sans-serif;overflow-x:hidden}.intro-open{overflow:hidden}.sky{position:fixed;inset:0;width:100%;height:100%;z-index:-5;pointer-events:none}.aurora{position:fixed;border-radius:50%;filter:blur(110px);opacity:.09;z-index:-4;pointer-events:none;animation:auroraFloat 16s ease-in-out infinite alternate}.aurora-one{width:620px;height:620px;background:#d3a17f;top:-280px;left:-220px}.aurora-two{width:560px;height:560px;background:#9f6179;right:-220px;bottom:-260px;animation-delay:-7s}.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}@keyframes auroraFloat{from{transform:translate3d(-15px,-15px,0) scale(.95)}to{transform:translate3d(35px,22px,0) scale(1.08)}}
.intro{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:28px;background:radial-gradient(circle at center,rgba(33,23,29,.44),rgba(8,7,10,.88) 56%,#08070a 100%);transition:opacity 1.05s ease,visibility 1.05s ease}.intro.is-leaving{opacity:0;visibility:hidden;pointer-events:none}.intro-content{position:relative;text-align:center;width:min(900px,100%);z-index:2;animation:introRise 1.15s cubic-bezier(.22,.8,.24,1) both}.intro-kicker{margin-bottom:20px}.intro-heart{width:68px;height:68px;border:1px solid rgba(216,180,146,.26);border-radius:50%;display:grid;place-items:center;margin:0 auto 27px;position:relative;box-shadow:0 0 40px rgba(216,180,146,.07)}.intro-heart:before{content:"";position:absolute;inset:7px;border:1px solid rgba(216,180,146,.09);border-radius:50%}.intro-heart span{font-family:"Cormorant Garamond",serif;font-size:2.35rem;color:var(--gold);animation:softPulse 2.6s ease-in-out infinite}.intro h1{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:clamp(2.9rem,7vw,6.1rem);line-height:.98;letter-spacing:-.025em;margin:0}.intro-copy{font-family:"Cormorant Garamond",serif;font-size:clamp(1.5rem,3vw,2.2rem);color:#c8bab0;margin:19px 0 6px}.intro-date{font-size:.74rem;letter-spacing:.27em;color:#847971;margin:0 0 34px}.enter-btn{border:1px solid rgba(216,180,146,.34);border-radius:999px;background:linear-gradient(135deg,rgba(216,180,146,.16),rgba(185,130,120,.08));color:#f7eee7;padding:16px 20px 16px 26px;display:inline-flex;align-items:center;gap:20px;font:600 .86rem Inter,sans-serif;letter-spacing:.025em;cursor:pointer;transition:transform .3s ease,border-color .3s ease,background .3s ease;min-height:54px}.enter-btn i{font-style:normal;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);transition:transform .3s ease}.enter-btn:hover{transform:translateY(-2px);border-color:rgba(216,180,146,.65);background:linear-gradient(135deg,rgba(216,180,146,.23),rgba(185,130,120,.11))}.enter-btn:hover i{transform:translateX(3px)}.intro-note{font-size:.72rem;color:#625a56;margin-top:21px}.intro-orbit{position:absolute;border:1px solid rgba(216,180,146,.07);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.orbit-one{width:min(72vw,760px);aspect-ratio:1;animation:orbitSpin 42s linear infinite}.orbit-two{width:min(54vw,560px);aspect-ratio:1;animation:orbitSpin 31s linear infinite reverse}.intro-orbit:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px rgba(216,180,146,.7);top:-3px;left:50%}@keyframes orbitSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes introRise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes softPulse{50%{transform:scale(1.08);opacity:.72}}
.experience{opacity:0;transform:scale(.995);transition:opacity .9s ease .18s,transform .9s ease .18s}.experience.is-visible{opacity:1;transform:none}.section{min-height:100vh;padding:104px 7vw;position:relative}.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}.hero:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(216,180,146,.065),transparent 68%);filter:blur(2px);z-index:-1}.hero-ring{position:absolute;left:50%;top:50%;border-radius:50%;border:1px solid rgba(216,180,146,.055);pointer-events:none;z-index:-1}.ring-a{width:min(72vw,800px);height:min(72vw,800px);animation:ringSpin 50s linear infinite}.ring-b{width:min(54vw,580px);height:min(54vw,580px);animation:ringSpin 37s linear infinite reverse}.hero-ring:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(216,180,146,.8);box-shadow:0 0 13px rgba(216,180,146,.6);top:-2px;left:50%}@keyframes ringSpin{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;color:var(--gold);font-weight:600}.hero h1,.content-section h2,.finale h2{font-family:"Cormorant Garamond",serif}.hero h1{font-size:clamp(4rem,10vw,8rem);line-height:.84;letter-spacing:-.035em;margin:20px 0;text-shadow:0 10px 45px rgba(0,0,0,.3)}.hero h1 span{font-weight:500;color:var(--gold)}.hero-copy{max-width:680px;color:#c9c2bb;font-size:1.05rem;line-height:1.75}.glass{background:linear-gradient(145deg,rgba(255,255,255,.062),rgba(255,255,255,.022));border:1px solid var(--line);box-shadow:0 28px 80px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.025);backdrop-filter:blur(18px)}.counter-card{margin-top:40px;padding:28px;border-radius:24px;width:min(860px,100%);position:relative;overflow:hidden}.counter-card:before{content:"";position:absolute;left:12%;right:12%;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(216,180,146,.42),transparent)}.counter-label{margin:0 0 20px;color:#bcb2aa;font-size:.86rem}.counter{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.counter div{padding:10px;position:relative}.counter div:not(:last-child):after{content:"";position:absolute;right:-7px;top:25%;height:50%;width:1px;background:rgba(255,255,255,.06)}.counter strong{display:block;font-family:"Cormorant Garamond",serif;font-size:2.7rem;color:#f7dfc9;font-variant-numeric:tabular-nums}.counter span{font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:#8f8781}.scroll-link{margin-top:38px;color:#a9978b;text-decoration:none;font-size:.79rem;display:flex;flex-direction:column;gap:9px;align-items:center}.scroll-link b{font-size:1rem;color:var(--gold);animation:downFloat 1.8s ease-in-out infinite}@keyframes downFloat{50%{transform:translateY(5px)}}
.content-section{max-width:1180px;margin:auto}.section-heading{display:flex;gap:24px;align-items:flex-start;margin-bottom:38px}.section-heading>span{font-family:"Cormorant Garamond",serif;color:#66564c;font-size:2.9rem;line-height:.9}.section-heading h2{font-size:clamp(2.7rem,5vw,4.8rem);line-height:.96;letter-spacing:-.025em;margin:8px 0 0;max-width:860px}.section-intro{color:#aaa09a;max-width:720px;line-height:1.7;margin:-10px 0 38px 78px}.story-divider{width:min(760px,70vw);height:26px;margin:0 auto;display:flex;align-items:center;gap:16px;color:rgba(216,180,146,.44)}.story-divider span{height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(216,180,146,.14))}.story-divider span:last-child{background:linear-gradient(90deg,rgba(216,180,146,.14),transparent)}.story-divider i{font-style:normal;font-family:"Cormorant Garamond",serif;font-size:1rem}
.memory-carousel{border-radius:30px;padding:28px;display:grid;grid-template-columns:60px minmax(0,1fr) 60px;align-items:center;position:relative;overflow:hidden}.memory-carousel:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(185,130,120,.05);filter:blur(55px);right:-70px;bottom:-100px;pointer-events:none}.memory-stage{min-width:0}.memory-card{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center;transition:opacity .28s ease,transform .28s ease}.memory-card.is-changing{opacity:.12;transform:translateX(10px)}.photo-placeholder{aspect-ratio:4/3;border-radius:22px;background:linear-gradient(135deg,#1f1920,#3a2c32);display:flex;align-items:center;justify-content:center;flex-direction:column;color:#d9c0af;border:1px solid rgba(255,255,255,.08);background-size:cover;background-position:center;overflow:hidden;position:relative}.photo-placeholder:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 68%,rgba(0,0,0,.28));pointer-events:none}.placeholder-inner{text-align:center;padding:20px}.photo-placeholder.has-image .placeholder-inner{display:none}.photo-placeholder span{font-family:"Cormorant Garamond",serif;font-size:2.25rem}.photo-placeholder small{display:block;margin-top:8px;color:#8b7d75}.memory-text{padding:20px;position:relative;z-index:2}.memory-date{color:var(--gold);font-size:.76rem;text-transform:uppercase;letter-spacing:.14em}.memory-text h3{font-family:"Cormorant Garamond",serif;font-size:2.55rem;line-height:1;margin:10px 0}.memory-text p:last-child{color:#b8ada6;line-height:1.75}.carousel-btn{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.035);color:#d8cdc4;font-size:1.25rem;cursor:pointer;transition:.25s;z-index:3}.carousel-btn:hover{border-color:rgba(216,180,146,.45);color:#fff;background:rgba(216,180,146,.08)}.memory-dots{display:flex;justify-content:center;gap:8px;margin-top:18px}.memory-dots button{width:7px;height:7px;border-radius:50%;border:0;background:#4b4240;padding:0;cursor:pointer;transition:.25s}.memory-dots button.active{background:var(--gold);width:24px;border-radius:12px}

.day-plan{margin-left:76px;display:flex;flex-direction:column;gap:18px;position:relative}.day-plan:before{content:"";position:absolute;left:109px;top:36px;bottom:85px;width:1px;background:rgba(216,180,146,.07);z-index:-1}.plan-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px}.plan-time{font-size:.7rem;letter-spacing:.12em;color:#8f837b;text-align:right;padding-top:24px;line-height:1.6}.plan-time strong{font-size:1.1rem;color:#e5c6ad}.plan-content{padding:25px;border-radius:20px;transition:border-color .3s ease,transform .3s ease}.plan-content:hover{border-color:rgba(216,180,146,.2)}.plan-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gold)}.plan-content h3{font-family:"Cormorant Garamond",serif;font-size:2rem;margin:7px 0}.plan-content p{color:#9f9590;margin-bottom:0}.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.choice{position:relative;cursor:pointer}.choice input{position:absolute;opacity:0;pointer-events:none}.choice span{display:block;border:1px solid rgba(255,255,255,.105);border-radius:14px;padding:15px 16px;background:rgba(255,255,255,.022);transition:.25s;min-height:50px}.choice span b{display:block;font-size:.9rem}.choice span small{display:block;color:#8f837b;margin-top:4px}.choice:hover span{border-color:rgba(216,180,146,.24)}.choice input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}.choice input:checked+span{border-color:rgba(216,180,146,.7);background:rgba(216,180,146,.105);box-shadow:inset 0 0 0 1px rgba(216,180,146,.08)}.other-field{max-height:0;overflow:hidden;opacity:0;transition:.3s;margin-top:0}.other-field.visible{max-height:120px;opacity:1;margin-top:16px}.other-field label{display:block;font-size:.78rem;color:#bda998;margin-bottom:8px}.other-field input{width:100%;background:#0e0b0e;border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#fff;padding:14px 16px;outline:none;font-size:16px}.other-field input:focus{border-color:var(--gold)}.confirm-btn{margin:14px 0 0 128px;border:1px solid rgba(235,208,184,.18);border-radius:999px;background:linear-gradient(135deg,#e2bea0,#b6846e);color:#171014;padding:17px 25px;font-weight:700;cursor:pointer;font-size:.92rem;display:inline-flex;justify-content:center;align-items:center;gap:11px;box-shadow:0 16px 46px rgba(185,133,110,.15);transition:.25s}.confirm-btn:hover{transform:translateY(-2px);box-shadow:0 20px 54px rgba(185,133,110,.22)}.confirm-btn b{font-family:"Cormorant Garamond",serif;font-size:1.4rem}.confirmation{margin:32px 0 0 204px;border-radius:22px;padding:30px;position:relative;overflow:hidden}.confirmation:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 0 0,rgba(216,180,146,.09),transparent 34%);pointer-events:none}.confirmation-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#151012;background:var(--gold);margin-bottom:18px;font-weight:700}.confirmation h3{font-family:"Cormorant Garamond",serif;font-size:2.15rem;margin:8px 0 16px}.confirmation ul{padding-left:18px;color:#c2b7af;line-height:1.9}.confirmation-note{font-size:.75rem;color:#7f756f}
.letter-wrap{position:relative}.letter-envelope{position:relative;display:flex;margin:72px auto 0;width:min(470px,100%);aspect-ratio:1.5;border:1px solid rgba(216,180,146,.26);border-radius:24px;background:linear-gradient(145deg,#1b1519,#0e0b0f);color:#fff;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;overflow:hidden;box-shadow:0 32px 90px rgba(0,0,0,.31);transition:.35s}.letter-envelope:hover{transform:translateY(-5px);border-color:rgba(216,180,146,.58)}.envelope-flap{position:absolute;width:72%;aspect-ratio:2/1;border:1px solid rgba(216,180,146,.09);border-radius:0 0 999px 999px;top:-23%;left:14%;transform:rotate(180deg);opacity:.75}.envelope-seal{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(216,180,146,.3);background:#151014;font-family:"Cormorant Garamond",serif;font-size:2rem;color:var(--gold);margin-bottom:12px;box-shadow:0 0 32px rgba(216,180,146,.08)}.letter-envelope strong{font-family:"Cormorant Garamond",serif;font-size:2.05rem;margin-top:3px}.letter-envelope small{color:#8f837b;margin-top:5px}.letter{position:relative;max-width:760px;margin:32px auto 0;border-radius:24px;padding:50px;font-family:"Cormorant Garamond",serif;font-size:1.38rem;line-height:1.72;color:#ded2c9;}@keyframes letterOpen{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}.letter h3{font-size:2.4rem;margin-top:10px}.letter-date{font-family:Inter,sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;color:var(--gold)}.letter-close{position:absolute;top:14px;right:18px;background:transparent;border:0;color:#8f837b;font-size:1.8rem;cursor:pointer}.signature{text-align:right;font-size:2.1rem;color:var(--gold)}.hidden{display:none!important}.finale{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.finale-stars{color:rgba(216,180,146,.45);letter-spacing:.4em;margin-bottom:22px}.finale h2{font-size:clamp(3.6rem,8vw,7.1rem);margin:12px 0;max-width:930px;line-height:.92;letter-spacing:-.03em}.finale p{color:#9a918b}.heart-pulse{font-family:"Cormorant Garamond",serif;font-size:4.7rem;color:var(--gold);margin-top:24px;animation:softPulse 2.6s ease-in-out infinite}.reveal,.reveal-item{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}.reveal.is-in,.reveal-item.is-in{opacity:1;transform:none}.reveal-item:nth-child(2){transition-delay:.08s}.reveal-item:nth-child(3){transition-delay:.14s}.reveal-item:nth-child(4){transition-delay:.2s}.reveal-item:nth-child(5){transition-delay:.26s}.reveal-item:nth-child(6){transition-delay:.32s}.reveal-item:nth-child(7){transition-delay:.38s}
@media(max-width:800px){.intro{padding:24px 20px}.intro h1 br{display:none}.intro-orbit{opacity:.7}.orbit-one{width:130vw}.orbit-two{width:92vw}.section{padding:82px 20px;min-height:auto}.hero{min-height:100vh}.hero-ring{opacity:.7}.ring-a{width:140vw;height:140vw}.ring-b{width:100vw;height:100vw}.counter-card{padding:22px 14px}.counter{grid-template-columns:repeat(3,1fr);gap:3px}.counter div:nth-child(3):after{display:none}.counter strong{font-size:2rem}.counter span{font-size:.61rem}.section-heading{gap:14px}.section-heading>span{font-size:2.1rem}.section-heading h2{font-size:clamp(2.55rem,12vw,4rem)}.section-intro,.day-plan{margin-left:0}.memory-carousel{grid-template-columns:42px minmax(0,1fr) 42px;padding:14px}.memory-card{grid-template-columns:1fr;gap:10px}.photo-placeholder span{font-size:1.75rem}.memory-text{padding:8px 9px 14px}.memory-text h3{font-size:2.15rem}.day-plan:before{display:none}.plan-item{grid-template-columns:1fr;gap:8px}.plan-time{text-align:left;padding:0 6px}.choices{grid-template-columns:1fr}.confirm-btn{margin-left:0;width:100%}.confirmation{margin-left:0}.letter{padding:34px 24px;font-size:1.25rem}.story-divider{width:78vw}.hero h1{font-size:clamp(4rem,20vw,5.5rem)}.hero-copy{font-size:.96rem}.letter-envelope{margin-top:45px}.finale{min-height:80vh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal,.reveal-item{opacity:1;transform:none}}


/* ===== V3 · Coverflow, progreso y narrativa ===== */
.story-progress{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:10px;opacity:0;pointer-events:none;transition:opacity .5s ease}.experience.is-visible~.story-progress,.story-progress{ }.intro-open .story-progress{opacity:0}.body-ready .story-progress,body:not(.intro-open) .story-progress{opacity:.72;pointer-events:auto}.story-progress button{width:28px;height:28px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;padding:0}.story-progress button span{width:5px;height:5px;border-radius:99px;background:rgba(255,255,255,.25);transition:.3s}.story-progress button.active span{height:21px;background:#d8b492;box-shadow:0 0 14px rgba(216,180,146,.35)}
.story-whisper{max-width:850px;margin:8px auto 2px;padding:0 24px;text-align:center;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:clamp(1.35rem,2.8vw,2rem);line-height:1.4;color:#978b84}.story-whisper span{position:relative}.story-whisper span:before,.story-whisper span:after{content:"";display:inline-block;width:28px;height:1px;background:rgba(216,180,146,.28);vertical-align:middle;margin:0 14px}
.coverflow-shell{position:relative;margin-top:16px}.coverflow-topline{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 18px 12px;color:#857b75;font-size:.76rem;letter-spacing:.08em}.coverflow-topline p{margin:0}.coverflow-topline span{color:#d8b492;font-variant-numeric:tabular-nums}.coverflow{position:relative;height:clamp(360px,50vw,560px);overflow:hidden;perspective:1250px;touch-action:pan-y;user-select:none}.coverflow:before,.coverflow:after{content:"";position:absolute;z-index:15;top:0;bottom:0;width:14%;pointer-events:none}.coverflow:before{left:0;background:linear-gradient(90deg,#08070a,transparent)}.coverflow:after{right:0;background:linear-gradient(-90deg,#08070a,transparent)}.coverflow-track{position:absolute;inset:0;display:grid;place-items:center;transform-style:preserve-3d}.coverflow-card{--x:0px;--z:0px;--ry:0deg;--scale:1;--opacity:1;position:absolute;width:clamp(210px,36vw,420px);aspect-ratio:4/5;padding:0;border:0;border-radius:24px;background:#171317;overflow:hidden;transform:translateX(var(--x)) translateZ(var(--z)) rotateY(var(--ry)) scale(var(--scale));opacity:var(--opacity);transition:transform .72s cubic-bezier(.2,.78,.22,1),opacity .55s ease,filter .55s ease;filter:saturate(.72) brightness(.67) blur(.45px);box-shadow:0 30px 70px rgba(0,0,0,.36);cursor:pointer}.coverflow-card.active{filter:saturate(.95) brightness(.96);box-shadow:0 35px 90px rgba(0,0,0,.48),0 0 0 1px rgba(216,180,146,.16)}.coverflow-card img{width:100%;height:100%;display:block;object-fit:cover;pointer-events:none}.coverflow-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(7,5,7,.48),transparent 45%,rgba(0,0,0,.05));pointer-events:none}.coverflow-number{position:absolute;right:18px;bottom:14px;font-family:"Cormorant Garamond",serif;font-size:1.1rem;letter-spacing:.12em;color:rgba(255,255,255,.72)}.coverflow-arrow{position:absolute;z-index:25;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.13);background:rgba(10,8,11,.58);backdrop-filter:blur(10px);color:#ead9ca;font-size:1.15rem;cursor:pointer;transition:.25s}.coverflow-prev{left:12px}.coverflow-next{right:12px}.coverflow-arrow:hover{border-color:rgba(216,180,146,.5);background:rgba(216,180,146,.10)}.memory-caption{max-width:780px;margin:-18px auto 0;position:relative;z-index:20;border-radius:22px;padding:22px 26px;display:grid;grid-template-columns:.75fr 1.25fr;gap:28px;align-items:center}.memory-caption h3{font-family:"Cormorant Garamond",serif;font-size:clamp(1.8rem,3vw,2.5rem);margin:5px 0 0}.memory-caption>p{margin:0;color:#aca19a;line-height:1.65}.memory-dots{margin-top:18px}
.four-years-card{position:relative;overflow:hidden;border-color:rgba(216,180,146,.22)}.four-years-card:after{content:"4";position:absolute;right:24px;top:50%;transform:translateY(-50%);font-family:"Cormorant Garamond",serif;font-size:7rem;line-height:1;color:rgba(216,180,146,.045);pointer-events:none}.milestone-sparkles{position:absolute;left:50%;top:50%;pointer-events:none;z-index:5}.milestone-sparkles i{position:absolute;width:4px;height:4px;border-radius:50%;background:#ead0b7;box-shadow:0 0 9px rgba(234,208,183,.85);animation:milestoneBurst 1.3s cubic-bezier(.12,.65,.25,1) var(--delay) both}@keyframes milestoneBurst{0%{transform:translate(0,0) scale(.2);opacity:0}18%{opacity:1}100%{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}
.confirmed-route{display:grid;gap:10px;margin:22px 0}.confirmed-route div{border:1px solid rgba(255,255,255,.085);border-radius:14px;padding:14px 16px;background:rgba(255,255,255,.025)}.confirmed-route time{display:block;color:#a88c77;font-size:.68rem;letter-spacing:.12em;margin-bottom:4px}.confirmed-route strong{font-family:"Cormorant Garamond",serif;font-size:1.25rem;font-weight:600}.confirmed-route>span{text-align:center;color:#6f625a;height:12px;line-height:8px}.continues{font-family:"Cormorant Garamond",serif!important;font-size:clamp(1.8rem,4vw,3rem)!important;color:#d8b492!important;font-style:italic;margin-top:34px!important;letter-spacing:.03em;animation:continueGlow 3.8s ease-in-out infinite}@keyframes continueGlow{50%{opacity:.58}}
@media(max-width:800px){.story-progress{right:5px;gap:6px}.story-progress button{width:22px;height:25px}.story-whisper span:before,.story-whisper span:after{display:none}.coverflow{height:440px;margin-inline:-20px}.coverflow-card{width:min(68vw,290px);border-radius:19px}.coverflow-arrow{width:43px;height:43px}.coverflow-prev{left:7px}.coverflow-next{right:7px}.memory-caption{margin-top:-30px;grid-template-columns:1fr;gap:10px;padding:20px}.coverflow-topline{padding-inline:0}.coverflow-topline p{font-size:.68rem;max-width:70%}}
@media(prefers-reduced-motion:reduce){.coverflow-card,.story-progress button span{transition:none}.continues{animation:none}.milestone-sparkles{display:none}}

.save-status{margin:12px 0 0 128px;color:#cdb29e;font-size:.82rem;min-height:1.3em}
@media(max-width:800px){.save-status{margin-left:0;text-align:center}}

.save-status{margin:12px 0 0 128px;min-height:1.25em;color:#bca99b;font-size:.78rem;letter-spacing:.02em}
.confirm-btn:disabled{opacity:.58;cursor:wait;transform:none}
.milestone-card{position:relative;overflow:hidden}
.milestone-sparkles{position:absolute;left:50%;top:50%;width:1px;height:1px;pointer-events:none}
.milestone-sparkles i{position:absolute;width:4px;height:4px;border-radius:50%;background:#e9c9a8;box-shadow:0 0 10px rgba(233,201,168,.8);animation:milestoneBurst 1.35s cubic-bezier(.18,.75,.25,1) var(--delay) both}
@keyframes milestoneBurst{0%{opacity:0;transform:translate(0,0) scale(.2)}25%{opacity:1}100%{opacity:0;transform:translate(var(--tx),var(--ty)) scale(.8)}}
@media(max-width:800px){.save-status{margin-left:0;text-align:center}}


/* V8 — confirmación final del itinerario */
.day-plan{transition:opacity .38s ease,transform .38s ease,max-height .65s cubic-bezier(.2,.7,.2,1),margin .65s ease;max-height:2600px;overflow:hidden}
.day-plan.plan-confirming{opacity:0;transform:translateY(-12px)}
.day-plan.plan-confirmed{display:none}
.confirmation.confirmation-enter{animation:confirmationFinalIn .85s cubic-bezier(.18,.75,.22,1) both}
@keyframes confirmationFinalIn{0%{opacity:0;transform:translateY(22px) scale(.985);filter:blur(5px)}55%{filter:blur(1px)}100%{opacity:1;transform:none;filter:blur(0)}}
.final-route{gap:8px}
.final-route .route-entry{position:relative;padding:15px 17px 15px 19px}
.final-route .route-entry:before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:2px;border-radius:2px;background:rgba(216,180,146,.2)}
.final-route .route-entry.chosen{border-color:rgba(216,180,146,.28);background:linear-gradient(135deg,rgba(216,180,146,.08),rgba(255,255,255,.02))}
.final-route .route-entry.chosen:before{background:#d8b492;box-shadow:0 0 12px rgba(216,180,146,.35)}
.final-route small{display:block;margin-top:5px;color:#857a73;font-size:.72rem;letter-spacing:.01em}

/* V8 — carta: apertura suave y comienzo siempre desde arriba */
.letter-envelope.is-opening{animation:envelopeOpenAway .32s ease both;pointer-events:none}
.letter-envelope.envelope-return{animation:envelopeReturn .5s cubic-bezier(.18,.75,.22,1) both}
.letter.letter-enter{animation:letterGentleIn .9s cubic-bezier(.18,.76,.22,1) both;scroll-margin-top:18px}
.letter.letter-leave{animation:letterGentleOut .26s ease both}
.letter.letter-enter > :not(.letter-close){animation:letterTextIn .68s ease .15s both}
@keyframes envelopeOpenAway{to{opacity:0;transform:translateY(-8px) scale(.985);filter:blur(3px)}}
@keyframes envelopeReturn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes letterGentleIn{0%{opacity:0;transform:translateY(18px) scale(.985);filter:blur(6px)}60%{filter:blur(.8px)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes letterGentleOut{to{opacity:0;transform:translateY(8px) scale(.992)}}
@keyframes letterTextIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.letter-envelope.is-opening,.letter-envelope.envelope-return,.letter.letter-enter,.letter.letter-leave,.letter.letter-enter > :not(.letter-close),.confirmation.confirmation-enter{animation:none}}

.memory-caption>p[hidden]{display:none!important}
.memory-caption:has(> p[hidden]){grid-template-columns:1fr;max-width:650px;text-align:center}
