*,*::before,*::after{box-sizing:border-box;}
:root{
  --gold:#C29B56;
  --ink:#131211;
  --panel:#1E1C1A;
  --bone:#F2EDE4;
  --muted:#A79E92;
  --hair:rgba(194,155,86,0.28);
  --wrap:1240px;
  --disp:"Anton",Impact,"Arial Narrow",sans-serif;
  --serif:"EB Garamond",Georgia,serif;
}
html,body{max-width:100%;overflow-x:hidden;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--ink);color:var(--bone);
  font-family:var(--serif);font-size:17px;line-height:1.65;
  overflow-wrap:break-word;
}
img,svg,video,iframe{max-width:100%;height:auto;display:block;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 22px;}
h1,h2,h3{margin:0;font-family:var(--disp);font-weight:400;text-transform:uppercase;letter-spacing:-0.015em;line-height:0.92;}
p{margin:0 0 1rem;}
ul{margin:0;padding:0;list-style:none;}

.sect-h{font-size:clamp(2.1rem,6vw,5rem);}

/* buttons + links */
.btn{
  display:inline-block;font-family:var(--disp);text-transform:uppercase;
  letter-spacing:0.04em;text-decoration:none;padding:14px 26px;font-size:.95rem;
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
  min-height:44px;
}
.btn--gold{background:var(--gold);color:#131211;}
.btn--gold:hover{background:#d8b071;transform:translateY(-2px);box-shadow:0 10px 26px rgba(194,155,86,.22);}
.btn--lg{font-size:clamp(1rem,2.2vw,1.3rem);padding:18px 34px;}
.btn--wide{display:block;text-align:center;}
.textlink{
  font-family:var(--serif);font-size:1.05rem;color:var(--gold);
  text-decoration:none;border-bottom:1px solid var(--hair);padding-bottom:3px;
  letter-spacing:.02em;display:inline-block;
}
.textlink:hover{border-bottom-color:var(--gold);}
.textlink--sm{font-size:.98rem;}
.label{
  font-family:var(--serif);font-size:.8rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold);margin:0 0 .7rem;
}

/* promo bar */
.promo{background:var(--gold);color:#131211;}
.promo__inner{
  max-width:var(--wrap);margin:0 auto;padding:8px 46px;
  display:flex;align-items:center;justify-content:center;gap:12px;position:relative;
}
.promo p{
  margin:0;font-family:var(--disp);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;text-align:center;line-height:1.4;
}
.promo__close{
  background:none;border:0;color:#131211;font-size:1.25rem;line-height:1;
  cursor:pointer;padding:6px 8px;position:absolute;right:6px;top:50%;transform:translateY(-50%);
}
.promo.is-hidden{display:none;}

/* header */
.site-header{
  position:sticky;top:0;z-index:60;background:rgba(19,18,17,.35);backdrop-filter:blur(4px);
  border-bottom:1px solid transparent;transition:background .3s ease,border-color .3s ease;
}
.site-header.is-stuck{background:var(--panel);border-bottom-color:var(--hair);}
.site-header__inner{display:flex;align-items:center;gap:18px;padding-top:12px;padding-bottom:12px;}
.wordmark{
  font-family:var(--disp);color:var(--gold);text-decoration:none;
  font-size:clamp(.8rem,1.5vw,1.02rem);letter-spacing:.02em;line-height:1.08;
  text-transform:uppercase;max-width:178px;min-width:0;
}
.nav-desk{margin-left:auto;}
.nav-desk ul{display:flex;gap:clamp(12px,1.8vw,26px);}
.nav-desk a{
  font-family:var(--serif);font-size:.95rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--bone);text-decoration:none;
  padding:6px 0;border-bottom:1px solid transparent;
}
.nav-desk a:hover,.nav-desk a[aria-current]{color:var(--gold);border-bottom-color:var(--gold);}
.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto;}
.nav-desk + .header-actions{margin-left:0;}
.icon-link{color:var(--bone);display:inline-flex;padding:8px;}
.icon-link:hover{color:var(--gold);}
.header-cta{font-size:.76rem;padding:11px 16px;}
.burger{
  display:none;background:none;border:1px solid var(--hair);
  width:44px;height:44px;cursor:pointer;flex-direction:column;
  align-items:center;justify-content:center;gap:5px;padding:0;
}
.burger span{display:block;width:20px;height:2px;background:var(--gold);}

