/* ============ TOKENS ============ */
:root{
  --black: #0a0a09;
  --black-2: #121210;
  --panel: #17171400;
  --graphite: #232320;
  --graphite-2: #2c2c28;
  --offwhite: #ede8de;
  --offwhite-dim: #b8b3a6;
  --gold: #b8924e;
  --gold-bright: #d9b06e;
  --gold-dim: #6e5934;
  --line: rgba(237,232,222,0.12);
  --ff-display: 'Anton', sans-serif;
  --ff-body: 'Manrope', sans-serif;
  --ff-mono: 'JetBrains Mono', monospace;
  --ease: cubic-bezier(.16,.84,.44,1);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--black);
  color:var(--offwhite);
  font-family:var(--ff-body);
  overflow-x:hidden;
  cursor:default;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;background:none;border:none;color:inherit;cursor:pointer;}
input,select{font-family:inherit;background:none;border:none;color:inherit;}

::selection{background:var(--gold);color:var(--black);}

/* grain overlay */
.grain{
  position:fixed;inset:0;z-index:999;pointer-events:none;
  opacity:.04;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ LOADER ============ */
.loader{
  position:fixed;inset:0;z-index:1000;background:var(--black);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .8s var(--ease), visibility .8s;
}
.loader.hidden{opacity:0;visibility:hidden;}
.loader-mark{width:min(320px,60vw);opacity:0;animation:loaderIn 1.4s var(--ease) forwards .2s;}
@keyframes loaderIn{ from{opacity:0;transform:scale(.92);} to{opacity:1;transform:scale(1);} }

/* ============ CURSOR ============ */
.cursor-dot{
  position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;
  background:var(--gold);pointer-events:none;z-index:998;
  transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),background .3s;
  display:none;
}
@media(hover:hover) and (pointer:fine){ .cursor-dot{display:block;} }
.cursor-dot.hover{width:44px;height:44px;background:rgba(184,146,78,.18);border:1px solid var(--gold);}

/* ============ EYEBROW / SHARED ============ */
.eyebrow{
  font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.25em;
  color:var(--gold);text-transform:uppercase;display:inline-block;margin-bottom:1.4rem;
}
.eyebrow::before{content:'— ';color:var(--gold-dim);}

section{position:relative;padding:min(14vw,9rem) 6vw;}

.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  padding:1.1rem 2.4rem;font-family:var(--ff-mono);font-size:.78rem;letter-spacing:.15em;
  overflow:hidden;border-radius:2px;
}
.btn span{position:relative;z-index:2;}
.btn-solid{background:var(--gold);color:var(--black);}
.btn-solid::after{
  content:'';position:absolute;inset:0;background:var(--offwhite);
  transform:translateY(101%);transition:transform .45s var(--ease);z-index:1;
}
.btn-solid:hover::after{transform:translateY(0);}
.btn-line{border:1px solid var(--line);color:var(--offwhite);}
.btn-line::after{
  content:'';position:absolute;inset:0;background:var(--offwhite);
  transform:translateY(101%);transition:transform .45s var(--ease);z-index:1;
}
.btn-line:hover{color:var(--black);border-color:var(--offwhite);}
.btn-line:hover::after{transform:translateY(0);}
.btn-line span, .btn-solid span{mix-blend-mode:difference;}
.btn-full{width:100%;}

