:root{--night:#07162f;--ink:#f9f4e8;--gold:#f4c875;--gold2:#fff0bd;--glass:rgba(4,14,33,.68);--purple:#6f3b97}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;background:var(--night)}
body{margin:0;color:var(--ink);font-family:Montserrat,system-ui,sans-serif;background:var(--night);overflow-x:hidden}
.brand-mode{background:#f3efe7;color:#141414}.brand-mode .backdrop,.brand-mode .shade,.brand-mode .lanterns,.brand-mode .invitation-transition{display:none!important}
.brand-home{position:relative;z-index:2;min-height:100svh;color:#141414;background:#f3efe7;font-family:Manrope,sans-serif;overflow:hidden}
.brand-nav{position:relative;z-index:5;width:min(1240px,calc(100% - 3rem));margin:auto;padding:1.1rem 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1c1c1c}
.brand-mark{display:flex;align-items:center;gap:.65rem;color:#141414;text-decoration:none}.brand-symbol{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:50%;color:#fff;background:#ff5c4d;font:700 1.3rem Bodoni Moda,serif}.brand-word{display:flex;flex-direction:column;font:700 1.35rem/1 Manrope,sans-serif;letter-spacing:-.05em}.brand-word small{margin-top:.24rem;font:700 .48rem/1 Manrope,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.brand-menu{display:flex;align-items:center;gap:1.7rem}.brand-menu>a{color:#141414;text-decoration:none;font-size:.72rem;font-weight:700}.brand-menu .brand-nav-cta{padding:.72rem 1rem;border:1px solid #141414;border-radius:999px}
.brand-hero{position:relative;width:min(1240px,calc(100% - 3rem));min-height:680px;margin:auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1rem,4vw,4rem);align-items:center;padding:4.6rem 0 5.5rem}
.brand-hero::before{content:"";position:absolute;left:-10rem;top:5rem;width:16rem;height:16rem;border:1px solid rgba(20,20,20,.14);border-radius:50%}
.brand-kicker{display:flex;align-items:center;gap:.7rem;margin:0 0 1.2rem;color:#141414;font-size:.68rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.brand-kicker::before{content:"";width:2.8rem;height:2px;background:#ff5c4d}
.brand-hero h1{position:relative;margin:0;font:600 clamp(4.5rem,8.2vw,8.2rem)/.78 Bodoni Moda,serif;letter-spacing:-.075em;color:#151515;text-shadow:none}.brand-hero h1 em{display:inline-block;color:#5748e8;font-weight:600}
.brand-lead{max-width:35rem;margin:2rem 0 0;color:#4c4a47;font:500 clamp(.96rem,1.35vw,1.08rem)/1.75 Manrope,sans-serif}
.brand-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.1rem}.brand-primary,.brand-secondary{display:inline-flex;align-items:center;justify-content:center;gap:1rem;min-height:3.2rem;padding:.82rem 1.25rem;border-radius:0;color:#fff;background:#151515;text-decoration:none;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.brand-primary span{font-size:1rem}.brand-secondary{color:#151515;background:transparent;border:1px solid #151515}
.brand-showcase{position:relative;min-height:540px}.showcase-orbit{position:absolute;right:2%;top:6%;width:76%;aspect-ratio:1;border:1px solid rgba(20,20,20,.18);border-radius:50%}.showcase-orbit::before,.showcase-orbit::after{content:"";position:absolute;border-radius:50%}.showcase-orbit::before{inset:16%;border:1px dashed rgba(20,20,20,.18)}.showcase-orbit::after{right:6%;bottom:12%;width:1rem;height:1rem;background:#ff5c4d}
.invite-sample{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 24px 45px rgba(28,24,20,.2);transition:transform .35s}.invite-sample:hover{z-index:4!important;transform:rotate(0) scale(1.035)}.sample-coral{z-index:2;left:2%;top:15%;width:42%;aspect-ratio:3/4.2;color:#131313;background:#ff725f;transform:rotate(-7deg)}.sample-coral span{font:600 4.8rem/.8 Bodoni Moda,serif}.sample-coral strong{margin-top:.65rem;font-size:.8rem;letter-spacing:.28em}.sample-coral small{margin-top:1.2rem;font-size:.58rem}.sample-blue{z-index:3;right:3%;top:4%;width:43%;aspect-ratio:3/4.2;color:#f8f4e9;background:#5748e8;transform:rotate(6deg)}.sample-blue small{font-size:.56rem;letter-spacing:.2em}.sample-blue strong{margin:1.1rem 0;font:500 2.6rem/.8 Bodoni Moda,serif}.sample-blue span{font-size:.62rem;letter-spacing:.12em}.sample-lime{z-index:1;left:22%;bottom:0;width:39%;aspect-ratio:3/4.2;color:#151515;background:#cdf25b;transform:rotate(3deg)}.sample-lime span{font-size:.56rem;letter-spacing:.18em}.sample-lime strong{font:600 5rem/.9 Bodoni Moda,serif}.sample-lime small{font-size:.58rem}.showcase-note{position:absolute;z-index:4;right:0;bottom:2%;margin:0;padding:.75rem 1rem;color:#f8f4e9;background:#151515;font-size:.68rem;line-height:1.5;transform:rotate(-3deg)}
.brand-marquee{padding:1rem 0;overflow:hidden;color:#fff;background:#151515;white-space:nowrap}.brand-marquee div{width:max-content;font:800 clamp(.75rem,1.5vw,1rem) Manrope,sans-serif;letter-spacing:.16em}.brand-marquee span{padding:0 1.5rem;color:#cdf25b}
.brand-collection{padding:clamp(5rem,10vw,9rem) max(1.5rem,calc((100% - 1240px)/2));background:#fffdf8}.collection-intro{display:grid;grid-template-columns:.45fr 1.15fr .75fr;gap:2rem;align-items:start;margin-bottom:4rem}.collection-intro>span,.process-heading>span{font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.collection-intro h2,.process-heading h2{margin:0;font:600 clamp(2.8rem,5.4vw,5.6rem)/.95 Bodoni Moda,serif;letter-spacing:-.06em;color:#151515}.collection-intro h2 em{color:#ff5c4d;font-weight:500}.collection-intro p{margin:.5rem 0 0;color:#56524d;font-size:.86rem;line-height:1.75}.collection-grid{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:1rem;align-items:end}.collection-card{position:relative;min-height:390px;padding:1.5rem;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.collection-card::before{content:"";position:absolute;border-radius:50%}.collection-card span{position:absolute;left:1.5rem;top:1.5rem;font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.collection-card strong{position:relative;font:600 clamp(2rem,4vw,3.6rem)/.9 Bodoni Moda,serif;letter-spacing:-.05em}.collection-card p{position:relative;margin:.7rem 0 0;font-size:.7rem}.card-romantic{color:#3b2732;background:#efcad9}.card-romantic::before{width:16rem;height:16rem;right:-4rem;top:4rem;border:1px solid rgba(59,39,50,.38);box-shadow:0 0 0 2rem rgba(255,255,255,.14),0 0 0 4rem rgba(255,255,255,.1)}.card-vibrant{min-height:470px;color:#fff;background:#5748e8}.card-vibrant::before{left:17%;top:21%;width:64%;aspect-ratio:1;background:#ff725f;box-shadow:5rem 2rem 0 #cdf25b;transform:rotate(35deg);border-radius:42% 58% 63% 37%}.card-modern{color:#141414;background:#cdf25b}.card-modern::before{right:-4rem;top:3rem;width:14rem;height:14rem;background:repeating-linear-gradient(45deg,#151515 0 2px,transparent 2px 10px);opacity:.28}
.brand-process{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,8vw,8rem);padding:clamp(5rem,10vw,9rem) max(1.5rem,calc((100% - 1240px)/2));color:#fff;background:#171717}.process-heading>span{color:#cdf25b}.process-heading h2{margin-top:1.4rem;color:#fff}.process-steps{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.35)}.process-steps li{display:grid;grid-template-columns:3.3rem 1fr;gap:1rem;padding:1.6rem 0;border-bottom:1px solid rgba(255,255,255,.35)}.process-steps>li>span{color:#ff725f;font-size:.7rem;font-weight:800}.process-steps h3{margin:0 0 .45rem;font-size:1rem}.process-steps p{max-width:34rem;margin:0;color:#aaa7a2;font-size:.78rem;line-height:1.65}
.brand-closing{padding:clamp(5rem,11vw,10rem) 1.5rem;text-align:center;background:#ff725f}.closing-tag{font-size:.65rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.brand-closing h2{max-width:980px;margin:2rem auto 2.5rem;font:600 clamp(3rem,7.3vw,7.6rem)/.9 Bodoni Moda,serif;letter-spacing:-.07em;color:#151515;text-shadow:none}.brand-closing h2 em{color:#fffdf8;font-weight:500}.brand-closing>a{display:inline-flex;gap:1.2rem;align-items:center;padding:.9rem 1.2rem;color:#fff;background:#151515;text-decoration:none;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.brand-closing>a span{font-size:1rem}
.brand-footer{width:min(1240px,calc(100% - 3rem));margin:auto;padding:2rem 0;display:flex;align-items:center;justify-content:space-between;background:#f3efe7}.brand-footer p{margin:0;color:#57534e;font-size:.72rem}.brand-footer>a:last-child{color:#151515;font-size:.68rem;font-weight:800;text-decoration:none}.footer-mark{min-width:180px}
.music-toggle{position:fixed;z-index:40;top:max(1rem,env(safe-area-inset-top));right:1rem;width:2.9rem;height:2.9rem;border:1px solid rgba(255,225,151,.72);border-radius:50%;background:rgba(63,31,91,.78);color:#ffe4a1;font:600 1.35rem/1 Montserrat,sans-serif;box-shadow:0 5px 22px rgba(0,0,0,.32),0 0 18px rgba(205,148,255,.2);backdrop-filter:blur(8px);cursor:pointer}.music-toggle::after{content:"";position:absolute;left:50%;top:50%;width:1px;height:70%;background:#ffe4a1;transform:translate(-50%,-50%) rotate(-45deg);opacity:0}.music-toggle.muted::after{opacity:1}.music-toggle[hidden]{display:none}
.invitation{position:relative;min-height:100svh;isolation:isolate}
.backdrop{position:fixed;inset:0;z-index:-3;background:url("noche-faroles.png") center/cover no-repeat;transform:scale(1.03);animation:drift 18s ease-in-out infinite alternate}
.shade{position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(2,9,25,.42),rgba(3,12,30,.58) 44%,rgba(2,9,24,.8))}
.lanterns{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.invitation-transition{position:fixed;z-index:30;inset:0;visibility:hidden;overflow:hidden;pointer-events:none}
.invitation-transition::before{content:"";position:absolute;inset:0;background:radial-gradient(circle,#fffdf0 0 5%,#ffe39a 18%,rgba(138,69,180,.9) 46%,rgba(7,22,47,0) 72%);opacity:0}
.flying-cupid{position:absolute;left:-48vw;top:42%;width:clamp(180px,34vw,430px);height:auto;opacity:0;filter:drop-shadow(0 0 22px rgba(255,220,137,.75));will-change:transform,opacity}
.invitation-transition.play{visibility:visible}
.invitation-transition.settled{visibility:visible;z-index:4}
.invitation-transition.play::before{animation:invitation-flash 1.25s ease both}
.invitation-transition.play .flying-cupid{animation:cupid-cross 3.4s cubic-bezier(.18,.7,.25,1) both}
.invitation-transition.settled .flying-cupid{left:0;top:18%;width:clamp(105px,17vw,190px);opacity:.82;animation:cupid-wander 13s ease-in-out infinite alternate}
.floating-lantern{position:absolute;left:var(--x);bottom:-22vh;width:var(--size);height:auto;opacity:0;filter:drop-shadow(0 0 16px rgba(255,177,57,.5));animation:lantern-rise var(--duration) linear var(--delay) infinite;will-change:transform,opacity}
.opening{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem 1.35rem;overflow:hidden;transition:opacity .75s,transform .75s}
.opening::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 47%,rgba(133,74,177,.22),transparent 39%);pointer-events:none}
.opening.hide{opacity:0;transform:scale(1.14);pointer-events:none;position:absolute;inset:0}
.opening-title{position:relative;z-index:3;margin:0 0 .35rem;color:#fff0bd;text-align:center;text-shadow:0 3px 18px #000,0 0 24px rgba(255,194,74,.32);animation:title-arrive 1.3s ease both}
.opening-title span{display:block;font:italic 1rem "Cormorant Garamond",serif;letter-spacing:.14em;color:#f4d58e}
.opening-title strong{display:block;margin-top:-.1rem;font:400 clamp(2.7rem,12vw,4.7rem)/1 "Great Vibes",cursive;color:#fff1b8}
.storybook{position:relative;width:min(87vw,410px);aspect-ratio:2/3;border:0;padding:0;background:transparent;perspective:1600px;cursor:pointer;transform-style:preserve-3d;filter:drop-shadow(0 32px 34px rgba(0,0,0,.68));animation:book-float 4s ease-in-out infinite;transition:transform 1.35s cubic-bezier(.2,.82,.2,1),filter .8s}
.book-cover,.magic-aura{position:absolute;inset:0}
.book-cover{z-index:4;display:block;transition:transform .9s cubic-bezier(.2,.82,.2,1),opacity .48s .42s,filter .8s}
.book-art{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.magic-aura{z-index:1;border-radius:50%;background:radial-gradient(circle,#fff7d1 0 3%,#f4c45f 8%,rgba(170,91,220,.48) 28%,transparent 66%);filter:blur(12px);opacity:.55;transform:scale(.78);animation:aura-breathe 2.8s ease-in-out infinite}
.storybook.open{animation:none;transform:scale(1.12) translateY(1vh);filter:drop-shadow(0 0 42px rgba(255,213,112,.72))}
.storybook.open .book-cover{transform:scale(.76) rotateX(16deg);filter:brightness(1.55) blur(2px);opacity:0}
.story-flash{position:fixed;z-index:20;inset:0;background:radial-gradient(circle,#fffdf0,#ffe8a5 22%,rgba(125,66,169,.92) 58%,transparent 75%);opacity:0;pointer-events:none}
.opening.entering .story-flash{animation:enter-flash 1.4s .75s ease both}
.tap-hint{position:relative;margin-top:.25rem;font-size:.78rem;color:#ffe5a1;letter-spacing:.1em;text-shadow:0 2px 12px #000;animation:pulse 1.6s ease-in-out infinite}.tap-hint span{color:#ffc95f}
.prologue{display:none;position:relative;min-height:100svh;padding:1rem;place-items:center;overflow:hidden}
.prologue.show{display:grid;animation:book-unfold 1.15s cubic-bezier(.18,.8,.2,1) both}
.book-stage{position:relative;width:min(98vw,920px)}
.opened-book{position:relative;width:100%;filter:drop-shadow(0 35px 40px rgba(0,0,0,.62));transition:transform .65s cubic-bezier(.2,.8,.2,1)}
.opened-book>img{display:block;width:100%;height:auto}
.open-book-copy{position:absolute;z-index:3;top:17%;bottom:29%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:1.5% 1%;overflow:hidden;text-align:center;color:#4b3025;text-shadow:0 1px rgba(255,255,255,.7)}
.book-spread{position:absolute;inset:0;z-index:3;transition:opacity .55s,transform .7s}
.childhood-photo{position:absolute;z-index:3;right:20%;top:18%;width:23%;max-height:47%;height:auto;object-fit:contain;object-position:center;opacity:.9;mix-blend-mode:multiply;filter:saturate(.78) sepia(.12) contrast(.94);mask-image:radial-gradient(ellipse 68% 72% at center,#000 38%,rgba(0,0,0,.9) 61%,rgba(0,0,0,.35) 80%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 68% 72% at center,#000 38%,rgba(0,0,0,.9) 61%,rgba(0,0,0,.35) 80%,transparent 100%)}
.left-story{left:18.5%;width:26%}.right-story{right:18.5%;width:26%}
.first-page-story{top:17%;bottom:29%}
.spread-two{opacity:0;transform:rotateY(-18deg) scale(.94);pointer-events:none}
.opened-book.page-two .spread-one{opacity:0;transform:rotateY(18deg) scale(.94);pointer-events:none}
.opened-book.page-two .spread-two{opacity:1;transform:none;pointer-events:auto}
.second-page-left{left:19.5%;width:24.5%}.second-page-right{right:19.5%;width:24.5%}
.second-page-left,.second-page-right{top:18%;bottom:29%;padding-inline:1.4%}
.spread-two .open-book-copy p{font-size:clamp(.66rem,2.35vw,1.08rem);line-height:1.22}
.open-book-copy p{margin:.25rem;font:italic clamp(.65rem,2.45vw,1.12rem)/1.28 "Cormorant Garamond",serif}.open-book-copy p strong{color:#6b3976}
.open-book-copy h2{margin:0 0 .35rem;color:#713d78;text-shadow:none;font:400 clamp(1rem,4vw,2rem)/1 "Great Vibes",cursive}
.open-book-copy{
  color:rgba(72,44,32,.9);
  mix-blend-mode:multiply;
  text-shadow:0 .35px .25px rgba(75,42,25,.24);
  filter:contrast(.94) saturate(.82);
}
.open-book-copy p{
  letter-spacing:.008em;
  font-weight:500;
  opacity:.9;
}
.open-book-copy h2{
  color:rgba(91,52,74,.88);
  text-shadow:0 .4px .35px rgba(79,43,34,.2);
  opacity:.92;
}
.open-book-copy p strong{color:rgba(92,50,84,.88)}
.book-navigation{position:absolute;z-index:5;left:50%;bottom:11%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:.55rem;width:max-content}
.book-navigation .book-continue{position:static;transform:none;padding:.58rem 1rem;font-size:.6rem;white-space:nowrap}
.book-navigation .book-continue:hover{transform:translateY(-2px)}
#previousPage,#beginStory{display:none}
.book-stage.can-go-back #previousPage{display:inline-flex}
.book-stage.page-two #turnPage{display:none}
.book-stage.page-two #beginStory{display:inline-flex}
.paper-spread{position:relative;width:min(94vw,760px);min-height:min(78svh,620px);display:grid;place-items:center;padding:3rem 2rem;background:linear-gradient(90deg,#ead3a1 0,#fff2c9 48%,#d6b77d 50%,#fff0c4 53%,#ead3a1 100%);border-radius:.8rem;color:#442c25;box-shadow:0 30px 80px rgba(0,0,0,.55);overflow:hidden}
.prologue-copy{position:relative;z-index:4;width:min(76%,430px);text-align:center;text-shadow:0 1px #fff7db}.prologue-copy>p{font:italic 1.25rem "Cormorant Garamond",serif}.prologue-copy h2{color:#5d2a70;text-shadow:none;font-size:2.2rem}.prologue-copy h2 strong{color:#8b4d74}
.character{position:absolute;z-index:2;object-fit:contain;pointer-events:none}
.pascal{width:110px;left:-8px;top:8%;mix-blend-mode:multiply;animation:pascal-peek 3s ease-in-out infinite}
.flynn{height:48%;right:-18px;bottom:-5%;animation:flynn-enter 1.2s .5s both}
.maximus{width:38%;left:-4%;bottom:-2%;border-radius:45% 45% 12% 12%;animation:maximus-trot 4s ease-in-out infinite}
.gothel{height:35%;right:4%;top:-2%;mix-blend-mode:multiply;animation:gothel-sway 4s ease-in-out infinite}
@keyframes book-float{0%,100%{transform:translateY(4px) rotate(-1deg)}50%{transform:translateY(-11px) rotate(.8deg)}}@keyframes aura-breathe{50%{opacity:.9;transform:scale(.91)}}@keyframes title-arrive{from{opacity:0;transform:translateY(-15px);letter-spacing:.42em}to{opacity:1;transform:none}}@keyframes enter-flash{0%{opacity:0;transform:scale(.35)}45%{opacity:1;transform:scale(1.45)}100%{opacity:0;transform:scale(2)}}@keyframes book-unfold{from{opacity:0;transform:perspective(1200px) rotateX(70deg) scale(.42)}to{opacity:1;transform:perspective(1200px) rotateX(0) scale(1)}}@keyframes pulse{50%{opacity:.45}}@keyframes zoom-story{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes pascal-peek{50%{transform:translate(12px,7px) rotate(5deg)}}@keyframes flynn-enter{from{transform:translateX(120%)}to{transform:none}}@keyframes maximus-trot{50%{transform:translateX(22px) translateY(-6px)}}@keyframes gothel-sway{50%{transform:rotate(-3deg) translateY(5px)}}
.eyebrow,.small-title{text-transform:uppercase;letter-spacing:.24em;font-size:.73rem;font-weight:600;color:var(--gold2)}
h1,h2,.celebrant{font-family:"Cormorant Garamond",serif;margin:.35rem 0;color:#fff7df;text-shadow:0 2px 25px rgba(255,190,75,.23)}
h1{font-size:clamp(4rem,17vw,7rem);line-height:.67;font-weight:500}
h1 span{display:block;font-size:.62em;font-style:italic;color:var(--gold);margin-top:.38em}
.flourish{color:var(--gold);font-size:1.4rem;margin:1.5rem 0 1rem}
.intro{max-width:33rem;font-family:"Cormorant Garamond",serif;font-size:1.35rem;line-height:1.45;margin:0 auto 1.65rem}
.open-button,.secondary-button{border:1px solid rgba(255,224,157,.75);border-radius:999px;padding:.95rem 1.55rem;color:#11213c;background:linear-gradient(135deg,#fff1bd,#dca74a);font:600 .78rem Montserrat,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;box-shadow:0 10px 35px rgba(241,184,71,.22);cursor:pointer;transition:.2s}
.open-button:hover,.secondary-button:hover{transform:translateY(-2px);filter:brightness(1.06)}
.sound-hint{font-size:.68rem;opacity:.7;margin-top:1.1rem}
.story{display:none;width:min(100%,700px);margin:auto;padding:2.5rem 1rem 4rem;gap:1rem}
.story.show{display:grid;animation:reveal 1s ease both}
.panel{text-align:center;padding:2rem 1.25rem;border:1px solid rgba(255,223,159,.27);background:linear-gradient(145deg,rgba(7,23,49,.76),rgba(9,20,42,.58));backdrop-filter:blur(12px);border-radius:1.7rem;box-shadow:0 18px 55px rgba(0,0,0,.2)}
.guest-panel{padding-top:2.6rem;padding-bottom:2.6rem}
.invite-copy{font-family:"Cormorant Garamond",serif;font-size:1.25rem;margin:.6rem 0 0}
.guest-panel h2{font-size:clamp(2.6rem,11vw,4.5rem);font-style:italic;color:var(--gold);line-height:1}
.seats{font-size:.86rem;margin-bottom:0}.seats strong{color:var(--gold2)}
.celebrant{font-size:clamp(3rem,12vw,5rem);line-height:.82}.celebrant span{font-size:.52em;color:var(--gold);font-style:italic}
.portrait-panel{position:relative;margin:0;min-height:min(82svh,760px);padding:0;border:1px solid rgba(255,223,159,.38);border-radius:1.8rem;background:#101a30;box-shadow:0 22px 65px rgba(0,0,0,.35);overflow:hidden}
.portrait-panel::before{content:"✦";position:absolute;z-index:2;top:1.1rem;right:1.2rem;color:var(--gold2);font-size:1.2rem;text-shadow:0 0 18px rgba(255,204,102,.8)}
.portrait-panel::after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(5,12,30,.18) 67%,rgba(4,10,26,.9) 100%);pointer-events:none}
.portrait-frame{position:absolute;inset:0;overflow:hidden;background:#101a30}
.portrait-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%;transition:transform 8s ease}
.portrait-panel:hover img{transform:scale(1.035)}
.portrait-panel figcaption{position:absolute;z-index:2;left:1rem;right:1rem;bottom:1.4rem;text-align:center;padding:1rem .5rem;font:italic clamp(1.35rem,4vw,1.8rem) "Cormorant Garamond",serif;color:#fff0c4;text-shadow:0 2px 14px #000}
.date-grid{margin:1.8rem auto .45rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;max-width:25rem}
.date-grid span{padding:.5rem;font-size:.77rem;text-transform:uppercase;letter-spacing:.14em;border-top:1px solid rgba(255,228,174,.45);border-bottom:1px solid rgba(255,228,174,.45)}
.date-grid strong{font:500 4rem/1 "Cormorant Garamond",serif;color:var(--gold);padding:0 1rem}
.year{letter-spacing:.16em;font-size:.82rem}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-top:1.4rem}
.countdown div{padding:.85rem .25rem;border-radius:1rem;background:rgba(2,12,30,.48);border:1px solid rgba(255,225,167,.18)}
.countdown strong{display:block;font:500 clamp(1.65rem,8vw,2.6rem)/1 "Cormorant Garamond",serif;color:var(--gold)}
.countdown span{font-size:.63rem;text-transform:uppercase;letter-spacing:.06em}
.detail-icon{font-size:1.7rem;color:var(--gold)}
.details-panel p:not(.small-title){line-height:1.7;margin-bottom:1.5rem}
.secondary-button{display:inline-block;padding:.78rem 1.25rem;background:transparent;color:var(--gold2);box-shadow:none}
.dress-swatches{display:flex;justify-content:center;gap:.8rem;margin:0 auto 1rem}.dress-swatch{display:block;width:3.2rem;height:3.2rem;border-radius:50%;border:2px solid rgba(255,236,193,.72);box-shadow:0 0 25px rgba(130,71,170,.45)}.dress-swatch.purple{background:radial-gradient(circle at 35% 30%,#a86fca,#6f3b97 65%,#35144f)}.dress-swatch.lilac{background:radial-gradient(circle at 35% 30%,#f0dcff,#c69ae8 62%,#9f6dc5)}
.dress-panel>p:not(.small-title):not(.reserved){font:italic 2.2rem "Cormorant Garamond",serif;margin:.5rem}
.reserved{max-width:27rem;margin:1rem auto 0;padding:.7rem 1rem;font-size:.82rem;line-height:1.55;color:#e2bcff;background:rgba(116,55,158,.22);border:1px solid rgba(216,169,255,.42);border-radius:1rem;text-shadow:0 0 12px rgba(188,120,239,.35)}
.etiquette-panel{display:grid;gap:1rem;text-align:center}.etiquette-item{padding:1.15rem 1rem;border:1px solid rgba(255,223,159,.18);border-radius:1.2rem;background:rgba(255,255,255,.035)}.etiquette-icon{display:block;margin-bottom:.55rem;color:var(--gold);font-size:1.65rem;text-shadow:0 0 16px rgba(244,200,117,.42)}.etiquette-item p:last-child{max-width:31rem;margin:.65rem auto 0;font:500 1.08rem/1.55 "Cormorant Garamond",serif;color:#f5ead2}
.rsvp-panel p:not(.small-title){font-family:"Cormorant Garamond",serif;font-size:1.2rem;margin-bottom:1.5rem}
.rsvp-panel .confirmation-note{max-width:34rem;margin:1.35rem auto 0;font:500 .96rem/1.55 Montserrat,sans-serif;color:#d8cce0}
.whatsapp{display:inline-block}
.rsvp-modal{position:fixed;z-index:60;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(2,8,23,.82);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}.rsvp-modal.show{opacity:1;visibility:visible}.rsvp-card{position:relative;width:min(92vw,480px);padding:2.1rem 1.35rem;text-align:center;border:1px solid rgba(255,222,145,.55);border-radius:2rem;background:radial-gradient(circle at 50% 0,rgba(131,72,171,.42),transparent 48%),linear-gradient(145deg,#0b2044,#130f2d);box-shadow:0 25px 80px rgba(0,0,0,.55),0 0 40px rgba(166,99,211,.2)}.rsvp-card h2{margin:.25rem 0 .4rem;font:400 clamp(2.2rem,9vw,3.5rem)/1 "Great Vibes",cursive;color:var(--gold2)}.modal-close{position:absolute;right:.85rem;top:.65rem;border:0;background:transparent;color:#f7e7bd;font-size:2rem;cursor:pointer}.rsvp-guest{margin:.4rem 0 1.1rem;font:600 1.15rem "Cormorant Garamond",serif}.selection-label{font:italic 1.15rem "Cormorant Garamond",serif}.attendance-options{display:flex;justify-content:center;gap:.65rem;margin:1rem 0 1.4rem}.attendance-option{width:3rem;height:3rem;border:1px solid rgba(255,224,157,.55);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;font:600 1rem Montserrat,sans-serif;cursor:pointer}.attendance-option.selected{background:linear-gradient(145deg,#b978dc,#6f3b97);border-color:#ffe09a;box-shadow:0 0 20px rgba(205,143,239,.5)}.confirm-rsvp{font-size:.72rem}.rsvp-success[hidden],#rsvpFormView[hidden]{display:none}.success-spark{display:block;font-size:3rem;color:var(--gold);animation:pulse 1.6s infinite}.rsvp-success p{font-family:"Cormorant Garamond",serif;font-size:1.15rem}.success-note{color:#e6c9f5}.modal-open{overflow:hidden}.admin-panel{min-height:100svh;padding:clamp(2rem,6vw,5rem) 1rem;background:linear-gradient(180deg,rgba(5,14,35,.45),rgba(7,13,31,.88))}.admin-shell{width:min(100%,1040px);margin:auto}.admin-shell h1{margin:.2rem 0 1.5rem;font:400 clamp(3rem,10vw,5.5rem)/1 "Great Vibes",cursive;color:var(--gold2)}.admin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem}.admin-summary div{padding:1.25rem .7rem;text-align:center;border:1px solid rgba(255,222,145,.28);border-radius:1.25rem;background:rgba(8,22,48,.76)}.admin-summary strong{display:block;font:600 2rem "Cormorant Garamond",serif;color:var(--gold)}.admin-summary span{font-size:.72rem;color:#d7cbe3}.checklist-card{overflow:hidden;border:1px solid rgba(255,222,145,.28);border-radius:1.25rem;background:rgba(8,22,48,.82)}.checklist-head,.checklist-row{display:grid;grid-template-columns:2fr .9fr 1fr .7fr;gap:.7rem;align-items:center;padding:1rem}.checklist-head{background:rgba(112,57,151,.3);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#e4c8ef}.checklist-row span:first-child{display:flex;flex-direction:column}.checklist-row small{margin-top:.25rem;color:#aeb7c9}.status-pill{justify-self:start;padding:.35rem .7rem;border-radius:999px}.status-pill.confirmed{background:rgba(77,190,132,.18);color:#8ce0b2}.status-pill.declined{background:rgba(220,91,108,.17);color:#f4a0ad}.admin-demo-note{margin-top:1rem;color:#aaa8b7;font-size:.8rem;text-align:center}.copy-invite-link{justify-self:start;padding:.45rem .75rem;border:1px solid rgba(255,222,145,.4);border-radius:999px;background:rgba(111,59,151,.35);color:#f9e7bd;font:600 .68rem Montserrat,sans-serif;cursor:pointer}.copy-invite-link:hover{background:rgba(111,59,151,.62)}
footer{text-align:center;font:italic 1.25rem "Cormorant Garamond",serif;color:#f9e6b7;padding:1.4rem}footer span{color:var(--gold)}
.status-pill.pending{background:rgba(244,200,117,.12);color:#dccb9e}
.admin-summary{grid-template-columns:1.35fr repeat(3,1fr)}.admin-summary .summary-main{background:linear-gradient(145deg,rgba(111,59,151,.72),rgba(55,28,85,.78));border-color:rgba(230,185,255,.55);box-shadow:0 0 28px rgba(166,99,211,.16)}.admin-summary .summary-main strong{font-size:2.55rem;color:#fff0bd}.response-progress{margin:-.25rem 0 1.1rem;padding:.85rem 1rem;border:1px solid rgba(255,222,145,.22);border-radius:1rem;background:rgba(8,22,48,.58)}.response-progress-copy{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.55rem;font-size:.76rem;color:#d7cbe3}.response-progress-copy strong{color:var(--gold)}.response-progress-track{height:.55rem;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.1)}.response-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8d50b6,#f4c875);transition:width .45s ease}@media(max-width:760px){.admin-summary{grid-template-columns:repeat(2,1fr)}.admin-summary .summary-main{grid-column:1/-1}.checklist-card{overflow-x:auto}.checklist-head,.checklist-row{min-width:720px}}
.attendance-options{flex-wrap:wrap}.attendance-option.decline-option{width:auto;padding:0 1rem;border-radius:999px;color:#f4b5bf}.attendance-option.decline-option.selected{background:linear-gradient(145deg,#9b4052,#632638);border-color:#ffc2cb;box-shadow:0 0 20px rgba(220,91,108,.38)}
@keyframes drift{to{transform:scale(1.08) translateY(-.6%)}}
@keyframes reveal{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes invitation-flash{0%{opacity:0}28%{opacity:1}100%{opacity:0}}
@keyframes cupid-cross{0%{opacity:0;transform:translate3d(0,20px,0) rotate(-6deg) scale(.78)}12%{opacity:1}82%{opacity:1}100%{opacity:0;transform:translate3d(155vw,-50px,0) rotate(5deg) scale(1.06)}}
@keyframes cupid-wander{0%{transform:translate3d(-8vw,8vh,0) rotate(-7deg) scale(.9)}25%{transform:translate3d(28vw,40vh,0) rotate(4deg) scale(1)}55%{transform:translate3d(58vw,12vh,0) rotate(-3deg) scale(.94)}80%{transform:translate3d(78vw,58vh,0) rotate(6deg) scale(1.04)}100%{transform:translate3d(92vw,25vh,0) rotate(-4deg) scale(.96)}}
@keyframes lantern-rise{
  0%{transform:translate3d(0,12vh,0) scale(.78) rotate(-2deg);opacity:0}
  10%{opacity:var(--opacity)}
  48%{transform:translate3d(var(--sway),-58vh,0) scale(.94) rotate(2deg);opacity:var(--opacity)}
  86%{opacity:var(--opacity)}
  100%{transform:translate3d(calc(var(--sway) * -.5),-138vh,0) scale(1.08) rotate(-1deg);opacity:0}
}
@media(min-width:650px){.story{grid-template-columns:1fr 1fr}.guest-panel,.celebration-panel,.portrait-panel,.countdown-panel,.etiquette-panel,.rsvp-panel,footer{grid-column:1/-1}.portrait-panel{width:100%;justify-self:center}.details-panel,.dress-panel{min-height:260px}.etiquette-panel{grid-template-columns:1fr 1fr}}
@media(max-width:600px){
  .brand-nav{width:calc(100% - 2rem);padding:.8rem 0}.brand-menu>a:not(.brand-nav-cta){display:none}.brand-menu .brand-nav-cta{padding:.6rem .75rem;font-size:.58rem}.brand-symbol{width:2rem;height:2rem}.brand-word{font-size:1.05rem}
  .brand-hero{width:calc(100% - 2rem);min-height:auto;grid-template-columns:1fr;gap:2.5rem;padding:4rem 0 3rem}.brand-hero h1{font-size:clamp(4.15rem,20vw,6rem)}.brand-lead{font-size:.9rem}.brand-actions{display:grid;grid-template-columns:1fr 1fr}.brand-primary,.brand-secondary{padding:.7rem .5rem;font-size:.58rem}.brand-showcase{min-height:430px}.showcase-note{right:2%}.brand-marquee div{font-size:.72rem}
  .brand-collection{padding-block:5rem}.collection-intro{grid-template-columns:1fr;gap:1rem}.collection-intro h2{font-size:clamp(3rem,14vw,4.3rem)}.collection-grid{grid-template-columns:1fr}.collection-card,.card-vibrant{min-height:330px}.brand-process{grid-template-columns:1fr}.process-heading h2{font-size:clamp(3.3rem,15vw,5rem)}.brand-closing h2{font-size:clamp(3.2rem,14vw,5rem)}.brand-footer{width:calc(100% - 2rem);flex-direction:column;gap:1.2rem;text-align:center}.footer-mark{min-width:auto}
  .prologue{padding:.25rem}
  .book-stage{width:100vw;overflow:visible}
  .opened-book{left:50%;width:190vw;max-width:none}
  .opened-book.mobile-focus-left{transform:translateX(-50%) translateX(38vw)}
  .opened-book.mobile-focus-right{transform:translateX(-50%) translateX(-38vw)}
  .left-story{left:18.5%;width:26%;padding-inline:1.2%}.right-story{right:18.5%;width:26%;padding-inline:1.2%}
  .open-book-copy p{margin:.13rem;font-size:clamp(.78rem,3.15vw,.96rem);line-height:1.18;max-width:100%;overflow-wrap:break-word}
  .spread-two .open-book-copy p{font-size:clamp(.7rem,2.85vw,.88rem);line-height:1.16}
  .open-book-copy h2{margin:0 0 .22rem;font-size:clamp(1.25rem,5.25vw,1.6rem);line-height:1}
  .first-page-story{top:17%;bottom:29%}
  .second-page-left{left:19.5%;width:24.5%}.second-page-right{right:19%;width:25%;overflow:hidden;transform:none}
  .second-page-left,.second-page-right{top:18%;bottom:29%;padding-inline:1.4%}
  .second-page-right{top:16%;bottom:27%;justify-content:center;padding-inline:1.8%}
  .spread-two .second-page-right p{margin:.2rem 0;font-size:clamp(.82rem,3.45vw,1rem);line-height:1.22}
  .second-page-right h2{margin:.45rem 0 0;font-size:clamp(1.35rem,5.7vw,1.75rem);line-height:.88;white-space:normal;overflow-wrap:normal;transform:none}
  .childhood-photo{right:20%;top:18%;bottom:auto;width:23%;max-height:47%;height:auto}
  .portrait-panel{min-height:76svh;border-radius:1.5rem}
  .desktop-story-extra{display:none}
  .book-navigation{bottom:8%;gap:.4rem}
  .book-navigation .book-continue{padding:.62rem .85rem;font-size:.59rem}
  .book-stage.page-two #turnPage{display:inline-flex}
  .book-stage.page-two #beginStory{display:none}
  .flying-cupid{left:-75vw;top:44%;width:70vw}
  .invitation-transition.play .flying-cupid{animation-duration:3.2s}
  .invitation-transition.settled .flying-cupid{left:0;top:12%;width:30vw;max-width:135px;animation-duration:11s}
}
@media(max-height:700px){.storybook{width:min(62vw,290px)}.opening-title{margin-bottom:.1rem}.tap-hint{margin-top:-.25rem}}
.colors-panel{grid-column:1/-1}
.dress-ornament{display:block;margin:1rem auto .65rem;color:var(--gold);font-size:1.5rem}
.dress-panel .dress-note{max-width:32rem;margin:.5rem auto 0;font-size:1rem;line-height:1.65;color:#e5dbea}
.whatsapp.registered,.whatsapp:disabled{color:#d8cce0;background:rgba(255,255,255,.08);border-color:rgba(255,225,167,.28);box-shadow:none;cursor:not-allowed;filter:none;opacity:.88}.whatsapp.registered:hover{transform:none;filter:none}
.checklist-head,.checklist-row{grid-template-columns:2fr .9fr 1fr 1.35fr}.row-actions{display:flex;flex-wrap:wrap;gap:.4rem}.row-actions .copy-invite-link,.reset-response{justify-self:auto;padding:.45rem .7rem;border:1px solid rgba(255,222,145,.4);border-radius:999px;font:600 .64rem Montserrat,sans-serif;cursor:pointer}.reset-response{border-color:rgba(244,160,173,.42);background:rgba(155,64,82,.2);color:#f4b5bf}.reset-response:hover{background:rgba(155,64,82,.42)}.reset-response:disabled{cursor:wait;opacity:.65}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.floating-lantern{display:none}}
