:root{
  --color-black:#0A0A0A;
  --color-dark:#141414;
  --color-charcoal:#1C1C1C;
  --color-ivory:#F3EFE7;
  --color-cream:#E7E0D5;
  --color-bronze:#A7865A;
  --color-bronze-soft:#C3A77D;
  --color-muted:#B8B8B8;
  --color-white:#FFFFFF;
  --color-dark-text:#111111;
  --border-dark:rgba(167,134,90,.22);
  --border-light:rgba(17,17,17,.12);
  --glass-dark:rgba(10,10,10,.72);
  --glass-light:rgba(243,239,231,.78);
  --black:var(--color-black);
  --charcoal:var(--color-dark);
  --graphite:var(--color-charcoal);
  --soft-charcoal:#242424;
  --pearl:var(--color-ivory);
  --white:var(--color-white);
  --platinum:var(--color-muted);
  --metallic:var(--color-bronze-soft);
  --champagne:var(--color-bronze);
  --gold-light:var(--color-bronze-soft);
  --gold-dark:var(--color-bronze);
  --mist:#141414;
  --powder:#1C1C1C;
  --blush:#24201A;
  --ink:var(--color-dark-text);
  --serif:'Cormorant Garamond', serif;
  --sans:'Manrope', sans-serif;
  --ease:cubic-bezier(.16,.84,.44,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
body{
  margin:0;
  background:
    radial-gradient(circle at 50% -10%, rgba(167,134,90,.10) 0%, transparent 42%),
    linear-gradient(180deg, var(--color-black) 0%, var(--color-dark) 100%);
  color:var(--pearl);
  font-family:var(--sans);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:500; margin:0; letter-spacing:.01em;}
p{margin:0; line-height:1.65;}
em{font-style:italic; color:var(--champagne);}
.wrap{max-width:1360px; margin:0 auto; padding:0 40px;}
@media(max-width:768px){.wrap{padding:0 22px;}}

/* ---------- utility ---------- */
.eyebrow{
  font-family:var(--sans); font-size:12px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--champagne); font-weight:600; display:inline-flex; align-items:center; gap:12px;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--champagne); display:inline-block;}
.hr-line{height:1px; width:100%; background:linear-gradient(90deg, transparent, var(--metallic) 40%, var(--champagne) 50%, var(--metallic) 60%, transparent);}
.btn{
  display:inline-flex; align-items:center; gap:10px; padding:16px 30px; border-radius:15px;
  font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  border:1px solid var(--pearl); color:var(--pearl); background:transparent; transition:all .5s var(--ease);
  position:relative; overflow:hidden;
}
.btn span{position:relative; z-index:2;}
.btn::before{content:""; position:absolute; inset:0; background:var(--pearl); transform:translateX(-101%); transition:transform .5s var(--ease); z-index:1;}
.btn:hover::before{transform:translateX(0);}
.btn:hover{color:var(--black);}
.btn-solid{background:var(--color-bronze); color:var(--color-black); border-color:var(--color-bronze);}
.btn-solid::before{background:linear-gradient(105deg, transparent, rgba(255,255,255,.35), transparent);}
.btn-solid:hover{color:var(--ink);}
.hero .btn-solid{background:var(--color-bronze); color:var(--color-black); border-color:var(--color-bronze); box-shadow:0 18px 34px rgba(0,0,0,.28);}
.hero .btn-solid::before{background:linear-gradient(90deg, rgba(195,167,125,.18), rgba(255,255,255,.24), rgba(195,167,125,.18));}
.hero .btn-solid:hover{color:var(--color-black); background:var(--color-bronze-soft);}
.hero .btn-ghost{color:var(--color-ivory); border-color:rgba(195,167,125,.55); background:transparent;}
.hero .btn-ghost::before{background:#0A0A0A;}
.hero .btn-ghost:hover{color:var(--pearl);}
.btn-arrow{transition:transform .4s var(--ease);}
.btn:hover .btn-arrow{transform:translate(4px,-4px);}

.section{padding:130px 0;}
@media(max-width:768px){.section{padding:80px 0;}}
.bg-black{background:var(--black);}
.bg-charcoal{background:var(--charcoal);}
.bg-graphite{background:var(--graphite);}
.bg-pearl{background:var(--pearl); color:var(--ink);}
.bg-pearl .eyebrow{color:var(--gold-dark);}
.bg-pearl .metallic-text{color:var(--color-bronze);}
.bg-pearl h1,.bg-pearl h2,.bg-pearl h3,.bg-pearl h4{color:var(--ink);}
.bg-pearl p{color:#4B4B4B;}
.bg-pearl em{color:var(--gold-dark);}

.reveal{opacity:0; transform:translateY(36px); transition:opacity 1s var(--ease), transform 1s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal-stagger.in > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in > *:nth-child(1){transition-delay:.05s;}
.reveal-stagger.in > *:nth-child(2){transition-delay:.15s;}
.reveal-stagger.in > *:nth-child(3){transition-delay:.25s;}
.reveal-stagger.in > *:nth-child(4){transition-delay:.35s;}
.reveal-stagger.in > *:nth-child(5){transition-delay:.45s;}

.media-frame{position:relative; overflow:hidden; background:linear-gradient(135deg,var(--graphite),var(--soft-charcoal));}
.media-frame img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.4s var(--ease); }
.media-frame:hover img{transform:scale(1.06);}
.media-frame .tag{position:absolute; left:18px; bottom:18px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--pearl); background:rgba(7,7,7,.55); padding:8px 12px; border:1px solid rgba(244,242,236,.25); z-index:2;}

/* ---------- header ---------- */
header.site-header{
  position:fixed;
  top:0;
  left:0;
  right:auto;
  z-index:1000;
  width:100%;
  height:84px;
  padding:0;
  transform:none;
  background:var(--color-black);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border:0;
  border-bottom:1px solid var(--border-dark);
  border-radius:0;
  box-shadow:0 10px 34px rgba(0,0,0,.20);
  transition:top .5s var(--ease), left .5s var(--ease), width .5s var(--ease), height .5s var(--ease), transform .5s var(--ease), background .5s var(--ease), border-radius .5s var(--ease), border-color .5s var(--ease), box-shadow .5s var(--ease);
}
header.site-header.scrolled{
  top:18px;
  left:50%;
  width:min(1120px, calc(100% - 40px));
  height:64px;
  transform:translateX(-50%);
  background:rgba(10,10,10,.78);
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  border:1px solid var(--border-dark);
  border-radius:22px;
  box-shadow:0 12px 40px rgba(0,0,0,.22);
}
.header-inner{
  width:min(1280px, calc(100% - 64px));
  max-width:1280px;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0;
}
header.site-header.scrolled .header-inner{width:calc(100% - 36px); gap:20px;}
.logo{display:flex; flex-direction:column; line-height:1; cursor:pointer;}
.logo .kv{font-family:var(--serif); font-size:26px; letter-spacing:.06em; font-weight:600; color:var(--pearl);}
.logo .mh{font-family:var(--sans); font-size:9.5px; letter-spacing:.42em; color:var(--metallic); margin-top:5px;}
nav.desktop-nav{display:flex; align-items:center; gap:32px;}
nav.desktop-nav ul{list-style:none; display:flex; gap:32px; margin:0; padding:0; align-items:center;}
header.site-header.scrolled nav.desktop-nav ul{gap:28px;}
nav.desktop-nav li{position:relative; display:flex; align-items:center;}
.nav-link{display:flex; align-items:center; font-size:12.5px; line-height:1; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--color-ivory); padding:6px 0; position:relative;}
.nav-link::after{content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--champagne); transition:width .4s var(--ease);}
.nav-link:hover::after, .nav-link.active::after{width:100%;}
.nav-link:hover, .nav-link.active{color:var(--color-bronze);}
header.site-header.scrolled .nav-link{color:var(--color-ivory);}
header.site-header.scrolled .nav-link:hover,
header.site-header.scrolled .nav-link.active{color:var(--color-bronze);}
header.site-header.scrolled .logo-row .logo-text .kv{color:var(--color-ivory);}
header.site-header.scrolled .logo-row .logo-text .mh{color:var(--color-bronze);}
header.site-header.scrolled .burger span{background:var(--color-ivory);}
header.site-header .header-cta .btn-solid,
header.site-header.scrolled .btn-solid{
  isolation:isolate;
  overflow:hidden;
  height:48px;
  padding:0 28px;
  border-radius:15px;
  background:var(--color-bronze);
  border-color:rgba(167,134,90,.9);
  color:var(--color-black);
  box-shadow:
    0 14px 36px rgba(167,134,90,.20),
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(85,55,16,.2);
  transform:translateY(0);
  animation:headerCtaGlow 3.8s ease-in-out infinite;
}
header.site-header .header-cta .btn-solid::before,
header.site-header.scrolled .btn-solid::before{
  background:linear-gradient(105deg, transparent 0%, rgba(255,255,255,.48) 42%, transparent 72%);
  width:46%;
  inset:-10% auto -10% -62%;
  transform:skewX(-18deg);
  transition:left .7s var(--ease), transform .7s var(--ease);
}
header.site-header .header-cta .btn-solid::after,
header.site-header.scrolled .btn-solid::after{
  content:"";
  position:absolute;
  inset:1px;
  z-index:1;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  pointer-events:none;
}
header.site-header .header-cta .btn-solid span,
header.site-header.scrolled .btn-solid span{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--color-black);
  text-shadow:none;
}
header.site-header .header-cta .btn-solid span::after,
header.site-header.scrolled .btn-solid span::after{
  content:"";
  width:0;
  height:1px;
  margin-left:0;
  background:var(--color-black);
  transition:width .38s var(--ease), margin-left .38s var(--ease), transform .38s var(--ease);
}
header.site-header .header-cta .btn-solid:hover,
header.site-header.scrolled .btn-solid:hover{
  color:var(--color-black);
  border-color:var(--color-bronze-soft);
  transform:translateY(-3px);
  box-shadow:
    0 20px 44px rgba(167,134,90,.28),
    0 0 28px rgba(167,134,90,.12),
    inset 0 1px 0 rgba(255,255,255,.5);
}
header.site-header .header-cta .btn-solid:hover::before,
header.site-header.scrolled .btn-solid:hover::before{
  left:120%;
}
header.site-header .header-cta .btn-solid:hover span::after,
header.site-header.scrolled .btn-solid:hover span::after{
  width:18px;
  margin-left:2px;
}
@keyframes headerCtaGlow{
  0%,100%{box-shadow:0 14px 36px rgba(167,134,90,.20), inset 0 1px 0 rgba(255,255,255,.28), inset 0 -1px 0 rgba(85,55,16,.16);}
  50%{box-shadow:0 18px 44px rgba(167,134,90,.28), 0 0 24px rgba(167,134,90,.12), inset 0 1px 0 rgba(255,255,255,.34), inset 0 -1px 0 rgba(85,55,16,.12);}
}
header.site-header.scrolled .header-cta .btn-solid,
header.site-header.scrolled .btn-solid{
  height:42px;
  padding:0 22px;
}
.has-drop{padding-bottom:14px;}
.dropdown{
  position:absolute; top:calc(100% + 4px); left:50%; transform:translateX(-50%) translateY(6px);
  background:var(--charcoal); border:1px solid rgba(196,170,124,.2); min-width:250px; padding:10px 0;
  opacity:0; visibility:hidden; transition:all .35s var(--ease); box-shadow:0 24px 50px rgba(0,0,0,.5);
}
.has-drop:hover .dropdown{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.dropdown a{display:block; padding:12px 22px; font-size:12.5px; letter-spacing:.08em; color:var(--platinum); border-left:1px solid transparent;}
.dropdown a:hover{color:var(--champagne); border-left:1px solid var(--champagne); background:rgba(196,170,124,.06);}
.header-cta{display:flex; align-items:center; gap:22px;}
.burger{display:none; flex-direction:column; gap:5px; width:30px; background:none; border:none; padding:6px 0;}
.burger span{width:100%; height:1px; background:var(--pearl); transition:all .4s var(--ease);}
@media(max-width:980px){
  nav.desktop-nav{display:none;}
  .header-cta .btn{display:none;}
  .burger{display:flex;}
}

/* mobile menu */
.mobile-menu{
  position:fixed; inset:0; background:linear-gradient(145deg, #111111 0%, #0A0A0A 48%, #181818 100%); color:var(--pearl); z-index:1100; display:flex; flex-direction:column;
  padding:26px 22px; transform:translateY(-100%); transition:transform .6s var(--ease);
  overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu-top{display:flex; justify-content:space-between; align-items:center;}
.mobile-menu nav{margin-top:60px; display:flex; flex-direction:column; gap:6px;}
.mobile-menu nav a{font-family:var(--serif); font-size:38px; padding:14px 0; border-bottom:1px solid rgba(167,134,90,.14); color:var(--pearl);}
.mobile-menu nav a.active{color:var(--color-bronze);}
.mobile-menu .sub-links{display:flex; flex-direction:column; margin-top:8px; padding-left:14px; border-left:1px solid rgba(167,134,90,.28);}
.mobile-menu .sub-links a{font-family:var(--sans); font-size:13px; letter-spacing:.1em; text-transform:uppercase; padding:8px 0; border-bottom:none; color:var(--metallic);}
.mobile-footer{margin-top:auto; padding-top:30px; border-top:1px solid rgba(167,134,90,.14); display:flex; flex-direction:column; gap:8px; font-size:13px; color:var(--platinum);}
.close-btn{background:none;border:none;color:var(--pearl);font-size:14px;letter-spacing:.2em;text-transform:uppercase;}

/* ---------- hero ---------- */
.hero{position:relative; min-height:100vh; display:flex; align-items:flex-end; overflow:hidden;}
.hero-bg{
  position:absolute; inset:0; z-index:0;
  background:
    linear-gradient(90deg, rgba(10,10,10,.88) 0%, rgba(10,10,10,.72) 42%, rgba(10,10,10,.42) 72%, rgba(10,10,10,.78) 100%),
    url("../images/hero-lens-bg.png") center center/cover no-repeat;
}
.hero-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,10,.18) 0%, rgba(10,10,10,0) 34%, rgba(10,10,10,.68) 100%);}
.hero-bg .media-frame{display:none;}
.hero-bg img{width:100%; height:100%; object-fit:cover; opacity:1; animation:heroscale 18s ease-in-out infinite alternate;}
@keyframes heroscale{from{transform:scale(1);} to{transform:scale(1.09);}}
.hero-overlay{position:absolute; inset:0; background:
  radial-gradient(circle at 76% 60%, rgba(167,134,90,.12) 0%, rgba(167,134,90,0) 28%),
  linear-gradient(90deg, rgba(10,10,10,.78) 0%, rgba(10,10,10,.58) 46%, rgba(10,10,10,.24) 100%);
  z-index:1; pointer-events:none;}
