/* southpaw site styles */

:root{
  --bg:      #201c1d;
  --bg-2:    #191617;
  --panel:   #2a2526;
  --fg:      #f4f3f1;
  --fg-soft: #9a9698;
  --fg-faint:#676365;

  --yellow:  #ffff00;
  --magenta: #ffff00; /* was #ff00ff; pink retired, brand yellow only */
  --blood:   #c1301f;

  --neon:      linear-gradient(118deg, var(--yellow) 0%, var(--yellow) 44%, var(--magenta) 120%);
  --neon-card: linear-gradient(135deg, var(--yellow) 0%, var(--yellow) 52%, var(--magenta) 132%);
  --neon-glow: radial-gradient(58% 80% at 80% 26%, rgba(255,255,0,.14), transparent 62%),
               radial-gradient(54% 74% at 6% 98%, rgba(255,255,0,.10), transparent 58%);

  --line:      rgba(244,243,241,.14);
  --line-soft: rgba(244,243,241,.07);
  --line-strong:rgba(244,243,241,.30);

  --font-sans: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;

  --font-body: "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: "Space Mono", "Courier New", monospace;

  --measure: 1280px;
  --gutter: clamp(22px, 5.2vw, 84px);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  background:var(--bg); color:var(--fg);
  font-family:var(--font-body); font-size:18px; line-height:1.65; font-weight:300;
  overflow-x:hidden; text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased; letter-spacing:-0.004em;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--yellow); color:var(--bg); }

body::before{
  content:""; position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("textures/grain.jpg"); background-size:240px 240px;
}

/* tape strips */

h1,h2,h3{ font-family:var(--font-sans); font-weight:700; line-height:.96; letter-spacing:-0.04em; }
.mono{ font-family:var(--font-mono); }
.yellow{ color:var(--yellow); }
.mark-block{ background:var(--yellow); color:var(--bg); padding:0 .1em .04em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }

.cap{ font-family:var(--font-mono); font-size:clamp(10px,.72vw,12px);
  letter-spacing:.2em; text-transform:uppercase; color:var(--fg-soft); }
.eyebrow{ font-family:var(--font-mono); font-size:clamp(10px,.74vw,12.5px);
  letter-spacing:.22em; text-transform:uppercase; color:var(--fg-soft); }
.eyebrow .dot{ display:inline-block; width:.55em; height:.55em; background:var(--yellow);
  margin-right:.6em; vertical-align:middle; transform:translateY(-0.06em); }

.hl{ white-space:nowrap; }
.hl .t{
  background:linear-gradient(var(--yellow),var(--yellow)) no-repeat;
  background-size:0% 84%; background-position:left 64%;
  padding:0 .06em; -webkit-box-decoration-break:clone; box-decoration-break:clone;
  transition:background-size .6s cubic-bezier(.16,.84,.28,1), color .35s ease .14s;
}
.hl.lit .t{ background-size:100% 84%; color:var(--bg); }

.wrap{ max-width:var(--measure); margin-inline:auto; padding-inline:var(--gutter); }
section{ position:relative; }
.section-pad{ padding-block:clamp(92px,15vh,190px); }
.divider{ border-top:1px solid var(--line); }

.light{
  --fg:#201c1d; --fg-soft:#6b6668; --fg-faint:#9b9698;
  --line:rgba(32,28,29,.16); --line-soft:rgba(32,28,29,.08); --line-strong:rgba(32,28,29,.34);
  color:#201c1d;
  background:radial-gradient(rgba(32,28,29,.16) 1.1px, transparent 1.6px) 0 0 / 18px 18px, #f6f5f2;
}

.light .yellow{ background:var(--yellow); color:#201c1d; padding:0 .12em .04em;
  -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.light .marker .idx{ color:#201c1d; }
.light .bout .billing{ color:#201c1d; }

.light .reel-rec, .light .reel-cta{ color:#f4f3f1; }

.marker{ display:flex; align-items:baseline; gap:16px; margin-bottom:clamp(40px,6vw,72px);
  font-family:var(--font-mono); font-size:clamp(11px,.78vw,13px); letter-spacing:.2em;
  text-transform:uppercase; color:var(--fg-soft); }
.marker .idx{ color:var(--yellow); }
.marker .grow{ flex:1; height:1px; background:var(--line); transform:translateY(-.3em); }

.logo{ display:block; flex:none; color:currentColor; }
.logo svg{ width:100%; height:100%; display:block; overflow:visible; }
.logo .sq,.logo .ci{ fill:none; stroke:currentColor; stroke-width:7; }

.btn{
  --c:var(--yellow); --t:var(--bg);
  position:relative; overflow:hidden; display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--font-mono); font-weight:700; font-size:13px; letter-spacing:.04em;
  text-transform:uppercase; padding:15px 26px;
  background:var(--c); color:var(--t); border:1.5px solid var(--c); cursor:pointer;
  transition:color .35s ease;
}
.btn .arr,.btn span{ position:relative; z-index:1; transition:transform .2s ease; }
.btn::before{ content:""; position:absolute; inset:0; z-index:0; background:var(--t);
  transform:scaleX(0); transform-origin:right; transition:transform .4s cubic-bezier(.5,.1,.3,1); }
.btn:hover{ color:var(--c); }
.btn:hover::before{ transform:scaleX(1); transform-origin:left; }
.btn:hover .arr{ transform:translateX(4px); }
.btn.ghost{ --c:var(--fg); --t:var(--bg); background:transparent; color:var(--fg); border-color:var(--line-strong); }
.btn.ghost:hover{ color:var(--bg); }
.btn.ghost::before{ background:var(--fg); }

.tlink{ font-family:var(--font-mono); font-size:12.5px; letter-spacing:.05em; text-transform:uppercase;
  position:relative; padding-bottom:5px; color:var(--fg); }
.tlink::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--yellow);
  transform:scaleX(1); transform-origin:left; transition:transform .3s ease; }
.tlink:hover::after{ transform:scaleX(.35); }

.nav{ position:sticky; top:0; z-index:100; background:rgba(32,28,29,.78);
  backdrop-filter:blur(14px) saturate(1.1); -webkit-backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--line); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:16px; }
.brand{ display:flex; align-items:center; gap:13px; }
.brand-logo{ height:25px; width:auto; display:block; }
.brand .logo{ width:26px; height:26px; }
.brand .mark{ font-family:var(--font-sans); font-weight:700; font-size:23px; letter-spacing:-0.045em; line-height:1; }
.nav-links{ display:flex; gap:32px; align-items:center; }
.nav-links a{ font-family:var(--font-mono); font-size:12.5px; letter-spacing:.02em; color:var(--fg-soft);
  position:relative; transition:color .2s; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:-5px; width:100%; height:2px; background:var(--yellow);
  transform:scaleX(0); transform-origin:left; transition:transform .24s cubic-bezier(.5,.1,.3,1); }
.nav-links a:hover{ color:var(--yellow); }
.nav-links a:hover::after{ transform:scaleX(1); }

.nav-links a.navswap{ color:var(--fg-soft); }
.nav-links a.navswap::after{ content:none; }
.nav-links a.navswap:hover{ color:var(--fg-soft); }
.navswap .swap{ position:relative; display:inline-block; line-height:1.05; }
.navswap .t{ padding:0 .22em; white-space:nowrap;
  transition:clip-path .42s cubic-bezier(.6,.05,.2,1);
  -webkit-clip-path:inset(0 0 0 0); clip-path:inset(0 0 0 0); }
.navswap .base{ display:block; }
.navswap .alt{ position:absolute; top:0; left:50%; transform:translateX(-50%);
  background:var(--yellow); color:var(--bg); pointer-events:none;
  -webkit-clip-path:inset(0 100% 0 0); clip-path:inset(0 100% 0 0); }
.navswap:hover .base,.navswap:focus-visible .base{ -webkit-clip-path:inset(0 0 0 100%); clip-path:inset(0 0 0 100%); }
.navswap:hover .alt,.navswap:focus-visible .alt{ -webkit-clip-path:inset(0 0 0 0); clip-path:inset(0 0 0 0); }
@media (prefers-reduced-motion: reduce){ .navswap .t{ transition:none; } }
.nav .btn{ padding:10px 18px; font-size:11.5px; }
.menu-btn{ display:none; }

.hero{ position:relative; overflow:hidden; min-height:clamp(620px,90vh,960px);
  display:flex; align-items:center; padding-block:clamp(70px,10vh,120px); }
/* the mat: a black ring-canvas weave under everything */
.hero::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:url("textures/canvas-weave.jpg") center/cover no-repeat; opacity:.8; }
.hero-art{ position:absolute; inset:0; z-index:0; pointer-events:none; }
.hero-fx{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.hero-art::after{
  content:""; position:absolute; inset:0; opacity:.5;
  background:repeating-linear-gradient(90deg, var(--line-soft) 0 1px, transparent 1px clamp(60px,9vw,130px));
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);
}
.hero .wrap{ position:relative; z-index:1; width:100%; text-align:center; }

/* the billing: set like a fight poster */
.bill-row{ display:block; font-weight:800; font-size:clamp(50px,12vw,168px); line-height:.9;
  letter-spacing:-0.04em; text-transform:uppercase; }
.bill-row .mark-block{ padding:0 .09em .03em; }
.hero-sub{ font-size:clamp(16.5px,1.35vw,21px); line-height:1.5; max-width:52ch; color:var(--fg);
  margin:clamp(28px,3.4vw,46px) auto clamp(30px,3.4vw,44px); }
.hero-sub b{ font-weight:700; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:center; }
.hero-venue{ margin-top:clamp(44px,6vw,76px); display:flex; align-items:center; justify-content:center; }

.hero-post{ position:absolute; z-index:1; width:clamp(16px,1.8vw,26px); height:clamp(16px,1.8vw,26px);
  border:0 solid var(--yellow); pointer-events:none; }
.hero-post.tl{ top:clamp(18px,2.6vw,34px); left:clamp(18px,2.6vw,34px); border-top-width:2px; border-left-width:2px; }
.hero-post.tr{ top:clamp(18px,2.6vw,34px); right:clamp(18px,2.6vw,34px); border-top-width:2px; border-right-width:2px; }
.hero-post.bl{ bottom:clamp(18px,2.6vw,34px); left:clamp(18px,2.6vw,34px); border-bottom-width:2px; border-left-width:2px; }
.hero-post.br{ bottom:clamp(18px,2.6vw,34px); right:clamp(18px,2.6vw,34px); border-bottom-width:2px; border-right-width:2px; }

.cross-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(34px,6vw,96px); align-items:start; }
.cross-media{ display:flex; flex-direction:column; gap:clamp(24px,3vw,40px); }
.cross-photo{ position:relative; margin:0; }
.cross-photo img{ display:block; width:100%; height:auto; border:1px solid var(--line-strong); filter:contrast(1.02); }
.cross-photo figcaption{ display:flex; justify-content:space-between; gap:16px; margin-top:10px;
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-soft); }
.cross h2{ font-size:clamp(32px,4.4vw,62px); margin-bottom:28px; max-width:16ch; }
.cross p{ font-size:clamp(16px,1.15vw,19px); margin-bottom:20px; max-width:46ch; color:var(--fg); }
.cross p em{ color:var(--yellow); font-style:italic; }
.cross .footnote{ font-family:var(--font-mono); font-size:clamp(10px,.76vw,12px); letter-spacing:.04em; color:var(--fg-soft); font-style:normal; text-transform:uppercase; max-width:54ch; margin-top:20px; line-height:1.75; text-shadow:0 1px 14px rgba(20,18,19,.85), 0 0 2px rgba(20,18,19,.6); }
.cross .footnote .fn-hl{ color:var(--fg); }

.cross{ overflow:hidden; isolation:isolate; background:var(--bg-2); }
.cross .wrap{ position:relative; z-index:1; }

.cross-hint{ position:absolute; z-index:1; right:var(--gutter); bottom:clamp(20px,3vw,38px);
  display:flex; align-items:center; gap:10px; font-family:var(--font-mono);
  font-size:clamp(9.5px,.72vw,11px); letter-spacing:.22em; text-transform:uppercase;
  color:var(--fg-faint); pointer-events:none; }
.cross-hint .pip{ width:8px; height:8px; background:var(--magenta);
  animation:reel-blink 1.8s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce){ .cross-hint .pip{ animation:none; } }
@media (max-width:760px){ .cross-hint{ display:none; } }

.gallery{ padding:0; }
.gallery-row{ display:grid; gap:2px; background:var(--line); }
.gallery-row.cols-3{ grid-template-columns:repeat(3,1fr); }
.gallery-row.cols-2{ grid-template-columns:repeat(2,1fr); }
.gslot{ width:100%; aspect-ratio:495/376; display:block; background:var(--bg-2); }
.gslot.wide{ aspect-ratio:16/9; }
@media (max-width:760px){ .gallery-row.cols-3,.gallery-row.cols-2{ grid-template-columns:1fr; } }

.logos{ overflow:hidden; padding:clamp(34px,4.6vw,56px) 0;
  background:radial-gradient(rgba(32,28,29,.16) 1.1px, transparent 1.6px) 0 0 / 18px 18px, #f6f5f2; }
.logos-viewport{ overflow:hidden; cursor:grab; touch-action:pan-y; user-select:none;
  -webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.logos-viewport.dragging{ cursor:grabbing; }
.logos-track{ display:flex; align-items:center; width:max-content; will-change:transform; --logo-h:clamp(30px,2.7vw,40px); }
.logos-track img{ -webkit-user-drag:none; user-select:none; pointer-events:none; }
.logos-track .logo-item{ position:relative; flex:0 0 auto; height:var(--logo-h);
  margin:0 clamp(30px,4.4vw,68px); }
.logos-track .logo-img{ display:block; width:100%; height:100%; object-fit:contain;

  filter:brightness(0) saturate(0); opacity:.8;
  transition:filter .45s ease, opacity .45s ease; }
.logos-track .logo-item:hover .logo-img{ filter:none; opacity:1; }
@keyframes logo-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .logos-track{ animation:none; } }

.reel{ overflow:hidden; }
.reel-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:18px 48px; }
.reel-head h2{ font-size:clamp(36px,6vw,98px); line-height:.9; letter-spacing:-0.05em; max-width:15ch; }
.reel-lede{ font-family:var(--font-body); font-weight:300; font-size:clamp(16px,1.3vw,21px);
  color:var(--fg-soft); max-width:42ch; line-height:1.5; }

.reel-stage{ position:relative; margin-top:clamp(34px,4.6vw,64px); }
.reel-frame{ position:relative; z-index:1; display:block; width:100%; aspect-ratio:16/9;
  overflow:hidden; padding:0; background:#0c0a0b; cursor:pointer; -webkit-tap-highlight-color:transparent;
  box-shadow:0 0 0 1px rgba(32,28,29,.18), 0 40px 90px -50px rgba(0,0,0,.7); }
.reel-thumb,.reel-water{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(1) contrast(1.04) brightness(.92);
  transform:scale(1.02); transition:transform 1.1s cubic-bezier(.2,.7,.2,1), filter .7s ease; }
.reel-water{ z-index:1; opacity:0; transition:opacity .5s ease, transform 1.1s cubic-bezier(.2,.7,.2,1), filter .7s ease; }
.reel-water.ready{ opacity:1; }
.reel-frame:hover .reel-thumb,.reel-frame:hover .reel-water,
.reel-frame:focus-visible .reel-thumb,.reel-frame:focus-visible .reel-water{ transform:scale(1.05); filter:grayscale(0) contrast(1.02) brightness(1); }
.reel-grad{ position:absolute; inset:0; pointer-events:none; z-index:2;
  background:linear-gradient(to top, rgba(12,10,11,.55) 0%, transparent 38%),
             linear-gradient(120deg, rgba(12,10,11,.28), transparent 46%); }

.reel-play{ position:absolute; left:50%; top:50%; z-index:3; pointer-events:none;
  width:clamp(74px,8vw,116px); height:clamp(74px,8vw,116px); border-radius:50%;
  background:var(--yellow); display:flex; align-items:center; justify-content:center;
  transform:translate(-50%,-50%);
  box-shadow:0 20px 50px rgba(0,0,0,.4), 0 0 0 1px rgba(32,28,29,.12);
  transition:box-shadow .4s ease; }
.reel-frame:hover .reel-play,.reel-frame:focus-visible .reel-play{ box-shadow:0 24px 70px rgba(0,0,0,.5), 0 0 0 8px rgba(255,255,0,.14); }
.reel-play .tri{ width:0; height:0; margin-left:14%;
  border-style:solid; border-width:clamp(11px,1.2vw,16px) 0 clamp(11px,1.2vw,16px) clamp(18px,2vw,27px);
  border-color:transparent transparent transparent var(--bg); }

