
/* ===================================================================
   Font: Patriot (Freeface)
   Place font files in assets/fonts/patriot/
   Expected files: Patriot-Regular.woff2, Patriot-Regular.woff, Patriot-Regular.ttf
   =================================================================== */
@font-face {
  font-family: 'Patriot';
  src: url('/assets/fonts/patriot/Patriot-Regular.woff2') format('woff2'),
       url('/assets/fonts/patriot/Patriot-Regular.woff') format('woff'),
       url('/assets/fonts/patriot/Patriot-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Patriot';
  src: url('/assets/fonts/patriot/Patriot-Bold.woff2') format('woff2'),
       url('/assets/fonts/patriot/Patriot-Bold.woff') format('woff'),
       url('/assets/fonts/patriot/Patriot-Bold.ttf') format('truetype');
  font-weight: 700 900;
  font-style: normal;
  font-display: swap;
}
/* ===================================================================
   Bentoji Studio - design system
   Dark, minimal, editorial. SF Pro. 4px radius.
   =================================================================== */

:root{
  --bg:#ffffff;
  --bg-soft:#f5f5f7;
  --bg-card:#f0f0f2;
  --bg-elev:#e8e8ed;
  --placeholder:#e5e5ea;
  --line:rgba(0,0,0,.1);
  --line-strong:rgba(0,0,0,.18);
  --white:#1d1d1f;
  --text:#1d1d1f;
  --muted:#6e6e73;
  --muted-2:#86868b;
  --accent:#e0431f;
  --radius:4px;
  --maxw:1280px;
  --gutter:clamp(22px,5vw,72px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","SF Pro","Helvetica Neue",Arial,sans-serif;
  --font-head:"SF Pro Expanded",system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto !important;}
.lenis.lenis-stopped{overflow:hidden;}

body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--font);font-size:18px;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
  letter-spacing:-.011em;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius);}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
.container-wide{max-width:1560px;}

/* hide the old gradient art everywhere */
.aurora,.grain{display:none !important;}

/* ---------- typography ---------- */
h1,h2,h3,h4{font-family:var(--font-head);font-stretch:expanded;color:var(--white);margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.05;}
.display{font-weight:700;font-stretch:expanded;font-size:clamp(2.7rem,7vw,5.8rem);letter-spacing:-.03em;line-height:1;}
h1{font-weight:700;font-size:clamp(2.3rem,5.2vw,4.2rem);letter-spacing:-.025em;}
h2{font-weight:700;font-size:clamp(1.9rem,4vw,3.2rem);letter-spacing:-.02em;}
h3{font-weight:700;font-size:clamp(1.35rem,2.2vw,1.9rem);letter-spacing:-.015em;}
h4{font-weight:700;font-size:1.18rem;letter-spacing:-.01em;}
p{margin:0 0 1.1rem;}
.lead{font-size:clamp(1.2rem,1.9vw,1.6rem);line-height:1.4;letter-spacing:-.02em;color:var(--text);}
.muted{color:var(--muted);}
strong{color:var(--white);font-weight:600;}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;
  color:var(--muted);margin-bottom:1.4rem;
}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--line-strong);}
.eyebrow.no-line::before{display:none;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:9px;font-family:var(--font);
  font-weight:500;font-size:.97rem;letter-spacing:-.01em;
  padding:13px 24px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;
  transition:background .25s,color .25s,border-color .25s,opacity .25s;
}
.btn svg{width:17px;height:17px;}
.btn-light{background:#1d1d1f;color:#ffffff;border-color:#1d1d1f;}
.btn-light:hover{background:#3a3a3c;border-color:#3a3a3c;color:#ffffff;}
.btn-ghost{background:transparent;color:var(--white);border-color:var(--line-strong);}
.btn-ghost:hover{background:rgba(0,0,0,.06);color:var(--white);border-color:var(--white);}
.btn-lg{padding:16px 30px;font-size:1.02rem;}

.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--white);font-weight:500;border-bottom:1px solid var(--line-strong);padding-bottom:3px;transition:gap .25s,border-color .25s;}
.text-link:hover{gap:13px;border-color:var(--white);}
.text-link svg{width:16px;height:16px;transition:transform .25s;}
.text-link:hover svg{transform:translateX(3px);}

