@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/local-0.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/local-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/local-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/local-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/local-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(assets/fonts/local-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/local-6.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/local-7.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/local-8.ttf) format('truetype');
}
@font-face {
  font-family: 'Parisienne';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/local-9.ttf) format('truetype');
}

:root{--paper:#f6f1e8;--ink:#411b2a;--gold:#bda17a;--line:#d9ccbd}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}header{height:100px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:17px;letter-spacing:4px;font-weight:600}.brand span{display:block;font-size:8px;letter-spacing:3px;margin-top:7px}.edition,.sound,.eyebrow{font-size:9px;letter-spacing:3px;font-weight:600}.sound{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:30px;padding:12px 16px;background:none;color:var(--ink);font-size:8px;letter-spacing:1px}.sound>span:first-child{font-size:17px}.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1.05fr 1fr;position:relative;padding:66px 8% 0;gap:45px}.hero-copy{padding-top:20px}h1,h2,.gate-name,.footer-name{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400}h1{font-size:76px;line-height:.97;letter-spacing:-3px;margin:35px 0}h1 i{font-size:.65em}h1 span{display:block;font-style:italic;font-size:1.1em;margin-top:16px}.rule{height:1px;width:60px;background:var(--gold)}.intro{font-size:13px;line-height:1.9;margin:24px 0;color:#776268}.discover{font-size:8px;letter-spacing:2px;display:inline-flex;gap:32px;margin:28px 0 45px}.discover span{font-size:18px}.hero-art{min-height:485px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 20%,#a66c70 0,transparent 48%),linear-gradient(120deg,#27131e,#663544 65%,#97616c);border-radius:210px 210px 0 0;display:flex;align-items:center;justify-content:center;color:#e3c6aa}.art-arch{position:absolute;inset:24px;border:1px solid #cfae8d70;border-radius:200px 200px 0 0}.art-initial{font:italic 270px 'Cormorant Garamond',Georgia,serif;opacity:.85;transform:translateY(-10px)}.art-orbit{position:absolute;width:290px;height:290px;border:1px solid #d8b89455;border-radius:50%;transform:rotate(-30deg) scaleX(.65)}.art-label{position:absolute;bottom:55px;font-size:7px;letter-spacing:3px}.art-number{position:absolute;right:40px;top:45px;font:22px Georgia}.hero-footer{grid-column:1/-1;display:flex;justify-content:space-between;padding:25px 0 30px;border-bottom:1px solid var(--line);font-size:8px;letter-spacing:2px}.moments{max-width:1200px;margin:auto;padding:90px 8% 80px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px}h2{font-size:49px;line-height:1.08;margin:15px 0 0;letter-spacing:-1px}h2 i{font-weight:400}.section-heading p{font-size:10px;line-height:1.8;color:#8a7679}.gallery{position:relative;background:#c3afa4;aspect-ratio:1.7;overflow:hidden}.slides{height:100%;position:relative}.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease,transform 7s linear;transform:scale(1.025)}.slide.active{opacity:1;transform:scale(1)}.gallery:after{content:'';position:absolute;inset:50% 0 0;pointer-events:none;background:linear-gradient(transparent,#27131e80)}.gallery-caption{position:absolute;bottom:28px;left:30px;right:30px;display:flex;justify-content:space-between;color:#fff4e6;z-index:1;font-size:8px;letter-spacing:2px}.gallery-controls{position:absolute;right:24px;top:22px;display:flex;gap:7px;z-index:2}.gallery-controls button{border:1px solid #ffffff70;border-radius:50%;background:#411b2a30;color:white;width:40px;height:40px;font-size:16px}.dots{display:flex;gap:10px;justify-content:center;margin-top:24px}.dots button{height:24px;width:18px;border:0;background:none;padding:0;position:relative}.dots button:after{content:'';position:absolute;height:3px;left:0;right:0;top:10px;background:#d7c8bb}.dots button.active:after{background:var(--ink)}.sample-note{text-align:center;font-size:7px;letter-spacing:2px;color:#937f7e}.date-section{text-align:center;background:var(--ink);color:var(--paper);padding:75px 20px 70px;position:relative}.date-section .eyebrow{color:#ceb190}.date-section h2{font-size:52px}.weekday{margin-top:40px;font-size:10px;letter-spacing:4px;text-transform:uppercase}.event-date{font:42px 'Cormorant Garamond',Georgia,serif;margin:10px 0}.time-zone{font-size:9px;letter-spacing:1px;color:#c7abb2}.countdown{display:flex;align-items:center;justify-content:center;gap:25px;margin:36px auto}.countdown strong{font:52px 'Cormorant Garamond',Georgia,serif;font-variant-numeric:tabular-nums}.countdown div{min-width:65px}.countdown span{display:block;font-size:7px;letter-spacing:2px;margin-top:8px;color:#ceb190}.countdown b{font:25px Georgia;color:#a77e87;align-self:flex-start;margin-top:13px}.closing{font:italic 20px 'Cormorant Garamond',Georgia,serif;color:#d9c1be}footer{padding:42px 6%;display:flex;align-items:center;justify-content:space-between}footer>span:nth-child(2),footer a{font-size:7px;letter-spacing:2px}.footer-name{font-size:30px;font-style:italic}.gate{position:fixed;inset:0;z-index:20;background:radial-gradient(ellipse at 50% 35%,#6c3c4a,#351420 75%);color:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:35px 20px;transition:opacity 1s,visibility 1s}.gate.hidden{opacity:0;visibility:hidden;pointer-events:none}.gate-line{font-size:12px;letter-spacing:4px}.gate-line span{font-size:6px;letter-spacing:2px;margin-left:15px;color:#c7a08c}.gate-content{text-align:center}.gate .eyebrow{font-size:8px;color:#d1b18e}.seal{border:1px solid #c9a98270;border-radius:90px 90px 0 0;width:115px;height:145px;margin:28px auto 20px;font:italic 95px 'Cormorant Garamond',Georgia,serif;display:grid;place-items:center;color:#dec09e}.gate-name{font-size:59px;font-style:italic;margin:10px}.gate-caption{font-size:11px;color:#dbc6c8;margin:18px 0 30px}.open-button{background:var(--paper);color:var(--ink);border:0;padding:19px 25px;font-size:10px;letter-spacing:1px;min-height:48px}.open-button span{margin-left:28px}.sound-note,.gate-bottom{font-size:6px;letter-spacing:2px;color:#c4a2a8}.sound-note{margin-top:18px}.status{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--paper);padding:12px 18px;font-size:11px;box-shadow:0 3px 20px #0002;z-index:30;display:none}.status.visible{display:block}body.locked{overflow:hidden}@media(min-width:1400px){.hero{padding-left:12%;padding-right:12%}}@media(max-width:650px){header{height:78px;padding:0 22px}.brand{font-size:12px;letter-spacing:3px}.brand span{font-size:6px}.edition{display:none}.sound{padding:8px 12px;font-size:7px}.hero{padding:39px 24px 0;gap:25px;grid-template-columns:1fr}.hero-copy{text-align:center;padding:0}h1{font-size:63px;margin:25px 0}.rule{margin:auto}.intro{font-size:11px;margin:18px 0}.discover{margin:10px 0 5px}.hero-art{min-height:360px;width:100%;max-width:360px;margin:auto;border-radius:180px 180px 0 0}.art-initial{font-size:220px}.art-label{font-size:6px;bottom:40px}.hero-footer{font-size:6px;letter-spacing:1px;padding:0 0 22px;gap:12px}.moments{padding:55px 24px 45px}.section-heading{align-items:start}.section-heading p{display:none}.eyebrow{font-size:8px;letter-spacing:2px}h2{font-size:39px}.gallery{aspect-ratio:3/4}.gallery-caption{left:19px;right:19px;bottom:22px;font-size:6px;letter-spacing:1px}.gallery-controls{right:14px;top:14px}.gallery-controls button{width:40px;height:40px}.sample-note{font-size:6px;letter-spacing:1px}.date-section{padding:58px 20px}.date-section h2{font-size:40px}.event-date{font-size:35px}.countdown{gap:10px}.countdown strong{font-size:43px}.countdown div{min-width:52px}.countdown span{font-size:6px}.countdown b{font-size:18px}.closing{font-size:18px}footer{padding:30px 24px;flex-wrap:wrap;gap:22px}footer>span:nth-child(2){display:none}.gate-name{font-size:54px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.slide{transform:none}}

/* EPROINVITA · Emily */
:root{--paper:#FAF8F5;--ink:#5A426A;--gold:#C4A063;--line:#e8dfd6}
.product-logo{display:inline-flex;flex-direction:column;align-items:center;font-family:Manrope,Arial,sans-serif;font-size:16px;font-weight:300;line-height:1.15;letter-spacing:4px;color:#93969b;text-shadow:0 1px 0 #fff,0 -1px 1px #0000000c}
.brand .product-logo{display:inline-flex;font-size:16px;letter-spacing:4px;margin:0}.product-logo>span,.brand .product-logo>span{font-size:10px;font-weight:300;letter-spacing:3px;margin-top:3px}
h1 span,.gate-name,.footer-name{font-family:Parisienne,'Cormorant Garamond',cursive;color:#B58BB6;font-weight:400;font-style:normal;letter-spacing:0}
h1 span{font-size:1.25em;line-height:1.3;margin-top:5px}.gate-name{font-size:72px}.footer-name{font-size:36px}
.gate{background:radial-gradient(ellipse at 50% 35%,#fff,#FAF8F5 75%);color:#5A426A}.gate .eyebrow,.gate-caption,.sound-note,.gate-bottom{color:#5A426A}.seal{color:#B58BB6;border-color:#C4A06370}.open-button{background:#5A426A;color:#FAF8F5}.gate-line .product-logo span{color:#93969b;margin-left:0}.gate-line .product-logo{font-size:18px}
.hero-art{background:radial-gradient(ellipse at 80% 20%,#e6d8e7,transparent 55%),linear-gradient(130deg,#f3ece7,#e9deeb 65%,#d1bbd2);color:#B58BB6}.art-arch{border-color:#C4A06380}.art-orbit{border-color:#C4A06370}.art-label,.art-number{color:#5A426A}.intro,.section-heading p,.sample-note{color:#5A426A}.date-section{background:#f1ebf2;color:#5A426A}.date-section .eyebrow,.countdown span{color:#5A426A}.time-zone,.closing{color:#5A426A}.countdown b{color:#C4A063}
.signature{background:#fff;color:#4b4b4f;text-align:center;padding:30px 20px 34px;border-top:1px solid #f0eeee}.signature p{font-family:Manrope,Arial,sans-serif;font-size:11px;font-weight:300;letter-spacing:.6px;margin:0;line-height:1.8}.signature nav{display:flex;justify-content:center;gap:20px;margin-top:12px}.signature nav[hidden]{display:none}.signature a{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:300;min-height:44px}.signature svg{width:14px;height:14px}.signature a:hover{color:#5A426A}

/* Etapa portada: composición y logotipo, sin cambios en el contenido interior. */
.product-logo,.brand .product-logo,.gate-line .product-logo{font-size:8px;font-weight:300;letter-spacing:3px;color:#96989d;line-height:1.2;text-shadow:0 1px 0 #fff,0 -1px 1px #73778024}
.product-logo>span,.brand .product-logo>span,.gate-line .product-logo>span{font-size:21px;font-weight:300;letter-spacing:4px;margin:4px 0 0;color:#96989d}
.cover{background:#FAF8F5;padding:30px 22px 24px;overflow-y:auto;gap:30px}.cover .gate-content{width:100%;max-width:500px;margin:auto}.cover-kicker{font-family:'Cormorant Garamond',Georgia,serif;font-size:23px;letter-spacing:2px;color:#5A426A;margin:0 0 20px}.cover .gate-name{font-size:clamp(83px,21vw,120px);line-height:1.25;margin:2px 0 0;color:#B58BB6;font-weight:400}.cover-subtitle{font-size:9px;font-weight:400;letter-spacing:5px;margin:10px 0 18px;color:#5A426A}.cover-swirl{display:block;width:240px;max-width:80%;height:68px;margin:0 auto;color:#C4A063;overflow:visible}.cover-swirl path{stroke-dasharray:1;stroke-dashoffset:1;animation:swirl-draw 3.4s ease forwards}.cover-swirl path:nth-child(2){animation-delay:.5s}.cover-swirl path:nth-child(3){animation-delay:1s}.swirl-bottom .cover-swirl{width:185px;height:47px;transform:rotate(180deg)}.cover-date{font:400 17px/1.7 'Cormorant Garamond',Georgia,serif;color:#5A426A;margin:23px 0 27px;letter-spacing:.4px}.cover .open-button{background:transparent;color:#5A426A;border:1px solid #C4A06380;padding:16px 23px;font-size:9px;letter-spacing:1px;transition:background .3s}.cover .open-button:hover{background:#C4A0630c}.cover .gate-bottom{font-size:6px;letter-spacing:2px;margin-top:10px}.cover [hidden],.hero [hidden],header [hidden]{display:none!important}
.cover-hero{display:block;text-align:center;padding:60px 24px 45px;max-width:900px}.cover-hero .hero-copy{padding:0}.cover-hero .eyebrow{font:23px 'Cormorant Garamond',Georgia,serif;letter-spacing:2px;text-transform:none}.cover-hero .cover-swirl{margin-top:20px}.cover-hero h1{margin:0;letter-spacing:0}.cover-hero h1 span{font-size:clamp(85px,18vw,120px);margin:0;line-height:1.3}.cover-hero h1 small{display:block;font:9px Manrope,Arial,sans-serif;text-transform:uppercase;letter-spacing:5px;margin:12px 0 20px}.cover-hero .swirl-bottom .cover-swirl{margin-top:0}.cover-hero .discover{margin:0;font-size:8px;letter-spacing:2px}.cover-hero .cover-date{margin:24px 0}.cover-hero+.moments{border-top:1px solid #C4A06330}
@keyframes swirl-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.cover-swirl path{stroke-dashoffset:0;animation:none}}@media(max-height:650px){.cover{gap:14px;padding:18px 20px}.cover-kicker{margin-bottom:5px}.cover .gate-name{font-size:82px}.cover-date{margin:14px 0}.cover-swirl{height:45px}.cover .gate-bottom{margin:0}}

/* Fotografías originales: composición completa, movimiento suave sin retoques. */
.gallery{aspect-ratio:2/3;width:100%;max-width:600px;margin-inline:auto;background:#FAF8F5;isolation:isolate}.slides{overflow:hidden}.slide,.slide.active{object-fit:contain;transform:scale(.97);transition:opacity 1.8s ease;transform-origin:center;filter:none}.gallery.playing .slide.active{animation:photo-drift 10s ease-in-out both}.gallery.playing .slide.active:nth-child(even){animation-name:photo-drift-reverse}.gallery.motion-paused .slide.active{animation-play-state:paused}.gallery:after{display:none}.gallery-caption{background:#FAF8F5df;color:#5A426A;bottom:0;left:0;right:0;padding:10px 12px;font-size:7px}.gallery-controls{top:8px;right:8px}.gallery-controls button{background:#FAF8F5e8;border-color:#C4A06370;color:#5A426A}.sample-note[hidden]{display:none}
@keyframes photo-drift{from{transform:translate(-.4%,.3%) scale(.97)}to{transform:translate(.4%,-.3%) scale(1)}}@keyframes photo-drift-reverse{from{transform:translate(.4%,-.3%) scale(1)}to{transform:translate(-.4%,.3%) scale(.97)}}@media(prefers-reduced-motion:reduce){.gallery.playing .slide.active{animation:none;transform:none}}

/* Referencia floral suministrada: borde inferior con abundante espacio en blanco. */
.cover:before,.date-section:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:url('assets/botanica-referencia.webp');background-repeat:no-repeat;background-position:center bottom;background-size:100% auto;opacity:.28;z-index:-1}.cover{isolation:isolate}.cover .gate-bottom{padding-bottom:38px}.date-section{isolation:isolate;background:#FAF8F5}.date-section:before{opacity:.17}.section-heading h2,.date-section h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-style:normal;font-size:29.4px;letter-spacing:.1px;line-height:1.3}.date-section h2{font-size:31.2px}@media(max-width:650px){.section-heading h2{font-size:23.4px}.date-section h2{font-size:24px}.cover:before{background-size:auto 100%;opacity:.25}}

/* Dos pantallas: imagen original inmóvil + escritura SVG por trazos. */
.cinema-cover{display:block;padding:0;background:#FAF8F5;isolation:isolate;overflow:hidden}.cinema-cover:before{display:none}.cinema-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:none;transform:none;animation:none}.cinema-title{position:absolute;top:5%;left:50%;transform:translateX(-50%);width:min(85vw,470px)}.handwritten-name{display:block;width:100%;height:auto;overflow:visible}.pen-stroke{stroke-dasharray:1;stroke-dashoffset:1;animation:write-name var(--duration) linear var(--delay) forwards}.cinema-cover .continue-button{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#FAF8F5ed;color:#5A426A;border:1px solid #C4A06388;opacity:0;visibility:hidden;animation:show-continue .8s ease 3.7s forwards;font-size:10px;letter-spacing:2px;min-width:150px}.cinema-cover [hidden],.second-screen [hidden]{display:none!important}
.second-screen{min-height:calc(100svh - 100px);padding:40px 24px 80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;outline:none}.second-screen:before{opacity:.25}.second-screen .product-logo{margin-bottom:35px}.save-title{font:400 38px/1.3 'Cormorant Garamond',Georgia,serif;letter-spacing:5px;margin:0 0 18px}.xv-title{font:24px 'Cormorant Garamond',Georgia,serif;letter-spacing:2px;margin:0 0 15px}.second-date{font:19px/1.5 'Cormorant Garamond',Georgia,serif;margin:0 0 25px}.second-phrases p{font:400 24px/1.35 'Cormorant Garamond',Georgia,serif;margin:8px 0}.second-screen .countdown{margin:22px auto}.second-screen .closing{font-size:16px}.second-screen .open-button{margin-top:15px;background:transparent;color:#5A426A;border:1px solid #C4A06380}.second-screen .time-zone{margin:16px 0 0}@keyframes write-name{to{stroke-dashoffset:0}}@keyframes show-continue{to{opacity:1;visibility:visible}}@media(max-width:650px){.second-screen{min-height:calc(100svh - 78px);padding-top:28px}.second-screen .product-logo{margin-bottom:28px}.save-title{font-size:30px}.second-phrases p{font-size:24px}.cinema-title{top:6%}}@media(prefers-reduced-motion:reduce){.pen-stroke{stroke-dashoffset:0;animation:none}.cinema-cover .continue-button{animation:none;visibility:visible;opacity:1}}
/* Anclar la firma al área real de la foto, incluso cuando hay márgenes marfil. */
.cinema-title{top:calc(50% - min(50svh,75vw) + 8px);width:min(85vw,470px)}

/* Alex Brush, proportions intactes : masque suivant les axes réels des traits. */
@font-face{font-family:'Alex Brush';src:url('assets/fonts/AlexBrush-Regular.ttf') format('truetype');font-display:swap;font-weight:400}
.cinema-cover{cursor:pointer}.cinema-cover .cinema-title{left:auto;right:calc((100vw - min(100vw,66.6667svh))/2 + min(4vw,24px));transform:none;top:calc(50% - min(50svh,75vw) + 24px);width:min(59.5vw,329px);pointer-events:none}.alex-mask path{stroke-dasharray:1;stroke-dashoffset:1;animation:write-name var(--duration) linear var(--delay) forwards}.cinema-cover:focus-visible{outline:1px solid #C4A063;outline-offset:-5px}@media(prefers-reduced-motion:reduce){.alex-mask path{stroke-dashoffset:0;animation:none}}

/* Actualización definitiva: firma centrada en el espacio superior de 01. */
.cinema-cover .cinema-title{left:50%;right:auto;transform:translateX(-50%);top:calc(50% - min(50svh,75vw) + 22px);width:min(41.65vw,230.3px)}.second-emily{font:400 45px/1.2 'Alex Brush',cursive;color:#B58BB6;margin:0 0 18px}.countdown[hidden]{display:none}.dots{flex-wrap:wrap}.second-screen .save-title{margin-bottom:14px}

/* Rythme cinématographique: fondus courts, mouvements pilotés par photo. */
.slide,.slide.active{transition:opacity var(--photo-fade,.7s) ease;transform:scale(.94)}.gallery.playing .slide.active,.gallery.playing .slide.active:nth-child(even){animation:none}.cinema-photo{transform:scale(.94)}
@media(prefers-reduced-motion:reduce){.slide,.slide.active,.cinema-photo{transform:none}}

/* Prioridad a portada; el resto no solicita fondos ni fuentes hasta abrir. */
body.locked>header,body.locked>main,body.locked>footer,body.locked>.signature{display:none}
body.locked{font-family:Georgia,serif}.cinema-cover{font-family:Georgia,serif}