.hero-content{position:relative; z-index:2; width:100%; padding-bottom:90px;}
.hero .eyebrow{color:var(--color-bronze-soft); text-shadow:none;}
.hero .eyebrow::before{background:var(--champagne);}
.hero h1{font-size:clamp(48px,8vw,108px); line-height:.98; letter-spacing:-.01em; color:var(--color-ivory); margin:22px 0 26px; text-shadow:0 18px 50px rgba(0,0,0,.42);}
.hero h1 i{
  font-style:italic;
  color:var(--champagne);
  text-shadow:0 1px 0 rgba(255,255,255,.15), 0 16px 34px rgba(167,134,90,.18);
}
.hero p.desc{max-width:560px; font-size:17px; color:var(--color-muted); margin-bottom:38px;}
.hero-buttons{display:flex; gap:18px; flex-wrap:wrap; margin-bottom:56px;}
.hero-indicators{display:flex; gap:12px; flex-wrap:wrap;}
.hero-indicators span{
  display:inline-flex; align-items:center; padding:11px 20px; border-radius:999px;
  font-size:11px; letter-spacing:.22em; text-transform:uppercase; font-weight:700;
  color:var(--color-ivory); background:rgba(10,10,10,.42);
  border:1px solid var(--border-dark); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  box-shadow:0 10px 26px rgba(10,10,10,.08);
}
.hero-indicators span i{color:var(--gold-dark); font-style:normal; margin-right:8px;}
.scroll-cue{position:absolute; right:40px; bottom:40px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:10px; color:var(--color-bronze-soft); font-size:10px; letter-spacing:.3em; font-weight:700; text-shadow:0 1px 12px rgba(10,10,10,.34);}
.scroll-cue .line{width:1px; height:50px; background:linear-gradient(var(--color-bronze-soft), rgba(195,167,125,0)); animation:cue 2s ease-in-out infinite;}
@keyframes cue{0%{opacity:.2;}50%{opacity:1;}100%{opacity:.2;}}
@media(max-width:768px){.scroll-cue{display:none;}}
@media(max-width:520px){
  .hero{min-height:calc(100vh - 0px);}
  .hero-content{padding-bottom:44px;}
  .hero h1{font-size:clamp(42px,13.5vw,58px); line-height:.98; margin:18px 0 22px;}
  .hero p.desc{font-size:16px; margin-bottom:28px;}
  .hero-buttons{margin-bottom:34px;}
  .hero-buttons .btn{width:100%; justify-content:center;}
  .hero-indicators{gap:10px; border-top:0;}
  .hero-indicators span{margin-right:0; padding:12px 18px; border-radius:999px; background:rgba(10,10,10,.52); color:var(--color-ivory);}
  .hero-indicators span i{color:var(--gold-dark);}
}

/* ---------- marquee ---------- */
.marquee-wrap{overflow:hidden; border-top:1px solid rgba(196,170,124,.2); border-bottom:1px solid rgba(196,170,124,.2); padding:24px 0; background:var(--charcoal);}
.marquee-track{display:flex; width:max-content; animation:marquee 34s linear infinite;}
.marquee-track span{font-family:var(--serif); font-style:italic; font-size:28px; color:var(--platinum); padding:0 30px; white-space:nowrap; display:flex; align-items:center; gap:30px;}
.marquee-track span::after{content:"•"; color:var(--champagne); font-style:normal;}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* ---------- brand statement ---------- */
.statement{text-align:center;}
.statement h2{font-size:clamp(34px,6.4vw,84px); line-height:1.05;}
.statement h2 span{display:block;}
.statement h2 .light{font-style:italic; color:var(--champagne);}

/* ---------- about preview / asymmetric ---------- */
.about-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:center;}
@media(max-width:900px){.about-grid{grid-template-columns:1fr; gap:40px;}}
.about-grid h2{font-size:clamp(36px,5vw,58px); margin:18px 0 28px;}
.about-grid p{color:var(--platinum); margin-bottom:18px; max-width:560px;}
.about-media{position:relative; aspect-ratio:4/5; }
.about-service-collage{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  height:100%;
  min-height:420px;
  overflow:hidden;
}
.about-service-collage img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.92) contrast(1.04);
}
.about-service-collage img:first-child,
.about-service-collage img:nth-child(4){transform:scale(1.08) translateY(18px);}
.about-service-collage img:nth-child(2),
.about-service-collage img:nth-child(3){transform:scale(1.08) translateY(-12px);}
.num-badge{position:absolute; bottom:-26px; left:-26px; background:var(--pearl); color:var(--black); padding:20px 24px; font-family:var(--serif); font-size:14px; z-index:3; max-width:210px; line-height:1.3; box-shadow:0 20px 40px rgba(0,0,0,.4);}
@media(max-width:600px){
  .about-service-collage{min-height:320px;}
  .num-badge{display:none;}
}

/* ---------- services sticky panels ---------- */
.service-panel{display:grid; grid-template-columns:1fr 1fr; min-height:80vh; border-top:1px solid rgba(244,242,236,.08);}
.service-panel:last-child{border-bottom:1px solid rgba(244,242,236,.08);}
.service-panel .sp-text{display:flex; flex-direction:column; justify-content:center; padding:70px 60px;}
.service-panel .sp-media{position:relative; overflow:hidden;}
.service-panel .sp-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform 1.2s var(--ease);}
.service-panel:hover .sp-media img{transform:scale(1.05);}
.sp-index{font-family:var(--serif); font-size:15px; color:var(--champagne); margin-bottom:20px;}
.service-panel h3{font-size:clamp(30px,3.6vw,48px); margin-bottom:18px;}
.service-panel p.tag{color:var(--platinum); font-size:17px; max-width:400px; margin-bottom:30px;}
.sp-link{display:inline-flex; align-items:center; gap:10px; font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color:var(--pearl); border-bottom:1px solid var(--champagne); padding-bottom:6px; width:fit-content;}
@media(max-width:860px){.service-panel{grid-template-columns:1fr; min-height:auto;}.service-panel .sp-media{height:280px;} .service-panel:nth-child(even){display:flex; flex-direction:column-reverse;}}

/* ---------- services showcase upgrade ---------- */
section.bg-black:has(.service-panel){
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 12%, rgba(167,134,90,.14), transparent 28%),
    linear-gradient(135deg, #0A0A0A 0%, #111111 46%, #181818 100%);
}
section.bg-black:has(.service-panel)::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(167,134,90,.08) 1px, transparent 1px),
    linear-gradient(180deg, rgba(167,134,90,.06) 1px, transparent 1px);
  background-size:86px 86px;
  mask-image:linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
}
section.bg-black:has(.service-panel) > .wrap{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
  text-align:center;
}
section.bg-black:has(.service-panel) > .wrap .eyebrow{
  order:1;
  justify-content:center;
  margin:0;
  white-space:nowrap;
}
section.bg-black:has(.service-panel) > .wrap h2{
  order:2;
  font-size:clamp(38px,5.8vw,76px) !important;
  max-width:620px;
  margin:0 !important;
  text-align:center;
  line-height:1.06;
}
section.bg-black:has(.service-panel) > .wrap::after{
  order:4;
  content:"Content / Social / Digital / Events";
  display:block;
  max-width:420px;
  color:var(--color-muted);
  font-size:12px;
  line-height:1.7;
  letter-spacing:.22em;
  text-transform:uppercase;
  border-left:0;
  padding:18px 0 0;
  margin:0;
  position:relative;
}
section.bg-black:has(.service-panel) > .wrap::before{
  content:"";
  order:3;
  width:86px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(167,134,90,.9), transparent);
}
section.bg-black:has(.service-panel) > div[style]{
  position:relative;
  z-index:2;
  width:min(1360px, calc(100% - 80px));
  margin:56px auto 0 !important;
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
}
.service-panel{
  min-height:480px;
  display:block;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(167,134,90,.24);
  background:#111111;
  isolation:isolate;
  box-shadow:0 24px 54px rgba(0,0,0,.24);
}
.service-panel:nth-child(1),
.service-panel:nth-child(4){transform:none;}
.service-panel::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:
    linear-gradient(180deg, rgba(10,10,10,.08) 0%, rgba(10,10,10,.54) 46%, rgba(10,10,10,.94) 100%),
    linear-gradient(135deg, rgba(167,134,90,.14), transparent 44%);
  transition:opacity .45s var(--ease);
}
.service-panel::after{
  content:"";
  position:absolute;
  inset:16px;
  z-index:3;
  border:1px solid rgba(246,244,238,.16);
  pointer-events:none;
  transition:inset .45s var(--ease), border-color .45s var(--ease);
}
.service-panel .sp-media{
  position:absolute;
  inset:0;
  z-index:1;
}
.service-panel .sp-media .media-frame,
.service-panel .sp-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.service-panel .sp-media img{
  object-fit:cover;
  filter:saturate(.92) contrast(1.06);
}
.service-panel .sp-text{
  position:relative;
  z-index:4;
  min-height:480px;
  justify-content:flex-end;
  padding:30px;
}
.sp-index{
  position:absolute;
  top:32px;
  left:30px;
  margin:0;
  font-size:13px;
  letter-spacing:.22em;
}
.service-panel h3{
  font-size:clamp(28px,2.5vw,42px);
  line-height:1.02;
  text-shadow:0 12px 28px rgba(0,0,0,.36);
}
.service-panel p.tag{
  color:rgba(246,244,238,.86);
  font-size:15.5px;
  margin-bottom:22px;
}
.sp-link{
  color:var(--champagne);
  border-color:rgba(167,134,90,.7);
}
.service-panel:hover img{transform:scale(1.08);}
.service-panel:hover::after{
  inset:10px;
  border-color:rgba(167,134,90,.64);
}
@media(max-width:1100px){
  section.bg-black:has(.service-panel) > .wrap{
    gap:16px;
  }
  section.bg-black:has(.service-panel) > .wrap .eyebrow{margin:0;}
  section.bg-black:has(.service-panel) > .wrap::after{margin:0; max-width:340px;}
  section.bg-black:has(.service-panel) > div[style]{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .service-panel:nth-child(1),
  .service-panel:nth-child(4){transform:none;}
}
@media(max-width:720px){
  section.bg-black:has(.service-panel) > .wrap{display:block;}
  section.bg-black:has(.service-panel) > .wrap::after{display:none;}
  section.bg-black:has(.service-panel) > div[style]{
    width:calc(100% - 44px);
    grid-template-columns:1fr;
  }
  .service-panel,
  .service-panel .sp-text{min-height:380px;}
}

/* ---------- portfolio grid (aligned premium) ---------- */
.work-heading{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:18px;
  width:100%;
  max-width:820px;
  margin:0 auto 58px;
}
.work-heading .eyebrow{
  justify-content:center;
}
.work-heading h2{
  max-width:760px;
  font-size:clamp(42px,5.8vw,76px);
  line-height:1.02;
  color:var(--pearl);
  margin:0;
}
.work-heading h2 em{
  display:inline;
  color:var(--champagne);
}
.work-heading::after{
  content:"";
  width:88px;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(167,134,90,.92), transparent);
}
.portfolio-filters{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:54px;}
.pf-btn{padding:12px 22px; border:1px solid rgba(244,242,236,.22); border-radius:100px; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--platinum); background:transparent; transition:all .35s var(--ease);}
.pf-btn:hover{border-color:rgba(167,134,90,.6); color:var(--champagne); transform:translateY(-2px);}
.pf-btn.active{border-color:var(--champagne); color:#0A0A0A; background:linear-gradient(135deg, var(--gold-light), var(--champagne)); font-weight:700; box-shadow:0 10px 26px rgba(167,134,90,.22);}
.masonry{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:22px; width:min(100%, 1120px); margin-left:auto; margin-right:auto;}
@media(max-width:980px){.masonry{grid-template-columns:repeat(2, minmax(0, 1fr)); width:min(100%, 760px);}}
@media(max-width:600px){.masonry{grid-template-columns:1fr; gap:16px; width:100%;}}
.mason-item{position:relative; overflow:hidden; cursor:pointer; aspect-ratio:4/5; background:var(--graphite); border:1px solid rgba(244,242,236,.1); transition:border-color .45s var(--ease), transform .45s var(--ease), box-shadow .45s var(--ease);}
.mason-item:hover{border-color:rgba(167,134,90,.5); transform:translateY(-6px); box-shadow:0 30px 60px rgba(0,0,0,.42);}
.mason-item::after{content:""; position:absolute; inset:14px; border:1px solid rgba(246,244,236,.16); pointer-events:none; z-index:2; opacity:0; transition:opacity .45s var(--ease), inset .45s var(--ease);}
.mason-item:hover::after{opacity:1; inset:12px; border-color:rgba(167,134,90,.4);}
.mason-item img{width:100%; height:100%; display:block; object-fit:cover !important; aspect-ratio:auto !important; filter:saturate(.94) contrast(1.05); transition:transform 1.1s var(--ease), filter .6s var(--ease);}
.mason-item:hover img{transform:scale(1.07); filter:saturate(1.06) contrast(1.08);}
.mason-overlay{position:absolute; inset:0; z-index:3; background:linear-gradient(180deg, rgba(7,7,7,.04) 0%, rgba(7,7,7,.44) 44%, rgba(7,7,7,.95) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:24px; opacity:0; transition:opacity .45s var(--ease);}
.mason-item:hover .mason-overlay{opacity:1;}
.mason-overlay .cat{font-family:var(--serif); font-size:clamp(24px, 2.4vw, 34px); line-height:1; letter-spacing:0; text-transform:none; color:var(--color-ivory); margin-bottom:10px; text-shadow:0 10px 28px rgba(0,0,0,.62);}
.mason-overlay p{max-width:29ch; color:rgba(243,239,231,.82); font-size:13px; line-height:1.55; margin:0 0 16px; transform:translateY(10px); opacity:0; transition:opacity .45s var(--ease), transform .45s var(--ease);}
.mason-item:hover .mason-overlay p{opacity:1; transform:translateY(0);}

/* ---------- founder ---------- */
.founder-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:80px; align-items:center;}
@media(max-width:900px){.founder-grid{grid-template-columns:1fr;}}
.founder-media{aspect-ratio:3/4; position:relative;}
.founder-media .media-frame{height:100%;}
.founder-media img{object-position:center 28%;}
.founder-grid h2{font-size:clamp(38px,5.4vw,64px); margin:16px 0 10px;}
.founder-grid .role{font-family:var(--serif); font-style:italic; color:var(--champagne); font-size:20px; margin-bottom:24px; display:block;}
.founder-grid p{color:var(--platinum); margin-bottom:16px; max-width:540px;}

.founder-spotlight{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 16%, rgba(167,134,90,.14), transparent 28%),
    linear-gradient(135deg, #0A0A0A 0%, #111111 48%, #181818 100%);
}
.founder-spotlight::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(167,134,90,.06), transparent 32%, transparent 68%, rgba(167,134,90,.04));
}
.founder-spotlight .founder-grid{
  position:relative;
  z-index:2;
  grid-template-columns:minmax(360px,.92fr) 1fr;
  gap:86px;
}
.founder-spotlight .founder-media{
  aspect-ratio:4/5;
  min-height:620px;
  padding:18px;
  border:1px solid rgba(167,134,90,.28);
  background:rgba(246,244,238,.05);
  box-shadow:0 34px 80px rgba(0,0,0,.34);
}
.founder-spotlight .founder-media::before{
  content:"";
  position:absolute;
  inset:-28px auto auto -28px;
  width:42%;
  aspect-ratio:1;
  border-top:1px solid rgba(167,134,90,.55);
  border-left:1px solid rgba(167,134,90,.55);
  pointer-events:none;
}
.founder-spotlight .founder-media::after{
  content:"Founder / Creative Director";
  position:absolute;
  left:36px;
  bottom:36px;
  z-index:3;
  padding:10px 14px;
  background:var(--glass-dark);
  color:var(--champagne);
  border:1px solid rgba(167,134,90,.36);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.founder-spotlight .founder-media .media-frame{
  box-shadow:inset 0 0 0 1px rgba(246,244,238,.12);
}
.founder-spotlight .founder-media .media-frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(10,10,10,.42) 100%);
  z-index:2;
  pointer-events:none;
}
.founder-spotlight .founder-media img{
  object-position:center 22%;
  filter:saturate(.92) contrast(1.04);
}
.founder-spotlight .reveal:last-child{
  max-width:620px;
}
.founder-spotlight h2{
  font-size:clamp(56px,6.8vw,98px);
  line-height:.94;
}
.founder-spotlight p{
  color:rgba(246,244,238,.82);
  font-size:16.5px;
}
@media(max-width:980px){
  .founder-spotlight .founder-grid{grid-template-columns:1fr; gap:44px;}
  .founder-spotlight .founder-media{min-height:auto;}
}
@media(max-width:640px){
  .founder-spotlight .founder-media{padding:12px; aspect-ratio:3/4;}
  .founder-spotlight .founder-media::after{left:24px; bottom:24px;}
}

