/* ==========================================================================
   FGX landing (index-landing.html)
   Builds on ui-ux.css: same tokens, grid and type scale (.ux-h2, .ux-h3,
   .ux-h4, .ux-lead, .ux-body, .ux-label) so every new page stays consistent.
   ========================================================================== */

/* hero.css paints the body black for the particle document; let the
   scroll-driven theme (dark / light / red) take over below the hero. */
html.fgx-particle-document body.fgx-landing { background: var(--ux-bg); font-size: 16px; }
/* The hero styles were written against the homepage's 10px root (rem units).
   Only the hero uses rem; everything else on this page is px/clamp. */
html.fgx-particle-document:has(body.fgx-landing) { font-size: 62.5%; }
html.fgx-particle-document body.fgx-landing .mxd-hero-section--particles { position: relative; z-index: 1; }

/* The hero lockup was set in Inter on the homepage; map it to the FGX pair.
   Explicit px font-sizes prevent FOUC when landing.css loads after hero.css:
   hero.css uses rem against 62.5% root (10px), so 1rem=10px here.
   We lock the sizes in px so they are immune to stylesheet load order. */
.fgx-landing .fgx-hero-lockup__statement {
  font-family: var(--ux-display); font-weight: 600; letter-spacing: -.05em;
  font-size: clamp(25.7px, 4.57vw, 55.7px);
}
@media only screen and (min-width: 1200px) {
  .fgx-landing .fgx-hero-lockup__statement { font-size: 44.1px; }
}
@media only screen and (min-width: 1440px) {
  .fgx-landing .fgx-hero-lockup__statement { font-size: 53.6px; }
}
.fgx-landing .fgx-hero-lockup__eyebrow,
.fgx-landing .fgx-hero-stat__label,
.fgx-landing .fgx-link-under,
.fgx-landing .fgx-morph-index__meta,
.fgx-landing .fgx-hero-stat__number,
.fgx-landing .fgx-hero-lockup__stars { font-family: var(--ux-text); }
.fgx-landing .fgx-proof__button {
  display: inline-flex; align-items: center; margin-top: 0; color: #fefefe;
  font-family: var(--ux-text); font-size: clamp(13px, .95vw, 16px); font-weight: 700;
  line-height: 1; letter-spacing: -.02em; text-decoration: none;
}
.fgx-landing .fgx-proof__button > span:first-child { display: flex; align-items: center; min-height: 50px; padding: 14px 27px; border-radius: 50px; background: var(--ux-red); }
.fgx-landing .fgx-proof__arrow { display: grid; width: 50px; height: 50px; margin-left: -1px; place-items: center; border-radius: 50%; background: var(--ux-red); font-size: 22px; line-height: 1; transition: transform .18s ease, background .18s ease; }
.fgx-landing .fgx-proof__button:hover .fgx-proof__arrow { transform: translate(3px, -3px); background: #fff; color: var(--ux-ink); }

/* ---------- 02 Manifesto ------------------------------------------------- */
.lp-manifesto .ux-statement__text,
.ux-statement__text { text-indent: 0 !important; }
.lp-manifesto__foot { margin-top: clamp(64px, 8vw, 140px); }
.lp-verbs { display: grid; gap: 0; border-top: 1px solid var(--ux-line); }
.lp-verbs p {
  display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: .35em;
  padding: clamp(18px, 2vw, 30px) 0; border-bottom: 1px solid var(--ux-line);
  font-family: var(--ux-display); font-size: clamp(34px, 4.6vw, 92px); line-height: 1; letter-spacing: -.05em; font-weight: 600;
}
.lp-verbs span { color: var(--ux-muted); }
.lp-verbs b { font-weight: 600; color: var(--ux-red); }
.lp-verbs i { font-style: normal; }
@media (max-width: 767px) { .lp-verbs p { grid-template-columns: auto auto; } .lp-verbs i { grid-column: 1 / -1; } }
/* slide-right verb lines */
.lp-verbs [data-lp-slide] { opacity: 0; transform: translateX(-60px); will-change: transform, opacity; }
@media (prefers-reduced-motion: reduce) { .lp-verbs [data-lp-slide] { opacity: 1; transform: none; } }

/* ---------- 03 Problem → fix stacking cards ------------------------------ */
.lp-fixes { padding-block: clamp(96px, 13vw, 220px) clamp(64px, 8vw, 120px); }
.lp-stack { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(24px, 3vw, 40px); }
.lp-card { position: sticky; top: calc(88px + var(--lp-i, 0) * 16px); }
.lp-card__inner {
  display: grid; gap: clamp(24px, 3vw, 56px);
  min-height: min(78vh, 760px);
  padding: clamp(22px, 3vw, 48px);
  border: 1px solid rgba(244, 240, 238, .12);
  border-radius: calc(var(--ux-radius) + 8px);
  background: linear-gradient(160deg, #1b1b1b 0%, #121212 60%);
  box-shadow: 0 -30px 80px rgba(0, 0, 0, .45);
  transform-origin: 50% 0;
  will-change: transform;
  overflow: hidden;
}
@media (min-width: 992px) { .lp-card__inner { grid-template-columns: 1.05fr 1fr; align-items: stretch; } }
.lp-card__text { display: flex; flex-direction: column; justify-content: space-between; gap: 22px; min-width: 0; }
.lp-card__top { display: flex; align-items: center; justify-content: space-between; }
.lp-card__top .ux-label { padding: 0; }
.lp-card__num { font-family: var(--ux-display); font-weight: 700; font-size: 14px; letter-spacing: .06em; color: var(--ux-red); }
.lp-card__problem { display: grid; gap: 10px; }
.lp-card__was { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(244, 240, 238, .4); }
.lp-card__problem s {
  position: relative; width: fit-content; text-decoration: none;
  font-family: var(--ux-display); font-size: clamp(22px, 2.2vw, 40px); font-weight: 500; line-height: 1.05; letter-spacing: -.035em;
  color: rgba(244, 240, 238, .42);
}
.lp-card__problem s::after {
  content: ""; position: absolute; left: -2%; right: -2%; top: 55%; height: .09em;
  background: var(--ux-red); transform: scaleX(var(--lp-strike, 0)); transform-origin: 0 50%;
}
.lp-card__fix { font-size: clamp(44px, 5.4vw, 108px); line-height: .95; letter-spacing: -.055em; }
.lp-card .ux-body { color: rgba(244, 240, 238, .6); }
.lp-tags { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lp-tags li { padding: 8px 14px; border: 1px solid rgba(244, 240, 238, .18); border-radius: 999px; font-size: 13px; font-weight: 700; color: rgba(244, 240, 238, .85); }
.lp-proof { display: flex; align-items: flex-end; gap: 18px; padding-top: 22px; border-top: 1px solid rgba(244, 240, 238, .12); }
.lp-proof strong { display: flex; align-items: flex-start; font-family: var(--ux-display); font-weight: 600; font-size: clamp(56px, 5.6vw, 110px); line-height: .85; letter-spacing: -.07em; color: #fff; }
.lp-proof sup { top: 0; margin-left: .06em; font-size: .3em; letter-spacing: -.02em; color: var(--ux-red); line-height: 1.3; }
.lp-proof span { max-width: 30ch; padding-bottom: 6px; font-size: 14px; line-height: 1.4; color: rgba(244, 240, 238, .55); }
.lp-card__media { position: relative; margin: 0; min-height: 320px; border-radius: var(--ux-radius); background: #0b0b0b; }
.lp-card__media > img { object-fit: cover; }
.lp-card__media figcaption {
  position: absolute; left: 16px; bottom: 16px; z-index: 1; padding: 8px 14px; border-radius: 999px;
  background: rgba(10, 10, 10, .78);
  font-size: 12px; font-weight: 700; letter-spacing: .02em; color: #fff;
}
.lp-footnote { margin: clamp(40px, 5vw, 72px) 0 0 !important; font-size: 12px; color: var(--ux-muted); max-width: 70ch; }
@media (max-width: 991px) { .lp-card { top: calc(76px + var(--lp-i, 0) * 10px); } .lp-card__media { min-height: 260px; order: -1; } }

/* ---------- 05 Project gallery (extends .ux-process) --------------------- */
.fgx-landing .lp-work {
  --ux-bg: #0f0f0f;
  --ux-fg: #f4f0ee;
  --ux-muted: rgba(244, 240, 238, .56);
  --ux-line: rgba(244, 240, 238, .16);
  background: var(--ux-bg);
  color: var(--ux-fg);
}
/* Keep the pinned gallery opaque while neighbouring sections change theme. */
.fgx-landing .lp-work .ux-process__pin { background: var(--ux-bg); }
body.fgx-landing .lp-work em { color: var(--ux-red); }
.lp-work .lp-proj { display: block; color: inherit; text-decoration: none; padding-top: 70px; }
@media (min-width: 992px) {
  .lp-work .lp-proj { width: clamp(420px, 36vw, 660px); }
  .lp-work .lp-proj:nth-child(odd) { transform: translateY(6vh); }
  .lp-work .lp-proj:nth-child(even) { transform: translateY(-5vh); }
}
.lp-proj__frame { aspect-ratio: 4 / 3; margin-bottom: 22px; background: #1a1a1a; }
.lp-proj__frame > img { width: 124%; height: 100%; top: 0; left: -12%; object-fit: cover; transition: transform 1.1s var(--ux-ease); }
a.lp-proj:hover .lp-proj__frame > img { transform: scale(1.05); }
.lp-proj__meta { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 10px !important; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ux-muted); }
.lp-proj__meta span:first-child { color: var(--ux-red); }
/* Tile shown without a link until its case study is published. */
.lp-proj__soon { padding: 3px 9px; border: 1px solid var(--ux-line); border-radius: 999px; }
.lp-proj__fix { max-width: 40ch; font-size: clamp(16px, 1.1vw, 20px); line-height: 1.45; color: var(--ux-muted); }
.lp-proj__fix s { display: block; margin-bottom: 6px; color: rgba(244, 240, 238, .35); text-decoration-color: var(--ux-red); text-decoration-thickness: 2px; }
.lp-proj--end { display: flex !important; flex-direction: column; justify-content: center; gap: 22px; padding-right: 6vw; }
.lp-proj--end .lp-proj__cta { margin: 0; }

/* ---------- 06 Team ------------------------------------------------------ */
.lp-team__pano {
  position: relative; margin: 0 auto; width: calc(100% - var(--ux-edge) * 2); max-width: calc(var(--ux-canvas) - var(--ux-edge) * 2);
  aspect-ratio: 1917 / 860; min-height: 340px; overflow: hidden; border-radius: calc(var(--ux-radius) + 8px); background: #d9d4d1;
}
.lp-team__pano > img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 18%; }
.lp-team__pano figcaption {
  position: absolute; left: 24px; right: 24px; bottom: 20px; display: flex; justify-content: space-between; gap: 16px;
  font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .5);
}
.lp-team__body { display: grid; gap: 56px; margin-top: clamp(56px, 7vw, 120px); }
@media (min-width: 1200px) {
  .lp-team__body { grid-template-columns: 5fr 7fr; gap: var(--ux-gap); align-items: start; }
  .lp-team__copy { position: sticky; top: 140px; }
}
.lp-team__copy .ux-body { margin-top: 24px !important; }
.lp-team__copy .ux-btn--ghost { color: var(--ux-fg); }
.lp-team__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2vw, 32px); }
.lp-team__ph { margin: 0; }
.lp-team__ph .ux-frame { aspect-ratio: 491 / 340; }
.lp-team__ph figcaption { margin-top: 12px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ux-muted); }
.lp-team__ph--b, .lp-team__ph--d { margin-top: clamp(40px, 8vw, 140px); }
.lp-stats { margin: clamp(80px, 10vw, 160px) 0 0; }

