:root{
  --black:#000;
  --white:#fff;
  --paper:#f3f3f1;
  --ash:#8a8a8a;
  --hair:rgba(255,255,255,.16);
  --hair-d:rgba(0,0,0,.12);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--white);
  color:var(--black);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{filter:grayscale(1) contrast(1.04);display:block;width:100%;height:100%;object-fit:cover;}

/* ---- type ---- */
.display{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:.9;}
.eyebrow{font-size:12px;letter-spacing:.34em;text-transform:uppercase;font-weight:600;}

/* ---- section frame ---- */
.s{padding:96px 24px;}
.inner{max-width:1080px;margin:0 auto;}
.s-black{background:var(--black);color:var(--white);}
.s-white{background:var(--white);color:var(--black);}
.s-paper{background:var(--paper);color:var(--black);}
[id]{scroll-margin-top:72px;}

/* ---- barber-pole signature ---- */
.pole{
  height:16px;
  background:repeating-linear-gradient(45deg,#000 0 12px,#fff 12px 24px);
  background-size:34px 34px;
  animation:slide 2.6s linear infinite;
}
.pole.flip{background:repeating-linear-gradient(-45deg,#000 0 12px,#fff 12px 24px);background-size:34px 34px;}
@keyframes slide{to{background-position:34px 0;}}

/* ---- nav ---- */
nav{
  position:sticky;top:0;z-index:50;
  background:rgba(0,0,0,.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--hair);
  color:#fff;
}
.nav-row{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;}
.logo{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:22px;letter-spacing:.04em;color:#fff;text-decoration:none;transition:opacity .2s;}
.logo:hover{opacity:.8;}
.nav-links{display:flex;gap:30px;align-items:center;}
.nav-links a{color:#fff;text-decoration:none;font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;opacity:.85;transition:opacity .2s;}
.nav-links a:hover{opacity:1;}
.nav-book{border:1px solid #fff;padding:9px 18px;border-radius:2px;transition:background .2s,color .2s;}
.nav-book:hover{background:#fff;color:#000;opacity:1;}
.burger{display:none;background:none;border:0;color:#fff;font-size:24px;cursor:pointer;line-height:1;}

/* ---- hero ---- */
.hero{
  background:var(--black);color:var(--white);
  min-height:88vh;display:flex;flex-direction:column;justify-content:center;
  padding:80px 24px 0;position:relative;overflow:hidden;
}
/* hero video banner — sits behind the content, B&W to match theme */
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden;background:var(--black);}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.72) 60%,rgba(0,0,0,.92) 100%);}
.hero-inner{position:relative;z-index:2;max-width:1080px;margin:0 auto;width:100%;}
.hero .eyebrow{color:var(--ash);}
.hero h1{font-size:clamp(64px,15vw,168px);margin:18px 0 0;}
.hero h1 .out{-webkit-text-stroke:2px #fff;color:transparent;}
.hero p.lede{margin-top:26px;max-width:46ch;font-size:clamp(16px,2.3vw,19px);color:#cfcfcf;}
.hero-cta{margin-top:38px;display:flex;gap:14px;flex-wrap:wrap;}
.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:14px;letter-spacing:.1em;text-transform:uppercase;padding:15px 30px;border-radius:2px;transition:background .2s,color .2s,transform .15s;}
.btn-solid{background:#fff;color:#000;border:1px solid #fff;}
.btn-solid:hover{transform:translateY(-2px);}
.btn-ghost{background:transparent;color:#fff;border:1px solid var(--hair);}
.btn-ghost:hover{border-color:#fff;}
.hero-pole{position:absolute;left:0;right:0;bottom:0;z-index:2;}

/* ---- about ---- */
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;}
.about h2{font-size:clamp(34px,5vw,60px);}
.about .body p{margin-bottom:16px;font-size:17px;color:#222;}
.stamp{aspect-ratio:1;border:1px solid var(--hair-d);display:flex;align-items:center;justify-content:center;text-align:center;position:relative;}
.stamp .ring{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(30px,4vw,46px);line-height:.92;}
.stamp small{display:block;letter-spacing:.3em;font-size:11px;margin-top:14px;color:var(--ash);}

/* ---- barbers ---- */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:48px;flex-wrap:wrap;}
.sec-head h2{font-size:clamp(36px,6vw,72px);}
.sec-head .eyebrow{color:var(--ash);}
/* mobile-first: 1 col, scale up at wider breakpoints below */
.barbers{display:grid;grid-template-columns:1fr;gap:22px;}
.barber{border:1px solid var(--hair);display:flex;flex-direction:column;background:#0c0c0c;}
.barber .photo{aspect-ratio:3/4;overflow:hidden;position:relative;background:#161616;display:flex;align-items:center;justify-content:center;}
.barber .photo .initial{font-family:'Anton',sans-serif;font-size:96px;color:#2a2a2a;}
.barber .photo .stripe{position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent 0 22px,rgba(255,255,255,.025) 22px 44px);z-index:1;pointer-events:none;}
.barber .photo img{position:absolute;inset:0;transition:transform .5s ease;}
.barber:hover .photo img{transform:scale(1.05);}
.barber .meta{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.barber .meta h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:26px;letter-spacing:.02em;}
.barber .meta .role{color:var(--ash);font-size:14px;margin-top:6px;flex:1;}
.barber .book{margin-top:20px;display:flex;align-items:center;justify-content:space-between;border:1px solid #fff;color:#fff;text-decoration:none;padding:13px 18px;border-radius:2px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:13px;transition:background .2s,color .2s;}
.barber .book:hover{background:#fff;color:#000;}
.barber .book .via{font-size:10px;letter-spacing:.12em;opacity:.6;font-weight:500;}

/* ---- services ---- */
.services{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;}
.svc{display:flex;align-items:baseline;gap:14px;padding:18px 0;border-bottom:1px solid var(--hair-d);}
.svc .name{font-weight:600;font-size:18px;white-space:nowrap;}
.svc .dots{flex:1;border-bottom:1px dotted #bbb;transform:translateY(-4px);}
.svc .price{font-family:'Anton',sans-serif;font-size:22px;}
.svc small{display:block;font-weight:400;color:var(--ash);font-size:13px;letter-spacing:0;text-transform:none;}

/* ---- visit ---- */
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;}
.visit h2{font-size:clamp(34px,5vw,60px);margin-bottom:24px;}
.visit .row{padding:16px 0;border-top:1px solid var(--hair);}
.visit .row:first-of-type{border-top:none;}
.visit .row .k{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--ash);margin-bottom:6px;}
.visit .row .v{font-size:17px;}
.visit a{color:#fff;}
.hours li{list-style:none;display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--hair);font-size:15px;}
.hours li span:last-child{color:#cfcfcf;}
.visit .ig{display:inline-block;margin-top:8px;border:1px solid var(--hair);padding:12px 22px;border-radius:2px;text-decoration:none;letter-spacing:.1em;text-transform:uppercase;font-size:13px;font-weight:600;transition:background .2s,color .2s;}
.visit .ig:hover{background:#fff;color:#000;}

/* ---- footer ---- */
footer{background:#000;color:#fff;text-align:center;padding:50px 24px;border-top:1px solid var(--hair);}
footer .logo{font-size:30px;}
footer p{color:var(--ash);font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin-top:14px;}

/* ---- responsive ---- */
/* barbers scale up from the mobile-first 1-col base */
@media (min-width:560px){
  .barbers{grid-template-columns:repeat(2,1fr);}
}
@media (min-width:900px){
  .barbers{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:880px){
  .about-grid,.services,.visit-grid{grid-template-columns:1fr;gap:36px;}
  .stamp{max-width:280px;}
}
@media (max-width:680px){
  .nav-links{position:fixed;inset:56px 0 auto 0;flex-direction:column;background:#000;gap:0;padding:8px 0 18px;border-bottom:1px solid var(--hair);transform:translateY(-130%);transition:transform .28s ease;}
  .nav-links.open{transform:translateY(0);}
  .nav-links a{padding:14px 24px;width:100%;}
  .burger{display:block;}
  .s{padding:64px 22px;}
}
/* ---- animations (opt-in, motion-safe) ---- */
@media (prefers-reduced-motion:no-preference){
  /* hero entrance — staggered rise on load (pure CSS, no JS needed) */
  .hero .eyebrow,.hero h1,.hero .lede,.hero-cta{
    opacity:0;animation:rise .8s cubic-bezier(.2,.7,.2,1) both;
  }
  .hero h1{animation-delay:.08s;}
  .hero .lede{animation-delay:.2s;}
  .hero-cta{animation-delay:.32s;}

  /* scroll reveal — only when JS is present to toggle .in */
  .js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
  .js .reveal.in{opacity:1;transform:none;}

  /* barber cards — staggered reveal once the grid scrolls in */
  .js .barber{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1);}
  .js .barbers.in .barber{opacity:1;transform:none;}
  .js .barbers.in .barber:nth-child(1){transition-delay:.04s;}
  .js .barbers.in .barber:nth-child(2){transition-delay:.1s;}
  .js .barbers.in .barber:nth-child(3){transition-delay:.16s;}
  .js .barbers.in .barber:nth-child(4){transition-delay:.22s;}
  .js .barbers.in .barber:nth-child(5){transition-delay:.28s;}
  .js .barbers.in .barber:nth-child(6){transition-delay:.34s;}

  /* nav gains depth once you leave the top */
  nav{transition:box-shadow .3s ease;}
  nav.scrolled{box-shadow:0 8px 28px rgba(0,0,0,.45);}
}
@keyframes rise{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}

@media (prefers-reduced-motion:reduce){
  .pole{animation:none;}
  html{scroll-behavior:auto;}
}