/* ---------- why kv numbered ---------- */
.why-list{border-top:1px solid rgba(244,242,236,.1);}
.why-item{display:grid; grid-template-columns:120px 1fr; gap:30px; padding:44px 0; border-bottom:1px solid rgba(244,242,236,.1); position:relative; transition:background .4s;}
.why-item:hover{background:rgba(196,170,124,.03);}
.why-num{font-family:var(--serif); font-size:60px; color:transparent; -webkit-text-stroke:1px var(--metallic); line-height:1;}
.why-item:hover .why-num{-webkit-text-stroke:1px var(--champagne);}
.why-item h3{font-size:24px; margin-bottom:10px;}
.why-item p{color:var(--platinum); max-width:640px;}
@media(max-width:640px){.why-item{grid-template-columns:1fr; gap:10px;}.why-num{font-size:38px;}}

.why-premium{
  position:relative;
  overflow:hidden;
  background:var(--color-ivory);
  color:var(--color-dark-text);
}
.why-premium::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(243,239,231,.94) 0%, rgba(231,224,213,.72) 100%);
}
.why-premium::after{
  content:"";
  position:absolute;
  right:9vw;
  bottom:-150px;
  width:430px;
  height:430px;
  border:1px solid rgba(167,134,90,.18);
  border-radius:50%;
  pointer-events:none;
  box-shadow:0 0 90px rgba(167,134,90,.08), inset 0 0 70px rgba(167,134,90,.05);
}
.why-premium .wrap{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1fr;
  gap:48px;
  align-items:start;
  max-width:920px;
  margin:0 auto;
  text-align:center;
}
.why-premium .wrap > .reveal:first-child{
  position:relative;
  top:auto;
  margin-bottom:0 !important;
  padding:0 0 24px;
  border-top:0;
  border-bottom:1px solid var(--border-light);
}
.why-premium .wrap > .reveal:first-child h2{
  font-size:clamp(42px,5.6vw,78px) !important;
  line-height:.98;
  max-width:720px;
  margin:0 auto;
  color:var(--color-dark-text);
}
.why-premium .wrap > .reveal:first-child .eyebrow{justify-content:center;}
.why-premium .wp-head::after{
  content:"Built for brands that need content with taste, clarity, and a real plan behind it.";
  display:block;
  max-width:560px;
  margin:28px auto 0;
  color:#4B4B4B;
  font-family:var(--sans);
  font-size:16px;
  line-height:1.75;
}
.why-premium .eyebrow{color:var(--champagne);}
.why-premium .eyebrow::before{background:var(--champagne);}
.why-premium .why-list{
  border:0;
  display:grid;
  gap:0;
  position:relative;
  max-width:820px;
  margin:0 auto;
  text-align:left;
}
.why-premium .why-item:nth-child(even){margin-left:0;}
.why-premium .why-item{
  grid-template-columns:88px 1fr;
  gap:28px;
  padding:32px 0;
  border:0;
  border-top:1px solid var(--border-light);
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  transition:transform .45s var(--ease), border-color .45s var(--ease);
}
.why-premium .why-item:last-child{border-bottom:1px solid var(--border-light);}
.why-premium .why-item:hover{
  transform:translateX(0);
  background:rgba(167,134,90,.06);
  border-color:rgba(167,134,90,.28);
}
.why-premium .why-num{
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  font-size:26px;
  color:var(--color-bronze);
  -webkit-text-stroke:0;
  background:rgba(167,134,90,.08);
  border:1px solid rgba(167,134,90,.28);
  border-radius:50%;
  box-shadow:none;
}
.why-premium .why-item:hover .why-num{
  -webkit-text-stroke:0;
  color:var(--black);
  background:var(--champagne);
  border-color:var(--champagne);
  box-shadow:0 0 0 1px rgba(10,10,10,.08);
}
.why-premium .why-item h3{
  font-size:clamp(23px,2.1vw,32px);
  color:var(--color-dark-text);
  margin-bottom:8px;
}
.why-premium .why-item p{
  color:#4B4B4B;
  max-width:720px;
  font-size:15.5px;
  line-height:1.7;
}
@media(max-width:980px){
  .why-premium .wrap{grid-template-columns:1fr; gap:34px; align-items:start;}
  .why-premium .wrap > .reveal:first-child{position:relative; top:auto; padding:0 0 34px;}
  .why-premium .why-item:nth-child(even){margin-left:0;}
}
@media(max-width:640px){
  .why-premium .why-item{grid-template-columns:1fr; padding:28px 0;}
  .why-premium .why-num{width:52px; height:52px; font-size:22px;}
}

/* ---------- who we work with ---------- */
.who-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 16% 18%, rgba(167,134,90,.14), transparent 24%),
    radial-gradient(circle at 86% 70%, rgba(167,134,90,.08), transparent 28%),
    linear-gradient(135deg, #0A0A0A 0%, #111111 52%, #181818 100%);
}
.who-section .wrap > .reveal:first-child{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:18px;
  margin-bottom:46px !important;
}
.who-section .wrap > .reveal:first-child .eyebrow{justify-content:center;}
.who-section .wrap > .reveal:first-child::after{
  content:"Launches, local brands, personal brands, events, and growing teams. Each card reveals as you scroll.";
  max-width:560px;
  color:rgba(245,240,230,.72);
  font-size:16px;
  line-height:1.7;
  padding-bottom:0;
  margin:0 auto;
}
.who-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(167,134,90,.04), transparent 42%, rgba(167,134,90,.05));
}
.who-section .wrap{position:relative; z-index:2;}
.who-section h2{
  font-size:clamp(38px,5.8vw,74px) !important;
  line-height:.98;
  margin-top:18px !important;
}
.who-section h2 em{color:var(--champagne);}
.who-list{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
  border:0;
  perspective:1200px;
  width:min(100%, 1120px);
  margin:0 auto;
}
.who-item{
  position:relative;
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-start;
  padding:24px;
  overflow:hidden;
  border:1px solid rgba(244,242,236,.14);
  background:linear-gradient(145deg, rgba(244,242,236,.11), rgba(244,242,236,.035));
  box-shadow:0 22px 54px rgba(4,9,18,.16);
  transform-style:preserve-3d;
  transition:transform .55s var(--ease), border-color .55s var(--ease), background .55s var(--ease), box-shadow .55s var(--ease);
}
.who-item:focus-visible{
  outline:2px solid var(--champagne);
  outline-offset:4px;
}
.who-item::before{
  content:"";
  position:absolute;
  inset:-1px;
  opacity:0;
  background:linear-gradient(135deg, rgba(167,134,90,.28), transparent 48%, rgba(244,242,236,.12));
  transition:opacity .55s var(--ease);
}
.who-item::after{
  content:"";
  position:absolute;
  right:-34px;
  bottom:-34px;
  width:112px;
  height:112px;
  border:1px solid rgba(167,134,90,.2);
  border-radius:50%;
  transition:transform .55s var(--ease), border-color .55s var(--ease);
}
.who-item span.name{
  position:relative;
  z-index:2;
  font-family:var(--serif);
  font-size:clamp(21px,2.1vw,30px);
  line-height:1.12;
  color:var(--pearl);
  transition:color .45s var(--ease), transform .45s var(--ease);
}
.who-item span.name::before{
  display:block;
  margin-bottom:28px;
  font-family:var(--sans);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--color-bronze-soft);
  opacity:.9;
}
.who-item span.name::after{
  display:block;
  margin-top:18px;
  font-family:var(--sans);
  font-size:14px;
  line-height:1.65;
  color:rgba(244,242,236,.66);
}
.who-item:nth-child(1) span.name::before{content:"Local";}
.who-item:nth-child(2) span.name::before{content:"Hospitality";}
.who-item:nth-child(3) span.name::before{content:"Wellness";}
.who-item:nth-child(4) span.name::before{content:"Retail";}
.who-item:nth-child(5) span.name::before{content:"Expertise";}
.who-item:nth-child(6) span.name::before{content:"Founder-led";}
.who-item:nth-child(7) span.name::before{content:"Identity";}
.who-item:nth-child(8) span.name::before{content:"Events";}
.who-item:nth-child(9) span.name::before{content:"Culture";}
.who-item:nth-child(10) span.name::before{content:"Performance";}
.who-item:nth-child(11) span.name::before{content:"Corporate";}
.who-item:nth-child(12) span.name::before{content:"Community";}
.who-item:nth-child(13) span.name::before{content:"Growth";}
.who-item:nth-child(1) span.name::after{content:"Practical content that helps nearby customers notice, trust, and remember you.";}
.who-item:nth-child(2) span.name::after{content:"Menus, atmosphere, and service moments turned into craveable social stories.";}
.who-item:nth-child(3) span.name::after{content:"Soft, polished visuals that communicate care, transformation, and confidence.";}
.who-item:nth-child(4) span.name::after{content:"Product-led content with lifestyle context, campaigns, and clear reasons to visit.";}
.who-item:nth-child(5) span.name::after{content:"Trust-building content that makes expertise clear, human, and approachable.";}
.who-item:nth-child(6) span.name::after{content:"Founder-led storytelling that builds authority without losing personality.";}
.who-item:nth-child(7) span.name::after{content:"Content systems for visibility, credibility, and a recognizable point of view.";}
.who-item:nth-child(8) span.name::after{content:"Before, during, and after-event media that extends the life of every gathering.";}
.who-item:nth-child(9) span.name::after{content:"Respectful coverage that captures community, tradition, performance, and belonging.";}
.who-item:nth-child(10) span.name::after{content:"Visual storytelling for releases, shows, profiles, and moments that build a following.";}
.who-item:nth-child(11) span.name::after{content:"Clean event coverage for teams, stakeholders, recaps, and future promotion.";}
.who-item:nth-child(12) span.name::after{content:"Energy, people, and purpose captured with warmth and clear storytelling.";}
.who-item:nth-child(13) span.name::after{content:"Launch-ready creative support for brands still finding their loyal audience.";}
.who-item .arrow{
  position:relative;
  z-index:2;
  align-self:flex-end;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  color:var(--color-black);
  background:var(--color-bronze);
  border-radius:50%;
  opacity:0;
  transform:translateY(12px) rotate(-20deg);
  transition:opacity .45s var(--ease), transform .45s var(--ease);
}
.who-item:hover{
  transform:translateY(-10px) rotateX(4deg) rotateY(-4deg);
  border-color:rgba(167,134,90,.55);
  background:linear-gradient(145deg, rgba(244,242,236,.18), rgba(244,242,236,.055));
  box-shadow:0 30px 70px rgba(4,9,18,.28);
}
.who-item:hover::before{opacity:1;}
.who-item:hover::after{transform:scale(1.25); border-color:rgba(167,134,90,.44);}
.who-item:hover span.name{color:var(--color-bronze-soft); transform:translateY(-4px);}
.who-item:hover .arrow{opacity:1; transform:translateY(0) rotate(0);}
@media(max-width:1100px){.who-list{grid-template-columns:repeat(3, minmax(0,1fr));}}
@media(max-width:780px){
  .who-section .wrap > .reveal:first-child{grid-template-columns:1fr; gap:18px;}
  .who-list{grid-template-columns:repeat(2, minmax(0,1fr));}
}
@media(max-width:520px){.who-list{grid-template-columns:1fr;}.who-item{min-height:170px;}}