.reel-meta{ position:absolute; z-index:3; left:0; right:0; bottom:0; pointer-events:none;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:clamp(18px,2.2vw,30px);
  font-family:var(--font-mono); font-size:clamp(10px,.8vw,12.5px); letter-spacing:.18em;
  text-transform:uppercase; color:#f4f3f1; }
.reel-meta .r{ color:rgba(244,243,241,.62); }

.reel-frame.playing{ cursor:default; }
.reel-frame.playing > :not(iframe){ opacity:0; pointer-events:none; }
.reel-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; z-index:5; }

@media (prefers-reduced-motion: reduce){
  .reel-thumb,.reel-water{ transition:none; }
}

.tape{ align-self:start; border-top:1px solid var(--line-strong); position:relative; }
.tape-head{ display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:11px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--fg-soft); padding:14px 2px; }
.tape-head .vs{ color:var(--yellow); }
.tape-row{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-top:1px solid var(--line); }
.tape-row .c{ font-family:var(--font-sans); font-weight:700; font-size:clamp(19px,2vw,30px); padding:18px 2px; letter-spacing:-0.035em; }
.tape-row .c.r{ text-align:right; color:var(--yellow); }
.tape-row .mid{ font-family:var(--font-mono); font-size:9.5px; color:var(--fg-faint); padding:0 14px; letter-spacing:.16em; text-transform:uppercase; }

.svc-head{ display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:end; margin-bottom:6px; }
.svc-head h2{ font-size:clamp(32px,4.4vw,62px); }
.svc-head p{ font-size:clamp(15px,1.05vw,18px); color:var(--fg-soft); max-width:38ch; }
.svc-list{ border-top:1px solid var(--line); margin-top:22px; }
.svc{ position:relative; overflow:hidden; display:grid; grid-template-columns:auto 1.05fr 1.9fr auto; gap:clamp(16px,3vw,52px); align-items:center;
  padding:clamp(26px,3.4vw,46px) clamp(8px,1.4vw,20px); border-bottom:1px solid var(--line); color:var(--fg); cursor:pointer;
  transition:padding-left .5s cubic-bezier(.5,.05,.2,1), padding-right .5s cubic-bezier(.5,.05,.2,1); }
.svc::before{ content:""; position:absolute; inset:0; z-index:0; background:var(--yellow);
  transform:scaleX(0); transform-origin:left center; transition:transform .55s cubic-bezier(.5,.05,.2,1); }
.svc > *{ position:relative; z-index:1; transition:transform .5s cubic-bezier(.22,.61,.36,1), color .45s ease; }
.svc:hover > *:not(.view){ transform:translateX(clamp(14px,2.6vw,38px)); }
.svc:hover::before{ transform:scaleX(1); }
.svc .num{ font-family:var(--font-mono); font-size:12px; color:var(--fg-faint); letter-spacing:.1em; }
.svc h3{ font-size:clamp(26px,3vw,46px); line-height:.98; letter-spacing:-0.04em; }
.svc:hover .num,.svc:hover h3,.svc:hover .desc,.svc:hover .desc b{ color:var(--bg); }
.svc .desc{ font-size:clamp(15px,1.05vw,18px); color:var(--fg-soft); max-width:50ch; }
.svc .desc b{ color:var(--fg); font-weight:700; }
.svc .view{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--fg-soft);
  display:flex; align-items:center; gap:9px; white-space:nowrap; transition:color .3s ease; }
.svc:hover .view{ color:var(--bg); transition:color .3s ease .3s; }

.portfolio{ background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  position:relative; overflow:hidden; padding:0; }
.pf-viewport{ height:50vh; overflow:hidden; }
.pf-track{ display:grid; grid-auto-flow:column; grid-template-rows:repeat(2,1fr); grid-auto-columns:max-content;
  gap:2px; height:100%; width:max-content; will-change:transform;
  animation:pf-scroll var(--pf-dur,80s) linear infinite; }
.pf-viewport:hover .pf-track{ animation-play-state:paused; }
@keyframes pf-scroll{ from{ transform:translateX(calc(-1 * var(--pf-shift,50%))); } to{ transform:translateX(0); } }
@media (prefers-reduced-motion:reduce){ .pf-track{ animation:none; } }
.pf-item{ position:relative; height:100%; aspect-ratio:1/1; overflow:hidden; cursor:pointer;
  background:var(--tile-bg,#161416); border:0; padding:0; display:block; }

.pf-item img,.pf-item video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:.13; transition:opacity .55s cubic-bezier(.4,.1,.3,1); }
.pf-item:hover img,.pf-item:focus-visible img,
.pf-item:hover video,.pf-item:focus-visible video{ opacity:1; }

.pf-cap{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-end;
  gap:9px; padding:clamp(14px,1.5vw,22px); text-align:left; pointer-events:none;
  transition:opacity .4s ease; }
.pf-item:hover .pf-cap,.pf-item:focus-visible .pf-cap{ opacity:0; }
.pf-cap .sk{ font-family:var(--font-mono); font-size:clamp(9px,.72vw,11px); letter-spacing:.16em;
  text-transform:uppercase; color:var(--tile-fg,#fff); opacity:.72; }
.pf-cap .ti{ font-family:var(--font-sans); font-weight:700; font-size:clamp(17px,1.5vw,27px);
  line-height:1.0; letter-spacing:-0.035em; color:var(--tile-fg,#fff); text-wrap:balance; }
.pf-item.is-video .pf-cap .sk::before{ content:"\25B6  "; font-size:.82em; }

.pf-lightbox{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center;
  padding:clamp(16px,4vw,60px); opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease; }
.pf-lightbox::before{ content:""; position:absolute; inset:0; background:rgba(18,16,17,.72);
  -webkit-backdrop-filter:blur(16px) saturate(.9); backdrop-filter:blur(16px) saturate(.9); }
.pf-lightbox.open{ opacity:1; visibility:visible; }
.pf-modal{ position:relative; z-index:1; display:grid; grid-template-columns:1.18fr .82fr;
  width:min(1040px,100%); max-height:88vh;
  --lb-bg:var(--yellow); --lb-fg:#201c1d; --lb-media:var(--bg-2); --lb-line:rgba(32,28,29,.4); --lb-accent:#201c1d;
  background:var(--lb-bg); border:1px solid var(--lb-bg);
  box-shadow:0 40px 120px rgba(0,0,0,.6); overflow:hidden;
  transform:translateY(16px) scale(.985); transition:transform .4s cubic-bezier(.2,.7,.2,1); }

.pf-modal::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.14;
  background:radial-gradient(var(--lb-line) 1px, transparent 1.4px); background-size:10px 10px; }
.pf-lightbox.open .pf-modal{ transform:none; }
.pf-media{ position:relative; z-index:1; background:var(--lb-media); display:flex; align-items:center; justify-content:center; min-height:260px; }
.pf-media img{ width:100%; height:100%; max-height:88vh; object-fit:contain; }
.pf-media video{ width:100%; height:100%; max-height:88vh; object-fit:cover; background:#000; display:block; }
.pf-media iframe{ width:100%; aspect-ratio:16/9; border:0; align-self:center; }
.pf-info{ position:relative; z-index:1; padding:clamp(26px,3vw,44px); overflow-y:auto; display:flex; flex-direction:column; color:var(--lb-fg); }
.pf-kicker{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--lb-fg); opacity:.7; }
.pf-info h3{ font-size:clamp(26px,3vw,42px); line-height:1; letter-spacing:-0.04em; margin:12px 0 18px; color:var(--lb-fg); }
.pf-blurb{ font-size:clamp(15px,1.05vw,17px); color:var(--lb-fg); opacity:.85; line-height:1.55; }
.pf-fields{ display:grid; grid-template-columns:1fr 1fr; gap:20px 24px; margin:28px 0;
  border-top:1px solid var(--lb-line); padding-top:24px; }
.pf-field span{ display:block; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--lb-fg); opacity:.55; margin-bottom:7px; }
.pf-field > div{ font-size:15px; color:var(--lb-fg); }
.pf-field-wide{ grid-column:1/-1; }
.pf-skills{ display:flex; flex-wrap:wrap; gap:8px; }
.pf-skills span{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--lb-fg); border:1px solid var(--lb-line); padding:5px 9px; }
.pf-links{ display:flex; flex-wrap:wrap; gap:12px; margin-top:auto; padding-top:22px; }
.pf-links a{ font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--lb-bg); background:var(--lb-fg); padding:11px 16px; transition:opacity .2s ease; }
.pf-links a:hover{ opacity:.85; }
.pf-close{ position:absolute; top:0; right:0; z-index:3; margin:14px; display:flex; align-items:center; gap:8px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--lb-bg);
  background:var(--lb-fg); border:1px solid var(--lb-fg); padding:9px 13px; cursor:pointer;
  transition:opacity .2s ease; }
.pf-close:hover{ opacity:.82; }
@media (max-width:760px){
  .pf-modal{ grid-template-columns:1fr; max-height:90vh; }
  .pf-media{ min-height:0; aspect-ratio:16/10; }
}

.work{  }
.card-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:42px; }
.card-head h2{ font-size:clamp(32px,4.6vw,66px); }
.card-head p{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--fg-soft); max-width:30ch; text-align:right; }
.bouts{ border-top:1px solid var(--line); }
.bout{ position:relative; overflow:hidden; display:grid; grid-template-columns:auto 1fr auto; gap:clamp(18px,3.4vw,52px); align-items:center;
  padding:clamp(24px,3vw,40px) clamp(14px,2vw,28px); border-bottom:1px solid var(--line); cursor:pointer; color:var(--fg);
  transition:padding-left .5s cubic-bezier(.5,.05,.2,1), padding-right .5s cubic-bezier(.5,.05,.2,1); }
.bout::before{ content:""; position:absolute; inset:0; z-index:0; background:var(--yellow);
  transform:scaleX(0); transform-origin:left center; transition:transform .55s cubic-bezier(.5,.05,.2,1); }
.bout > *{ position:relative; z-index:1; transition:transform .5s cubic-bezier(.22,.61,.36,1), color .45s ease; }
.bout:hover > *:not(.view):not(.bout-art){ transform:translateX(clamp(16px,3.4vw,46px)); }
.bout:hover::before{ transform:scaleX(1); }
.bout:hover .billing,.bout:hover .title,.bout:hover .meta{ color:var(--bg); }
.bout .billing{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--yellow); width:148px; }
.bout .title{ font-family:var(--font-sans); font-weight:700; font-size:clamp(25px,3.2vw,50px); line-height:.98; letter-spacing:-0.045em; }
.bout .meta{ font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--fg-soft); margin-top:11px; }

.bout .stat{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--fg-faint); margin-top:6px; }
.card-note{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-soft); margin-top:10px; }
.card-aside{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-faint); margin-top:18px; }

.bout .view{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--fg-soft);
  display:flex; align-items:center; gap:9px; opacity:1; transition:color .3s ease; }
.bout:hover .view{ color:var(--bg); transition:color .3s ease .3s; }

.bout-art{ position:absolute; bottom:0; right:clamp(110px,12vw,180px); z-index:1;
  display:flex; gap:10px; pointer-events:none;
  opacity:.42; filter:grayscale(.85) contrast(.96);
  transform:translateY(64%);
  transition:opacity .55s ease, filter .55s ease, transform .6s cubic-bezier(.22,.61,.36,1); }
.bout-art img{ width:clamp(56px,6vw,80px); aspect-ratio:3/4; height:auto; object-fit:cover;
  display:block; background:var(--bg-2);
  box-shadow:0 14px 32px -16px rgba(0,0,0,.8); }
.bout-art img:nth-child(1){ transform:rotate(-5deg); }
.bout-art img:nth-child(2){ transform:translateY(-7px); z-index:1; }
.bout-art img:nth-child(3){ transform:rotate(5deg); }
.bout:hover .bout-art{ opacity:1; filter:none; transform:translateY(-16%); }
.bouts-note{ font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--fg-faint); margin-top:30px; }

.roster-line{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,6vw,96px); align-items:end; margin-bottom:clamp(46px,6vw,72px); }
.roster-line h2{ font-size:clamp(30px,4.2vw,58px); max-width:14ch; }
.roster-line p{ font-size:clamp(16px,1.15vw,19px); max-width:42ch; color:var(--fg); }
.roster-line p em{ color:var(--yellow); font-style:italic; }

.ticker{ overflow:hidden; border-top:1px solid var(--line); padding-block:clamp(6px,1vw,12px); }
.ticker:last-child{ border-bottom:1px solid var(--line); }
.ticker-track{ display:flex; width:max-content; animation:scroll-x 38s linear infinite; }
.ticker.rev .ticker-track{ animation-direction:reverse; animation-duration:46s; }
.ticker:hover .ticker-track{ animation-play-state:paused; }
.ticker .item{ font-family:var(--font-sans); font-weight:700; font-size:clamp(26px,3.4vw,54px); letter-spacing:-0.04em;
  padding:6px clamp(20px,2.4vw,40px); white-space:nowrap; display:flex; align-items:center; gap:clamp(20px,2.4vw,40px); color:var(--fg); }
.ticker .item .sep{ font-family:var(--font-mono); font-size:.4em; color:var(--yellow); transform:translateY(-4px); }
.ticker.accent .item{ color:var(--yellow); }
@keyframes scroll-x{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

.r-name{ position:relative; display:inline-block; }
.r-name.struck{ text-decoration:line-through; text-decoration-thickness:.07em; text-decoration-color:currentColor; opacity:.78; }

.tw{ margin-top:clamp(48px,7vw,96px); }
.tw-head{ display:flex; align-items:baseline; gap:16px; margin-bottom:clamp(26px,3.2vw,42px);
  font-family:var(--font-mono); font-size:clamp(11px,.78vw,13px); letter-spacing:.2em; text-transform:uppercase; color:var(--fg-soft); }
.tw-head .idx{ color:var(--yellow); }
.tw-head .grow{ flex:1; height:1px; background:var(--line); transform:translateY(-.3em); }
.tw-grid{ display:flex; flex-wrap:wrap; gap:1px; background:var(--line); border:1px solid var(--line); }
.tw-card{ flex:1 1 300px; background:var(--bg); padding:clamp(26px,2.6vw,38px);
  display:flex; flex-direction:column; gap:20px; transition:background .35s ease; }
.tw-card:hover{ background:var(--bg-2); }
.tw-card .tick{ width:.62em; height:.62em; background:var(--yellow); display:block; flex:none; }
.tw-card .q{ font-size:clamp(16px,1.1vw,19px); line-height:1.5; color:var(--fg); text-wrap:pretty; flex:1; }
.tw-card .by{ font-family:var(--font-mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--fg-soft); line-height:1.7; }
.tw-card .by b{ color:var(--fg); font-weight:700; }

.main-event-grid{ display:grid; grid-template-columns:1fr .92fr; gap:clamp(34px,5vw,80px); align-items:center; }
.me-copy h2{ font-size:clamp(32px,4.4vw,62px); margin-bottom:26px; max-width:15ch; }
.me-copy p{ font-size:clamp(16px,1.15vw,19px); margin-bottom:26px; max-width:46ch; }
.me-points{ list-style:none; border-top:1px solid var(--line); }
.me-points li{ display:flex; gap:18px; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--line); }
.me-points .k{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--fg-soft); width:84px; flex:none; padding-top:3px; }
.me-points .v{ font-size:clamp(15px,1.1vw,18px); }
.me-points .v b{ font-weight:700; color:var(--yellow); }

.poster{ background:var(--yellow); color:var(--bg); padding:clamp(28px,3.2vw,46px); position:relative; overflow:hidden; }
.poster::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.14;
  background:radial-gradient(rgba(32,28,29,.9) 1px, transparent 1.4px); background-size:10px 10px; }
.poster .pk{ position:relative; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; }
.poster .pt{ position:relative; font-family:var(--font-sans); font-weight:700; font-size:clamp(34px,4.4vw,62px); line-height:.96; margin:16px 0; letter-spacing:-0.045em; }
.poster .pd{ position:relative; font-size:15px; line-height:1.5; max-width:34ch; }
.poster .pmeta{ position:relative; display:flex; gap:24px; margin-top:28px; padding-top:20px; border-top:1.5px solid var(--bg);
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; }
.poster .pmeta div span{ display:block; opacity:.66; margin-bottom:5px; }
.poster .pmeta a{ text-decoration:underline; text-underline-offset:3px; }

