/* Projects & Marketing — Home v2 (Phase 1). Scoped to body.hv2 */
body.hv2{--hv-ink:#0a0f1e;--hv-paper:#ffffff;--hv-mist:#f2f4f8;--hv-navy:#060a16;--hv-navy-2:#0b1226;--hv-blue:#3b6bff;--hv-blue-soft:#7fa2ff;--hv-line:#e2e6ee;--hv-muted:#566077;--hv-pad:clamp(84px,11vw,168px);background:var(--hv-navy)}
body.hv2 main{overflow-x:clip}
.hv-shell{width:min(var(--maxw,1240px),100% - 2*var(--gutter,24px));margin-inline:auto}
.hv-eyebrow{font-family:var(--sans);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--hv-blue);margin:0 0 22px}
.hv-dark .hv-eyebrow{color:var(--hv-blue-soft)}
.hv-h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.3rem,5.4vw,4.9rem);line-height:1.02;letter-spacing:-.025em;margin:0;max-width:16ch}
.hv-lead{font-family:var(--sans);font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.6;color:var(--hv-muted);max-width:56ch;margin:26px 0 0}
.hv-dark .hv-lead{color:#a9b2c8}
.hv-link{font-family:var(--sans);font-weight:600;font-size:1rem;color:var(--hv-ink);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px;transition:color .25s,border-color .25s}
.hv-link:hover,.hv-link:focus-visible{color:var(--hv-blue)}
.hv-dark .hv-link{color:#fff}
.hv-dark .hv-link:hover{color:var(--hv-blue-soft)}
.hv-light{background:var(--hv-paper);color:var(--hv-ink)}
.hv-mist{background:var(--hv-mist);color:var(--hv-ink)}
.hv-dark{background:var(--hv-navy);color:#fff}
.hv-light h2,.hv-light h3,.hv-mist h2,.hv-mist h3{color:var(--hv-ink)}
.hv-section{padding-block:var(--hv-pad)}
.hv-hero{position:relative;min-height:calc(100svh - 72px);display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(120% 80% at 85% 0%,#14224d 0%,rgba(6,10,22,0) 55%),var(--hv-navy);color:#fff;padding-top:clamp(48px,9vh,110px);overflow:hidden}
.hv-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.8rem,7.4vw,7.2rem);line-height:.96;letter-spacing:-.035em;margin:0;max-width:15ch;color:#fff}
.hv-hero h1 em{font-style:italic;color:var(--hv-blue-soft)}
.hv-hero .hv-sub{font-family:var(--sans);font-size:clamp(1rem,1.6vw,1.3rem);letter-spacing:.02em;color:#c3cbe0;margin:34px 0 0}
.hv-hero .hv-sub span{color:var(--hv-blue-soft);padding:0 .1em}
.hv-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:18px 34px;margin-top:44px}
.hv-btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--sans);font-weight:600;font-size:1rem;padding:17px 30px;border-radius:999px;background:#fff;color:var(--hv-navy);text-decoration:none;transition:transform .3s,background .3s}
.hv-btn:hover,.hv-btn:focus-visible{background:var(--hv-blue);color:#fff;transform:translateY(-2px)}
.hv-btn.dark{background:var(--hv-ink);color:#fff}
.hv-btn.dark:hover{background:var(--hv-blue)}
.hv-hero .hv-link{color:#c3cbe0;font-weight:500}
.hv-reel{margin-top:clamp(48px,7vh,84px);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.hv-reel-track{display:flex;gap:18px;width:max-content;animation:hvReel 70s linear infinite}
.hv-reel:hover .hv-reel-track{animation-play-state:paused}
.hv-reel figure{margin:0;width:clamp(270px,29vw,450px);aspect-ratio:3/2;border-radius:6px 6px 0 0;overflow:hidden;background:#0d1530;flex:none}
.hv-reel img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;opacity:.92}
@keyframes hvReel{to{transform:translateX(-50%)}}
.hv-work-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:clamp(48px,7vw,96px)}
.hv-case{display:grid;gap:clamp(24px,4vw,64px);align-items:center;margin-bottom:clamp(72px,10vw,150px);text-decoration:none;color:inherit}
.hv-case:last-of-type{margin-bottom:0}
.hv-case-media{position:relative;border-radius:4px;overflow:hidden;background:var(--hv-mist);aspect-ratio:3/2}
.hv-case-media img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.hv-case:hover .hv-case-media img,.hv-case:focus-visible .hv-case-media img{transform:scale(1.03)}
.hv-case-meta{font-family:var(--sans);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--hv-muted);font-weight:600;margin:0 0 16px}
.hv-case h3{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,4.6vw,4.2rem);line-height:1;letter-spacing:-.025em;margin:0}
.hv-case p.hv-case-desc{font-family:var(--sans);font-size:clamp(1.02rem,1.3vw,1.18rem);line-height:1.55;color:var(--hv-muted);margin:20px 0 0;max-width:42ch}
.hv-case .hv-more{display:inline-block;margin-top:26px;font-family:var(--sans);font-weight:600;color:var(--hv-ink);border-bottom:1px solid currentColor;padding-bottom:3px}
.hv-case:hover .hv-more{color:var(--hv-blue)}
.hv-metric{display:flex;align-items:baseline;gap:14px;margin-top:26px;padding-top:22px;border-top:1px solid var(--hv-line);max-width:420px}
.hv-metric b{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,4vw,3.6rem);line-height:1;color:var(--hv-blue);letter-spacing:-.02em}
.hv-metric span{font-family:var(--sans);font-size:.92rem;line-height:1.4;color:var(--hv-muted)}
.hv-case.feature .hv-case-media{aspect-ratio:16/8}
.hv-case.feature .hv-case-body{display:grid;gap:12px 64px}
@media(min-width:900px){
.hv-case.split{grid-template-columns:7fr 5fr}
.hv-case.split.rev{grid-template-columns:5fr 7fr}
.hv-case.split.rev .hv-case-media{order:2}
.hv-case.feature .hv-case-body{grid-template-columns:1.1fr 1fr;align-items:end}
.hv-pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:start}
.hv-pair .hv-case:nth-child(2){margin-top:clamp(60px,9vw,140px)}
}
.hv-pair .hv-case h3{font-size:clamp(2rem,3.4vw,3.1rem)}
.hv-work-foot{margin-top:clamp(56px,7vw,96px);display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between;padding-top:30px;border-top:1px solid var(--hv-line);font-family:var(--sans);color:var(--hv-muted)}
.hv-research .hv-h2{max-width:14ch;font-size:clamp(2.6rem,6.4vw,6rem)}
.hv-proof{display:grid;grid-template-columns:1fr;gap:0;margin-top:clamp(56px,8vw,110px);border-top:1px solid rgba(255,255,255,.14)}
.hv-proof div{padding:32px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.hv-proof b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,5vw,4.4rem);line-height:1;letter-spacing:-.02em;color:#fff}
.hv-proof span{display:block;margin-top:12px;font-family:var(--sans);color:#a9b2c8;font-size:1rem}
@media(min-width:800px){.hv-proof{grid-template-columns:repeat(3,1fr)}.hv-proof div{padding:40px 36px 40px 0;border-bottom:0}.hv-proof div+div{padding-left:36px;border-left:1px solid rgba(255,255,255,.14)}}
.hv-logos{margin-top:clamp(56px,7vw,90px)}
.hv-logos p{font-family:var(--sans);font-size:.85rem;letter-spacing:.06em;color:#8d97b0;margin:0 0 26px}
.hv-logos ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:26px clamp(28px,4.5vw,64px)}
.hv-logos img{height:38px;width:auto;max-width:150px;object-fit:contain;opacity:.85;display:block}
.hv-logos li.txt{font-family:var(--sans);font-weight:700;font-size:1.15rem;letter-spacing:.02em;color:#c9d0e2;opacity:.78}
.hv-research .hv-link{display:inline-block;margin-top:46px}
.hv-ubg-list{margin-top:clamp(56px,8vw,110px);border-top:1px solid var(--hv-line)}
.hv-ubg-item{display:grid;grid-template-columns:1fr;gap:10px 40px;align-items:baseline;padding:clamp(30px,4vw,52px) 0;border-bottom:1px solid var(--hv-line);text-decoration:none;color:var(--hv-ink)}
.hv-ubg-item .num{font-family:var(--sans);font-size:.85rem;color:var(--hv-muted);font-weight:600;letter-spacing:.1em}
.hv-ubg-item .word{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,10vw,9rem);line-height:.9;letter-spacing:-.04em;transition:color .35s,transform .5s cubic-bezier(.2,.7,.2,1)}
.hv-ubg-item .what{font-family:var(--sans);font-size:clamp(1rem,1.3vw,1.15rem);color:var(--hv-muted);line-height:1.5}
.hv-ubg-item .what strong{display:block;color:var(--hv-ink);font-weight:600;margin-bottom:4px}
.hv-ubg-item:hover .word,.hv-ubg-item:focus-visible .word{color:var(--hv-blue);transform:translateX(10px)}
@media(min-width:900px){.hv-ubg-item{grid-template-columns:80px 1fr 320px}}
.hv-story{display:grid;gap:clamp(40px,6vw,90px)}
@media(min-width:1000px){.hv-story{grid-template-columns:5fr 7fr}}
.hv-story-steps{display:grid;gap:0;border-top:1px solid #d6dbe5}
.hv-story-steps div{display:grid;grid-template-columns:1fr;gap:6px 30px;padding:26px 0;border-bottom:1px solid #d6dbe5}
@media(min-width:640px){.hv-story-steps div{grid-template-columns:140px 1fr}}
.hv-story-steps dt{font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--hv-blue);padding-top:4px}
.hv-story-steps dd{margin:0;font-family:var(--sans);font-size:1.06rem;line-height:1.6;color:#2a3246}
.hv-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:44px;border-top:1px solid #d6dbe5}
.hv-stats div{padding:26px 18px 26px 0;border-bottom:1px solid #d6dbe5}
.hv-stats b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,5vw,4.2rem);line-height:1;color:var(--hv-ink);letter-spacing:-.02em}
.hv-stats span{display:block;margin-top:8px;font-family:var(--sans);font-size:.9rem;color:var(--hv-muted);line-height:1.4}
@media(min-width:640px){.hv-stats{grid-template-columns:repeat(4,1fr)}}
.hv-source{font-family:var(--sans);font-size:.82rem;color:var(--hv-muted);margin-top:18px}
.hv-story .hv-link{display:inline-block;margin-top:34px}
.hv-cap{display:grid;gap:clamp(40px,6vw,90px)}
@media(min-width:1000px){.hv-cap{grid-template-columns:5fr 7fr}}
.hv-cap-cols{display:grid;grid-template-columns:1fr;gap:0 48px}
@media(min-width:640px){.hv-cap-cols{grid-template-columns:1fr 1fr}}
.hv-cap-cols h3{font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--hv-muted);margin:0 0 6px;padding-top:10px}
.hv-cap-cols ul{list-style:none;margin:0 0 34px;padding:0}
.hv-cap-cols a{display:flex;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid var(--hv-line);font-family:var(--sans);font-size:1.06rem;color:var(--hv-ink);text-decoration:none;transition:color .25s,padding .25s}
.hv-cap-cols a::after{content:"→";color:var(--hv-muted);transition:transform .25s,color .25s}
.hv-cap-cols a:hover,.hv-cap-cols a:focus-visible{color:var(--hv-blue)}
.hv-cap-cols a:hover::after{transform:translateX(4px);color:var(--hv-blue)}
.hv-final{text-align:left;background:radial-gradient(90% 120% at 10% 100%,#132250 0%,rgba(6,10,22,0) 60%),var(--hv-navy)}
.hv-final h2{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,9vw,8.4rem);line-height:.95;letter-spacing:-.04em;margin:0;color:#fff;max-width:12ch}
.hv-final h2 em{font-style:italic;color:var(--hv-blue-soft)}
.hv-final .hv-ctas{margin-top:54px}
.hv-final .hv-contact{font-family:var(--sans);color:#a9b2c8;font-size:1rem}
.hv-final .hv-contact a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.hv-js .hv-r{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.hv-js .hv-r.in{opacity:1;transform:none}
.hv-btn:focus-visible,.hv-link:focus-visible,.hv-case:focus-visible,.hv-ubg-item:focus-visible,.hv-cap-cols a:focus-visible{outline:2px solid var(--hv-blue);outline-offset:4px}
@media (prefers-reduced-motion:reduce){
.hv-reel-track{animation:none}
.hv-js .hv-r{opacity:1;transform:none;transition:none}
.hv-case-media img,.hv-ubg-item .word{transition:none}
}
@media(max-width:560px){
.hv-hero{min-height:auto;padding-bottom:0}
.hv-btn{width:100%;justify-content:center}
.hv-case.feature .hv-case-media{aspect-ratio:3/2}
.hv-logos img{height:30px}
}

body.hv2::before,body.hv2::after{display:none}
.hv-proof b{white-space:nowrap;font-size:clamp(2.3rem,4.2vw,4rem)}
.hv-pair{margin-bottom:clamp(72px,10vw,150px)}
.hv-stats{border-top:0;margin-top:8px}
.hv-story-steps dd a{color:var(--hv-blue);text-decoration:underline;text-underline-offset:3px}
.hv-final .hv-contact a{white-space:nowrap}
/* polish v2 */
@media(min-width:1024px){body.hv2 .top .nav{padding-block:8px}body.hv2 .top .brand img{height:107px;width:auto}body.hv2 .top .links a{font-size:15px}}
@media(min-width:900px){.hv-case.split{grid-template-columns:8fr 4fr;gap:clamp(28px,3vw,48px)}.hv-case.split.rev{grid-template-columns:4fr 8fr}}
.hv-story-steps div{padding:20px 0}
.hv-story-steps dt{font-size:.72rem;color:#7b8499}
.hv-story-steps dd{font-size:.98rem;color:#4a5368;line-height:1.55}
.hv-stats{margin-top:20px}
.hv-stats div{padding:30px 18px 26px 0}
.hv-stats b{font-size:clamp(3.4rem,6.4vw,6rem);letter-spacing:-.035em}
.hv-stats span{font-size:.95rem;color:#2a3246;font-weight:500}
.hv-hero{padding-top:clamp(36px,6vh,80px)}.hv-hero .hv-eyebrow{margin-bottom:18px}.hv-hero .hv-sub{margin-top:26px}.hv-hero .hv-ctas{margin-top:34px}.hv-reel{margin-top:clamp(36px,5vh,60px)}
@media(min-width:900px){.hv-case.split h3{font-size:clamp(2.2rem,3.5vw,3.5rem)}}
@media(min-width:640px){.hv-stats{grid-template-columns:repeat(2,1fr)}}
.hv-stats b{font-size:clamp(3.4rem,6.6vw,6.4rem)}

/* cursor-v19: light blue standard arrow cursor (desktop only) */
@media (pointer: fine){
body.hv2 .cursor-dot, body.hv2 .cursor-ring{display:none !important}
body.hv2, body.hv2.custom-cursor-active, body.hv2 *:not(input):not(textarea):not(select), body.hv2.custom-cursor-active *:not(input):not(textarea):not(select){cursor:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="24" viewBox="0 0 20 24"><path d="M2 1 L2 18 L6.5 14 L9.5 21.5 L11.5 20.5 L8.5 13 L14.5 13 Z" fill="%237fa2ff" stroke="%23ffffff" stroke-width="0.9" stroke-linejoin="round" paint-order="stroke"/></svg>') 2 1, default !important}
}

/* titles-dark-v19: headings on dark backgrounds → white, hover → site blue */
body.hv2 .hv-dark h1, body.hv2 .hv-dark h2, body.hv2 .hv-dark h3, body.hv2 .hv-dark h4,
body.hv2 .hv-dark .hv-h2, body.hv2 .hv-final h1, body.hv2 .hv-final h2,
body.hv2 main > .page-hero h1, body.hv2 main > .page-hero h2, body.hv2 main > .page-hero h3,
body.hv2 main > .page-hero h4 {
  color: #fff !important;
  transition: color .25s;
}
body.hv2 .hv-dark h2:hover, body.hv2 .hv-dark h3:hover,
body.hv2 .hv-final h2:hover,
body.hv2 main > .page-hero h2:hover, body.hv2 main > .page-hero h3:hover {
  color: var(--hv-blue-soft) !important;
}

/* inner-page hero headings (page-hero class, fullbleed-v17 area) */
body.hv2 main .page-hero h1, body.hv2 main .page-hero h2,
body.hv2 main .page-hero h3, body.hv2 main .page-hero h4 {
  color: #fff !important;
  transition: color .25s;
}
body.hv2 main .page-hero h2:hover, body.hv2 main .page-hero h3:hover {
  color: var(--hv-blue-soft) !important;
}

/* what-you-get-v19: fix heading size and chip tag visibility */
body.hv2 .svc-block-head h2,
body.hv2 .svc-block-head h3 {
  font-size: clamp(1.35rem, 2vw, 1.8rem) !important;
  font-weight: 650 !important;
  letter-spacing: -.02em !important;
  color: inherit !important;
}
body.hv2 .deliverables {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
body.hv2 .deliverables span {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #1a2646 !important;
  background: rgba(59, 107, 255, 0.08) !important;
  border: 1px solid rgba(59, 107, 255, 0.22) !important;
  padding: 8px 18px !important;
  border-radius: 999px !important;
  line-height: 1.4 !important;
}

/* Advertising page: website reel moved from home */
body.hv2 .hv-adv-reel{padding:56px 0 !important;overflow:hidden}
body.hv2 .hv-adv-reel .hv-reel{margin:0 auto}

/* hero-noreel: hero without website reel */
body.hv2 .hv-hero{min-height:auto !important;padding-bottom:clamp(72px,9vw,128px) !important}

/* fullbleed-v17: inner page heroes full width like home, solid header */
body.hv2 header.top{background:rgba(6,10,22,.96) !important}
body.hv2 main > .page-hero, body.hv2 main > .page-hero.shell{width:100% !important;max-width:none !important;margin:0 !important;border-radius:0 !important;box-sizing:border-box !important;padding:clamp(64px,8vw,128px) max(24px, calc((100% - 1240px) / 2 + 48px)) clamp(72px,9vw,128px) !important;background:radial-gradient(120% 80% at 85% 0%, rgb(20,34,77) 0%, rgba(6,10,22,0) 55%), rgb(6,10,22) !important;overflow:hidden}
body.hv2 main > .page-hero::before, body.hv2 main > .page-hero::after{left:0 !important;right:0 !important;width:100% !important;border-radius:0 !important}

/* words-v21 */
body.hv2 .hv-dark .hv-ubg-item .word{color:#fff !important;transition:color .25s}
body.hv2 .hv-dark .hv-ubg-item:hover .word{color:var(--hv-blue-soft) !important}

/* mobile type scale - Oct 9 */
@media (max-width:720px){body.hv2 p,body.hv2 li,body.hv2 .hv-lead{font-size:17px !important;line-height:1.6 !important}body.hv2 footer,body.hv2 footer a,body.hv2 footer p{font-size:16px !important}}

/* skip-link fix - Oct 9 */
body.hv2 a.skip:not(:focus){position:absolute !important;left:-9999px !important;top:auto !important;width:1px !important;height:1px !important;overflow:hidden !important;background:none !important}