@media(max-width:1000px){
  .nav-desk{display:none;}
  .burger{display:flex;}
  .wordmark{max-width:160px;}
}
@media(max-width:600px){
  .header-cta{display:none;}
  .icon-link{padding:6px;}
  .wordmark{max-width:140px;font-size:.78rem;}
}

/* mobile menu */
.mobile-menu{position:fixed;inset:0;z-index:80;background:var(--ink);overflow-y:auto;}
.mobile-menu[hidden]{display:none;}
.mobile-menu__inner{
  min-height:100%;padding:96px 22px 40px;display:flex;flex-direction:column;
  justify-content:space-between;gap:40px;max-width:640px;margin:0 auto;
}
.mobile-menu nav a{
  font-family:var(--disp);text-transform:uppercase;text-decoration:none;
  font-size:clamp(1.9rem,9vw,3rem);color:var(--bone);display:block;
  padding:10px 0;border-bottom:1px solid rgba(194,155,86,.15);
}
.mobile-menu nav a:hover{color:var(--gold);}
.mobile-menu__social{display:flex;gap:22px;margin-bottom:18px;}
.mobile-menu__social a{
  color:var(--gold);text-decoration:none;letter-spacing:.14em;
  text-transform:uppercase;font-size:.85rem;
}
body.menu-open{overflow:hidden;}

/* grain */
.hero__grain{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:3px 3px;
}

/* hero */
.hero{position:relative;overflow:hidden;padding:clamp(2.5rem,8vh,5.5rem) 0 clamp(3.5rem,10vh,6.5rem);}
.hero::before{
  content:"";position:absolute;top:-20%;left:-10%;width:70%;height:80%;
  background:radial-gradient(circle at 30% 30%,rgba(194,155,86,.14),transparent 62%);
  pointer-events:none;
}
.hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.95fr);gap:clamp(24px,4vw,56px);align-items:center;}
.hero__h1{font-size:clamp(2.6rem,9vw,8.5rem);letter-spacing:-0.02em;}
.hero__h1-em{color:var(--gold);}
.hero__stand{
  margin:26px 0 0;max-width:46ch;color:var(--muted);
  font-size:clamp(.92rem,1.3vw,1.02rem);letter-spacing:.06em;line-height:1.75;
}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:30px;}
.hero__meta{
  margin-top:24px;color:var(--gold);font-size:.86rem;letter-spacing:.14em;
  text-transform:uppercase;border-top:1px solid var(--hair);padding-top:16px;max-width:34rem;
}
.hero__meta a{text-decoration:none;}
.hero__meta a:hover{text-decoration:underline;}

.polaroid{
  margin:0;background:#EFE9DF;padding:12px;
  transform:rotate(3deg);box-shadow:0 34px 70px rgba(0,0,0,.6);
  justify-self:end;width:min(100%,390px);position:relative;
  will-change:transform;
}
.polaroid::before{
  content:"";position:absolute;top:-16px;left:50%;transform:translateX(-50%) rotate(-3deg);
  width:110px;height:28px;background:rgba(242,237,228,.16);
  border:1px solid rgba(242,237,228,.12);
}
.polaroid img{width:100%;aspect-ratio:1353/2069;object-fit:cover;object-position:50% 45%;filter:contrast(1.05);}
@media(max-width:880px){
  .hero__grid{grid-template-columns:1fr;gap:34px;}
  .polaroid{justify-self:center;transform:rotate(-2deg);width:min(100%,320px);}
}

/* why */
.why{padding:clamp(4.5rem,12vh,9rem) 0;background:var(--ink);border-top:1px solid rgba(255,255,255,.05);}
.why__head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);align-items:end;}
.why__lede{color:var(--muted);font-size:1.12rem;margin:0;}
.valuegrid{
  margin-top:clamp(2.2rem,6vw,4.2rem);display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--hair);
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.value{background:var(--ink);padding:32px 24px 36px;min-width:0;}
.value--card{background:var(--panel);}
.value__num{font-family:var(--disp);color:var(--gold);font-size:.9rem;letter-spacing:.2em;}
.value h3{font-size:1.3rem;margin:14px 0 12px;letter-spacing:0;line-height:1.05;}
.value p{color:var(--muted);font-size:1rem;margin-bottom:12px;}
@media(max-width:900px){
  .why__head{grid-template-columns:1fr;gap:18px;}
  .valuegrid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){.valuegrid{grid-template-columns:1fr;}}