.contact{ overflow:hidden; }
.rope-fx{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; display:block; }
.contact .wrap{ position:relative; z-index:1; }
.contact h2{ font-size:clamp(46px,8.4vw,140px); line-height:.92; letter-spacing:-0.05em; margin:18px 0 8px; }
.contact h2 .sp{ color:var(--yellow); }
.contact-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(34px,5vw,80px); align-items:end; margin-top:clamp(36px,4vw,52px); }
.contact-sub{ font-size:clamp(17px,1.4vw,23px); color:var(--fg-soft); max-width:38ch; line-height:1.5; }
.contact-sub b{ color:var(--fg); font-weight:700; }
.contact-actions{ display:flex; flex-direction:column; gap:20px; align-items:stretch; }
.bigmail{ align-self:flex-start; font-family:var(--font-sans); font-weight:700; font-size:clamp(22px,2.6vw,42px); letter-spacing:-0.04em; position:relative; padding-bottom:7px; }
.bigmail::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:3px; background:var(--yellow); transform-origin:left; transition:transform .3s ease; }
.bigmail:hover::after{ transform:scaleX(.3); }
.contact-meta{ display:flex; justify-content:space-between; gap:30px; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--fg-soft); }
.contact-meta a:hover{ color:var(--yellow); }

.foot{ border-top:1px solid var(--line); }
.foot-inner{ display:flex; justify-content:space-between; align-items:center; gap:20px; padding-block:30px; flex-wrap:wrap;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--fg-soft); }
.foot .brand{ gap:11px; }
.foot .brand .logo{ width:22px; height:22px; color:var(--fg); }
.foot .mk{ font-family:var(--font-sans); font-weight:700; font-size:19px; letter-spacing:-0.045em; color:var(--fg); text-transform:none; }
.foot .foot-year{ color:var(--yellow); }

.poster{ background:var(--yellow); }

.contact::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(54% 74% at 6% 98%, rgba(255,255,0,.09), transparent 58%); }
.contact h2 .yellow{ color:var(--yellow);
  display:inline-block; line-height:1; padding-bottom:.2em; margin:0 -.05em -.2em; }

.ticker.rev .item{ color:var(--fg); }
.ticker.rev .item .sep{ color:var(--yellow); }

.roster .marker .idx{ color:var(--yellow); }

.tw-grid .tw-card:nth-child(even) .tick{ background:var(--magenta); }

/* reveals off */
[data-reveal]{ opacity:1; transform:none; }
[data-reveal].in{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; }
  [data-reveal]{ opacity:1; transform:none; }
  .hl .t{ background-size:100% 84% !important; color:var(--bg); }
  html{ scroll-behavior:auto; }
}

@media (max-width:980px){
  .hero h1{ max-width:none; }
  .cross-grid,.roster-line,.main-event-grid,.contact-grid,.svc-head,.card-head{ grid-template-columns:1fr; }
  .card-head p{ text-align:left; }
}
@media (max-width:760px){
  .nav-links{ display:none; }
  .svc{ grid-template-columns:auto 1fr; }
  .svc .desc{ grid-column:1/-1; }
  .svc .view{ grid-column:1/-1; }
  .bout{ grid-template-columns:1fr auto; }
  .bout .billing{ grid-column:1/-1; width:auto; }
  .bout-art{ display:none; }
  .hero .bill-row{ font-size:clamp(42px,12.5vw,96px); }
}

.ticker .r-name{ padding:0 .05em; cursor:default; transition:background .2s ease, color .2s ease; }
.ticker .r-name:hover{ background:var(--yellow); color:var(--bg); }
.ticker .r-name.struck:hover{ opacity:1; }

.tw-stage{ display:grid; grid-template-columns:1.5fr .85fr; align-items:stretch;
  border:1px solid var(--line); background:rgba(25,22,23,.55);
  -webkit-backdrop-filter:blur(5px) saturate(1.1); backdrop-filter:blur(5px) saturate(1.1); }
.tw-feature{ position:relative; display:grid; padding:clamp(28px,3.4vw,52px);
  min-height:clamp(220px,22vw,300px); }
.tw-q{ grid-area:1/1; display:flex; flex-direction:column; gap:22px;
  opacity:0; visibility:hidden; transform:translateY(12px);
  transition:opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1); pointer-events:none; }
.tw-q.is-active{ opacity:1; visibility:visible; transform:none; pointer-events:auto; }
.tw-q .tick{ width:.7em; height:.7em; background:var(--yellow); display:block; flex:none; }
.tw-feature .tw-q:nth-child(even) .tick{ background:var(--magenta); }
.tw-q .q{ font-size:clamp(20px,2vw,33px); line-height:1.3; letter-spacing:-0.02em;
  color:var(--fg); text-wrap:pretty; max-width:26ch; font-weight:400; }
.tw-q .by{ font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--fg-soft); line-height:1.7; margin-top:auto; display:flex; align-items:center; gap:15px; }
.tw-q .by b{ color:var(--fg); font-weight:700; }
.tw-face{ width:54px; height:54px; flex:none; object-fit:cover; border-radius:50%;
  box-shadow:0 0 0 1px var(--line), 0 0 0 4px var(--bg); background:var(--bg-2); }
.tw-rail{ display:flex; flex-direction:column; border-left:1px solid var(--line); }
.tw-tab{ flex:1; text-align:left; background:none; border:0; border-bottom:1px solid var(--line);
  cursor:pointer; padding:clamp(13px,1.3vw,20px) clamp(16px,1.6vw,26px); color:var(--fg-soft);
  display:flex; flex-direction:row; align-items:center; gap:13px; position:relative; font-family:inherit;
  transition:color .3s ease, background .3s ease; }
.tw-tab-face{ width:38px; height:38px; flex:none; object-fit:cover; border-radius:50%;
  box-shadow:0 0 0 1px var(--line); background:var(--bg-2);
  filter:grayscale(1) opacity(.7); transition:filter .3s ease; }
.tw-tab.is-active .tw-tab-face,.tw-tab:hover .tw-tab-face{ filter:grayscale(0) opacity(1); }
.tw-tab-txt{ display:flex; flex-direction:column; gap:5px; min-width:0; text-transform:none; letter-spacing:normal; }
.tw-tab:last-child{ border-bottom:0; }
.tw-tab b{ font-family:var(--font-sans); font-weight:700; font-size:clamp(15px,1.2vw,20px);
  letter-spacing:-0.025em; color:inherit; }
.tw-tab span{ font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.tw-tab::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--yellow);
  transform:scaleY(0); transform-origin:top; transition:transform .35s cubic-bezier(.2,.7,.2,1); }
.tw-tab:hover{ color:var(--fg); }
.tw-tab.is-active{ color:var(--fg); background:rgba(244,243,241,.05); }
.tw-tab.is-active::before{ transform:scaleY(1); }
@media (max-width:760px){
  .tw-stage{ grid-template-columns:1fr; }
  .tw-rail{ flex-direction:row; flex-wrap:wrap; border-left:0; border-top:1px solid var(--line); }
  .tw-tab{ flex:1 1 40%; border-bottom:0; border-right:1px solid var(--line); }
  .tw-tab::before{ width:100%; height:3px; bottom:auto; top:0; transform:scaleX(0); transform-origin:left; }
  .tw-tab.is-active::before{ transform:scaleX(1); }
}

.roster{ position:relative; overflow:hidden; isolation:isolate; background:var(--bg-2); }
.roster-stars{ position:absolute; inset:0; z-index:0; width:100%; height:100%; display:block;
  pointer-events:none; opacity:0; transition:opacity 1.4s ease; }
.roster-stars.on{ opacity:1; }
.roster > *:not(.roster-stars){ position:relative; z-index:1; }

html.sp-splashing, html.sp-splashing body{ overflow:hidden; }
.sp-no-splash .sp-splash{ display:none !important; }

.sp-splash{
  position:fixed; inset:0; z-index:9500; background:var(--bg-2); color:var(--fg);
  display:grid; grid-template-rows:auto 1fr auto; align-items:stretch;
  padding:clamp(30px,4.4vw,52px); font-family:var(--font-mono);
  opacity:1; transition:opacity .62s cubic-bezier(.5,.05,.2,1);
}
.sp-splash.sp-out{ opacity:0; pointer-events:none; }

.sp-splash::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(56% 78% at 82% 18%, rgba(255,255,0,.11), transparent 60%),
    radial-gradient(60% 76% at 8% 98%, rgba(255,255,0,.07), transparent 58%),
    radial-gradient(130% 120% at 50% 46%, transparent 52%, rgba(0,0,0,.55));
}
.sp-splash > *{ position:relative; z-index:1; }

.sp-mark{ position:absolute; width:20px; height:20px; z-index:1; pointer-events:none;
  border:0 solid var(--line-strong); }
.sp-mark.tl{ top:clamp(18px,3vw,32px); left:clamp(18px,3vw,32px); border-top-width:2px; border-left-width:2px; }
.sp-mark.tr{ top:clamp(18px,3vw,32px); right:clamp(18px,3vw,32px); border-top-width:2px; border-right-width:2px; }
.sp-mark.bl{ bottom:clamp(18px,3vw,32px); left:clamp(18px,3vw,32px); border-bottom-width:2px; border-left-width:2px; }
.sp-mark.br{ bottom:clamp(18px,3vw,32px); right:clamp(18px,3vw,32px); border-bottom-width:2px; border-right-width:2px; }

.sp-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:18px; }
.sp-cap{ font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--fg-soft); }

.sp-center{ align-self:center; justify-self:center; width:100%; max-width:660px;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:clamp(28px,4.6vw,48px); }

.sp-logo{ line-height:0; }
.sp-logo svg{ display:block; width:clamp(212px,27vw,330px); height:auto; }

.sp-tip{ min-height:4.2em; display:flex; flex-direction:column; align-items:center; gap:13px; }
.sp-tip-label{ font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--yellow); }
.sp-tip-text{ font-family:var(--font-sans); font-weight:300; font-size:clamp(17px,2vw,24px);
  line-height:1.42; letter-spacing:-0.012em; color:var(--fg); max-width:30ch; text-wrap:balance;
  transition:opacity .38s ease, transform .38s ease; }
.sp-tip-text.swap{ opacity:0; transform:translateY(7px); }

.sp-bottom{ display:flex; flex-direction:column; gap:15px; }
.sp-bar{ position:relative; height:2px; background:var(--line); overflow:hidden; }
.sp-bar-fill{ position:absolute; left:0; top:0; bottom:0; width:0; background:var(--yellow); }
.sp-bar-fill::after{ content:""; position:absolute; right:0; top:0; bottom:0; width:46px;
  background:linear-gradient(90deg, transparent, var(--magenta)); }
.sp-status{ display:flex; justify-content:space-between; align-items:baseline; gap:18px; }
.sp-pct{ font-size:12px; letter-spacing:.08em; color:var(--fg-soft); }
.sp-pct b{ font-family:var(--font-sans); font-weight:700; font-size:15px; letter-spacing:-0.02em; color:var(--fg); }

.sp-top,.sp-tip,.sp-bottom{ animation:sp-in .7s .06s both cubic-bezier(.2,.7,.2,1); }
@keyframes sp-in{ from{ opacity:0; transform:translateY(9px); } to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion: reduce){
  .sp-splash,.sp-tip-text,.sp-bar-fill{ transition:none; }
  .sp-top,.sp-tip,.sp-bottom{ animation:none; }
}

/* page: academy */
body.acdm{--acdm:      #ee1b4d;
  --acdm-hi:   #ff3d68;
  --acdm-coral:#f4414e;
  --acdm-deep: #c8123f;

  --ink:       #2a1747;
  --ink-soft:  #5a4a73;
  --ink-faint: #8d80a1;

  --paper:     #f7f3f2;
  --rule:      rgba(42,23,71,.14);
  --rule-2:    rgba(42,23,71,.08);
  --rule-3:    rgba(42,23,71,.28);

  background:var(--paper);
  color:var(--ink);}
