@font-face{font-family:"Great Vibes";src:url("fonts/f48d461c03e0a8ec-s.p.13m1ppbimti50.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("fonts/01e4147cff8141ee-s.p.10ked.7w885.g.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Cormorant SC";src:url("fonts/0b72cb7c6f05d496-s.p.0h6ud6ij.9ik-.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Cinzel";src:url("fonts/cc014fcb166cf364-s.p.0rbrcy8kuidpb.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Montserrat";src:url("fonts/e8f2fbee2754df70-s.p.0fzkl03jw-sdz.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Berkshire Swash";src:url("fonts/b287a8439b55cc7b-s.p.0gk-leriejcy_.woff2") format("woff2");font-display:swap}

:root{--navy:#06142e;--royal:#263a94;--paper:#fffdf7;--gold:#d7b66c;--gold2:#f2d795;--wine:#a5294a;--ink:#171735;--serif:"Cormorant Garamond",Georgia,serif;--script:"Great Vibes",cursive;--caps:"Cinzel",serif;--sans:"Montserrat",sans-serif;--display:"Berkshire Swash",serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#020711}
body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at top,#233d6d,#020711 72%);color:#fff;font-family:var(--serif)}
body.intro-lock{overflow:hidden}
button,input,textarea{font:inherit}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}

/* SECUENCIA DE ENTRADA */
.intro{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;overflow:hidden;background:#020711;transition:opacity 1s ease,visibility 1s ease}
.intro.finished{opacity:0;visibility:hidden;pointer-events:none}
.intro-shot{position:absolute;inset:0;margin:auto;width:min(100vw,calc(100svh * .625));height:100svh;min-height:560px;overflow:hidden;opacity:0;visibility:hidden;transform:scale(1.025);transition:opacity .7s ease,visibility .7s ease,transform 1.15s ease}
.intro-shot.active{opacity:1;visibility:visible;transform:scale(1)}
.intro-bg{position:absolute;inset:-4%;background-position:center;background-size:cover;transform:scale(1.05)}
.intro-shot::after{content:"";position:absolute;inset:0;z-index:12;pointer-events:none;background:linear-gradient(180deg,rgba(0,5,17,.02),transparent 45%,rgba(0,6,19,.68));box-shadow:inset 0 0 100px rgba(0,0,0,.48)}
.shot-castle.active .intro-bg{animation:cover-breathe 8s ease-in-out infinite alternate}
.moon-haze{position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 53% 20%,rgba(229,240,255,.27),transparent 30%),linear-gradient(180deg,transparent 36%,rgba(1,7,21,.57))}
.start-screen{position:absolute;inset:0;z-index:40;width:min(100vw,calc(100svh * .625));height:100svh;margin:auto;border:0;background:transparent;color:#fff8e6;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:0 7% calc(10vh + env(safe-area-inset-bottom));text-align:center;cursor:pointer;transition:opacity .55s ease,transform .7s ease}
.intro.playing .start-screen{opacity:0;transform:translateY(-30px);pointer-events:none}
.start-eyebrow{font:600 clamp(11px,3vw,15px)/1 var(--caps);letter-spacing:.4em;text-transform:uppercase;color:var(--gold2);text-shadow:0 2px 12px #000}
.start-title{margin:12px 0 25px;font:400 clamp(50px,15vw,78px)/.9 var(--script);text-shadow:0 4px 22px #000}
.start-cta{min-width:260px;border:1px solid rgba(242,215,149,.92);border-radius:999px;padding:14px 24px;background:linear-gradient(135deg,rgba(6,20,48,.91),rgba(38,48,105,.82));box-shadow:0 14px 36px rgba(0,0,0,.46),inset 0 0 20px rgba(255,228,160,.1);font:600 12px/1 var(--caps);letter-spacing:.18em;text-transform:uppercase;animation:button-glow 2.2s ease-in-out infinite}
.start-hint{margin-top:14px;font:italic 18px/1 var(--serif);color:rgba(255,248,232,.84);text-shadow:0 2px 8px #000}
.skip-intro{position:absolute;z-index:55;right:max(15px,calc((100vw - 500px)/2 + 15px));top:calc(14px + env(safe-area-inset-top));border:1px solid rgba(242,215,149,.5);border-radius:999px;padding:8px 13px;background:rgba(2,11,29,.62);color:#f2ddaa;font:600 10px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;opacity:0;pointer-events:none;transition:.35s;cursor:pointer}
.intro.playing .skip-intro{opacity:1;pointer-events:auto}
.clock-rabbit,.falling,.arrival-rabbit,.arrival-alice{position:absolute;z-index:8;height:auto;pointer-events:none;filter:drop-shadow(0 18px 24px rgba(0,0,0,.48))}
.clock-rabbit{left:5%;top:9%;width:90%;opacity:0}
.shot-clock-rabbit.active .clock-rabbit{animation:rabbit-watch 2.2s cubic-bezier(.18,.75,.2,1) both}
.shot-clock-rabbit.active .intro-bg{animation:castle-near 2.6s ease both}
.leaves{inset:-3%;width:106%;opacity:.45;mix-blend-mode:screen}
.rabbit{left:5%;top:-4%;width:91%}.clock{right:-9%;top:2%;width:56%}
.shot-rabbit.active .intro-bg,.shot-objects.active .intro-bg,.shot-alice.active .intro-bg{animation:tunnel-rush 3.05s cubic-bezier(.19,.69,.22,1) both}
.shot-rabbit.active .rabbit{animation:rabbit-to-hole 3s cubic-bezier(.16,.69,.22,1) both}
.shot-rabbit.active .clock{animation:clock-depth 2.9s linear both}
.shot-rabbit.active .leaves{animation:vortex-spin 4s linear infinite}
.cards{left:-4%;top:-7%;width:108%}.objects{right:-4%;top:-3%;width:108%}
.shot-objects.active .cards{animation:vortex-spin 3.4s linear infinite reverse}
.shot-objects.active .objects{animation:objects-through 3s ease-in-out both}
.alice{left:3%;top:-3%;width:94%}
.shot-alice.active .cards{animation:vortex-spin 3.2s linear infinite}
.shot-alice.active .alice{animation:alice-shrinks 3.15s cubic-bezier(.17,.72,.21,1) both}
.intro-caption{position:absolute;z-index:20;left:7%;right:7%;bottom:7.4%;margin:0;text-align:center;font:400 clamp(34px,10vw,53px)/.92 var(--script);color:#fff6dc;text-shadow:0 4px 18px #000;animation:caption-up .75s .2s both}
.intro-caption small{display:block;margin-bottom:9px;font:600 10px/1 var(--caps);letter-spacing:.28em;text-transform:uppercase;color:var(--gold2)}
.arrival-rabbit{left:28%;bottom:-1%;width:46%}.arrival-alice{right:-2%;bottom:-1%;width:45%}
.shot-arrival.active .arrival-rabbit{animation:arrival-in 2.7s ease both}.shot-arrival.active .arrival-alice{animation:arrival-in-right 2.7s ease both}.shot-arrival.active .intro-bg{animation:arrival-light 3s ease both}
.arrival-copy{position:absolute;z-index:22;left:6%;right:6%;top:12%;display:flex;flex-direction:column;align-items:center;text-align:center;text-shadow:0 4px 18px #000;animation:caption-up .9s .3s both}
.arrival-copy small{font:600 11px/1 var(--caps);letter-spacing:.34em;color:var(--gold2);text-transform:uppercase}.arrival-copy strong{margin:10px 0 8px;font:400 clamp(54px,15vw,82px)/.84 var(--script)}.arrival-copy span{max-width:270px;font:500 18px/1.15 var(--serif);letter-spacing:.04em}

@keyframes cover-breathe{to{transform:scale(1.12) translateY(-1%)}}
@keyframes button-glow{50%{box-shadow:0 14px 36px rgba(0,0,0,.46),0 0 28px rgba(238,207,128,.38)}}
@keyframes rabbit-watch{0%{opacity:0;transform:translateY(14%) scale(.74)}25%{opacity:1}70%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-3%) scale(1.08)}}
@keyframes castle-near{to{transform:scale(1.2);filter:brightness(1.08)}}
@keyframes tunnel-rush{0%{transform:scale(1.03)}100%{transform:scale(1.62);filter:brightness(.78) blur(.4px)}}
@keyframes rabbit-to-hole{0%{opacity:0;transform:translate3d(5%,-18%,0) rotate(8deg) scale(1.02)}18%{opacity:1}100%{opacity:.3;transform:translate3d(1%,37%,0) rotate(-13deg) scale(.23)}}
@keyframes clock-depth{0%{opacity:0;transform:translate3d(20%,-15%,0) rotate(0) scale(.82)}20%{opacity:1}100%{opacity:.25;transform:translate3d(-24%,44%,0) rotate(250deg) scale(.22)}}
@keyframes vortex-spin{to{transform:rotate(360deg) scale(1.07)}}
@keyframes objects-through{0%{opacity:0;transform:translateY(-24%) rotate(-8deg) scale(.72)}22%{opacity:1}100%{opacity:.25;transform:translateY(35%) rotate(22deg) scale(.35)}}
@keyframes alice-shrinks{0%{opacity:0;transform:translate3d(3%,-22%,0) rotate(-13deg) scale(1.12)}18%{opacity:1}75%{opacity:1}100%{opacity:.25;transform:translate3d(0,38%,0) rotate(17deg) scale(.2)}}
@keyframes caption-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes arrival-in{from{opacity:0;transform:translateY(28%) scale(.78)}to{opacity:1;transform:none}}
@keyframes arrival-in-right{from{opacity:0;transform:translate(22%,24%) scale(.88)}to{opacity:1;transform:none}}
@keyframes arrival-light{from{filter:brightness(.58);transform:scale(1.13)}to{filter:brightness(1);transform:scale(1.02)}}

/* INVITACIÓN */
.invitation{width:min(100%,480px);margin:0 auto;overflow:hidden;background:var(--navy);box-shadow:0 0 80px rgba(0,0,0,.75);opacity:0;transform:scale(.99);transition:opacity 1s ease,transform 1s ease}.invitation.open{opacity:1;transform:none}
.scene{position:relative;min-height:850px;isolation:isolate;display:flex;align-items:center;justify-content:center;padding:120px 24px 100px;background-color:#081a39;background-position:center;background-size:cover;overflow:hidden}
.scene+.scene{margin-top:-68px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.18) 3%,#000 10%,#000);mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.18) 3%,#000 10%,#000)}
.paths-scene+.location-modal+.itinerary-scene{margin-top:-110px;padding-top:165px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.12) 4%,rgba(0,0,0,.68) 12%,#000 20%,#000);mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.12) 4%,rgba(0,0,0,.68) 12%,#000 20%,#000)}
.scene::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(3,13,34,.18),rgba(3,17,42,.33) 45%,rgba(2,10,26,.75))}.scene::after{content:"";position:absolute;inset:0;z-index:-1;box-shadow:inset 0 0 90px rgba(0,0,0,.45);pointer-events:none}
.scene-content{position:relative;z-index:5;width:100%;max-width:402px;text-align:center}
.eyebrow{margin:0 0 10px;font:600 11px/1 var(--caps);letter-spacing:.36em;text-transform:uppercase;color:var(--gold2)}
.gold-rule{display:flex;align-items:center;justify-content:center;gap:13px;margin:17px auto;color:var(--gold)}.gold-rule span{width:53px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.gold-rule span:last-child{background:linear-gradient(90deg,var(--gold),transparent)}.gold-rule i{font-size:8px;font-style:normal}
.hero-scene{min-height:100svh;align-items:flex-end;padding-bottom:13vh}.hero-scene::before{background:linear-gradient(180deg,rgba(3,12,31,.05),rgba(5,17,43,.2) 35%,rgba(2,9,25,.87) 92%)}
.hero-mist{position:absolute;inset:28% 0 0;background:linear-gradient(transparent,rgba(146,170,229,.19),rgba(3,13,34,.72));z-index:1}.hero-rabbit,.hero-alice{position:absolute;z-index:3;height:auto;pointer-events:none;filter:drop-shadow(0 15px 22px rgba(0,0,0,.45))}.hero-rabbit{left:27%;bottom:-1%;width:44%;animation:soft-float 3.3s ease-in-out infinite}.hero-alice{right:-4%;bottom:-2%;width:43%;animation:soft-float 3.8s .4s ease-in-out infinite}
.hero-copy{z-index:6;padding-bottom:17vh;text-shadow:0 4px 18px #000}.hero-copy h1{margin:0;font:400 clamp(60px,17vw,91px)/.82 var(--script);color:#fff8e8}.hero-welcome{margin:0;font:italic 21px/1.28 var(--serif);color:#fff8e8}.scroll-cue{position:absolute;left:0;right:0;top:calc(100% + 40px);font:600 9px/1 var(--sans);letter-spacing:.21em;text-transform:uppercase;color:rgba(255,255,255,.75);animation:soft-float 2s ease-in-out infinite}
.paper-card{padding:34px 25px 31px;border:2px solid rgba(210,177,104,.78);border-radius:24px;background:linear-gradient(145deg,rgba(255,254,249,.97),rgba(243,239,228,.95));box-shadow:0 22px 50px rgba(0,0,0,.36),inset 0 0 30px rgba(215,182,108,.08);color:var(--ink)}
.card-suit{position:absolute;top:16px;font-size:18px}.card-suit.left{left:20px;color:#b63a58}.card-suit.right{right:20px;color:#293b8e}.paper-card h2{margin:0;font:400 51px/1 var(--script);color:#24358d}.paper-card h3{margin:18px 0 6px;font:400 42px/1 var(--script);color:#b47a2c}.card-subtitle,.family-label{font:600 11px/1.2 var(--caps);letter-spacing:.26em;color:#354391}.welcome-message{white-space:pre-line;margin:12px 0;font-size:20px;line-height:1.37}.family-label{margin:18px 0 7px;font-size:9px;color:#7076a6}.family-names{margin:0;font:600 17px/1.35 var(--caps);letter-spacing:.09em;color:#24358d}

/* PUERTAS DE ARBUSTOS Y CUENTA REGRESIVA */
.countdown-scene{min-height:950px;padding-inline:18px;perspective:1200px}.countdown-scene::before{background:linear-gradient(rgba(3,14,35,.26),rgba(2,10,25,.65))}
.hedge-door{position:absolute;z-index:12;top:-4%;bottom:-4%;width:57%;overflow:hidden;background-color:#071c22;background-image:radial-gradient(circle at 20% 13%,#55796a 0 3%,transparent 3.5%),radial-gradient(circle at 72% 28%,#304f42 0 5%,transparent 5.6%),radial-gradient(circle at 40% 59%,#496b5b 0 4%,transparent 4.6%),radial-gradient(circle at 70% 80%,#24463a 0 6%,transparent 6.8%),radial-gradient(circle at 52% 45%,#173a31 0 28%,#09231d 57%,#04140f 100%);box-shadow:inset 0 0 40px #010b08,0 0 45px rgba(0,0,0,.7);transition:transform 1.8s cubic-bezier(.18,.72,.17,1),filter 1.5s ease,opacity 1.5s ease;will-change:transform}
.hedge-door::before,.hedge-door::after{content:"";position:absolute;width:115px;height:115px;border-radius:50%;background:radial-gradient(circle at 38% 38%,#a72e4a 0 8%,#64182b 9% 16%,transparent 17%),radial-gradient(circle at 70% 62%,#9f2945 0 9%,#531323 10% 18%,transparent 19%),radial-gradient(circle,#254d3e,#071d17 68%);box-shadow:0 0 22px rgba(0,0,0,.5)}.hedge-door::before{top:18%;left:12%}.hedge-door::after{bottom:19%;right:5%}
.hedge-left{left:-5%;transform-origin:left center;border-radius:0 48% 48% 0}.hedge-right{right:-5%;transform-origin:right center;border-radius:48% 0 0 48%}
.hedge-door i,.hedge-door b,.hedge-door span{position:absolute;display:block;width:70px;height:110%;top:-5%;border-radius:50%;border:8px solid rgba(38,81,62,.76);transform:rotate(12deg)}.hedge-door i{left:18%}.hedge-door b{right:17%;transform:rotate(-13deg)}.hedge-door span{left:48%;border-width:5px}
.countdown-scene.open-doors .hedge-left{transform:translateX(-91%) rotateY(-24deg);filter:brightness(.75);opacity:.3}.countdown-scene.open-doors .hedge-right{transform:translateX(91%) rotateY(24deg);filter:brightness(.75);opacity:.3}
.hanging-clocks{position:absolute;z-index:4;inset:4% 0 auto;height:41%;pointer-events:none}.hanging-clocks img{position:absolute;width:35%;filter:drop-shadow(0 10px 12px rgba(0,0,0,.55));animation:clock-swing 4s ease-in-out infinite;transform-origin:50% -90%}.hanging-clocks img:nth-child(1){left:5%;top:0;width:27%;animation-delay:-.5s}.hanging-clocks img:nth-child(2){right:4%;top:8%;width:24%;animation-delay:-1.7s}.hanging-clocks img:nth-child(3){left:28%;top:16%;width:39%;animation-delay:-2.5s}.hanging-clocks img:nth-child(4){right:22%;top:40%;width:23%;animation-delay:-3.1s}
.countdown-content{margin-top:255px;padding:25px 12px;opacity:0;transform:translateY(28px) scale(.94);transition:opacity .9s 1.05s ease,transform 1s 1.05s cubic-bezier(.2,.75,.2,1);text-shadow:0 3px 12px #000}.open-doors .countdown-content{opacity:1;transform:none}.countdown-content h2{margin:0 0 22px;font:600 17px/1 var(--caps);letter-spacing:.18em;color:#fff5d5}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 0 26px}.countdown div{padding:15px 3px 12px;border:2px solid #d6ae5a;border-radius:9px;background:rgba(22,35,106,.82);box-shadow:inset 0 0 0 3px rgba(255,255,255,.05),0 10px 21px rgba(0,0,0,.3)}.countdown strong{display:block;font:400 29px/1 var(--display);color:#f5d985}.countdown span{display:block;margin-top:6px;font:600 8px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff}
.gold-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:2px solid rgba(255,239,199,.8);border-radius:999px;padding:12px 25px;background:linear-gradient(135deg,#f2d38b,#c99c4d);box-shadow:0 8px 24px rgba(0,0,0,.28),inset 0 0 0 2px rgba(161,112,36,.25);color:#1f306f;text-decoration:none;font:700 11px/1.2 var(--caps);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:.22s}.gold-button:hover,.gold-button:focus-visible{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.36),0 0 19px rgba(239,208,128,.32);outline:none}
.calendar-icon{width:20px;height:20px;margin-right:9px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.calendar-icon circle{fill:currentColor;stroke:none}

/* UBICACIONES */
.paths-scene{min-height:1030px;display:block;padding:120px 0 90px}.paths-heading{position:relative;z-index:5;width:92%;margin:0 auto;text-align:center;text-shadow:0 3px 15px #061020}.paths-heading h2{margin:0;font:italic 43px/1.03 var(--serif);color:#f4d889}.paths-heading p{margin:0 auto;max-width:380px;font:italic 17px/1.35 var(--serif);color:#fff}
.direction-sign{position:absolute;z-index:8;top:45%;display:flex;width:43%;min-height:70px;flex-direction:column;justify-content:center;margin:0;padding:8px;border:2px solid #d4ae5d;background:linear-gradient(#243a72,#132655);box-shadow:inset 0 0 0 4px rgba(214,174,93,.18),0 10px 23px rgba(0,0,0,.35);color:#fff6d9;text-decoration:none;text-align:center;text-transform:uppercase;transition:.25s;cursor:pointer;appearance:none}.direction-sign::after{content:"";position:absolute;bottom:-235px;left:50%;width:8px;height:235px;background:linear-gradient(90deg,#6e5527,#e0bd72,#6e5527)}.direction-sign span{font:600 13px/1 var(--caps);letter-spacing:.09em}.direction-sign small{margin-top:6px;font:600 10px/1 var(--sans);color:#e8cc88}.sign-left{left:-2%;clip-path:polygon(0 0,89% 0,100% 50%,89% 100%,0 100%)}.sign-right{right:-2%;clip-path:polygon(11% 0,100% 0,100% 100%,11% 100%,0 50%)}.direction-sign:hover,.direction-sign:focus-visible{transform:translateY(-5px) scale(1.035);filter:brightness(1.17);outline:none}
.garden-twins{position:absolute;z-index:7;left:50%;bottom:13%;width:61%;height:auto;transform:translateX(-50%);filter:drop-shadow(0 14px 19px rgba(0,0,0,.52))}.garden-twins.reveal{transform:translate(-50%,34px) scale(.96)}.garden-twins.in-view{transform:translateX(-50%)}.tap-signs{position:absolute;z-index:9;left:0;right:0;bottom:7%;margin:0;text-align:center;font:600 9px/1 var(--sans);letter-spacing:.11em;text-transform:uppercase;color:#fff8d9;text-shadow:0 2px 8px #000}
.modal-open{overflow:hidden}.location-modal{position:fixed;z-index:5000;inset:0;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s}.location-modal.open{opacity:1;visibility:visible}.location-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(1,8,27,.79);backdrop-filter:blur(7px);cursor:pointer}.location-card{position:relative;z-index:2;width:min(100%,390px);padding:54px 30px 34px;border:2px solid #d7b05c;border-radius:30px;background:radial-gradient(circle at 50% 0,rgba(218,185,109,.22),transparent 30%),linear-gradient(145deg,#fffdf5,#f5edda);box-shadow:0 24px 70px rgba(0,0,0,.63),inset 0 0 0 5px rgba(219,181,94,.17);color:#202457;text-align:center;transform:translateY(30px) scale(.94);transition:transform .36s cubic-bezier(.2,.8,.2,1)}.location-modal.open .location-card{transform:none}.location-card::before{content:"♛";position:absolute;left:50%;top:-44px;transform:translateX(-50%);color:#e0b756;font-size:76px;text-shadow:0 3px 0 #7a531e,0 7px 13px rgba(0,0,0,.4)}.location-close{position:absolute;z-index:4;top:13px;right:15px;width:38px;height:38px;border:1px solid #c89f4f;border-radius:50%;background:#fffaf0;color:#263a88;font:400 27px/1 var(--serif);cursor:pointer}.location-suit{position:absolute;font-size:24px}.suit-heart{top:17px;left:21px;color:#b94255}.suit-diamond{right:65px;bottom:18px;color:#263a88}.location-clock{width:58px;height:58px;margin:3px auto 13px;display:grid;place-items:center;border:2px solid #c79a43;border-radius:50%;background:#1d327c;color:#f1d485;font-size:37px;box-shadow:0 0 0 5px rgba(199,154,67,.16)}.location-card .family-label{margin:0 0 10px;color:#b17c2c}.location-card h2{margin:0;font:400 44px/.95 var(--script);color:#233786}.location-address{margin:18px 0 8px;font:italic 20px/1.35 var(--serif);color:#343451}.location-time{margin:0 0 24px;font:600 12px/1 var(--caps);letter-spacing:.16em;color:#b27d2b}.location-card .gold-button{display:inline-flex;min-width:210px;justify-content:center}

/* ITINERARIO */
.itinerary-scene{min-height:1120px;display:block;padding:105px 20px 85px}.itinerary-heading{position:relative;z-index:6;text-align:center}.itinerary-heading h2{margin:0;font:400 47px/1 var(--script);text-shadow:0 4px 18px #000}.tea-events{position:relative;z-index:7;display:flex;flex-direction:column-reverse;gap:17px;width:78%;margin:180px auto 0}.tea-event{display:grid;grid-template-columns:42px 1fr;align-items:center;min-height:77px;padding:12px 16px;border:1px solid rgba(196,147,57,.78);border-radius:14px;background:rgba(255,253,246,.92);box-shadow:0 12px 24px rgba(0,0,0,.28);color:#1f2c6c;text-align:left;transition-delay:var(--reveal-delay)}.tea-icon{font-size:25px;color:#b7832d}.tea-event strong,.tea-event span{display:block}.tea-event strong{font:600 14px/1 var(--caps);letter-spacing:.08em}.tea-event span{margin-top:4px;font:600 18px/1.05 var(--serif)}.itinerary-rabbit{position:absolute;z-index:5;right:-9%;bottom:-4%;width:58%;filter:drop-shadow(0 15px 24px rgba(0,0,0,.48));animation:soft-float 3.3s ease-in-out infinite}

/* VESTIMENTA */
.dress-scene{min-height:950px;align-items:flex-start;padding-top:145px}.dress-scene .scene-content>h2{margin:0;font:400 69px/.9 var(--script);color:#f4d887;text-shadow:0 3px 15px #000}.dress-kind{margin:48px 0 25px;font:600 28px/1 var(--caps);letter-spacing:.12em;text-shadow:0 3px 13px #000}.dress-card{padding:30px 22px}.dress-card p{margin:0 0 18px;font:600 10px/1.4 var(--caps);letter-spacing:.19em;color:#aa7428}.dress-swatch{display:block;width:62px;height:62px;margin:0 auto 12px;border:2px solid #cca65a;border-radius:50%;box-shadow:0 0 0 5px rgba(215,182,108,.22)}.dress-card strong{display:block;font:600 12px/1 var(--caps);letter-spacing:.18em;color:#26398c}.dress-card em{display:block;margin-top:21px;font-size:18px;line-height:1.25}

/* GALERÍA EN ESPEJO */
.gallery-scene{min-height:1050px;display:block;padding:115px 18px 85px}.gallery-title{position:relative;z-index:6;text-align:center}.gallery-title .eyebrow{font-size:17px;color:#e4bd68}.mirror-shell{position:relative;z-index:8;width:86%;max-width:390px;height:720px;margin:35px auto 0}.mirror-frame{position:absolute;inset:43px 8px 8px;border:10px ridge #d1a446;border-radius:48% 48% 43% 43% / 23% 23% 16% 16%;padding:10px;background:linear-gradient(135deg,#7d531a,#f2d47b 30%,#8f6424 57%,#e7c567 80%,#705018);box-shadow:0 0 0 4px #6d4915,0 0 0 7px #e1be62,0 18px 35px rgba(0,0,0,.55),inset 0 0 20px rgba(255,242,182,.68)}
.mirror-frame::before,.mirror-frame::after{content:"❦";position:absolute;z-index:4;top:47%;width:40px;height:40px;display:grid;place-items:center;border:3px solid #9e742c;border-radius:50%;background:#e2bd60;color:#674514;font-size:24px}.mirror-frame::before{left:-32px}.mirror-frame::after{right:-32px;transform:scaleX(-1)}
.mirror-crown{position:absolute;z-index:10;left:50%;top:-11px;transform:translateX(-50%);color:#e7c66c;font-size:78px;filter:drop-shadow(0 5px 3px #3d270e);text-shadow:0 0 0 #9b722c}
.gallery-viewport{position:relative;width:100%;height:100%;overflow:hidden;border:2px solid rgba(255,238,178,.7);border-radius:47% 47% 41% 41% / 22% 22% 15% 15%;background:#13256e;box-shadow:inset 0 0 45px rgba(0,0,0,.46)}.gallery-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transform:scale(1.08);transition:opacity .65s ease,transform 1s ease}.gallery-photo.active{opacity:1;transform:scale(1)}
.gallery-arrow{position:absolute;z-index:14;top:51%;display:grid;width:44px;height:44px;place-items:center;border:2px solid #d7b45e;border-radius:50%;background:#fffdf5;color:#26388d;box-shadow:0 7px 17px rgba(0,0,0,.35);font-size:22px;cursor:pointer}.gallery-arrow.prev{left:-11px}.gallery-arrow.next{right:-11px}.gallery-arrow:hover{transform:scale(1.08)}.gallery-dots{position:relative;z-index:10;display:flex;justify-content:center;gap:7px;margin-top:16px}.gallery-dot{width:9px;height:9px;border:0;border-radius:50%;padding:0;background:rgba(255,255,255,.35);cursor:pointer}.gallery-dot.active{background:#e1b85c;box-shadow:0 0 10px rgba(225,184,92,.7)}

/* CONFIRMACIÓN, REGALOS Y FINAL */
.rsvp-scene,.gifts-scene{min-height:940px}.rsvp-intro{margin:15px 0 22px;font:italic 18px/1.35 var(--serif)}.rsvp-form{display:grid;gap:13px;text-align:left}.rsvp-form label{display:grid;gap:6px;font:600 9px/1.2 var(--caps);letter-spacing:.09em;color:#aa7428;text-transform:uppercase}.rsvp-form input,.rsvp-form textarea{width:100%;border:1px solid #c8c5cf;border-radius:13px;padding:12px 13px;background:rgba(255,255,255,.8);color:#20203d;font:500 17px/1.2 var(--serif);outline:none}.rsvp-form textarea{min-height:90px;resize:vertical}.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:#c79640;box-shadow:0 0 0 3px rgba(215,182,108,.18)}.rsvp-form fieldset{margin:0;padding:0;border:0}.rsvp-form legend{margin-bottom:7px;font:600 9px/1.2 var(--caps);letter-spacing:.09em;color:#aa7428;text-transform:uppercase}.attendance-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.attendance-grid label{position:relative}.attendance-grid input{position:absolute;opacity:0}.attendance-grid span{display:grid;min-height:50px;place-items:center;border:1px solid #c7c5cf;border-radius:13px;background:#fff;color:#31304d;font:500 17px/1 var(--serif);text-align:center;text-transform:none;letter-spacing:0;cursor:pointer}.attendance-grid input:checked+span{border-color:#c79743;background:#fff7e4;box-shadow:0 0 0 2px rgba(202,155,74,.18)}.rsvp-form .gold-button{width:100%;margin-top:3px}
.key-icon{font-size:35px;color:#b57d28}.gifts-scene{min-height:1010px;align-items:flex-start;padding-top:125px;overflow:hidden}.gifts-scene .paper-card{z-index:8}.gifts-scene .paper-card h2{margin:11px 0 15px}.gift-table{position:absolute;z-index:6;left:50%;bottom:1%;width:116%;height:auto;transform:translateX(-50%);filter:drop-shadow(0 28px 28px rgba(0,0,0,.55));pointer-events:none}
.farewell-scene{min-height:1060px;align-items:flex-end;padding-bottom:125px;background-position:center top}.farewell-scene::before{background:linear-gradient(180deg,rgba(3,13,33,.02),rgba(3,13,33,.05) 52%,rgba(4,10,33,.45) 75%,rgba(4,10,33,.92) 100%)}.farewell-copy{position:relative;z-index:7;text-align:center;text-shadow:0 4px 17px #000}.farewell-copy h2{max-width:380px;margin:0 auto;font:italic 25px/1.3 var(--serif)}.farewell-copy>p:last-of-type{margin:20px 0 0;font:400 45px/.95 var(--script);color:#f0ce79}.ghost-button{margin-top:28px;border:1px solid rgba(242,215,149,.65);border-radius:999px;padding:10px 17px;background:rgba(4,20,48,.62);color:#fff0c2;font:600 9px/1 var(--caps);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.site-footer{position:relative;z-index:20;display:flex;min-height:190px;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:28px 22px calc(24px + env(safe-area-inset-bottom));text-align:center;background:linear-gradient(145deg,#112f59,#541c3a);border-top:1px solid rgba(233,207,141,.72);box-shadow:0 -14px 36px rgba(0,0,0,.24)}.footer-ornament{display:flex;align-items:center;gap:9px;color:#efd07c}.footer-ornament span{width:52px;height:1px;background:linear-gradient(90deg,transparent,#efd07c)}.footer-ornament span:last-child{background:linear-gradient(90deg,#efd07c,transparent)}.footer-brand{margin:0;font:400 34px/1 var(--script)}.footer-socials{display:flex;gap:13px}.footer-socials a{display:grid;width:43px;height:43px;place-items:center;border:1px solid #daba6b;border-radius:50%;background:rgba(2,13,32,.36)}.footer-socials svg{width:21px;height:21px;fill:currentColor}.footer-socials rect,.footer-socials circle{fill:none;stroke:currentColor;stroke-width:1.7}.footer-socials .dot{fill:currentColor;stroke:none}.footer-copyright{margin:0;font:500 9px/1.4 var(--sans);color:rgba(255,255,255,.82)}
.music-toggle{position:fixed;z-index:1000;right:max(16px,calc((100vw - 480px)/2 + 16px));bottom:calc(16px + env(safe-area-inset-bottom));display:grid;width:49px;height:49px;place-items:center;border:1px solid #dabd72;border-radius:50%;background:rgba(5,23,52,.9);color:#fff0c0;box-shadow:0 9px 25px rgba(0,0,0,.45);font-size:24px;opacity:0;visibility:hidden;cursor:pointer;transition:.35s}.music-toggle.visible{opacity:1;visibility:visible}.music-toggle.playing span{animation:music-note 1.2s ease-in-out infinite}
.toast{position:fixed;z-index:4000;left:50%;bottom:80px;max-width:min(88vw,400px);padding:11px 17px;border:1px solid #daba72;border-radius:999px;background:rgba(3,20,43,.96);font:600 12px/1.3 var(--sans);text-align:center;opacity:0;visibility:hidden;transform:translate(-50%,18px);transition:.3s}.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
.reveal{opacity:0;transform:translateY(35px) scale(.985);transition:opacity .82s ease,transform .95s cubic-bezier(.2,.75,.2,1)}.reveal.in-view{opacity:1;transform:none}
.garden-twins.reveal.in-view{transform:translateX(-50%)}
.direction-sign.reveal.in-view:hover,.direction-sign.reveal.in-view:focus-visible{transform:translateY(-5px) scale(1.035)}

@keyframes clock-swing{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}
@keyframes soft-float{50%{transform:translateY(-9px)}}
@keyframes music-note{50%{transform:rotate(12deg) scale(1.12)}}

@media (min-width:720px){body{padding:24px 0}.invitation{border-radius:27px}.scene{min-height:900px}.intro-shot{box-shadow:0 0 60px #000}.paths-scene{min-height:1080px}}
@media (max-width:380px){.scene{padding-inline:16px}.paper-card{padding-inline:18px}.countdown{gap:4px}.countdown strong{font-size:25px}.start-cta{min-width:232px}.tea-events{width:84%}.mirror-shell{width:84%;height:650px}.mirror-crown{font-size:67px}.direction-sign{width:45%}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro-shot,.intro-bg,.falling,.clock-rabbit,.arrival-rabbit,.arrival-alice,.reveal,.hedge-door,.countdown-content,.hanging-clocks img,.hero-rabbit,.hero-alice,.itinerary-rabbit,.music-toggle span{animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.countdown-scene .hedge-left{transform:translateX(-91%);opacity:.25}.countdown-scene .hedge-right{transform:translateX(91%);opacity:.25}.countdown-content{opacity:1;transform:none}}