/* ============ NAV ============ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:500;
  padding:1.6rem 4vw;transition:padding .4s var(--ease),background .4s var(--ease),border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  padding:.9rem 4vw;background:rgba(10,10,9,.82);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:1600px;margin:0 auto;}
.nav-logo{font-family:var(--ff-display);font-size:1.1rem;letter-spacing:.08em;}
.nav-logo span{color:var(--gold);}
.nav-links{display:flex;align-items:center;gap:2.2rem;font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.12em;}
.nav-links a{position:relative;padding:.2rem 0;}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--gold);transition:width .35s var(--ease);}
.nav-links a:hover::after{width:100%;}
.nav-cta{border:1px solid var(--gold);color:var(--gold)!important;padding:.6rem 1.3rem;}
.nav-cta::after{display:none;}
.nav-burger{display:none;flex-direction:column;gap:5px;width:28px;z-index:501;}
.nav-burger span{width:100%;height:1px;background:var(--offwhite);transition:.3s;}

.mobile-menu{
  position:fixed;inset:0;background:var(--black);z-index:499;
  display:flex;flex-direction:column;justify-content:center;gap:1.6rem;padding:6vw;
  transform:translateY(-100%);transition:transform .6s var(--ease);
}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu a{font-family:var(--ff-display);font-size:2.4rem;letter-spacing:.03em;}
.mobile-menu-foot{margin-top:2rem;display:flex;flex-direction:column;gap:.4rem;font-family:var(--ff-mono);font-size:.75rem;color:var(--offwhite-dim);}

/* ============ HERO ============ */
.hero{
  height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;position:relative;padding:0 5vw;overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(ellipse 60% 50% at 50% 15%, rgba(184,146,78,.10), transparent 60%),
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(184,146,78,.05), transparent 70%),
    var(--black);
}
.hero-crown{width:64px;color:var(--gold);margin-bottom:1.6rem;opacity:0;}
.crown-svg{width:100%;display:block;}
.hero-title{
  font-family:var(--ff-display);
  font-size:clamp(4.5rem,15vw,11rem);line-height:.86;letter-spacing:.01em;
  color:var(--offwhite);
}
.hero-title .line{display:block;overflow:hidden;}
.hero-title .line span, .hero-title .line{
  transform:translateY(110%);display:inline-block;
}
.line-club{color:var(--gold);font-size:.42em;letter-spacing:.35em;margin-top:.5rem;}
.hero-sub{
  font-family:var(--ff-mono);letter-spacing:.3em;font-size:.8rem;color:var(--gold);
  margin-top:2rem;opacity:0;
}
.hero-tagline{
  font-family:var(--ff-body);font-weight:600;font-size:clamp(1rem,1.6vw,1.3rem);
  letter-spacing:.02em;color:var(--offwhite-dim);margin-top:1.4rem;opacity:0;
}
.hero-buttons{display:flex;gap:1.2rem;margin-top:2.8rem;flex-wrap:wrap;justify-content:center;opacity:0;}
.scroll-indicator{
  position:absolute;bottom:2.6rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;opacity:0;
}
.scroll-indicator span{font-family:var(--ff-mono);font-size:.65rem;letter-spacing:.3em;color:var(--offwhite-dim);}
.scroll-line{width:1px;height:38px;background:linear-gradient(var(--gold),transparent);animation:scrollPulse 2s ease-in-out infinite;}
@keyframes scrollPulse{0%,100%{transform:scaleY(1);opacity:1;}50%{transform:scaleY(.5);opacity:.4;}}

/* ============ MANIFIESTO ============ */
.manifiesto{
  min-height:100vh;display:flex;flex-direction:column;justify-content:center;
  max-width:1100px;margin:0 auto;position:relative;
}
.manifiesto-title{
  font-family:var(--ff-display);font-size:clamp(2.6rem,7vw,5.5rem);line-height:1;color:var(--offwhite);
}
.manifiesto-text{
  font-family:var(--ff-body);font-weight:300;font-size:clamp(1.3rem,2.6vw,2.1rem);
  line-height:1.4;color:var(--offwhite-dim);margin:2.4rem 0 2.6rem;max-width:820px;
}
.manifiesto-desc{
  max-width:560px;color:var(--offwhite-dim);line-height:1.8;font-size:.98rem;
}
.manifiesto-word{
  position:absolute;right:-2vw;bottom:-4vw;font-family:var(--ff-display);
  font-size:clamp(6rem,22vw,18rem);color:transparent;-webkit-text-stroke:1px var(--line);
  z-index:-1;pointer-events:none;user-select:none;line-height:1;
}

/* split line reveal spans */
.split-line{overflow:hidden;display:block;}
.split-line > span{display:inline-block;transform:translateY(110%);}