/* ---------- philosophy ---------- */
.philosophy{position:relative; min-height:70vh; display:flex; align-items:center;}
.philosophy .media-frame{position:absolute; inset:0; z-index:0;}
.philosophy .media-frame::after{content:""; position:absolute; inset:0; background:rgba(7,7,7,.72);}
.philosophy .content{position:relative; z-index:2; text-align:center; max-width:820px; margin:0 auto;}
.philosophy h2{font-size:clamp(32px,5.6vw,64px); margin-bottom:26px;}
.philosophy p{color:var(--platinum); font-size:18px; max-width:600px; margin:0 auto;}

/* ---------- instagram ---------- */
.insta-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; width:min(100%, 1120px); margin:0 auto;}
@media(max-width:768px){.insta-grid{grid-template-columns:repeat(2,1fr);}}
.insta-item{aspect-ratio:9/16; position:relative; overflow:hidden;}
.insta-item img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease);}
.insta-item:hover img{transform:scale(1.1);}

/* ---------- process ---------- */
.process-row{display:flex; overflow-x:auto; gap:0; border-top:1px solid rgba(244,242,236,.1); border-bottom:1px solid rgba(244,242,236,.1);}
.process-step{flex:1; min-width:190px; padding:34px 26px; border-right:1px solid rgba(244,242,236,.1);}
.process-step:last-child{border-right:none;}
.process-step .pnum{font-family:var(--serif); color:var(--champagne); font-size:14px; margin-bottom:14px;}
.process-step h4{font-size:19px; margin-bottom:8px;}
.process-step p{font-size:13.5px; color:var(--metallic);}

/* ---------- form ---------- */
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:70px;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.info-block{display:flex; flex-direction:column; gap:26px;}
.info-item{padding:22px 0; border-bottom:1px solid rgba(244,242,236,.1);}
.info-item .lbl{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--metallic); margin-bottom:8px; display:block;}
.info-item a, .info-item span.val{font-family:var(--serif); font-size:22px; color:var(--pearl);}
.info-item a:hover{color:var(--champagne);}
form.inquiry{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field.full{grid-column:1/-1;}
.field label{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--metallic);}
.field input, .field select, .field textarea{
  background:transparent; border:none; border-bottom:1px solid rgba(244,242,236,.25); color:var(--pearl);
  font-family:var(--sans); font-size:15px; padding:12px 2px; outline:none; transition:border-color .3s;
}
.field select{appearance:none; background:transparent;}
.field select option{background:var(--charcoal); color:var(--pearl);}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--champagne);}
.field textarea{resize:vertical; min-height:110px;}
.err-msg{font-size:11.5px; color:#e08a6f; min-height:14px;}
.field.invalid input, .field.invalid select, .field.invalid textarea{border-color:#e08a6f;}
.form-submit{grid-column:1/-1; margin-top:10px; display:flex; align-items:center; gap:20px;}
.form-status{font-size:13px; color:var(--champagne);}

/* ---------- final cta ---------- */
.final-cta{text-align:center;}
.final-cta h2{font-size:clamp(38px,7vw,92px); line-height:1.02; margin-bottom:26px;}
.final-cta p{max-width:560px; margin:0 auto 44px; color:var(--platinum); font-size:17px;}
.final-buttons{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}

/* ---------- footer ---------- */
footer{
  position:relative;
  overflow:hidden;
  background:#0A0A0A;
  border-top:1px solid rgba(167,134,90,.28);
  padding:96px 0 30px;
  isolation:isolate;
}
footer > .wrap{
  width:100%;
  max-width:none;
  padding:0;
}
footer::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(167,134,90,.92), transparent);
}
footer::after{
  content:"KV";
  position:absolute;
  right:-4vw;
  bottom:24px;
  z-index:-1;
  font-family:var(--serif);
  font-size:clamp(160px,22vw,360px);
  line-height:.7;
  color:rgba(246,244,238,.025);
  pointer-events:none;
}
.footer-top{
  position:relative;
  display:grid;
  grid-template-columns:1.35fr .9fr 1fr 1.1fr;
  gap:clamp(34px, 5vw, 82px);
  width:100%;
  padding:58px clamp(24px, 7vw, 132px) 84px;
  border-top:1px solid rgba(244,242,236,.08);
  border-bottom:1px solid rgba(244,242,236,.08);
  background:transparent;
}
.footer-top::before{
  display:none;
}
.footer-top::after{
  content:"";
  position:absolute;
  left:clamp(24px, 7vw, 132px);
  right:clamp(24px, 7vw, 132px);
  bottom:42px;
  height:1px;
  background:linear-gradient(90deg, rgba(167,134,90,.48), transparent);
  opacity:.55;
}
.footer-top > *{
  position:relative;
  z-index:1;
}
.foot-logo{max-width:360px;}
.foot-logo-row{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:26px;
}
.foot-logo-row img{
  height:86px;
  width:86px;
  object-fit:contain;
  padding:7px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(167,134,90,.18), rgba(0,0,0,.12) 70%);
  border:1px solid rgba(167,134,90,.22);
  filter:drop-shadow(0 0 20px rgba(167,134,90,.35)) drop-shadow(0 12px 24px rgba(0,0,0,.45));
}
.foot-logo .kv{
  font-family:var(--serif);
  font-size:52px;
  color:var(--pearl);
  line-height:.88;
  letter-spacing:.02em;
}
.foot-logo .mh{
  font-size:11px;
  letter-spacing:.46em;
  color:var(--champagne);
  margin-top:10px;
  text-transform:uppercase;
}
.foot-statement{
  position:relative;
  font-family:var(--serif);
  font-style:italic;
  font-size:21px;
  line-height:1.55;
  color:rgba(246,244,238,.9);
  margin-top:22px;
  max-width:330px;
  padding-top:24px;
}
.foot-statement::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:92px;
  height:1px;
  background:linear-gradient(90deg, var(--champagne), transparent);
}
.foot-col h5{
  position:relative;
  font-size:11px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--champagne);
  margin:0 0 24px;
  padding-bottom:14px;
}
.foot-col h5::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:34px;
  height:1px;
  background:rgba(167,134,90,.66);
}
.foot-col a,
.foot-col span{
  display:block;
  width:fit-content;
  max-width:100%;
  font-size:14.5px;
  color:#B8B8B8;
  margin-bottom:14px;
  transition:color .32s var(--ease), transform .32s var(--ease);
}
.foot-col a{position:relative;}
.foot-col a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-3px;
  width:0;
  height:1px;
  background:var(--champagne);
  transition:width .35s var(--ease);
}
.foot-col a:hover{
  color:var(--champagne);
  transform:translateX(4px);
}
.foot-col a:hover::after{width:100%;}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:28px clamp(24px, 7vw, 132px) 0;
  font-size:12px;
  color:#9F9F9F;
  flex-wrap:wrap;
  gap:12px;
}
@media(max-width:980px){
  .footer-top{grid-template-columns:1fr 1fr; gap:46px; padding:44px 34px 64px;}
  .footer-top::after{left:34px; right:34px;}
  .footer-bottom{padding-left:34px; padding-right:34px;}
}
@media(max-width:560px){
  footer{padding:76px 0 28px;}
  .footer-top{grid-template-columns:1fr; gap:36px; padding:34px 24px 50px;}
  .footer-top::after{left:24px; right:24px; bottom:26px;}
  .foot-logo-row img{height:74px; width:74px;}
  .foot-logo .kv{font-size:44px;}
  .footer-bottom{padding:24px 24px 0;}
}

/* ---------- generic inner hero ---------- */
.inner-hero{padding:200px 0 90px; position:relative;}
.inner-hero .eyebrow{margin-bottom:22px;}
.inner-hero h1{font-size:clamp(38px,7vw,92px); line-height:1.02;}
.inner-hero p.lead{max-width:600px; color:var(--platinum); font-size:17px; margin-top:26px;}

/* ---------- about page ---------- */
.about-hero{
  position:relative;
  overflow:hidden;
  padding:154px 0 70px;
  min-height:calc(100vh - 1px);
  background:
    linear-gradient(180deg, rgba(10,10,10,.98) 0%, rgba(10,10,10,.9) 48%, rgba(20,20,20,1) 100%);
}
.about-hero::before{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(167,134,90,.7), transparent);
}
.about-hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:0;
  align-items:center;
  justify-items:center;
  text-align:center;
}
.about-hero-copy{max-width:980px;}
.about-hero-copy .eyebrow{margin-bottom:26px;}
.about-hero-copy h1{
  font-size:clamp(54px,7vw,112px);
  line-height:.96;
  color:var(--color-ivory);
}
.about-hero-copy h1 i{color:var(--color-bronze-soft);}
.about-hero-copy p{
  max-width:610px;
  margin-left:auto;
  margin-right:auto;
  margin-top:30px;
  color:rgba(243,239,231,.74);
  font-size:18px;
}
.about-hero-actions{display:flex; justify-content:center; gap:16px; flex-wrap:wrap; margin-top:38px;}
.about-hero-media{
  position:relative;
  min-height:560px;
  padding:14px;
  border:1px solid rgba(167,134,90,.28);
  background:rgba(243,239,231,.04);
  box-shadow:0 38px 80px rgba(0,0,0,.36);
}
.about-hero-media .media-frame{height:100%; min-height:532px;}
.about-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.9) contrast(1.06);
}
.about-hero-note{
  position:absolute;
  left:32px;
  right:32px;
  bottom:32px;
  z-index:3;
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-end;
  padding:18px 20px;
  background:rgba(10,10,10,.72);
  border:1px solid rgba(167,134,90,.32);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.about-hero-note span{
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--color-bronze-soft);
}
.about-hero-note strong{
  max-width:230px;
  text-align:right;
  font-size:13px;
  line-height:1.5;
  color:var(--color-ivory);
}
.about-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1px;
  margin-top:58px;
  border:1px solid rgba(167,134,90,.2);
  background:rgba(167,134,90,.16);
}
.about-stats div{
  min-height:132px;
  padding:26px;
  background:rgba(20,20,20,.92);
}
.about-stats strong{
  display:block;
  font-family:var(--serif);
  font-size:clamp(38px,4vw,58px);
  line-height:1;
  color:var(--color-ivory);
  font-weight:500;
}
.about-stats span{
  display:block;
  margin-top:12px;
  color:var(--color-muted);
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.about-story{
  background:linear-gradient(135deg, var(--color-charcoal) 0%, var(--color-dark) 100%);
}
.about-story-grid,
.about-split-grid{
  display:grid;
  grid-template-columns:minmax(0, .88fr) minmax(0, 1.12fr);
  gap:76px;
  align-items:center;
}
.about-story h2,
.about-section-head h2,
.about-split-copy h2{
  margin-top:18px;
  font-size:clamp(36px,5vw,66px);
  line-height:1.02;
}
.about-story-copy p,
.about-split-copy p{
  color:rgba(243,239,231,.74);
  font-size:17px;
  max-width:650px;
}
.about-story-copy p + p{margin-top:18px;}
.about-section-head{
  max-width:760px;
  margin-bottom:48px;
}
.about-card-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
}
.about-card{
  min-height:315px;
  padding:30px;
  border:1px solid rgba(167,134,90,.22);
  background:linear-gradient(180deg, rgba(243,239,231,.055), rgba(243,239,231,.025));
}
.about-card span{
  display:block;
  font-family:var(--serif);
  font-size:48px;
  line-height:1;
  color:transparent;
  -webkit-text-stroke:1px rgba(195,167,125,.86);
  margin-bottom:58px;
}
.about-card h3{
  font-size:27px;
  margin-bottom:14px;
  color:var(--color-ivory);
}
.about-card p{color:var(--color-muted);}
.about-split{
  background:
    linear-gradient(90deg, rgba(10,10,10,1) 0%, rgba(20,20,20,.96) 100%);
}
.about-split-media{min-height:560px;}
.about-split-media .media-frame{height:100%; min-height:560px;}
.about-split-media img{width:100%; height:100%; object-fit:cover;}
.about-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:34px;
}
.about-tags span{
  padding:10px 14px;
  border:1px solid rgba(167,134,90,.28);
  color:var(--color-ivory);
  background:rgba(167,134,90,.08);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
}
.about-founder{border-top:1px solid rgba(167,134,90,.18);}