/* portfolio wall */
.portfolios{padding:clamp(4.5rem,12vh,9rem) 0 clamp(3.5rem,8vh,6rem);background:linear-gradient(180deg,#131211,#191715 40%,#131211);}
.portfolios__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;}
.portfolios__intro{color:var(--muted);max-width:32ch;margin:0;}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 clamp(1.4rem,4vw,2.2rem);}
.chip{
  background:transparent;border:1px solid var(--hair);color:var(--muted);
  font-family:var(--serif);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;
  padding:10px 15px;cursor:pointer;min-height:42px;transition:.2s ease;
}
.chip:hover{color:var(--bone);border-color:var(--gold);}
.chip.is-active{background:var(--gold);color:#131211;border-color:var(--gold);}

.wall{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;grid-auto-rows:clamp(88px,8.6vw,124px);
}
.tile{
  position:relative;overflow:hidden;display:block;text-decoration:none;
  border:1px solid var(--hair);background:var(--panel);min-width:0;
  transition:opacity .35s ease,filter .35s ease;
}
.tile--t1{grid-column:span 1;grid-row:span 4;}
.tile--t2{grid-column:span 2;grid-row:span 4;}
.tile--t3{grid-column:span 1;grid-row:span 2;}
.tile--t4{grid-column:span 1;grid-row:span 2;}
.tile--t5{grid-column:span 1;grid-row:span 4;}
.tile--t6{grid-column:span 2;grid-row:span 4;}
.tile--t7{grid-column:span 1;grid-row:span 4;}
.tile img{width:100%;height:100%;object-fit:cover;filter:contrast(1.06);transition:transform .6s cubic-bezier(.2,.7,.3,1);}
.tile::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(19,18,17,0) 42%,rgba(19,18,17,.88));
  opacity:.78;transition:opacity .35s ease;
}
.tile:hover img,.tile:focus-visible img{transform:scale(1.045);}
.tile:hover::after,.tile:focus-visible::after{opacity:.96;}
.tile__plate{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:14px 15px 15px;border-top:1px solid var(--hair);
  background:linear-gradient(180deg,rgba(19,18,17,.05),rgba(19,18,17,.93));
  display:block;
}
.tile__name{
  display:block;font-family:var(--disp);text-transform:uppercase;
  font-size:clamp(.92rem,1.35vw,1.12rem);color:var(--bone);letter-spacing:0;line-height:1.08;
}
.tile__go{
  display:block;color:var(--gold);font-size:.8rem;letter-spacing:.12em;
  text-transform:uppercase;margin-top:5px;max-height:0;opacity:0;overflow:hidden;
  transition:.3s ease;
}
.tile:hover .tile__go,.tile:focus-visible .tile__go{opacity:1;max-height:2.5em;}
.tile:hover .tile__name{color:var(--gold);}
.tile.is-dim{opacity:.16;filter:grayscale(1);}
.wall__more{margin-top:30px;text-align:right;}

@media(max-width:900px){
  .wall{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(80px,11vw,110px);}
  .tile--t3,.tile--t4{grid-row:span 3;}
  .tile--t2,.tile--t6{grid-column:span 2;grid-row:span 4;}
  .tile__go{opacity:1;max-height:2.5em;}
}
@media(max-width:560px){
  .wall{grid-template-columns:1fr;grid-auto-rows:auto;gap:12px;}
  .tile{grid-column:span 1 !important;grid-row:span 1 !important;aspect-ratio:4/3.4;}
  .wall__more{text-align:left;}
}