/* ============ SERVICIOS ============ */
.servicios-head{max-width:800px;margin-bottom:4rem;}
.servicios-head h2{font-family:var(--ff-display);font-size:clamp(2.2rem,5.5vw,4rem);line-height:1.05;}
.servicios-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.servicio-card{
  position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--black-2);
  display:flex;align-items:flex-end;
}
.servicio-bg{position:absolute;inset:0;transition:transform 1s var(--ease);}
.servicio-bg--barber{background:radial-gradient(circle at 30% 20%,#26241d,#0a0a09 70%);}
.servicio-bg--tattoo{background:radial-gradient(circle at 70% 30%,#241d1c,#0a0a09 70%);}
.servicio-bg--estetica{background:radial-gradient(circle at 50% 50%,#1c2422,#0a0a09 70%);}
.servicio-card:hover .servicio-bg{transform:scale(1.08);}
.servicio-content{position:relative;z-index:2;padding:2.2rem;width:100%;background:linear-gradient(to top,rgba(0,0,0,.75),transparent 70%);}
.servicio-num{font-family:var(--ff-mono);color:var(--gold);font-size:.75rem;letter-spacing:.2em;}
.servicio-content h3{font-family:var(--ff-display);font-size:2rem;margin:.6rem 0 .5rem;letter-spacing:.02em;}
.servicio-content p{color:var(--offwhite-dim);font-size:.88rem;margin-bottom:1.2rem;max-width:220px;}
.servicio-link{
  font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.12em;color:var(--gold);
  opacity:0;transform:translateY(8px);transition:.4s var(--ease);display:inline-block;
}
.servicio-card:hover .servicio-link{opacity:1;transform:translateY(0);}
.soon-tag{color:var(--gold)!important;font-family:var(--ff-mono);letter-spacing:.15em;font-size:.72rem!important;}

/* ============ BARBERIA ============ */
.barberia{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;}
.barberia-visual{aspect-ratio:4/5;overflow:hidden;position:relative;}
.barberia-visual-inner{
  position:absolute;inset:0;
  background:
    repeating-linear-gradient(115deg, rgba(184,146,78,.06) 0px, rgba(184,146,78,.06) 1px, transparent 1px, transparent 34px),
    radial-gradient(ellipse at 30% 20%, #262019, #0e0d0b 65%);
  border:1px solid var(--line);
}
.barberia-info h2{font-family:var(--ff-display);font-size:clamp(2.4rem,6vw,4.2rem);line-height:1.02;margin-bottom:2.2rem;}
.servicio-lista{margin-bottom:2.6rem;border-top:1px solid var(--line);}
.servicio-lista li{
  display:flex;align-items:baseline;justify-content:space-between;
  padding:1.1rem 0;border-bottom:1px solid var(--line);font-size:1.05rem;
}
.servicio-lista li span:first-child{font-family:var(--ff-body);font-weight:500;}
.dots{flex:1;border-bottom:1px dotted var(--line);margin:0 .8rem;transform:translateY(-4px);}

/* ============ TATTOO ============ */
.tattoo{padding-left:0;padding-right:0;}
.tattoo-head, .tattoo-cats, .tattoo-buttons{padding:0 6vw;}
.tattoo-head h2{font-family:var(--ff-display);font-size:clamp(2.4rem,6vw,4.2rem);line-height:1.02;}
.tattoo-cats{display:flex;flex-wrap:wrap;gap:.7rem;margin:2rem 0 3rem;}
.tattoo-cats span{
  font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.1em;color:var(--offwhite-dim);
  border:1px solid var(--line);padding:.5rem 1rem;border-radius:100px;
}
.tattoo-track-wrap{overflow-x:auto;scrollbar-width:none;padding-bottom:1rem;}
.tattoo-track-wrap::-webkit-scrollbar{display:none;}
.tattoo-track{display:flex;gap:1.2rem;padding:0 6vw;width:max-content;}
.tattoo-item{
  position:relative;width:min(60vw,320px);aspect-ratio:3/4;flex-shrink:0;overflow:hidden;
  border:1px solid var(--line);
}
.tattoo-item--tall{aspect-ratio:3/4.6;}
.tattoo-item-bg{position:absolute;inset:0;transition:transform .8s var(--ease);}
.tt1{background:radial-gradient(circle at 40% 30%,#28221a,#0a0a09 70%);}
.tt2{background:radial-gradient(circle at 60% 40%,#211f1c,#0a0a09 70%);}
.tt3{background:radial-gradient(circle at 30% 60%,#231c17,#0a0a09 70%);}
.tt4{background:radial-gradient(circle at 70% 20%,#1e1c19,#0a0a09 70%);}
.tt5{background:radial-gradient(circle at 50% 50%,#251f16,#0a0a09 70%);}
.tt6{background:radial-gradient(circle at 40% 70%,#201d1a,#0a0a09 70%);}
.tattoo-item:hover .tattoo-item-bg{transform:scale(1.1);}
.tattoo-item-label{
  position:absolute;bottom:1.4rem;left:1.4rem;font-family:var(--ff-mono);
  font-size:.68rem;letter-spacing:.15em;color:var(--offwhite);
}
.tattoo-buttons{display:flex;gap:1.2rem;margin-top:3rem;flex-wrap:wrap;}

/* ============ ESTETICA ============ */
.estetica{
  text-align:center;display:flex;flex-direction:column;align-items:center;
  background:var(--black-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.estetica-seal{width:52px;color:var(--gold-dim);margin-bottom:1.6rem;opacity:.7;}
.estetica h2{font-family:var(--ff-display);font-size:clamp(2.2rem,5.5vw,3.6rem);line-height:1.05;margin-bottom:1.2rem;}
.estetica p{color:var(--offwhite-dim);}

/* ============ EQUIPO ============ */
.equipo h2{font-family:var(--ff-display);font-size:clamp(2.2rem,5.5vw,3.8rem);margin-bottom:3rem;max-width:700px;}
.equipo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;}
.equipo-card{cursor:pointer;}
.equipo-photo{aspect-ratio:3/4;margin-bottom:1.1rem;position:relative;overflow:hidden;border:1px solid var(--line);transition:transform .5s var(--ease);}
.equipo-card:hover .equipo-photo{transform:translateY(-6px);}
.equipo-photo--1{background:radial-gradient(circle at 40% 30%,#221e19,#0a0a09 70%);}
.equipo-photo--2{background:radial-gradient(circle at 60% 40%,#1e2119,#0a0a09 70%);}
.equipo-photo--3{background:radial-gradient(circle at 30% 60%,#231d17,#0a0a09 70%);}
.equipo-photo--4{background:radial-gradient(circle at 70% 30%,#1c1e21,#0a0a09 70%);}
.equipo-card h3{font-family:var(--ff-display);font-size:1.15rem;letter-spacing:.02em;margin-bottom:.3rem;}
.equipo-card span{font-family:var(--ff-mono);font-size:.66rem;color:var(--gold);letter-spacing:.08em;}

/* ============ GALERIA ============ */
.galeria h2{font-family:var(--ff-display);font-size:clamp(2.2rem,5.5vw,3.8rem);margin-bottom:3rem;max-width:700px;}
.galeria-grid{
  display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:14vw;gap:1rem;
}
.galeria-item{border:1px solid var(--line);}
.g1{grid-column:1/4;grid-row:1/3;background:radial-gradient(circle at 30% 30%,#24201a,#0a0a09 70%);}
.g2{grid-column:4/7;grid-row:1/2;background:radial-gradient(circle at 70% 40%,#1c211f,#0a0a09 70%);}
.g3{grid-column:4/6;grid-row:2/4;background:radial-gradient(circle at 50% 60%,#221c19,#0a0a09 70%);}
.g4{grid-column:6/7;grid-row:2/3;background:radial-gradient(circle at 40% 50%,#1e1c22,#0a0a09 70%);}
.g5{grid-column:1/4;grid-row:3/4;background:radial-gradient(circle at 60% 30%,#201f1a,#0a0a09 70%);}
.g6{grid-column:6/7;grid-row:3/4;}

/* ============ FILOSOFIA ============ */
.filosofia{
  text-align:center;min-height:80vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;max-width:1100px;margin:0 auto;
}
.filosofia h2{font-family:var(--ff-display);font-size:clamp(2rem,5.6vw,4.4rem);line-height:1.15;margin-bottom:2rem;}
.filosofia p{color:var(--gold);font-family:var(--ff-mono);letter-spacing:.05em;font-size:1rem;}

/* ============ RESERVAS ============ */
.reservas{max-width:820px;margin:0 auto;}
.reservas h2{font-family:var(--ff-display);font-size:clamp(2.2rem,5.5vw,3.8rem);margin-bottom:3rem;}
.reserva-form{border:1px solid var(--line);padding:clamp(1.6rem,4vw,3rem);}
.reserva-tabs{display:flex;gap:.8rem;margin-bottom:2.4rem;flex-wrap:wrap;}
.reserva-tab{
  font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.1em;padding:.9rem 1.4rem;
  border:1px solid var(--line);color:var(--offwhite-dim);transition:.3s;
}
.reserva-tab.active{border-color:var(--gold);color:var(--gold);}
.reserva-tab--soon{opacity:.35;cursor:not-allowed;}
.reserva-fields{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-bottom:2.4rem;}
.reserva-fields label{
  display:flex;flex-direction:column;gap:.6rem;font-family:var(--ff-mono);
  font-size:.68rem;letter-spacing:.1em;color:var(--offwhite-dim);
}
.reserva-fields input, .reserva-fields select{
  border-bottom:1px solid var(--line);padding:.7rem .1rem;font-size:.95rem;color:var(--offwhite);
  font-family:var(--ff-body);transition:border-color .3s;
}
.reserva-fields select option{background:var(--black-2);}
.reserva-fields input:focus, .reserva-fields select:focus{outline:none;border-color:var(--gold);}

/* ============ SOCIAL ============ */
.social h2{font-family:var(--ff-display);font-size:clamp(2.2rem,5.5vw,3.8rem);margin-bottom:2.6rem;}
.social-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.9rem;margin-bottom:2.6rem;}
.social-item{aspect-ratio:1;border:1px solid var(--line);transition:transform .4s var(--ease);}
.social-item:hover{transform:translateY(-4px);}
.s1{background:radial-gradient(circle at 30% 30%,#221e19,#0a0a09 70%);}
.s2{background:radial-gradient(circle at 60% 40%,#1e2119,#0a0a09 70%);}
.s3{background:radial-gradient(circle at 40% 60%,#231d19,#0a0a09 70%);}
.s4{background:radial-gradient(circle at 70% 30%,#1c1e21,#0a0a09 70%);}
.s5{background:radial-gradient(circle at 50% 50%,#221c17,#0a0a09 70%);}
.s6{background:radial-gradient(circle at 30% 60%,#1e1e1c,#0a0a09 70%);}
.social-buttons{display:flex;gap:1.2rem;flex-wrap:wrap;}

/* ============ UBICACION ============ */
.ubicacion{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;}
.ubicacion-info h2{font-family:var(--ff-display);font-size:clamp(2.2rem,5.5vw,3.8rem);margin:1rem 0 1.2rem;}
.ubicacion-info p{color:var(--offwhite-dim);margin-bottom:2rem;max-width:400px;}
.ubicacion-map{aspect-ratio:4/3;border:1px solid var(--line);overflow:hidden;filter:grayscale(.4) contrast(1.1) brightness(.85);}
.ubicacion-map iframe{width:100%;height:100%;border:0;}

/* ============ FOOTER ============ */
.footer{padding:5rem 6vw 2rem;border-top:1px solid var(--line);}
.footer-top{display:flex;justify-content:space-between;gap:3rem;flex-wrap:wrap;margin-bottom:4rem;}
.footer-logo{font-family:var(--ff-display);font-size:1.8rem;letter-spacing:.03em;}
.footer-logo span{color:var(--gold);}
.footer-tag{display:block;font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.15em;color:var(--offwhite-dim);margin-top:.8rem;}
.footer-cols{display:flex;gap:5vw;flex-wrap:wrap;}
.footer-col h4{font-family:var(--ff-mono);font-size:.65rem;letter-spacing:.15em;color:var(--gold);margin-bottom:1.2rem;}
.footer-col a{display:block;color:var(--offwhite-dim);font-size:.9rem;margin-bottom:.8rem;transition:color .3s;}
.footer-col a:hover{color:var(--offwhite);}
.footer-bottom{
  display:flex;justify-content:space-between;padding-top:2rem;border-top:1px solid var(--line);
  font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.1em;color:var(--offwhite-dim);flex-wrap:wrap;gap:1rem;
}

/* ============ RESPONSIVE ============ */
@media(max-width:900px){
  .nav-links{display:none;}
  .nav-burger{display:flex;}
  .servicios-grid{grid-template-columns:1fr;}
  .barberia{grid-template-columns:1fr;}
  .barberia-visual{order:2;aspect-ratio:16/10;}
  .equipo-grid{grid-template-columns:1fr 1fr;}
  .galeria-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:32vw;}
  .g1{grid-column:1/3;grid-row:1/2;}
  .g2{grid-column:1/2;grid-row:2/3;}
  .g3{grid-column:2/3;grid-row:2/3;}
  .g4{grid-column:1/2;grid-row:3/4;}
  .g5{grid-column:2/3;grid-row:3/4;}
  .social-grid{grid-template-columns:repeat(3,1fr);}
  .reserva-fields{grid-template-columns:1fr;}
  .ubicacion{grid-template-columns:1fr;}
  .footer-top{flex-direction:column;gap:2.4rem;}
}
@media(prefers-reduced-motion: reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important;}
}
