:root {
  --cream:#F4ECDC;
  --cream-2:#EAE0CB;
  --ink:#241813;
  --ink-soft:#6B5A4B;
  --hairline:rgba(36,24,19,.18);
  --display:'Cinzel','Times New Roman',serif;
  --body:'Cormorant Garamond','Times New Roman',serif;
}

* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  background:var(--cream);
  color:var(--ink);
  font-family:var(--body);
  font-size:18px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a { color:inherit; text-decoration:none; }
img,figure { display:block; max-width:100%; }
em { font-style:italic; }

/* ============ NAV ============ */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 22px;
  mix-blend-mode:difference;
  color:#F4ECDC;
}
.brand {
  font-family:var(--display);
  font-weight:700; font-size:18px; letter-spacing:3px;
}
.menu-btn {
  background:none; border:none; cursor:pointer;
  width:36px; height:36px; display:flex; flex-direction:column;
  justify-content:center; gap:6px; padding:8px;
  margin-left:auto; margin-right:14px;
}
.menu-btn span { display:block; width:100%; height:1px; background:#F4ECDC; transition:transform .3s; }
.menu-open .menu-btn span:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
.menu-open .menu-btn span:nth-child(2){ transform:translateY(-3.5px) rotate(-45deg); }
.lang {
  background:transparent; border:1px solid currentColor; color:inherit;
  padding:6px 12px; font-family:var(--display); font-size:11px; letter-spacing:2px;
  cursor:pointer; border-radius:0;
}

/* ============ MENU OVERLAY ============ */
.menu {
  position:fixed; inset:0; z-index:45;
  background:var(--ink); color:var(--cream);
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:0 32px;
  transform:translateY(-100%); transition:transform .55s cubic-bezier(.7,0,.2,1);
}
.menu ul { list-style:none; }
.menu li { margin:14px 0; overflow:hidden; }
.menu a {
  font-family:var(--display); font-size:40px; font-weight:600;
  letter-spacing:2px; text-transform:uppercase;
  display:inline-block; transform:translateY(110%); transition:transform .55s cubic-bezier(.7,0,.2,1);
  transition-delay:calc(var(--i,0) * 60ms);
}
.menu-open .menu { transform:translateY(0); }
.menu-open .menu a { transform:translateY(0); }
.menu-foot {
  position:absolute; bottom:32px; left:32px; right:32px;
  font-family:var(--display); font-size:12px; letter-spacing:2px; opacity:.7;
}

/* ============ HERO ============ */
.hero {
  position:relative; height:100svh; width:100%; overflow:hidden;
  background:var(--cream);
}
.hero-photo {
  position:absolute; inset:0;
  background:url('assets/hero-mobile.png') center 30%/cover no-repeat;
  transform:scale(1.05);
  transform-origin:center;
}
.hero-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom,
    rgba(36,24,19,.15) 0%,
    transparent 30%,
    transparent 55%,
    rgba(244,236,220,.85) 92%,
    var(--cream) 100%);
}
.hero-overlay {
  position:relative; z-index:2;
  height:100%; padding:24px 24px 32px;
  display:flex; flex-direction:column;
}
.hero-top { padding-top:50px; }
.hero-wordmark {
  font-family:var(--display); font-size:13px; font-weight:600;
  letter-spacing:4px; color:var(--ink);
  mix-blend-mode:difference; color:#F4ECDC;
}
.hero-side {
  position:absolute; right:24px; top:50%;
  transform:rotate(90deg) translateX(50%);
  transform-origin:right center;
  font-family:var(--display); font-size:10px; letter-spacing:5px;
  color:#F4ECDC; mix-blend-mode:difference;
  white-space:nowrap;
}
.hero-bottom { margin-top:auto; }
.display {
  font-family:var(--display); font-weight:700;
  color:var(--ink); line-height:.95;
}
.display .d1 { display:block; font-size:clamp(56px,16vw,140px); letter-spacing:-1px; }
.display .d2 { display:block; font-size:clamp(48px,14vw,120px); font-style:italic;
  font-family:var(--body); font-weight:400; letter-spacing:0; margin-top:6px;
  text-transform:lowercase; }
.scroll-cue {
  margin-top:28px; display:flex; align-items:center; gap:10px;
  font-family:var(--display); font-size:11px; letter-spacing:3px;
  color:var(--ink-soft);
}
.scroll-cue .arrow { animation:bob 2s ease-in-out infinite; }
@keyframes bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} }

/* ============ EDITORIAL SECTIONS ============ */
.ed { padding:140px 24px; max-width:780px; margin:0 auto; }
.ed-h {
  display:flex; align-items:baseline; gap:14px;
  border-bottom:1px solid var(--hairline);
  padding-bottom:12px; margin-bottom:60px;
}
.ed-num {
  font-family:var(--display); font-size:14px; font-weight:600; letter-spacing:3px;
  color:var(--ink-soft);
}
.ed-label {
  font-family:var(--display); font-size:12px; letter-spacing:5px;
  color:var(--ink); flex:1;
}