body.acdm ::selection{background:var(--acdm); color:#fff;}
body.acdm .blk{width:.72em; height:.72em; flex:none; display:inline-block;
  background:var(--acdm);
  -webkit-mask:radial-gradient(circle at 100% 100%, transparent 38%, #000 39%);
  mask:radial-gradient(circle at 100% 100%, transparent 38%, #000 39%);
  transform:translateY(.06em);}
body.acdm .tether{background:var(--acdm); border-bottom:1px solid rgba(255,255,255,.2);}
body.acdm .tether-inner{display:flex; align-items:center; justify-content:space-between; gap:18px;
  min-height:36px; padding-block:9px;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:#fff;}
body.acdm .tether-back{display:inline-flex; align-items:center; gap:12px; transition:gap .2s; color:#fff;}
body.acdm .tether-back svg{width:24px; height:12px;}
body.acdm .tether-back:hover{gap:17px;}
body.acdm .tether span{color:rgba(255,255,255,.82);}
body.acdm .marker{display:flex; align-items:center; gap:14px; margin-bottom:clamp(32px,4.4vw,58px);
  font-family:var(--font-mono); font-size:clamp(11px,.78vw,13px); letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft);}
body.acdm .marker .grow{flex:1; height:1px; background:var(--rule);}
body.acdm .marker.light{color:var(--ink-soft);}
body.acdm .marker.on-ink{color:rgba(247,243,242,.66);}
body.acdm .marker.on-ink .grow{background:rgba(247,243,242,.18);}
body.acdm .ac-hero{position:relative; overflow:hidden; color:#fff;
  background:linear-gradient(150deg, var(--acdm-hi) 0%, var(--acdm) 42%, var(--acdm-coral) 100%);
  padding-block:clamp(46px,6.4vw,92px) clamp(50px,7vw,96px);}
body.acdm .ac-dust{position:absolute; inset:0; pointer-events:none; opacity:.5; mix-blend-mode:screen;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 22%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(1.1px 1.1px at 78% 16%, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1.6px 1.6px at 88% 64%, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1px 1px at 30% 78%, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1.2px 1.2px at 62% 86%, rgba(255,255,255,.65), transparent 60%),
    radial-gradient(1.3px 1.3px at 50% 8%, rgba(255,255,255,.7), transparent 60%);
  background-repeat:no-repeat;}
body.acdm .ac-eyebrow{display:flex; align-items:center; gap:13px; margin-bottom:clamp(30px,5vw,58px);
  font-family:var(--font-mono); font-size:clamp(11px,.78vw,13px); letter-spacing:.2em;
  text-transform:uppercase; color:rgba(255,255,255,.86);}
body.acdm .ac-eyebrow .blk{background:#fff;}
body.acdm .ac-eyebrow .grow{flex:1; height:1px; background:rgba(255,255,255,.34);}
body.acdm .ac-hero-mark{margin:0 auto; max-width:min(880px,92%);}
body.acdm .ac-hero-mark img{width:100%; height:auto; display:block;
  filter:drop-shadow(0 24px 50px rgba(120,0,30,.32));}
body.acdm .ac-hero-lede{font-size:clamp(17px,1.5vw,23px); line-height:1.5; max-width:60ch; margin:clamp(34px,4.4vw,58px) auto 0;
  text-align:center; color:#fff; text-wrap:pretty;}
body.acdm .ac-hero-lede b{font-weight:700;}
body.acdm .ac-hero-lede .em{font-weight:700; color:#fff; border-bottom:2px solid rgba(255,255,255,.55);
  padding-bottom:1px;}
body.acdm .ac-hero-meta{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:clamp(40px,5vw,64px);
  border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.28);}
body.acdm .ac-hero-meta .m{background:transparent; padding:clamp(16px,1.8vw,24px);
  backdrop-filter:blur(2px);}
body.acdm .ac-hero-meta .k{display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(255,255,255,.72); margin-bottom:10px;}
body.acdm .ac-hero-meta .v{font-family:var(--font-sans); font-weight:800; font-size:clamp(18px,1.7vw,25px);
  line-height:1; letter-spacing:-0.035em; color:#fff;}
body.acdm .ac-hero-meta .v small{display:block; margin-top:7px; font-weight:400; font-size:.5em;
  color:rgba(255,255,255,.78); letter-spacing:0; text-transform:lowercase;}
body.acdm .ac-brief{border-bottom:1px solid var(--rule);}
body.acdm .ac-brief .wrap{padding-block:clamp(58px,8vw,116px);}
body.acdm .ac-brief-grid{display:grid; grid-template-columns:1fr 1.12fr; gap:clamp(32px,6vw,90px); align-items:start;}
body.acdm .ac-brief h2{font-size:clamp(34px,4.8vw,68px); line-height:.98; letter-spacing:-0.045em; max-width:12ch; color:var(--ink);}
body.acdm .ac-brief h2 .em{color:var(--acdm);}
body.acdm .ac-brief-body p{font-size:clamp(16px,1.2vw,19px); line-height:1.62; color:var(--ink-soft);
  margin-bottom:18px; max-width:56ch; text-wrap:pretty;}
body.acdm .ac-brief-body p b{color:var(--ink); font-weight:700;}
body.acdm .ac-brief-body p em{color:var(--acdm-deep); font-style:italic;}
body.acdm .ac-brief-body p .em{color:var(--acdm-deep); font-weight:700; font-style:normal;}
body.acdm .ac-angle{border-bottom:1px solid var(--rule);}
body.acdm .ac-angle .wrap{padding-block:clamp(58px,8vw,116px);}
body.acdm .ac-angle-grid{display:grid; grid-template-columns:1.04fr .96fr; gap:clamp(34px,5vw,82px); align-items:center;}
body.acdm .ac-angle h2{font-size:clamp(30px,4.2vw,58px); line-height:1; letter-spacing:-0.04em; color:var(--ink); max-width:13ch;}
body.acdm .ac-angle h2 .em{color:var(--acdm);}
body.acdm .ac-angle-copy{margin-top:clamp(20px,2.4vw,30px);}
body.acdm .ac-angle-copy p{font-size:clamp(15px,1.14vw,18px); line-height:1.64; color:var(--ink-soft);
  max-width:52ch; margin-bottom:16px; text-wrap:pretty;}
body.acdm .ac-angle-copy p b{color:var(--ink); font-weight:700;}
body.acdm .ac-angle-copy p .em{color:var(--acdm-deep); font-weight:700;}
body.acdm .ac-shapes{display:flex; align-items:flex-end; gap:14px; margin-top:clamp(26px,3vw,40px); height:46px;}
body.acdm .ac-shapes .sh{display:block;}
body.acdm .ac-shapes .tri{width:0; height:0; border-style:solid; border-width:0 23px 40px 23px;
  border-color:transparent transparent var(--ink) transparent;}
body.acdm .ac-shapes .arc{width:46px; height:46px; background:var(--acdm); border-radius:46px 0 0 0;}
body.acdm .ac-shapes .sq{width:40px; height:40px; background:var(--ink);}
body.acdm .ac-shapes .bar{width:18px; height:46px; background:var(--acdm);}
body.acdm .ac-shapes .half{width:46px; height:23px; background:var(--ink); border-radius:46px 46px 0 0;}
body.acdm .ac-angle-show{display:flex; justify-content:center;}
body.acdm .ac-build{position:relative; width:100%; padding:clamp(34px,5vw,64px) clamp(26px,4vw,52px);
  background:
    linear-gradient(150deg, var(--acdm-hi), var(--acdm) 55%, var(--acdm-coral));
  border:1px solid var(--rule); overflow:hidden;
  box-shadow:0 36px 70px -50px rgba(200,18,63,.7);}
body.acdm .ac-build::before{content:""; position:absolute; inset:0; pointer-events:none; opacity:.7;
  background-image:
    radial-gradient(1.3px 1.3px at 18% 24%, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1px 1px at 82% 30%, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1.4px 1.4px at 70% 78%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(1px 1px at 28% 82%, rgba(255,255,255,.7), transparent 60%);
  background-repeat:no-repeat;}
body.acdm .ac-build img.built{position:relative; width:100%; height:auto; display:block;}
body.acdm .ac-build-cap{position:relative; display:block; margin-top:22px; text-align:center;
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.84);}
body.acdm .ac-kit{border-bottom:1px solid var(--rule);}
body.acdm .ac-kit .wrap{padding-block:clamp(58px,8vw,112px);}
body.acdm .ac-kit-head{max-width:54ch; margin-bottom:clamp(34px,4.4vw,56px);}
body.acdm .ac-kit-head h2{font-size:clamp(30px,4.2vw,58px); line-height:1; letter-spacing:-0.04em; margin-bottom:18px;}
body.acdm .ac-kit-head h2 .em{color:var(--acdm);}
body.acdm .ac-kit-head p{font-size:clamp(16px,1.16vw,19px); line-height:1.58; color:var(--ink-soft); text-wrap:pretty;}
body.acdm .ac-kit-grid{display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:1fr; gap:clamp(12px,1.4vw,18px);}
body.acdm .ac-swatch{position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:22px; min-height:clamp(150px,15vw,210px); padding:clamp(24px,3vw,40px) clamp(20px,2.4vw,32px);
  border:1px solid var(--rule); overflow:hidden;}
body.acdm .ac-swatch.wide{grid-column:1 / -1;}
body.acdm .ac-swatch.sym{grid-column:span 1;}
body.acdm .ac-swatch img{width:auto; max-width:100%; max-height:74px; height:auto; display:block;}
body.acdm .ac-swatch.sym img{max-height:88px;}
body.acdm .ac-swatch .cap{position:absolute; left:0; bottom:0; padding:9px 13px;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;}
body.acdm .ac-swatch.paper{background:#fff;}
body.acdm .ac-swatch.paper .cap{color:var(--ink-faint);}
body.acdm .ac-swatch.ink{background:var(--ink);}
body.acdm .ac-swatch.ink .cap{color:rgba(247,243,242,.6);}
body.acdm .ac-swatch.pink{background:linear-gradient(150deg, var(--acdm-hi), var(--acdm) 60%, var(--acdm-coral));}
body.acdm .ac-swatch.pink .cap{color:rgba(255,255,255,.78);}
body.acdm .ac-journey{border-bottom:1px solid var(--rule);}
body.acdm .ac-journey .wrap{padding-block:clamp(58px,8vw,112px);}
body.acdm .ac-journey-head{max-width:60ch; margin-bottom:clamp(36px,4.6vw,60px);}
body.acdm .ac-journey-head h2{font-size:clamp(28px,4vw,56px); line-height:1; letter-spacing:-0.04em; margin-bottom:18px; max-width:18ch;}
body.acdm .ac-journey-head p{font-size:clamp(16px,1.16vw,19px); line-height:1.58; color:var(--ink-soft); text-wrap:pretty;}
body.acdm .ac-journey-head p b{color:var(--acdm-deep); font-weight:700;}
body.acdm .ac-stages{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; border:1px solid var(--rule); background:var(--rule);}
body.acdm .ac-stage{position:relative; background:#fff; padding:clamp(24px,2.6vw,36px); display:flex; flex-direction:column;
  transition:background .35s ease;}
body.acdm .ac-stage-top{position:relative; display:block; margin-bottom:clamp(28px,4vw,56px);}
body.acdm .ac-stage .ltr{display:block; font-family:var(--font-sans); font-weight:800; font-size:clamp(56px,6vw,92px); line-height:.7;
  letter-spacing:-0.05em; color:var(--acdm); transition:color .35s ease;}
body.acdm .ac-stage .age{position:absolute; top:clamp(24px,2.6vw,36px); right:clamp(24px,2.6vw,36px);
  font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-faint); text-align:right; max-width:9ch; line-height:1.45; transition:color .35s ease;}
body.acdm .ac-stage h3{font-size:clamp(22px,1.9vw,30px); letter-spacing:-0.035em; color:var(--ink); margin-bottom:13px;
  transition:color .35s ease;}
body.acdm .ac-stage p{font-size:clamp(14px,1.02vw,16px); line-height:1.58; color:var(--ink-soft);
  transition:color .35s ease; text-wrap:pretty;}
body.acdm .ac-stage:hover{background:var(--ink);}
body.acdm .ac-stage:hover .ltr{color:var(--acdm-hi);}
body.acdm .ac-stage:hover h3{color:#fff;}
body.acdm .ac-stage:hover p{color:rgba(247,243,242,.78);}
body.acdm .ac-stage:hover .age{color:rgba(247,243,242,.6);}
body.acdm .ac-involved{position:relative; overflow:hidden; background:var(--ink); color:#f7f3f2;
  border-top:1px solid var(--rule);}
body.acdm .ac-involved::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.6;
  background:radial-gradient(54% 70% at 86% 6%, rgba(238,27,77,.34), transparent 62%),
             radial-gradient(50% 64% at 4% 100%, rgba(238,27,77,.16), transparent 60%);}
body.acdm .ac-involved .wrap{position:relative; z-index:1; padding-block:clamp(60px,8.4vw,118px);}
body.acdm .ac-involved-head{max-width:56ch; margin-bottom:clamp(38px,4.6vw,60px);}
body.acdm .ac-involved-head h2{font-size:clamp(30px,4.4vw,62px); line-height:1; letter-spacing:-0.04em; margin-bottom:18px; color:#fff;}
body.acdm .ac-involved-head h2 .em{color:var(--acdm-hi);}
body.acdm .ac-involved-head p{font-size:clamp(16px,1.16vw,19px); line-height:1.58; color:rgba(247,243,242,.7); text-wrap:pretty;}
body.acdm .ac-ways{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px);}
body.acdm .ac-way{position:relative; border:1px solid rgba(247,243,242,.16); padding:clamp(24px,2.6vw,38px);
  background:rgba(255,255,255,.03); transition:border-color .3s ease, background .3s ease;}
body.acdm .ac-way:hover{border-color:rgba(255,61,104,.6); background:rgba(238,27,77,.08);}
body.acdm .ac-way .num{font-family:var(--font-mono); font-size:11px; letter-spacing:.16em; color:var(--acdm-hi);}
body.acdm .ac-way h3{font-size:clamp(24px,2.4vw,38px); letter-spacing:-0.04em; color:#fff; margin:clamp(20px,2.4vw,34px) 0 13px;}
body.acdm .ac-way p{font-size:clamp(14px,1.05vw,16.5px); line-height:1.58; color:rgba(247,243,242,.72); text-wrap:pretty;}
body.acdm .ac-wild{border-top:1px solid var(--rule);}
body.acdm .ac-wild .wrap{padding-block:clamp(58px,8vw,116px);}
body.acdm .ac-wild-head{max-width:52ch; margin-bottom:clamp(36px,4.6vw,58px);}
body.acdm .ac-wild-head h2{font-size:clamp(30px,4.2vw,58px); line-height:1; letter-spacing:-0.04em; margin-bottom:18px;}
body.acdm .ac-wild-head h2 .em{color:var(--acdm);}
body.acdm .ac-wild-head p{font-size:clamp(16px,1.16vw,19px); line-height:1.58; color:var(--ink-soft); text-wrap:pretty;}
body.acdm .ac-wild-grid{display:grid; grid-template-columns:.66fr 1fr; gap:clamp(16px,2.4vw,32px); align-items:start;}
body.acdm .ac-wild-col{display:flex; flex-direction:column; gap:clamp(14px,1.8vw,22px);}
body.acdm .ac-shot{margin:0;}
body.acdm .ac-shot .frame{position:relative; overflow:hidden; border:1px solid var(--rule);
  background:var(--acdm); box-shadow:0 30px 60px -46px rgba(42,23,71,.6);}
body.acdm .ac-shot .frame img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
body.acdm .ac-shot:hover .frame img{transform:scale(1.03);}
body.acdm .ac-shot.tall .frame{aspect-ratio:1080/2400;}
body.acdm .ac-shot figcaption{display:block; margin-top:12px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);}
body.acdm .ac-shot figcaption b{color:var(--ink-soft); font-weight:400;}
body.acdm .ac-flyers{display:grid; grid-template-columns:1fr 1fr; gap:clamp(14px,1.8vw,22px);}
body.acdm .ac-flyers .frame{aspect-ratio:1748/2480; background:var(--acdm);}
body.acdm .ac-flyer-cap{display:block; margin-top:2px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);}
body.acdm .ac-flyer3d{position:relative; perspective:1600px; display:flex; flex-direction:column;
  align-items:center; gap:10px; padding:6px 0 2px;}
body.acdm .ac-flyer3d.active{z-index:50;}
body.acdm .flyer-drag{position:relative; width:min(62%,300px); aspect-ratio:1748/2480; transform-style:preserve-3d;
  cursor:grab; touch-action:none; -webkit-tap-highlight-color:transparent; outline:none;
  transition:transform .55s cubic-bezier(.2,.7,.2,1); will-change:transform;}
body.acdm .flyer-drag.dragging{cursor:grabbing; transition:none;}
body.acdm .flyer-drag:focus-visible{outline:2px solid var(--acdm); outline-offset:8px;}
body.acdm .flyer-card{position:relative; width:100%; height:100%; transform-style:preserve-3d;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);}
body.acdm .flyer-card.flipped{transform:rotateY(180deg);}
body.acdm .flyer-face{position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden;
  overflow:hidden; border:1px solid var(--rule); background:var(--acdm);
  box-shadow:0 30px 60px -46px rgba(42,23,71,.55); transition:box-shadow .45s ease;}
body.acdm .flyer-drag.lifted .flyer-face{box-shadow:0 56px 96px -38px rgba(42,23,71,.7);}
body.acdm .flyer-face img{width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; -webkit-user-drag:none;}
body.acdm .flyer-face.back{transform:rotateY(180deg);}
body.acdm .flyer-hint{font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-faint); transition:opacity .3s ease;}
body.acdm .flyer-drag.lifted ~ .flyer-hint{opacity:0;}
body.acdm .ac-manifesto{position:relative; overflow:hidden; color:#fff; border-top:1px solid var(--rule);
  background:linear-gradient(135deg, var(--acdm-hi) 0%, var(--acdm) 52%, var(--acdm-coral) 100%);}
body.acdm .ac-manifesto .wrap{position:relative; z-index:1; padding-block:clamp(74px,11vw,152px);}
body.acdm .ac-manifesto-glyph{position:absolute; z-index:0; right:clamp(-50px,-1vw,8px); top:50%; transform:translateY(-50%) rotate(-8deg);
  width:clamp(220px,32vw,500px); height:auto; opacity:.12; pointer-events:none;}
body.acdm .ac-manifesto-inner{position:relative; z-index:1; max-width:min(880px,100%);}
body.acdm .ac-manifesto-kicker{display:inline-flex; align-items:center; gap:11px; margin-bottom:clamp(26px,3.4vw,46px);
  font-family:var(--font-mono); font-size:clamp(11px,.82vw,13px); letter-spacing:.22em; text-transform:uppercase; color:#fff;}
body.acdm .ac-manifesto-kicker .blk{background:var(--ink);}
body.acdm .ac-manifesto-lead{font-family:var(--font-sans); font-weight:800; max-width:17ch;
  font-size:clamp(38px,6vw,92px); line-height:.98; letter-spacing:-0.045em; color:#fff; text-wrap:balance;}
body.acdm .ac-manifesto-sub{max-width:34ch; margin-top:clamp(22px,2.8vw,40px);
  font-family:var(--font-sans); font-weight:500; font-size:clamp(18px,1.9vw,28px); line-height:1.42;
  letter-spacing:-0.02em; color:rgba(255,255,255,.92); text-wrap:pretty;}
body.acdm .ac-manifesto-sub .em{color:#fff; font-weight:700; box-shadow:inset 0 -.5em 0 rgba(42,23,71,.55);}
body.acdm .ac-manifesto-cite{display:block; margin-top:clamp(30px,3.6vw,50px); padding-top:clamp(18px,2vw,26px);
  border-top:1px solid rgba(255,255,255,.32); max-width:36ch;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.8);}
body.acdm .ac-tape{border-top:1px solid var(--rule);}
body.acdm .ac-tape .wrap{padding-block:clamp(58px,8vw,116px);}
body.acdm .ac-tape-head{max-width:52ch; margin-bottom:clamp(38px,5vw,62px);}
body.acdm .ac-tape-head h2{font-size:clamp(30px,4.4vw,60px); line-height:1; letter-spacing:-0.04em; margin-bottom:20px;}
body.acdm .ac-tape-head h2 .em{color:var(--acdm);}
body.acdm .ac-tape-head p{font-size:clamp(16px,1.16vw,19px); color:var(--ink-soft); line-height:1.58; text-wrap:pretty;}
body.acdm .ac-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; border:1px solid var(--rule); background:var(--rule);}
body.acdm .ac-stat{background:var(--paper); padding:clamp(24px,2.8vw,40px) clamp(20px,2.2vw,30px);}
body.acdm .ac-stat .n{font-family:var(--font-sans); font-weight:800; font-size:clamp(40px,5.2vw,76px);
  line-height:.84; letter-spacing:-0.05em; color:var(--acdm);}
body.acdm .ac-stat .n .u{font-size:.42em; font-weight:700; color:var(--ink-faint); letter-spacing:0;}
body.acdm .ac-stat .l{display:block; margin-top:15px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft);}
body.acdm .ac-stat:nth-child(2) .n{color:var(--ink);}
body.acdm .ac-stat:nth-child(3) .n{color:var(--acdm-deep);}
body.acdm .ac-stat:nth-child(4) .n{color:var(--ink);}
body.acdm .ac-cta{position:relative; overflow:hidden; background:var(--ink); color:#f7f3f2;
  border-top:1px solid var(--rule);}
body.acdm .ac-cta::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(60% 80% at 82% 22%, rgba(238,27,77,.4), transparent 62%),
             radial-gradient(54% 74% at 4% 96%, rgba(255,61,104,.18), transparent 58%);}
body.acdm .ac-cta .wrap{position:relative; z-index:1; padding-block:clamp(70px,10vw,140px);}
body.acdm .ac-cta .eyebrow{display:inline-flex; align-items:center; gap:.6em; color:rgba(247,243,242,.64);}
body.acdm .ac-cta .eyebrow .dot{background:var(--acdm);}
body.acdm .ac-cta h2{font-size:clamp(40px,6.4vw,100px); line-height:.94; letter-spacing:-0.05em;
  margin:16px 0 0; max-width:15ch; color:#fff;}
body.acdm .ac-cta h2 .em{color:var(--acdm-hi);}
body.acdm .ac-cta-row{display:flex; flex-wrap:wrap; gap:18px 26px; align-items:center; margin-top:clamp(32px,4vw,52px);}
body.acdm .ac-cta .tlink{color:#f7f3f2;}
body.acdm .ac-cta .btn{--c:var(--acdm); --t:#fff;}
body.acdm .foot{background:var(--paper); border-top:1px solid var(--rule);}
body.acdm .foot-inner{color:var(--ink-soft);}
body.acdm .foot .foot-year{color:var(--acdm);}
body.acdm .foot .footmark{filter:brightness(0); opacity:.8;}
body.acdm [data-reveal]{opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);}
body.acdm [data-reveal].in{opacity:1; transform:none;}
body.acdm [data-reveal][data-delay="1"]{transition-delay:.1s;}
body.acdm [data-reveal][data-delay="2"]{transition-delay:.2s;}
body.acdm [data-reveal][data-delay="3"]{transition-delay:.3s;}
@media (prefers-reduced-motion:reduce){
body.acdm [data-reveal]{opacity:1; transform:none; transition:none;}
body.acdm .ac-shot:hover .frame img{transform:none;}
}
@media (max-width:980px){
body.acdm .ac-hero-meta{grid-template-columns:repeat(2,1fr);}
body.acdm .ac-brief-grid{grid-template-columns:1fr; gap:clamp(22px,4vw,40px);}
body.acdm .ac-angle-grid{grid-template-columns:1fr; gap:clamp(28px,5vw,44px);}
body.acdm .ac-kit-grid{grid-template-columns:repeat(2,1fr);}
body.acdm .ac-swatch.wide{grid-column:span 2;}
body.acdm .ac-stages{grid-template-columns:repeat(2,1fr);}
body.acdm .ac-ways{grid-template-columns:1fr;}
body.acdm .ac-wild-grid{grid-template-columns:1fr;}
body.acdm .ac-shot.tall .frame{aspect-ratio:16/7;}
body.acdm .ac-stats{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
body.acdm .ac-hero-meta{grid-template-columns:1fr 1fr;}
body.acdm .ac-kit-grid{grid-template-columns:1fr;}
body.acdm .ac-swatch.wide, body.acdm .ac-swatch.sym{grid-column:span 1;}
body.acdm .ac-stages{grid-template-columns:1fr;}
body.acdm .ac-flyers{grid-template-columns:1fr 1fr;}
body.acdm .ac-stats{grid-template-columns:1fr;}
body.acdm .tether-inner{font-size:11px; letter-spacing:.16em;}
}

/* page: good2learn */
body.g2l{--g2l:      #1c9ee0;
  --g2l-deep: #0f6fab;
  --g2l-soft: oklch(0.62 0.13 240);

  --paper:    #f4f2ee;
  --ink:      #201c1d;
  --ink-soft: #5f5a5b;
  --ink-faint:#938e8f;
  --rule:     rgba(32,28,29,.14);
  --rule-2:   rgba(32,28,29,.08);
  --rule-3:   rgba(32,28,29,.30);

  background:
    radial-gradient(rgba(32,28,29,.09) 1.1px, transparent 1.7px) 0 0 / 22px 22px,
    var(--paper);
  color:var(--ink);}
body.g2l ::selection{background:var(--g2l); color:#fff;}
body.g2l .tether{background:var(--g2l); border-bottom:1px solid rgba(255,255,255,.18);}
body.g2l .tether-inner{display:flex; align-items:center; justify-content:space-between; gap:18px;
  min-height:36px; padding-block:9px;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:#fff;}
body.g2l .tether-back{display:inline-flex; align-items:center; gap:12px; transition:gap .2s; color:#fff;}
body.g2l .tether-back svg{width:24px; height:12px;}
body.g2l .tether-back:hover{gap:17px;}
body.g2l .tether span{color:rgba(255,255,255,.78);}
body.g2l .marker{display:flex; align-items:baseline; gap:16px; margin-bottom:clamp(34px,4.6vw,60px);
  font-family:var(--font-mono); font-size:clamp(11px,.78vw,13px); letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft);}
body.g2l .marker .idx{color:var(--g2l);}
body.g2l .marker .grow{flex:1; height:1px; background:var(--rule); transform:translateY(-.3em);}
body.g2l .gl-hero{position:relative; overflow:hidden; border-bottom:1px solid var(--rule);
  padding-block:clamp(50px,7vw,104px) clamp(44px,6vw,84px);}
body.g2l .gl-eyebrow{display:flex; align-items:center; gap:13px; margin-bottom:clamp(26px,4vw,46px);
  font-family:var(--font-mono); font-size:clamp(11px,.78vw,13px); letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft);}
body.g2l .gl-eyebrow .idx{color:var(--g2l);}
body.g2l .gl-eyebrow .grow{flex:1; height:1px; background:var(--rule);}
body.g2l .gl-eyebrow .tri{width:0; height:0; border-style:solid; border-width:9px 6px 0 6px;
  border-color:var(--g2l) transparent transparent transparent; transform:translateY(1px);}
body.g2l .gl-hero h1{font-size:clamp(52px,11vw,150px); line-height:.9; letter-spacing:-0.055em; color:var(--ink);}
body.g2l .gl-hero h1 .two{color:var(--g2l); font-style:normal;}
body.g2l .gl-hero-lede{font-size:clamp(17px,1.5vw,23px); line-height:1.5; max-width:54ch; color:var(--ink);
  margin:clamp(26px,3vw,42px) 0 0; text-wrap:pretty;}
body.g2l .gl-hero-lede b{font-weight:700;}
body.g2l .gl-hero-lede .em{color:var(--g2l-deep); font-weight:700;}
body.g2l .gl-hero-meta{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:clamp(40px,5vw,66px);
  border:1px solid var(--rule); background:var(--rule);}
body.g2l .gl-hero-meta .m{background:var(--paper); padding:clamp(16px,1.8vw,24px);}
body.g2l .gl-hero-meta .k{display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-faint); margin-bottom:10px;}
body.g2l .gl-hero-meta .v{font-family:var(--font-sans); font-weight:700; font-size:clamp(19px,1.9vw,28px);
  line-height:1; letter-spacing:-0.03em; color:var(--ink);}
body.g2l .gl-hero-meta .v small{font-weight:400; font-size:.52em; color:var(--ink-soft); letter-spacing:0;}
body.g2l .gl-brief{border-bottom:1px solid var(--rule);}
body.g2l .gl-brief .wrap{padding-block:clamp(60px,8vw,118px);}
body.g2l .gl-brief-grid{display:grid; grid-template-columns:1fr 1.08fr; gap:clamp(34px,6vw,90px); align-items:start;}
body.g2l .gl-brief h2{font-size:clamp(32px,4.6vw,64px); line-height:.98; letter-spacing:-0.04em; max-width:14ch;}
body.g2l .gl-brief h2 .em{color:var(--g2l);}
body.g2l .gl-brief-body p{font-size:clamp(16px,1.2vw,19px); line-height:1.62; color:var(--ink-soft);
  margin-bottom:18px; max-width:54ch; text-wrap:pretty;}
body.g2l .gl-brief-body p b{color:var(--ink); font-weight:700;}
body.g2l .gl-note{margin-top:clamp(26px,3vw,38px); border:1px solid var(--rule-3); border-left:3px solid var(--g2l);
  background:rgba(28,158,224,.05); padding:clamp(18px,2vw,26px) clamp(20px,2.2vw,30px); max-width:56ch;}
body.g2l .gl-note .nk{display:flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--g2l-deep); margin-bottom:11px;}
body.g2l .gl-note .nk .dot{width:8px; height:8px; background:var(--g2l); border-radius:50%; flex:none;}
body.g2l .gl-note p{font-size:clamp(14px,1.02vw,16px); line-height:1.6; color:var(--ink-soft); margin:0;}
body.g2l .gl-note p b{color:var(--ink); font-weight:700;}
body.g2l .gl-phases .marker{padding-top:clamp(48px,6vw,84px);}
body.g2l .gl-phase{position:relative; border-top:1px solid var(--rule);
  padding-block:clamp(56px,8vw,116px); scroll-margin-top:84px;}
body.g2l .gl-phase:first-of-type{border-top:0; padding-top:clamp(8px,1vw,16px);}
body.g2l .gl-phase-grid{display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(34px,5vw,82px); align-items:center;}
body.g2l .gl-phase.flip .gl-phase-media{order:-1;}
body.g2l .gl-phase-num{display:flex; align-items:baseline; gap:16px; margin-bottom:clamp(16px,2vw,24px);}
body.g2l .gl-phase-num .big{font-family:var(--font-sans); font-weight:800; line-height:.78;
  font-size:clamp(62px,9vw,128px); letter-spacing:-0.06em; color:var(--g2l);}
body.g2l .gl-phase-num .of{font-family:var(--font-mono); font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-faint); transform:translateY(-.4em);}
body.g2l .gl-billing{display:inline-block; font-family:var(--font-mono); font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--g2l-deep); margin-bottom:14px;}
body.g2l .gl-phase h3{font-size:clamp(28px,3.7vw,54px); line-height:1; letter-spacing:-0.04em; color:var(--ink);}
body.g2l .gl-phase-copy{margin-top:clamp(18px,2.2vw,28px);}
body.g2l .gl-phase-copy p{font-size:clamp(15px,1.14vw,18px); line-height:1.64; color:var(--ink-soft);
  max-width:52ch; margin-bottom:16px; text-wrap:pretty;}
body.g2l .gl-phase-copy p b{color:var(--ink); font-weight:700;}
body.g2l .gl-phase-copy p .em{color:var(--g2l-deep); font-weight:700;}
body.g2l .gl-roles{display:flex; flex-wrap:wrap; gap:8px; margin-top:clamp(22px,2.6vw,32px);}
body.g2l .gl-roles span{font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-soft); border:1px solid var(--rule-3); padding:7px 11px; background:rgba(255,255,255,.4);}
body.g2l .gl-shot{position:relative;}
body.g2l .gl-shot .frame{position:relative; overflow:hidden; background:#e7e4df;
  border:1px solid var(--rule); box-shadow:0 30px 60px -44px rgba(32,28,29,.6);}
body.g2l .gl-shot img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
body.g2l .gl-shot:hover img{transform:scale(1.035);}
body.g2l .gl-shot .corner{position:absolute; top:0; left:0; z-index:2;
  display:flex; align-items:center; gap:8px; padding:11px 14px;
  background:var(--g2l); color:#fff;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase;}
body.g2l .gl-shot .cap{display:block; margin-top:13px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);}
body.g2l .gl-shot .cap b{color:var(--ink-soft); font-weight:400;}
body.g2l .gl-pipe{position:relative; background:#191617; color:#f4f3f1; overflow:hidden;
  border-top:1px solid var(--rule);}
body.g2l .gl-pipe::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background:radial-gradient(58% 80% at 84% 8%, rgba(28,158,224,.14), transparent 60%),
             radial-gradient(50% 70% at 6% 100%, rgba(28,158,224,.08), transparent 60%);}