/* ---------- nav ---------- */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(255,255,255,.88);backdrop-filter:saturate(160%) blur(20px);-webkit-backdrop-filter:saturate(160%) blur(20px);border-bottom:1px solid var(--line);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:74px;}
.brand{display:inline-flex;align-items:center;color:var(--white);}
.brand img{display:block;width:auto;height:26px;filter:invert(1);}
.brand .spark{color:var(--accent);font-size:1em;line-height:1;}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);transition:color .25s;position:relative;}
.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--white);}
.nav-cta{margin-left:4px;}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;}
.nav-toggle span{width:24px;height:2px;background:var(--white);display:block;}
.mobile-menu{position:fixed;inset:0;z-index:55;background:#ffffff;transform:translateY(-100%);transition:transform .45s var(--ease);padding:96px var(--gutter) 40px;display:flex;flex-direction:column;}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu a{font-family:var(--font);font-weight:600;font-size:2rem;letter-spacing:-.03em;color:var(--white);padding:14px 0;border-bottom:1px solid var(--line);}
.mobile-menu .btn{margin-top:28px;align-self:flex-start;}

/* ---------- layout ---------- */
.section{padding:clamp(80px,12vw,170px) 0;position:relative;}
.section-sm{padding:clamp(48px,7vw,90px) 0;}
.section-head{max-width:820px;margin-bottom:clamp(44px,7vw,80px);}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.grid{display:grid;gap:clamp(24px,4vw,64px);}
.asym{display:grid;grid-template-columns:1fr;gap:clamp(28px,5vw,80px);align-items:center;}
@media(min-width:900px){.asym{grid-template-columns:1.05fr .95fr;}.asym.reverse{grid-template-columns:.95fr 1.05fr;}.asym.reverse .asym-media{order:2;}}
.divider{height:1px;background:var(--line);border:0;margin:0;}

/* ---------- placeholder thumbnail (grayscale, no gradient) ---------- */
.thumb-art{position:relative;width:100%;aspect-ratio:16/10;border-radius:var(--radius);overflow:hidden;background:var(--placeholder);border:1px solid var(--line);}
.thumb-art .mesh{position:absolute;inset:0;background:var(--placeholder);}
.thumb-art .glass{display:none;}
.thumb-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.thumb-art.thumb-top img{object-position:center top;}.thumb-art.thumb-contain{aspect-ratio:auto;height:auto;}.thumb-art.thumb-contain img{position:static;inset:unset;width:100%;height:auto;object-fit:cover;display:block;}
.thumb-art.thumb-placeholder{aspect-ratio:16/9;display:grid;place-items:center;padding:clamp(18px,3vw,34px);}
.placeholder-inner{display:grid;place-items:center;gap:12px;text-align:center;color:var(--white);}
.ph-number{display:grid;place-items:center;width:clamp(42px,6vw,64px);height:clamp(42px,6vw,64px);border:1px solid var(--line-strong);border-radius:999px;font-size:clamp(1rem,2vw,1.35rem);font-weight:700;}
.ph-label{max-width:24ch;color:var(--muted);font-size:clamp(.88rem,1.4vw,1rem);line-height:1.35;}

/* ---------- hero ---------- */
.hero{position:relative;min-height:clamp(620px,88svh,840px);display:flex;align-items:center;overflow:hidden;isolation:isolate;padding:clamp(130px,18vh,210px) 0 clamp(72px,12vh,120px);background:#f8f8fa;}
.hero::before{content:"";position:absolute;left:-14%;right:-14%;bottom:-24%;height:76%;z-index:0;pointer-events:none;background:radial-gradient(58% 92% at 7% 73%,rgba(0,109,255,.55) 0%,rgba(0,210,255,.4) 26%,transparent 56%),radial-gradient(54% 90% at 33% 80%,rgba(0,222,173,.38) 0%,transparent 56%),radial-gradient(54% 88% at 69% 78%,rgba(255,87,16,.48) 0%,rgba(255,179,91,.38) 34%,transparent 62%),radial-gradient(40% 72% at 93% 71%,rgba(235,126,255,.42) 0%,transparent 60%);filter:blur(36px) saturate(110%);opacity:.7;transform:translate3d(0,0,0) scale(1.08);animation:heroAuraDrift 11s ease-in-out infinite alternate;will-change:transform;}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#f8f8fa 0%,rgba(248,248,250,.92) 14%,rgba(248,248,250,.4) 42%,rgba(248,248,250,0) 62%);}
.hero .container{position:relative;z-index:2;}
.hero .display{max-width:16ch;}
.hero .lead{max-width:52ch;margin-top:1.8rem;color:var(--muted);}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:2.6rem;}
.hero .btn-light{box-shadow:0 8px 28px rgba(0,0,0,.12);}
.hero .btn-ghost{background:rgba(0,0,0,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
@keyframes heroAuraDrift{
  0%{transform:translate3d(-5%,-1%,0) scale(1.08);}
  50%{transform:translate3d(3%,-6%,0) scale(1.15);}
  100%{transform:translate3d(7%,-3%,0) scale(1.1);}
}
@keyframes footerAuraDrift{
  0%{transform:translate3d(0,0,0) scale(1);opacity:.55;}
  40%{transform:translate3d(-5%,0,0) scale(1.06);opacity:.64;}
  100%{transform:translate3d(5%,0,0) scale(1.03);opacity:.48;}
}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
@media(min-width:760px){.svc-grid{grid-template-columns:1fr 1fr;}}
.svc{background:var(--bg);padding:clamp(28px,3vw,46px);transition:background .3s;}
.svc:hover{background:var(--bg-soft);}
.svc .num{font-size:.8rem;color:var(--muted-2);letter-spacing:.04em;}
.svc h4{margin:16px 0 10px;font-size:1.3rem;}
.svc p{color:var(--muted);margin:0;font-size:1rem;}

/* ---------- work grid ---------- */
.work-grid{display:grid;grid-template-columns:1fr;gap:clamp(40px,6vw,84px);}
@media(min-width:760px){
  .work-grid{grid-template-columns:1fr 1fr;}
  .work-grid .work-card:nth-child(4n+1){grid-column:1 / -1;}
  .work-grid .work-card:nth-child(4n+1) .thumb-art{aspect-ratio:21/9;}
}
.work-grid .work-card .thumb-art.thumb-placeholder{aspect-ratio:16/9;}
.work-card{display:block;}
.work-card .thumb-art{transition:transform .5s var(--ease);}
.work-card:hover .thumb-art{transform:translateY(-4px);}
.work-meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:20px;}
.work-meta h3{font-size:clamp(1.3rem,2vw,1.7rem);}
.work-meta .yr{color:var(--muted-2);font-size:.9rem;white-space:nowrap;}
.work-card .cat{text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:var(--muted);margin-top:4px;display:block;}
.work-card .loc{color:var(--muted-2);margin:6px 0 0;font-size:.9rem;}
.work-card .desc{color:var(--muted);margin:10px 0 0;font-size:1rem;max-width:54ch;}
.work-card .arrow{display:inline-flex;align-items:center;gap:8px;margin-top:16px;color:var(--white);font-weight:500;font-size:.95rem;}
.work-card .arrow svg{width:16px;height:16px;transition:transform .25s;}
.work-card:hover .arrow svg{transform:translate(3px,-3px);}

/* Work detail: editorial two-column layout */
/* Wide container for detail pages */

@media(min-width:600px){.work-related-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:1100px){.work-related-grid{grid-template-columns:1fr 1fr 1fr;}}
/* compact cards inside related */
.work-related .work-card{gap:10px;}
.work-related .thumb-art{aspect-ratio:16/9;}
.work-related .work-meta h3{font-size:1rem;}
.work-related .desc{font-size:.88rem;}


/* ===================================================================
   Work pages (listing + detail): dark theme
   =================================================================== */
body.work-page,
body.work-listing {
  background:#111;
  --bg:#111;
  --bg-soft:#1c1c1e;
  --white:#f5f5f7;
  --text:#f5f5f7;
  --muted:#b0b0b6;
  --muted-2:#94949a;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.16);
}
body.work-page .site-nav,
body.work-listing .site-nav {
  background:#111;
  border-bottom:1px solid rgba(255,255,255,.08);
}
body.work-page .brand img,
body.work-listing .brand img { filter:none; }
body.work-page .nav-links a,
body.work-listing .nav-links a { color:var(--muted); }
body.work-page .nav-links a:hover,
body.work-listing .nav-links a:hover { color:var(--white); }

/* ── Work detail v2 layout ─────────────────────────────────────── */
body.work-page .site-nav .container { max-width:100%; padding:0 32px; }

[data-work-detail] { display:block; }

.work-detail-v2 {
  display:grid;
  grid-template-columns:minmax(300px, 26%) 1fr;
  min-height:calc(100vh - var(--nav-h, 64px));
}
@media(max-width:820px){
  .work-detail-v2 { grid-template-columns:1fr; }
  .work-sidebar {
    position:static;
    height:auto;
    border-right:none;
    border-bottom:1px solid var(--line);
  }
  .work-img-placeholder { min-height:60vh; }
}

/* ── Left sidebar ──────────────────────────────────────────────── */
.work-sidebar {
  position:sticky;
  top:var(--nav-h, 64px);
  height:calc(100vh - var(--nav-h, 64px));
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--line);
}
.work-sidebar::-webkit-scrollbar { display:none; }

.work-sidebar-head {
  padding:28px 24px 24px;
  border-bottom:1px solid var(--line);
  flex-shrink:0;
}

.work-back {
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:600;
  color:var(--muted-2);
  text-decoration:none;
  margin-bottom:22px;
  transition:color .18s;
}
.work-back:hover { color:var(--white); }
.work-back svg { flex-shrink:0; }

.work-cat {
  display:block;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:600;
  color:var(--muted-2);
  margin-bottom:8px;
}
.work-title {
  font-family:'Patriot', var(--font);
  font-size:clamp(1.5rem,2.8vw,2.4rem);
  font-weight:900;
  color:var(--white);
  line-height:1.0;
  letter-spacing:-.02em;
  text-transform:uppercase;
  margin:0 0 8px;
}
.work-loc {
  font-size:.62rem;
  color:var(--muted-2);
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-top:4px;
}

/* ── Accordion ─────────────────────────────────────────────────── */
.work-accordion {
  flex:1 0 auto;
  padding:4px 26px;
}

.acc-item { border-bottom:1px solid var(--line); }

.acc-trigger {
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:15px 0;
  background:none;
  border:none;
  cursor:pointer;
  font-family:inherit;
}
.acc-label {
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:600;
  color:var(--muted-2);
  text-align:left;
  transition:color .18s;
}
.acc-icon {
  flex-shrink:0;
  color:var(--muted-2);
  display:flex;
  align-items:center;
  transition:transform .25s ease, color .18s;
}
.acc-item.open .acc-label,
.acc-item.open .acc-icon,
.acc-trigger:hover .acc-label,
.acc-trigger:hover .acc-icon { color:var(--white); }
.acc-item.open .acc-icon { transform:rotate(180deg); }

.acc-body {
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .3s ease;
}
.acc-item.open .acc-body { grid-template-rows:1fr; }
.acc-inner { overflow:hidden; padding-bottom:0; transition:padding-bottom .3s ease; }
.acc-item.open .acc-inner { padding-bottom:22px; }
.acc-inner p { font-size:.95rem; line-height:1.75; color:var(--muted); margin:0 0 12px; }
.acc-inner p:last-child { margin-bottom:0; }
.acc-inner ul { padding-left:16px; margin:0; }
.acc-inner li { font-size:.95rem; line-height:1.75; color:var(--muted); margin-bottom:7px; }

/* ── Sidebar footer ────────────────────────────────────────────── */
.work-sidebar-foot {
  flex-shrink:0;
  padding:16px 24px 24px;
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.work-visit-btn {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.8rem;
  padding:11px 16px;
  width:100%;
  justify-content:center;
  box-sizing:border-box;
}
.work-nav-btns { margin-top:0; padding-top:0; border-top:none; }
.work-nav-btn {
  display:flex;
  align-items:center;
  gap:8px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  text-decoration:none;
  transition:border-color .2s,background .2s;
}
.work-nav-btn:hover { border-color:var(--line-strong); background:var(--bg-soft); }
.work-nav-label { font-size:.58rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted-2); font-weight:600; white-space:nowrap; }
.work-nav-title { flex:1; font-size:.85rem; font-weight:600; color:var(--white); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.work-nav-dir { flex-shrink:0; color:var(--muted-2); display:flex; align-items:center; }

/* ── Right imagery panel ───────────────────────────────────────── */
.work-imagery {
  display:flex;
  flex-direction:column;
  gap:3px;
  background:#0f0f0f;
  padding:3px;
  align-self:start;
}
.work-img-wrap { line-height:0; }
.work-img-wrap img { width:100%; height:auto; display:block; }
.work-img-placeholder { min-height:calc(100vh - var(--nav-h, 64px)); background:#191919; }

/* Work listing dark cards */
body.work-listing .card { background:var(--bg-soft); }
body.work-listing .card:hover { background:#242426; }

/* No border on imagery in the work listing (case study list) */
body.work-listing .thumb-art { border:none; }
body.work-listing .thumb-art .mesh { background:var(--bg-soft); }


/* ===================================================================
   Restored components: CTA, forms, footer, reveal, homepage sections,
   section-ink / ink-glow utilities (recovered after rewrite)
   =================================================================== */
/* ---------- CTA ---------- */
.cta-callout{position:relative;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-soft);padding:clamp(48px,6vw,80px) clamp(32px,5vw,72px);text-align:left;}
.cta-callout::before{content:"";position:absolute;right:-10%;top:-30%;width:70%;height:180%;z-index:0;pointer-events:none;background:radial-gradient(52% 60% at 70% 40%,rgba(0,109,255,.18) 0%,transparent 60%),radial-gradient(40% 50% at 90% 70%,rgba(255,87,16,.14) 0%,transparent 60%),radial-gradient(36% 44% at 50% 60%,rgba(0,222,173,.1) 0%,transparent 60%);filter:blur(28px);opacity:1;}
.cta-callout-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,64px);align-items:center;}
@media(min-width:760px){.cta-callout-inner{grid-template-columns:1fr 1fr;}}
.cta-callout-text{}
.cta-callout h2{max-width:22ch;margin:0;}
.cta-callout p{max-width:42ch;margin:1.1rem 0 0;color:var(--muted);}
.cta-callout .hero-actions{justify-content:flex-start;margin-top:2rem;}
.cta-visual{display:none;position:relative;align-items:center;justify-content:center;min-height:180px;}
@media(min-width:760px){.cta-visual{display:flex;}}
.cta-visual-mark{position:relative;width:160px;height:160px;flex-shrink:0;}
.cta-visual-mark::before,.cta-visual-mark::after{content:"";position:absolute;border-radius:50%;animation:ctaOrbDrift 7s ease-in-out infinite alternate;}
.cta-visual-mark::before{inset:0;background:radial-gradient(circle at 38% 38%,rgba(0,109,255,.55),rgba(0,222,173,.3) 55%,transparent 75%);animation-duration:8s;}
.cta-visual-mark::after{inset:14%;background:radial-gradient(circle at 62% 62%,rgba(255,87,16,.5),rgba(235,126,255,.25) 55%,transparent 75%);animation-duration:10s;animation-direction:alternate-reverse;}
.cta-visual-lines{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;}
.cta-visual-lines span{display:block;width:3px;border-radius:999px;background:rgba(0,0,0,.4);animation:ctaLinePulse 2.2s ease-in-out infinite;}
.cta-visual-lines span:nth-child(1){height:36px;animation-delay:0s;}
.cta-visual-lines span:nth-child(2){height:64px;animation-delay:.22s;}
.cta-visual-lines span:nth-child(3){height:88px;animation-delay:.08s;}
.cta-visual-lines span:nth-child(4){height:72px;animation-delay:.34s;}
.cta-visual-lines span:nth-child(5){height:44px;animation-delay:.16s;}
.cta-visual-lines span:nth-child(6){height:56px;animation-delay:.44s;}
@keyframes ctaOrbDrift{0%{transform:translate(0,0) scale(1);}50%{transform:translate(8px,-6px) scale(1.06);}100%{transform:translate(-6px,6px) scale(.97);}}
@keyframes ctaLinePulse{0%,100%{transform:scaleY(.5);opacity:.5;}45%{transform:scaleY(1);opacity:1;}}

/* ---------- forms ---------- */
.form{display:grid;gap:22px;max-width:620px;}
.field{display:flex;flex-direction:column;gap:8px;}
.field label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.field label .req{color:var(--accent);}
.field input,.field textarea{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;color:var(--white);font-size:1rem;font-family:var(--font);width:100%;resize:vertical;}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--line-strong);background:var(--bg-elev);}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-2);}
.form-row{display:grid;grid-template-columns:1fr;gap:22px;}
@media(min-width:620px){.form-row{grid-template-columns:1fr 1fr;}}
.form-note{font-size:.95rem;margin:0;}
.form-note.ok{color:#7fd69a;}
.form-note.err{color:#ff7a6b;}
.hp{position:absolute;left:-9999px;opacity:0;}
.contact-list{display:grid;gap:22px;}
.contact-list .k{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:var(--muted-2);margin-bottom:4px;}
.contact-list a{color:var(--white);border-bottom:1px solid var(--line);}
.contact-list a:hover{border-color:var(--white);}

/* ---------- footer ---------- */
.site-footer{position:relative;overflow:hidden;isolation:isolate;border-top:1px solid var(--line);background:#f5f5f7;padding:clamp(56px,7vw,90px) 0 40px;}
.site-footer::before{content:"";position:absolute;left:-12%;right:-12%;top:-15%;height:65%;z-index:0;pointer-events:none;background:radial-gradient(56% 92% at 7% 60%,rgba(0,109,255,.3) 0%,rgba(0,210,255,.2) 28%,transparent 58%),radial-gradient(46% 80% at 34% 70%,rgba(0,222,173,.22) 0%,transparent 58%),radial-gradient(56% 90% at 70% 58%,rgba(255,87,16,.28) 0%,rgba(255,179,91,.2) 34%,transparent 62%),radial-gradient(40% 72% at 96% 62%,rgba(235,126,255,.22) 0%,transparent 60%);filter:blur(30px) saturate(110%);opacity:.6;transform:translate3d(0,0,0) scale(1.08);animation:footerAuraDrift 16s ease-in-out infinite alternate;will-change:transform,opacity;}
.site-footer .container{position:relative;z-index:1;}
.footer-top{display:grid;grid-template-columns:1fr;gap:40px;}
@media(min-width:760px){.footer-top{grid-template-columns:1.6fr 1fr 1fr;}}
.footer-brand .brand{margin-bottom:14px;}
.footer-brand .brand img{height:28px;filter:invert(1);}
.footer-brand p{color:var(--muted);max-width:36ch;}
.footer-col h5{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:var(--muted-2);margin:0 0 16px;font-weight:600;}
.footer-col a{display:block;color:var(--text);margin-bottom:11px;font-size:.97rem;transition:color .25s;}
.footer-col a:hover{color:var(--white);}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:clamp(44px,6vw,72px);padding-top:24px;border-top:1px solid var(--line);color:var(--muted-2);font-size:.85rem;}
.footer-bottom a{color:var(--muted-2);}
.footer-bottom a:hover{color:var(--text);}

/* ---------- reveal ---------- */
/* transform-only reveal: content is always visible (opacity never hidden),
   so it can never get stuck blank; it just gently slides up when revealed. */
html.js .reveal{transform:translateY(20px);transition:transform .9s var(--ease);will-change:transform;}
html.js .reveal.in{transform:none;}
html.js .reveal.d1{transition-delay:.07s;}
html.js .reveal.d2{transition-delay:.14s;}
html.js .reveal.d3{transition-delay:.21s;}
@media(prefers-reduced-motion:reduce){html.js .reveal{transform:none;transition:none;}html{scroll-behavior:auto;}.hero::before,.client-track{animation:none;}.client-track{flex-wrap:wrap;justify-content:center;width:auto;padding:0 var(--gutter);}.client-marquee::before,.client-marquee::after{display:none;}}

/* ---------- responsive ---------- */
@media(max-width:880px){
  body{font-size:17px;}
  .nav-links{display:none;}
  .nav-toggle{display:flex;}
  .work-grid{grid-template-columns:1fr;}
  .work-grid .work-card:nth-child(4n+1) .thumb-art{aspect-ratio:16/10;}
}

/* ================================================================
   Homepage additions – About / Services / Why / Process
   ================================================================ */

/* About layout – two-column on desktop */
.about-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(48px, 8vw, 100px);
  align-items: start;
}
.about-head { max-width: 480px; }
.about-head h2 { margin-top: 14px; }
.about-body p { color: var(--muted); margin: 0 0 1.1em; font-size: 1.02rem; line-height: 1.72; }
.about-body p:last-child { margin-bottom: 0; }

/* Client carousel */
.clients{
  padding:clamp(52px,8vw,96px) 0;
  overflow:hidden;
  background:#ffffff;
}
.clients-head{max-width:720px;margin-bottom:clamp(28px,4vw,44px);}
.clients-head h2{
  max-width:560px;
  color:var(--muted);
  font-family:var(--font);
  font-size:clamp(1.15rem,2vw,1.65rem);
  font-weight:500;
  line-height:1.35;
  letter-spacing:-.018em;
}
.client-marquee{
  position:relative;
  overflow:hidden;
  margin-inline:calc(var(--gutter) * -1);
  padding:6px 0;
}
.client-marquee::before,
.client-marquee::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  z-index:2;
  width:min(18vw,180px);
  pointer-events:none;
}
.client-marquee::before{left:0;background:linear-gradient(90deg,var(--bg),rgba(255,255,255,0));}
.client-marquee::after{right:0;background:linear-gradient(270deg,var(--bg),rgba(255,255,255,0));}
.client-track{
  display:flex;
  align-items:center;
  gap:14px;
  width:max-content;
  animation:clientMarquee 64s linear infinite;
  will-change:transform;
}
.client-marquee:hover .client-track{animation-play-state:paused;}
.client-logo{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  min-width:clamp(144px,16vw,214px);
  height:72px;
  padding:0 22px;
  color:rgba(0,0,0,.45);
  font-size:.74rem;
  font-weight:650;
  letter-spacing:.14em;
  line-height:1.25;
  text-align:center;
  text-transform:uppercase;
  white-space:nowrap;
}
.client-logo img{
  display:block;
  width:auto;
  max-width:154px;
  max-height:36px;
  object-fit:contain;
  filter:opacity(.75);
  mix-blend-mode:normal;
}
.client-logo img.logo-light{filter:opacity(.7);mix-blend-mode:normal;}
@keyframes clientMarquee{to{transform:translateX(-50%);}}

