/* ════════════════════════════════════════════════════════════
   TRIPLVI — Services v3 · rotating hero · spine flow · sub-service
   editorial blocks. Loaded on /services/ pages only.
   ════════════════════════════════════════════════════════════ */

/* ── One continuous canvas: no hard cuts between sections ── */
.svc-flow { position:relative; background:var(--bg-deep); overflow:clip; }
.svc-flow::before {
  content:''; position:absolute; inset:0; z-index:0; opacity:0.45; pointer-events:none;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size: clamp(60px,8vw,120px) clamp(60px,8vw,120px);
  mask-image: linear-gradient(#000 0%, transparent 18%, transparent 82%, #000 100%),
              radial-gradient(90% 60% at 85% 5%, #000, transparent 70%);
  -webkit-mask-image: radial-gradient(120% 90% at 80% 0%, #000 0%, transparent 80%);
}
.svc-flow > * { position:relative; z-index:1; }
.svc-flow .section { background:transparent; }
.flow-glow { position:absolute; width:56vw; height:56vw; border-radius:50%; z-index:0; pointer-events:none;
  background: radial-gradient(circle, var(--glow) 0%, transparent 62%); }
.flow-glow.g1 { top:-14%; right:-12%; }
.flow-glow.g2 { top:34%; left:-24%; }
.flow-glow.g3 { top:66%; right:-20%; }

/* bridge removed by request — the crimson block starts on a clean flat edge */
.bridge-cta { display:none; }
.cta-strip { border:none; }

/* ══ ROTATING HERO ══ */
.svc-hero {
  position:relative; overflow:visible;
  padding: calc(var(--nav-h) + clamp(56px,8vh,100px)) 0 clamp(48px,7vh,88px);
}
.svc-hero { min-height: min(86vh, 840px); display:flex; align-items:center; }
.svc-hero-inner { position:relative; z-index:2; width:100%; }
.svc-hero-copy { min-width:0; max-width: min(62ch, 54%); }

.hero-slides { position:relative; margin-top:8px; }
.hero-slide { display:none; }
.hero-slide.active { display:block; }
html.js-v2 .hero-slide { display:block; position:absolute; inset:0; opacity:0; visibility:hidden; transform:translateY(14px); transition:opacity 0.55s var(--ease), transform 0.55s var(--ease), visibility 0s 0.55s; }
html.js-v2 .hero-slide.active { position:relative; opacity:1; visibility:visible; transform:none; transition:opacity 0.65s var(--ease) 0.12s, transform 0.65s var(--ease) 0.12s, visibility 0s; }

.hero-slide .eyebrow { min-height:20px; }
.svc-hero-title {
  font-size: clamp(42px, 6.6vw, 104px); font-weight:800; line-height:0.95;
  letter-spacing:-0.03em; text-transform:uppercase; margin-top:20px; text-wrap:balance;
}
.svc-hero-sub { margin-top:24px; max-width:52ch; }


/* photo woven into the hero — masked, tinted, slow drift */
.hero-photo { position:absolute; top:0; right:0; bottom:0; width:min(64%, 1040px); z-index:0; pointer-events:none; overflow:hidden; }
.hp-slide { position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; }
.hp-slide.active { opacity:1; }
html:not(.js-v2) .hp-slide:first-child { opacity:1; }
.hp-slide {
  -webkit-mask-image: radial-gradient(88% 105% at 72% 46%, #000 26%, rgba(0,0,0,0.55) 52%, transparent 76%);
  mask-image: radial-gradient(88% 105% at 72% 46%, #000 26%, rgba(0,0,0,0.55) 52%, transparent 76%);
}
.hp-slide img { width:100%; height:100%; object-fit:cover; display:block;
  filter: saturate(0.6) contrast(1.05) brightness(0.94);
  transform-origin:center; animation: kenA 18s ease-in-out infinite alternate; }
.hp-slide:nth-child(even) img { animation-name: kenB; }
@keyframes kenA { from { transform:scale(1.04); } to { transform:scale(1.15) translate(-2.4%, 1.6%); } }
@keyframes kenB { from { transform:scale(1.14) translate(2%, -1%); } to { transform:scale(1.04); } }
.hp-slide::after { content:''; position:absolute; inset:0;
  background: linear-gradient(90deg, var(--bg-deep) 0%, transparent 42%),
              linear-gradient(0deg, color-mix(in srgb, var(--bg-deep) 55%, transparent) 0%, transparent 34%),
              radial-gradient(70% 70% at 74% 40%, rgba(139,0,0,0.16), transparent 68%); }
[data-theme="light"] .hp-slide img { filter: saturate(0.62) contrast(1.02) brightness(1.04); }
@media (prefers-reduced-motion: reduce) { .hp-slide img { animation:none; } }

/* per-service progress rail: I → VI, clickable */
.hero-rail { margin-top:clamp(28px,4vh,44px); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rail-btn {
  font-size:11px; font-weight:800; letter-spacing:0.14em; color:var(--tx-3);
  border:1px solid var(--line); padding:9px 0; width:52px; text-align:center;
  position:relative; overflow:hidden; transition:color 0.25s, border-color 0.25s;
}
.rail-btn i { position:absolute; left:0; bottom:0; height:2px; width:100%; background:var(--crimson);
  transform:scaleX(0); transform-origin:left; font-style:normal; }
.rail-btn.active { color:var(--tx); border-color:var(--line-str); }
.rail-btn.active i { animation: railFill var(--rail-ms,5200ms) linear forwards; }
.rail-btn:hover { color:var(--tx); border-color:var(--crimson); }
@keyframes railFill { to { transform:scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .rail-btn.active i { animation:none; transform:scaleX(1); } }


/* svg tokens */
.hv-line   { stroke:var(--tx-3); fill:none; stroke-width:1.5; }
.hv-strong { stroke:var(--tx); fill:none; stroke-width:2; }
.hv-cr     { stroke:var(--crimson-2); fill:none; stroke-width:2; }
.hv-fill-cr{ fill:var(--crimson-2); }
.hv-fill-tx{ fill:var(--tx); }
.hv-fill-dim{ fill:var(--tx-faint); }

/* I — Communication: broadcast rings + rising bars */
.hv-ring { transform-origin:150px 120px; opacity:0; }
.hv-slide.active .hv-ring { animation: hvRing 2.6s ease-out infinite; }
.hv-slide.active .hv-ring.r2 { animation-delay:0.85s; }
.hv-slide.active .hv-ring.r3 { animation-delay:1.7s; }
@keyframes hvRing { 0%{transform:scale(0.2);opacity:0.9} 100%{transform:scale(1.35);opacity:0} }
.hv-bar { transform-box:fill-box; transform-origin:bottom; transform:scaleY(0.15); }
.hv-slide.active .hv-bar { animation: hvBar 2.4s var(--ease) infinite alternate; }
.hv-slide.active .hv-bar.b2 { animation-delay:0.25s; } .hv-slide.active .hv-bar.b3 { animation-delay:0.5s; } .hv-slide.active .hv-bar.b4 { animation-delay:0.75s; }
@keyframes hvBar { 0%{transform:scaleY(0.18)} 100%{transform:scaleY(1)} }
.hv-dash { stroke-dasharray:6 8; }
.hv-slide.active .hv-dash { animation: hvDash 1.6s linear infinite; }
@keyframes hvDash { to { stroke-dashoffset:-28; } }

/* II — Web: interface drawing itself + cursor */
.hv-draw { stroke-dasharray: 340; stroke-dashoffset: 340; }
.hv-slide.active .hv-draw { animation: hvDraw 2.2s var(--ease) forwards; }
.hv-slide.active .hv-draw.d2 { animation-delay:0.4s; } .hv-slide.active .hv-draw.d3 { animation-delay:0.8s; }
@keyframes hvDraw { to { stroke-dashoffset:0; } }
.hv-cursor { opacity:0; }
.hv-slide.active .hv-cursor { animation: hvBlink 1.1s steps(1) infinite 1.6s; }
@keyframes hvBlink { 0%,49%{opacity:1} 50%,100%{opacity:0} }
.hv-node { opacity:0; }
.hv-slide.active .hv-node { animation: hvPop 0.5s var(--ease) forwards; }
.hv-slide.active .hv-node.n2 { animation-delay:0.9s; } .hv-slide.active .hv-node.n3 { animation-delay:1.3s; } .hv-slide.active .hv-node.n4 { animation-delay:1.7s; }
@keyframes hvPop { from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none} }

/* III — Social: bubbles + pulse */
.hv-bub { opacity:0; transform:translateY(12px); }
.hv-slide.active .hv-bub { animation: hvBub 4.8s var(--ease) infinite; }
.hv-slide.active .hv-bub.u2 { animation-delay:0.6s; } .hv-slide.active .hv-bub.u3 { animation-delay:1.2s; }
@keyframes hvBub { 0%{opacity:0;transform:translateY(12px)} 12%,78%{opacity:1;transform:none} 92%,100%{opacity:0;transform:translateY(-8px)} }
.hv-pulse { transform-origin:center; transform-box:fill-box; }
.hv-slide.active .hv-pulse { animation: hvPulse 1.5s ease-in-out infinite; }
@keyframes hvPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.28)} }
.hv-typing circle { opacity:0.25; }
.hv-slide.active .hv-typing circle { animation: hvType 1.2s ease-in-out infinite; }
.hv-slide.active .hv-typing circle:nth-child(2) { animation-delay:0.18s; }
.hv-slide.active .hv-typing circle:nth-child(3) { animation-delay:0.36s; }
@keyframes hvType { 0%,100%{opacity:0.25} 40%{opacity:1} }

/* IV — Film: rotating reel dash + playhead */
.hv-reel { transform-origin:center; transform-box:fill-box; stroke-dasharray:10 14; }
.hv-slide.active .hv-reel { animation: hvSpin 7s linear infinite; }
@keyframes hvSpin { to { transform:rotate(360deg); } }
.hv-playhead { }
.hv-slide.active .hv-playhead { animation: hvHead 4.6s linear infinite; }
@keyframes hvHead { 0%{transform:translateX(0)} 100%{transform:translateX(220px)} }
.hv-frame { opacity:0.25; }
.hv-slide.active .hv-frame { animation: hvFrame 4.6s steps(1) infinite; }
.hv-slide.active .hv-frame.f2 { animation-delay:1.15s; } .hv-slide.active .hv-frame.f3 { animation-delay:2.3s; } .hv-slide.active .hv-frame.f4 { animation-delay:3.45s; }
@keyframes hvFrame { 0%{opacity:1} 25%,100%{opacity:0.25} }

/* V — Events: sweeping spotlights + flashes */
.hv-beam { transform-origin:150px 60px; opacity:0.5; }
.hv-slide.active .hv-beam.l { animation: hvBeamL 5.4s ease-in-out infinite alternate; }
.hv-slide.active .hv-beam.r { animation: hvBeamR 5.4s ease-in-out infinite alternate; }
@keyframes hvBeamL { from{transform:rotate(-16deg)} to{transform:rotate(14deg)} }
@keyframes hvBeamR { from{transform:rotate(16deg)} to{transform:rotate(-14deg)} }
.hv-flash { opacity:0; }
.hv-slide.active .hv-flash { animation: hvFlash 3.2s ease-out infinite; }
.hv-slide.active .hv-flash.h2 { animation-delay:1.1s; } .hv-slide.active .hv-flash.h3 { animation-delay:2.2s; }
@keyframes hvFlash { 0%{opacity:0} 6%{opacity:1} 18%,100%{opacity:0} }

/* VI — Branding: construction grid assembling */
.hv-build { opacity:0; }
.hv-slide.active .hv-build { animation: hvBuild 0.8s var(--ease) forwards; }
.hv-slide.active .hv-build.k2 { animation-delay:0.35s; } .hv-slide.active .hv-build.k3 { animation-delay:0.7s; }
.hv-slide.active .hv-build.k4 { animation-delay:1.05s; } .hv-slide.active .hv-build.k5 { animation-delay:1.4s; }
@keyframes hvBuild { from{opacity:0; transform:scale(0.92)} to{opacity:1; transform:none} }
.hv-orbit { transform-origin:center; transform-box:fill-box; }
.hv-slide.active .hv-orbit { animation: hvSpin 16s linear infinite; }

@media (prefers-reduced-motion: reduce) {
  .hv-slide.active * { animation:none !important; }
  .hv-draw { stroke-dashoffset:0; } .hv-node,.hv-bub,.hv-build,.hv-cursor { opacity:1; transform:none; }
  .hv-bar { transform:scaleY(0.7); }
}

/* ══ SERVICES SPINE (index) ══ */
.spine-sec { padding-top: clamp(64px,9vh,120px); }
.spine { position:relative; }
.spine::before {
  content:''; position:absolute; top:0; bottom:0; left:25px; width:1px;
  background: linear-gradient(180deg, transparent, var(--line-str) 6%, var(--line-str) 94%, transparent);
}
.spine-row { position:relative; display:grid; grid-template-columns: 76px 1fr auto; gap: clamp(20px,3vw,54px);
  padding: clamp(34px,5vh,60px) 0; align-items:center; }
.spine-row + .spine-row { border-top:1px solid var(--line-soft); }
.spine-node {
  width:51px; height:51px; border:1px solid var(--line-str); background:var(--bg-deep);
  display:flex; align-items:center; justify-content:center; align-self:start;
  font-size:14px; font-weight:800; color:var(--crimson-2); letter-spacing:0.06em;
  position:relative; z-index:1; transition:all 0.3s var(--ease);
}
.spine-row:hover .spine-node { background:var(--crimson); border-color:var(--crimson); color:#F6F4F0; }
.spine-main { min-width:0; }
.spine-kicker { font-size:10px; font-weight:800; letter-spacing:0.3em; text-transform:uppercase; color:var(--tx-faint); }
.spine-title { font-size:clamp(24px,3.2vw,46px); font-weight:800; text-transform:uppercase; letter-spacing:-0.02em; line-height:1.02; margin-top:8px; transition:color 0.25s; }
.spine-row:hover .spine-title { color:var(--crimson-2); }
.spine-tag { font-size:14px; font-style:italic; color:var(--tx-2); margin-top:10px; max-width:58ch; }
.spine-subs { margin-top:16px; display:flex; flex-wrap:wrap; gap:8px; }
.spine-sub { font-size:11px; font-weight:600; letter-spacing:0.09em; text-transform:uppercase;
  color:var(--tx-3); border:1px solid var(--line); padding:8px 13px; transition:all 0.25s; }
.spine-row:hover .spine-sub { color:var(--tx-2); border-color:var(--line-str); }
.spine-go {
  align-self:center; width:58px; height:58px; border:1px solid var(--line-str);
  display:flex; align-items:center; justify-content:center; font-size:20px; color:var(--tx-2);
  transition:all 0.3s var(--ease); flex-shrink:0;
}
.spine-row:hover .spine-go { background:var(--crimson); border-color:var(--crimson); color:#F6F4F0; transform:translateX(6px); }

/* ══ CONTACT FORM section (index) ══ */
.svc-form-sec .wrap { display:grid; grid-template-columns: 1fr 1.35fr; gap:clamp(36px,5vw,90px); align-items:start; }
.svc-form-copy .h2 { margin-top:22px; }
.svc-form-copy p.lede { margin-top:22px; }
.svc-form-meta { margin-top:34px; display:flex; flex-direction:column; gap:12px;
  font-size:13.5px; color:var(--tx-2); }
.svc-form-meta a { color:var(--tx); border-bottom:1px solid var(--line-str); transition:color 0.2s, border-color 0.2s; }
.svc-form-meta a:hover { color:var(--crimson-2); border-color:var(--crimson); }
.svc-form { border:1px solid var(--line); background: color-mix(in srgb, var(--bg-card) 62%, transparent);
  backdrop-filter:blur(6px); padding: clamp(26px,3vw,44px); }

/* ══ ARTICLES / INSIGHTS (index) ══ */
.art-head { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; margin-bottom:clamp(34px,5vh,56px); }
.art-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.art-card { border:1px solid var(--line); background: color-mix(in srgb, var(--bg-card) 62%, transparent);
  display:flex; flex-direction:column; transition:transform 0.35s var(--ease), border-color 0.3s; }
.art-card:hover { transform:translateY(-5px); border-color:var(--line-str); }
.art-ph { aspect-ratio:16/9.4; position:relative; overflow:hidden; border-bottom:1px solid var(--line);
  background: linear-gradient(150deg, var(--bg-raise), var(--bg-deep)); }
.art-ph::before { content:attr(data-mark); position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:clamp(48px,5vw,72px); font-weight:800; letter-spacing:-0.04em; color:var(--mark); transition:transform 0.6s var(--ease); }
.art-card:hover .art-ph::before { transform:scale(1.07); }
.art-ph::after { content:''; position:absolute; inset:0;
  background: linear-gradient(110deg, transparent 30%, rgba(246,244,240,0.045) 46%, transparent 60%);
  transform:translateX(-100%); }
.art-card:hover .art-ph::after { animation: sheen 0.9s var(--ease) forwards; }
@keyframes sheen { to { transform:translateX(100%); } }
.art-body { padding:22px 24px 26px; display:flex; flex-direction:column; flex:1; }
.art-meta { display:flex; gap:14px; font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--tx-3); }
.art-meta b { color:var(--crimson-2); font-weight:800; }
.art-title { font-size:clamp(17px,1.5vw,21px); font-weight:800; line-height:1.25; letter-spacing:-0.01em; margin-top:12px; text-wrap:balance; }
.art-ex { font-size:13.5px; color:var(--tx-2); line-height:1.65; margin-top:10px; }
.art-more { margin-top:auto; padding-top:18px; font-size:11px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--tx-3); transition:color 0.2s; }
.art-card:hover .art-more { color:var(--crimson-2); }

/* ══ SUB-SERVICE editorial blocks (detail pages) ══ */
.svc-intro { max-width:64ch; font-size:clamp(18px,2vw,26px); font-weight:500; line-height:1.42; letter-spacing:-0.012em; color:var(--tx); text-wrap:pretty; }
.svc-intro .cr { color:var(--crimson-2); }

.sub-svc { display:grid; grid-template-columns: 92px 1fr; gap:clamp(20px,3vw,52px);
  padding: clamp(40px,6vh,72px) 0; }
.sub-svc + .sub-svc, .svc-ph + .sub-svc, .sub-svc + .svc-ph { border-top:1px solid var(--line-soft); }
.sub-svc-idx { font-size:clamp(30px,3vw,44px); font-weight:800; letter-spacing:-0.03em; line-height:1;
  -webkit-text-stroke:1.5px var(--tx-faint); color:transparent; padding-top:6px; }
.sub-svc h2 { font-size:clamp(22px,2.8vw,38px); font-weight:800; text-transform:uppercase; letter-spacing:-0.02em; line-height:1.05; }
.sub-svc-tag { font-size:clamp(14px,1.4vw,17px); font-style:italic; color:var(--crimson-2); margin-top:10px; }
.sub-svc-lead { margin-top:22px; max-width:70ch; font-size:clamp(15px,1.35vw,17.5px); color:var(--tx); line-height:1.75; }
.sub-svc-cols { margin-top:26px; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); }
.sub-svc-col { background: color-mix(in srgb, var(--bg-card) 55%, transparent); padding:22px 24px; }
.sub-svc-col h3 { font-size:10px; font-weight:800; letter-spacing:0.26em; text-transform:uppercase; color:var(--crimson-2); margin-bottom:12px; }
.sub-svc-col p { font-size:14px; color:var(--tx-2); line-height:1.72; }
.sub-svc-del { margin-top:24px; }
.sub-svc-del h3 { font-size:10px; font-weight:800; letter-spacing:0.26em; text-transform:uppercase; color:var(--tx-3); margin-bottom:14px; }
.sub-svc-del ul { display:flex; flex-wrap:wrap; gap:9px; }
.sub-svc-del li { font-size:12px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--tx-2); border:1px solid var(--line); padding:9px 15px; transition:all 0.25s; }
.sub-svc-del li:hover { border-color:var(--crimson); color:var(--tx); background:var(--tint); }

/* image placeholders inside detail pages */
.svc-ph { position:relative; overflow:hidden; border:1px solid var(--line);
  background: linear-gradient(150deg, var(--bg-raise), var(--bg-deep));
  margin: clamp(14px,2vh,24px) 0; }
.svc-ph.wide { aspect-ratio:21/8; }
.svc-ph.std  { aspect-ratio:16/8; }
.svc-ph-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:22px; margin:clamp(14px,2vh,24px) 0; }
.svc-ph-grid .svc-ph { margin:0; aspect-ratio:auto; min-height:260px; }
.svc-ph .mark { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:clamp(56px,7vw,110px); font-weight:800; letter-spacing:-0.04em; color:var(--mark); user-select:none; }
.svc-ph .label { position:absolute; left:18px; bottom:14px; font-size:9px; font-weight:800;
  letter-spacing:0.3em; text-transform:uppercase; color:var(--tx-3); }
