:root{
  --marfil:#F3EEE3;
  --arena:#E4D9C4;
  --salvia:#A9B99C;
  --bosque:#2E3D2E;
  --bosque-soft:#3D5140;
  --noche:#1C2233;
  --oro:#C4A15B;
  --oro-soft:#D8BC82;
  --tinta:#2A2A24;
  --display:"Cormorant Garamond", Georgia, serif;
  --body:"Jost", system-ui, sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);
  background:var(--marfil);
  color:var(--tinta);
  font-weight:300;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--salvia);color:var(--bosque)}
h1,h2,h3,.serif{font-family:var(--display);font-weight:500;line-height:1.1}
a{color:inherit}
.eyebrow{
  font-family:var(--body);
  font-weight:400;
  font-size:.72rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--oro);
}
.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(1.5rem,5vw,4rem)}
section{position:relative}

/* ---------- flor de la vida ---------- */
.flor{display:block}
.flor circle{fill:none;stroke:currentColor;stroke-width:.9}

/* ---------- nav ---------- */
nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem clamp(1.5rem,5vw,4rem);
  background:rgba(243,238,227,.9);backdrop-filter:blur(12px);
  transition:background .5s ease, padding .5s ease;
  border-bottom:1px solid transparent;
}
nav.scrolled{padding:.7rem clamp(1.5rem,5vw,4rem);box-shadow:0 1px 0 rgba(46,61,46,.08)}
.brand{display:flex;align-items:center;gap:.7rem;font-family:var(--display);font-size:1.15rem;letter-spacing:.08em;color:var(--bosque);text-decoration:none}
.brand .flor{color:var(--oro)}
.nav-links{display:flex;align-items:center;gap:1.9rem;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase}
.nav-links a{color:var(--bosque);text-decoration:none;opacity:.7;transition:opacity .3s}
.nav-links a:hover,.nav-links a.active{opacity:1}
.nav-cta{
  padding:.55rem 1.3rem;border:1px solid var(--bosque);border-radius:40px;
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--bosque);
  transition:all .3s ease;white-space:nowrap;
}
.nav-cta:hover{background:var(--bosque);color:var(--marfil)}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--bosque)}
@media(max-width:900px){.nav-links{display:none}.nav-toggle{display:block}}