/* ---------- 07 Method ---------------------------------------------------- */
.lp-method__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 48px var(--ux-gap); counter-reset: none; }
@media (min-width: 768px) { .lp-method__steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .lp-method__steps { grid-template-columns: repeat(4, 1fr); } }
.lp-method__steps li { position: relative; display: flex; flex-direction: column; gap: 14px; padding-top: 28px; border-top: 1px solid var(--ux-line); }
.lp-method__steps li::before { content: ""; position: absolute; left: 0; top: -1px; height: 2px; width: 100%; background: var(--ux-red); transform: scaleX(var(--lp-on, 0)); transform-origin: 0 50%; transition: transform 1.1s var(--ux-ease); }
.lp-method__steps li.is-on { --lp-on: 1; }
.lp-method__n { font-family: var(--ux-display); font-size: clamp(80px, 8vw, 150px); font-weight: 700; line-height: .8; letter-spacing: -.07em; color: transparent; -webkit-text-stroke: 1px rgba(244, 240, 238, .28); transition: color .8s var(--ux-ease), -webkit-text-stroke-color .8s; }
.lp-method__steps li.is-on .lp-method__n { color: var(--ux-red); -webkit-text-stroke-color: var(--ux-red); }
.lp-method__steps .ux-h4 { margin: 10px 0 0; }
.lp-method__out { margin-top: auto; padding-top: 12px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: rgba(244, 240, 238, .5); }
.lp-method__line { display: none; }