@media(max-width:980px){
  .about-hero{padding-top:132px; min-height:auto;}
  .about-hero-grid,
  .about-story-grid,
  .about-split-grid{grid-template-columns:1fr; gap:42px;}
  .about-hero-media,
  .about-hero-media .media-frame,
  .about-split-media,
  .about-split-media .media-frame{min-height:420px;}
  .about-card-grid{grid-template-columns:1fr;}
  .about-card{min-height:auto;}
  .about-card span{margin-bottom:34px;}
}
@media(max-width:640px){
  .about-hero{padding-top:112px; padding-bottom:52px;}
  .about-hero-copy h1{font-size:clamp(44px,13vw,64px);}
  .about-hero-copy p,
  .about-story-copy p,
  .about-split-copy p{font-size:16px;}
  .about-hero-actions .btn{width:100%; justify-content:center;}
  .about-hero-media,
  .about-hero-media .media-frame,
  .about-split-media,
  .about-split-media .media-frame{min-height:330px;}
  .about-hero-note{left:22px; right:22px; bottom:22px; flex-direction:column; align-items:flex-start;}
  .about-hero-note strong{text-align:left;}
  .about-stats{grid-template-columns:1fr; margin-top:36px;}
  .about-stats div{min-height:auto; padding:22px;}
}

.two-col{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
@media(max-width:860px){.two-col{grid-template-columns:1fr;}}
ul.plain{list-style:none; margin:0; padding:0;}
ul.plain li{padding:16px 0; border-bottom:1px solid rgba(244,242,236,.1); font-size:16px; color:var(--platinum); display:flex; gap:14px;}
ul.plain li::before{content:"—"; color:var(--champagne);}
.bg-pearl ul.plain li{border-color:rgba(0,0,0,.1); color:#3a3a3a;}

.page-fade{animation:pagefade .7s var(--ease);}
@keyframes pagefade{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);}}

.skip-link{position:absolute; left:-999px; top:0; background:var(--champagne); color:#000; padding:10px 16px; z-index:2000;}
.skip-link:focus{left:10px; top:10px;}
:focus-visible{outline:2px solid var(--champagne); outline-offset:3px;}

/* ---------- blog ---------- */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:34px;}
@media(max-width:980px){.blog-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr;}}
.blog-card{display:flex; flex-direction:column;}
.blog-card .media-frame{aspect-ratio:4/3; margin-bottom:20px;}
.blog-card .cat{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--champagne); margin-bottom:10px; display:block;}
.blog-card h3{font-size:24px; margin-bottom:12px; line-height:1.15;}
.blog-card p{color:var(--platinum); font-size:14.5px; margin-bottom:16px;}
.blog-card .read-more{font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:var(--pearl); border-bottom:1px solid var(--champagne); padding-bottom:5px; width:fit-content;}
.blog-post-body{max-width:740px; margin:0 auto;}
.blog-post-body p{color:var(--platinum); font-size:17px; margin-bottom:22px;}
.blog-post-body h2{font-size:clamp(24px,3.4vw,34px); margin:44px 0 18px; color:var(--pearl);}
.blog-post-body blockquote{font-family:var(--serif); font-style:italic; font-size:26px; color:var(--champagne); border-left:2px solid var(--champagne); padding-left:26px; margin:36px 0;}
.blog-meta{display:flex; gap:18px; align-items:center; color:var(--metallic); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; margin-top:20px;}
.blog-meta span{display:flex; align-items:center; gap:6px;}
.blog-meta span:not(:last-child)::after{content:"•"; margin-left:18px; color:var(--metallic);}

/* ============ V2: PALETTE EXTENSION (logo metallic + warm neutrals) ============ */
:root{
  --indigo:var(--color-charcoal);
  --indigo-soft:var(--color-bronze);
  --pastel-cream:var(--color-cream);
  --pastel-champagne:var(--color-cream);
  --pastel-rose:#E7D9D2;
}
.chip{display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid rgba(196,170,124,.35); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--platinum); border-radius:100px;}
.chip-accent{border-color:rgba(167,134,90,.45); color:var(--color-bronze);}
.chip::before{content:"—"; color:var(--champagne);}
.bg-pearl .chip{color:#4B4B4B; border-color:rgba(0,0,0,.15);}

/* ---------- logo image ---------- */
.site-logo,
.logo-mark{
  height:62px;
  width:62px;
  object-fit:contain;
  display:block;
  padding:4px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(244,242,236,.08) 0%, rgba(167,134,90,.07) 48%, rgba(0,0,0,0) 72%);
  filter:drop-shadow(0 0 12px rgba(167,134,90,.36)) drop-shadow(0 4px 14px rgba(0,0,0,.55));
}
.logo-row{display:flex; align-items:center; gap:12px; flex:0 0 auto;}
.logo-row .logo-text{display:none; flex-direction:column; line-height:1;}
.logo-row .logo-text .kv{font-family:var(--serif); font-size:20px; letter-spacing:.06em; font-weight:700; color:var(--color-ivory);}
.logo-row .logo-text .mh{font-size:11px; letter-spacing:.12em; font-weight:700; color:var(--color-bronze); margin-top:2px;}
header:not(.scrolled) .logo-row .logo-text .kv{color:var(--color-ivory);}
header:not(.scrolled) .logo-row .logo-text .mh{color:var(--color-bronze);}
.mobile-menu .logo-row .logo-text .kv{color:var(--pearl);}
.mobile-menu .logo-row .logo-text .mh{color:var(--champagne);}
header.site-header.scrolled .site-logo,
header.site-header.scrolled .logo-mark{height:50px; width:50px;}
@media(max-width:640px){
  .site-logo,
  .logo-mark{height:54px; width:54px;}
  header.site-header.scrolled .site-logo,
  header.site-header.scrolled .logo-mark{height:48px; width:48px;}
}

/* ---------- premium motion layer ---------- */
.kv-preloader{
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%, rgba(195,167,125,.16) 0%, rgba(195,167,125,.05) 28%, transparent 54%),
    linear-gradient(145deg, #030303 0%, #101010 46%, #050505 100%);
  color:var(--color-ivory);
  isolation:isolate;
}
.kv-preloader-lock{overflow:hidden;}
.kv-preloader-bg{
  position:absolute;
  inset:-18%;
  background:
    linear-gradient(115deg, transparent 12%, rgba(167,134,90,.13) 31%, transparent 46%, rgba(243,239,231,.05) 57%, transparent 74%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 84px);
  filter:blur(.2px);
  opacity:.72;
  transform:rotate(-8deg);
  animation:kvPreloaderDrift 5.8s ease-in-out infinite alternate;
}
.kv-preloader-stage{
  position:relative;
  z-index:1;
  display:grid;
  justify-items:center;
  width:min(520px, calc(100vw - 44px));
  padding:40px 22px 34px;
}
.kv-preloader-logo-shell{
  position:relative;
  width:clamp(190px, 32vw, 310px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:50%;
}
.kv-preloader-logo{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:6px;
  filter:drop-shadow(0 0 18px rgba(195,167,125,.5)) drop-shadow(0 20px 48px rgba(0,0,0,.78));
}
.kv-preloader-shine{
  position:absolute;
  top:-18%;
  bottom:-18%;
  left:-82%;
  width:42%;
  background:linear-gradient(100deg, transparent 0%, rgba(255,255,255,.12) 22%, rgba(255,245,214,.88) 48%, rgba(195,167,125,.28) 68%, transparent 100%);
  transform:skewX(-18deg);
  mix-blend-mode:screen;
  pointer-events:none;
}
.kv-preloader-orbit{
  position:absolute;
  top:30px;
  width:clamp(220px, 36vw, 350px);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(195,167,125,.34);
  box-shadow:
    inset 0 0 38px rgba(195,167,125,.06),
    0 0 46px rgba(167,134,90,.16);
}
.kv-preloader-orbit::before,
.kv-preloader-orbit::after{
  content:"";
  position:absolute;
  border-radius:999px;
}
.kv-preloader-orbit::before{
  inset:-1px;
  border-top:2px solid rgba(255,236,181,.95);
  border-right:2px solid transparent;
  filter:drop-shadow(0 0 12px rgba(255,199,91,.8));
}
.kv-preloader-orbit::after{
  width:9px;
  height:9px;
  top:8%;
  left:68%;
  background:#FFE4A4;
  box-shadow:0 0 20px rgba(255,209,116,.9), 0 0 42px rgba(167,134,90,.46);
}
.kv-preloader-spark{
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#FFE8B5;
  box-shadow:0 0 18px rgba(255,218,142,.9), 0 0 34px rgba(167,134,90,.5);
  animation:kvPreloaderSpark 1.9s ease-in-out infinite alternate;
}
.spark-one{left:17%; top:34%;}
.spark-two{right:18%; top:40%; animation-delay:.28s;}
.spark-three{left:49%; bottom:32%; animation-delay:.52s;}
.kv-preloader-wordmark{
  display:grid;
  justify-items:center;
  gap:8px;
  margin-top:46px;
  text-align:center;
}
.kv-preloader-wordmark span{
  font-family:var(--serif);
  font-size:clamp(34px, 7vw, 58px);
  line-height:.82;
  letter-spacing:.08em;
  color:var(--color-ivory);
  text-shadow:0 8px 28px rgba(0,0,0,.56), 0 0 18px rgba(167,134,90,.22);
}
.kv-preloader-wordmark small{
  font-size:11px;
  font-weight:800;
  letter-spacing:.46em;
  color:var(--color-bronze-soft);
  text-indent:.46em;
}
.kv-preloader-line{
  position:relative;
  width:min(330px, 74vw);
  height:1px;
  margin-top:24px;
  background:linear-gradient(90deg, transparent, rgba(243,239,231,.16), transparent);
  overflow:hidden;
}
.kv-preloader-line i{
  display:block;
  width:100%;
  height:100%;
  transform:scaleX(0);
  transform-origin:left center;
  background:linear-gradient(90deg, transparent 0%, var(--color-bronze) 18%, #FFE8B5 50%, var(--color-bronze) 82%, transparent 100%);
  box-shadow:0 0 18px rgba(195,167,125,.58);
}
.kv-preloader.is-hidden{
  opacity:0;
  visibility:hidden;
  transition:opacity .5s var(--ease), visibility .5s var(--ease);
}
@keyframes kvPreloaderDrift{
  from{transform:rotate(-8deg) translate3d(-18px, -8px, 0) scale(1);}
  to{transform:rotate(-8deg) translate3d(18px, 10px, 0) scale(1.03);}
}
@keyframes kvPreloaderSpark{
  from{opacity:.35; transform:translateY(0) scale(.72);}
  to{opacity:1; transform:translateY(-12px) scale(1);}
}
@media(max-width:520px){
  .kv-preloader-stage{padding-top:26px;}
  .kv-preloader-logo-shell{width:clamp(170px, 58vw, 240px);}
  .kv-preloader-orbit{top:26px; width:clamp(200px, 68vw, 280px);}
  .kv-preloader-wordmark{margin-top:38px;}
  .kv-preloader-wordmark small{font-size:9.5px; letter-spacing:.34em; text-indent:.34em;}
}
.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  z-index:1600;
  width:100%;
  height:2px;
  background:var(--color-bronze);
  transform:scaleX(0);
  transform-origin:left center;
  pointer-events:none;
}
.motion-line{
  display:inline-block;
  overflow:hidden;
  vertical-align:baseline;
}
.motion-line-inner{
  display:inline-block;
  will-change:transform, opacity;
}
.hero-bg,
.philosophy .media-frame img,
.founder-media img{will-change:transform;}
.hero-indicators span{
  position:relative;
  cursor:default;
  transition:color .35s var(--ease);
}
.hero-indicators span::after{
  content:"";
  position:absolute;
  left:0;
  bottom:8px;
  width:0;
  height:1px;
  background:var(--color-bronze);
  transition:width .42s var(--ease);
}
.hero-indicators span:hover::after{width:100%;}
.btn{transition:transform .35s var(--ease), border-color .45s var(--ease), color .45s var(--ease), background .45s var(--ease), box-shadow .45s var(--ease);}
.btn span{position:relative; z-index:2;}
.btn span::after{
  content:"";
  display:inline-block;
  width:0;
  height:1px;
  margin-left:0;
  background:currentColor;
  vertical-align:middle;
  transition:width .35s var(--ease), margin-left .35s var(--ease);
}
.btn:hover span::after{width:18px; margin-left:10px;}
.marquee-track{will-change:transform;}
.marquee-wrap:hover .marquee-track{animation-play-state:paused;}

.services-motion-section{overflow:hidden; max-width:100%; contain:paint;}
.services-motion-section > .wrap{position:relative; z-index:3;}
.services-motion-section > .wrap.reveal{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:18px !important;
  text-align:center !important;
}
.services-motion-section > .wrap.reveal .eyebrow,
.services-motion-section > .wrap.reveal h2,
.services-motion-section > .wrap.reveal::before,
.services-motion-section > .wrap.reveal::after{
  flex:0 0 auto;
}
.services-motion-track{will-change:transform; max-width:100%;}
@media(min-width:901px){
  .services-motion-section{min-height:100vh;}
  .services-motion-section .services-motion-track{
    display:flex !important;
    grid-template-columns:none !important;
    gap:24px !important;
    width:100% !important;
    max-width:100% !important;
    padding-right:8vw;
  }
  .services-motion-section .service-panel{
    flex:0 0 min(74vw, 520px);
    min-height:560px;
  }
  .services-motion-section .service-panel:nth-child(1),
  .services-motion-section .service-panel:nth-child(4){transform:none;}
}

.motion-swiper-controls{
  width:min(1360px, calc(100% - 80px));
  margin:24px auto 0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
}
.motion-swiper-controls button{
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(167,134,90,.48);
  background:rgba(244,242,236,.04);
  color:var(--color-bronze);
  font-size:18px;
  cursor:pointer;
  transition:background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.motion-swiper-controls button:hover{
  background:var(--color-bronze);
  color:var(--color-black);
  transform:translateY(-2px);
}
.motion-progress{
  position:relative;
  width:150px;
  height:2px;
  background:rgba(244,242,236,.18);
  overflow:hidden;
}
.motion-progress .swiper-scrollbar-drag{background:var(--color-bronze);}
.portfolio-swiper,
.instagram-swiper{
  width:min(100%, 1120px);
  margin-left:auto;
  margin-right:auto;
  overflow:hidden;
}
.portfolio-swiper .swiper-wrapper{
  align-items:stretch;
  justify-content:center;
}
.masonry.swiper,
.insta-grid.swiper{display:block;}
.instagram-swiper .swiper-wrapper{align-items:stretch;}
.portfolio-swiper .swiper-slide,
.instagram-swiper .swiper-slide{height:auto;}
.portfolio-swiper .swiper-slide{
  opacity:.48;
  transform:scale(.92);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.portfolio-swiper .swiper-slide-active,
.portfolio-swiper .swiper-slide-next{
  opacity:1;
  transform:scale(1);
}
.portfolio-swiper .mason-item{
  width:100%;
  min-height:520px;
}
.instagram-swiper .insta-item{
  width:min(72vw, 330px);
  aspect-ratio:4/5;
}
.instagram-swiper .insta-item:nth-child(2n){width:min(68vw, 280px);}
.instagram-swiper .insta-item:nth-child(3n){width:min(76vw, 360px);}
.insta-item .media-frame{height:100%;}
.who-item{will-change:transform, opacity;}
.why-premium .why-item::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:1px;
  background:var(--color-bronze);
  transition:width .45s var(--ease);
}
.why-premium .why-item:hover::after{width:100%;}

@media(max-width:900px){
  .motion-swiper-controls,
  .portfolio-swiper,
  .instagram-swiper{width:calc(100% - 44px);}
  .portfolio-swiper .mason-item{min-height:420px;}
}
@media(max-width:768px){
  .motion-swiper-controls{justify-content:flex-start;}
  .motion-progress{width:110px;}
}
@media(prefers-reduced-motion: reduce){
  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.001ms !important;
  }
  .reveal,
  .reveal-stagger,
  .reveal-stagger > *,
  .motion-line-inner{
    opacity:1 !important;
    transform:none !important;
  }
  .scroll-progress{display:none;}
}
/* Footer logo sizing is controlled in the premium footer block above. */

/* ---------- breadcrumb ---------- */
.breadcrumb{display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--metallic); margin-bottom:26px;}
.breadcrumb a{color:var(--metallic); transition:color .3s;}
.breadcrumb a:hover{color:var(--champagne);}
.breadcrumb span.sep{color:rgba(244,242,236,.25);}
.breadcrumb span.current{color:var(--platinum);}