.svc-ph .frame { position:absolute; inset:14px; border:1px dashed var(--line-str); pointer-events:none; }
.svc-ph::after { content:''; position:absolute; inset:0;
  background: linear-gradient(110deg, transparent 32%, rgba(246,244,240,0.05) 48%, transparent 62%);
  transform:translateX(-100%); animation: sheen 4.5s var(--ease) infinite 1.2s; }
@media (prefers-reduced-motion: reduce) { .svc-ph::after { animation:none; } }

/* ══ Responsive ══ */
@media (max-width: 1100px) {
  .svc-hero-inner { grid-template-columns:1fr; }
  .hero-visual { margin:8px auto 0; max-width:440px; }
  .art-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 900px) {
  .spine::before { left:19px; }
  .spine-row { grid-template-columns: 60px 1fr; }
  .spine-node { width:39px; height:39px; font-size:12px; }
  .spine-go { display:none; }
  .svc-form-sec .wrap { grid-template-columns:1fr; }
  .sub-svc { grid-template-columns:1fr; gap:14px; }
  .sub-svc-idx { padding-top:0; }
}
@media (max-width: 640px) {
  .art-grid { grid-template-columns:1fr; }
  .sub-svc-cols { grid-template-columns:1fr; }
  .svc-ph-grid { grid-template-columns:1fr; }
  .rail-btn { width:44px; }
}