/* ---------- 10 CTA problem picker --------------------------------------- */
.lp-picker { display: flex; flex-wrap: wrap; gap: 10px; margin-top: clamp(28px, 3vw, 44px); }
.lp-picker button {
  position: relative; padding: 14px 20px 14px 44px; border: 1px solid rgba(255, 255, 255, .24); border-radius: 999px;
  background: rgba(15, 15, 15, .45); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  color: #fff; font: 700 15px/1 var(--ux-text); letter-spacing: -.01em; cursor: pointer;
  transition: background .35s var(--ux-ease), border-color .35s var(--ux-ease), transform .35s var(--ux-ease);
}
.lp-picker button::before {
  content: ""; position: absolute; left: 16px; top: 50%; width: 16px; height: 16px; margin-top: -8px;
  border: 1.5px solid rgba(255, 255, 255, .6); border-radius: 50%; transition: all .3s var(--ux-ease);
}
.lp-picker button:hover { border-color: #fff; transform: translateY(-2px); }
.lp-picker button[aria-pressed="true"] { background: var(--ux-red); border-color: var(--ux-red); }
.lp-picker button[aria-pressed="true"]::before { background: #fff; border-color: #fff; box-shadow: inset 0 0 0 3px var(--ux-red); }
.lp-cta .ux-cta__title { max-width: 12ch; }

@media (prefers-reduced-motion: reduce) {
  .lp-card { position: relative; top: auto; }
  .lp-method__steps li { --lp-on: 1; }
}

/* Existing project cards retain their animation and native case-study access. */
.lp-card__link { display: block; color: inherit; text-decoration: none; }
.lp-card:has(> .lp-card__link:focus-visible) { z-index: 1; }
.lp-card__link:focus-visible { outline: none; }
.lp-card__link:focus-visible > .lp-card__inner {
  outline: 3px solid var(--ux-red);
  outline-offset: -5px;
}
.lp-card__cta { margin: 0; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: .25em; }