/* ---------- page hero (sub-pages) ---------- */
.page-hero{
  min-height:56vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;
  background:radial-gradient(ellipse at 50% 20%, #F7F2E7 0%, var(--marfil) 55%, var(--arena) 130%);
  position:relative;overflow:hidden;padding:9rem 1.5rem 4rem;
}
.page-hero .flor-bg{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(60vh,520px);height:min(60vh,520px);color:var(--salvia);opacity:.25;
}
.page-hero-inner{position:relative;z-index:2;max-width:44rem}
.page-hero h1{font-size:clamp(2.6rem,7vw,4.6rem);color:var(--bosque)}
.page-hero p{font-family:var(--display);font-style:italic;font-size:clamp(1.15rem,2.4vw,1.5rem);color:var(--bosque-soft);margin-top:1rem}

/* ---------- home hero ---------- */
.hero{
  min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;
  background:radial-gradient(ellipse at 50% 30%, #F7F2E7 0%, var(--marfil) 55%, var(--arena) 130%);
  position:relative;overflow:hidden;
}
.hero-flor{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(78vh,680px);height:min(78vh,680px);color:var(--salvia);opacity:.32;
  animation:breathe 11s ease-in-out infinite;
}
@keyframes breathe{0%,100%{opacity:.22;transform:translate(-50%,-50%) scale(1)}50%{opacity:.4;transform:translate(-50%,-50%) scale(1.04)}}
.hero-inner{position:relative;z-index:2}
.hero h1{font-size:clamp(3.4rem,11vw,8rem);color:var(--bosque);letter-spacing:.02em;line-height:.92}
.hero h1 span{display:block;font-style:italic;font-weight:400;color:var(--oro)}
.hero .tagline{font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,3vw,1.9rem);color:var(--bosque-soft);margin-top:1.4rem}
.triad{display:flex;gap:1.6rem;justify-content:center;margin-top:2.4rem;font-size:.8rem;letter-spacing:.4em;color:var(--bosque);text-transform:uppercase}
.triad span{opacity:.55}
.triad em{color:var(--oro);font-style:normal;padding:0 .1em}
.hero-sub{margin-top:2.6rem;font-size:.9rem;letter-spacing:.05em;color:var(--bosque-soft);max-width:34rem;margin-left:auto;margin-right:auto}
.scroll-cue{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);z-index:2;color:var(--bosque);opacity:.5;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.scroll-cue .line{width:1px;height:34px;background:var(--bosque);animation:cue 2.4s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%,100%{transform:scaleY(.3);opacity:.3}50%{transform:scaleY(1);opacity:.8}}

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

/* ---------- section shells ---------- */
.band{padding:clamp(5rem,11vw,9rem) 0}
.band-dark{background:var(--noche);color:var(--marfil)}
.band-dark .eyebrow{color:var(--oro-soft)}
.band-sage{background:linear-gradient(180deg,var(--marfil),#EBE4D5)}
.sec-head{max-width:44rem;margin-bottom:3.5rem}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head .n{font-family:var(--display);font-style:italic;color:var(--oro);font-size:1.1rem;margin-bottom:.6rem;display:block}
.sec-head h2{font-size:clamp(2.1rem,5vw,3.4rem);color:var(--bosque);margin:.4rem 0 1rem}
.band-dark .sec-head h2{color:var(--marfil)}
.sec-head p{font-size:1.05rem;color:var(--bosque-soft);max-width:38rem}
.sec-head.center p{margin-left:auto;margin-right:auto}
.band-dark .sec-head p{color:#C9CBBF}

/* ---------- vision triad ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media(max-width:760px){.pillars{grid-template-columns:1fr}}
.pillar{background:rgba(255,255,255,.5);border:1px solid var(--arena);border-radius:2px;padding:2.4rem 1.9rem;transition:transform .5s ease,box-shadow .5s ease,background .5s ease}
.pillar:hover{transform:translateY(-6px);box-shadow:0 22px 44px -28px rgba(46,61,46,.5);background:rgba(255,255,255,.8)}
.pillar .k{font-family:var(--display);font-size:1.9rem;color:var(--bosque);letter-spacing:.06em}
.pillar .glyph{width:40px;height:40px;color:var(--oro);margin-bottom:1.2rem}
.pillar p{margin-top:.8rem;font-size:.95rem;color:var(--bosque-soft)}
.vision-note{margin-top:3rem;font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,3vw,1.9rem);color:var(--bosque);text-align:center;max-width:40rem;margin-left:auto;margin-right:auto}

/* ---------- brand identity ---------- */
.brandgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
@media(max-width:820px){.brandgrid{grid-template-columns:1fr}}
.brand-flor{width:min(70vw,340px);height:min(70vw,340px);margin:0 auto;color:var(--oro);animation:spin 90s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.brand-rows{display:flex;flex-direction:column;gap:1.8rem}
.brand-row .lbl{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--oro)}
.brand-row .val{font-family:var(--display);font-size:1.5rem;color:var(--marfil);margin-top:.3rem}
.swatches{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.7rem}
.sw{display:flex;flex-direction:column;align-items:center;gap:.4rem;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:#B8BAAE}
.sw i{width:38px;height:38px;border-radius:50%;display:block;border:1px solid rgba(255,255,255,.15)}

/* ---------- architecture spaces ---------- */
.spaces{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media(max-width:900px){.spaces{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.spaces{grid-template-columns:1fr}}
.space{position:relative;padding:2rem 1.7rem;border-radius:2px;overflow:hidden;background:rgba(255,255,255,.55);border:1px solid var(--arena);transition:transform .45s ease,box-shadow .45s ease;text-decoration:none;display:block;color:inherit}
.space:hover{transform:translateY(-5px);box-shadow:0 20px 40px -26px rgba(46,61,46,.45)}
.space .ic{font-size:1.7rem;margin-bottom:.8rem;display:block}
.space h3{font-size:1.5rem;color:var(--bosque);display:flex;align-items:center;gap:.5rem}
.space h3 .go{font-size:.8rem;color:var(--oro);opacity:0;transition:opacity .3s,transform .3s;transform:translateX(-4px)}
.space:hover h3 .go{opacity:1;transform:translateX(0)}
.space p{margin-top:.5rem;font-size:.86rem;color:var(--bosque-soft);line-height:1.55}

/* ---------- mood / UX ---------- */
.moodwrap{text-align:center}
.moodwrap .q{font-family:var(--display);font-style:italic;font-size:clamp(1.8rem,4.5vw,2.8rem);margin-bottom:2.4rem}
.moods{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-bottom:2.6rem}
.mood{padding:.7rem 1.5rem;border:1px solid rgba(216,188,130,.4);border-radius:40px;font-size:.85rem;letter-spacing:.1em;cursor:pointer;background:transparent;transition:all .35s ease}
.mood:hover,.mood.active{background:var(--oro);color:var(--noche);border-color:var(--oro)}
.moment{max-width:40rem;margin:0 auto;background:rgba(255,255,255,.06);border:1px solid rgba(216,188,130,.25);border-radius:3px;padding:2rem;min-height:150px;display:flex;flex-direction:column;justify-content:center;gap:1rem}
.moment .mlabel{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--oro-soft)}
.moment-steps{display:flex;justify-content:center;gap:1.4rem;flex-wrap:wrap}
.mstep{display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:88px}
.mstep .t{font-family:var(--display);font-size:2rem}
.mstep .s{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:#C9CBBF}
.light .mstep .t,.light .moodwrap .q{color:var(--bosque)}
.dark .mstep .t,.dark .moodwrap .q{color:var(--marfil)}

/* ---------- emotion song ---------- */
.es-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2.8rem}
@media(max-width:820px){.es-grid{grid-template-columns:repeat(2,1fr)}}
.es-chip{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--display);font-size:1.3rem;color:var(--bosque);background:radial-gradient(circle at 40% 35%, #fff, var(--salvia));transition:transform .5s ease;cursor:pointer;border:none}
.es-chip:hover,.es-chip.active{transform:scale(1.07)}
.playlists-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}
@media(max-width:760px){.playlists-grid{grid-template-columns:1fr}}
.pl-card{background:rgba(255,255,255,.55);border:1px solid var(--arena);border-radius:4px;padding:1.6rem;transition:box-shadow .4s ease,transform .4s ease}
.pl-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -28px rgba(46,61,46,.4)}
.pl-card h3{font-size:1.4rem;color:var(--bosque);letter-spacing:.03em}
.pl-card .mood-tag{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--oro);margin-top:.3rem;display:block}
.embed-slot{
  margin-top:1.1rem;border:1.5px dashed rgba(196,161,91,.55);border-radius:4px;
  padding:1.6rem 1rem;text-align:center;background:rgba(196,161,91,.06);
}
.embed-slot .note-ic{font-size:1.4rem;display:block;margin-bottom:.5rem}
.embed-slot .note-t{font-size:.78rem;letter-spacing:.03em;color:var(--bosque-soft);line-height:1.5}
.band-dark .embed-slot{background:rgba(216,188,130,.06);border-color:rgba(216,188,130,.4)}
.band-dark .embed-slot .note-t{color:#C9CBBF}
.embed-callout{
  margin-top:2.6rem;text-align:center;padding:1.4rem 1.6rem;border-radius:3px;
  background:rgba(196,161,91,.1);border:1px solid rgba(196,161,91,.3);
  font-size:.9rem;color:var(--bosque-soft);
}
.band-dark .embed-callout{color:#C9CBBF}

/* ---------- library ---------- */
.libcols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-bottom:2rem}
@media(max-width:760px){.libcols{grid-template-columns:1fr}}
.libcol{background:rgba(255,255,255,.55);border:1px solid var(--arena);padding:1.9rem 1.6rem;border-radius:2px}
.libcol h3{font-size:1.3rem;color:var(--bosque);letter-spacing:.06em;display:flex;align-items:center;gap:.5rem}
.libcol p{font-size:.85rem;color:var(--bosque-soft);margin-top:.5rem}
.callout{background:var(--salvia);color:var(--bosque);padding:1.8rem 2rem;border-radius:2px}
.callout .tag{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--bosque-soft)}
.callout p{margin-top:.4rem;font-size:.95rem}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem}
@media(max-width:820px){.video-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.video-grid{grid-template-columns:1fr}}
.video-card{border-radius:4px;overflow:hidden;border:1px solid var(--arena);background:rgba(255,255,255,.5)}
.video-card .thumb{
  aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.5rem;
  background:linear-gradient(135deg,var(--bosque),var(--noche));color:var(--marfil);
  border:1.5px dashed rgba(216,188,130,.5);
}
.video-card .thumb .play{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--oro-soft);display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--oro-soft)}
.video-card .thumb .lbl{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--oro-soft)}
.video-card .cap{padding:.9rem 1.1rem;font-size:.85rem;color:var(--bosque-soft)}