/* detail page hero photo — same woven treatment, single image */
.page-hero { min-height: min(62vh, 620px); display:flex; align-items:center; }
.page-hero .hero-photo { width:min(58%, 900px); }
.page-hero .hero-mark { z-index:0; opacity:0.55; }
.page-hero .wrap { position:relative; z-index:2; width:100%; }
.page-hero-sub { max-width:50ch; }

/* ══ real image figures inside detail pages ══ */
.svc-fig { position:relative; overflow:hidden; border:1px solid var(--line); background:var(--bg-card); }
.svc-fig img { width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(0.7) contrast(1.04); transition:transform 0.8s var(--ease), filter 0.5s; }
.svc-fig:hover img { transform:scale(1.035); filter:saturate(0.95) contrast(1.04); }
.svc-fig::before { content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background: radial-gradient(90% 90% at 60% 30%, transparent 55%, rgba(139,0,0,0.10) 100%); }
.svc-fig .cap { position:absolute; left:0; bottom:0; z-index:2;
  background: color-mix(in srgb, var(--bg-deep) 76%, transparent);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-top:1px solid var(--line); border-right:1px solid var(--line);
  padding:10px 18px; font-size:9.5px; font-weight:800; letter-spacing:0.28em; text-transform:uppercase; color:var(--tx-2); }
