/* ================================================================
   Tuesdays — HOMEPAGE-ONLY styles
   Shared tokens/nav/footer/buttons live in shared.css (loaded first).
   ================================================================ */

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(20px,4vw,60px);align-items:center;width:100%;padding-top:90px}
.hero-copy h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.5rem,5.6vw,5.4rem);line-height:.99;letter-spacing:-.025em;max-width:14ch}
.hero-copy h1 .word{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .14em;margin:-.08em -.14em}
.hero-copy h1 .word i{display:inline-block;font-style:normal}
.hero-copy h1 .em i{font-style:italic;color:var(--accent)}
.hero-copy .hero-tag{margin-top:26px;font-family:var(--serif);font-weight:500;font-size:clamp(1.25rem,2vw,1.65rem);letter-spacing:-.01em;color:var(--ink)}
.hero-copy .hero-tag .gt{color:var(--accent);margin:0 .15em}
.hero-copy .sub{margin-top:14px;max-width:48ch;font-size:clamp(1.02rem,1.5vw,1.22rem);color:var(--ink-soft);line-height:1.55}
.hero-copy .cta-row{margin-top:38px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.hero-diagram{position:relative;width:100%;aspect-ratio:6/5;will-change:transform}
.hero-diagram svg{width:100%;height:100%;overflow:visible}
@media(max-width:900px){
  .hero{min-height:auto}
  .hero-grid{grid-template-columns:1fr;gap:24px;padding-top:110px;padding-bottom:64px}
  .hero-diagram{order:-1;max-width:400px;margin:0 auto;opacity:.9}
}

/* diagram elements */
.node-dot{fill:var(--ink)}
.node-label{font-family:var(--mono);font-size:13px;letter-spacing:.14em;fill:var(--ink-faint);text-transform:uppercase}
.node-label.node-label-hub{fill:var(--accent);font-weight:500}
.edge{stroke:var(--ink-faint);stroke-width:1;stroke-dasharray:2 5;opacity:.5;fill:none}
.edge.warm{stroke:var(--accent);opacity:.9;stroke-dasharray:none}
.mover{fill:var(--accent);filter:drop-shadow(0 0 8px rgba(240,78,48,.65))}

/* ---------- MARQUEE ---------- */
.strip{background:#e45038;color:#fff;overflow:hidden;padding:20px 0}
.marquee{display:flex;gap:56px;white-space:nowrap;animation:scroll 26s linear infinite;width:max-content}
.marquee span{font-family:var(--serif);font-size:1.3rem;font-style:normal;color:rgba(255,255,255,.92);display:inline-flex;align-items:center;gap:56px}
.marquee span::after{content:'';}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- GROWTH GAP ---------- */
.gap-lead{font-family:var(--serif);font-weight:500;font-size:clamp(1.9rem,4vw,3.1rem);line-height:1.06;letter-spacing:-.02em;max-width:20ch;margin-top:18px}
.gap-grid{margin-top:60px;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.gbox{position:relative;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;transition:transform .5s var(--ease),box-shadow .5s var(--ease),opacity .6s var(--ease);opacity:.55}
.gbox.hot{opacity:1;transform:translateY(-6px);box-shadow:0 30px 60px -34px rgba(22,24,29,.32)}
.gbox:hover{opacity:1;transform:translateY(-8px) scale(1.012);box-shadow:0 34px 66px -34px rgba(240,78,48,.4)}
.gbox .viz{position:relative;height:230px;overflow:hidden;background:var(--viz-bg,#eee)}
.gbox canvas{position:absolute;inset:0;width:100%;height:100%}
.gbox .gbody{padding:30px 28px 34px}
.gbox h3{font-family:var(--mono);font-weight:500;font-size:.86rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.gbox p{font-family:var(--serif);font-weight:400;font-size:1.08rem;line-height:1.32;letter-spacing:-.005em;color:var(--ink)}
.gap-cta{margin-top:54px}
@media(max-width:860px){.gap-grid{grid-template-columns:1fr}.gbox{opacity:1}}

/* ---------- APPROACH DECK ---------- */
.approach-head{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:end;margin-bottom:52px}
.approach-head .big{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1.12;letter-spacing:-.02em}
.approach-head .big em{font-style:italic;color:var(--accent)}
.approach-head .aside{color:var(--ink-soft);font-size:1.02rem;line-height:1.6}
@media(max-width:820px){.approach-head{grid-template-columns:1fr;gap:22px}}

.deck-wrap{position:relative}
.deck{position:relative;height:clamp(440px,52vw,560px);perspective:1800px;perspective-origin:50% 30%;margin-bottom:70px}
.deck-card{
  position:absolute;inset:0;
  display:grid;grid-template-columns:1.05fr 1fr;
  background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;
  box-shadow:0 30px 70px -40px rgba(22,24,29,.35);
  transform-origin:center bottom;
  transition:transform .7s var(--ease),opacity .55s var(--ease),box-shadow .7s var(--ease);
  will-change:transform,opacity;
  backface-visibility:hidden;
}
.deck-card.leaving{transition:transform .7s var(--ease),opacity .55s var(--ease)}
.deck-media{position:relative;overflow:hidden;background:var(--paper-2)}
.deck-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.deck-card.top:hover .deck-media img{transform:scale(1.05)}
.deck-media .ctag{position:absolute;top:20px;left:20px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);padding:7px 13px;border-radius:100px;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 4px 20px -6px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.4)}
.deck-body{padding:clamp(30px,4vw,52px);display:flex;flex-direction:column;justify-content:center}
.deck-body .clabel{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin-bottom:16px}
.deck-body h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,2.7vw,2.2rem);line-height:1.08;letter-spacing:-.015em;margin-bottom:16px}
.deck-body p{color:var(--ink-soft);font-size:1.04rem;line-height:1.6;margin-bottom:26px;max-width:42ch}
.deck-body .arrowlink{align-self:flex-start}
@media(max-width:860px){
  .deck{height:auto;min-height:0}
  .deck-card{grid-template-columns:1fr;grid-template-rows:auto auto}
  .deck-card.top{position:relative;inset:auto}
  .deck-card:not(.top){position:absolute;inset:0}
  .deck-media{min-height:200px;height:200px}
  .deck-body{padding:28px 24px 32px;justify-content:flex-start}
  .deck-body p{margin-bottom:22px}
  .deck-body .arrowlink{margin-top:6px}
}

.deck-controls{display:flex;align-items:center;gap:28px;margin-top:32px}
.deck-progress{flex:1;height:3px;background:var(--line);border-radius:100px;overflow:hidden}
.deck-progress span{display:block;height:100%;width:11%;background:var(--accent);border-radius:100px;transition:width .5s var(--ease)}
.deck-side{display:flex;align-items:center;gap:22px}
.deck-count{font-family:var(--mono);font-size:13px;color:var(--ink-faint);letter-spacing:.08em}
.deck-count b{color:var(--ink);font-weight:500}
.deck-arrows{display:flex;gap:10px}
.deck-arrows button{width:52px;height:52px;border-radius:50%;border:1px solid var(--ink);background:none;cursor:pointer;display:grid;place-items:center;font-size:20px;color:var(--ink);transition:all .3s var(--ease)}
.deck-arrows button:hover{background:var(--ink);color:var(--bg)}

/* ---------- IMPACT ---------- */
.impact{background:var(--accent);color:#fff}
.impact-h{font-family:var(--serif);font-weight:500;font-size:clamp(1.8rem,3.4vw,2.7rem);letter-spacing:-.02em;max-width:18ch;color:#fff}
.impact-title{margin-bottom:60px}
.impact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:rgba(255,255,255,.22)}
.impact .cell{background:var(--accent);padding:48px 30px;min-width:0}
.impact .v{font-family:var(--serif);font-weight:500;font-size:clamp(2.4rem,4.5vw,3.6rem);letter-spacing:-.02em;color:#fff;line-height:1}
.impact .v em{font-style:normal;color:rgba(255,255,255,.72)}
.impact .l{margin-top:14px;color:rgba(255,255,255,.85);font-size:.95rem;line-height:1.45}
@media(max-width:820px){
  .impact-grid{grid-template-columns:1fr 1fr}
  .impact .cell{padding:34px 20px}
  .impact .v{font-size:clamp(1.9rem,7.5vw,2.6rem)}
}
@media(max-width:400px){
  .impact .v{font-size:1.75rem}
}

/* ---------- WHY (interactive split tabs) ---------- */
.why-top{margin-bottom:52px}
.why-lead{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.12;letter-spacing:-.02em;max-width:26ch;margin-top:14px}
.why-tabs{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,5vw,74px);align-items:stretch}
.why-nav{display:flex;flex-direction:column;gap:4px}
.why-tab{position:relative;text-align:left;background:none;border:none;cursor:pointer;padding:30px 4px 30px 30px;border-radius:14px;transition:background .4s var(--ease);color:inherit}
.why-tab .wt-head{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.08;letter-spacing:-.015em;color:var(--ink-faint);transition:color .4s var(--ease)}
.why-tab .wt-sub{display:block;max-height:0;overflow:hidden;opacity:0;color:var(--ink-soft);font-size:1.02rem;line-height:1.55;transition:max-height .5s var(--ease),opacity .5s var(--ease),margin .5s var(--ease)}
.why-tab.active{background:var(--paper-2)}
.why-tab.active .wt-head{color:var(--ink)}
.why-tab.active .wt-sub{max-height:200px;opacity:1;margin-top:14px;max-width:46ch}
.why-tab .wt-line{position:absolute;left:0;top:24px;bottom:24px;width:2px;background:var(--line);border-radius:2px;overflow:hidden}
.why-tab .wt-line span{position:absolute;inset:0;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .1s linear}
.why-stage{position:relative;border-radius:18px;overflow:hidden;min-height:420px;background:var(--paper-2)}
.why-vis{position:absolute;inset:0;opacity:0;transform:scale(1.04);transition:opacity .7s var(--ease),transform .9s var(--ease);margin:0}
.why-vis.active{opacity:1;transform:scale(1)}
.why-vis img{width:100%;height:100%;object-fit:cover}
.why-vis figcaption{position:absolute;left:22px;bottom:22px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(22,24,29,.55);padding:8px 14px;border-radius:100px;backdrop-filter:blur(6px)}
@media(max-width:820px){.why-tabs{grid-template-columns:1fr;gap:24px}.why-stage{min-height:300px;order:-1}}

/* ================================================================
   OUR CLIENTS — dual-row infinite logo marquee
   Logos: white-bg JPGs (349x132) in white cards, off-white section.
   Seamless loop: each track holds the set TWICE and translates -50%.
   ================================================================ */
.clients{background:var(--paper-2);padding-top:clamp(70px,8vw,110px);padding-bottom:clamp(70px,8vw,110px);overflow:hidden}
.clients-head{margin-bottom:clamp(36px,5vw,56px)}
.clients-lead{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1.1;letter-spacing:-.02em;max-width:20ch;margin-top:16px}

.client-rows{display:flex;flex-direction:column;gap:22px;
  /* fade the left/right edges so logos slide in/out softly */
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.client-marquee{overflow:hidden}
.client-track{display:flex;gap:22px;width:max-content;will-change:transform}
/* row 0 scrolls left, row 1 scrolls right; durations differ slightly so they never sync */
.client-marquee[data-row="0"] .client-track{animation:client-scroll-l 60s linear infinite}
.client-marquee[data-row="1"] .client-track{animation:client-scroll-r 68s linear infinite}
@keyframes client-scroll-l{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes client-scroll-r{from{transform:translateX(-50%)}to{transform:translateX(0)}}
/* pause on hover so a viewer can settle on a logo */
.client-rows:hover .client-track{animation-play-state:paused}

.client-card{flex:0 0 auto;width:220px;height:96px;background:#fff;border-radius:14px;
  display:flex;align-items:center;justify-content:center;padding:14px 20px;
  box-shadow:0 8px 22px -14px rgba(22,24,29,.28)}
.client-card img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}

@media(max-width:640px){
  .client-card{width:170px;height:78px;padding:12px 16px}
  .client-rows{gap:16px}.client-track{gap:16px}
}
@media(prefers-reduced-motion:reduce){
  .client-track{animation:none!important}
  /* fall back to a scrollable strip if motion is off */
  .client-marquee{overflow-x:auto}
}

/* section-level CTAs under the deck and the Why tabs */
.section-cta{margin-top:clamp(36px,5vw,54px)}

/* ================================================================
   INDUSTRY INTERVENTIONS — per-event gallery boxes + lightbox
   ================================================================ */
.iv-title{font-family:var(--serif);font-weight:500;font-size:clamp(1.9rem,3.6vw,2.9rem);letter-spacing:-.02em;margin-bottom:clamp(32px,4vw,48px)}
/* event logos under the section heading: one row, evenly spaced, white JPG backgrounds blended into the page */
.iv-logos{display:flex;flex-wrap:nowrap;align-items:center;gap:clamp(24px,5vw,72px);margin:calc(-1 * clamp(8px,1.5vw,16px)) 0 clamp(32px,4vw,48px)}
.iv-logos img{display:block;width:auto;height:clamp(40px,5vw,64px);max-width:28%;object-fit:contain;border-radius:8px;mix-blend-mode:multiply}
.ivg-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,16vw,240px);grid-auto-flow:dense;gap:16px}
.ivg-tile{position:relative;margin:0;border-radius:18px;overflow:hidden;cursor:zoom-in;outline:none;
  background:linear-gradient(135deg,var(--paper-2),#e9e2d6)}
.ivg-tile:first-child{grid-column:span 2;grid-row:span 2}
.ivg-tile img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transform:scale(1.02);
  transition:opacity .7s var(--ease),transform .9s var(--ease)}
.ivg-tile.is-loaded img{opacity:1;transform:none}
.ivg-tile:hover img{transform:scale(1.05)}
.ivg-tile:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.ivg-grid.is-empty{display:none}
/* close gaps when fewer than 5 photos load (5 = 1 large + 4 small is the full layout) */
.ivg-grid[data-n="4"] .ivg-tile:last-child{grid-column:span 2}
.ivg-grid[data-n="3"] .ivg-tile:not(:first-child){grid-column:span 2}
.ivg-grid[data-n="2"] .ivg-tile{grid-column:span 2;grid-row:span 2}
.ivg-grid[data-n="1"] .ivg-tile{grid-column:1/-1;grid-row:span 2}
.ivg-cta{margin-top:clamp(28px,4vw,44px)}
@media(max-width:860px){
  .ivg-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(130px,38vw,200px);gap:12px}
  .ivg-tile:first-child{grid-column:span 2;grid-row:span 1}
  /* 2-col mobile grid: reset desktop gap-fillers, then fill the odd slot */
  .ivg-grid[data-n] .ivg-tile:not(:first-child){grid-column:auto;grid-row:auto}
  .ivg-grid[data-n="4"] .ivg-tile:last-child,
  .ivg-grid[data-n="2"] .ivg-tile:last-child{grid-column:span 2}
}

.iv-lightbox{position:fixed;inset:0;z-index:210;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,48px);
  background:rgba(22,24,29,.88);opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s var(--ease)}
.iv-lightbox.show{opacity:1;visibility:visible}
.iv-lb-inner{position:relative;width:auto;max-width:min(1100px,100%);display:flex;flex-direction:column;align-items:stretch}
.iv-lb-stage{width:100%;display:flex;justify-content:center}
.iv-lb-stage img,.iv-lb-stage video{max-width:100%;max-height:78vh;border-radius:14px;display:block;background:#000}
.iv-lb-bar{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:16px;color:#fff}
.iv-lb-title{font-family:var(--serif);font-size:1.2rem}
.iv-lb-count{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:rgba(255,255,255,.7)}
.iv-lb-close{position:absolute;top:-46px;right:0;width:38px;height:38px;border:none;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:24px;line-height:1;cursor:pointer}
.iv-lb-nav{position:absolute;top:calc(50% - 40px);width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(22,24,29,.4);color:#fff;font-size:22px;cursor:pointer}
.iv-lb-nav.prev{left:-12px}.iv-lb-nav.next{right:-12px}
.iv-lb-nav:hover,.iv-lb-close:hover{background:var(--accent);border-color:var(--accent)}
@media(min-width:1180px){.iv-lb-nav.prev{left:-64px}.iv-lb-nav.next{right:-64px}}