/* ---------- mi camino ---------- */
.path-steps{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;margin-bottom:2.4rem}
.pstep{text-align:center;padding:1.6rem 1.2rem;background:rgba(255,255,255,.06);border:1px solid rgba(216,188,130,.25);border-radius:3px;min-width:120px}
.pstep .ic{font-size:1.5rem}
.pstep .t{font-family:var(--display);font-size:1.7rem;color:var(--marfil);margin-top:.4rem}
.pstep .s{font-size:.78rem;color:#C9CBBF;letter-spacing:.08em;margin-top:.2rem}
.journeys{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.jrn{padding:.9rem 2rem;border:1px solid var(--oro);border-radius:40px;font-family:var(--display);font-size:1.5rem;color:var(--oro-soft)}

/* ---------- community ---------- */
.commgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media(max-width:760px){.commgrid{grid-template-columns:1fr}}
.comm{padding:2rem 1.7rem;background:rgba(255,255,255,.55);border:1px solid var(--arena);border-radius:2px}
.comm h3{font-size:1.3rem;color:var(--bosque);letter-spacing:.08em}
.comm p{font-size:.86rem;color:var(--bosque-soft);margin-top:.6rem}

/* ---------- business model ---------- */
.plans{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
@media(max-width:820px){.plans{grid-template-columns:repeat(2,1fr)}}
.plan{padding:1.9rem 1.5rem;border:1px solid rgba(216,188,130,.3);border-radius:2px;text-align:center;transition:background .4s}
.plan:hover{background:rgba(196,161,91,.08)}
.plan .name{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--oro)}
.plan p{font-size:.84rem;color:#C9CBBF;margin-top:.7rem}
.price-note{text-align:center;font-family:var(--display);font-style:italic;font-size:1.4rem;color:var(--marfil)}
.price-note b{color:var(--oro-soft);font-style:normal;font-weight:500}

/* ---------- phases ---------- */
.phases{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
@media(max-width:820px){.phases{grid-template-columns:repeat(2,1fr)}}
.phase{padding:1.9rem 1.4rem;background:rgba(255,255,255,.55);border:1px solid var(--arena);border-radius:2px;position:relative}
.phase .ph{font-family:var(--display);font-style:italic;color:var(--oro);font-size:1rem}
.phase h3{font-size:1.25rem;color:var(--bosque);margin:.5rem 0 .9rem;letter-spacing:.02em}
.phase .cost{font-family:var(--display);font-size:1.4rem;color:var(--bosque)}
.phase .time{font-size:.78rem;color:var(--bosque-soft);letter-spacing:.1em;margin-top:.3rem}
.disc{margin-top:2rem;font-size:.85rem;color:var(--bosque-soft);text-align:center;font-style:italic}

/* ---------- mvp checklist ---------- */
.mvp{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem 2rem}
@media(max-width:760px){.mvp{grid-template-columns:1fr}}
.mvp li{list-style:none;display:flex;align-items:center;gap:.8rem;padding:.6rem 0;border-bottom:1px solid rgba(46,61,46,.1);font-size:.95rem;color:var(--bosque)}
.mvp li .ck{color:var(--oro);font-size:1rem}
.mvp-goal{margin-top:2.4rem;text-align:center;font-family:var(--display);font-style:italic;font-size:1.4rem;color:var(--bosque)}

/* ---------- roadmap ---------- */
.road{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem 1rem}
@media(max-width:820px){.road{grid-template-columns:repeat(2,1fr)}}
.rd{display:flex;gap:1rem;align-items:flex-start}
.rd .num{font-family:var(--display);font-size:2.2rem;color:var(--oro-soft);line-height:1;min-width:1.6em}
.rd .txt{font-size:.9rem;color:var(--marfil);padding-top:.35rem}
.road-note{margin-top:2.6rem;text-align:center;font-style:italic;font-size:.95rem;color:#C9CBBF}

/* ---------- manifesto ---------- */
.manifesto{text-align:center;background:radial-gradient(ellipse at 50% 40%, #F7F2E7, var(--arena) 140%)}
.manifesto .flor{width:52px;height:52px;color:var(--oro);margin:0 auto 2rem}
.manifesto blockquote{font-family:var(--display);font-size:clamp(1.6rem,4vw,2.6rem);color:var(--bosque);line-height:1.35;max-width:42rem;margin:0 auto;font-weight:400}
.manifesto blockquote em{color:var(--oro);font-style:italic}
.manifesto .seal{margin-top:2.4rem;font-family:var(--display);font-style:italic;font-size:1.5rem;color:var(--bosque-soft)}

/* ---------- closing ---------- */
.closing{min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:var(--noche);position:relative;overflow:hidden}
.closing-flor{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(80vh,620px);height:min(80vh,620px);color:var(--oro);opacity:.14}
.closing-inner{position:relative;z-index:2}
.closing h2{font-size:clamp(2.4rem,8vw,5rem);color:var(--marfil);line-height:.98}
.closing h2 span{display:block;font-style:italic;font-weight:400;color:var(--oro)}
.closing .tag{font-family:var(--display);font-style:italic;font-size:1.4rem;color:var(--oro-soft);margin-top:1.2rem}
.closing-ctas{display:flex;gap:1rem;justify-content:center;margin-top:2.2rem;flex-wrap:wrap}
.btn{
  padding:.8rem 1.8rem;border-radius:40px;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;transition:all .3s ease;display:inline-block;
}
.btn-solid{background:var(--oro);color:var(--noche)}
.btn-solid:hover{background:var(--oro-soft)}
.btn-outline{border:1px solid var(--oro-soft);color:var(--marfil)}
.btn-outline:hover{background:rgba(216,188,130,.12)}
.closing .meta{margin-top:2.6rem;font-size:.72rem;letter-spacing:.35em;text-transform:uppercase;color:#7C8092}

footer{background:var(--noche);color:#9498A8;padding:3rem 1.5rem 2rem}
.footer-wrap{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:2rem}
.footer-brand{display:flex;align-items:center;gap:.6rem;font-family:var(--display);font-size:1.1rem;color:var(--marfil);text-decoration:none}
.footer-links{display:flex;gap:2.4rem;flex-wrap:wrap}
.footer-col h4{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--oro-soft);margin-bottom:.8rem}
.footer-col a{display:block;font-size:.85rem;color:#C9CBBF;text-decoration:none;margin-bottom:.5rem;opacity:.85}
.footer-col a:hover{opacity:1}
.footer-bottom{text-align:center;padding:2rem 1rem 0;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#6C7082;border-top:1px solid rgba(216,188,130,.14);margin-top:2.4rem}

/* ---------- forms (login / waitlist / contact) ---------- */
.auth-wrap{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start;max-width:920px;margin:0 auto}
@media(max-width:820px){.auth-wrap{grid-template-columns:1fr}}
.auth-card{background:rgba(255,255,255,.6);border:1px solid var(--arena);border-radius:6px;padding:2.2rem}
.auth-card.dark-card{background:rgba(255,255,255,.05);border-color:rgba(216,188,130,.25)}
.auth-card h3{font-size:1.5rem;color:var(--bosque);margin-bottom:.3rem}
.dark-card h3{color:var(--marfil)}
.auth-card .sub{font-size:.85rem;color:var(--bosque-soft);margin-bottom:1.6rem}
.dark-card .sub{color:#C9CBBF}
.field{margin-bottom:1.1rem}
.field label{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oro);margin-bottom:.4rem}
.field input,.field select,.field textarea{
  width:100%;padding:.75rem .9rem;border:1px solid var(--arena);border-radius:3px;
  background:rgba(255,255,255,.7);font-family:var(--body);font-size:.92rem;color:var(--tinta);
}
.dark-card .field input,.dark-card .field select,.dark-card .field textarea{
  background:rgba(255,255,255,.06);border-color:rgba(216,188,130,.3);color:var(--marfil);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--oro)}
.field textarea{resize:vertical;min-height:110px}
.form-btn{
  width:100%;padding:.85rem;border:none;border-radius:40px;background:var(--bosque);color:var(--marfil);
  font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .3s ease;
}
.form-btn:hover{background:var(--bosque-soft)}
.form-btn.gold{background:var(--oro);color:var(--noche)}
.form-btn.gold:hover{background:var(--oro-soft)}
.form-btn[disabled]{opacity:.5;cursor:not-allowed}
.form-note{font-size:.76rem;color:var(--bosque-soft);margin-top:.9rem;text-align:center;line-height:1.5}
.dark-card .form-note{color:#9498A8}
.social-row{display:flex;flex-direction:column;gap:.7rem;margin-bottom:1.4rem}
.social-btn{
  display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.7rem;border-radius:40px;
  border:1px solid var(--arena);background:rgba(255,255,255,.5);font-size:.82rem;color:var(--bosque-soft);cursor:not-allowed;
}
.divider{display:flex;align-items:center;gap:1rem;margin:1.2rem 0;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bosque-soft);opacity:.7}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--arena)}
.form-status{margin-top:1rem;font-size:.85rem;text-align:center;display:none}
.form-status.ok{color:#3D6B45;display:block}
.form-status.err{color:#a0453a;display:block}
.honeypot{position:absolute;left:-9999px;opacity:0;height:0;width:0}

/* contact page layout */
.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:3rem;align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.contact-info .item{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.6rem}
.contact-info .item .lbl{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--oro-soft)}
.contact-info .item .val{font-family:var(--display);font-size:1.25rem;color:var(--marfil);margin-top:.2rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.field-row{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- dossier entry modal ---------- */
.modal-overlay{
  position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  background:rgba(28,34,51,.55);backdrop-filter:blur(3px);padding:1.5rem;
  opacity:0;transition:opacity .35s ease;
}
.modal-overlay.open{display:flex}
.modal-overlay.show{opacity:1}
.modal-card{
  position:relative;background:var(--marfil);border:1.5px solid var(--oro);
  max-width:30rem;width:100%;padding:3.2rem 2rem 2.6rem;text-align:center;
  transform:translateY(14px) scale(.98);opacity:0;transition:transform .4s ease,opacity .4s ease;
  max-height:90vh;overflow-y:auto;
}
.modal-overlay.show .modal-card{transform:translateY(0) scale(1);opacity:1}
.modal-close{
  position:absolute;top:.7rem;right:.9rem;background:none;border:none;cursor:pointer;
  font-size:1.6rem;line-height:1;color:var(--bosque-soft);padding:.3rem .5rem;
}
.modal-close:hover{color:var(--bosque)}
body.modal-locked{overflow:hidden}