.svc-fig.wide { aspect-ratio:21/7.6; margin: clamp(20px,3vh,34px) 0; }
.svc-duo { display:grid; grid-template-columns:1.28fr 1fr; gap:22px; align-items:end; margin: clamp(20px,3vh,34px) 0; }
.svc-duo .svc-fig:first-child { aspect-ratio:16/9; }
.svc-duo .svc-fig:last-child  { aspect-ratio:4/4.5; margin-bottom:clamp(28px,5vh,64px); }

/* ══ articles v2 — five, with imagery ══ */
.art-grid5 { display:grid; grid-template-columns:repeat(6,1fr); gap:22px; }
.art-card.feat { grid-column:span 4; }
.art-card.side { grid-column:span 2; }
.art-card.row2 { grid-column:span 2; }
.art-img { position:relative; overflow:hidden; border-bottom:1px solid var(--line); aspect-ratio:16/9; }
.art-card.feat .art-img { aspect-ratio:16/7.4; }
.art-img img { width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(0.68) contrast(1.04); transition:transform 0.7s var(--ease), filter 0.5s; }
.art-card:hover .art-img img { transform:scale(1.05); filter:saturate(0.95) contrast(1.04); }
.art-img::after { content:''; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(0deg, color-mix(in srgb, var(--bg-deep) 42%, transparent), transparent 45%); }
.art-card.feat .art-title { font-size:clamp(21px,2.2vw,30px); }