/* ---------- bento child-service grid (category pages) ---------- */
.child-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:16px;}
@media(max-width:980px){.child-grid{grid-template-columns:repeat(4,1fr);}}
@media(max-width:640px){.child-grid{grid-template-columns:repeat(2,1fr);}}
.child-card{position:relative; overflow:hidden; grid-column:span 3; aspect-ratio:4/5; display:block; border:1px solid rgba(244,242,236,.08);}
.child-card.big{grid-column:span 4;}
.child-card.small{grid-column:span 2;}
@media(max-width:980px){.child-card, .child-card.big, .child-card.small{grid-column:span 2;}}
@media(max-width:640px){.child-card, .child-card.big, .child-card.small{grid-column:span 1;}}
.child-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease), filter .6s;}
.child-card:hover img{transform:scale(1.08);}
.child-card::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,7,7,0) 30%, rgba(7,7,7,.88) 100%); z-index:1;}
.child-card .cc-inner{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-end; padding:18px;}
.child-card .cc-num{font-family:var(--serif); font-size:13px; color:var(--champagne); margin-bottom:8px;}
.child-card .cc-title{font-family:var(--serif); font-size:19px; color:var(--pearl); line-height:1.15; margin-bottom:6px;}
.child-card .cc-desc{display:block; max-width:92%; color:var(--color-muted); font-size:12.5px; line-height:1.55; margin:0 0 12px;}
.child-card .cc-arrow{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--platinum); opacity:0; transform:translateY(6px); transition:all .4s var(--ease);}
.child-card:hover .cc-arrow{opacity:1; transform:translateY(0);}

/* ---------- includes card grid (detail pages) ---------- */
.include-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:rgba(244,242,236,.08);}
@media(max-width:640px){.include-grid{grid-template-columns:1fr;}}
.include-card{background:var(--black); padding:30px 26px; transition:background .4s;}
.bg-charcoal .include-card{background:var(--charcoal);}
.include-card:hover{background:var(--graphite);}
.include-card .ic-num{font-family:var(--serif); font-size:13px; color:var(--champagne); margin-bottom:12px; display:block;}
.include-card .ic-title{font-size:16.5px; color:var(--pearl); line-height:1.35;}

/* ---------- gallery row ---------- */
.gallery-row{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media(max-width:768px){.gallery-row{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.gallery-row{grid-template-columns:1fr;}}
.gallery-row .media-frame{aspect-ratio:3/4;}
.gallery-row .media-frame:first-child{aspect-ratio:auto;}
@media(min-width:769px){.gallery-row .media-frame:first-child{grid-row:span 2; aspect-ratio:3/6.4;}}

/* ---------- why chips row ---------- */
.why-chip-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:22px;}

/* ---------- related services ---------- */
.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:860px){.related-grid{grid-template-columns:1fr;}}
.related-card{position:relative; overflow:hidden; aspect-ratio:5/4; display:block;}
.related-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease);}
.related-card:hover img{transform:scale(1.08);}
.related-card::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,7,7,0) 35%, rgba(7,7,7,.9) 100%); z-index:1;}
.related-card .rc-inner{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-end; padding:18px;}
.related-card .rc-cat{font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--champagne); margin-bottom:6px;}
.related-card .rc-title{font-family:var(--serif); font-size:19px; color:var(--pearl);}

/* ---------- hero variants for detail pages ---------- */
.dhero{position:relative; padding:170px 0 0; overflow:hidden;}
.dhero-b{display:grid; grid-template-columns:1fr 1fr; align-items:end; min-height:78vh; gap:40px;}
.dhero-b .dh-text{padding-bottom:70px; position:relative; z-index:2;}
.dhero-b .dh-bignum{position:absolute; top:60px; left:0; font-family:var(--serif); font-size:clamp(120px,18vw,280px); line-height:1; color:transparent; -webkit-text-stroke:1px rgba(196,170,124,.25); z-index:0; pointer-events:none;}
.dhero-b .dh-media{position:relative; min-height:78vh; align-self:stretch;}
@media(max-width:900px){.dhero-b{grid-template-columns:1fr;} .dhero-b .dh-media{min-height:340px;} .dhero-b .dh-bignum{display:none;}}

.dhero-c{position:relative; min-height:78vh; display:flex; align-items:flex-end;}
.dhero-c .media-frame{position:absolute; inset:0; z-index:0;}
.dhero-c .media-frame::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,7,7,.35) 0%, rgba(7,7,7,.9) 100%);}
.dhero-c .dh-content{position:relative; z-index:2; padding-bottom:80px; width:100%;}

.dhero-a{min-height:60vh;}
.dhero-a .dh-media{height:52vh; margin-top:40px;}

.dh-tag{font-family:var(--serif); font-style:italic; font-size:clamp(19px,2.4vw,26px); color:var(--champagne); margin-top:18px; max-width:560px;}

/* ---------- mega menu ---------- */
.has-mega::after{content:""; position:absolute; left:-18px; right:-18px; top:100%; height:18px;}
.mega{position:absolute; top:calc(100% + 4px); left:50%; transform:translateX(-50%) translateY(6px); background:var(--charcoal); border:1px solid rgba(196,170,124,.2); padding:26px; opacity:0; visibility:hidden; transition:all .35s var(--ease); box-shadow:0 24px 50px rgba(0,0,0,.5); display:grid; grid-template-columns:repeat(4,220px); gap:26px; width:max-content; max-width:92vw;}
.has-mega:hover .mega{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);}
.mega-col h6{font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--champagne); margin-bottom:12px;}
.mega-col a.mega-parent{display:block; font-family:var(--serif); font-size:17px; color:var(--pearl); margin-bottom:12px;}
.mega-col a.mega-child{display:block; font-size:12px; color:var(--platinum); padding:6px 0; border-top:1px solid rgba(244,242,236,.06);}
.mega-col a.mega-child:hover{color:var(--champagne);}
@media(max-width:1200px){.mega{grid-template-columns:repeat(2,220px);}}