/* SERVICES */
.services { display:flex; flex-direction:column; }
.srv {
  padding:32px 0; border-bottom:1px solid var(--hairline);
}
.srv:last-child { border-bottom:0; }
.srv-name {
  font-family:var(--body); font-weight:400;
  font-size:clamp(42px,9vw,72px); line-height:1; color:var(--ink);
}
.srv-name em { font-style:italic; }
.srv-meta {
  display:flex; justify-content:space-between; align-items:flex-end;
  gap:24px; margin-top:14px;
}
.srv-desc {
  color:var(--ink-soft); font-size:15px; line-height:1.4; max-width:60%;
}
.srv-price {
  font-family:var(--display); font-size:16px; letter-spacing:2px;
  color:var(--ink); white-space:nowrap;
}

/* ARTISTA */
.artista { max-width:980px; padding-top:0; }
.art-photo {
  width:100%; aspect-ratio:4/5;
  background:url('assets/portrait.png') center 30%/cover no-repeat;
  margin-bottom:48px;
}
.art-body { padding:0 6px; }
.pull {
  font-family:var(--body); font-style:italic;
  font-size:clamp(34px,7vw,52px); line-height:1.05;
  color:var(--ink);
  margin:30px 0;
  position:relative;
}
.pull .q { color:var(--ink-soft); font-size:1.1em; }
.art-p { font-size:18px; color:var(--ink-soft); max-width:520px; margin-bottom:30px; }
.thin-link {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--display); font-size:12px; letter-spacing:3px;
  color:var(--ink); border-bottom:1px solid var(--ink); padding:6px 0;
  transition:gap .2s;
}
.thin-link:hover { gap:18px; }
.thin-link.center { margin:48px auto 0; display:flex; width:max-content; }

/* GALERIA */
.gal {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
}
.gal-t { aspect-ratio:3/4; background-size:cover; background-position:center; filter:sepia(.04); }
.gal-t:nth-child(1){ background-image:url('assets/g1.png'); }
.gal-t:nth-child(2){ background-image:url('assets/g2.png'); }
.gal-t:nth-child(3){ background-image:url('assets/g3.png'); }
.gal-t:nth-child(4){ background-image:url('assets/g4.png'); }
.gal-t:nth-child(5){ background-image:url('assets/g5.png'); }
.gal-t:nth-child(6){ background-image:url('assets/g6.png'); }

/* CONTACTO */
.contacto { max-width:680px; }
.contact-h {
  font-family:var(--body); font-style:italic;
  font-size:clamp(32px,7vw,46px); line-height:1.1; color:var(--ink);
  margin-bottom:48px;
}
.contact-list { list-style:none; }
.contact-list li { border-bottom:1px solid var(--hairline); }
.contact-list li:first-child { border-top:1px solid var(--hairline); }
.contact-list a {
  display:flex; justify-content:space-between; align-items:center;
  padding:22px 0; gap:16px;
  transition:padding .25s;
}
.contact-list a:hover { padding-left:14px; }
.cl-label {
  font-family:var(--display); font-size:11px; letter-spacing:3px;
  color:var(--ink-soft);
}
.cl-v {
  font-family:var(--body); font-size:17px; color:var(--ink);
  text-align:right;
}

/* FOOTER */
.foot {
  background:var(--ink); color:var(--cream);
  padding:80px 24px 120px; text-align:center;
}
.foot-mark {
  font-family:var(--display); font-weight:700;
  font-size:42px; letter-spacing:6px; margin-bottom:14px;
}
.foot-line {
  font-family:var(--display); font-size:11px; letter-spacing:4px;
  opacity:.7; margin-bottom:36px;
}
.foot-small { font-size:13px; opacity:.45; font-family:var(--body); }

/* STICKY MOBILE CTA */
.cta-pin {
  position:fixed; bottom:18px; left:50%;
  transform:translateX(-50%) translateY(120%);
  background:var(--ink); color:var(--cream);
  padding:14px 30px; border-radius:999px;
  font-family:var(--display); font-size:12px; letter-spacing:3px;
  z-index:40; transition:transform .35s cubic-bezier(.7,0,.2,1);
  box-shadow:0 12px 30px rgba(0,0,0,.18);
}
.scrolled .cta-pin { transform:translateX(-50%) translateY(0); }

/* ============ REVEAL ANIMATIONS ============ */
.reveal { opacity:0; transform:translateY(30px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); transition-delay:calc(var(--d,0) * 80ms); }
.reveal.in { opacity:1; transform:translateY(0); }

/* Hero text reveal: initial state */
.hero .reveal { opacity:0; transform:translateY(40px); }
.hero .reveal.in { opacity:1; transform:translateY(0); }

/* Smaller screens: adjust */
@media (min-width:760px) {
  .ed { padding:180px 48px; }
  .artista { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
  .artista .ed-h { grid-column:2; }
  .art-photo { grid-column:1; grid-row:1/3; margin-bottom:0; aspect-ratio:3/4; }
  .art-body { grid-column:2; padding:0; }
  .gal { grid-template-columns:repeat(3,1fr); gap:14px; }
  .hero-bottom { padding-bottom:30px; }
}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.in,.scroll-cue .arrow,.cta-pin { transition:none; animation:none; transform:none; opacity:1; }
}