body.g2l .gl-pipe .wrap{position:relative; z-index:1; padding-block:clamp(64px,9vw,128px);}
body.g2l .gl-pipe .marker{color:rgba(244,243,241,.6);}
body.g2l .gl-pipe .marker .idx{color:var(--g2l);}
body.g2l .gl-pipe .marker .grow{background:rgba(244,243,241,.14);}
body.g2l .gl-pipe-head{display:grid; grid-template-columns:1fr 1.04fr; gap:clamp(28px,5vw,80px);
  align-items:end; margin-bottom:clamp(40px,5vw,72px);}
body.g2l .gl-pipe-head h2{font-size:clamp(30px,4.4vw,62px); line-height:.98; letter-spacing:-0.04em; color:#f4f3f1; max-width:13ch;}
body.g2l .gl-pipe-head h2 .em{color:var(--g2l);}
body.g2l .gl-pipe-head p{font-size:clamp(15px,1.16vw,19px); line-height:1.6; color:rgba(244,243,241,.66);
  max-width:48ch; text-wrap:pretty;}
body.g2l .gl-pipe-head p b{color:#f4f3f1; font-weight:700;}
body.g2l .gl-pipe-head p .em{color:var(--g2l); font-weight:700;}
body.g2l .gl-pipe-grid{display:grid; grid-template-columns:.62fr 1fr; gap:clamp(20px,3vw,44px); align-items:start;}
body.g2l .gl-diagram{position:relative; border:1px solid rgba(244,243,241,.12); background:#1a1a1a;
  box-shadow:0 40px 90px -60px rgba(0,0,0,.9);}
body.g2l .gl-diagram img{width:100%; height:auto; display:block;}
body.g2l .gl-diagram .dcap{display:flex; align-items:center; gap:9px; padding:13px 16px;
  border-top:1px solid rgba(244,243,241,.12);
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(244,243,241,.62);}
body.g2l .gl-diagram .dcap .dot{width:8px; height:8px; background:var(--g2l); border-radius:50%; flex:none;}
body.g2l .gl-diagram.tall{align-self:stretch;}
body.g2l .gl-pipe-note{margin-top:clamp(28px,3.4vw,46px); display:flex; flex-wrap:wrap; gap:20px 40px;
  align-items:center; justify-content:space-between;
  border-top:1px solid rgba(244,243,241,.14); padding-top:clamp(22px,2.6vw,32px);}
body.g2l .gl-pipe-note .line{font-family:var(--font-mono); font-size:clamp(11px,.86vw,13px); letter-spacing:.06em;
  text-transform:uppercase; color:rgba(244,243,241,.6); max-width:60ch; line-height:1.7;}
body.g2l .gl-pipe-note .line b{color:var(--g2l);}
body.g2l .gl-tape{border-top:1px solid var(--rule);}
body.g2l .gl-tape .wrap{padding-block:clamp(60px,8vw,120px);}
body.g2l .gl-tape-head{max-width:48ch; margin-bottom:clamp(38px,5vw,64px);}
body.g2l .gl-tape-head h2{font-size:clamp(30px,4.4vw,60px); line-height:1; letter-spacing:-0.04em; margin-bottom:20px;}
body.g2l .gl-tape-head h2 .em{color:var(--g2l);}
body.g2l .gl-tape-head p{font-size:clamp(16px,1.16vw,19px); color:var(--ink-soft); line-height:1.58; text-wrap:pretty;}
body.g2l .gl-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; border:1px solid var(--rule); background:var(--rule);}
body.g2l .gl-stat{background:var(--paper); padding:clamp(24px,2.8vw,40px) clamp(20px,2.2vw,30px);}
body.g2l .gl-stat .n{font-family:var(--font-sans); font-weight:800; font-size:clamp(40px,5.2vw,76px);
  line-height:.84; letter-spacing:-0.05em; color:var(--g2l);}
body.g2l .gl-stat .n .u{font-size:.42em; font-weight:700; color:var(--ink-faint); letter-spacing:0;}
body.g2l .gl-stat .l{display:block; margin-top:15px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft);}
body.g2l .gl-stat:nth-child(2) .n{color:var(--ink);}
body.g2l .gl-stat:nth-child(3) .n{color:var(--g2l-deep);}
body.g2l .gl-stat:nth-child(4) .n{color:var(--ink);}
body.g2l .gl-phase.vids .gl-phase-grid{grid-template-columns:1fr; gap:clamp(22px,3vw,40px);}
body.g2l .gl-vid-block{width:100%;}
body.g2l .gl-vid-head{display:flex; align-items:center; gap:9px; margin-bottom:clamp(13px,1.6vw,20px);
  font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--g2l-deep);}