/* ---------- service detail premium page ---------- */
.service-detail-premium{
  background:var(--color-black);
  color:var(--color-ivory);
}
.service-detail-page{
  overflow:hidden;
  background:
    radial-gradient(circle at 76% 14%, rgba(167,134,90,.12), transparent 28%),
    linear-gradient(180deg, var(--color-black) 0%, var(--color-dark) 58%, var(--color-black) 100%);
}
.sd-hero{
  min-height:760px;
  position:relative;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  isolation:isolate;
}
.sd-hero-bg{
  position:absolute;
  inset:0;
  z-index:-2;
  background:var(--color-black);
}
.sd-hero-bg::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background:
    radial-gradient(circle at 73% 35%, rgba(167,134,90,.18), transparent 18%),
    linear-gradient(90deg, rgba(10,10,10,.95) 0%, rgba(10,10,10,.82) 39%, rgba(10,10,10,.38) 72%, rgba(10,10,10,.92) 100%),
    linear-gradient(180deg, rgba(10,10,10,.12) 0%, var(--color-dark) 100%);
}
.sd-hero-bg img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:68% center;
  filter:saturate(.75) contrast(1.12) brightness(.7);
}
.sd-hero-inner{
  min-height:760px;
  display:grid;
  grid-template-columns:minmax(0, 1fr) 360px;
  align-items:end;
  gap:80px;
  padding-top:155px;
  padding-bottom:70px;
  position:relative;
}
.sd-hero-copy{max-width:650px;}
.sd-breadcrumb{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:28px;
  font-size:10px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--color-bronze);
  font-weight:800;
}
.sd-breadcrumb a{color:var(--color-bronze);}
.sd-breadcrumb span:last-child{color:rgba(243,239,231,.76);}
.sd-hero h1{
  font-size:clamp(62px, 8.5vw, 118px);
  line-height:.83;
  text-transform:uppercase;
  letter-spacing:-.015em;
  color:var(--color-ivory);
  text-shadow:0 18px 52px rgba(0,0,0,.48);
}
.sd-hero h1 em{
  display:inline-block;
  color:var(--color-bronze);
  font-style:normal;
}
.sd-title-rule{
  width:96px;
  height:2px;
  margin:30px 0 24px;
  background:linear-gradient(90deg, var(--color-bronze), transparent);
}
.sd-hero-copy p{
  max-width:430px;
  color:rgba(243,239,231,.84);
  font-size:15px;
  line-height:1.75;
}
.sd-hero-actions{
  display:flex;
  gap:26px;
  align-items:center;
  margin-top:30px;
}
.sd-text-link{
  display:inline-flex;
  align-items:center;
  gap:14px;
  color:var(--color-ivory);
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:800;
  transition:color .35s var(--ease), transform .35s var(--ease);
}
.sd-text-link span{color:var(--color-bronze);}
.sd-text-link:hover{color:var(--color-bronze); transform:translateX(4px);}
.sd-hero-ticks{
  display:grid;
  gap:5px;
  margin-top:30px;
  color:rgba(243,239,231,.66);
  font-family:var(--serif);
  font-size:13px;
}
.sd-hero-card{
  justify-self:end;
  width:260px;
  margin-bottom:42px;
  padding:30px;
  border:1px solid rgba(167,134,90,.36);
  border-radius:8px;
  background:rgba(20,20,20,.64);
  box-shadow:0 24px 80px rgba(0,0,0,.34);
  backdrop-filter:blur(16px);
}
.sd-card-icons{
  display:flex;
  gap:20px;
  margin-bottom:22px;
  color:var(--color-bronze);
  font-size:24px;
}
.sd-hero-card p{
  color:var(--color-ivory);
  font-family:var(--serif);
  font-size:22px;
  line-height:1.18;
}
.sd-section{
  position:relative;
  padding:88px 0;
  background:var(--color-dark);
}
.sd-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 0%, rgba(167,134,90,.07), transparent 36%);
}
.sd-kicker{
  display:inline-flex;
  gap:12px;
  align-items:center;
  margin-bottom:22px;
  color:var(--color-bronze);
  font-size:10px;
  letter-spacing:.3em;
  text-transform:uppercase;
  font-weight:800;
}
.sd-kicker::before{
  content:"";
  width:34px;
  height:1px;
  background:var(--color-bronze);
}
.sd-section-copy h2,
.sd-centered-heading h2,
.sd-final-cta h2{
  color:var(--color-ivory);
  font-size:clamp(34px, 4.4vw, 58px);
  line-height:1.05;
}
.sd-section-copy p{
  max-width:470px;
  color:var(--color-muted);
  font-size:14px;
  line-height:1.8;
}
.sd-mini-rule{
  width:66px;
  height:2px;
  margin:28px 0 22px;
  background:var(--color-bronze);
}
.sd-what-grid{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:80px;
  align-items:center;
}
.sd-feature-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:48px 56px;
  padding-left:80px;
  border-left:1px solid rgba(167,134,90,.38);
}
.sd-feature-grid article{
  position:relative;
  min-height:128px;
}
.sd-feature-grid article span{
  color:var(--color-bronze);
  font-family:var(--serif);
  font-size:18px;
}
.sd-feature-grid h3{
  margin:16px 0 9px;
  color:var(--color-ivory);
  font-family:var(--sans);
  font-size:18px;
  font-weight:700;
}
.sd-feature-grid p{
  color:var(--color-muted);
  font-size:13px;
  line-height:1.6;
}
.sd-work{padding-top:76px;}
.sd-centered-heading{text-align:center; margin-bottom:28px;}
.sd-centered-heading .sd-kicker{justify-content:center;}
.sd-centered-heading .sd-kicker::before{display:none;}
.sd-centered-heading h2{font-size:clamp(32px, 3.8vw, 54px);}
.sd-filter-row{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:18px;
  margin-bottom:34px;
}
.sd-filter-row span,
.sd-filter-row button{
  appearance:none;
  border:0;
  font-family:inherit;
  padding:10px 15px;
  border-radius:999px;
  background:transparent;
  color:rgba(243,239,231,.82);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:800;
  cursor:pointer;
  transition:color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.sd-filter-row span.active,
.sd-filter-row button.active{
  color:var(--color-black);
  background:linear-gradient(135deg, var(--color-bronze-soft), var(--color-bronze));
  box-shadow:0 12px 30px rgba(167,134,90,.18);
}
.sd-filter-row button:hover{
  color:var(--color-bronze);
  transform:translateY(-2px);
}
.sd-filter-row button.active:hover{color:var(--color-black);}
.sd-work-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  grid-auto-rows:220px;
  gap:22px;
  max-width:1110px;
  margin:0 auto;
}
.sd-work-card{
  position:relative;
  overflow:hidden;
  border-radius:8px;
  border:1px solid rgba(246,244,238,.08);
  background:var(--color-dark);
  box-shadow:0 26px 66px rgba(0,0,0,.24);
  isolation:isolate;
}
.sd-work-card.tall{grid-row:span 2;}
.sd-work-card.wide{grid-column:span 2;}
.sd-work-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.82) contrast(1.1) brightness(.8);
  transition:transform .9s var(--ease), filter .6s var(--ease);
}
.sd-work-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,0) 26%, rgba(10,10,10,.86) 100%);
  z-index:1;
}
.sd-work-card span,
.sd-work-card small,
.sd-work-card i{
  position:absolute;
  z-index:2;
}
.sd-work-card span{
  left:20px;
  bottom:52px;
  color:#fff;
  font-size:15px;
  font-weight:700;
}
.sd-work-card small{
  left:20px;
  bottom:26px;
  color:rgba(243,239,231,.72);
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.sd-work-card i{
  right:20px;
  bottom:26px;
  color:var(--color-bronze);
  font-style:normal;
  transform:translate(-4px, 4px);
  transition:transform .35s var(--ease);
}
.sd-work-card:hover img{
  transform:scale(1.08);
  filter:saturate(.95) contrast(1.14) brightness(.92);
}
.sd-work-card:hover i{transform:translate(0, 0);}
.sd-more{
  margin-top:36px;
  text-align:center;
}
.sd-process{
  border-top:1px solid rgba(247,242,232,.08);
  border-bottom:1px solid rgba(247,242,232,.08);
}
.sd-process-line{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:34px;
  max-width:1110px;
  margin:58px auto 0;
  position:relative;
}
.sd-process-line::before{
  content:"";
  position:absolute;
  top:25px;
  left:0;
  right:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(167,134,90,.52), transparent);
  transform:scaleX(var(--line-scale, 1));
  transform-origin:left center;
}
.sd-process-line article{
  position:relative;
  padding-top:72px;
}
.sd-process-line article span{
  position:absolute;
  top:0;
  left:0;
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:1px solid rgba(167,134,90,.65);
  background:var(--color-charcoal);
  color:var(--color-bronze);
  font-weight:800;
  font-size:12px;
  box-shadow:0 0 28px rgba(167,134,90,.12);
}
.sd-process-line h3{
  font-family:var(--sans);
  font-size:17px;
  font-weight:800;
  margin-bottom:10px;
}
.sd-process-line p{
  color:var(--color-muted);
  font-size:13px;
  line-height:1.65;
}
.sd-tools{
  padding:74px 0;
  background:var(--color-black);
}
.sd-tools-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:54px;
  align-items:center;
}
.sd-tool-row{
  display:flex;
  gap:34px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.sd-tool-row span{
  width:118px;
  height:118px;
  display:grid;
  place-items:center;
  border-radius:8px;
  border:1px solid rgba(246,244,238,.1);
  background:linear-gradient(145deg, rgba(247,242,232,.08), rgba(0,0,0,.46));
  color:var(--color-bronze);
  font-family:var(--serif);
  font-size:34px;
  font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 24px 52px rgba(0,0,0,.26);
  transition:transform .45s var(--ease), border-color .45s var(--ease), color .45s var(--ease);
}
.sd-tool-row span:hover{
  transform:translateY(-8px);
  border-color:rgba(167,134,90,.7);
  color:var(--color-ivory);
}
.sd-final-cta{
  padding:95px 0;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 20% 42%, rgba(167,134,90,.12), transparent 34%),
    radial-gradient(ellipse at 80% 58%, rgba(167,134,90,.10), transparent 34%),
    var(--color-dark);
}
.sd-final-cta::before{
  content:"";
  position:absolute;
  left:-8%;
  right:-8%;
  top:18%;
  height:62%;
  background:linear-gradient(110deg, transparent 8%, rgba(167,134,90,.11) 28%, transparent 45%, rgba(167,134,90,.09) 66%, transparent 86%);
  filter:blur(18px);
  opacity:.7;
}
.sd-final-grid{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center;
}
.sd-final-grid p{
  max-width:460px;
  color:rgba(243,239,231,.86);
  font-size:16px;
  margin-bottom:30px;
}
.sd-final-actions{
  display:flex;
  align-items:center;
  gap:28px;
  flex-wrap:wrap;
}
@media(max-width:1100px){
  .sd-hero-inner{grid-template-columns:1fr; gap:34px;}
  .sd-hero-card{justify-self:start; margin-bottom:0;}
  .sd-what-grid,
  .sd-tools-grid,
  .sd-final-grid{grid-template-columns:1fr;}
  .sd-feature-grid{padding-left:0; border-left:0;}
}
@media(max-width:860px){
  .sd-hero,
  .sd-hero-inner{min-height:720px;}
  .sd-hero-inner{padding-top:130px; padding-bottom:52px;}
  .sd-work-grid{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:210px;
  }
  .sd-work-card.wide{grid-column:span 2;}
  .sd-process-line{grid-template-columns:1fr 1fr;}
  .sd-process-line::before{display:none;}
  .sd-tool-row{justify-content:flex-start;}
}
@media(max-width:560px){
  .sd-hero,
  .sd-hero-inner{min-height:760px;}
  .sd-hero-bg img{object-position:62% center;}
  .sd-hero h1{font-size:clamp(54px, 18vw, 76px);}
  .sd-hero-actions{align-items:flex-start; flex-direction:column; gap:18px;}
  .sd-hero-card{width:100%; padding:22px;}
  .sd-section{padding:72px 0;}
  .sd-feature-grid,
  .sd-work-grid,
  .sd-process-line{grid-template-columns:1fr;}
  .sd-work-grid{grid-auto-rows:270px;}
  .sd-work-card.tall,
  .sd-work-card.wide{grid-column:auto; grid-row:auto;}
  .sd-filter-row{justify-content:flex-start; gap:10px;}
  .sd-tool-row{gap:14px;}
  .sd-tool-row span{width:92px; height:92px; font-size:27px;}
}

/* ============================================================
   MOBILE & TABLET RESPONSIVE — overflow-safe, touch-friendly
   ============================================================ */