@media (max-width: 1100px) {
  .svc-hero-copy { max-width:100%; }
  .hero-photo, .page-hero .hero-photo { width:100%; opacity:0.34; }
  .hp-slide { -webkit-mask-image: radial-gradient(120% 120% at 70% 40%, #000 30%, transparent 80%);
              mask-image: radial-gradient(120% 120% at 70% 40%, #000 30%, transparent 80%); }
  .art-grid5 { grid-template-columns:1fr 1fr; }
  .art-card.feat, .art-card.side, .art-card.row2 { grid-column:span 1; }
  .art-card.feat { grid-column:span 2; }
}
@media (max-width: 640px) {
  .art-grid5 { grid-template-columns:1fr; }
  .art-card.feat { grid-column:span 1; }
  .svc-duo { grid-template-columns:1fr; align-items:stretch; }
  .svc-duo .svc-fig:last-child { aspect-ratio:16/10; margin-bottom:0; }
  .svc-fig.wide { aspect-ratio:16/9; }
}

/* work-card imagery */
.work-ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:saturate(0.62) contrast(1.05); transition:transform 0.8s var(--ease), filter 0.5s; z-index:0; }
.work-card:hover .work-ph img { transform:scale(1.05); filter:saturate(0.92) contrast(1.05); }
.work-ph::after { content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background: linear-gradient(0deg, color-mix(in srgb, var(--bg-deep) 55%, transparent), transparent 42%),
              radial-gradient(90% 90% at 60% 20%, transparent 55%, rgba(139,0,0,0.12) 100%); }
.work-ph .work-ph-fallback { z-index:2; opacity:0.35; }
.work-ph img + .work-ph-fallback { opacity:0.16; }

/* home hero: photo sits behind the VI mark, quieter than services */
.home-hero-photo { width:min(58%, 940px); opacity:0.8; }
.home-hero-photo .hp-slide {
  -webkit-mask-image: radial-gradient(95% 110% at 74% 42%, #000 18%, rgba(0,0,0,0.5) 48%, transparent 74%);
  mask-image: radial-gradient(95% 110% at 74% 42%, #000 18%, rgba(0,0,0,0.5) 48%, transparent 74%);
}
@media (max-width:1100px){ .home-hero-photo { width:100%; opacity:0.28; } }

/* contact page composition */
.contact-grid { display:grid; grid-template-columns: 1fr 1.35fr; gap:clamp(36px,5vw,90px); align-items:start; }
.contact-meta-card { border:1px solid var(--line); padding:clamp(24px,3vw,40px);
  background: color-mix(in srgb, var(--bg-card) 55%, transparent); }
.contact-meta-card + .contact-meta-card { margin-top:18px; }
.contact-meta-card h3 { font-size:10px; font-weight:800; letter-spacing:0.28em; text-transform:uppercase; color:var(--crimson-2); margin-bottom:14px; }
.contact-meta-card p, .contact-meta-card a { font-size:15px; color:var(--tx-2); line-height:1.7; }
.contact-meta-card a { color:var(--tx); border-bottom:1px solid var(--line-str); }
.contact-meta-card a:hover { color:var(--crimson-2); border-color:var(--crimson); }
@media (max-width:900px){ .contact-grid { grid-template-columns:1fr; } }

/* ══ insights listing + article pages ══ */
.ins-hero-sub { max-width:52ch; }
.article-head { padding: calc(var(--nav-h) + clamp(48px,7vh,84px)) 0 clamp(28px,4vh,44px); }
.article-title { font-size:clamp(34px,4.6vw,72px); font-weight:800; line-height:1.0; letter-spacing:-0.025em; text-transform:uppercase; margin-top:18px; max-width:22ch; text-wrap:balance; }
.article-meta { display:flex; gap:18px; margin-top:22px; font-size:10.5px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--tx-3); }
.article-meta b { color:var(--crimson-2); font-weight:800; }
.article-lead-fig { aspect-ratio:21/8.4; }
.article-body { max-width:72ch; margin:0 auto; }
.article-body p { font-size:clamp(15.5px,1.35vw,18px); line-height:1.85; color:var(--tx-2); margin:0 0 26px; }
.article-body p:first-of-type { font-size:clamp(17px,1.6vw,21px); color:var(--tx); }
.article-body h2 { font-size:clamp(19px,1.9vw,26px); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em; margin:44px 0 18px; }
.article-body strong { color:var(--tx); }
.pull-quote { border-left:2px solid var(--crimson); padding:6px 0 6px 26px; margin:38px 0;
  font-size:clamp(19px,2vw,26px); font-weight:600; font-style:italic; line-height:1.45; letter-spacing:-0.01em; color:var(--tx); }
.article-cta { margin-top:46px; display:flex; gap:14px; flex-wrap:wrap; align-items:center;
  border:1px solid var(--line); padding:clamp(22px,3vw,36px);
  background: color-mix(in srgb, var(--bg-card) 55%, transparent); justify-content:space-between; }
.article-cta .t { font-size:clamp(16px,1.6vw,21px); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em; }
.article-back { display:inline-flex; gap:10px; align-items:center; font-size:11px; font-weight:800; letter-spacing:0.22em; text-transform:uppercase; color:var(--tx-3); margin-bottom:8px; }
.article-back:hover { color:var(--crimson-2); }

/* ══ studio page ══ */
.stat-band { display:grid; grid-template-columns:repeat(5,1fr); border:1px solid var(--line);
  background: color-mix(in srgb, var(--bg-card) 55%, transparent); backdrop-filter:blur(4px); }
.stat-cell { padding:clamp(20px,2.4vw,34px) clamp(16px,1.8vw,28px); }
.stat-cell + .stat-cell { border-left:1px solid var(--line); }
.stat-cell .n { font-size:clamp(26px,3vw,46px); font-weight:800; letter-spacing:-0.03em; line-height:1; }
.stat-cell .n .cr { color:var(--crimson-2); }
.stat-cell .l { font-size:10px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--tx-3); margin-top:10px; line-height:1.5; }

.disc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.disc-tile { background: color-mix(in srgb, var(--bg-card) 58%, transparent); padding:clamp(20px,2.4vw,32px);
  display:flex; flex-direction:column; gap:10px; transition:background 0.3s, transform 0.3s var(--ease); position:relative; }
.disc-tile:hover { background:var(--tint); }
.disc-tile .num { font-size:12px; font-weight:800; letter-spacing:0.1em; color:var(--crimson-2); }
.disc-tile h3 { font-size:clamp(15px,1.4vw,19px); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em; }
.disc-tile p { font-size:13px; color:var(--tx-2); line-height:1.6; }
.disc-tile .go { margin-top:auto; padding-top:12px; font-size:10px; font-weight:800; letter-spacing:0.22em; text-transform:uppercase; color:var(--tx-3); transition:color 0.25s; }
.disc-tile:hover .go { color:var(--crimson-2); }

.principle { display:grid; grid-template-columns:88px 1fr; gap:clamp(18px,3vw,48px); padding:clamp(26px,4vh,44px) 0; }
.principle + .principle { border-top:1px solid var(--line-soft); }
.principle .idx { font-size:clamp(26px,2.6vw,38px); font-weight:800; letter-spacing:-0.03em;
  -webkit-text-stroke:1.5px var(--tx-faint); color:transparent; line-height:1; padding-top:4px; }
.principle h3 { font-size:clamp(18px,1.9vw,26px); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em; }
.principle p { margin-top:10px; max-width:66ch; font-size:14.5px; color:var(--tx-2); line-height:1.75; }

.origin-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(32px,4.5vw,80px); align-items:start; }
.origin-copy p { font-size:clamp(14.5px,1.3vw,16.5px); color:var(--tx-2); line-height:1.85; margin:0 0 20px; }
.origin-copy p:first-of-type { font-size:clamp(16px,1.5vw,19px); color:var(--tx); }
.market-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:1000px){
  .stat-band { grid-template-columns:repeat(2,1fr); }
  .stat-cell + .stat-cell { border-left:none; } .stat-band .stat-cell { border-top:1px solid var(--line); }
  .stat-band .stat-cell:nth-child(-n+2){ border-top:none; } .stat-band .stat-cell:nth-child(even){ border-left:1px solid var(--line); }
  .disc-grid { grid-template-columns:repeat(2,1fr); }
  .origin-grid { grid-template-columns:1fr; }
  .market-cards { grid-template-columns:1fr; }
}
@media (max-width:640px){
  .disc-grid { grid-template-columns:1fr; }
  .principle { grid-template-columns:1fr; gap:10px; }
}