/* Services – 2×2 expanded grid */
.svc-expanded {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.svc-exp {
  background: var(--bg);
  padding: clamp(32px, 4vw, 54px);
  display: flex;
  flex-direction: column;
  transition: background .3s;
}
.svc-exp:hover { background: var(--bg-soft); }
.svc-exp .num { font-size: .8rem; color: var(--muted-2); letter-spacing: .04em; }
.svc-exp h4 { margin: 14px 0 10px; font-size: 1.3rem; }
.svc-tagline { font-size: 1rem; color: var(--text); margin: 0 0 14px; font-weight: 500; }
.svc-exp > p { color: var(--muted); margin: 0 0 18px; font-size: .97rem; line-height: 1.65; }
.svc-list-label { font-size: .78rem; text-transform: uppercase; letter-spacing: .09em; color: var(--muted-2); margin: 0 0 8px; font-weight: 600; }
.svc-exp ul { margin: 0 0 26px; padding: 0 0 0 1em; color: var(--muted); font-size: .92rem; line-height: 1.9; }
.svc-link {
  margin-top: auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: .9rem;
  color: var(--white);
  font-weight: 500;
  border-bottom: 1px solid var(--line-strong);
  padding-bottom: 2px;
  transition: gap .25s, border-color .25s;
}
.svc-link svg { width: 15px; height: 15px; flex-shrink: 0; }
.svc-link:hover { gap: 12px; border-color: var(--white); }

/* Why grid – 2×2 */
.why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.why-item {
  background: var(--bg);
  padding: clamp(32px, 4vw, 52px);
  transition: background .3s;
}
.why-item:hover { background: var(--bg-soft); }
.why-item h4 { font-size: 1.05rem; margin: 0 0 10px; }
.why-item p { margin: 0; color: var(--muted); font-size: .97rem; line-height: 1.65; }

/* Process – 4-step row */
.process-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.process-step {
  background: var(--bg);
  padding: clamp(28px, 3.5vw, 48px);
  transition: background .3s;
}
.process-step:hover { background: var(--bg-soft); }
.step-num {
  display: block;
  font-size: 2.4rem;
  font-weight: 700;
  font-family: var(--font-head);
  color: var(--line-strong);
  margin-bottom: 18px;
  line-height: 1;
  letter-spacing: -.04em;
}
.process-step h4 { font-size: 1.05rem; margin: 0 0 10px; }
.process-step p { color: var(--muted); margin: 0; font-size: .92rem; line-height: 1.65; }

/* Responsive */
/* Service card wireframe visuals */
.svc-visual {
  width: 100%;
  height: 192px;
  margin-bottom: 28px;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(0,0,0,0.04);
  flex-shrink: 0;
}
.svc-visual svg { width: 100%; height: 100%; display: block; }

@media (max-width: 900px) {
  .about-layout { grid-template-columns: 1fr; gap: clamp(28px, 5vw, 48px); }
  .svc-expanded { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .brand img{height:22px;}
  .clients{padding:48px 0;}
  .client-logo{min-width:138px;height:62px;font-size:.68rem;letter-spacing:.11em;padding:0 16px;}
  .client-logo img{max-width:122px;max-height:30px;}
  .process-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════
   DARK SECTION UTILITY  .section-ink
   Redefines all CSS variables so every component inside
   automatically reads correct dark-mode values.
═══════════════════════════════════════════════════════════ */
.section-ink{
  background:#111111;
  color:#ebebeb;
  --bg:#111111;
  --bg-soft:#1c1c1e;
  --bg-card:#2c2c2e;
  --white:#f0f0f0;
  --text:#ebebeb;
  --muted:#aeaeb2;
  --muted-2:#8e8e93;
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.16);
  --placeholder:rgba(255,255,255,.06);
  position:relative;
}
.section-ink h1,
.section-ink h2,
.section-ink h3,
.section-ink h4{color:#f0f0f0;}
.section-ink .eyebrow{color:rgba(255,255,255,.38);}
.section-ink .eyebrow::before{background:rgba(255,255,255,.18);}
.section-ink .btn-light{background:#f0f0f0;color:#111111;border-color:#f0f0f0;}
.section-ink .btn-light:hover{background:#ffffff;border-color:#ffffff;color:#000;}
.section-ink .btn-ghost{color:#f0f0f0;border-color:rgba(255,255,255,.22);}
.section-ink .btn-ghost:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.4);color:#fff;}
/* pricing page specifics inside dark sections */
.section-ink .pr-label-n{color:rgba(255,255,255,.08);}
.section-ink .pr-hero-nav a{border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.45);}
.section-ink .pr-hero-nav a:hover{border-color:rgba(255,255,255,.5);color:#f0f0f0;}

/* ── Warm glow for dark hero sections ────────────────────── */
.ink-glow::before{
  content:"";
  position:absolute;
  pointer-events:none;
  inset:0;
  z-index:0;
  background:
    radial-gradient(60% 80% at 90% 110%, rgba(224,67,31,.18) 0%, transparent 60%),
    radial-gradient(40% 60% at 10% 60%, rgba(255,160,80,.07) 0%, transparent 55%);
  border-radius:inherit;
}
.ink-glow > .container{position:relative;z-index:1;}

/* ═══════════════════════════════════════════════════════════
   DARK FOOTER  (global - affects every page)
═══════════════════════════════════════════════════════════ */
.site-footer{
  background:#111111;
  color:#aeaeb2;
  --white:#f0f0f0;
  --text:#ebebeb;
  --muted:#8e8e93;
  --muted-2:#636366;
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.16);
}
/* Logo is a white SVG - on dark bg it's correct; remove the invert */
.site-footer .brand img{filter:none !important;height:28px;}
.site-footer .footer-brand p{color:#8e8e93;}
.site-footer .footer-col h5{color:#636366;}
.site-footer .footer-col a{color:#aeaeb2;}
.site-footer .footer-col a:hover{color:#f0f0f0;}
.site-footer .footer-bottom{color:#636366;border-top-color:rgba(255,255,255,.09);}
.site-footer .footer-bottom a{color:#636366;}
.site-footer .footer-bottom a:hover{color:#aeaeb2;}

