@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

/* ---- Tokens ---- */
:root{
  --ink:#222;
  --black:#1d1d1d;
  --cream:#f6f2eb;
  --muted:#a5a3a0;
  --red:#ca1644;
  --red-dark:#ab1036;
  --border:#deddda;
  --dark:#161616;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;background:var(--cream);overflow-x:hidden}
h1,h2,h3,p{margin-top:0}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ff6b91;outline-offset:3px}
.hidden{display:none!important}
.shell{max-width:1216px;margin:auto;padding:0 42px}

/* ---- Topbar ---- */
.topbar{height:82px;padding:0 max(3.3vw,25px);display:flex;align-items:center;justify-content:center;gap:20px;position:fixed;z-index:50;top:0;left:0;right:0;color:#fff;border-bottom:1px solid #ffffff24;transition:background .3s,height .3s,border-color .3s}
.topbar.scrolled{background:#181818f2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);height:66px;border-bottom-color:#ffffff1f}
.brand-mini,.footer-brand{font-family:Manrope,Arial,sans-serif;font-size:20px;font-weight:800;letter-spacing:-1.2px}
.topbar .brand-mini{font-size:22px;letter-spacing:.16em;text-align:center;white-space:nowrap}
.red-dot{color:#ee305c}
.topbar nav{display:flex;gap:37px;font-size:12px;letter-spacing:.02em;color:#d2d2d2;position:absolute;right:max(3.3vw,25px);top:50%;transform:translateY(-50%)}
.topbar nav a:hover{color:#fff}
.menu-toggle{display:none;width:42px;height:42px;padding:0;border:1px solid #ffffff44;background:transparent;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.menu-toggle span{display:block;width:18px;height:1.6px;background:#fff;transition:transform .25s,opacity .25s}
.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.3px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.3px) rotate(-45deg)}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;border:0;padding:19px 24px;font-size:12px;font-weight:700;letter-spacing:.015em;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn.small{padding:13px 17px;background:#ffffff19;border:1px solid #ffffff55;color:#fff}
.btn.primary{background:var(--red);color:#fff;border:1px solid var(--red)}
.btn.primary:hover{background:var(--red-dark);border-color:var(--red-dark)}
.btn.primary:hover{background:var(--red-dark)}
.btn.ghost{background:#ffffff1f;border:1px solid #ffffff66;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.btn.ghost:hover{background:#ffffff33}

/* ---- Hero ---- */
.hero{min-height:790px;height:min(900px,100svh);position:relative;color:#fff;display:flex;align-items:center;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#000 0%,rgba(0,0,0,0) 45%),#252525}
.hero::before{content:'';position:absolute;inset:0;opacity:.28;background:radial-gradient(ellipse at 79% 60%,#b28c6650,transparent 44%),repeating-linear-gradient(125deg,transparent 0 100px,#ffffff03 101px 102px);pointer-events:none}
.hero:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 78% 47%,#4a424128,transparent 50%);pointer-events:none}
.hero-inner{position:relative;z-index:2;width:min(710px,70%);margin-left:max(calc((100vw - 1132px)/2),7%);padding-top:100px}
.eyebrow,.kicker,.serial{font-size:10px;letter-spacing:.28em;font-weight:700}
.eyebrow{display:flex;align-items:center;gap:15px;color:#ded9d8;margin:0 0 43px}
.line{display:inline-block;width:32px;height:1px;background:var(--red)}
.hero-logo{width:min(400px,81%);display:block;margin:0 0 14px}
.hero-collection{display:flex;align-items:center;justify-content:flex-start;gap:15px;font-size:10px;color:#d9b7a9;letter-spacing:.24em;font-weight:700;margin:5px 0 24px}
.hero-collection span{color:var(--red);font-size:18px}
.hero h1{font:600 clamp(68px,8.3vw,132px)/.99 Manrope,sans-serif;letter-spacing:-.085em;margin:0 0 25px}
.hero h1 em{font-family:Georgia,serif;font-size:.96em;font-weight:400;letter-spacing:-.08em;white-space:nowrap}
.hero-period{color:#e82a61;font-family:Manrope,sans-serif}
.hero-sub{max-width:490px;color:#bdbdbd;font-size:15px;line-height:1.78;margin-bottom:34px}
.hero-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:14px}
.hero-event-chip{display:flex;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid #ffffff32;padding-top:21px;margin-top:34px;font-size:10px;letter-spacing:.12em;color:#d2cbc8}
.hero-event-chip b{color:#fff;font-size:12px}
.hero-event-chip span+span{border-left:1px solid #ffffff3b;padding-left:14px}
.scroll-cue{margin-top:32px;font-size:9px;letter-spacing:.23em;color:#999}
.scroll-cue span{margin-left:13px;color:#eee}
.hero-art{position:absolute;width:44vw;right:-3%;height:65vh;bottom:4%;opacity:.85;transform:rotate(-7deg);filter:drop-shadow(-40px 60px 45px #0008)}
.art-ring{position:absolute;width:50%;height:70%;border:90px solid #a18b78;border-radius:47% 47% 42% 42%;transform:rotate(-13deg);right:25%;top:6%;box-shadow:inset -22px 15px 36px #1b1816,14px 25px 65px #0d0a09;opacity:.55}
.art-stem{position:absolute;right:14%;bottom:6%;width:21%;height:51%;border-radius:48% 46% 10% 10%;transform:rotate(11deg);background:linear-gradient(90deg,#272320,#ad9882 43%,#3f3830);opacity:.6}
.art-ground{position:absolute;right:5%;bottom:0;width:80%;height:6%;border-radius:100%;background:#0d0d0d;filter:blur(25px)}
.ambient{position:absolute;border-radius:50%;filter:blur(80px)}
.glow-one{height:290px;width:290px;background:#8c34432a;top:30%;left:-15%}
.glow-two{height:370px;width:400px;background:#99999910;bottom:-20%;right:20%}

/* ---- Sections ---- */
.section{padding:124px 0}
.section-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:29px;border-bottom:1px solid var(--border)}
.kicker{color:var(--red)}
.serial{color:#aaa;letter-spacing:.19em}
.intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:90px;align-items:end;padding:61px 0 66px}
.pretitle{font:italic 18px Georgia,serif;color:var(--red);margin:0 0 22px}
.section h2{font:700 clamp(38px,4.35vw,64px)/1.14 Manrope,sans-serif;letter-spacing:-.06em;margin:0}
.section h2 i{color:var(--red)}
.section-description,.collection-heading>p{font-size:15px;line-height:1.9;color:#73716f;max-width:425px;margin:0}
.section-description strong{color:#282828}

/* ---- Countdown ---- */
.countdown-wrap{background:#292929;color:#fff;padding:36px 46px 45px}
.countdown-heading{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.18em;color:#b1b1b1;margin-bottom:31px}
.countdown-heading span:last-child{color:#d77990}
.countdown{display:flex;justify-content:space-between;align-items:baseline;max-width:960px;margin:auto}
.countdown>div{text-align:center;flex:1}
.countdown strong{display:block;font:800 clamp(45px,8vw,96px)/1.2 Manrope,sans-serif;letter-spacing:-.07em;font-variant-numeric:tabular-nums}
.countdown small{display:block;font-size:10px;letter-spacing:.25em;color:#bbb;margin-top:10px}
.countdown>b{font-weight:300;font-size:45px;color:#9c9c9c;transform:translateY(-12px)}

/* ---- Details ---- */
.details-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:37px;background:#fff;border:1px solid #ebe9e5}
.detail{padding:38px 31px;min-height:230px;border-right:1px solid #eee}
.detail:last-child{border:0}
.detail-icon{color:var(--red);font-size:26px;display:block;margin-bottom:27px}
.detail-label{color:#96938f;font-size:10px;letter-spacing:.23em;font-weight:700}
.detail h3{font:700 21px Manrope,sans-serif;letter-spacing:-.05em;margin:14px 0 9px}
.detail p{font-size:13px;line-height:1.5;color:#85817f;margin:0}
.text-link{display:inline-block;font-size:12px;color:var(--red);margin-top:13px}
.event-action{display:flex;align-items:center;gap:22px;margin-top:26px;font-size:12px;color:#8f8c89}
.outline-btn{display:inline-flex;border:1px solid #292929;padding:15px 17px;font-weight:700;color:#292929;gap:30px}
.outline-btn.disabled{opacity:.35;cursor:not-allowed}

/* ---- Statement ---- */
.statement{background:#bc163e;color:#fff;padding:88px 0 75px;text-align:center}
.statement-inner>span{font-size:10px;letter-spacing:.3em}
.statement p{font:600 clamp(28px,4.8vw,62px)/1.3 Manrope,sans-serif;letter-spacing:-.05em;margin:30px 0}
.statement em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em;color:#ffced9}
.statement-bottom{opacity:.8}

/* ---- Collection ---- */
.collection{background:#f9f8f5}
.collection-heading{display:flex;justify-content:space-between;align-items:end;padding:58px 0 37px;gap:50px}
.collection-heading>p{max-width:320px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:27px}
.filter{padding:11px 20px;border:1px solid #dfdcd7;background:transparent;color:#74716d;font-size:12px}
.filter.active,.filter:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.product{background:#fff;border:1px solid #eeece8;overflow:hidden;box-shadow:0 20px 50px #281a130b;transition:transform .3s,box-shadow .3s;cursor:pointer;text-align:left}
.product:hover,.product:focus-visible{transform:translateY(-5px);box-shadow:0 25px 55px #281a1320}
.product-image{height:330px;background:linear-gradient(145deg,#e9e1d8,#f6f4f0);display:flex;align-items:center;justify-content:center;overflow:hidden}
.product-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.product:hover img{transform:scale(1.035)}
.product-info{padding:26px 29px 29px}
.product-overline{display:flex;justify-content:space-between;color:#98918c;font-size:10px;letter-spacing:.16em}
.product h3{font:700 24px Manrope,sans-serif;letter-spacing:-.04em;margin:16px 0 8px}
.product p{font-size:13px;line-height:1.7;color:#85817e;margin:0}
.catalog-note{font-size:11px;color:#918a85;margin:21px 0 0}

/* ---- RSVP ---- */
.rsvp{background:#eae7e2}
.rsvp-layout{display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:center}
.rsvp-copy h2{margin:16px 0 30px}
.rsvp-copy>p:not(.pretitle){line-height:1.85;color:#7a7672;font-size:15px;max-width:350px}
.rsvp-copy .pretitle{margin-top:66px}
.organizer{margin-top:87px}
.organizer small{font-size:10px;letter-spacing:.2em;color:#8a8681}
.organizer-logo{margin-top:18px;width:min(340px,100%)}
.organizer-logo img{display:block;width:100%;height:auto}
.rsvp-form{padding:42px;background:#fff;box-shadow:0 20px 60px #00000008}
.form-head{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #e9e6e3;margin-bottom:32px;padding-bottom:21px;font-size:9px;letter-spacing:.11em;font-weight:700}
.form-head span:last-child{color:#9d9792}
.rsvp-form label{display:block;font-weight:700;font-size:11px;letter-spacing:.035em;margin-bottom:20px}
.rsvp-form label>span{color:var(--red)}
.rsvp-form input,.rsvp-form select{display:block;width:100%;margin-top:10px;height:48px;padding:0 13px;background:#f8f7f5;border:1px solid #e6e4e1;color:#292929;border-radius:0;min-width:0}
.rsvp-form input::placeholder{color:#aaa}
.form-split{display:grid;grid-template-columns:1.1fr .9fr;gap:15px}
.rsvp-form button{width:100%;margin-top:16px}
.form-message{margin:16px 0 0;font-size:12px;line-height:1.65}
.form-message.ok{color:#286c40}
.form-message.error{color:#a50e36}
.privacy{display:block;margin-top:15px;color:#aaa;font-size:10px;line-height:1.6}
.honeypot{display:none!important}

/* ---- Modal de producto ---- */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}
.modal-backdrop{position:absolute;inset:0;background:#141210cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.modal-panel{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr 1fr;max-width:900px;width:100%;max-height:90vh;background:#fff;overflow:hidden;box-shadow:0 40px 90px #00000059;animation:modalIn .35s ease-out}
.modal-image{background:linear-gradient(145deg,#e9e1d8,#f6f4f0);display:flex;align-items:center;justify-content:center;min-height:320px}
.modal-image img{width:100%;height:100%;object-fit:cover}
.modal-info{padding:46px 44px}
.modal-info h3{font:700 32px Manrope,sans-serif;letter-spacing:-.04em;margin:18px 0 14px}
.modal-info p{font-size:14px;line-height:1.85;color:#7d7975;margin:0}
.modal-close{position:absolute;top:16px;right:16px;z-index:2;width:42px;height:42px;border:0;background:#ffffffd9;font-size:26px;line-height:1;color:#262626;display:flex;align-items:center;justify-content:center}
.modal-close:hover{background:#fff}
@keyframes modalIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}

/* ---- Footer ---- */
.footer{background:#000;color:#fff}
.footer .footer-inner{padding-top:72px;padding-bottom:64px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px}
.footer-inner p{font:italic 17px Georgia,serif;color:#aaa;margin:0}
.footer-inner>span{color:#8f8f8f;font-size:9px;letter-spacing:.14em}
.footer-codi{color:#8f8f8f;font-size:9px;letter-spacing:.14em;transition:color .2s}
.footer-codi:hover{color:#fff}
#contact-link{font-size:11px;letter-spacing:.08em;color:#c9c9c9;border-bottom:1px solid #ffffff33;padding-bottom:2px}
#contact-link:hover{color:#fff;border-color:#fff}

/* ---- Reveal on scroll ---- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in-view{opacity:1;transform:none}

/* ---- Motion ---- */
@media(prefers-reduced-motion:no-preference){
  .hero-logo{animation:appear .8s ease-out both}
  .hero-collection{animation:appear 1s .12s ease-out both}
  .hero h1{animation:appear 1s .22s ease-out both}
  .hero-sub{animation:appear 1s .33s ease-out both}
  .hero-art{animation:sculpture 12s ease-in-out infinite alternate}
  .topbar .brand-mini{animation:brandIn .9s cubic-bezier(.2,.7,.2,1) both}
  .topbar .brand-mini .red-dot{display:inline-block;animation:dotPulse 3.2s 1.5s ease-in-out infinite}
  @supports (background-clip:text) or (-webkit-background-clip:text){
    .topbar .brand-mini{color:transparent;background-image:linear-gradient(95deg,#ffffff 0%,#ffffff 34%,#ffd4e0 44%,#ee305c 50%,#ffffff 62%,#ffffff 100%);background-size:340% 100%;-webkit-background-clip:text;background-clip:text;animation:brandIn .9s cubic-bezier(.2,.7,.2,1) both,brandShine 4.5s 1.4s linear infinite}
  }
  @keyframes appear{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
  @keyframes sculpture{from{transform:translateY(10px) rotate(-7deg)}to{transform:translateY(-10px) rotate(-5deg)}}
  @keyframes brandIn{from{opacity:0;transform:translateY(-10px);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
  @keyframes brandShine{from{background-position:135% 0}to{background-position:-35% 0}}
  @keyframes dotPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.7)}}
}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero-art{animation:none}
}

/* ---- Responsive ---- */
@media(max-width:900px){
  .shell{padding:0 25px}
  .topbar .brand-mini{font-size:16px;letter-spacing:.12em}
  .menu-toggle{display:inline-flex;position:absolute;right:20px;top:50%;transform:translateY(-50%)}
  .topbar nav{display:none;position:absolute;top:100%;left:12px;right:12px;flex-direction:column;gap:0;transform:none;background:#1b1b1bf7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:8px 6px;border:1px solid #ffffff1f}
  .topbar nav.open{display:flex}
  .topbar nav a{padding:14px 16px;border-bottom:1px solid #ffffff12;color:#e6e6e6;font-size:13px}
  .topbar nav a:last-child{border-bottom:0}
  .section{padding:95px 0}
  .hero{min-height:740px}
  .hero-inner{width:77%;margin-left:7%}
  .hero-logo{margin:0 auto 14px}
  .hero-collection{justify-content:center}
  .hero h1{font-size:clamp(62px,9vw,105px)}
  .hero-art{opacity:.35;right:-18%;width:65vw}
  .intro-grid,.rsvp-layout{gap:36px}
  .rsvp-form{padding:28px}
}

@media(max-width:650px){
  .topbar{height:70px;padding:0 20px}
  .hero{height:auto;min-height:790px}
  .hero-inner{width:90%;margin-left:6%;padding-top:120px;padding-bottom:48px}
  .hero-logo{max-width:305px;margin-bottom:20px}
  .hero h1{font-size:clamp(62px,13.5vw,85px)}
  .hero h1 em{font-size:.94em}
  .hero-collection{font-size:8px;letter-spacing:.15em}
  .hero-sub{font-size:13px;max-width:340px}
  .hero-actions{gap:10px}
  .hero-actions .btn{flex:1 1 0;min-width:0;padding:15px 13px;font-size:10px;gap:8px}
  .hero-art{right:-39%;width:100vw;height:55vh;opacity:.37}
  .hero-event-chip{gap:10px;font-size:9px;line-height:1.7}
  .eyebrow{margin-bottom:45px;font-size:9px}
  .scroll-cue{margin-top:32px}
  .section{padding:78px 0}
  .section-top{gap:8px}
  .serial{font-size:8px;text-align:right}
  .intro-grid,.rsvp-layout{grid-template-columns:1fr;gap:28px}
  .intro-grid{padding:40px 0}
  .section h2{font-size:clamp(37px,9vw,52px)}
  .section-description{font-size:13px}
  .countdown-wrap{padding:24px 12px 31px}
  .countdown-heading{font-size:8px;padding:0 7px;letter-spacing:.11em}
  .countdown strong{font-size:clamp(32px,10vw,53px)}
  .countdown>b{font-size:25px;transform:translateY(-11px)}
  .countdown small{font-size:8px;letter-spacing:.12em;margin-top:12px}
  .details-grid{grid-template-columns:1fr}
  .detail{min-height:unset;padding:30px;border-right:0;border-bottom:1px solid #eee}
  .event-action{flex-direction:column;align-items:flex-start}
  .statement{padding:75px 0}
  .statement p{font-size:31px}
  .collection-heading{display:block;padding:37px 0 28px}
  .collection-heading>p{margin-top:22px;font-size:13px}
  .products{grid-template-columns:1fr}
  .product-image{height:260px}
  .rsvp-layout{gap:35px}
  .rsvp-copy .pretitle{margin-top:38px}
  .organizer{margin-top:36px}
  .rsvp-form{padding:25px 20px}
  .form-split{grid-template-columns:1fr;gap:0}
  .modal{padding:0}
  .modal-panel{grid-template-columns:1fr;max-height:92vh;overflow:auto;animation:none}
  .modal-image{min-height:230px}
  .modal-info{padding:30px 24px}
  .footer-inner{flex-direction:column;align-items:center;gap:16px}
  .footer-inner>span,.footer-codi{font-size:8px}
}