body.g2l .gl-vid-head .dot{width:8px; height:8px; background:var(--g2l); border-radius:50%; flex:none;}
body.g2l .gl-vid-row{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.6vw,20px);}
body.g2l .gl-vid{position:relative; display:block; aspect-ratio:16/9; overflow:hidden; background:#0c0a0b;
  cursor:pointer; border:1px solid var(--rule); box-shadow:0 24px 50px -40px rgba(32,28,29,.7);
  -webkit-tap-highlight-color:transparent;}
body.g2l .gl-vid-thumb{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(.25) contrast(1.02) brightness(.9); transform:scale(1.03);
  transition:transform 1s cubic-bezier(.2,.7,.2,1), filter .6s ease;}
body.g2l .gl-vid:hover .gl-vid-thumb, body.g2l .gl-vid:focus-visible .gl-vid-thumb{transform:scale(1.06); filter:none;}
body.g2l .gl-vid-grad{position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(12,10,11,.6), transparent 52%);}
body.g2l .gl-vid-play{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); pointer-events:none;
  width:clamp(44px,4.2vw,58px); height:clamp(44px,4.2vw,58px); border-radius:50%;
  background:var(--g2l); display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 34px rgba(0,0,0,.4); transition:box-shadow .4s ease;}
body.g2l .gl-vid:hover .gl-vid-play, body.g2l .gl-vid:focus-visible .gl-vid-play{box-shadow:0 18px 44px rgba(0,0,0,.5), 0 0 0 7px rgba(28,158,224,.2);}
body.g2l .gl-vid-play .tri{width:0; height:0; margin-left:14%;
  border-style:solid; border-width:8px 0 8px 13px; border-color:transparent transparent transparent #fff;}
body.g2l .gl-vid-meta{position:absolute; left:0; right:0; bottom:0; pointer-events:none;
  display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px;
  font-family:var(--font-mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#f4f3f1;}
body.g2l .gl-vid-meta .r{color:rgba(244,243,241,.62);}
body.g2l .gl-vid.playing{cursor:default;}
body.g2l .gl-vid.playing > :not(iframe){opacity:0; pointer-events:none;}
body.g2l .gl-vid iframe{position:absolute; inset:0; width:100%; height:100%; border:0; z-index:2;}
body.g2l .gl-vid-block .cap{display:block; margin-top:13px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); max-width:70ch; line-height:1.7;}
body.g2l .gl-vid-block .cap b{color:var(--ink-soft); font-weight:400;}
@media (max-width:760px){
body.g2l .gl-vid-row{grid-template-columns:1fr;}
}
body.g2l .gl-tape-head p + p{margin-top:16px;}
body.g2l .gl-tape-head p b{color:var(--ink); font-weight:700;}
body.g2l .gl-cta{position:relative; overflow:hidden; background:#191617; color:#f4f3f1;
  border-top:1px solid var(--rule);}
body.g2l .gl-cta::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(60% 80% at 82% 22%, rgba(28,158,224,.18), transparent 62%),
             radial-gradient(54% 74% at 4% 96%, rgba(255,255,0,.06), transparent 58%);}
body.g2l .gl-cta .wrap{position:relative; z-index:1; padding-block:clamp(70px,10vw,140px);}
body.g2l .gl-cta .eyebrow{display:inline-flex; align-items:center; color:rgba(244,243,241,.6);}
body.g2l .gl-cta .eyebrow .dot{background:var(--g2l);}
body.g2l .gl-cta h2{font-size:clamp(40px,6.6vw,104px); line-height:.94; letter-spacing:-0.05em;
  margin:16px 0 0; max-width:15ch; color:#f4f3f1;}
body.g2l .gl-cta h2 .em{color:var(--g2l);}
body.g2l .gl-cta-row{display:flex; flex-wrap:wrap; gap:18px 26px; align-items:center; margin-top:clamp(32px,4vw,52px);}
body.g2l .gl-cta .tlink{color:#f4f3f1;}
@media (max-width:980px){
body.g2l .gl-hero-meta{grid-template-columns:repeat(2,1fr);}
body.g2l .gl-brief-grid{grid-template-columns:1fr; gap:clamp(22px,4vw,40px);}
body.g2l .gl-phase-grid{grid-template-columns:1fr; gap:clamp(28px,5vw,44px);}
body.g2l .gl-phase.flip .gl-phase-media{order:0;}
body.g2l .gl-pipe-head{grid-template-columns:1fr;}
body.g2l .gl-pipe-grid{grid-template-columns:1fr;}
body.g2l .gl-diagram.compact{max-width:420px; margin-inline:auto;}
body.g2l .gl-stats{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
body.g2l .gl-hero-meta{grid-template-columns:1fr;}
body.g2l .gl-stats{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
body.g2l .gl-shot:hover img{transform:none;}
}

/* page: heels & faces */
@font-face{font-family:"Landsinner";
  src:url("case-studies/landsinner-brush.ttf") format("truetype");
  font-weight:400; font-style:normal; font-display:swap;}
body.hf{--bone:     #f4eee0;
  --bone-dot: rgba(122,102,62,.16);
  --ink:      #1b1718;
  --ink-band: #141112;
  --red:      #b23a35;
  --red-soft: rgba(178,58,53,.45);
  --body:     #2c2728;
  --body-dim: #d8d4d0;
  --hairline: rgba(35,31,32,.18);

  --hf-concrete: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23c)' opacity='0.5'/%3E%3C/svg%3E");

  --f-brush: "Landsinner", "Caveat", cursive;

  --t-body: clamp(17px,1.6vw,23px);
  --t-sm:   clamp(15px,1.32vw,19px);
  --t-h2:   clamp(25px,2.25vw,32px);}
body.hf{background-color:var(--bone);
  background-image:radial-gradient(var(--bone-dot) 1px, transparent 1.4px);
  background-size:16px 16px;
  color:var(--body);
  letter-spacing:0;}
body.hf::before{display:none;}
body.hf ::selection{background:var(--ink); color:var(--bone);}
body.hf .tether{background:var(--yellow); border-bottom:1px solid rgba(32,28,29,.25);}
body.hf .tether-inner{display:flex; align-items:center; justify-content:space-between; gap:18px;
  min-height:36px; padding-block:9px;
  font-family:var(--font-mono); font-size:13px; letter-spacing:.22em; text-transform:uppercase; color:#201c1d;}
body.hf .tether-back{display:inline-flex; align-items:center; gap:12px; transition:gap .2s;}
body.hf .tether-back svg{width:24px; height:12px;}
body.hf .tether-back:hover{gap:17px;}
body.hf .brush{font-family:var(--f-brush); font-weight:400; line-height:.94; letter-spacing:.005em;}
body.hf .red{color:var(--red);}
body.hf .ink{color:var(--ink);}
body.hf .hf-band.redfield .hf-h2 .ink{color:#201c1d;}
body.hf .hf-kicker{font-family:var(--font-mono); font-size:13px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--red); display:flex; align-items:center; gap:12px;}
body.hf .hf-kicker::before{content:""; width:64px; height:1px; background:currentColor; flex:none;}
body.hf .hf-kicker.bare::before{content:none;}
body.hf .hf-kicker.center{justify-content:center;}
body.hf .hf-h2{font-family:var(--font-sans); font-weight:700; font-size:var(--t-h2);
  line-height:1.08; letter-spacing:-.02em; color:var(--ink); margin-top:16px;}
body.hf .hf-copy{font-size:var(--t-body); line-height:1.34; color:var(--body);}
body.hf .hf-h2 + .hf-copy{margin-top:28px;}
body.hf .hf-copy p + p{margin-top:1.1em;}
body.hf .hf-copy b{font-weight:700; color:var(--ink);}
body.hf .hf-copy b.red, body.hf .hf-copy em.red{color:var(--red);}
body.hf .hf-copy em{font-style:italic;}
body.hf .hf-cap{font-family:var(--font-mono); font-size:13px; letter-spacing:.16em; text-transform:uppercase;
  line-height:1.75;}
body.hf .hf-band{padding-block:clamp(56px,6vw,88px); position:relative;}
body.hf .hf-band.rule{border-top:1px solid var(--hairline);}
body.hf .hf-band.dark{background:var(--ink-band);}
body.hf .hf-band.dark .hf-h2{color:#f4f3f1;}
body.hf .hf-band.dark .hf-copy{color:var(--body-dim);}
body.hf .hf-band.dark .hf-copy b{color:#f4f3f1;}
body.hf .hf-band.dark .hf-copy b.red, body.hf .hf-band.dark .hf-copy em.red{color:#c4524c;}
body.hf .hf-band.redfield{background:var(--red);}
body.hf .hf-band.redfield .hf-kicker{color:var(--bone);}
body.hf .hf-band.redfield .hf-h2{color:#fff;}
body.hf .hf-band.redfield .hf-copy{color:#f3e9e4;}
body.hf .hf-band.redfield .hf-copy b{color:#fff;}
body.hf .hf-grid{display:grid; grid-template-columns:minmax(0,480px) minmax(0,1fr); gap:clamp(32px,5.5vw,84px); align-items:start;}
body.hf .hf-grid.even{grid-template-columns:1fr 1fr;}
body.hf .hf-hero{padding-block:clamp(48px,5.5vw,76px) clamp(56px,6vw,96px);}
body.hf .hf-hero .wrap{display:flex; flex-direction:column; gap:clamp(48px,6vw,96px);}
body.hf .hf-hero-logo img{width:100%; height:auto;}
body.hf .hf-hero-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(28px,4vw,72px); align-items:start;}
body.hf .hf-hero-intro{text-align:center; padding-top:clamp(0px,1vw,12px);}
body.hf .hf-hero-intro h1{font-family:var(--f-brush); font-weight:400; letter-spacing:.005em;
  font-size:clamp(56px,6.9vw,100px); line-height:1.04; color:var(--ink);}
body.hf .hf-hero-lede{font-size:var(--t-body); line-height:1.34; color:var(--body);
  max-width:42ch; margin:clamp(22px,2.4vw,36px) 0 0; text-align:left;}
body.hf .hf-hero-lede b{color:var(--ink);}
body.hf .hf-hero-lede b.red{color:var(--red);}
body.hf .hf-hero-img{overflow:hidden;}
body.hf .hf-hero-img img{width:100%; height:100%; object-fit:cover; aspect-ratio:705/480; will-change:transform;}
body.hf .hf-meta{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px;
  margin-top:clamp(34px,4vw,58px); background:rgba(244,238,224,.16);
  border:1px solid rgba(244,238,224,.16);}
body.hf .hf-meta .m{font-family:var(--font-mono); font-size:13px; letter-spacing:.16em; text-transform:uppercase;
  line-height:1.72; color:#cdc8bf; display:flex; flex-direction:column; gap:14px; text-align:left;
  padding:clamp(24px,2.6vw,40px) clamp(20px,2vw,32px);
  background-color:#181311;
  background-image: var(--hf-concrete),
    radial-gradient(140% 100% at 12% 0%, rgba(150,140,128,.10), transparent 55%);
  background-size:240px 240px, cover; background-blend-mode:overlay, normal;}
body.hf .hf-meta .m .k{align-self:flex-start; font-weight:700; color:#231f20; background:var(--bone);
  padding:5px 11px; letter-spacing:.16em;}
body.hf .hf-quote{position:relative; border:2px solid var(--red); padding:clamp(30px,3.4vw,52px);
  margin-right:10px; margin-bottom:10px;}
body.hf .hf-quote::after{content:""; position:absolute; top:9px; left:9px; right:-11px; bottom:-11px;
  border:2px solid var(--red); pointer-events:none;}
body.hf .hf-quote .q{font-family:var(--f-brush); font-size:clamp(34px,3.4vw,50px); line-height:1.1; color:#f4f3f1;}
body.hf .hf-quote .src{display:block; margin-top:22px; font-family:var(--font-mono); font-size:13px;
  letter-spacing:.24em; text-transform:uppercase; color:#8e8a8b;}
body.hf .hf-moves{display:flex; flex-direction:column; gap:clamp(20px,2.2vw,30px);}
body.hf .hf-move{border:2px solid var(--red); padding:clamp(24px,2.6vw,40px) clamp(20px,2.4vw,36px); text-align:center;}
body.hf .hf-move .mv-head{display:flex; align-items:center; justify-content:center; gap:18px;}
body.hf .hf-move .num{font-family:var(--f-brush); font-size:clamp(20px,1.8vw,27px); color:var(--red); flex:none; transform:translateY(.18em);}
body.hf .hf-move .mv-title{font-family:var(--f-brush); font-size:clamp(40px,4vw,58px); line-height:.95; color:var(--ink);}
body.hf .hf-move p{margin-top:16px; color:#4d4647; font-family:var(--font-mono); font-size:13px;
  letter-spacing:.14em; text-transform:uppercase; line-height:1.75; max-width:52ch; margin-inline:auto;}
body.hf .hf-stances{margin-top:clamp(48px,5.5vw,84px); font-size:clamp(17px,1.55vw,22px); line-height:1.4; color:var(--body);}
body.hf .hf-stances p + p{margin-top:1.1em;}
body.hf .hf-stances .lead{font-weight:700; color:var(--red);}
body.hf .hf-duo{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5.5vw,84px); margin-top:clamp(40px,4.5vw,72px);}
body.hf .hf-fcard{padding:clamp(28px,3vw,48px) clamp(20px,2.6vw,40px); text-align:center;
  display:flex; flex-direction:column; gap:20px; align-items:center; justify-content:center;}
body.hf .hf-fcard.heel{background:#221e1f; color:#f4f3f1;}
body.hf .hf-fcard.face{background:#fdfbf6; color:var(--ink);}
body.hf .hf-fcard .ft{font-family:var(--f-brush); font-size:clamp(44px,4.4vw,66px); line-height:.9;}
body.hf .hf-fcard .hf-cap{font-size:12.5px;}
body.hf .hf-stances.on-red{color:#f3e9e4;}
body.hf .hf-stances.on-red .lead{color:#fff;}
body.hf .hf-band.concrete{background-color:#181311;
  background-image: var(--hf-concrete),
    radial-gradient(130% 90% at 14% 0%, rgba(150,140,128,.10), transparent 55%),
    radial-gradient(130% 100% at 100% 100%, rgba(0,0,0,.42), transparent 72%);
  background-size:240px 240px, cover, cover; background-blend-mode:overlay, normal, normal;}
body.hf .hf-band.concrete .hf-wall img{border-color:rgba(196,82,76,.7);}
body.hf .hf-wall{width:100%; max-width:520px; margin-inline:auto; position:relative;}
body.hf .hf-wall img{display:block; width:100%; aspect-ratio:715/945; object-fit:cover; border:1px solid var(--red-soft);}
body.hf .hf-tale-head{max-width:560px; margin-bottom:clamp(38px,4.2vw,60px);}
body.hf .hf-tl-stat{display:grid; grid-template-columns:repeat(3,1fr);
  border-top:2px solid var(--ink); border-bottom:2px solid var(--ink);
  margin-bottom:clamp(56px,6.5vw,104px);}
body.hf .hf-tl-stat .s{padding:clamp(22px,2.8vw,40px) 10px; text-align:center;}
body.hf .hf-tl-stat .s + .s{border-left:1px solid var(--hairline);}
body.hf .hf-tl-stat .n{display:block; font-family:var(--f-brush); font-weight:400;
  font-size:clamp(60px,8.5vw,124px); line-height:.8; color:var(--ink);}
body.hf .hf-tl-stat .n em{font-style:normal; font-size:.3em; color:var(--red); margin-left:.05em;}
body.hf .hf-tl-stat .l{display:block; margin-top:14px; font-family:var(--font-mono); font-size:12.5px;
  letter-spacing:.2em; text-transform:uppercase; color:var(--red);}
body.hf .hf-tl{position:relative;}
body.hf .hf-tl::before{content:""; position:absolute; top:6px; bottom:6px; left:50%; width:2px; transform:translateX(-1px);
  background:repeating-linear-gradient(to bottom, var(--red) 0 8px, transparent 8px 16px); opacity:.5;}
body.hf .hf-tl-item{position:relative; width:calc(50% - 48px);}
body.hf .hf-tl-item + .hf-tl-item{margin-top:clamp(34px,4vw,58px);}
body.hf .hf-tl-item:nth-child(even){margin-left:calc(50% + 48px);}
body.hf .hf-tl-dot{position:absolute; top:14px; width:18px; height:18px; background:var(--red);
  border:3px solid var(--bone); border-radius:50%; box-shadow:0 0 0 2px var(--red-soft); z-index:2;}
body.hf .hf-tl-item:nth-child(odd) .hf-tl-dot{right:-57px;}
body.hf .hf-tl-item:nth-child(even) .hf-tl-dot{left:-57px;}
body.hf .hf-tl-item::after{content:""; position:absolute; top:22px; height:2px; width:48px; background:var(--red-soft);}
body.hf .hf-tl-item:nth-child(odd)::after{right:-48px;}
body.hf .hf-tl-item:nth-child(even)::after{left:-48px;}
body.hf .hf-tl-card{background:#fdfbf6; border:1px solid var(--hairline); padding:clamp(13px,1.3vw,18px);
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;}
body.hf .hf-tl-item:hover .hf-tl-card{transform:translateY(-3px); box-shadow:0 16px 40px rgba(35,31,32,.16);}
body.hf .hf-tl-shot{border:1px solid var(--red-soft); aspect-ratio:4/3; overflow:hidden; background:#e8e0cd;}
body.hf .hf-tl-shot img{width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1);}
body.hf .hf-tl-item:hover .hf-tl-shot img{transform:scale(1.05);}
body.hf .hf-tl-text{padding:clamp(14px,1.4vw,20px) clamp(8px,1vw,14px) clamp(4px,.6vw,8px);}
body.hf .hf-tl-yr{display:block; font-family:var(--f-brush); font-size:clamp(38px,3.8vw,56px); line-height:.78; color:var(--red);}
body.hf .hf-tl-title{font-family:var(--f-brush); font-size:clamp(32px,3.2vw,46px); line-height:.92; color:var(--ink); margin:2px 0 12px;}
body.hf .hf-tl-text p{font-size:var(--t-sm); line-height:1.38; color:var(--body);}
body.hf .hf-tl-text b{color:var(--red); font-weight:700;}
body.hf .hf-future{max-width:520px; margin:clamp(64px,7.5vw,120px) auto 0;}
body.hf .hf-future .hf-h2{text-align:center;}
body.hf .hf-scores{display:flex; flex-direction:column; gap:clamp(20px,2.4vw,34px);}
body.hf .hf-score{border:2px solid var(--red); padding:clamp(26px,2.8vw,44px) clamp(20px,2.6vw,40px); text-align:center;}
body.hf .hf-score .st{font-family:var(--f-brush); font-size:clamp(30px,2.9vw,42px); line-height:1.04; color:#f4f3f1;}
body.hf .hf-score .st .red{color:#c4524c;}
body.hf .hf-score .hf-cap{display:block; margin-top:14px; color:#a09b9c;}
body.hf .hf-score .hf-cap.red{color:#c4524c;}
body.hf .hf-cta{position:relative; overflow:hidden;}
body.hf .cta-bg{position:absolute; inset:0; z-index:0; background:var(--red);}
body.hf .cta-bg img{width:100%; height:100%; object-fit:cover;}
body.hf .cta-bg::after{content:""; position:absolute; inset:0;
  background-color:rgba(18,13,11,.5);
  background-image: var(--hf-concrete), linear-gradient(rgba(18,13,11,.34), rgba(18,13,11,.74));
  background-size:240px 240px, cover; background-blend-mode:overlay, normal;}
body.hf .hf-cta .wrap{position:relative; z-index:1; display:flex; flex-direction:column; align-items:center;
  justify-content:space-between; gap:clamp(40px,6vw,80px); min-height:min(62vh,620px); padding-block:clamp(48px,6vw,84px) clamp(40px,5vw,68px); text-align:center;}
body.hf .hf-cta-kicker{font-family:var(--font-mono); font-size:13px; letter-spacing:.24em; text-transform:uppercase; color:#fff;}
body.hf .hf-cta h2{line-height:1; margin-top:18px;}
body.hf .hf-cta h2 .small{display:block; font-family:var(--f-brush); font-weight:400; color:#fff;
  font-size:clamp(36px,3.9vw,56px); line-height:1;}
body.hf .hf-cta h2 .big{display:block; font-family:var(--f-brush); font-weight:400; color:#f6f0e3;
  font-size:clamp(72px,10.5vw,150px); line-height:.96; margin-top:clamp(2px,.6vw,10px); padding-bottom:.05em;
  text-shadow:0 2px 34px rgba(12,8,7,.55);}
body.hf .hf-cta-row{display:flex; gap:clamp(28px,4vw,56px); justify-content:center; align-items:center; flex-wrap:wrap;}
body.hf .hf-link{font-family:var(--font-mono); font-weight:700; font-size:14px; letter-spacing:.04em;
  color:#fff; padding-bottom:8px; border-bottom:1px solid #fff; transition:opacity .2s;}
body.hf .hf-link:hover{opacity:.75;}
body.hf .btn.white{--c:#f4f3f1; --t:#161314; background:#fff; color:#161314; border-color:#fff; padding:16px 24px; font-size:13px;}
body.hf .foot{background:var(--bone); border-top:1px solid var(--hairline);}
body.hf .foot .foot-inner{color:var(--body);}
body.hf .foot .foot-year{color:var(--red);}
body.hf .foot .footmark{filter:brightness(0); opacity:.82;}
body.hf [data-reveal]{opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);}
body.hf [data-reveal].in{opacity:1; transform:none;}
body.hf [data-reveal][data-delay="1"]{transition-delay:.08s;}
body.hf [data-reveal][data-delay="2"]{transition-delay:.16s;}
@media (prefers-reduced-motion:reduce){
body.hf [data-reveal]{opacity:1; transform:none;}
}
body.hf .hf-tl-dot{transform:scale(.4); opacity:0;
  transition:transform .55s cubic-bezier(.2,.7,.2,1), opacity .5s ease;}
body.hf .hf-tl-item.in .hf-tl-dot{transform:scale(1); opacity:1;}
body.hf .hf-tl::after{content:""; position:absolute; top:6px; left:50%; width:2px; transform:translateX(-1px);
  height:calc(var(--tl-p,0) * (100% - 12px)); background:var(--red);
  box-shadow:0 0 12px rgba(178,58,53,.65); z-index:1;}
body.hf .hf-move{position:relative; overflow:hidden;
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;}
body.hf .hf-move::before{content:""; position:absolute; inset:0; z-index:0; background:var(--red);
  transform:scaleY(0); transform-origin:bottom; transition:transform .45s cubic-bezier(.5,.05,.2,1);}
body.hf .hf-move > *{position:relative; z-index:1;}
body.hf .hf-move .mv-title, body.hf .hf-move .num, body.hf .hf-move p{transition:color .35s ease;}
body.hf .hf-move:hover{transform:translateY(-4px); box-shadow:0 18px 44px rgba(35,31,32,.16);}
body.hf .hf-move:hover::before{transform:scaleY(1);}
body.hf .hf-move:hover .mv-title, body.hf .hf-move:hover .num{color:#f6f0e3;}
body.hf .hf-move:hover p{color:#f3e0dd;}
body.hf .hf-fcard{transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;}
body.hf .hf-fcard .ft{transition:color .35s ease;}
body.hf .hf-fcard:hover{transform:translateY(-5px); box-shadow:0 22px 52px rgba(18,13,12,.34);}
body.hf .hf-fcard:hover .ft{color:var(--red);}
body.hf .hf-score{position:relative; overflow:hidden; transition:transform .4s cubic-bezier(.2,.7,.2,1);}
body.hf .hf-score::before{content:""; position:absolute; inset:0; z-index:0; background:var(--red);
  transform:scaleX(0); transform-origin:left; transition:transform .5s cubic-bezier(.5,.05,.2,1);}
body.hf .hf-score > *{position:relative; z-index:1;}
body.hf .hf-score .st, body.hf .hf-score .hf-cap{transition:color .35s ease;}
body.hf .hf-score:hover{transform:translateY(-3px);}
body.hf .hf-score:hover::before{transform:scaleX(1);}
body.hf .hf-score:hover .st{color:#fff;}
body.hf .hf-score:hover .hf-cap{color:#f3e0dd;}
body.hf .hf-score:hover .hf-cap.red{color:#ffd9d5;}
body.hf .hf-meta .m .k{transition:background-color .3s ease;}
body.hf .hf-meta .m:hover .k{background:var(--yellow);}
body.hf .hf-quote{transition:transform .4s cubic-bezier(.2,.7,.2,1);}
body.hf .hf-quote::after{transition:top .4s cubic-bezier(.2,.7,.2,1), left .4s cubic-bezier(.2,.7,.2,1),
  right .4s cubic-bezier(.2,.7,.2,1), bottom .4s cubic-bezier(.2,.7,.2,1);}
body.hf .hf-quote:hover{transform:translate(-3px,-3px);}
body.hf .hf-quote:hover::after{top:14px; left:14px; right:-16px; bottom:-16px;}
@media (max-width:980px){
body.hf .hf-grid, body.hf .hf-grid.even{grid-template-columns:1fr;}
body.hf .hf-quote{margin-top:12px;}
}
@media (max-width:760px){
body.hf .hf-hero-grid{grid-template-columns:1fr;}
body.hf .hf-meta{grid-template-columns:1fr 1fr;}
body.hf .hf-duo{grid-template-columns:1fr;}
body.hf .tether-inner{font-size:11px; letter-spacing:.16em;}
}
@media (max-width:820px){
body.hf .hf-tl::before{left:9px; transform:none;}
body.hf .hf-tl::after{left:9px; transform:none;}
body.hf .hf-tl-item, body.hf .hf-tl-item:nth-child(even){width:100%; margin-left:0; padding-left:48px;}
body.hf .hf-tl-item + .hf-tl-item{margin-top:clamp(30px,7vw,46px);}
body.hf .hf-tl-item:nth-child(odd) .hf-tl-dot, body.hf .hf-tl-item:nth-child(even) .hf-tl-dot{left:0; right:auto;}
body.hf .hf-tl-item:nth-child(odd)::after, body.hf .hf-tl-item:nth-child(even)::after{left:18px; right:auto; width:30px;}
}
@media (max-width:560px){
body.hf .hf-tl-stat .n{font-size:clamp(52px,15vw,72px);}
}

/* page: world of darkness */
body.wod{--acc-vtm:    #c1301f;
  --acc-vaesen: oklch(0.72 0.10 215);
  --acc-coc:    oklch(0.74 0.15 138);
  --acc-5e:     #ffff00;
  --acc-hunter: #ffff00;}
body.wod .s-vtm{--acc:var(--acc-vtm);}
body.wod .s-vaesen{--acc:var(--acc-vaesen);}
body.wod .s-coc{--acc:var(--acc-coc);}
body.wod .s-5e{--acc:var(--acc-5e);}
body.wod .s-hunter{--acc:var(--acc-hunter);}
body.wod .tether{background:var(--yellow); border-bottom:1px solid rgba(32,28,29,.25);}
body.wod .tether-inner{display:flex; align-items:center; justify-content:space-between; gap:18px;
  min-height:36px; padding-block:9px;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:#201c1d;}
body.wod .tether-back{display:inline-flex; align-items:center; gap:12px; transition:gap .2s;}
body.wod .tether-back svg{width:24px; height:12px;}
body.wod .tether-back:hover{gap:17px;}
body.wod .wd-hero{position:relative; overflow:hidden;
  padding-block:clamp(52px,8vw,116px) clamp(40px,6vw,78px); border-bottom:1px solid var(--line);}
body.wod .wd-hero::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:var(--neon-glow); opacity:.7;}
body.wod .wd-hero .wrap{position:relative; z-index:1;}
body.wod .wd-eyebrow{display:flex; align-items:center; gap:14px; margin-bottom:clamp(26px,4vw,46px);
  font-family:var(--font-mono); font-size:clamp(11px,.78vw,13px); letter-spacing:.2em;
  text-transform:uppercase; color:var(--fg-soft);}
body.wod .wd-eyebrow .idx{color:var(--yellow);}
body.wod .wd-eyebrow .grow{flex:1; height:1px; background:var(--line);}
body.wod .wd-hero h1{font-size:clamp(42px,8vw,124px); line-height:.92; letter-spacing:-0.05em; max-width:15ch;}
body.wod .wd-hero h1 .et{font-weight:300; font-style:italic; color:var(--fg-soft); letter-spacing:-0.02em;}
body.wod .wd-hero-lede{font-size:clamp(17px,1.45vw,22px); line-height:1.5; max-width:56ch; color:var(--fg);
  margin:clamp(26px,3vw,40px) 0 0;}
body.wod .wd-hero-lede b{font-weight:700;}
body.wod .wd-hero-meta{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-top:clamp(40px,5vw,68px);
  border:1px solid var(--line); background:var(--line);}
body.wod .wd-hero-meta .m{background:var(--bg); padding:clamp(16px,1.8vw,24px) clamp(16px,1.8vw,24px);}
body.wod .wd-hero-meta .k{display:block; font-family:var(--font-mono); font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--fg-faint); margin-bottom:9px;}
body.wod .wd-hero-meta .v{font-family:var(--font-sans); font-weight:700; font-size:clamp(20px,2vw,30px);
  line-height:1; letter-spacing:-0.03em;}
body.wod .wd-hero-meta .v small{font-weight:300; font-size:.5em; color:var(--fg-soft); letter-spacing:0;}
body.wod .wd-card{border-bottom:1px solid var(--line); background:var(--bg-2);}
body.wod .wd-card .wrap{padding-block:clamp(40px,5vw,72px);}
body.wod .wd-card .marker{margin-bottom:clamp(24px,3vw,38px);}
body.wod .wd-ledger{border-top:1px solid var(--line);}
body.wod .wd-li{position:relative; display:grid;
  grid-template-columns:auto 1.5fr 1fr auto; gap:clamp(14px,2.4vw,40px); align-items:center;
  padding:clamp(16px,1.9vw,24px) clamp(8px,1.4vw,18px); border-bottom:1px solid var(--line);
  color:var(--fg); cursor:pointer; overflow:hidden;
  transition:padding-left .45s cubic-bezier(.5,.05,.2,1);}
body.wod .wd-li::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--acc); transform:scaleY(0); transform-origin:top; transition:transform .4s cubic-bezier(.5,.05,.2,1);}
body.wod .wd-li:hover{padding-left:clamp(18px,2.4vw,34px); background:rgba(244,243,241,.03);}
body.wod .wd-li:hover::before{transform:scaleY(1);}
body.wod .wd-li .n{font-family:var(--font-mono); font-size:12px; color:var(--fg-faint); letter-spacing:.08em;}
body.wod .wd-li .show{font-family:var(--font-sans); font-weight:700; font-size:clamp(17px,1.7vw,26px);
  line-height:1.04; letter-spacing:-0.035em;}
body.wod .wd-li .who{display:flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--fg-soft);}
body.wod .wd-li .who .dot{width:9px; height:9px; background:var(--acc); border-radius:50%; flex:none;}
body.wod .wd-li .go{font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--fg-faint); white-space:nowrap; transition:color .25s ease;}
body.wod .wd-li:hover .go{color:var(--acc);}
@media (max-width:760px){
body.wod .wd-li{grid-template-columns:auto 1fr; row-gap:6px;}
body.wod .wd-li .who{grid-column:2;}
body.wod .wd-li .go{display:none;}
}
body.wod .wd-bout{position:relative; border-top:1px solid var(--line);
  padding-block:clamp(66px,10vw,140px); scroll-margin-top:84px;}
body.wod .wd-bout.alt{background:var(--bg-2);}
body.wod .wd-bout-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,84px); align-items:center;}
body.wod .wd-bout.flip .wd-bout-media{order:-1;}
body.wod .wd-bout-num{font-family:var(--font-sans); font-weight:800; line-height:.8;
  font-size:clamp(54px,7vw,104px); letter-spacing:-0.05em; color:var(--acc);
  -webkit-text-stroke:0; margin-bottom:clamp(14px,1.8vw,24px);}
body.wod .wd-billing{display:inline-block; font-family:var(--font-mono); font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--fg-soft); margin-bottom:14px;}
body.wod .wd-bout h2{font-size:clamp(30px,3.8vw,58px); line-height:.98; letter-spacing:-0.04em;}
body.wod .wd-bout h2 .sub{display:block; font-family:var(--font-sans); font-weight:300; font-size:.42em;
  letter-spacing:-0.02em; color:var(--fg-soft); margin-top:.5em; line-height:1;}
body.wod .wd-corner{display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; margin:clamp(16px,2vw,24px) 0 clamp(18px,2.2vw,26px);
  padding-top:16px; border-top:1px solid var(--line);}
body.wod .wd-tag{display:inline-flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:11px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--fg-soft);}
body.wod .wd-tag .dot{width:9px; height:9px; background:var(--acc); border-radius:50%; flex:none;}
body.wod .wd-corner .sep{color:var(--fg-faint);}
body.wod .wd-corner .client{font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--fg);}
body.wod .wd-copy p{font-size:clamp(15px,1.12vw,18px); line-height:1.62; color:var(--fg-soft);
  max-width:50ch; margin-bottom:16px; text-wrap:pretty;}
body.wod .wd-copy p b{color:var(--fg); font-weight:700;}
body.wod .wd-copy p .acc{color:var(--acc); font-weight:700;}
body.wod .wd-copy p em{color:var(--fg); font-style:italic;}
body.wod .wd-roles{display:flex; flex-wrap:wrap; gap:8px; margin-top:clamp(20px,2.4vw,30px);}
body.wod .wd-roles span{font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--fg-soft); border:1px solid var(--line-strong); padding:7px 11px;}
body.wod .vid{position:relative; display:block; width:100%; aspect-ratio:16/9; overflow:hidden;
  background:#0c0a0b; cursor:pointer; border:0; padding:0; -webkit-tap-highlight-color:transparent;
  box-shadow:0 0 0 1px var(--line), 0 36px 80px -50px rgba(0,0,0,.85);}
body.wod .vid-thumb{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(1) contrast(1.05) brightness(.84);
  transform:scale(1.02); transition:transform 1s cubic-bezier(.2,.7,.2,1), filter .6s ease;}
body.wod .vid:hover .vid-thumb, body.wod .vid:focus-visible .vid-thumb{transform:scale(1.05); filter:grayscale(0) contrast(1.02) brightness(1);}
body.wod .vid-grad{position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(12,10,11,.62) 0%, transparent 46%),
             linear-gradient(118deg, rgba(12,10,11,.3), transparent 48%);}
body.wod .vid-play{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); pointer-events:none;
  width:clamp(58px,6vw,84px); height:clamp(58px,6vw,84px); border-radius:50%;
  background:var(--acc); display:flex; align-items:center; justify-content:center;
  box-shadow:0 18px 44px rgba(0,0,0,.45); transition:box-shadow .4s ease;}
body.wod .vid:hover .vid-play, body.wod .vid:focus-visible .vid-play{box-shadow:0 22px 60px rgba(0,0,0,.5), 0 0 0 8px color-mix(in srgb, var(--acc) 18%, transparent);}
body.wod .vid-play .tri{width:0; height:0; margin-left:14%;
  border-style:solid; border-width:clamp(9px,1vw,13px) 0 clamp(9px,1vw,13px) clamp(15px,1.7vw,22px);
  border-color:transparent transparent transparent var(--bg);}
body.wod .vid-meta{position:absolute; left:0; right:0; bottom:0; pointer-events:none;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:clamp(13px,1.6vw,22px);
  font-family:var(--font-mono); font-size:clamp(10px,.78vw,12px); letter-spacing:.16em;
  text-transform:uppercase; color:#f4f3f1;}
body.wod .vid-meta .r{color:rgba(244,243,241,.6);}
body.wod .vid.playing{cursor:default;}
body.wod .vid.playing > :not(iframe){opacity:0; pointer-events:none;}
body.wod .vid iframe{position:absolute; inset:0; width:100%; height:100%; border:0; z-index:2;}
body.wod .wd-bout.finale .wd-bout-grid{grid-template-columns:1fr; gap:clamp(34px,4vw,56px);}
body.wod .wd-duo{display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,28px);}
body.wod .wd-duo .vid-wrap{display:flex; flex-direction:column; gap:12px;}
body.wod .wd-duo .vlabel{display:flex; align-items:center; gap:10px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-soft);}
body.wod .wd-duo .vlabel .dot{width:8px; height:8px; background:var(--acc); border-radius:50%;}
body.wod .finale .wd-bout-copy{max-width:64ch;}
@media (max-width:760px){
body.wod .wd-duo{grid-template-columns:1fr;}
}
body.wod .wd-novid{position:relative; width:100%; aspect-ratio:16/9; overflow:hidden;
  border:1px solid var(--line); background:var(--bg);}
body.wod .wd-novid image-slot{position:absolute; inset:0; width:100%; height:100%; display:block;}
body.wod .wd-novid .note{position:absolute; left:0; bottom:0; z-index:2; pointer-events:none;
  display:flex; align-items:center; gap:9px; padding:clamp(13px,1.6vw,20px);
  font-family:var(--font-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-soft);}
body.wod .wd-novid .note .dot{width:8px; height:8px; background:var(--acc); border-radius:50%;}
body.wod .wd-tape{border-top:1px solid var(--line); background:var(--bg-2);}
body.wod .wd-tape .wrap{padding-block:clamp(64px,9vw,128px);}
body.wod .wd-tape-head{max-width:46ch; margin-bottom:clamp(40px,5vw,68px);}
body.wod .wd-tape-head h2{font-size:clamp(30px,4.2vw,58px); line-height:1; letter-spacing:-0.04em; margin-bottom:22px;}
body.wod .wd-tape-head p{font-size:clamp(16px,1.15vw,19px); color:var(--fg-soft); line-height:1.55;}
body.wod .wd-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; border:1px solid var(--line); background:var(--line);}
body.wod .wd-stat{background:var(--bg); padding:clamp(26px,3vw,44px) clamp(22px,2.4vw,34px);}
body.wod .wd-stat .n{font-family:var(--font-sans); font-weight:800; font-size:clamp(46px,6vw,86px);
  line-height:.86; letter-spacing:-0.05em; color:var(--yellow);}
body.wod .wd-stat .l{display:block; margin-top:14px; font-family:var(--font-mono); font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--fg-soft);}
body.wod .wd-stat:nth-child(2) .n{color:var(--magenta);}
body.wod .wd-stat:nth-child(3) .n{color:var(--fg);}
@media (max-width:760px){
body.wod .wd-stats{grid-template-columns:1fr;}
}
body.wod .wd-cta{position:relative; overflow:hidden; border-top:1px solid var(--line);}
body.wod .wd-cta::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:var(--neon-glow);}
body.wod .wd-cta .wrap{position:relative; z-index:1; padding-block:clamp(72px,10vw,140px);}
body.wod .wd-cta .eyebrow{display:inline-flex; align-items:center;}
body.wod .wd-cta h2{font-size:clamp(40px,6.6vw,104px); line-height:.94; letter-spacing:-0.05em; margin:16px 0 0; max-width:16ch;}
body.wod .wd-cta h2 .yellow{background:var(--neon); -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent; display:inline-block; line-height:1; padding-bottom:.16em; margin-bottom:-.16em;}
body.wod .wd-cta-row{display:flex; flex-wrap:wrap; gap:18px 26px; align-items:center; margin-top:clamp(32px,4vw,52px);}
@media (max-width:980px){
body.wod .wd-hero-meta{grid-template-columns:repeat(2,1fr);}
body.wod .wd-bout-grid{grid-template-columns:1fr;}
body.wod .wd-bout.flip .wd-bout-media{order:0;}
body.wod .wd-stats{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:560px){
body.wod .wd-hero-meta{grid-template-columns:1fr;}
}
body.wod .wd-pub-label{font-family:var(--font-mono); font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--fg-faint);}
body.wod .wd-pub{color:var(--fg-soft); text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:var(--line-strong); transition:color .2s ease, text-decoration-color .2s ease;}
body.wod .wd-pub:hover{color:var(--acc); text-decoration-color:var(--acc);}
body.wod .wd-bout.finale .wd-bout-copy{text-align:center; max-width:780px; margin-inline:auto;}
body.wod .wd-bout.finale .wd-corner{justify-content:center;}
body.wod .wd-bout.finale .wd-copy p{margin-inline:auto;}
body.wod .wd-bout.finale .wd-roles{justify-content:center;}
body.wod .wd-duo-cue{display:flex; align-items:center; justify-content:center; gap:11px;
  margin-bottom:clamp(18px,2.2vw,28px);
  font-family:var(--font-mono); font-size:clamp(12px,1vw,14px); letter-spacing:.16em;
  text-transform:uppercase; color:var(--acc);}
body.wod .wd-duo-cue .play{width:0; height:0; border-style:solid; border-width:6px 0 6px 10px;
  border-color:transparent transparent transparent var(--acc);}
body.wod .wd-bout.finale .vid{box-shadow:0 0 0 2px var(--acc), 0 36px 80px -50px rgba(0,0,0,.85);}
body.wod .wd-bout.finale .vid .vid-play{box-shadow:0 18px 44px rgba(0,0,0,.5), 0 0 0 6px color-mix(in srgb, var(--acc) 22%, transparent);}

/* page: disciplines */
body.disc .disc-hero{padding-block:clamp(64px,10vh,140px) clamp(36px,5vw,72px);}
body.disc .disc-eyebrow{display:inline-block; font-family:var(--font-mono); font-size:clamp(10px,.78vw,12.5px);
  letter-spacing:.22em; text-transform:uppercase; color:var(--fg-soft); margin-top:6px;}
body.disc .disc-title{font-size:clamp(56px,12vw,164px); line-height:.88; letter-spacing:-0.05em; margin:14px 0 0;}
body.disc .disc-title .sp{color:var(--yellow);}
body.disc .disc-lede-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,84px);
  margin-top:clamp(34px,5vw,62px); align-items:start;}
body.disc .disc-tag{font-family:var(--font-sans); font-weight:700; font-size:clamp(24px,2.7vw,40px);
  line-height:1.04; letter-spacing:-0.035em; max-width:16ch;}
body.disc .disc-tag .sp{color:var(--yellow);}
body.disc .disc-copy p{font-size:clamp(16px,1.15vw,19px); color:var(--fg); margin-bottom:18px; max-width:50ch; line-height:1.55;}
body.disc .disc-copy p:last-child{margin-bottom:0;}
body.disc .disc-copy b{font-weight:700; color:var(--yellow);}
body.disc .disc-work{padding-block:clamp(38px,5vw,72px) clamp(80px,12vh,160px); border-top:1px solid var(--line);}
body.disc .disc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px;}
body.disc .disc-grid.cols-2{grid-template-columns:repeat(2,1fr);}
body.disc .disc-grid.cols-1{grid-template-columns:minmax(0,540px);}
body.disc .disc-item{position:relative; aspect-ratio:1/1; overflow:hidden; cursor:pointer;
  background:var(--tile-bg,#161416); border:0; padding:0; display:block;}
body.disc .disc-item img, body.disc .disc-item video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:.13; transition:opacity .55s cubic-bezier(.4,.1,.3,1);}
body.disc .disc-item:hover img, body.disc .disc-item:focus-visible img, body.disc .disc-item:hover video, body.disc .disc-item:focus-visible video{opacity:1;}
body.disc .disc-item-meta{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column;
  justify-content:flex-end; gap:10px; padding:clamp(16px,1.7vw,26px); align-items:flex-start;
  pointer-events:none; transition:opacity .4s ease;}
body.disc .disc-item:hover .disc-item-meta, body.disc .disc-item:focus-visible .disc-item-meta{opacity:0;}
body.disc .disc-item-meta .k{font-family:var(--font-mono); font-size:clamp(10px,.82vw,12px); letter-spacing:.16em;
  text-transform:uppercase; color:var(--tile-fg,#fff); opacity:.72; background:none; padding:0;}
body.disc .disc-item.is-video .disc-item-meta .k::before{content:"\25B6  "; font-size:.82em;}
body.disc .disc-item-meta .t{font-family:var(--font-sans); font-weight:700; font-size:clamp(20px,1.9vw,32px);
  line-height:1.0; letter-spacing:-0.035em; color:var(--tile-fg,#fff); background:none; padding:0; text-wrap:balance;}
body.disc .disc-empty{font-family:var(--font-mono); font-size:13px; letter-spacing:.04em; text-transform:uppercase;
  color:var(--fg-soft); padding:48px 0;}
@media (max-width:560px){
body.disc .disc-lede-grid{grid-template-columns:1fr;}
body.disc .disc-grid{grid-template-columns:repeat(2,1fr);}
body.disc .disc-grid.cols-1{grid-template-columns:1fr;}
}

/* page: coming soon */
body.cs .cs-page{min-height:100vh; display:flex; flex-direction:column;}
body.cs .cs-bar{position:sticky; top:0; z-index:100; background:rgba(32,28,29,.78);
  backdrop-filter:blur(14px) saturate(1.1); -webkit-backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--line);}
body.cs .cs-bar-inner{display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:16px;}
body.cs .cs-back{display:inline-flex; align-items:center; gap:11px; font-family:var(--font-mono);
  font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--fg-soft); transition:color .2s;}
body.cs .cs-back:hover{color:var(--yellow);}
body.cs .cs-back .brand-logo{height:22px; width:auto;}
body.cs .cs-bar .btn{padding:10px 18px; font-size:11.5px;}
body.cs .cs-main{flex:1; display:flex; align-items:center; position:relative; overflow:hidden;}
body.cs .cs-wrap{max-width:var(--measure); margin-inline:auto; padding-inline:var(--gutter); width:100%; position:relative; z-index:2;}
body.cs .cs-grid{display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(34px,6vw,90px); align-items:center;}
body.cs .cs-status{display:inline-flex; align-items:center; gap:10px; font-family:var(--font-mono);
  font-size:clamp(10px,.78vw,12.5px); letter-spacing:.22em; text-transform:uppercase; color:var(--fg-soft);}
body.cs .cs-status .dot{width:9px; height:9px; border-radius:50%; background:var(--yellow);
  animation:cs-blink 1.8s ease-in-out infinite;}
@keyframes cs-blink{0%,100%{ opacity:1; } 50%{ opacity:.25; }}
body.cs .cs-title{font-size:clamp(42px,6.6vw,98px); line-height:.92; letter-spacing:-0.05em; margin:22px 0 26px;}
body.cs .cs-title .sp{color:var(--yellow);}
body.cs .cs-sub{font-size:clamp(16px,1.35vw,21px); color:var(--fg-soft); max-width:46ch; line-height:1.5; margin-bottom:34px;}
body.cs .cs-sub b{color:var(--fg); font-weight:700;}
body.cs .cs-cta{display:flex; gap:20px; flex-wrap:wrap; align-items:center;}
body.cs .cs-feature{position:relative; aspect-ratio:1/1;}
@media (max-width:880px){
body.cs .cs-grid{grid-template-columns:1fr;}
body.cs .cs-feature{aspect-ratio:16/10; order:-1;}
body.cs .cs-feature.cs-hide-sm{display:none;}
}
@media (prefers-reduced-motion:reduce){
body.cs .cs-status .dot{animation:none;}
}


/* discipline pages: featured case study */
body.disc .disc-case{ padding: clamp(26px,3.4vw,52px) 0 clamp(10px,1.6vw,20px); }
body.disc .disc-feature{ display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch;
  margin-top:clamp(18px,2.4vw,30px); text-decoration:none; color:inherit;
  border:1px solid var(--line-strong); background:var(--bg-2); overflow:hidden; }
body.disc .dc-media{ position:relative; min-height:260px; overflow:hidden; }
body.disc .dc-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.7,.2,1); }
body.disc .disc-feature:hover .dc-media img{ transform:scale(1.04); }
body.disc .dc-body{ display:flex; flex-direction:column; justify-content:center; gap:14px;
  padding:clamp(22px,3vw,46px); border-left:1px solid var(--line-strong); }
body.disc .dc-billing{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--yellow); border:1px solid var(--yellow);
  padding:6px 10px; width:fit-content; }
body.disc .dc-title{ font-size:clamp(26px,3vw,42px); line-height:1.02; margin:0; }
body.disc .dc-blurb{ font-size:clamp(14.5px,1.1vw,17px); line-height:1.75; color:var(--fg-soft); max-width:52ch; margin:0; }
body.disc .dc-stat{ font-family:var(--font-mono); font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--fg-faint); }
body.disc .dc-view{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--yellow); margin-top:4px; }
body.disc .disc-feature:hover .dc-view{ text-decoration:underline; text-underline-offset:5px; }
@media (max-width:760px){
  body.disc .disc-feature{ grid-template-columns:1fr; }
  body.disc .dc-media{ min-height:200px; }
  body.disc .dc-body{ border-left:none; border-top:1px solid var(--line-strong); }
}

/* h&f: the gym figure in the tale of the tape */
body.hf .hf-gym{ margin:clamp(30px,4vw,52px) auto; max-width:860px; }
body.hf .hf-gym img{ display:block; width:100%; height:auto; border:1px solid rgba(32,28,29,.35); }
body.hf .hf-gym figcaption{ margin-top:10px; font-family:var(--font-mono); font-size:11px;
  letter-spacing:.1em; text-transform:uppercase; line-height:1.8; color:rgba(32,28,29,.62); }