html{
  overflow-x:clip;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
img, video, svg{max-width:100%;}
button, .btn, .pf-btn, a{touch-action:manipulation;}

/* Tablet (768–980px) */
@media(max-width:980px){
  header.site-header{height:76px;}
  header.site-header.scrolled{top:12px; width:calc(100% - 24px); height:62px;}
  header.site-header .header-inner{width:calc(100% - 44px);}
  header.site-header.scrolled .header-inner{width:calc(100% - 30px);}
  .header-inner{gap:16px;}
  .portfolio-filters{
    justify-content:center;
    gap:10px;
    margin-bottom:40px;
  }
  .pf-btn{padding:11px 18px; font-size:11px;}
  .work-heading{margin-bottom:44px;}
  .insta-grid{gap:12px;}
  .final-cta h2{font-size:clamp(34px,8vw,64px);}
  .final-buttons .btn{min-width:min(100%, 280px); justify-content:center;}
  .inner-hero{padding:160px 0 70px;}
  .inner-hero h1{font-size:clamp(36px,9vw,72px);}
  .philosophy{min-height:56vh; padding:60px 0;}
  section.bg-black:has(.service-panel) > div[style]{
    width:min(100%, calc(100% - 44px));
    margin-top:40px !important;
  }
  section.bg-black:has(.service-panel){overflow:visible;}
  .services-motion-section{min-height:auto !important; overflow:visible; contain:none;}
  .services-motion-track{
    display:grid !important;
    grid-template-columns:1fr !important;
    transform:none !important;
    translate:none !important;
    width:100% !important;
    max-width:100% !important;
    padding-right:0 !important;
    gap:18px !important;
    will-change:auto;
  }
  .services-motion-section .service-panel{
    flex:none !important;
    width:100% !important;
    max-width:100% !important;
    transform:none !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  .services-motion-section .service-panel .sp-media,
  .services-motion-section .service-panel .sp-media img{
    clip-path:none !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  section.bg-black:has(.service-panel) > div[style]{
    display:grid !important;
    grid-template-columns:1fr !important;
  }
  .motion-swiper-controls{display:none;}
}

/* Mobile (≤640px) */
@media(max-width:640px){
  .wrap{padding:0 18px;}
  .section{padding:72px 0;}
  .hero{min-height:100svh; min-height:100dvh;}
  .hero-content{padding-bottom:36px;}
  .hero-bg img{animation:none;}
  .hero-indicators span{font-size:11px; padding:10px 14px;}
  .portfolio-filters{
    flex-wrap:nowrap;
    overflow-x:auto;
    justify-content:flex-start;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:6px;
    margin-left:-18px;
    margin-right:-18px;
    padding-left:18px;
    padding-right:18px;
  }
  .portfolio-filters::-webkit-scrollbar{display:none;}
  .pf-btn{flex:0 0 auto;}
  .mason-item{aspect-ratio:3/4;}
  form.inquiry{grid-template-columns:1fr; gap:16px;}
  .form-submit{
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }
  .form-submit .btn{width:100%; justify-content:center;}
  .contact-grid{gap:44px;}
  .info-item a, .info-item span.val{font-size:19px; word-break:break-word;}
  .founder-grid{gap:44px;}
  .founder-grid h2{font-size:clamp(32px,9vw,48px);}
  .founder-spotlight .founder-media{padding:10px;}
  .mobile-menu nav a{font-size:clamp(28px,8vw,36px); padding:12px 0;}
  .inner-hero{padding:130px 0 56px;}
  .inner-hero p.lead{font-size:16px;}
  .about-grid h2{font-size:clamp(30px,8vw,44px);}
  .service-panel .sp-text{padding:24px 20px;}
  section.bg-black:has(.service-panel) > div[style]{
    width:100%;
    margin-top:32px !important;
    gap:14px;
  }
  .service-panel,
  .service-panel .sp-text{min-height:340px;}
  .sp-index{top:22px; left:20px;}
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
  }
}

/* Small phones (≤480px) */
@media(max-width:480px){
  header.site-header{height:70px;}
  header.site-header.scrolled{top:10px; width:calc(100% - 24px); height:58px;}
  .site-logo,
  .logo-mark{height:52px; width:52px;}
  header.site-header.scrolled .site-logo,
  header.site-header.scrolled .logo-mark{height:46px; width:46px;}
  .hero h1{font-size:clamp(38px,12vw,52px);}
  .hero-buttons{gap:12px;}
  .marquee-wrap .marquee-track span{font-size:clamp(28px,10vw,42px);}
  .child-card .cc-title{font-size:17px;}
  .sd-hero,
  .sd-hero-inner{min-height:auto; padding-bottom:48px;}
  .sd-hero-inner{padding-top:120px;}
}

/* Touch devices — no hover-only UI */
@media(hover:none), (pointer:coarse){
  .mason-overlay{opacity:1;}
  .mason-item::after{opacity:1; inset:12px;}
  .mason-item:hover{
    transform:none;
    box-shadow:none;
  }
  .mason-item:hover img{transform:none;}
  .mason-overlay p{opacity:1; transform:translateY(0);}
  .service-panel:hover img{transform:none;}
  .service-panel:hover::after{inset:16px;}
  .child-card .cc-arrow{opacity:1; transform:translateY(0);}
  .media-frame:hover img{transform:none;}
  .btn:hover .btn-arrow{transform:none;}
  .pf-btn:hover{transform:none;}
  .why-premium .why-item:hover::after{width:0;}
}

/* Landscape phones — reduce vertical pressure */
@media(max-height:520px) and (orientation:landscape){
  .hero{min-height:auto; padding-top:100px;}
  .hero-content{padding-bottom:28px;}
  .inner-hero{padding-top:110px; padding-bottom:40px;}
  .mobile-menu nav{margin-top:30px;}
  .mobile-menu nav a{font-size:26px; padding:8px 0;}
}

/* Safe-area insets (notched devices) */
@supports(padding:max(0px)){
  .mobile-menu{padding-top:max(26px, env(safe-area-inset-top)); padding-bottom:max(22px, env(safe-area-inset-bottom));}
  footer{padding-bottom:max(30px, env(safe-area-inset-bottom));}
  header.site-header{padding-left:max(0px, env(safe-area-inset-left)); padding-right:max(0px, env(safe-area-inset-right));}
}

/* ============================================================
   FINAL MOBILE RESPONSIVE AUDIT
   Desktop rules above remain the source of truth. These overrides
   only protect tablet, mobile, and very small screens from overflow.
   ============================================================ */
html,
body{
  max-width:100%;
  overflow-x:hidden;
}
img,
video,
svg,
canvas,
iframe{
  max-width:100%;
}
main,
section,
header,
footer,
.page-fade,
.wrap{
  max-width:100%;
}

@media(max-width:1024px){
  .btn{min-height:44px;}
  .mega{display:none;}
  .process-row{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    overflow:visible;
  }
  .process-step{
    min-width:0;
    border-bottom:1px solid rgba(244,242,236,.1);
  }
  .about-service-collage{min-height:360px;}
  .num-badge{left:12px; bottom:12px;}
  .who-list{grid-template-columns:repeat(2, minmax(0,1fr));}
}

@media(max-width:768px){
  h1,
  h2,
  h3,
  h4,
  p,
  a,
  span,
  small,
  strong{
    overflow-wrap:anywhere;
  }
  p{font-size:16px;}
  .wrap{padding-left:20px; padding-right:20px;}
  .section{padding:68px 0;}
  .eyebrow{
    font-size:10.5px;
    letter-spacing:.2em;
    gap:10px;
  }
  .eyebrow::before{width:20px;}
  .btn{
    min-height:46px;
    padding:14px 18px;
    font-size:11.5px;
    letter-spacing:.12em;
    text-align:center;
  }
  .hero,
  .about-hero{
    min-height:100svh;
    min-height:100dvh;
  }
  .hero-content{padding-top:104px;}
  .hero p.desc,
  .inner-hero p.lead,
  .about-hero-copy p,
  .about-story-copy p,
  .about-split-copy p{
    max-width:100%;
    font-size:16px;
  }
  .hero-buttons,
  .about-hero-actions,
  .final-buttons,
  .sd-hero-actions,
  .sd-final-actions{
    width:100%;
    gap:12px;
  }
  .hero-buttons .btn,
  .about-hero-actions .btn,
  .final-buttons .btn,
  .sd-hero-actions .btn,
  .sd-final-actions .btn{
    width:100%;
    justify-content:center;
  }
  .statement h2,
  .work-heading h1,
  .final-cta h2,
  .sd-final-cta h2{
    font-size:clamp(34px,10vw,56px);
  }
  .about-grid,
  .about-hero-grid,
  .about-story-grid,
  .about-split-grid,
  .contact-grid,
  .founder-grid,
  .two-col,
  .sd-what-grid,
  .sd-tools-grid,
  .sd-final-grid{
    grid-template-columns:1fr;
    gap:38px;
  }
  .about-card-grid,
  .related-grid{
    grid-template-columns:1fr;
  }
  .about-card{min-height:auto;}
  .about-card span{margin-bottom:34px;}
  .about-service-collage{
    min-height:auto;
    aspect-ratio:1/1.08;
  }
  .about-hero-media,
  .about-hero-media .media-frame,
  .about-split-media,
  .about-split-media .media-frame{
    min-height:380px;
  }
  .num-badge{
    position:relative;
    left:auto;
    bottom:auto;
    margin-top:12px;
    max-width:none;
  }
  .service-panel{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .service-panel:nth-child(even){
    display:flex;
    flex-direction:column-reverse;
  }
  .service-panel .sp-media{height:260px;}
  .service-panel,
  .service-panel .sp-text{min-height:auto;}
  .service-panel .sp-text{padding:30px 22px;}
  .service-panel h3{font-size:clamp(28px,9vw,42px);}
  .service-panel p.tag{
    max-width:100%;
    font-size:16px;
  }
  .sp-index{top:22px; left:22px;}
  .masonry{grid-template-columns:1fr;}
  .mason-item{aspect-ratio:3/4;}
  .mason-overlay{padding:18px;}
  .mason-overlay .cat{font-size:clamp(24px,8vw,34px);}
  .mason-overlay p{max-width:100%; font-size:12.5px; line-height:1.48; margin-bottom:14px;}
  .insta-grid{grid-template-columns:repeat(2, minmax(0,1fr));}
  .process-row{grid-template-columns:1fr;}
  .process-step{
    padding:26px 0;
    border-right:0;
  }
  .child-grid,
  .include-grid,
  .gallery-row,
  .sd-feature-grid,
  .sd-work-grid,
  .sd-process-line{
    grid-template-columns:1fr;
  }
  .child-card,
  .child-card.big,
  .child-card.small{
    grid-column:span 1;
    min-height:230px;
  }
  .child-card .cc-desc{
    max-width:100%;
    font-size:12px;
  }
  .sd-hero,
  .sd-hero-inner{
    min-height:auto;
  }
  .sd-hero-inner{
    padding-top:120px;
    padding-bottom:50px;
  }
  .sd-hero h1{
    font-size:clamp(38px,13vw,60px);
    line-height:.98;
  }
  .sd-hero-copy p{font-size:16px;}
  .sd-hero-card{
    width:100%;
    min-width:0;
    padding:22px;
  }
  .sd-meta-row{grid-template-columns:1fr;}
  .sd-section{padding:66px 0;}
  .sd-work-grid{
    grid-auto-rows:240px;
    gap:16px;
  }
  .sd-work-card.tall,
  .sd-work-card.wide{
    grid-column:auto;
    grid-row:auto;
  }
  .sd-process-line{
    gap:22px;
    margin-top:34px;
  }
  .sd-process-line::before{display:none;}
  .sd-process-line article{padding-top:64px;}
  .sd-tool-row{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    justify-content:stretch;
    gap:14px;
  }
  .sd-tool-row span{
    width:100%;
    height:92px;
  }
  form.inquiry{
    grid-template-columns:1fr;
    gap:16px;
  }
  form.inquiry input,
  form.inquiry textarea,
  form.inquiry select{
    width:100%;
    min-width:0;
    font-size:16px;
  }
  .form-submit{
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }
  .form-submit .btn{width:100%;}
  .info-item a,
  .info-item span.val,
  .foot-col a,
  .foot-col span{
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  footer > .wrap{padding:44px 0 0;}
  .footer-top{
    grid-template-columns:1fr;
    gap:32px;
    padding:34px 22px 46px;
  }
  .foot-logo{max-width:100%;}
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    text-align:left;
  }
}

@media(max-width:640px){
  header.site-header{height:68px;}
  header.site-header.scrolled{
    top:10px;
    width:calc(100% - 20px);
    height:58px;
  }
  header.site-header .header-inner{width:calc(100% - 36px);}
  header.site-header.scrolled .header-inner{width:calc(100% - 24px);}
  .logo-row{min-width:0;}
  .logo-row .logo-text{display:none;}
  .site-logo,
  .logo-mark{
    width:52px;
    height:52px;
  }
  header.site-header.scrolled .site-logo,
  header.site-header.scrolled .logo-mark{
    width:44px;
    height:44px;
  }
  .burger{
    width:34px;
    min-height:44px;
    align-items:center;
    justify-content:center;
    padding:0;
  }
  .mobile-menu{
    width:100%;
    min-height:100svh;
    min-height:100dvh;
    height:auto;
    padding:24px 20px 32px;
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .mobile-menu-top{
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
  }
  .mobile-menu .logo-row{flex:0 1 auto;}
  .mobile-menu .site-logo,
  .mobile-menu .logo-mark{
    width:56px;
    height:56px;
    max-width:56px;
  }
  .close-btn{
    min-width:44px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    padding:0 0 0 12px;
    white-space:nowrap;
  }
  .mobile-menu nav{
    margin-top:34px;
    gap:4px;
    overflow:visible !important;
  }
  .mobile-menu nav a{
    font-size:clamp(28px,8vw,34px);
    line-height:1.18;
    padding:14px 0;
    white-space:normal;
    word-break:normal;
  }
  .mobile-menu .sub-links{
    gap:14px;
    margin:8px 0 10px;
    padding-left:16px;
  }
  .mobile-menu .sub-links a{
    font-size:clamp(13px,3.7vw,15px);
    line-height:1.35;
    padding:0;
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
  }
  .mobile-footer{
    margin-top:40px;
    padding-top:22px;
    gap:10px;
    word-break:break-word;
  }
  .hero h1{font-size:clamp(38px,12vw,54px);}
  .inner-hero h1{font-size:clamp(36px,11vw,58px);}
  .portfolio-filters{
    margin-left:-20px;
    margin-right:-20px;
    padding-left:20px;
    padding-right:20px;
  }
}

@media(max-width:480px){
  .wrap{padding-left:16px; padding-right:16px;}
  .section{padding:60px 0;}
  header.site-header{height:66px;}
  header.site-header.scrolled{height:56px;}
  .site-logo,
  .logo-mark{
    height:50px;
    width:50px;
  }
  header.site-header.scrolled .site-logo,
  header.site-header.scrolled .logo-mark{
    height:42px;
    width:42px;
  }
  .hero-content{padding-top:98px;}
  .about-hero-media,
  .about-hero-media .media-frame,
  .about-split-media,
  .about-split-media .media-frame{
    min-height:300px;
  }
  .about-tags span{
    font-size:10px;
    letter-spacing:.1em;
  }
  .sd-hero-inner{padding-top:112px;}
  .sd-filter-row{
    justify-content:flex-start;
    gap:8px;
  }
  .sd-filter-row span,
  .sd-filter-row button{
    font-size:9.5px;
    padding:9px 12px;
  }
  .foot-logo .kv{font-size:40px;}
  .portfolio-filters{
    width:100%;
    margin-left:0;
    margin-right:0;
    padding-left:0;
    padding-right:0;
  }
  .marquee-wrap{
    overflow:hidden;
    contain:paint;
    padding:16px 0;
  }
  .marquee-track{
    display:flex;
    width:max-content;
    max-width:none;
    transform:translateX(0);
    animation:marquee 34s linear infinite !important;
  }
  .marquee-wrap .marquee-track span{
    width:auto;
    padding:0 24px;
    white-space:nowrap;
    overflow-wrap:normal;
    justify-content:flex-start;
    text-align:left;
    font-size:clamp(19px, 6vw, 24px);
    gap:24px;
  }
}

@media(max-width:360px){
  .wrap{padding-left:14px; padding-right:14px;}
  .section{padding:56px 0;}
  .eyebrow{letter-spacing:.16em;}
  .btn{
    font-size:10.8px;
    letter-spacing:.1em;
    padding-left:14px;
    padding-right:14px;
  }
  header.site-header .header-inner{width:calc(100% - 28px);}
  .site-logo,
  .logo-mark{
    height:46px;
    width:46px;
  }
  .mobile-menu{padding:20px 16px 28px;}
  .mobile-menu .site-logo,
  .mobile-menu .logo-mark{
    width:52px;
    height:52px;
  }
  .mobile-menu nav{margin-top:24px;}
  .mobile-menu nav a{
    font-size:28px;
    padding:11px 0;
  }
  .mobile-menu .sub-links a{font-size:13px;}
  .hero h1{font-size:clamp(34px,12vw,44px);}
  .hero p.desc{font-size:15px;}
  .hero-indicators span{
    width:100%;
    justify-content:center;
  }
  .inner-hero h1,
  .sd-hero h1{
    font-size:clamp(34px,13vw,48px);
  }
  .sd-tool-row span{
    height:82px;
    font-size:24px;
  }
  .footer-top{
    padding-left:18px;
    padding-right:18px;
  }
}
