:root{
  --ink:#0a0a0a; --ink-2:#111214; --panel:#15171a; --line:#26292e;
  --paper:#f4f2ee; --muted:#9aa0a6; --accent:#c8a24a; --accent-2:#e6c274;
  --max:1400px; --ease:cubic-bezier(.22,.8,.28,1);
}
*{margin:0;
  padding:0;
  box-sizing:border-box;
}
html{
  scroll-behavior:smooth;
}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:"Barlow",system-ui,sans-serif;font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
a{
  color:inherit;
  text-decoration:none;
}
h1,h2,h3{
  font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;letter-spacing:.02em;line-height:.95;text-transform:uppercase;
}
.logo{
  font-family:'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
  font-weight:400;
  line-height:0.95em;
  /* text-transform:lowercase; */
}
.eyebrow{
  font-size:.72rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--accent-2);
}
/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.85rem 1.7rem;
  border-radius:999px;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  border:1px solid transparent;
  transition:transform .35s var(--ease),background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease);
}
.btn--solid{
  background:var(--accent);
  color:#14100a;
}
.btn--solid:hover{
  background:var(--accent-2);transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(200,162,74,.28);
}
.btn--line{
  border-color:rgba(244,242,238,.35);color:var(--paper);
}
.btn--line:hover{
  border-color:var(--paper);
  background:var(--paper);
  color:var(--ink);
  transform:translateY(-3px);
}
.btn--ghost:hover{
  background:var(--accent);
  border-color:var(--accent);
  color:#14100a;
}
/* ---------- navbar ---------- */
.nav{
  position:fixed;
  inset:0 0 auto 0;
  z-index:50;
  background:rgba(10,10,10,.72);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  animation:dropIn .8s var(--ease) both;
}
.nav__inner{
  max-width:var(--max);
  margin:0 auto;
  padding:1rem 1.25rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.logo{
  font-size:1.9rem;
  letter-spacing:.12em;
}
.logo span{
  color:var(--accent);
}
.nav__menu{
  display:flex;
  align-items:center;
  gap:2rem;
}
.nav__menu a{
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  position:relative;
  padding:.25rem 0;
  transition:color .3s var(--ease);
}
.nav__menu a:not(.btn)::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  height:1px;
  width:0;
  background:var(--accent);
  transition:width .38s var(--ease);
}
.nav__menu a:not(.btn):hover{
  color:var(--accent-2);
}
.nav__menu a:not(.btn):hover::after{
  width:100%;
}
.nav__checkbox{
  display:none;
}
.nav__burger{
  display:none;
  width:34px;
  height:24px;
  position:relative;
  cursor:pointer;
}
.nav__burger span,.nav__burger::before,.nav__burger::after{
  content:"";
  position:absolute;
  left:0;
  height:2px;
  width:100%;
  background:var(--paper);
  transition:transform .4s var(--ease),opacity .3s var(--ease);
}
.nav__burger::before{
  top:2px;
}.nav__burger span{
  top:11px;
}
.nav__burger::after{
  top:20px;
}
/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.hero__img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:scale-down;
  animation:slowZoom 10s var(--ease) both;
}
.hero__veil{
  position:absolute;
  inset:0;
  background:linear-gradient(75deg,rgba(10,10,10,.94) 12%,rgba(10,10,10,.55) 55%,rgba(10,10,10,.8) 100%);
}
.hero__content{
  position:relative;
  max-width:var(--max);
  width:100%;
  margin:0 auto;
  padding:9rem 1.25rem 7rem;
  display:flex;
  flex-direction:column;
  gap:1.4rem;
  align-items:flex-start;
}
.hero__title{
  font-size:80px;
  font-family:Verdana, Geneva, Tahoma, sans-serif;
}
.line{
  display:block;
  overflow:hidden;
}
.line__in{
  display:block;
  transform:translateY(110%);
  animation:riseUp 1s var(--ease) forwards;
  font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
  text-transform: lowercase;
}
.line font{
  text-transform:uppercase;
}
.line:nth-child(1) .line__in{
  animation-delay:.25s;
}
.line:nth-child(2) .line__in{
  animation-delay:.4s;
}
.line:nth-child(3) .line__in{
  animation-delay:.55s;
}
.accent{
  color:var(--accent);
}
.hero__sub{
  max-width:44ch;
  color:#d8d4cc;
}
.hero__cta{
  display:flex;
  flex-wrap:wrap;
  gap:.9rem;
}
.reveal{
  opacity:0;
  transform:translateY(18px);
  animation:fadeUp .9s var(--ease) forwards;
}
.hero .eyebrow.reveal{
  animation-delay:.1s;
}
.hero__sub.reveal{
  animation-delay:.8s;
}
.hero__cta.reveal{
  animation-delay:.95s;
}
.marquee{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  border-top:1px solid var(--line);
  background:rgba(10,10,10,.85);
  overflow:hidden;
  padding:.7rem 0;
}
.marquee__track{
  display:flex;
  gap:2rem;
  white-space:nowrap;
  width:max-content;
  animation:slide 26s linear infinite;
  font-size:.75rem;
  letter-spacing:.28em;
  color:var(--muted);
  text-transform:uppercase;
}
/* ---------- stats strip ---------- */
.strip{
  background:var(--accent);
  color:#14100a;
}
.strip__grid{
  max-width:var(--max);
  margin:0 auto;
  padding:2.2rem 1.25rem;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.5rem;
  text-align:center;
}
.stat b{
  display:block;
  font-family:"Bebas Neue",sans-serif;
  font-size:2.4rem;
  line-height:1;
}
.stat span{
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.75;
}
/* ---------- sections ---------- */
.section{
  max-width:var(--max);
  margin:0 auto;
  padding:6rem 1.25rem;
}
.section__head{
  display:flex;
  flex-direction:column;
  gap:.6rem;
  margin-bottom:2.6rem;
  max-width:60ch;
}
.section__head--center{
  margin-inline:auto;
  text-align:center;
  align-items:center;
}
.section__head h2{
  font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
  font-size:60px;
  display:inline;
}
.section__head p{
  color:var(--muted);
}

.cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:minmax(240px,auto);
  gap:1.2rem;
}
.card{
  position:relative;
  border:1px solid var(--line);
  border-radius:20px;overflow:hidden;
  background:var(--panel);
  display:flex;
  transition:transform .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease);
}
.card img{
  position:absolute;
  inset:0;
  transition:transform 1s var(--ease),filter .6s var(--ease);filter:grayscale(.05) brightness(.7);
}
.card--tall{
  grid-row:span 2;
}
.card__body{
  position:relative;
  z-index:2;
  margin-top:auto;
  padding:1.6rem;
  display:flex;
  flex-direction:column;
  gap:.5rem;
  font-family:Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
  /* background:linear-gradient(to top,rgba(26, 24, 24, 0.95),rgba(8,8,8,0)); */
}
.card--flat{
  background:linear-gradient(150deg,#191b1f,#101215);
}
.card--accent{
  background:linear-gradient(150deg,#2a2109,#141210);
}
.card h3{
  font-size:1.7rem;
}
.card p{
  font-size:.92rem;
  color:#c3c0ba;
}
.tag{
  font-size:.66rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--accent-2);
}
.link{
  font-size:.76rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--paper);
  transition:letter-spacing .4s var(--ease),color .3s var(--ease);
}
.card:hover{
  transform:translateY(-8px);
  border-color:var(--accent);
  box-shadow:0 24px 50px rgba(0,0,0,.55);
}
.card:hover img{
  transform:scale(1.08);
  filter:grayscale(0) brightness(.8);
}
.card:hover .link{
  letter-spacing:.34em;
  color:var(--accent);
}
/* ---------- products ---------- */
.drop{
  background:linear-gradient(180deg,#0a0a0a,#101215,#0a0a0a);
}
.products{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1.2rem;
}
.product{
  display:flex;
  flex-direction:column;
  gap:.6rem;
}
.product h4{
  font-weight:bold;
  font-family:'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-size:1.25rem;
}
.product__media{
  position:relative;
  aspect-ratio:4/5;
  border-radius:16px;
  overflow:hidden;
  background:var(--panel);
  border:1px solid var(--line);
}
.product__media img{
  transition:transform .8s var(--ease),filter .5s var(--ease);filter:brightness(.85);
}
.product:hover .product__media img{
  transform:scale(1.07) rotate(-1deg);
  filter:brightness(1);
}
.badge{
  position:absolute;
  top:.8rem;
  left:.8rem;
  background:var(--accent);
  color:#14100a;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;padding:.32rem .7rem;
  border-radius:999px;
}
.price{
  font-size:.86rem;
  color:var(--accent-2);
  letter-spacing:.08em;
}

/* ---------- split ---------- */
.split{
  max-width:var(--max);
  margin:0 auto;
  padding:5rem 1.25rem;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:center;
}
.split__text{
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  align-items:flex-start;
}
.split__text h2{
  font-size:clamp(2rem,4.6vw,3.4rem);
  font-family:'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
}
.split__text p{
  color:#c3c0ba;
}
.split__media{
  aspect-ratio:4/4;
  border-radius:24px;
  overflow:hidden;
  border:1px solid var(--line);
}
.split__media img{
  transition:transform 1.2s var(--ease);
  filter:grayscale(.2);
}
.split__media:hover img{
  transform:scale(1.06);
}
.ticks{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.ticks li{
  position:relative;
  padding-left:1.6rem;
  color:#d8d4cc;
  font-size:.95rem;
}
.ticks li::before{
  content:"";
  position:absolute;
  left:0;top:.6rem;
  width:.6rem;
  height:.6rem;
  border-radius:50%;
  background:var(--accent);
  transition:transform .4s var(--ease);
}
.ticks li:hover::before{transform:scale(1.6);
}
/* ---------- venues ---------- */
.venues{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.2rem;
}
.venue{
  position:relative;
  aspect-ratio:1/1;
  border-radius:20px;
  overflow:hidden;
  border:1px solid var(--line);
}
.venue img{
  transition:transform 1s var(--ease);
  filter:brightness(.7);
}
.venue__meta{
  position:absolute;
  inset:auto 0 0 0;
  padding:1.4rem;
  background:linear-gradient(to top,rgba(8,8,8,.92),transparent);
  transform:translateY(8px);
  transition:transform .5s var(--ease);
}
.venue__meta h3{
  font-size:1.8rem;
}
.venue__meta span{
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent-2);
}
.venue:hover img{
  transform:scale(1.08);
}
.venue:hover .venue__meta{
  transform:translateY(0);
}
/* ---------- journal ---------- */
.posts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.2rem;
}
.post{
  border:1px solid var(--line);
  border-radius:18px;
  padding:1.8rem;
  display:flex;
  flex-direction:column;
  gap:.7rem;background:var(--ink-2);
  transition:transform .45s var(--ease),background-color .45s var(--ease),border-color .45s var(--ease);
}
.post__date{
  font-size:.7rem;
  letter-spacing:.26em;
  color:var(--accent);
}
.post h3{
  font-size:1.6rem;
}
.post p{
  color:var(--muted);
  font-size:.93rem;
}
.post:hover{
  transform:translateY(-6px);
  background:#1a1d21;
  border-color:var(--accent);
}
/* ---------- contact page ---------- */
.page-head{
  position:relative;
  padding:11rem 1.25rem 4rem;
  text-align:center;
  background:radial-gradient(circle at 50% 0%,rgba(200,162,74,.18),transparent 60%),#0a0a0a;border-bottom:1px solid var(--line);
}
.page-head h1{
  font-size:clamp(2.6rem,7vw,5.5rem);
}
.page-head p{
  color:var(--muted);
  max-width:56ch;
  margin:.8rem auto 0;
}
.contact-grid{
  max-width:var(--max);
  margin:0 auto;
  padding:5rem 1.25rem;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:2.5rem;
  align-items:start;
}
.form{
  display:flex;
  flex-direction:column;
  gap:1rem;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--ink-2);
  padding:2rem;
}
.field{
  display:flex;
  flex-direction:column;
  gap:.45rem;
}
.field label{
  font-size:.7rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent-2);
}
.field input,.field select,.field textarea{
  background:#0a0a0a;
  border:1px solid var(--line);
  color:var(--paper);
  padding:.85rem 1rem;
  border-radius:14px;
  font:inherit;
  transition:border-color .35s var(--ease),box-shadow .35s var(--ease),transform .35s var(--ease);
}
.field textarea{
  min-height:140px;
  resize:vertical;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(200,162,74,.15);
}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.info{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.info__card{
  border:1px solid var(--line);
  border-radius:20px;
  padding:1.5rem;
  background:linear-gradient(150deg,#191b1f,#101215);display:flex;flex-direction:column;gap:.35rem;transition:transform .45s var(--ease),border-color .45s var(--ease);
}
.info__card:hover{
  transform:translateY(-6px);border-color:var(--accent);
}
.info__card h3{
  font-size:1.5rem;
}
.info__card p,.info__card a{
  color:var(--muted);
  font-size:.93rem;
}
.info__card a:hover{
  color:var(--accent-2);
}
.support{
  max-width:var(--max);
  margin:0 auto;
  padding:0 1.25rem 5rem;
}
.faqs{
  display:flex;
  flex-direction:column;
  gap:.8rem;
  max-width:820px;
  margin:0 auto;
}
.faq{
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--ink-2);
  padding:1.2rem 1.4rem;
  transition:border-color .4s var(--ease),background-color .4s var(--ease);
}
.faq[open]{
  border-color:var(--accent);
  background:#1a1d21}
.faq summary{
  cursor:pointer;
  list-style:none;
  font-family:"Bebas Neue",sans-serif;font-size:1.25rem;letter-spacing:.04em;text-transform:uppercase;display:flex;justify-content:space-between;
  gap:1rem;
  align-items:center;
}
.faq summary::-webkit-details-marker{
  display:none;
}
.faq summary::after{
  content:"+";
  color:var(--accent);
  transition:transform .4s var(--ease);
}
.faq[open] summary::after{
  transform:rotate(45deg);
}
.faq p{
  color:var(--muted);
  font-size:.93rem;
  margin-top:.7rem;
}
@media (max-width:1024px){
  .contact-grid{grid-template-columns:1fr};
}
@media (max-width:520px){
  .form__row{
    grid-template-columns:1fr;
  }
  .page-head{
    padding:9rem 1.25rem 3rem
  }
}

/* ---------- cta ---------- */
.cta{
  max-width:var(--max);
  margin:0 auto 5rem;
  padding:4rem 1.5rem;
  border:1px solid var(--line);
  border-radius:26px;
  background:radial-gradient(circle at 20% 20%,rgba(200,162,74,.18),transparent 60%),#101215;display:flex;flex-direction:column;
  align-items:center;
  gap:1rem;
  text-align:center;
}
.cta h2{
  font-size:clamp(2rem,5vw,3.4rem);
}
.cta p{
  color:var(--muted);
}
.cta__form{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem;
  justify-content:center;
  width:100%;
  max-width:520px;
}
.cta__form input{
  flex:1 1 240px;
  background:#0a0a0a;
  border:1px solid var(--line);
  color:var(--paper);
  padding:.85rem 1.1rem;
  border-radius:999px;
  font:inherit;
  transition:border-color .35s var(--ease),box-shadow .35s var(--ease);
}
.cta__form input:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(200,162,74,.15);
}
/* ---------- footer ---------- */
.footer{
  border-top:1px solid var(--line);background:#08090a;
}
.footer__grid{
  max-width:var(--max);
  margin:0 auto;
  padding:3.5rem 1.25rem;
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:2rem;
}
.footer__grid h4{
  font-size:1.1rem;
  letter-spacing:.16em;
  margin-bottom:.8rem;
  color:var(--accent-2);
}
.footer__grid a{
  display:block;
  font-size:.9rem;
  color:var(--muted);
  padding:.22rem 0;
  transition:color .3s var(--ease),transform .3s var(--ease);
}
.footer__grid a:hover{
  color:var(--paper);
  transform:translateX(5px);
}
.footer__note{
  color:var(--muted);
  font-size:.9rem;
  max-width:34ch;
  margin-top:.6rem;
}
.footer__base{
  text-align:center;
  padding:1.4rem;
  border-top:1px solid var(--line);
  font-size:.78rem;
  color:#6d7276;
  letter-spacing:.12em;
  text-transform:uppercase;
}
/* ---------- animations ---------- */
@keyframes riseUp{
  to{
    transform:translateY(0);
  }
}
@keyframes fadeUp{
  to{
    opacity:1;
    transform:translateY(0);
  }
}
@keyframes dropIn{
  from{
    transform:translateY(-100%);
  }
  to{
    transform:translateY(0);
  }
}
@keyframes slowZoom{
  from{
    transform:scale(1.14);
  }
  to{
    transform:scale(1);
  }
}
@keyframes slide{
  from{
    transform:translateX(0);
  }
  to{
    transform:translateX(-50%);
  }
}
/* ---------- responsive ---------- */
@media (max-width:1024px){
  .cards{
    grid-template-columns:repeat(2,1fr);
  }
  .products{
    grid-template-columns:repeat(2,1fr);
  }
  .footer__grid{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:860px){
  .nav__burger{
    display:block;
  }
  .nav__menu{
    position:fixed;
    inset:64px 0 auto 0;
    flex-direction:column;align-items:flex-start;
    gap:1.2rem;
    padding:1.6rem 1.5rem 2.2rem;
    background:rgba(10,10,10,.97);
    border-bottom:1px solid var(--line);
    transform:translateY(-130%);
    opacity:0;
    transition:transform .55s var(--ease),opacity .4s var(--ease);
  }
  .nav__checkbox:checked ~ .nav__menu{
    transform:translateY(0);
    opacity:1;
  }
  .nav__checkbox:checked ~ .nav__burger span{
    opacity:0;
  }
  .nav__checkbox:checked ~ .nav__burger::before{
    top:11px;
    transform:rotate(45deg);
  }
  .nav__checkbox:checked ~ .nav__burger::after{
    top:11px;
    transform:rotate(-45deg);
  }
  .split{
    grid-template-columns:1fr;
  }
  .venues,.posts{
    grid-template-columns:1fr;
  }
  .strip__grid{
    grid-template-columns:repeat(2,1fr);
  }
  .card--tall{
    grid-row:span 1;
  }
  .hero__content{
    padding:7.5rem 1.25rem 6rem;
  }
  .section{
    padding:4rem 1.25rem;
  }
}
@media (max-width:520px){
  .cards,.products{
    grid-template-columns:1fr;
  }
  .footer__grid{
    grid-template-columns:1fr;
  }
  .btn{
    width:100%;
  }
  .nav__menu .btn{
    width:auto;
  }
}
@media (prefers-reduced-motion:reduce){
  *{
    animation:none!important;
    transition:none!important;
  }
  .line__in{
    transform:none;
  }
  .reveal{
    opacity:1;
    transform:none;
  }
}