/* ══ home: services accordion with imagery ══ */
.svc-panel-inner { display:grid; grid-template-columns: 1.35fr 1fr; gap: clamp(20px,3vw,54px); align-items:start; }
.svc-panel-copy { min-width:0; }
.svc-panel-fig { aspect-ratio:16/10; margin:0; }
.svc-bar:hover .svc-rn { color:var(--crimson-2); }
@media (max-width:900px){
  .svc-panel-inner { grid-template-columns:1fr; }
  .svc-panel-fig { aspect-ratio:16/9; }
}

/* ══ home + work: poster-style featured card ══ */
.work-card.tall { position:relative; }
.work-card.tall .work-ph { aspect-ratio:4/5.1; }
.work-card.tall .work-ph::after {
  background: linear-gradient(0deg, color-mix(in srgb, var(--bg-deep) 92%, transparent) 4%, color-mix(in srgb, var(--bg-deep) 55%, transparent) 30%, transparent 58%),
              radial-gradient(90% 90% at 60% 20%, transparent 55%, rgba(139,0,0,0.12) 100%);
}
.work-card.tall .work-body { position:absolute; left:0; right:0; bottom:0; z-index:2; padding: clamp(20px,2.4vw,30px); border-top:none; }
.work-card.tall .work-name { font-size:clamp(24px,2.6vw,38px); }
.work-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.work-tags span { font-size:9.5px; font-weight:800; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--tx-2); border:1px solid var(--line-str); padding:6px 11px;
  background: color-mix(in srgb, var(--bg-deep) 55%, transparent); backdrop-filter:blur(6px); }
.work-more { display:inline-block; margin-top:14px; font-size:10.5px; font-weight:800; letter-spacing:0.22em;
  text-transform:uppercase; color:var(--tx-3); transition:color 0.25s, transform 0.3s var(--ease); }
.work-card:hover .work-more { color:var(--crimson-2); transform:translateX(4px); }
.work-next { display:flex; align-items:center; justify-content:space-between; gap:16px;
  border:1px dashed var(--line-str); padding:clamp(16px,2vw,24px) clamp(18px,2.4vw,28px);
  font-size:clamp(13px,1.3vw,16px); font-weight:800; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--tx-2); transition:all 0.3s var(--ease); }
.work-next span { color:var(--crimson-2); font-size:1.2em; transition:transform 0.3s var(--ease); }
.work-next:hover { border-color:var(--crimson); background:var(--tint); color:var(--tx); }
.work-next:hover span { transform:translateX(6px); }

/* ══ packages v2 ══ */
.pkg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
.pkg-card { position:relative; display:flex; flex-direction:column; border:1px solid var(--line);
  background: color-mix(in srgb, var(--bg-card) 62%, transparent); backdrop-filter:blur(6px);
  padding: clamp(26px,2.8vw,40px); overflow:hidden; transition:transform 0.35s var(--ease), border-color 0.3s; }
.pkg-card:hover { transform:translateY(-6px); border-color:var(--line-str); }
.pkg-card .wm { position:absolute; top:-14px; right:6px; font-size:clamp(90px,8vw,130px); font-weight:800;
  letter-spacing:-0.05em; line-height:1; -webkit-text-stroke:1.5px var(--tx-faint); color:transparent; pointer-events:none; }
.pkg-card.feat { border-color: color-mix(in srgb, var(--crimson) 55%, var(--line)); }
.pkg-card.feat::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--crimson); }
.pkg-badge { position:absolute; top:18px; right:18px; z-index:2; font-size:9px; font-weight:800; letter-spacing:0.24em;
  text-transform:uppercase; color:#F6F4F0; background:var(--crimson); padding:7px 12px; }
.pkg-name { font-size:clamp(24px,2.4vw,34px); font-weight:800; text-transform:uppercase; letter-spacing:-0.02em; position:relative; }
.pkg-sub { font-size:14px; font-style:italic; color:var(--crimson-2); margin-top:8px; position:relative; }
.pkg-stats { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); margin-top:22px; }
.pkg-stat { padding:14px 10px; text-align:center; }
.pkg-stat + .pkg-stat { border-left:1px solid var(--line); }
.pkg-stat .n { font-size:clamp(17px,1.7vw,23px); font-weight:800; letter-spacing:-0.02em; }
.pkg-stat .l { font-size:8.5px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--tx-3); margin-top:5px; }
.pkg-h { font-size:10px; font-weight:800; letter-spacing:0.26em; text-transform:uppercase; color:var(--tx-3); margin:24px 0 12px; }
.pkg-list { display:flex; flex-direction:column; gap:9px; }
.pkg-list li { font-size:13.5px; color:var(--tx-2); line-height:1.55; padding-left:20px; position:relative; }
.pkg-list li::before { content:''; position:absolute; left:0; top:0.62em; width:10px; height:2px; background:var(--crimson); }
.pkg-meta { margin-top:auto; padding-top:24px; display:flex; justify-content:space-between; align-items:baseline; gap:12px;
  font-size:10px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--tx-3); }
.pkg-meta b { color:var(--tx); font-size:12px; letter-spacing:0.1em; }
.pkg-card .btn { margin-top:18px; justify-content:center; }