/* ribbon */
.ribbon{overflow:hidden;background:var(--panel);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:14px 0;}
.ribbon__track{display:flex;width:max-content;animation:slide 34s linear infinite;}
.ribbon__track span{
  font-family:var(--disp);text-transform:uppercase;color:var(--gold);
  font-size:clamp(1.25rem,3.4vw,2.4rem);letter-spacing:.02em;white-space:nowrap;padding-right:12px;
}
.ribbon:hover .ribbon__track{animation-play-state:paused;}
@keyframes slide{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* cta band */
.cta-band{position:relative;overflow:hidden;padding:clamp(4.5rem,13vh,9rem) 0;background:var(--ink);}
.cta-band::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 120%,rgba(194,155,86,.18),transparent 60%);
}
.cta-band__inner{position:relative;text-align:center;max-width:1000px;}
.cta-band__h{font-size:clamp(1.75rem,5.2vw,4.2rem);}
.cta-band__sub{
  margin:22px 0 32px;color:var(--gold);letter-spacing:.18em;text-transform:uppercase;font-size:.88rem;
}
.cta-band__note{margin-top:22px;color:var(--muted);}
.cta-band__note a{color:var(--gold);}

/* visit */
.visit{padding:0 0 clamp(4.5rem,12vh,8rem);}
.visit__h{text-align:center;color:var(--gold);font-size:clamp(1.7rem,4.6vw,3.4rem);}
.visit__grid{
  margin-top:clamp(2rem,5vw,3.4rem);display:grid;
  grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);
  gap:clamp(26px,4vw,56px);align-items:center;
}
.visit__photo{
  margin:0;background:#EFE9DF;padding:12px 12px 14px;
  transform:rotate(-2.5deg);box-shadow:0 26px 56px rgba(0,0,0,.55);
  width:min(100%,330px);justify-self:center;
}
.visit__photo img{width:100%;aspect-ratio:1353/2069;object-fit:cover;object-position:50% 45%;filter:contrast(1.05);}
.visit__photo figcaption{
  margin-top:10px;color:#2a2724;font-size:.78rem;letter-spacing:.14em;
  text-transform:uppercase;text-align:center;
}
.visit__card{background:var(--panel);border:1px solid var(--hair);}
.visit__row{
  display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);
  gap:10px clamp(16px,3vw,34px);padding:clamp(22px,2.6vw,32px) clamp(20px,3vw,38px);
  border-top:1px solid var(--hair);
}
.visit__row:first-child{border-top:0;}
.visit__row .label{margin:0;padding-top:.35rem;}
.visit__body{color:var(--bone);margin-bottom:.7rem;}
.visit__row div p:last-of-type{margin-bottom:.3rem;}
.visit__body a{color:var(--bone);text-decoration:none;border-bottom:1px solid var(--hair);}
.visit__body a:hover{color:var(--gold);}
@media(max-width:880px){
  .visit__grid{grid-template-columns:1fr;}
  .visit__photo{transform:rotate(-2deg);}
}
@media(max-width:560px){
  .visit__row{grid-template-columns:1fr;}
  .visit__row .label{padding-top:0;}
}

/* footer */
.site-footer{background:var(--panel);border-top:1px solid var(--hair);padding:clamp(2.6rem,6vw,4rem) 0;}
.site-footer__inner{display:flex;flex-wrap:wrap;align-items:center;gap:20px 30px;}
.wordmark--foot{font-size:clamp(1rem,2.4vw,1.5rem);max-width:none;}
.footer-nav ul{display:flex;flex-wrap:wrap;gap:8px 20px;}
.footer-nav a{
  text-decoration:none;color:var(--muted);letter-spacing:.1em;
  text-transform:uppercase;font-size:.85rem;
}
.footer-nav a:hover{color:var(--gold);}
.footer-social{display:flex;gap:6px;margin-left:auto;}
.copyright{width:100%;margin:0;color:var(--muted);font-size:.9rem;border-top:1px solid rgba(255,255,255,.07);padding-top:20px;}
@media(max-width:700px){.footer-social{margin-left:0;}}

/* reveals */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.3,1);}
.reveal.is-in{opacity:1;transform:none;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .ribbon__track{animation:none;}
  .reveal{opacity:1;transform:none;transition:none;}
  .polaroid{transform:rotate(3deg)!important;}
  *{transition-duration:.01ms!important;}
}