/* comparison table */
.cmp-wrap { overflow-x:auto; border:1px solid var(--line); background: color-mix(in srgb, var(--bg-card) 55%, transparent); }
.cmp { width:100%; min-width:700px; border-collapse:collapse; }
.cmp th, .cmp td { padding:15px 20px; text-align:center; border-bottom:1px solid var(--line-soft); font-size:13.5px; }
.cmp th { font-size:11px; font-weight:800; letter-spacing:0.18em; text-transform:uppercase; border-bottom:1px solid var(--line); }
.cmp th .rn { display:block; color:var(--crimson-2); font-size:15px; margin-bottom:5px; }
.cmp td:first-child, .cmp th:first-child { text-align:left; color:var(--tx-2); font-weight:600; }
.cmp td { color:var(--tx); }
.cmp td.no { color:var(--tx-faint); }
.cmp .yes { color:var(--crimson-2); font-weight:800; }
.cmp .col-feat { background:var(--tint); }
.cmp tr:last-child td { border-bottom:none; }

/* FAQ */
.faq { border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:clamp(20px,2.6vh,28px) 4px; font-size:clamp(15px,1.5vw,19px); font-weight:700; letter-spacing:-0.01em; transition:color 0.25s; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:hover { color:var(--crimson-2); }
.faq-x { flex-shrink:0; width:30px; height:30px; border:1px solid var(--line-str); position:relative; transition:all 0.3s var(--ease); }
.faq-x::before, .faq-x::after { content:''; position:absolute; background:currentColor; top:50%; left:50%; transition:transform 0.3s var(--ease); }
.faq-x::before { width:12px; height:1.5px; transform:translate(-50%,-50%); }
.faq-x::after { width:1.5px; height:12px; transform:translate(-50%,-50%); }
.faq-item[open] .faq-x { background:var(--crimson); border-color:var(--crimson); color:#F6F4F0; }
.faq-item[open] .faq-x::after { transform:translate(-50%,-50%) rotate(90deg); }
.faq-a { padding:0 4px clamp(22px,3vh,30px); max-width:70ch; font-size:14.5px; color:var(--tx-2); line-height:1.8; }
@media (max-width:1000px){ .pkg-grid { grid-template-columns:1fr; max-width:560px; margin-inline:auto; } }

/* ══ footer v2 ══ */
.footer.f2 { padding:0; }
.f2 { position:relative; background:var(--bg-deep); border-top:1px solid var(--line); overflow:hidden; }
.f2::before { content:''; position:absolute; inset:0; opacity:0.4; pointer-events:none;
  background-image: linear-gradient(var(--line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size: clamp(60px,8vw,110px) clamp(60px,8vw,110px);
  -webkit-mask-image: radial-gradient(120% 100% at 50% 0%, #000, transparent 85%); mask-image: radial-gradient(120% 100% at 50% 0%, #000, transparent 85%); }
.f2::after { content:''; position:absolute; top:-30%; right:-15%; width:52vw; height:52vw; border-radius:50%;
  background: radial-gradient(circle, var(--glow) 0%, transparent 62%); pointer-events:none; }
.f2-inner { position:relative; z-index:1; max-width:var(--maxw); margin:0 auto; padding: clamp(56px,8vh,96px) var(--pad) 0; }
.f2-top { display:flex; justify-content:space-between; align-items:flex-end; gap:36px; flex-wrap:wrap;
  padding-bottom:clamp(36px,5vh,60px); border-bottom:1px solid var(--line); }
.f2-statement { font-size:clamp(26px,3.4vw,52px); font-weight:800; text-transform:uppercase; letter-spacing:-0.025em; line-height:1.02; }
.f2-mail { display:inline-block; font-size:clamp(17px,1.9vw,26px); font-weight:700; letter-spacing:-0.01em; color:var(--tx);
  border-bottom:2px solid var(--crimson); padding-bottom:6px; transition:color 0.25s; }
.f2-mail:hover { color:var(--crimson-2); }
.f2-social { display:flex; gap:10px; margin-top:18px; justify-content:flex-end; }
.f2-social a { width:42px; height:42px; border:1px solid var(--line-str); display:flex; align-items:center; justify-content:center;
  color:var(--tx-2); transition:all 0.3s var(--ease); }
.f2-social a:hover { background:var(--crimson); border-color:var(--crimson); color:#F6F4F0; transform:translateY(-3px); }
.f2-social svg { width:17px; height:17px; }
.f2-grid { display:grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: clamp(26px,3.5vw,60px);
  padding: clamp(38px,5.5vh,64px) 0; }
.f2-brand-name { font-size:19px; font-weight:900; letter-spacing:0.04em; text-transform:uppercase; }
.f2-brand-name .v { color:var(--crimson-2); }
.f2-desc { margin-top:14px; font-size:13.5px; color:var(--tx-2); line-height:1.75; max-width:30ch; }
.f2-loc { margin-top:20px; font-size:10.5px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--tx-3); line-height:2; }
.f2-loc b { color:var(--tx-2); }
.f2-col h4 { font-size:10px; font-weight:800; letter-spacing:0.28em; text-transform:uppercase; color:var(--crimson-2); margin-bottom:18px; }
.f2-col ul { display:flex; flex-direction:column; gap:11px; }
.f2-col a { font-size:13.5px; color:var(--tx-2); transition:color 0.2s, padding-left 0.25s var(--ease); display:inline-block; }
.f2-col a:hover { color:var(--tx); padding-left:6px; }
.f2-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap;
  padding: 22px 0 clamp(20px,3vh,30px); border-top:1px solid var(--line); }
.f2-copy { font-size:12px; color:var(--tx-3); }
.f2-legal { display:flex; gap:22px; align-items:center; }
.f2-legal a { font-size:12px; color:var(--tx-3); transition:color 0.2s; }
.f2-legal a:hover { color:var(--tx); }
.f2-top-btn { display:inline-flex; align-items:center; gap:8px; font-size:10px; font-weight:800; letter-spacing:0.22em;
  text-transform:uppercase; color:var(--tx-3); border:1px solid var(--line-str); padding:10px 16px; cursor:pointer;
  background:transparent; transition:all 0.3s var(--ease); }
.f2-top-btn:hover { background:var(--crimson); border-color:var(--crimson); color:#F6F4F0; }
.f2-wordmark { position:relative; z-index:0; text-align:center; font-weight:900; text-transform:uppercase;
  font-size: clamp(70px, 13.5vw, 210px); letter-spacing:-0.02em; line-height:0.72; user-select:none; pointer-events:none;
  -webkit-text-stroke:1.5px var(--tx-faint); color:transparent; transform:translateY(14%); }
.f2-wordmark .v { -webkit-text-stroke-color: color-mix(in srgb, var(--crimson) 45%, transparent); }
@media (max-width:1100px){ .f2-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:640px){
  .f2-grid { grid-template-columns:1fr; gap:30px; }
  .f2-social { justify-content:flex-start; }
  .f2-top { align-items:flex-start; }
}

/* ══ home: selected work — unified poster gallery ══ */
.work-card.ov { position:relative; }
.work-card.ov .work-ph { aspect-ratio:16/9.8; }
.work-card.ov .work-ph::after {
  background: linear-gradient(0deg, color-mix(in srgb, var(--bg-deep) 92%, transparent) 6%, color-mix(in srgb, var(--bg-deep) 52%, transparent) 34%, transparent 62%),
              radial-gradient(90% 90% at 60% 20%, transparent 55%, rgba(139,0,0,0.12) 100%);
}
.work-card.ov .work-body { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:clamp(18px,2vw,26px); }
.work-card.ov .work-line { max-height:0; opacity:0; overflow:hidden; margin-top:0;
  transition:max-height 0.5s var(--ease), opacity 0.4s, margin-top 0.4s var(--ease); }
.work-card.ov:hover .work-line { max-height:90px; opacity:1; margin-top:8px; }
.work-idx { position:absolute; top:14px; left:16px; z-index:3; font-size:clamp(15px,1.4vw,19px); font-weight:800;
  letter-spacing:0.08em; -webkit-text-stroke:1.2px var(--tx-2); color:transparent; }
.work-card .work-arr { z-index:3; transform:rotate(-45deg); transition:all 0.35s var(--ease); }
.work-card:hover .work-arr { transform:rotate(0deg); background:var(--crimson); border-color:var(--crimson); color:#F6F4F0; }
.work-count { text-align:right; }
.work-count .n { display:block; font-size:clamp(26px,2.6vw,40px); font-weight:800; letter-spacing:-0.03em; line-height:1; }
.work-count .n i { font-style:normal; color:var(--crimson-2); }
.work-count .l { display:block; margin-top:8px; font-size:9.5px; font-weight:800; letter-spacing:0.26em; text-transform:uppercase; color:var(--tx-3); }
.work-count .btn-line { margin-top:16px; }

/* ══ home: industries — index wall ══ */
.industries .ind-grid { border:1px solid var(--line); }
.industries .ind-item { flex-direction:column; align-items:flex-start; gap:26px; padding:clamp(20px,2.2vw,30px);
  position:relative; overflow:hidden; background: color-mix(in srgb, var(--bg-card) 62%, transparent); }
.industries .ind-item::before { content:''; position:absolute; inset:0; background:var(--crimson);
  transform:translateY(101%); transition:transform 0.42s var(--ease); }
.industries .ind-item::after { content:'\2192'; position:absolute; right:18px; bottom:16px; font-size:17px;
  color:#F6F4F0; opacity:0; transform:translate(-8px,0); transition:opacity 0.3s 0.08s, transform 0.35s var(--ease) 0.08s; }
.industries a.ind-item:hover { padding-left:clamp(20px,2.2vw,30px); background: color-mix(in srgb, var(--bg-card) 62%, transparent); }
.industries .ind-item:hover::before { transform:translateY(0); }
.industries .ind-item:hover::after { opacity:1; transform:none; }
.industries .ind-n { position:relative; z-index:1; font-size:clamp(17px,1.6vw,22px); letter-spacing:-0.02em;
  -webkit-text-stroke:1.2px var(--tx-faint); color:transparent; transition:all 0.3s 0.05s; }
.industries .ind-name { position:relative; z-index:1; font-size:clamp(13px,1.2vw,15.5px); line-height:1.35;
  transition:color 0.3s 0.05s; }
.industries .ind-item:hover .ind-n { -webkit-text-stroke-color:rgba(246,244,240,0.6); }
.industries .ind-item:hover .ind-name { color:#F6F4F0; }
.ind-meta { display:flex; gap:10px; flex-wrap:wrap; margin:clamp(22px,3vh,34px) 0 18px; }
.ind-meta span { font-size:10px; font-weight:800; letter-spacing:0.2em; text-transform:uppercase; color:var(--tx-2);
  border:1px solid var(--line-str); padding:9px 15px; }
.ind-meta span b { color:var(--crimson-2); }

/* ══ home: engagements — level panels ══ */
.eng2 .pkg-card .btn { margin-top:22px; }
.eng-compare { margin-top:26px; display:flex; justify-content:center; }

/* ══ industries: sector index wall ══ */
.sector-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.sector-tile { position:relative; overflow:hidden; display:flex; flex-direction:column; gap:12px;
  padding:clamp(22px,2.4vw,34px); background: color-mix(in srgb, var(--bg-card) 62%, transparent); }
.sector-tile::before { content:''; position:absolute; inset:0; background:var(--crimson);
  transform:translateY(101%); transition:transform 0.42s var(--ease); }
.sector-tile > * { position:relative; z-index:1; transition:color 0.3s 0.06s; }
.sector-tile .num { font-size:clamp(19px,1.8vw,26px); font-weight:800; letter-spacing:-0.02em;
  -webkit-text-stroke:1.2px var(--tx-faint); color:transparent; transition:all 0.3s 0.06s; }
.sector-tile h3 { font-size:clamp(15px,1.4vw,19px); font-weight:800; text-transform:uppercase; letter-spacing:-0.01em; }
.sector-tile p { font-size:13px; color:var(--tx-2); line-height:1.65; }
.sector-tile .go { margin-top:auto; padding-top:14px; font-size:10px; font-weight:800; letter-spacing:0.22em;
  text-transform:uppercase; color:var(--tx-3); }
.sector-tile:hover::before { transform:translateY(0); }
.sector-tile:hover .num { -webkit-text-stroke-color:rgba(246,244,240,0.6); }
.sector-tile:hover h3, .sector-tile:hover .go { color:#F6F4F0; }
.sector-tile:hover p { color:rgba(246,244,240,0.82); }
@media (max-width:1000px){ .sector-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .sector-grid { grid-template-columns:1fr; } }

/* refined touches — v3.8 */
[id] { scroll-margin-top: calc(var(--nav-h) + 48px); }   /* anchors never hide under the fixed nav */
.scroll-progress { position:fixed; top:0; left:0; height:2px; width:100%; z-index:400;
  background:var(--crimson); transform-origin:left; transform:scaleX(0); pointer-events:none; }
@media (prefers-reduced-motion: reduce) { .scroll-progress { display:none; } }
