/* ==========================================================================
   Bureau Attarine — site layer
   Sits on top of the F&B Guy design system tokens. Adds layout only.
   Rules obeyed from the system, deliberately:
     · four colours, nothing else. Every value below resolves to a token.
     · copper under 5% of any frame: the dot, the stat unit, one headline clause.
     · cards are a hairline, never a shadow.
     · buttons and tags are pills; everything else is 14px.
     · motion is fade + 12px rise, 220ms, no bounce, nothing over 400ms.
     · sentence case for navigation and section labels.
   ========================================================================== */

/* --- Page rhythm --------------------------------------------------------- */
:root{
  --shell:1120px;
  --edge:clamp(20px, 5vw, 40px);
  --band:clamp(64px, 9vw, 128px);
  --band-tight:clamp(48px, 6vw, 88px);

  /* Fluid steps, anchored to the token scale at each end.
     The jump from label (11px) to hook (up to 112px) is deliberate — a 10:1
     contrast is what separates editorial typography from a landing page,
     where everything lands within one octave of everything else. */
  --fluid-hook:clamp(40px, 8vw, 112px);    /* size-3xl → size-7xl */
  --fluid-display:clamp(32px, 5.2vw, 72px);
  --fluid-title:clamp(26px, 3.2vw, 38px);  /* → size-3xl */
  --fluid-lead:clamp(18px, 1.5vw, 20px);   /* → size-lg */
  --fluid-stat:clamp(44px, 5.4vw, 64px);   /* → size-5xl */

  --label-col:132px;

  /* Contrast correction, measured not guessed.
     The system sets --text-muted to ink at 50% and --text-faint to 34%. On the
     paper ground those measure 2.90:1 and 1.94:1 — both well under the 4.5:1
     needed at 11–15px, which is exactly the size the mono eyebrows and nav run
     at. Raised here at the site layer rather than in the system's own tokens,
     so the system stays untouched and this stays reviewable.
     Purely decorative numerals keep the original lightness — see .options__n. */
  --text-muted:rgba(38,50,56,.68);
  --text-faint:rgba(38,50,56,.68);
  --decor-faint:rgba(38,50,56,.30);
  /* Brand copper is 3.3:1 on paper — fine for a 24px+ headline clause at the
     3:1 large-text bar, not for a 20px subhead. The system's own dark copper
     (--ember-5) carries small copper text instead. */
  --copper-text:var(--ember-5);

  --icon-arrow-right:url("https://unpkg.com/lucide-static@0.469.0/icons/arrow-right.svg");
  --icon-mail:url("https://unpkg.com/lucide-static@0.469.0/icons/mail.svg");
  --icon-calendar:url("https://unpkg.com/lucide-static@0.469.0/icons/calendar-check.svg");
  --icon-linkedin:url("https://unpkg.com/lucide-static@0.469.0/icons/linkedin.svg");
}

html{scroll-behavior:smooth;scroll-padding-top:88px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Native cross-page transition. Four lines, no library, no scroll hijacking,
   and browsers that don't support it simply navigate as normal. Held to the
   system's own timing: 220ms on the standard curve, a fade and nothing else. */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){
  animation-duration:var(--dur-base);
  animation-timing-function:var(--ease-standard);
}
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}

body{font-family:var(--font-sans)}

img{max-width:100%;display:block}

.shell{max-width:var(--shell);margin:0 auto;padding-inline:var(--edge)}

/* Runs to the right edge of the viewport, left edge still on the grid.
   Reverts to a normal shell once the columns stack — with nothing beside it
   there is nothing to bleed past, and the buttons need their right margin. */
@media (min-width:861px){
  .shell--bleed-right{
    max-width:none;margin:0;
    padding-left:max(var(--edge), calc((100% - var(--shell))/2 + var(--edge)));
    padding-right:0;
  }
}

/* Editorial section: the label sits in the margin beside the content, not
   stacked on top of it with a rule under it. Removing that repeated
   eyebrow-rule-heading stack is the single biggest change to the page's
   rhythm — it is the shape every generated landing page has. */
.sect{
  display:grid;
  grid-template-columns:var(--label-col) minmax(0,1fr);
  gap:clamp(20px,4vw,72px);
  align-items:start;
}
.sect__label{
  margin:0;padding-top:.7em;
  font:400 .9375rem/1.4 var(--font-sans);letter-spacing:0;
  text-transform:none;color:var(--text-muted);
}
/* The brand blue is dark enough that white at .5 measured only 3.1:1 behind
   11px mono, and .66 still only 3.57:1. .8 clears 4.5:1 and is still audibly
   quieter than the pure-white headline beside it. */
.band--brand .sect__label,.band--ink .sect__label{color:rgba(255,255,255,.84)}
@media (max-width:860px){
  .sect{grid-template-columns:1fr;gap:var(--space-6)}
  .sect__label{padding-top:0}
}

/* Deliberately uneven. Equal padding on every band is what makes a page feel
   generated: the eye finds the interval and stops reading. */
.band{padding-block:var(--band)}
.band--tight{padding-block:var(--band-tight)}
.band--close{padding-block:clamp(40px,5vw,64px)}
.band--tall{padding-block:clamp(96px,15vw,224px)}
.band--card{background:var(--surface-card);border-block:1px solid var(--border-hairline)}
.band--sunken{background:var(--surface-sunken)}
.band--brand{background:var(--surface-brand);color:#fff}
.band--ink{background:var(--surface-inverse);color:#fff}

/* --- Type roles ---------------------------------------------------------- */
.eyebrow{
  font:var(--type-eyebrow);
  letter-spacing:var(--tracking-caps);
  text-transform:uppercase;
  color:var(--text-muted);
  margin:0;
}
.eyebrow--inverse{color:rgba(255,255,255,.8)}

.rule-eyebrow{
  padding-bottom:var(--space-4);
  border-bottom:1px solid var(--border-hairline);
  margin-bottom:var(--space-12);
}
.band--brand .rule-eyebrow,
.band--ink .rule-eyebrow{border-bottom-color:var(--border-inverse)}

.hook{
  margin:0;
  font-weight:var(--weight-medium);
  font-size:var(--fluid-hook);
  line-height:var(--leading-tight);
  letter-spacing:var(--tracking-tighter);
  color:var(--text-strong);
  text-wrap:balance;
  max-width:16ch;
}
.hook--wide{max-width:22ch}
.hook--inverse{color:#fff}
/* A 12-word headline can't run at hook scale without eating the fold — and
   less so now it shares the row with the portrait. Display scale, wider
   measure: the sentence stays, the shouting doesn't. */
.hook--hero{font-size:var(--fluid-display);max-width:19ch}
.hero--portrait .hook--hero{font-size:clamp(30px,3.9vw,54px);max-width:17ch}

.display{
  margin:0;
  font-weight:var(--weight-medium);
  font-size:var(--fluid-display);
  line-height:var(--leading-tight);
  letter-spacing:var(--tracking-tighter);
  color:var(--text-strong);
  text-wrap:balance;
  max-width:20ch;
}
.display--inverse{color:#fff}

.title{
  margin:0;
  font-weight:var(--weight-medium);
  font-size:var(--fluid-title);
  line-height:var(--leading-snug);
  letter-spacing:var(--tracking-tight);
  color:var(--text-strong);
  text-wrap:balance;
  max-width:26ch;
}
.title--inverse{color:#fff}
.title--sm{font-size:var(--size-xl);letter-spacing:var(--tracking-tight);max-width:20ch}

.turn{color:var(--copper)}                 /* the one copper clause */
/* The system reserves the copper clause for headlines, where 24px+ clears the
   3:1 large-text bar. Dropped into body prose it runs at 16px and measures
   3.44:1 against the card surface — under the 4.5:1 small-text bar. Inside
   prose it takes the darker copper instead. */
.prose .turn,.lead .turn{color:var(--copper-text)}
.band--brand .turn,.band--ink .turn{color:var(--ember-2)}

.lead{
  margin:0;
  font-size:var(--fluid-lead);
  line-height:var(--leading-normal);
  color:var(--text-body);
  max-width:var(--measure-body);
}
.lead--inverse{color:rgba(255,255,255,.78)}

.prose{margin:0;font:var(--type-body);color:var(--text-body);max-width:var(--measure-body)}
.prose + .prose{margin-top:var(--space-5)}
.prose--inverse{color:rgba(255,255,255,.72)}

.mono{font:var(--type-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-faint)}
.mono--inverse{color:rgba(255,255,255,.84)}
.site-footer .mono{font:400 .8125rem/1.4 var(--font-sans);letter-spacing:0;text-transform:none}

.stack{display:grid;gap:var(--space-8);align-content:start;justify-items:start}
.stack--sm{gap:var(--space-5)}
.stack--lg{gap:var(--space-12)}

/* --- Controls ------------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  height:46px;padding-inline:var(--space-6);
  border-radius:var(--radius-control);
  border:1px solid var(--blue);
  background:var(--blue);color:#fff;
  font:var(--weight-medium) var(--size-sm)/1 var(--font-sans);
  letter-spacing:var(--tracking-tight);
  text-decoration:none;white-space:nowrap;cursor:pointer;
  transition:var(--motion-hover);
}
.btn:hover{opacity:.86;color:#fff}
.btn:active{transform:scale(var(--press-scale));transition-duration:var(--dur-instant)}
.btn--secondary{background:transparent;color:var(--text-strong);border-color:var(--border-soft)}
.btn--secondary:hover{color:var(--text-strong)}
.btn--inverse{background:#fff;color:var(--ink);border-color:#fff}
.btn--inverse:hover{color:var(--ink)}
/* Secondary button sitting on a dark band */
.btn--outline-inverse{background:transparent;color:#fff;border-color:var(--border-inverse)}
.btn--outline-inverse:hover{color:#fff}
.btn--sm{height:36px;padding-inline:var(--space-4);font-size:var(--size-xs)}

.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3)}

.tag{
  display:inline-flex;align-items:center;gap:var(--space-2);
  padding:5px var(--space-3);border-radius:var(--radius-pill);
  background:var(--surface-sunken);color:var(--blue-deep);
  font:var(--type-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;
}
.tag--inverse{background:rgba(255,255,255,.16);color:#fff}

.i{
  display:inline-block;width:1em;height:1em;flex:0 0 auto;
  background-color:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-position:center;mask-position:center;
}
.i--arrow{-webkit-mask-image:var(--icon-arrow-right);mask-image:var(--icon-arrow-right)}
.i--mail{-webkit-mask-image:var(--icon-mail);mask-image:var(--icon-mail)}
.i--calendar{-webkit-mask-image:var(--icon-calendar);mask-image:var(--icon-calendar)}
.i--linkedin{-webkit-mask-image:var(--icon-linkedin);mask-image:var(--icon-linkedin)}

/* --- Wordmark ------------------------------------------------------------
   This is the identity — the system says so, and no symbol replaces it. So the
   craft has to live in the setting: tighter than body tracking, because
   semibold at display size sets loose; a smaller dot than the original .42em so
   it reads as punctuation rather than a bullet; and an optical nudge upward,
   because centring on the line box sits it low against the letterforms.
   ------------------------------------------------------------------------- */
.wordmark{
  display:inline-flex;align-items:center;gap:.30em;
  font-weight:var(--weight-semibold);
  letter-spacing:-0.032em;
  color:var(--text-strong);text-decoration:none;white-space:nowrap;
  transition:var(--motion-hover);
}
.wordmark:hover{opacity:.86;color:var(--text-strong)}
.wordmark::before{
  content:"";width:.36em;height:.36em;border-radius:var(--radius-pill);
  background:var(--copper);flex:0 0 auto;
  transform:translateY(-0.02em);
}
.wordmark--inverse{color:#fff}
.wordmark--inverse:hover{color:#fff}


/* --- The mark ------------------------------------------------------------
   Convergence: a whole and a fraction of one, meeting, with the overlap drawn
   as real geometry so it survives one colour, print and a 16px favicon.
   Three entrances, sized to the surface they appear on:
     reveal  video and title cards - the discs travel in and meet
     sting   social and app splash - the same move, faster
     micro   web - a fade only, because a mark that performs on every page
             load stops being a mark and becomes an interruption
   ------------------------------------------------------------------------ */
.mark{display:block;flex:0 0 auto;overflow:visible}
.mark__a,.mark__b,.mark__lens{transform-box:fill-box;transform-origin:50% 50%}

.mark--reveal .mark__a{transform:translateX(-26%)}
.mark--reveal .mark__b{transform:translateX(30%)}
.mark--reveal .mark__lens{opacity:0}
.mark--reveal.is-in .mark__a,
.mark--reveal.is-in .mark__b{transform:none;
  transition:transform var(--dur-deliberate) var(--ease-standard)}
.mark--reveal.is-in .mark__lens{opacity:1;
  transition:opacity var(--dur-base) var(--ease-standard) 260ms}

.mark--sting .mark__a{transform:translateX(-26%)}
.mark--sting .mark__b{transform:translateX(30%)}
.mark--sting .mark__lens{opacity:0}
.mark--sting.is-in .mark__a,
.mark--sting.is-in .mark__b{transform:none;
  transition:transform var(--dur-slow) var(--ease-standard)}
.mark--sting.is-in .mark__lens{opacity:1;
  transition:opacity var(--dur-fast) var(--ease-standard) 190ms}

.mark--micro{opacity:0}
.mark--micro.is-in{opacity:1;transition:opacity var(--dur-base) var(--ease-standard)}

.no-js .mark__a,.no-js .mark__b,.no-js .mark__lens{transform:none;opacity:1}
.no-js .mark--micro{opacity:1}
@media (prefers-reduced-motion:reduce){
  .mark__a,.mark__b,.mark__lens{transform:none;opacity:1;transition:none}
  .mark--micro{opacity:1}
}

/* The lockup. Replaces the copper dot: the dot stood in for a mark that did
   not exist yet, and now one does. */
.lockup{display:inline-flex;align-items:center;gap:.42em;
  font-weight:var(--weight-semibold);letter-spacing:-0.032em;
  color:var(--text-strong);text-decoration:none;white-space:nowrap;
  transition:var(--motion-hover)}
.lockup:hover{opacity:.86;color:var(--text-strong)}
.lockup__name{line-height:1}
.lockup--inverse{color:#fff}
.lockup--inverse:hover{color:#fff}
/* Do not nest a .lockup inside a .lockup: the inner one re-declares `color`
   and the inverse never reaches the name. Sizing belongs here, not on a
   wrapper element. */
/* 44px, not 21: the lockup is the only route back to the home page and the
   text's own line box is well under the minimum tap target on a phone. */
.site-header__bar .lockup{font-size:16px;min-height:44px}
.site-footer__brand .lockup{font-size:24px}
.site-geometric-lockup{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--text-strong);text-decoration:none;font-size:16px;font-weight:var(--weight-semibold);letter-spacing:-.032em;white-space:nowrap;transition:var(--motion-hover)}
.site-geometric-lockup:hover{color:var(--text-strong);opacity:.84}
.site-geometric-lockup img{display:block;width:29px;height:29px;object-fit:contain}
.site-geometric-lockup--inverse{color:#fff;font-size:24px}
.site-geometric-lockup--inverse:hover{color:#fff}
.site-geometric-lockup--inverse img{width:38px;height:38px}

/* --- Header -------------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:20;
  background:var(--panel-translucent);
  -webkit-backdrop-filter:var(--blur-panel);backdrop-filter:var(--blur-panel);
  border-bottom:1px solid var(--border-hairline);
}
.site-header__bar{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);
  height:72px;
}
.site-header .wordmark{font-size:22px}

.site-nav{display:flex;align-items:center;gap:var(--space-8)}
.site-nav a{
  font:var(--weight-medium) var(--size-sm)/1 var(--font-sans);
  letter-spacing:var(--tracking-tight);
  color:var(--text-muted);text-decoration:none;
  padding-block:6px;border-bottom:1px solid transparent;
  transition:var(--motion-hover);
}
.site-nav a:hover{color:var(--text-strong);border-bottom-color:var(--text-strong)}
.site-nav a[aria-current="page"]{color:var(--text-strong);border-bottom-color:var(--text-strong)}

.site-header__cta{display:flex;align-items:center;gap:var(--space-4)}

/* The CTA lives in the header bar on desktop and inside the menu on mobile —
   it is never absent. */
.nav-cta{display:none}

.nav-toggle{
  display:none;align-items:center;justify-content:center;
  width:40px;height:40px;padding:0;
  border:1px solid var(--border-soft);border-radius:var(--radius-pill);
  background:transparent;cursor:pointer;transition:var(--motion-hover);
}
.nav-toggle:hover{opacity:.86}
.nav-toggle span{position:relative;display:block;width:16px;height:1px;background:var(--text-strong)}
.nav-toggle span::before,.nav-toggle span::after{
  content:"";position:absolute;left:0;width:16px;height:1px;background:var(--text-strong);
  transition:transform var(--dur-base) var(--ease-standard),opacity var(--dur-fast) var(--ease-standard);
}
.nav-toggle span::before{top:-5px}
.nav-toggle span::after{top:5px}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{transform:translateY(5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{transform:translateY(-5px) rotate(-45deg)}

/* --- Hero ---------------------------------------------------------------- */
.hero{padding-block:clamp(56px,9vw,120px) var(--band)}
.hero__grid{display:grid;grid-template-columns:1.25fr .75fr;gap:var(--space-16);align-items:end}
.hero__aside{display:grid;gap:var(--space-6);justify-items:start}
/* One column: the live site's hero is a single line and a link, nothing else. */
.hero--solo{padding-block:clamp(64px,12vw,152px) clamp(64px,10vw,136px)}

/* Cut-out portrait, standing on the bottom edge of the brand band. */
.hero--portrait{padding-block:clamp(56px,8vw,104px) 0}
.portrait-grid{display:grid;grid-template-columns:1fr auto;gap:var(--space-12);align-items:end}
/* The portrait stands on the band edge; the type must not. */
.portrait-grid > .stack{padding-bottom:clamp(40px,6vw,80px)}
.portrait{display:block;justify-self:end;line-height:0}
.portrait img{
  display:block;width:clamp(240px,30vw,400px);height:auto;
  filter:saturate(.94) contrast(1.02);   /* the system's grade for photography */
}
.portrait--sm img{width:clamp(200px,26vw,340px)}
.portrait--close img{width:clamp(220px,28vw,360px)}

/* The book, as the object it is: square-ish corners, a hairline, no shadow. */
.cover{display:inline-block;line-height:0;transition:var(--motion-hover)}
.cover:hover{opacity:.86}
.cover img{
  display:block;width:clamp(180px,20vw,240px);height:auto;
  border-radius:var(--radius-xs);
  box-shadow:0 0 0 1px var(--border-hairline);
  filter:saturate(.94) contrast(1.02);
}

/* --- Cards --------------------------------------------------------------- */
.card{
  background:var(--surface-card);
  border:1px solid var(--border-hairline);
  border-radius:var(--radius-card);
  padding:var(--space-8);
  box-shadow:var(--shadow-none);
}
.card--sunken{background:var(--surface-sunken);border-color:transparent}
.card--inverse{background:rgba(255,255,255,.08);border-color:var(--border-inverse)}

.grid{display:grid;gap:var(--space-6)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
/* These two are used on their own, so they carry their own display. */
.grid--split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:start}
.grid--lead{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-16);align-items:start}

/* Problem list — a hairline-separated ledger, not bullets. */
.ledger{list-style:none;margin:0;padding:0;border-top:1px solid var(--border-hairline)}
.ledger li{
  display:flex;align-items:baseline;gap:var(--space-6);
  padding-block:var(--space-6);
  border-bottom:1px solid var(--border-hairline);
}
.ledger__n{font:var(--type-mono);color:var(--text-muted);flex:0 0 auto;min-width:2.5ch}
.ledger__t{margin:0;font-size:var(--fluid-lead);line-height:var(--leading-normal);color:var(--text-strong);letter-spacing:var(--tracking-tight)}
.band--brand .ledger,.band--ink .ledger{border-top-color:var(--border-inverse)}
.band--brand .ledger li,.band--ink .ledger li{border-bottom-color:var(--border-inverse)}
.band--brand .ledger__t,.band--ink .ledger__t{color:#fff}
.band--brand .ledger__n,.band--ink .ledger__n{color:rgba(255,255,255,.42)}

/* The three traditional solutions. Big ghosted numerals and a hanging indent,
   not three bordered rounded rectangles in a row. */
.options{list-style:none;margin:0;padding:0;display:grid;gap:clamp(28px,4vw,52px)}
.options li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,3vw,40px);align-items:baseline}
.options__n{
  font-weight:var(--weight-light);font-size:clamp(38px,5.4vw,76px);
  line-height:.78;letter-spacing:var(--tracking-tighter);color:var(--decor-faint);
}
.options p{
  margin:0;font-size:var(--fluid-title);line-height:var(--leading-snug);
  letter-spacing:var(--tracking-tight);color:var(--text-strong);
  max-width:20ch;text-wrap:balance;
}

/* Numbered method steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-8)}
.steps li{display:grid;grid-template-columns:auto 1fr;gap:var(--space-6);align-items:start}
.steps__n{
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:var(--radius-pill);
  background:var(--surface-sunken);color:var(--blue-deep);
  font:var(--type-mono);letter-spacing:var(--tracking-wide);
}
.steps h3{margin:0 0 var(--space-2);font:var(--weight-medium) var(--size-lg)/var(--leading-snug) var(--font-sans);letter-spacing:var(--tracking-tight);color:var(--text-strong)}
.steps p{margin:0;font:var(--type-body);color:var(--text-body);max-width:52ch}

/* The four Ds, side by side: numeral above the word, no invented body copy. */
.steps--row{grid-template-columns:repeat(4,1fr);gap:var(--space-8)}
.steps--row li{display:block}
.steps--row h3{
  margin:var(--space-5) 0 0;
  font-size:var(--fluid-title);
  letter-spacing:var(--tracking-tighter);
  line-height:var(--leading-snug);
}

/* Stats */
.stat__v{
  display:flex;align-items:baseline;gap:var(--space-1);
  font-weight:var(--weight-light);font-size:var(--fluid-stat);
  line-height:.9;letter-spacing:var(--tracking-tighter);color:var(--text-strong);
}
.stat__u{font-size:var(--size-xl);font-weight:var(--weight-regular);line-height:1;color:var(--copper)}
.stat__l{margin:var(--space-3) 0 0;font-size:var(--size-sm);line-height:var(--leading-relaxed);color:var(--text-body);max-width:var(--measure-narrow)}
.stat__f{margin:var(--space-2) 0 0}
.stat-row{margin-bottom:var(--band-tight);gap:var(--space-12)}

/* Definition rows — markets, sectors, credentials */
.facts{margin:0;border-top:1px solid var(--border-hairline)}
.facts > div{
  display:grid;grid-template-columns:minmax(140px,.34fr) 1fr;gap:var(--space-6);
  padding-block:var(--space-5);border-bottom:1px solid var(--border-hairline);
}
.facts dt{font:var(--type-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-faint)}
.facts dd{margin:0;font-size:var(--size-md);line-height:var(--leading-relaxed);color:var(--text-strong)}

/* Capability pills */
.caps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-3)}
.caps li{
  padding:10px var(--space-5);border-radius:var(--radius-pill);
  border:1px solid var(--border-hairline);background:var(--surface-card);
  font:var(--weight-medium) var(--size-sm)/1 var(--font-sans);letter-spacing:var(--tracking-tight);
  color:var(--text-strong);
}

/* ==========================================================================
   The narrative spine
   One uninterrupted rule, aligned to the wordmark edge. Its local changes
   carry the argument: 80/20, 3P, four stages, six readings, one conclusion.
   The content takes a small left inset so the rule remains a gutter, never a
   decorative border attached to a card or paragraph.
   ========================================================================== */
.spine-page{
  --spine-x:max(var(--edge),calc((100vw - var(--shell))/2 + var(--edge)));
  --spine-gutter:28px;
  position:relative;isolation:isolate;
}
.spine-page .shell{padding-left:calc(var(--edge) + var(--spine-gutter))}
@media (min-width:861px){
  .spine-page .shell--bleed-right{
    padding-left:max(calc(var(--edge) + var(--spine-gutter)),calc((100% - var(--shell))/2 + var(--edge) + var(--spine-gutter)));
  }
}

.nspine{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.nspine__rule{
  position:absolute;left:var(--spine-x);top:0;bottom:0;width:1px;
  background:rgba(38,50,56,.54);
}
.nspine--home .nspine__rule{top:calc(clamp(64px,12vw,158px)/2)}

.spine-inverse::after{
  content:"";position:absolute;z-index:4;pointer-events:none;
  top:0;bottom:0;left:var(--spine-x);width:1px;background:rgba(255,255,255,.62);
}

.nspine__station{
  position:absolute;left:calc(var(--spine-x) - 40px);width:80px;
  top:var(--station-top);height:var(--station-height);
  opacity:0;transition:opacity var(--dur-base) var(--ease-standard);
}
.nspine__station.is-in{opacity:1}
.nspine__station svg{display:block;width:100%;height:100%;overflow:visible}
.nspine__station path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:butt}
.nspine__heavy{stroke:var(--ink);stroke-width:8px}
.nspine__copper{stroke:var(--copper);stroke-width:2px}
.nspine__fork-main{stroke:var(--ink);stroke-width:3px}
.nspine__fork-side{stroke:var(--blue);stroke-width:2px}
.nspine__fork-accent{stroke:var(--copper);stroke-width:2px}
.nspine__inverse{stroke:#fff;stroke-width:2px}
.nspine__inverse--fine{stroke-width:1px;opacity:.74}

.nspine__station--split{--station-top:38%;--station-height:10%}
.nspine__station--fork{--station-top:50%;--station-height:10%}
.nspine__station--ticks{--station-top:64%;--station-height:12%}
.nspine__station--narrow{--station-top:48%;--station-height:12%}
.nspine__station--converge{--station-top:88%;--station-height:12%}

.nspine__tick{
  position:absolute;left:40px;top:var(--tick-y);width:18px;height:2px;
  transform:translate(-50%,-50%);background:var(--ink);
}
.nspine__tick:nth-child(1){--tick-y:12%}
.nspine__tick:nth-child(2){--tick-y:27%}
.nspine__tick:nth-child(3){--tick-y:42%}
.nspine__tick:nth-child(4){--tick-y:57%}
.nspine__tick:nth-child(5){--tick-y:72%}
.nspine__tick:nth-child(6){--tick-y:87%;background:var(--copper)}

.nspine__stage{
  position:absolute;left:40px;top:var(--stage-top);height:var(--stage-height);
  width:var(--stage-width);transform:translateX(-50%);background:var(--blue);
}
.nspine__stage:nth-child(1){--stage-top:10%;--stage-height:20%;opacity:.42}
.nspine__stage:nth-child(2){--stage-top:30%;--stage-height:20%;opacity:.58}
.nspine__stage:nth-child(3){--stage-top:50%;--stage-height:20%;opacity:.76}
.nspine__stage:nth-child(4){--stage-top:70%;--stage-height:20%;opacity:1}

.no-js .nspine__station{opacity:1}
@media (prefers-reduced-motion:reduce){
  .nspine__station{opacity:1;transition:none}
}
@media (max-width:520px){
  .spine-page{--spine-gutter:24px}
  .nspine__station{left:calc(var(--spine-x) - 32px);width:64px}
  .nspine__tick,.nspine__stage{left:32px}
}

/* ==========================================================================
   Diagrams
   An amendment to the system's "no illustration" rule, agreed deliberately:
   these carry the argument rather than decorate it. Built from the four
   colours and hairlines only. No gradient, no shadow, no invented symbol,
   and no label that isn't already the site's own words.
   ========================================================================== */

/* --- Cost: "penny's on the dollar", made literal ------------------------- */
.costbars{margin:0;display:grid;gap:var(--space-8);width:100%}
.costbar{display:grid;gap:var(--space-3)}
.costbar__l{
  font-size:var(--size-md);line-height:var(--leading-normal);
  letter-spacing:var(--tracking-tight);color:rgba(255,255,255,.86);
}
.costbar__t{display:block;height:14px;border-radius:var(--radius-xs);background:rgba(255,255,255,.14)}
.costbar__t i{
  display:block;height:100%;width:var(--w);
  border-radius:var(--radius-xs);background:#fff;
}
.costbar__t i.is-accent{background:var(--ember-2)}
.costbars figcaption{margin-top:var(--space-2)}

/* --- The four Ds ---------------------------------------------------------
   The narrowing now happens in the shared spine; these rows carry only the
   stage names and their sequence.
   ------------------------------------------------------------------------ */
.method-line{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-7);width:100%}
.method-line li{display:grid;grid-template-columns:2.5ch 1fr;gap:var(--space-5);align-items:baseline;min-height:52px}
.method-line__n{font:var(--type-mono);letter-spacing:var(--tracking-wide);color:var(--text-faint)}
.method-line__w{
  font-weight:var(--weight-medium);font-size:var(--fluid-title);
  line-height:1;letter-spacing:var(--tracking-tighter);color:var(--text-strong);
}

/* --- Markets, along one line -------------------------------------------- */
.markets{margin:0 0 var(--space-12);width:100%}
.markets ol{
  list-style:none;margin:0;padding:0;
  display:flex;justify-content:space-between;gap:var(--space-4);
  border-top:1px solid var(--border-hairline);
}
.markets li{
  position:relative;padding-top:var(--space-6);
  font:var(--type-mono);letter-spacing:var(--tracking-wide);color:var(--text-strong);
}
.markets li::before{
  content:"";position:absolute;top:0;left:50%;
  width:1px;height:var(--space-4);background:var(--border-soft);
}
.markets li:first-child::before{left:0}
.markets li:last-child::before{left:auto;right:0}
.markets li:first-child::after,.markets li:last-child::after{
  content:"";position:absolute;top:-3px;left:0;
  width:7px;height:7px;border-radius:var(--radius-pill);background:var(--copper);
}
.markets li:last-child::after{left:auto;right:0}

@media (max-width:640px){
  .markets ol{flex-wrap:wrap;gap:var(--space-5) var(--space-6);justify-content:flex-start}
  .markets li{padding-top:var(--space-5)}
  .markets li::before{left:0}
  .markets li:last-child::before{left:0;right:auto}
  .markets li:first-child::after,.markets li:last-child::after{display:none}
}

/* Verbatim lines — the experience list, set as written, one per rule. */
.lines{list-style:none;margin:0;padding:0;border-top:1px solid var(--border-hairline)}
.lines li{
  padding-block:var(--space-6);
  border-bottom:1px solid var(--border-hairline);
  font-size:var(--fluid-lead);
  line-height:var(--leading-normal);
  letter-spacing:var(--tracking-tight);
  color:var(--text-strong);
}

/* Book part labels */
.parts{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4);width:100%;max-width:var(--measure-body)}
.parts li{
  display:grid;gap:var(--space-1);
  padding-top:var(--space-4);border-top:1px solid var(--border-hairline);
  font-size:var(--size-md);line-height:var(--leading-normal);color:var(--text-strong);
}

/* The system replaced the decorative quote glyph with a copper hairline. */
.pullquote{
  margin:0;padding-top:var(--space-5);
  border-top:2px solid var(--copper);
  font-weight:var(--weight-light);
  font-size:var(--fluid-title);
  line-height:var(--leading-snug);
  letter-spacing:var(--tracking-tight);
  color:var(--text-strong);
  text-wrap:balance;
  max-width:24ch;
}

/* Contact rows */
.channels{display:grid;gap:var(--space-4);width:100%}
.channel{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);
  padding:var(--space-6) var(--space-8);
  border:1px solid var(--border-hairline);border-radius:var(--radius-card);
  background:var(--surface-card);text-decoration:none;color:inherit;
  transition:var(--motion-hover);
}
.channel:hover{opacity:.86;color:inherit}
.channel--primary{border-color:var(--ink);background:var(--paper)}
.channel--primary .channel__label strong{color:var(--blue)}
.channel__label{display:grid;gap:var(--space-1)}
.channel__label .mono{font:400 .875rem/1.4 var(--font-sans);letter-spacing:0;text-transform:none}
.channel__label strong{font:var(--weight-medium) var(--size-lg)/1.2 var(--font-sans);letter-spacing:var(--tracking-tight);color:var(--text-strong)}
.channel .i{font-size:18px;color:var(--text-muted)}

/* --- Footer -------------------------------------------------------------- */
.site-footer{background:var(--surface-inverse);color:rgba(255,255,255,.72);padding-block:var(--band-tight) var(--space-10)}
/* Ink meeting ink would merge into one slab and leave the portrait standing on
   nothing. A hairline gives it a floor. */
.band--ink + .site-footer{border-top:1px solid var(--border-inverse)}
.site-footer__top{display:flex;justify-content:space-between;gap:var(--space-12);flex-wrap:wrap}
.site-footer__brand{max-width:340px;display:grid;gap:var(--space-4);justify-items:start}
.site-footer .wordmark{font-size:24px}
.site-footer__cols{display:flex;gap:var(--space-16);flex-wrap:wrap}
.site-footer__col{display:grid;gap:var(--space-3);align-content:start}
.site-footer__col a,.site-footer__col span:not(.eyebrow){color:rgba(255,255,255,.78);text-decoration:none;font:var(--type-body);transition:var(--motion-hover)}
.site-footer__col a:hover{color:#fff}
.site-footer__rule{height:1px;background:var(--border-inverse);margin:var(--space-12) 0 var(--space-6)}
.site-footer__base{display:flex;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap}

/* --- Diagrams that draw themselves --------------------------------------
   The bars grow to their real value as they come into view, so the argument
   is made in front of you rather than sitting there pre-made. Width only —
   no bounce, no overshoot, nothing over the system's 400ms ceiling. If the
   script never runs, the bars are simply already drawn.
   ------------------------------------------------------------------------ */
.costbar__t i{
  width:0;
  transition:width var(--dur-deliberate) var(--ease-standard);
}
.costbars.is-in .costbar__t i{width:var(--w)}
.costbars.is-in .costbar:nth-of-type(2) .costbar__t i{transition-delay:140ms}

/* No script, or the user asked for less motion: draw them immediately. */
.no-js .costbar__t i{width:var(--w)}
@media (prefers-reduced-motion:reduce){
  .costbar__t i{transition:none;width:var(--w)}
}

/* ==========================================================================
   Dark scheme
   An extension to the system, not a departure from it. No fifth hue enters:
   every surface below is ink mixed with paper, blue or transparent, so the
   palette is still exactly four colours. Ink stays the deepest note, which
   means the closing band and the footer remain the darkest thing on the page
   in both schemes — the rhythm is preserved, only inverted.
   ========================================================================== */
@media (prefers-color-scheme:dark){
  :root{
    /* Surface ladder, lightest to deepest */
    --surface-page:color-mix(in srgb, var(--ink) 94%, var(--paper));
    --surface-card:color-mix(in srgb, var(--ink) 88%, var(--paper));
    --surface-sunken:color-mix(in srgb, var(--ink) 86%, var(--blue));
    --surface-brand:var(--blue);
    --surface-inverse:var(--ink);

    /* Higher than the light-mode equivalents on purpose: the same opacity
       that reads as "quiet" on paper reads as "unreadable" on ink. Measured
       against the page surface — 52% muted came out at 4.19:1 and 34% faint
       at 2.68:1, both under the bar. These clear it. */
    --text-strong:var(--paper);
    --text-body:color-mix(in srgb, var(--paper) 76%, transparent);
    /* 66/68 clears the page surface but not the raised ones: the contact
       channels sit on a lightened card, and 11px mono measured 4.40:1 there.
       74% measures 4.91:1 on that card and stays quiet on the page. */
    --text-muted:color-mix(in srgb, var(--paper) 74%, transparent);
    --text-faint:color-mix(in srgb, var(--paper) 74%, transparent);

    --border-hairline:color-mix(in srgb, var(--paper) 14%, transparent);
    --border-soft:color-mix(in srgb, var(--paper) 22%, transparent);

    /* Copper at full strength is muddy on ink; the system's own lighter
       ember is the on-dark accent, exactly as it is on the brand band. */
    --copper:#E8B58C;
    --text-link:color-mix(in srgb, var(--blue) 55%, var(--paper));

    --decor-faint:color-mix(in srgb, var(--paper) 30%, transparent);
    --copper-text:var(--ember-2);
    --panel-translucent:color-mix(in srgb, var(--ink) 82%, transparent);
  }

  /* Chips read as blue-on-pale in light; on dark they need to invert. */
  .tag,.steps__n{
    background:color-mix(in srgb, var(--blue) 26%, transparent);
    color:color-mix(in srgb, var(--blue) 45%, var(--paper));
  }

  /* The card band and a card on it would otherwise be the same value. */
  .card,.channel,.caps li{background:color-mix(in srgb, var(--ink) 82%, var(--paper))}

  /* Nav sits on a translucent header, so it needs the body weight rather than
     the muted one to clear 4.5:1 against whatever scrolls under it. */
  .site-nav a{color:var(--text-body)}

  /* The book cover is a photograph of an object — let it keep its own light. */
  .cover img{box-shadow:0 0 0 1px var(--border-soft)}

  html{color-scheme:dark}
}

/* --- The alternatives, priced -------------------------------------------
   Four columns, no bars. The numbers are the argument; a chart on top of them
   would just be the same claim twice.
   ------------------------------------------------------------------------ */
.compare{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;width:100%;border-top:1px solid var(--border-inverse)}
.compare li{
  padding:var(--space-8) var(--space-6) var(--space-8) 0;
  border-bottom:1px solid var(--border-inverse);
  display:grid;gap:var(--space-3);align-content:start;
}
.compare li + li{padding-left:var(--space-6);border-left:1px solid var(--border-inverse)}
.compare dt,.compare__who{
  font:var(--type-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;
  color:rgba(255,255,255,.84);margin:0;
}
.compare__cost{
  margin:0;font-weight:var(--weight-light);
  font-size:clamp(26px,3vw,40px);line-height:1;
  letter-spacing:var(--tracking-tighter);color:#fff;
}
.compare__note{margin:0;font-size:var(--size-sm);line-height:var(--leading-normal);color:rgba(255,255,255,.88)}
.compare li.is-us .compare__who{color:rgba(255,255,255,.84)}
.compare li.is-us .compare__cost{color:var(--ember-2)}
@media (max-width:860px){
  .compare{grid-template-columns:1fr 1fr}
  .compare li{padding-inline:var(--space-5) var(--space-5)}
  .compare li:nth-child(odd){padding-left:0}
  .compare li:nth-child(even){border-left:1px solid var(--border-inverse)}
  .compare li:nth-child(odd){border-left:0}
}
@media (max-width:520px){
  .compare{grid-template-columns:1fr}
  .compare li,.compare li + li{padding-left:0;border-left:0}
}

/* --- Results, counted up -------------------------------------------------
   The numerals run from zero to their value when the row comes into view.
   700ms, eased out, and they land on the real figure — the only thing on the
   site that animates in a way you'd call an effect, and it earns it because
   the numbers are the whole point.
   ------------------------------------------------------------------------ */
.results{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(28px,4vw,56px);width:100%}
.results li{display:grid;gap:var(--space-3);align-content:start}
.results__n{
  margin:0;                      /* <p> default margin was opening a 68px hole */
  display:flex;align-items:baseline;gap:.06em;
  font-weight:var(--weight-light);font-size:clamp(40px,5vw,68px);line-height:.92;
  letter-spacing:var(--tracking-tighter);color:var(--text-strong);
  font-variant-numeric:tabular-nums;
}
/* The unit scales with the numeral, so at 1440 it is ~28px (large text, 3:1,
   brand copper passes) and at 390 it is ~17px (small text, 4.5:1, it doesn't).
   A colour that depends on viewport width is a colour that's wrong somewhere —
   so it takes the darker copper at every size. */
.results__u{font-size:.42em;font-weight:var(--weight-regular);color:var(--copper-text);letter-spacing:0}
.results__l{margin:0;font-size:var(--size-md);line-height:var(--leading-normal);color:var(--text-strong);letter-spacing:var(--tracking-tight)}
.results__f{margin:0}
@media (max-width:860px){.results{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.results{grid-template-columns:1fr}}

/* --- Stagger -------------------------------------------------------------
   Children arrive in sequence rather than as a block. Same fade and 12px rise
   as everything else — only the timing changes. This is the cheapest thing on
   the site that makes it feel alive, and the most easily overdone: 70ms apart,
   capped at eight, then everything after lands together.
   ------------------------------------------------------------------------ */
.stagger > *{opacity:0;transform:translateY(12px);
  transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}
.stagger.is-in > *{opacity:1;transform:none}
.stagger.is-in > *:nth-child(1){transition-delay:0ms}
.stagger.is-in > *:nth-child(2){transition-delay:70ms}
.stagger.is-in > *:nth-child(3){transition-delay:140ms}
.stagger.is-in > *:nth-child(4){transition-delay:210ms}
.stagger.is-in > *:nth-child(5){transition-delay:280ms}
.stagger.is-in > *:nth-child(6){transition-delay:350ms}
.stagger.is-in > *:nth-child(7){transition-delay:420ms}
.stagger.is-in > *:nth-child(n+8){transition-delay:490ms}
.no-js .stagger > *{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .stagger > *{opacity:1;transform:none;transition:none}
}

/* --- The 80/20 content ---------------------------------------------------
   Weight now lives in the shared spine. The copy remains a direct 4:1 reading
   at wide sizes and becomes sequential when there is no room to compare.
   ------------------------------------------------------------------------ */
.reality{display:grid;grid-template-columns:minmax(0,4fr) minmax(180px,1fr);gap:clamp(28px,5vw,72px);width:100%}
.reality__part{display:grid;gap:var(--space-4);align-content:start}
.reality__share{font:var(--type-mono);letter-spacing:var(--tracking-wide);color:var(--text-muted)}
.reality__part h3{margin:0;font:var(--weight-medium) var(--size-lg)/1.2 var(--font-sans);letter-spacing:var(--tracking-tight);color:var(--text-strong)}
.reality__part ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.reality__part li{font-size:var(--size-md);line-height:var(--leading-normal);color:var(--text-body)}
.reality__part--hidden h3{color:var(--copper-text)}
@media (max-width:860px){.reality{grid-template-columns:1fr;gap:var(--space-10)}}

/* --- The 3P content ------------------------------------------------------ */
.framework-legs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,64px);width:100%}
@media (max-width:860px){.framework-legs{grid-template-columns:1fr;gap:var(--space-12)}}
.framework-legs > li{display:grid;gap:var(--space-4);align-content:start}
.framework-legs h3{margin:0;font-weight:var(--weight-medium);font-size:var(--fluid-title);line-height:1.05;letter-spacing:var(--tracking-tighter);color:var(--text-strong)}
.framework-legs__sub{margin:0;font:var(--type-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}
.framework-legs ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.framework-legs ul li{font-size:var(--size-md);line-height:var(--leading-normal);color:var(--text-body)}
.framework-legs__out{margin:var(--space-2) 0 0;font-weight:var(--weight-medium);font-size:var(--size-lg);letter-spacing:var(--tracking-tight);color:var(--text-strong)}

/* --- The six metrics ----------------------------------------------------- */
.metrics{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;width:100%;border-top:1px solid var(--border-hairline)}
@media (max-width:860px){.metrics{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.metrics{grid-template-columns:1fr}}
.metrics li{
  display:grid;gap:var(--space-2);align-content:start;
  padding:var(--space-8) var(--space-6) var(--space-8) 0;
  border-bottom:1px solid var(--border-hairline);
}
.metrics__k{font:var(--type-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);margin:0}
.metrics__v{margin:0;font-weight:var(--weight-light);font-size:clamp(28px,3vw,40px);line-height:1;
  letter-spacing:var(--tracking-tighter);color:var(--text-strong)}
.metrics__t{margin:0;font-size:var(--size-sm);line-height:var(--leading-normal);color:var(--text-body)}

/* --- The six readings ---------------------------------------------------
   The shared spine supplies the six ticks. The values, scale and explanation
   remain explicit without introducing six new chart tracks.
   ------------------------------------------------------------------------ */
.metric-lines{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-8);width:100%}
.metric-lines li{
  display:grid;grid-template-columns:minmax(96px,1fr) minmax(150px,1.1fr) minmax(180px,1.4fr);
  gap:clamp(16px,3vw,40px);align-items:center;min-height:72px;
}
.metric-lines__k{margin:0;font:var(--type-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}
.metric-lines__v{margin:var(--space-2) 0 0;font-weight:var(--weight-light);font-size:clamp(24px,2.6vw,34px);line-height:1;letter-spacing:var(--tracking-tighter);color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap}
.metric-lines__reading{min-width:0}
.metric-lines__axis{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-3);align-items:center;font:var(--type-mono);letter-spacing:var(--tracking-wide);color:var(--text-faint)}
.metric-lines__axis span:nth-child(2){text-align:center;color:var(--text-muted)}
.metric-lines__t{margin:0;font-size:var(--size-sm);line-height:var(--leading-normal);color:var(--text-body)}
@media (max-width:860px){
  .metric-lines li{grid-template-columns:1fr;gap:var(--space-3)}
  .metric-lines__v{font-size:clamp(24px,6vw,32px)}
  .metric-lines__reading{max-width:360px;width:100%}
}

/* --- The route ----------------------------------------------------------
   Twenty years as a line with stations on it, instead of four paragraphs of
   prose. The spine draws left to right; the stations arrive behind it.
   ------------------------------------------------------------------------ */
.route{list-style:none;margin:0;padding:0;position:relative;
  display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-6);width:100%}
.route::before{
  content:"";position:absolute;left:0;right:0;top:5px;height:1px;
  background:var(--border-soft);transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur-deliberate) var(--ease-standard);
}
.route.is-in::before{transform:scaleX(1)}
.route li{display:grid;gap:var(--space-3);align-content:start;padding-right:var(--space-4);
  opacity:0;transform:translateY(10px);
  transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}
.route.is-in li{opacity:1;transform:none}
.route.is-in li:nth-child(1){transition-delay:120ms}
.route.is-in li:nth-child(2){transition-delay:180ms}
.route.is-in li:nth-child(3){transition-delay:240ms}
.route.is-in li:nth-child(4){transition-delay:300ms}
.route.is-in li:nth-child(5){transition-delay:360ms}
.route.is-in li:nth-child(6){transition-delay:420ms}
.route__dot{width:11px;height:11px;border-radius:var(--radius-pill);
  background:var(--ink-4);position:relative;z-index:1}
.route li:last-child .route__dot{background:var(--copper);width:13px;height:13px;margin-top:-1px}
.route__when{margin:0;font:var(--type-mono);letter-spacing:var(--tracking-wide);
  text-transform:uppercase;color:var(--text-muted)}
.route__where{margin:0;font-weight:var(--weight-medium);font-size:var(--size-lg);
  line-height:1.15;letter-spacing:var(--tracking-tight);color:var(--text-strong)}
.route__what{margin:0;font-size:var(--size-sm);line-height:var(--leading-normal);color:var(--text-body)}
.no-js .route li{opacity:1;transform:none}
.no-js .route::before{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){
  .route li{opacity:1;transform:none;transition:none}
  .route::before{transform:scaleX(1);transition:none}
}
@media (max-width:860px){
  .route{grid-template-columns:1fr;gap:var(--space-8);padding-left:var(--space-6)}
  .route::before{left:5px;right:auto;top:0;bottom:0;width:1px;height:auto;
    transform:scaleY(0);transform-origin:top}
  .route.is-in::before{transform:scaleY(1)}
  .route li{padding-right:0;position:relative}
  .route__dot{position:absolute;left:calc(-1 * var(--space-6));top:4px}
}

/* --- The composition -----------------------------------------------------
   Heading.png redrawn as vector in the four brand colours. Three entrances,
   one class apart, all held to the system's timing — 320ms on the standard
   curve, nothing bounces, nothing overshoots.
   ------------------------------------------------------------------------ */
.comp{display:block;width:100%;height:auto;overflow:visible}
.comp__cell{
  transform-box:fill-box;         /* origin per shape, not per SVG */
  transform-origin:50% 50%;
}

/* A · assemble — each cell scales up from its own centre. The calm one. */
.comp--assemble .comp__cell{opacity:0;transform:scale(.42)}
.comp--assemble.is-in .comp__cell{
  opacity:1;transform:none;
  transition:opacity var(--dur-slow) var(--ease-standard) calc(var(--i) * 55ms),
             transform var(--dur-slow) var(--ease-standard) calc(var(--i) * 55ms);
}

/* B · rotate — each cell turns a quarter into place. The mechanical one; it
   makes the grid legible, because you watch the shapes find their cells. */
.comp--rotate .comp__cell{opacity:0;transform:rotate(-90deg) scale(.8)}
.comp--rotate.is-in .comp__cell{
  opacity:1;transform:none;
  transition:opacity var(--dur-base) var(--ease-standard) calc(var(--i) * 45ms),
             transform var(--dur-slow) var(--ease-standard) calc(var(--i) * 45ms);
}

/* C · draw — the arcs draw themselves stroke by stroke, the solids fade under
   them. The technical one, and the closest to how the shapes were made. */
.comp--draw .comp__solid{opacity:0}
.comp--draw.is-in .comp__solid{
  opacity:1;
  transition:opacity var(--dur-slow) var(--ease-standard) calc(var(--i) * 45ms);
}
.comp--draw .comp__arc{stroke-dasharray:1;stroke-dashoffset:1}
.comp--draw.is-in .comp__arc{
  stroke-dashoffset:0;
  transition:stroke-dashoffset var(--dur-deliberate) var(--ease-standard)
             calc((var(--i) * 45ms) + (var(--n) * 60ms));
}

.no-js .comp__cell,.no-js .comp__solid{opacity:1;transform:none}
.no-js .comp__arc{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){
  .comp__cell,.comp__solid{opacity:1;transform:none}
  .comp__arc{stroke-dashoffset:0}
  .comp .comp__cell,.comp .comp__solid,.comp .comp__arc{transition:none}
}

/* --- Pain points ----------------------------------------------------------
   Five named symptoms that resolve into one cause. Deliberately not a numbered
   ledger — there is already one of those directly above, and repeating the
   device would make the second list read as more of the first rather than as
   the diagnosis of it.
   ------------------------------------------------------------------------ */
/* Explicit columns, not auto-fit: there are five of these, and auto-fit lands
   on four at common widths, orphaning the fifth on a row of its own. */
.pains{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:var(--space-8) var(--space-6);
  width:100%;
}
@media (max-width:960px){.pains{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:620px){.pains{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.pains{grid-template-columns:1fr}}
.pains li{padding-top:var(--space-4);border-top:2px solid var(--copper)}
.pains__t{
  margin:0 0 var(--space-2);
  font:var(--weight-medium) clamp(17px,1.5vw,20px)/1.2 var(--font-sans);
  letter-spacing:var(--tracking-tight);color:var(--text-strong);
}
.pains__d{margin:0;font:var(--type-caption);color:var(--text-body)}

.pains__resolve{
  margin:var(--space-10) 0 0;
  font:var(--weight-medium) clamp(19px,2.1vw,26px)/1.3 var(--font-sans);
  letter-spacing:var(--tracking-tight);color:var(--text-strong);
}

/* --- Strategic growth paths ----------------------------------------------
   Portfolio, opened out: four routes, four moves each.
   ------------------------------------------------------------------------ */
/* Explicit again, for the same reason as .pains: auto-fit lands on three and
   orphans the fourth. */
.paths{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--space-8) var(--space-6);
  width:100%;
}
@media (max-width:900px){.paths{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.paths{grid-template-columns:1fr}}
.paths > li{padding-top:var(--space-4);border-top:1px solid var(--border-hairline)}
.paths__k{
  margin:0;
  font:var(--type-mono);letter-spacing:var(--tracking-wide);
  text-transform:uppercase;color:var(--copper-text);
}
.paths__sub{
  margin:var(--space-1) 0 var(--space-4);
  font:var(--weight-medium) clamp(17px,1.5vw,20px)/1.2 var(--font-sans);
  letter-spacing:var(--tracking-tight);color:var(--text-strong);
}
.paths ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.paths ul li{font:var(--type-caption);color:var(--text-body)}

/* The contact sign-off — the one line on the site allowed to be warm. */
.signoff{
  margin:0;max-width:30ch;
  font:var(--weight-regular) clamp(19px,2.3vw,28px)/1.35 var(--font-sans);
  letter-spacing:var(--tracking-tight);color:var(--text-body);
  text-wrap:balance;
}

/* --- The book, as an object ----------------------------------------------
   Six faces on a preserve-3d parent. No WebGL: a book is a box, and keeping it
   in CSS means the cover stays a real <img> at native resolution and the whole
   thing composites on the GPU.

   `--p` is written by components/Book3D.jsx on scroll, 0 to 1. It defaults to 1
   here so that with JavaScript off the book renders resolved and readable
   rather than edge-on.
   ------------------------------------------------------------------------ */
.book3d{
  --p:1;
  --w:clamp(178px,23vw,286px);
  --h:calc(var(--w) * 1.502);      /* the cover is 333x500 */
  --t:calc(var(--w) * 0.108);      /* board to board */
  /* Sampled off the cover artwork: #0A67A2, which is the brand blue to within
     a point. The boards are the cover stock continuing round the object. */
  --board:var(--blue);
  --board-dark:var(--blue-deep);
  --paper:#EFEDE6;
  display:block;text-decoration:none;
  width:var(--w);
  /* The stage box is the book's flat height; once it is turned and lifted it
     reaches past that, so the title underneath needs clearance the flat cover
     never did. */
  margin-bottom:calc(var(--w) * 0.16);
}

.book3d__stage{
  position:relative;
  width:var(--w);height:var(--h);
  perspective:1500px;perspective-origin:50% 42%;
  /* The one parallax move: the book lags the page slightly on the way in. */
  transform:translateY(calc((1 - var(--p)) * 22px));
}

.book3d__body{
  position:absolute;inset:0;
  transform-style:preserve-3d;
  will-change:transform;
  /* Turns from a three-quarter view, spine toward the reader, to nearly
     face-on. It arrives; it does not spin.

     30deg, not the 44 this started at: past about 35 the cover type
     foreshortens hard and it stops reading as a book on a table and starts
     reading as a stock 3D-mockup template. Negative rotateX so the reader
     looks very slightly down on it, which is how a book on a desk sits. */
  transform:
    rotateX(calc(-6deg + var(--p) * 4deg))
    rotateY(calc(30deg - var(--p) * 26deg));
}

.book3d__face{
  position:absolute;left:50%;top:50%;
  backface-visibility:hidden;
  background:var(--board);
}

.book3d__front,.book3d__back{width:var(--w);height:var(--h)}
.book3d__spine,.book3d__edge{width:var(--t);height:var(--h)}
.book3d__head,.book3d__tail{width:var(--w);height:var(--t)}

.book3d__front {transform:translate(-50%,-50%) translateZ(calc(var(--t) / 2))}
.book3d__back  {transform:translate(-50%,-50%) rotateY(180deg) translateZ(calc(var(--t) / 2));
                background:var(--board-dark)}
.book3d__spine {transform:translate(-50%,-50%) rotateY(-90deg) translateZ(calc(var(--w) / 2))}
.book3d__edge  {transform:translate(-50%,-50%) rotateY(90deg) translateZ(calc(var(--w) / 2))}
.book3d__head  {transform:translate(-50%,-50%) rotateX(90deg) translateZ(calc(var(--h) / 2))}
.book3d__tail  {transform:translate(-50%,-50%) rotateX(-90deg) translateZ(calc(var(--h) / 2))}

.book3d__front picture,.book3d__front img{display:block;width:100%;height:100%}
.book3d__front img{object-fit:cover}

/* Lighting, faked. There is no light source in CSS 3D, so each face carries the
   gradient it would have under one: key light from the upper left, the cover
   catching a sheen, the spine falling away into shadow. Without this the faces
   read as flat coloured rectangles and the whole thing looks cheap. */
.book3d__front::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(102deg,
    rgba(255,255,255,.20) 0%,
    rgba(255,255,255,.05) 26%,
    rgba(0,0,0,0) 55%,
    rgba(0,0,0,.16) 100%);
}
/* The spine is the same stock as the cover, in shadow — not a different, paler
   blue with a highlight down the middle, which is what makes CSS boxes look
   like plastic rather than board. */
.book3d__spine{
  background:var(--board);
  box-shadow:inset 0 0 0 100px rgba(0,0,0,.22);
}
/* The hinge: the shallow groove where the cover meets the spine. */
.book3d__front::before{
  content:"";position:absolute;top:0;bottom:0;left:0;width:5px;
  background:linear-gradient(90deg, rgba(0,0,0,.28), rgba(0,0,0,0));
}

/* Paper. Fine striping across the thickness so the block reads as leaves
   rather than a solid slab, with the outer leaves catching more light. */
.book3d__edge,.book3d__head,.book3d__tail{
  background:
    repeating-linear-gradient(90deg,
      rgba(0,0,0,.10) 0 1px, rgba(0,0,0,0) 1px 3px),
    linear-gradient(90deg, #D9D5C8, var(--paper) 30%, var(--paper) 70%, #CFCABA);
}
.book3d__head,.book3d__tail{
  background:
    repeating-linear-gradient(0deg,
      rgba(0,0,0,.10) 0 1px, rgba(0,0,0,0) 1px 3px),
    linear-gradient(0deg, #D9D5C8, var(--paper) 40%, #CFCABA);
}
.book3d__tail{filter:brightness(.9)}

/* Contact shadow. Tightens and darkens as the book turns to face the reader,
   which is what sells it as sitting on a surface rather than floating. */
.book3d__shadow{
  position:absolute;left:50%;bottom:-5%;
  width:calc(var(--w) * 0.96);height:calc(var(--w) * 0.20);
  transform:translateX(-50%) scaleX(calc(1.06 - var(--p) * 0.16));
  background:radial-gradient(50% 50% at 50% 50%,
    rgba(20,26,30,.34), rgba(20,26,30,0) 72%);
  filter:blur(9px);
  opacity:calc(.5 + var(--p) * .35);
}

.book3d:hover .book3d__body{opacity:1}
.book3d:focus-visible{outline:2px solid var(--blue);outline-offset:8px;border-radius:2px}

@media (prefers-reduced-motion:reduce){
  .book3d__stage{transform:none}
  .book3d__body{transform:rotateY(4deg)}
}

/* --- The convergence band ------------------------------------------------
   The mark, at page scale, doing the one thing it means. A rule runs the width
   of the page; the discs arrive along it from opposite ends; the overlap only
   exists once they have met. Same geometry as the header lockup, 2x.
   ------------------------------------------------------------------------ */
.mband{
  position:relative;display:block;width:100%;
  height:clamp(64px,12vw,158px);
  border-bottom:1px solid var(--border-hairline);
  overflow:hidden;
}
.mband__svg{position:relative;display:block;width:100%;height:100%}

/* The rule, drawn outward from the meeting point. */
.mband__rule{
  position:absolute;left:0;right:0;top:50%;height:1px;
  background:var(--border-hairline);
  transform:scaleX(0);transform-origin:50% 50%;
}

/* Travel is expressed in the group's own units, so it stays proportional at
   every band size: 1 unit here = 2 units of the 1200-wide viewBox. */
.mband__a{transform:translateX(-282px)}
.mband__b{transform:translateX(278px)}
.mband__lens{opacity:0}

.mband.is-in .mband__rule{transform:none;
  transition:transform 1100ms var(--ease-standard)}
.mband.is-in .mband__a,
.mband.is-in .mband__b{transform:none;
  transition:transform 900ms var(--ease-standard) 160ms}
.mband.is-in .mband__lens{opacity:1;
  transition:opacity var(--dur-base) var(--ease-standard) 940ms}

.no-js .mband__a,.no-js .mband__b{transform:none}
.no-js .mband__rule{transform:none}
.no-js .mband__lens{opacity:1}
@media (prefers-reduced-motion:reduce){
  .mband__a,.mband__b,.mband__rule{transform:none;transition:none}
  .mband__lens{opacity:1;transition:none}
}

/* The banner: a full-bleed rule of shape directly under the header. */
.comp-banner{
  display:block;width:100%;
  height:clamp(72px,8vw,108px);      /* shorter: it is a grace note, not a hero */
  border-bottom:1px solid var(--border-hairline);
  overflow:hidden;
}
.comp-banner .comp{height:100%;width:100%}

/* The block: a quiet square of shape beside a line of type. */
.comp-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,var(--comp-w,420px));
  gap:clamp(32px,6vw,96px);align-items:center;width:100%}
@media (max-width:860px){
  .comp-band{grid-template-columns:1fr;gap:var(--space-10)}
  .comp-band .comp{max-width:320px}
}

/* --- Fit / not a fit ----------------------------------------------------- */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);width:100%}
@media (max-width:760px){.fit{grid-template-columns:1fr;gap:var(--space-10)}}
.fit__col h3{margin:0 0 var(--space-5);font:var(--weight-medium) var(--size-lg)/1.2 var(--font-sans);
  letter-spacing:var(--tracking-tight);color:var(--text-strong)}
.fit__col ul{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--border-hairline)}
.fit__col li{padding-block:var(--space-4);border-bottom:1px solid var(--border-hairline);
  font-size:var(--size-md);line-height:var(--leading-normal);color:var(--text-strong)}
.fit__col--no h3{color:var(--text-muted)}
.fit__col--no li{color:var(--text-muted)}

/* --- The hero arrives ----------------------------------------------------
   The one thing that moves on load: the same fade and 12px rise the rest of
   the page uses on scroll. Anything more at first paint is a magic trick.
   ------------------------------------------------------------------------ */
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.hero .sect__label,.hero .hook,.hero .btn,.hero .portrait{
  animation:rise var(--dur-base) var(--ease-standard) both;
}
.hero .hook{animation-delay:60ms}
.hero .btn{animation-delay:130ms}
.hero .portrait{animation-delay:100ms}
@media (prefers-reduced-motion:reduce){
  .hero .sect__label,.hero .hook,.hero .btn,.hero .portrait{animation:none}
}

/* --- Motion: fade + 12px rise, 220ms. Nothing else moves. ---------------- */
.reveal{opacity:0;transform:translateY(12px);transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}
.no-js .reveal{opacity:1;transform:none}

/* --- Responsive ---------------------------------------------------------- */
@media (max-width:900px){
  .hero__grid,.grid--split,.grid--lead{grid-template-columns:1fr;gap:var(--space-12)}
  .grid--3{grid-template-columns:1fr}
  .hook,.display,.title{max-width:100%}
}

@media (max-width:760px){
  /* The dropdown is opaque, not translucent: the header can sit over content,
     a menu you are reading cannot. */
  .site-nav{
    display:none;
    position:absolute;top:72px;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    padding:var(--space-2) var(--edge) var(--space-6);
    background:var(--surface-page);
    border-bottom:1px solid var(--border-hairline);
  }
  /* An element at display:none historically couldn't transition in at all.
     @starting-style plus allow-discrete fixes that — and where it isn't
     supported the menu simply appears instantly, which is a fine floor. */
  .site-nav.is-open{
    display:flex;
    opacity:1;transform:translateY(0);
    transition:opacity var(--dur-fast) var(--ease-standard),
               transform var(--dur-fast) var(--ease-standard),
               display var(--dur-fast) allow-discrete;
  }
  @starting-style{
    .site-nav.is-open{opacity:0;transform:translateY(-6px)}
  }
  @media (prefers-reduced-motion:reduce){
    .site-nav.is-open{transition:none}
  }
  .site-nav a{
    padding-block:var(--space-4);font-size:var(--size-lg);
    border-bottom:1px solid var(--border-hairline);
  }
  .site-nav a:hover,.site-nav a[aria-current="page"]{border-bottom-color:var(--border-hairline)}
  .site-nav .nav-cta{
    display:inline-flex;margin-top:var(--space-6);
    font-size:var(--size-sm);border-bottom:none;color:#fff;
  }
  .site-nav .nav-cta:hover{color:#fff;border-bottom:none}
  .nav-toggle{display:inline-flex}
  .site-header__cta > .btn{display:none}

  .grid--2{grid-template-columns:1fr}
  .portrait-grid{grid-template-columns:1fr;justify-items:start;gap:var(--space-10)}
  .portrait{justify-self:start}
  .portrait img{width:min(68vw,300px)}
  .steps--row{grid-template-columns:repeat(2,1fr);gap:var(--space-10) var(--space-6)}
  .facts > div{grid-template-columns:1fr;gap:var(--space-2)}
  .ledger li{flex-direction:column;gap:var(--space-2)}
  .channel{padding:var(--space-5) var(--space-6)}
  .site-footer__cols{gap:var(--space-10)}
  .btn-row .btn{flex:1 1 auto}
}

@media (max-width:420px){
  .site-header .wordmark{font-size:19px}
}

/* ==========================================================================
   Creative directions
   Three code-only brand worlds for alignment before production asset spend.
   ========================================================================== */
.directions{background:var(--ink);color:var(--paper);overflow:clip}
.directions-nav{
  position:fixed;z-index:30;top:0;left:0;right:0;height:54px;
  display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,3vw,48px);
  color:var(--paper);background:rgba(38,50,56,.88);border-bottom:1px solid rgba(252,252,250,.14);
  backdrop-filter:blur(14px);font:var(--type-mono);text-transform:uppercase;letter-spacing:.07em;
}
.directions-nav div{display:flex;gap:clamp(12px,2vw,30px)}
.directions-nav a{color:inherit;text-decoration:none}.directions-nav a:hover{color:var(--ember-2)}
.direction-stage{--mx:0;--my:0;position:relative;min-height:100svh;padding:clamp(82px,10vh,118px) clamp(20px,5vw,76px) clamp(34px,6vh,70px);isolation:isolate;overflow:hidden}
.direction-meta{position:absolute;z-index:8;top:74px;left:clamp(20px,5vw,76px);right:clamp(20px,5vw,76px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;font:var(--type-mono);text-transform:uppercase;letter-spacing:.08em;color:currentColor;opacity:.72}
.direction-meta strong{text-align:center;font:inherit;color:currentColor}.direction-meta span:last-child{text-align:right}
.direction-kicker{margin:0;font:var(--type-mono);text-transform:uppercase;letter-spacing:.1em}
.directions-cta{display:inline-flex;align-items:center;gap:13px;width:max-content;padding:14px 20px;border:1px solid currentColor;color:inherit;text-decoration:none;font-weight:500}
.directions-cta:hover{background:currentColor;color:var(--ink)}

/* 01: The operating core -------------------------------------------------- */
.direction-stage--core{display:grid;align-items:center;background:radial-gradient(circle at 72% 48%,rgba(10,103,161,.26),transparent 34%),var(--ink)}
.direction-stage--core:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.8%,rgba(252,252,250,.055) 50%,transparent 50.2%),linear-gradient(rgba(252,252,250,.035) 1px,transparent 1px);background-size:100% 100%,100% 12.5%;pointer-events:none}
.core-copy{position:relative;z-index:5;width:min(630px,48vw);display:flex;flex-direction:column;align-items:flex-start;gap:clamp(18px,3vh,34px)}
.core-copy h1{margin:0;color:var(--paper);font-size:clamp(58px,7.4vw,124px);font-weight:400;line-height:.87;letter-spacing:-.06em}
.core-copy h1 em{color:var(--copper);font-style:normal}
.core-copy .direction-intro{max-width:48ch;margin:0;color:rgba(252,252,250,.68);font-size:clamp(16px,1.3vw,21px);line-height:1.5}
.core-world{position:absolute;z-index:3;top:50%;right:clamp(-90px,2vw,30px);width:min(53vw,740px);aspect-ratio:1;transform:translateY(-47%) perspective(1100px) rotateX(calc(var(--my) * -8deg)) rotateY(calc(var(--mx) * 11deg));transform-style:preserve-3d;transition:transform 650ms cubic-bezier(.16,1,.3,1)}
.core-world__halo{position:absolute;inset:18%;border-radius:50%;background:radial-gradient(circle at 42% 38%,rgba(252,252,250,.16),rgba(10,103,161,.2) 24%,rgba(38,50,56,.96) 54%,transparent 55%);box-shadow:0 0 120px rgba(10,103,161,.32),inset -30px -30px 80px rgba(0,0,0,.32)}
.core-world__orbit{position:absolute;inset:10%;border:1px solid rgba(252,252,250,.22);border-radius:50%;transform:rotateX(67deg) rotateZ(18deg)}
.core-world__orbit--two{inset:3%;border-color:rgba(200,118,58,.48);transform:rotateY(72deg) rotateZ(-18deg)}
.core-world__centre{position:absolute;top:50%;left:50%;display:flex;align-items:flex-start;justify-content:center;width:156px;height:156px;padding-top:38px;transform:translate(-50%,-50%) translateZ(60px);border:2px solid var(--copper);border-radius:50%;color:var(--paper);background:var(--ink);box-shadow:0 0 0 18px rgba(200,118,58,.08),0 30px 80px rgba(0,0,0,.4)}
.core-world__centre span{font-size:62px;font-weight:500;line-height:1}.core-world__centre small{margin-top:8px;color:var(--copper);font:var(--type-mono)}
.core-module{position:absolute;width:184px;padding:17px 18px;border:1px solid rgba(252,252,250,.26);background:rgba(38,50,56,.92);box-shadow:0 28px 70px rgba(0,0,0,.28);transform-style:preserve-3d}
.core-module span,.core-module small{display:block;font:var(--type-mono);color:rgba(252,252,250,.58)}.core-module strong{display:block;margin:28px 0 5px;color:var(--paper);font-size:20px;font-weight:500}
.core-module--1{top:5%;left:38%;transform:translate3d(calc(var(--mx) * 18px),calc(var(--my) * 12px),80px) rotate(-4deg)}
.core-module--2{top:46%;right:0;transform:translate3d(calc(var(--mx) * 28px),calc(var(--my) * 20px),110px) rotate(5deg)}
.core-module--3{bottom:3%;left:22%;transform:translate3d(calc(var(--mx) * 22px),calc(var(--my) * 16px),90px) rotate(-7deg)}
.direction-note{position:absolute;right:clamp(20px,5vw,76px);bottom:28px;margin:0;color:rgba(252,252,250,.48);font:var(--type-mono)}

/* 02: The service theatre ------------------------------------------------ */
.direction-stage--theatre{background:var(--blue);color:var(--paper)}
.direction-stage--theatre:before{content:"";position:absolute;inset:0 50% 0 0;background:var(--paper);clip-path:polygon(0 0,100% 0,78% 100%,0 100%);z-index:-1}
.theatre-title{position:absolute;z-index:5;left:clamp(20px,5vw,76px);top:18%;color:var(--ink)}
.theatre-title h2{margin:18px 0 0;font-size:clamp(58px,8vw,132px);font-weight:500;line-height:.84;letter-spacing:-.065em}.theatre-title h2 span{color:var(--blue)}
.theatre-portrait{position:absolute;z-index:4;left:43%;bottom:0;width:min(34vw,470px);height:79%;display:flex;align-items:flex-end;justify-content:center;transform:translateX(calc(var(--mx) * -18px));transition:transform 650ms cubic-bezier(.16,1,.3,1)}
.theatre-portrait picture,.theatre-portrait img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain;object-position:bottom}
.theatre-spot{position:absolute;z-index:1;left:50%;bottom:3%;width:115%;aspect-ratio:1;border-radius:50%;transform:translateX(-50%);background:var(--copper);opacity:.9}
.theatre-tickets{position:absolute;z-index:6;right:clamp(20px,4vw,62px);top:22%;width:min(30vw,410px);display:grid;gap:10px;perspective:800px}
.theatre-ticket{display:grid;grid-template-columns:42px 1fr;align-items:center;padding:18px 0;border-top:1px solid rgba(252,252,250,.45);transform:translateX(calc(var(--mx) * var(--shift))) rotateY(calc(var(--mx) * -5deg));transition:transform 500ms cubic-bezier(.16,1,.3,1)}
.theatre-ticket--1{--shift:14px}.theatre-ticket--2{--shift:25px}.theatre-ticket--3{--shift:36px}
.theatre-ticket span{grid-row:1/3;font:var(--type-mono);color:var(--ember-2)}.theatre-ticket strong{font-size:clamp(22px,2.4vw,38px);font-weight:400}.theatre-ticket small{color:rgba(252,252,250,.68);font:var(--type-mono)}
.theatre-proof{position:absolute;z-index:7;right:clamp(20px,4vw,62px);bottom:8%;width:min(42vw,570px);display:flex;align-items:end;justify-content:space-between;gap:24px}
.theatre-proof>div{display:grid}.theatre-proof strong{font-size:clamp(36px,4vw,64px);font-weight:500;line-height:1}.theatre-proof span{font:var(--type-mono);color:rgba(252,252,250,.68)}

/* 03: The evidence room -------------------------------------------------- */
.direction-stage--evidence{background:var(--paper);color:var(--ink)}
.evidence-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(38,50,56,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(38,50,56,.07) 1px,transparent 1px);background-size:7.5vw 7.5vw;mask-image:linear-gradient(to bottom,black,transparent 82%)}
.evidence-heading{position:absolute;z-index:3;left:clamp(20px,5vw,76px);top:16%}.evidence-heading h2{margin:18px 0 0;font-size:clamp(46px,5.6vw,92px);font-weight:500;line-height:.92;letter-spacing:-.055em}
.evidence-dial{position:absolute;z-index:4;left:clamp(30px,7vw,110px);bottom:7%;width:min(29vw,390px);aspect-ratio:1;border:1px solid var(--ink);border-radius:50%;transform:rotate(calc(var(--mx) * 3deg));transition:transform 500ms cubic-bezier(.16,1,.3,1)}
.evidence-dial__ticks{position:absolute;inset:7%;border-radius:50%;background:repeating-conic-gradient(from -90deg,var(--ink) 0 .7deg,transparent .7deg 9deg);mask:radial-gradient(transparent 64%,#000 65%)}
.evidence-dial__hand{position:absolute;left:50%;top:50%;width:39%;height:2px;background:var(--copper);transform-origin:left;transform:rotate(calc(-36deg + var(--mx) * 11deg))}
.evidence-dial__hand:after{content:"";position:absolute;right:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--copper)}
.evidence-dial__readout{position:absolute;inset:28%;display:grid;place-content:center;text-align:center;border-radius:50%;background:var(--ink);color:var(--paper)}
.evidence-dial__readout strong{font-size:clamp(34px,4vw,62px);font-weight:500;line-height:1}.evidence-dial__readout span{font:var(--type-mono);color:var(--ember-2)}
.evidence-metrics{position:absolute;z-index:3;top:17%;right:clamp(20px,5vw,76px);width:min(45vw,680px);list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.evidence-metrics li{display:grid;grid-template-columns:1fr auto;gap:7px 24px;padding:13px 0;border-bottom:1px solid rgba(38,50,56,.3)}
.evidence-metrics span{font:var(--type-mono);text-transform:uppercase}.evidence-metrics strong{font-size:clamp(19px,2vw,31px);font-weight:500;color:var(--blue)}
.evidence-metrics i{grid-column:1/-1;display:block;height:3px;background:rgba(38,50,56,.12);overflow:hidden}.evidence-metrics b{display:block;width:calc(32% + var(--i) * 8%);height:100%;background:var(--blue);transform:translateX(calc(var(--mx) * 12px));transition:transform 450ms cubic-bezier(.16,1,.3,1)}
.evidence-action{position:absolute;z-index:5;right:clamp(20px,5vw,76px);bottom:7%;width:min(45vw,680px);display:flex;align-items:end;justify-content:space-between;gap:30px}.evidence-action p{max-width:31ch;margin:0;font-size:clamp(18px,2vw,28px);line-height:1.25}

.directions-close{min-height:72svh;display:grid;place-content:center;justify-items:center;gap:25px;padding:80px 24px;text-align:center;background:var(--copper);color:var(--ink)}
.directions-close p{margin:0;font:var(--type-mono);text-transform:uppercase;letter-spacing:.1em}.directions-close h2{max-width:820px;margin:0;font-size:clamp(46px,7vw,100px);font-weight:500;line-height:.9;letter-spacing:-.055em}.directions-close div{display:flex;gap:24px}.directions-close a{color:inherit;text-underline-offset:5px}

@media (max-width:820px){
  .direction-meta{grid-template-columns:1fr auto}.direction-meta span:last-child{display:none}
  .direction-stage{min-height:860px;padding-inline:20px}.core-copy{width:100%;align-self:start;margin-top:90px}.core-copy h1{font-size:clamp(52px,15vw,88px)}
  .core-world{width:610px;max-width:none;top:auto;right:-245px;bottom:-100px;transform:perspective(1100px) rotateX(calc(var(--my) * -8deg)) rotateY(calc(var(--mx) * 11deg))}.core-module{width:150px}.direction-note{display:none}
  .direction-stage--theatre:before{inset:0 0 43% 0;clip-path:polygon(0 0,100% 0,100% 78%,0 100%)}.theatre-title{top:14%;right:20px}.theatre-title h2{font-size:clamp(54px,14vw,94px)}
  .theatre-portrait{left:-1%;width:55vw;height:50%}.theatre-tickets{right:20px;top:auto;bottom:22%;width:49vw}.theatre-proof{left:20px;right:20px;bottom:4%;width:auto}.theatre-proof .directions-cta{display:none}
  .direction-stage--evidence{min-height:1040px}.evidence-heading{top:13%;right:20px}.evidence-heading h2{font-size:clamp(44px,11vw,78px)}.evidence-metrics{top:35%;left:20px;right:20px;width:auto}.evidence-dial{width:310px;left:-65px;bottom:4%}.evidence-action{right:20px;bottom:7%;width:50%;display:grid}.evidence-action .directions-cta{font-size:14px}
}
@media (max-width:520px){
  .directions-nav>span{display:none}.directions-nav{justify-content:center}.directions-nav div{width:100%;justify-content:space-between}
  .direction-meta{top:70px}.core-copy{margin-top:80px}.core-copy .direction-intro{max-width:28ch}.core-world{width:500px;right:-245px;bottom:-25px}.core-world__centre{width:126px;height:126px;padding-top:29px}.core-world__centre span{font-size:51px}.core-module{width:132px;padding:12px}.core-module strong{margin-top:17px;font-size:16px}.core-module small{font-size:9px}
  .direction-stage--theatre{min-height:900px}.theatre-portrait{left:-15%;width:76vw}.theatre-tickets{width:56vw}.theatre-ticket{grid-template-columns:28px 1fr;padding:13px 0}.theatre-proof{gap:16px}.theatre-proof strong{font-size:34px}
  .direction-stage--evidence{min-height:1080px}.evidence-heading{top:14%}.evidence-metrics{top:36%}.evidence-dial{width:250px;left:-82px}.evidence-action{width:59%;bottom:5%}
  .directions-close div{flex-direction:column;gap:10px}
}
@media (prefers-reduced-motion:reduce){
  .core-world,.core-module,.theatre-portrait,.theatre-ticket,.evidence-dial,.evidence-dial__hand,.evidence-metrics b{transition:none;transform:none}
}

/* ==========================================================================
   Concept 01 — The Hidden 20%
   Apple-like object choreography, Anthropic-like warmth, Bureau logic.
   ========================================================================== */
.concept-page{background:var(--paper);color:var(--ink);overflow:clip}
.concept-header{position:absolute;z-index:30;top:0;left:0;right:0;height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid var(--border-hairline);font:var(--type-mono);text-transform:uppercase;letter-spacing:.08em}
.concept-header>a:last-child{justify-self:end;color:inherit;text-decoration:none}.concept-header>span{opacity:.55}
.concept-eyebrow{margin:0;font:var(--type-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--blue)}
.concept-cta{display:inline-flex;align-items:center;gap:14px;width:max-content;padding:14px 20px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;font-weight:500;transition:color 180ms ease-out,background 180ms ease-out}
.concept-cta:hover{color:var(--paper);background:var(--ink)}
.concept-cta--inverse{border-color:var(--paper);color:var(--paper)}.concept-cta--inverse:hover{color:var(--ink);background:var(--paper)}

.concept-hero{--progress:0;--open:0;--resolve:0;--mx:0;--my:0;height:330vh;background:var(--paper)}
.concept-hero__sticky{position:sticky;top:0;height:100svh;overflow:hidden;perspective:1500px;background:linear-gradient(rgba(10,103,161,.035) 1px,transparent 1px),var(--paper);background-size:100% 12.5%}
.concept-hero__sticky:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 48%,rgba(10,103,161,.08),transparent 32%);pointer-events:none}
.concept-hero__copy{position:absolute;z-index:8;left:clamp(24px,6vw,92px);top:50%;width:min(46vw,690px);transform:translateY(-50%);transition:opacity 500ms cubic-bezier(.16,1,.3,1),transform 650ms cubic-bezier(.16,1,.3,1)}
.concept-hero__copy h1,.concept-hero__copy h2{margin:21px 0 24px;color:var(--ink);font-size:clamp(62px,7.4vw,126px);font-weight:400;line-height:.86;letter-spacing:-.065em}
.concept-hero__copy h1 span{color:var(--copper)}.concept-hero__copy>p:last-child{max-width:43ch;margin-bottom:0;font-size:clamp(17px,1.35vw,22px);line-height:1.45;color:var(--ink-3)}
.concept-hero__copy--intro{opacity:1}.concept-hero__copy--framework,.concept-hero__copy--resolve{opacity:0;transform:translateY(calc(-50% + 18px));pointer-events:none}
.concept-hero[data-step="1"] .concept-hero__copy--intro,.concept-hero[data-step="2"] .concept-hero__copy--intro{opacity:0;transform:translateY(calc(-50% - 18px));pointer-events:none}
.concept-hero[data-step="1"] .concept-hero__copy--framework{opacity:1;transform:translateY(-50%);pointer-events:auto}
.concept-hero[data-step="2"] .concept-hero__copy--framework{opacity:0;transform:translateY(calc(-50% - 18px));pointer-events:none}
.concept-hero[data-step="2"] .concept-hero__copy--resolve{opacity:1;transform:translateY(-50%);pointer-events:auto}

.concept-object{position:absolute;z-index:4;top:50%;right:clamp(-70px,2vw,30px);width:min(52vw,760px);aspect-ratio:1;transform:translateY(-50%) rotateX(calc(var(--my) * -5deg)) rotateY(calc(var(--mx) * 7deg)) scale(calc(1 - var(--resolve) * .1));transform-style:preserve-3d;transition:transform 300ms cubic-bezier(.16,1,.3,1)}
.concept-object__shadow{position:absolute;left:16%;right:14%;bottom:7%;height:12%;border-radius:50%;background:rgba(38,50,56,.15);filter:blur(26px);transform:scale(calc(1 + var(--open) * .22))}
.concept-object__ring{position:absolute;border-radius:50%;transform-style:preserve-3d}
.concept-object__ring--outer{inset:13%;border:clamp(8px,1.1vw,16px) solid var(--ink);border-right-color:var(--copper);transform:rotate(calc(-24deg + var(--progress) * 100deg)) rotateX(calc(55deg - var(--open) * 17deg));box-shadow:0 45px 65px rgba(38,50,56,.13)}
.concept-object__ring--inner{inset:29%;border:2px solid var(--blue);transform:rotate(calc(30deg - var(--progress) * 80deg)) rotateY(calc(var(--open) * 48deg))}
.concept-object__core{position:absolute;top:50%;left:50%;display:flex;align-items:flex-start;justify-content:center;width:clamp(126px,12vw,176px);aspect-ratio:1;padding-top:clamp(29px,3vw,45px);border-radius:50%;transform:translate(-50%,-50%) translateZ(55px);background:var(--paper);border:1px solid var(--ink);box-shadow:0 25px 65px rgba(38,50,56,.16)}
.concept-object__core strong{font-size:clamp(50px,5vw,74px);font-weight:500;line-height:1}.concept-object__core span{margin-top:7px;color:var(--copper);font:var(--type-mono)}
.concept-orbit{position:absolute;z-index:5;width:clamp(150px,14vw,206px);padding:17px 18px;border:1px solid var(--ink);background:var(--paper);box-shadow:0 22px 45px rgba(38,50,56,.09);opacity:calc(.08 + var(--open) * .92);transform-style:preserve-3d}
.concept-orbit span,.concept-orbit small{display:block;font:var(--type-mono);color:var(--ink-4)}.concept-orbit strong{display:block;margin:23px 0 4px;font-size:clamp(17px,1.45vw,22px);font-weight:500}
.concept-orbit--1{top:calc(50% - var(--open) * 43%);left:calc(50% - var(--open) * 15%);transform:translate(-50%,-50%) translateZ(calc(var(--open) * 90px)) rotate(calc(var(--open) * -3deg))}
.concept-orbit--2{top:calc(50% + var(--open) * 4%);left:calc(50% + var(--open) * 44%);transform:translate(-50%,-50%) translateZ(calc(var(--open) * 120px)) rotate(calc(var(--open) * 4deg))}
.concept-orbit--3{top:calc(50% + var(--open) * 39%);left:calc(50% - var(--open) * 20%);transform:translate(-50%,-50%) translateZ(calc(var(--open) * 80px)) rotate(calc(var(--open) * -5deg))}
.concept-progress{position:absolute;z-index:9;left:clamp(24px,6vw,92px);right:clamp(24px,6vw,92px);bottom:30px;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;font:var(--type-mono);color:var(--ink-4)}
.concept-progress i{height:1px;background:var(--border-soft)}.concept-progress b{display:block;width:calc(var(--progress) * 100%);height:1px;background:var(--ink)}
.concept-scroll{position:absolute;z-index:9;right:clamp(24px,6vw,92px);top:92px;margin:0;font:var(--type-mono);color:var(--ink-4)}

.concept-practice{padding:clamp(90px,14vw,210px) clamp(24px,6vw,92px);background:var(--paper)}
.concept-practice__lead{display:grid;grid-template-columns:1.35fr .65fr;align-items:end;gap:8vw;margin-top:clamp(55px,8vw,120px);padding-bottom:clamp(60px,8vw,110px)}
.concept-practice__lead h2{margin:0;font-size:clamp(64px,9vw,150px);font-weight:400;line-height:.82;letter-spacing:-.07em}.concept-practice__lead p{max-width:40ch;margin:0 0 10px;font-size:clamp(18px,1.7vw,26px);line-height:1.35}
.concept-capabilities{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.concept-capabilities>li{display:grid;grid-template-columns:70px minmax(220px,.75fr) 1fr;gap:clamp(18px,4vw,70px);align-items:start;padding:30px 0;border-bottom:1px solid var(--border-soft)}
.concept-capabilities>li>span{font:var(--type-mono);color:var(--copper)}.concept-capabilities h3{margin:0;font-size:clamp(32px,4.2vw,66px);font-weight:400;letter-spacing:-.045em}.concept-capabilities p{margin:4px 0 0;color:var(--ink-4);font:var(--type-mono)}
.concept-capabilities ul{display:flex;flex-wrap:wrap;gap:7px 20px;list-style:none;margin:10px 0 0;padding:0}.concept-capabilities ul li{font-size:clamp(15px,1.3vw,20px)}.concept-capabilities ul li:not(:last-child):after{content:"·";margin-left:20px;color:var(--copper)}

.concept-convergence{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6vw;padding:clamp(90px,10vw,150px) clamp(24px,6vw,92px);background:var(--blue);color:var(--paper)}
.concept-convergence .concept-eyebrow{color:var(--ember-2)}.concept-convergence__copy h2{margin:24px 0 30px;font-size:clamp(52px,6.5vw,108px);font-weight:400;line-height:.88;letter-spacing:-.06em}.concept-convergence__copy h2 span{color:var(--ember-2)}.concept-convergence__copy>p:last-child{max-width:34ch;color:rgba(252,252,250,.72);font-size:clamp(17px,1.5vw,23px);line-height:1.4}
.concept-convergence__diagram{position:relative;min-height:min(45vw,650px)}
.concept-disc{position:absolute;top:50%;width:62%;aspect-ratio:1;border:1px solid rgba(252,252,250,.8);border-radius:50%;transform:translateY(-50%);text-align:center;font:var(--type-mono)}
.concept-disc span{position:absolute;top:16%;left:50%;width:max-content;transform:translateX(-50%)}
.concept-disc--a{left:2%;background:rgba(252,252,250,.08)}.concept-disc--b{right:2%;border-color:var(--ember-2);background:rgba(200,118,58,.16)}.concept-convergence__diagram>strong{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;font-size:clamp(18px,2vw,30px);font-weight:500;line-height:1.15}

.concept-evidence{padding:clamp(90px,13vw,190px) clamp(24px,6vw,92px);background:var(--bone-3)}
.concept-evidence__portrait{display:grid;grid-template-columns:minmax(280px,.72fr) 1.28fr;gap:clamp(35px,7vw,110px);align-items:end;margin-top:clamp(50px,7vw,100px)}
.concept-evidence__image{position:relative;aspect-ratio:4/5;background:var(--blue);overflow:hidden}.concept-evidence__image picture,.concept-evidence__image img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.concept-evidence__image span{position:absolute;left:20px;bottom:18px;color:var(--paper);font:var(--type-mono)}
.concept-evidence blockquote{max-width:850px;margin:0 0 -.1em;font-size:clamp(54px,7.2vw,118px);font-weight:400;line-height:.88;letter-spacing:-.065em;color:var(--ink)}
.concept-results{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin:clamp(65px,9vw,130px) 0 0;padding:0;border-top:1px solid var(--ink)}
.concept-results li{min-height:220px;padding:24px 22px 20px 0;border-bottom:1px solid var(--ink)}.concept-results li:not(:last-child){border-right:1px solid var(--border-soft)}.concept-results li+li{padding-left:22px}
.concept-results strong{font-size:clamp(42px,5vw,80px);font-weight:400;letter-spacing:-.05em;color:var(--blue)}.concept-results p{max-width:21ch;margin:24px 0 16px;font-size:clamp(16px,1.4vw,21px);line-height:1.25}.concept-results span{font:var(--type-mono);color:var(--ink-4);text-transform:uppercase}

.concept-close{min-height:83svh;display:grid;grid-template-columns:1fr auto;align-items:end;gap:50px;padding:clamp(90px,12vw,170px) clamp(24px,6vw,92px) clamp(50px,6vw,86px);background:var(--ink);color:var(--paper)}
.concept-close .concept-eyebrow{color:var(--ember-2)}.concept-close h2{max-width:980px;margin:25px 0 0;font-size:clamp(58px,8vw,132px);font-weight:400;line-height:.86;letter-spacing:-.065em}.concept-close>span{grid-column:1/-1;border-top:1px solid var(--border-inverse);padding-top:18px;font:var(--type-mono);color:rgba(252,252,250,.65)}

@media (max-width:850px){
  .concept-header{grid-template-columns:1fr auto}.concept-header>span{display:none}
  .concept-hero{height:300vh}.concept-hero__copy{top:23%;left:24px;right:24px;width:auto;transform:none}.concept-hero__copy h1,.concept-hero__copy h2{font-size:clamp(55px,14.5vw,92px)}
  .concept-hero__copy--framework,.concept-hero__copy--resolve{transform:translateY(18px)}.concept-hero[data-step="0"] .concept-hero__copy--intro{transform:none}.concept-hero[data-step="1"] .concept-hero__copy--intro,.concept-hero[data-step="2"] .concept-hero__copy--intro,.concept-hero[data-step="2"] .concept-hero__copy--framework{transform:translateY(-18px)}.concept-hero[data-step="1"] .concept-hero__copy--framework,.concept-hero[data-step="2"] .concept-hero__copy--resolve{transform:none}
  .concept-object{top:auto;right:-80px;bottom:7%;width:min(92vw,650px);transform:rotateX(calc(var(--my) * -5deg)) rotateY(calc(var(--mx) * 7deg)) scale(calc(1 - var(--resolve) * .1))}.concept-scroll{display:none}
  .concept-practice__lead{grid-template-columns:1fr;gap:40px}.concept-capabilities>li{grid-template-columns:44px 1fr}.concept-capabilities>li>ul{grid-column:2}.concept-capabilities ul{display:grid;gap:4px}.concept-capabilities ul li:not(:last-child):after{display:none}
  .concept-convergence{grid-template-columns:1fr;min-height:auto}.concept-convergence__diagram{min-height:75vw}.concept-evidence__portrait{grid-template-columns:1fr}.concept-evidence__image{width:min(72vw,480px)}.concept-results{grid-template-columns:repeat(2,1fr)}.concept-results li:nth-child(2){border-right:0}
  .concept-close{grid-template-columns:1fr;align-content:end}.concept-close .concept-cta{margin-top:20px}
}
@media (max-width:520px){
  .concept-header>a:last-child{display:none}.concept-header{grid-template-columns:1fr}.concept-hero__copy{top:18%}.concept-object{right:-90px;bottom:8%;width:115vw}.concept-orbit{width:128px;padding:11px}.concept-orbit strong{margin-top:12px;font-size:14px}.concept-orbit small{font-size:8px}.concept-progress{bottom:18px}
  .concept-orbit--2{left:calc(50% + var(--open) * 30%)}
  .concept-capabilities>li{padding:23px 0}.concept-results{grid-template-columns:1fr}.concept-results li{min-height:165px;border-right:0!important}.concept-results li+li{padding-left:0}.concept-close h2{font-size:clamp(52px,15vw,84px)}
}
@media (prefers-reduced-motion:reduce){
  .concept-hero{height:100svh}.concept-hero__copy--intro{opacity:1!important;transform:none!important}.concept-hero__copy--framework,.concept-hero__copy--resolve{display:none}.concept-object{transform:translateY(-50%)}.concept-orbit{opacity:1}.concept-progress,.concept-scroll{display:none}
}

/* ==========================================================================
   Concept 02 — The operator's table
   A literal hospitality exploded view, kept as clean as a product study.
   ========================================================================== */
.table-concept{background:var(--paper);color:var(--ink);overflow:clip}
.table-concept__header{position:absolute;z-index:30;top:0;left:0;right:0;height:72px;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:0 clamp(20px,4vw,64px);border-bottom:1px solid var(--border-hairline);font:var(--type-mono);text-transform:uppercase;letter-spacing:.08em}
.table-concept__header nav{display:flex;align-items:center;gap:clamp(20px,2.5vw,38px)}
.table-concept__header nav a{color:inherit;text-decoration:none;transition:opacity 140ms var(--ease-standard)}
.table-concept__header nav a:hover{opacity:.58}
.table-concept__header-cta{padding:10px 15px;border:1px solid rgba(38,50,56,.4)}
.operator-eyebrow{margin:0;font:var(--type-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--blue)}
.table-concept__cta{display:inline-flex;align-items:center;gap:14px;width:max-content;padding:14px 20px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;font-weight:500}.table-concept__cta:hover{background:var(--ink);color:var(--paper)}

.operator-film{--progress:0;height:440vh;background:var(--ink)}
.operator-film__sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:var(--bone-3)}
.operator-film__poster,.operator-film__canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.operator-film__poster--start{z-index:1}.operator-film__poster--resolved{z-index:2;opacity:0}.operator-film__canvas{z-index:3;opacity:0;transition:opacity 180ms ease}.operator-film__canvas[data-ready="true"]{opacity:1}
.operator-film__shade{position:absolute;z-index:4;inset:0;background:linear-gradient(90deg,rgba(247,244,237,.98) 0%,rgba(247,244,237,.94) 23%,rgba(247,244,237,.71) 39%,rgba(247,244,237,.2) 57%,rgba(247,244,237,0) 76%);pointer-events:none}
.operator-film__copy{position:absolute;z-index:7;top:50%;left:clamp(24px,6vw,92px);width:min(47vw,720px);opacity:0;transform:translateY(calc(-50% + 18px));pointer-events:none;transition:opacity 360ms cubic-bezier(.16,1,.3,1),transform 520ms cubic-bezier(.16,1,.3,1)}
.operator-film__copy h1,.operator-film__copy h2{margin:22px 0 25px;font-size:clamp(54px,6.35vw,106px);font-weight:400;line-height:.87;letter-spacing:-.065em}.operator-film__copy h1 span,.operator-film__copy h2 span{color:var(--copper)}
.operator-film__copy>p:last-of-type{max-width:39ch;margin:0;font-size:clamp(17px,1.35vw,22px);line-height:1.45;color:var(--ink-3)}
.operator-film__copy .table-concept__cta{margin-top:31px}
.operator-film[data-step="0"] .operator-film__copy--0,.operator-film[data-step="1"] .operator-film__copy--1,.operator-film[data-step="2"] .operator-film__copy--2,.operator-film[data-step="3"] .operator-film__copy--3{opacity:1;transform:translateY(-50%);pointer-events:auto}
.operator-film[data-step="1"] .operator-film__copy--0,.operator-film[data-step="2"] .operator-film__copy--1,.operator-film[data-step="3"] .operator-film__copy--2{transform:translateY(calc(-50% - 18px))}
.operator-film__measure{position:absolute;z-index:7;right:clamp(24px,5vw,76px);bottom:82px;width:min(31vw,450px);opacity:0;transform:translateY(12px);transition:opacity 500ms ease,transform 700ms cubic-bezier(.16,1,.3,1)}.operator-film[data-step="3"] .operator-film__measure{opacity:1;transform:none}
.operator-film__measure>div{display:flex;align-items:baseline;justify-content:space-between;color:var(--paper);text-shadow:0 1px 18px rgba(20,24,25,.55)}.operator-film__measure span{font:var(--type-mono);text-transform:uppercase}.operator-film__measure strong{font-size:clamp(26px,3vw,48px);font-weight:400}.operator-film__measure>div:last-child strong{color:var(--ember-2)}
.operator-film__measure>i{display:block;height:4px;margin:8px 0 12px;background:rgba(252,252,250,.35)}.operator-film__measure>i b{display:block;width:20%;height:100%;margin-left:auto;background:var(--ember-2)}
.operator-film__progress{position:absolute;z-index:8;left:clamp(24px,6vw,92px);bottom:27px;width:min(47vw,720px);display:grid;grid-template-columns:repeat(4,1fr);gap:12px;font:var(--type-mono);text-transform:uppercase;color:rgba(38,50,56,.55)}.operator-film__progress span:last-of-type{text-align:right}.operator-film__progress i{grid-column:1/-1;height:1px;background:rgba(38,50,56,.22)}.operator-film__progress b{display:block;width:calc(var(--progress) * 100%);height:100%;background:var(--ink)}
.operator-film__instruction{position:absolute;z-index:8;top:97px;left:clamp(24px,6vw,92px);margin:0;font:var(--type-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4)}

.table-journey{--journey:0;--book:0;--book-overlay:0;--diagnostic:0;--decisions:0;--operator-context:0;--bridge:0;--threep-a:1;--threep-b:1;--threep-c:1;--threep-copy:1;--profit:1;--profit-in:1;--profit-out:0;--positioning:1;--positioning-in:1;--positioning-out:0;--portfolio:1;--portfolio-in:1;--portfolio-out:0;--method:1;--method-in:1;--method-out:0;--evidence:1;--evidence-in:1;--evidence-out:0;--experience:1;--camera-x:0%;--camera-scale:1.03;position:relative;background:var(--bone-3);color:var(--ink)}
.table-journey[data-active="true"]{height:850vh}
.table-journey__sticky{position:relative;min-height:100svh;overflow:hidden}
.table-journey[data-active="true"] .table-journey__sticky{position:sticky;top:0;height:100svh;min-height:0}
.table-journey__camera{position:absolute;z-index:0;inset:0;overflow:hidden;background:var(--bone-3)}
.table-journey__camera img{position:absolute;z-index:0;left:-5%;top:0;width:118%;max-width:none;height:100%;object-fit:cover;object-position:center;filter:saturate(.82) contrast(.96)}
.table-journey[data-active="true"] .table-journey__camera img{transform:translate3d(var(--camera-x),0,0) scale(var(--camera-scale));transform-origin:58% 52%;will-change:transform}
.table-journey__camera-video{position:absolute;max-width:none;height:100%;object-fit:cover;filter:saturate(.82) contrast(.96);pointer-events:none}
.table-journey__camera-video--diagnostic{z-index:1;left:-5%;top:0;width:118%;object-position:center;opacity:var(--diagnostic);transform:translate3d(var(--camera-x),0,0) scale(var(--camera-scale));transform-origin:58% 52%;will-change:transform,opacity}
.table-journey__camera-video--decisions{z-index:2;left:-5%;top:0;width:118%;object-position:center;opacity:var(--decisions);transform:translate3d(var(--camera-x),0,0) scale(var(--camera-scale));transform-origin:58% 52%;will-change:transform,opacity}
.table-journey__camera-video--context{z-index:3;left:-5%;top:0;width:118%;object-position:center;opacity:var(--operator-context);transform:translate3d(var(--camera-x),0,0) scale(var(--camera-scale));transform-origin:58% 52%;will-change:transform,opacity}
.table-journey__camera-video--bridge{z-index:4;inset:0;width:100%;object-position:center;opacity:var(--bridge);will-change:opacity}
.table-journey__shade{position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(247,244,237,.98) 0%,rgba(247,244,237,.93) 43%,rgba(247,244,237,.8) 66%,rgba(247,244,237,.26) 92%,rgba(247,244,237,.08) 100%)}
.table-journey__phase{position:relative;z-index:3;min-height:100svh;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(50px,7vw,110px);align-items:center;padding:clamp(105px,11vw,160px) clamp(24px,6vw,92px) 78px}
.table-journey[data-active="true"] .table-journey__phase{position:absolute;inset:0;min-height:0;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity 220ms cubic-bezier(.16,1,.3,1),transform 430ms cubic-bezier(.16,1,.3,1)}
.table-journey[data-scene="0"] .table-journey__phase--0,.table-journey[data-scene="1"] .table-journey__phase--1,.table-journey[data-scene="2"] .table-journey__phase--2,.table-journey[data-scene="3"] .table-journey__phase--3,.table-journey[data-scene="4"] .table-journey__phase--4,.table-journey[data-scene="5"] .table-journey__phase--5,.table-journey[data-scene="6"] .table-journey__phase--6,.table-journey[data-scene="7"] .table-journey__phase--7{opacity:1;transform:none;pointer-events:auto}
.table-journey__heading h2{max-width:820px;margin:28px 0 25px;font-size:clamp(54px,6.6vw,110px);font-weight:400;line-height:.87;letter-spacing:-.066em}.table-journey__heading>p:last-of-type{max-width:40ch;margin:0;font-size:clamp(17px,1.35vw,22px);line-height:1.45;color:var(--ink-3)}
.table-journey__heading--threep h2,.table-journey__heading--threep>p:last-of-type{opacity:calc(.18 + var(--threep-copy) * .82);transform:translate3d(0,calc((1 - var(--threep-copy)) * 16px),0);will-change:transform,opacity}
.table-journey__zones{position:relative;width:100%;height:min(64vh,650px);margin:0;padding:0;list-style:none;perspective:1100px;opacity:calc(.16 + var(--threep-copy) * .84);transform:translate3d(calc((1 - var(--threep-copy)) * 9vw),calc((1 - var(--threep-copy)) * 15vh),0) scale(calc(.5 + var(--threep-copy) * .5)) rotateX(calc(66deg - var(--threep-copy) * 24deg)) rotateZ(-1deg);transform-origin:78% 100%;transform-style:preserve-3d;will-change:transform,opacity}
.table-journey__zone{--p:var(--threep-a);position:absolute;width:51%;aspect-ratio:1.16;transform-style:preserve-3d;will-change:transform,opacity,filter}
.table-journey__zone--1{left:0;top:4%;z-index:2;transform:translate3d(calc((1 - var(--p)) * 84px),calc((1 - var(--p)) * 76px),calc((1 - var(--p)) * 70px)) rotateZ(calc(-2deg + (1 - var(--p)) * -10deg));opacity:calc(.32 + var(--p) * .68);filter:saturate(calc(.45 + var(--p) * .55))}
.table-journey__zone--2{--p:var(--threep-b);right:0;top:20%;z-index:3;transform:translate3d(calc((1 - var(--p)) * -78px),calc((1 - var(--p)) * 49px),calc((1 - var(--p)) * 110px)) rotateZ(calc(2.4deg + (1 - var(--p)) * 8deg));opacity:calc(.28 + var(--p) * .72);filter:saturate(calc(.4 + var(--p) * .6))}
.table-journey__zone--3{--p:var(--threep-c);left:24%;top:49%;z-index:4;transform:translate3d(0,calc((1 - var(--p)) * -105px),calc((1 - var(--p)) * 150px)) rotateZ(calc(-.7deg + (1 - var(--p)) * -5deg));opacity:calc(.24 + var(--p) * .76);filter:saturate(calc(.35 + var(--p) * .65))}
.table-journey__document{position:absolute;inset:0;padding:15px 17px;background:rgba(248,246,240,.97);border:1px solid rgba(38,50,56,.28);box-shadow:0 9px 22px rgba(38,50,56,.11),0 2px 5px rgba(38,50,56,.08);overflow:hidden}
.table-journey__document::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.35),transparent 38%);pointer-events:none}
.table-journey__document-meta{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;font:var(--type-mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4)}
.table-journey__document-meta span:first-child{color:var(--copper-text)}
.table-journey__document-rule{height:1px;margin:11px 0 12px;background:rgba(38,50,56,.38)}
.table-journey__document-lines{display:grid;gap:8px}.table-journey__document-lines i{display:block;height:3px;background:rgba(38,50,56,.12)}.table-journey__document-lines i:nth-child(2){width:72%}.table-journey__document-lines i:nth-child(3){width:88%}.table-journey__document-lines i:nth-child(5){width:64%}
.table-journey__document-signal{position:absolute;left:17px;right:17px;bottom:17px;display:flex;align-items:end;gap:5px;height:28%}.table-journey__document-signal i{flex:1;background:rgba(10,103,161,.16);border-top:1px solid rgba(10,103,161,.48)}.table-journey__document-signal i:nth-child(1){height:43%}.table-journey__document-signal i:nth-child(2){height:72%}.table-journey__document-signal i:nth-child(3){height:94%}
.table-journey__zone--2 .table-journey__document-lines{gap:12px}.table-journey__zone--2 .table-journey__document-lines i{height:5px;background:rgba(38,50,56,.1)}.table-journey__zone--2 .table-journey__document-lines i:first-child{width:46%;height:11px;background:rgba(10,103,161,.22)}.table-journey__zone--2 .table-journey__document-signal{height:18%}.table-journey__zone--2 .table-journey__document-signal i{height:100%;border-top-color:rgba(195,111,74,.58);background:rgba(195,111,74,.14)}
.table-journey__zone--3 .table-journey__document-lines{grid-template-columns:1fr 1fr;gap:9px}.table-journey__zone--3 .table-journey__document-lines i{height:22px;border:1px solid rgba(38,50,56,.16);background:rgba(38,50,56,.035)}.table-journey__zone--3 .table-journey__document-signal{display:none}
.table-journey__zone-label{position:absolute;z-index:5;left:12px;right:12px;bottom:11px;display:grid;grid-template-columns:25px 1fr;gap:1px 8px;padding:10px 11px;background:rgba(248,246,240,.98);border:1px solid rgba(38,50,56,.22)}.table-journey__zone-label>span{grid-row:1/3;font:var(--type-mono);font-size:8px;color:var(--copper-text)}.table-journey__zone-label strong{font-size:clamp(17px,1.55vw,25px);font-weight:500;line-height:1;letter-spacing:-.035em}.table-journey__zone-label p{margin:3px 0 0;font:var(--type-mono);font-size:7px;text-transform:uppercase;color:var(--ink-4)}
.table-journey__zone-link{position:absolute;z-index:1;inset:2%;width:96%;height:96%;overflow:visible;opacity:var(--threep-copy);transform:scale(calc(.91 + var(--threep-copy) * .09));transform-origin:center}.table-journey__zone-link path{fill:none;stroke:rgba(195,111,74,.82);stroke-width:.45;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.table-journey__zone-link circle{fill:var(--copper)}
@media (min-width:851px){.table-journey__zones{transform:translate3d(calc((1 - var(--threep-copy)) * 13vw),calc(76px + (1 - var(--threep-copy)) * 24vh),0) scale(calc(.38 + var(--threep-copy) * .62)) rotateX(calc(70deg - var(--threep-copy) * 22deg)) rotateZ(-1deg)}}
.table-journey__groups,.table-journey__readings,.table-journey__questions,.table-journey__routes,.table-journey__method,.table-journey__evidence{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.table-journey__groups li{display:grid;grid-template-columns:40px 1fr;gap:5px 15px;padding:18px 0;border-bottom:1px solid rgba(38,50,56,.3)}.table-journey__groups span{grid-row:1/3;font:var(--type-mono);color:var(--copper)}.table-journey__groups strong{font-size:clamp(24px,2.6vw,40px);font-weight:400}.table-journey__groups p{margin:0;font:var(--type-mono);color:var(--ink-4)}
.table-journey__readings{display:grid;grid-template-columns:1fr 1fr}.table-journey__readings li{min-height:135px;padding:16px 18px 14px 0;border-bottom:1px solid rgba(38,50,56,.28)}.table-journey__readings li:nth-child(odd){border-right:1px solid rgba(38,50,56,.28)}.table-journey__readings li:nth-child(even){padding-left:18px}.table-journey__readings span{display:block;font:var(--type-mono);text-transform:uppercase;color:var(--blue)}.table-journey__readings strong{display:block;margin:13px 0 4px;font-size:clamp(25px,3vw,45px);font-weight:400}.table-journey__readings p{margin:0;font-size:15px;color:var(--ink-3)}
.table-journey__profit-board{position:relative;width:100%;min-width:0;box-sizing:border-box;padding:17px 19px 15px;background:rgba(248,246,240,.96);border:1px solid rgba(38,50,56,.3);box-shadow:0 10px 28px rgba(38,50,56,.1),0 2px 5px rgba(38,50,56,.07);opacity:calc(.15 + var(--profit-in) * .85);transform:translate3d(calc((1 - var(--profit-in)) * 13vw),calc((1 - var(--profit-in)) * 27vh),0) scale(calc(.38 + var(--profit-in) * .62)) rotateX(calc(62deg - var(--profit-in) * 60deg)) rotateZ(.35deg);transform-origin:82% 100%;overflow:hidden;will-change:transform,opacity}
.table-journey__profit-board::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.36),transparent 34%);pointer-events:none}
.table-journey__profit-meta{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto auto;gap:18px;padding-bottom:13px;font:var(--type-mono);font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4)}.table-journey__profit-meta span:first-child{color:var(--copper-text)}
.table-journey__profit-columns{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(76px,.55fr) minmax(0,1.1fr);gap:12px;padding:9px 0;border-top:1px solid rgba(38,50,56,.5);border-bottom:1px solid rgba(38,50,56,.24);font:var(--type-mono);font-size:7px;text-transform:uppercase;color:var(--ink-4)}
.table-journey__profit-board .table-journey__readings{position:relative;z-index:2;display:block;width:auto;margin:0;border:0}
.table-journey__profit-board .table-journey__profit-reading{--rp:clamp(0,calc(var(--profit) * 6 - var(--reading)),1);position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(76px,.55fr) minmax(0,1.1fr);gap:12px;align-items:center;min-width:0;min-height:67px;padding:11px 0;border:0;border-bottom:1px solid rgba(38,50,56,.18);opacity:calc(.2 + var(--rp) * .8);transform:translate3d(calc((1 - var(--rp)) * 13px),0,0);will-change:transform,opacity}
.table-journey__profit-board .table-journey__profit-reading span{font:var(--type-mono);font-size:9px;text-transform:uppercase;color:var(--blue)}.table-journey__profit-board .table-journey__profit-reading strong{margin:0;font-size:clamp(21px,2vw,31px);font-weight:400;letter-spacing:-.035em}.table-journey__profit-board .table-journey__profit-reading p{margin:0;font-size:13px;line-height:1.2;color:var(--ink-3)}
.table-journey__profit-reading>i{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:transparent}.table-journey__profit-reading>i b{display:block;width:calc(var(--rp) * 100%);height:100%;background:rgba(10,103,161,.72)}
.table-journey__profit-scan{position:absolute;z-index:4;left:13px;right:13px;top:12%;height:1px;background:var(--copper);opacity:calc(.18 + var(--profit) * .5);transform:translateY(calc(var(--profit) * 450px));box-shadow:0 0 12px rgba(195,111,74,.3);pointer-events:none}
.table-journey__profit-index{display:none}
.table-journey__positioning-board{position:relative;width:100%;min-width:0;height:min(66vh,610px);perspective:1200px;opacity:calc(.15 + var(--positioning-in) * .85);transform:translate3d(calc((1 - var(--positioning-in)) * 13vw),calc((1 - var(--positioning-in)) * 27vh),0) scale(calc(.38 + var(--positioning-in) * .62)) rotateX(calc((1 - var(--positioning-in)) * 60deg));transform-origin:82% 100%;will-change:transform,opacity}
.table-journey__positioning-sheet{position:absolute;inset:0;padding:20px 22px 112px;background:#f5f1e8;border:1px solid rgba(38,50,56,.3);box-shadow:0 11px 28px rgba(38,50,56,.11),0 2px 5px rgba(38,50,56,.08);transform:rotateZ(-.35deg);overflow:hidden}
.table-journey__positioning-sheet::before{content:"";position:absolute;inset:7px -7px -7px 7px;z-index:-1;background:#e9e4d9;border:1px solid rgba(38,50,56,.18);transform:rotateZ(.55deg)}
.table-journey__positioning-sheet::after{content:"";position:absolute;inset:0;background:linear-gradient(118deg,rgba(255,255,255,.35),transparent 36%,rgba(90,72,52,.025));pointer-events:none}
.table-journey__positioning-meta{position:relative;z-index:1;display:flex;justify-content:space-between;padding-bottom:13px;border-bottom:1px solid rgba(38,50,56,.48);font:var(--type-mono);font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-4)}.table-journey__positioning-meta span:first-child{color:var(--copper-text)}
.table-journey__positioning-title{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:end;padding:28px 0 21px;border-bottom:1px solid rgba(38,50,56,.22)}.table-journey__positioning-title strong{font-size:clamp(31px,3.4vw,51px);font-weight:400;line-height:.92;letter-spacing:-.05em}.table-journey__positioning-title small{max-width:21ch;font:var(--type-mono);font-size:8px;line-height:1.45;text-transform:uppercase;color:var(--blue)}
.table-journey__positioning-map{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto 1fr;gap:12px 14px;align-items:center;padding:21px 0}.table-journey__positioning-map span{font:var(--type-mono);font-size:8px;text-transform:uppercase;color:var(--ink-4)}.table-journey__positioning-map i{display:block;height:1px;background:rgba(38,50,56,.2)}
.table-journey__positioning-notes{position:relative;z-index:1;display:grid;gap:9px;padding-top:4px}.table-journey__positioning-notes i{display:block;height:4px;background:rgba(38,50,56,.1)}.table-journey__positioning-notes i:nth-child(2){width:81%}.table-journey__positioning-notes i:nth-child(3){width:63%}
.table-journey__positioning-board .table-journey__questions{position:absolute;z-index:4;left:22px;right:22px;bottom:20px;display:block;width:auto;margin:0;padding:0;background:transparent;border:0;border-top:1px solid rgba(38,50,56,.48);box-shadow:none}
.table-journey__positioning-board .table-journey__questions li{display:none;grid-template-columns:38px 1fr;gap:14px;align-items:center;min-height:91px;padding:14px 0 0;border:0}.table-journey__positioning-board .table-journey__questions span{font:var(--type-mono);font-size:9px;color:var(--copper-text)}.table-journey__positioning-board .table-journey__questions p{margin:0;font-size:clamp(20px,2.05vw,30px);line-height:1.04;letter-spacing:-.035em}
.table-journey[data-positioning="0"] .table-journey__questions li:nth-child(1),.table-journey[data-positioning="1"] .table-journey__questions li:nth-child(2),.table-journey[data-positioning="2"] .table-journey__questions li:nth-child(3),.table-journey[data-positioning="3"] .table-journey__questions li:nth-child(4),.table-journey[data-positioning="4"] .table-journey__questions li:nth-child(5),.table-journey[data-positioning="5"] .table-journey__questions li:nth-child(6){display:grid}
.table-journey__positioning-index{position:absolute;z-index:6;left:34px;right:34px;bottom:7px;display:flex;gap:5px}.table-journey__positioning-index i{display:block;width:100%;height:2px;background:rgba(38,50,56,.14)}
.table-journey[data-positioning="0"] .table-journey__positioning-index i:nth-child(1),.table-journey[data-positioning="1"] .table-journey__positioning-index i:nth-child(2),.table-journey[data-positioning="2"] .table-journey__positioning-index i:nth-child(3),.table-journey[data-positioning="3"] .table-journey__positioning-index i:nth-child(4),.table-journey[data-positioning="4"] .table-journey__positioning-index i:nth-child(5),.table-journey[data-positioning="5"] .table-journey__positioning-index i:nth-child(6){background:var(--blue)}
.table-journey__questions{display:grid;grid-template-columns:1fr 1fr}.table-journey__questions li{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:start;min-height:126px;padding:18px 18px 16px 0;border-bottom:1px solid rgba(38,50,56,.28)}.table-journey__questions li:nth-child(odd){border-right:1px solid rgba(38,50,56,.28)}.table-journey__questions li:nth-child(even){padding-left:18px}.table-journey__questions span{font:var(--type-mono);color:var(--copper)}.table-journey__questions p{margin:0;font-size:clamp(17px,1.6vw,24px);line-height:1.15;letter-spacing:-.025em}
.table-journey__routes{display:grid;grid-template-columns:1fr 1fr}.table-journey__routes>li{display:grid;grid-template-columns:28px 1fr;gap:2px 10px;min-height:205px;padding:16px 16px 14px 0;border-bottom:1px solid rgba(38,50,56,.28)}.table-journey__routes>li:nth-child(odd){border-right:1px solid rgba(38,50,56,.28)}.table-journey__routes>li:nth-child(even){padding-left:16px}.table-journey__routes>li>span{grid-row:1/4;font:var(--type-mono);color:var(--copper)}.table-journey__routes strong{font-size:clamp(22px,2.4vw,36px);font-weight:400}.table-journey__routes small{font:var(--type-mono);color:var(--blue);text-transform:uppercase}.table-journey__routes ul{list-style:none;margin:14px 0 0;padding:0}.table-journey__routes ul li{margin-top:4px;font-size:14px;color:var(--ink-3)}
.table-journey__portfolio-board{position:relative;width:100%;min-width:0;height:min(66vh,600px);perspective:1300px;opacity:calc(.15 + var(--portfolio-in) * .85);transform:translate3d(calc((1 - var(--portfolio-in)) * 13vw),calc((1 - var(--portfolio-in)) * 27vh),0) scale(calc(.38 + var(--portfolio-in) * .62)) rotateX(calc((1 - var(--portfolio-in)) * 60deg));transform-origin:82% 100%;will-change:transform,opacity}
.table-journey__portfolio-origin{position:absolute;z-index:0;left:50%;top:50%;display:grid;place-items:center;width:116px;height:72px;transform:translate(-50%,-50%);border:1px solid rgba(195,111,74,.38);background:rgba(248,246,240,.72);font:var(--type-mono);font-size:8px;text-transform:uppercase;color:var(--copper-text)}.table-journey__portfolio-origin i{position:absolute;left:50%;top:50%;width:clamp(250px,32vw,480px);height:1px;background:rgba(195,111,74,.34);transform:translate(-50%,-50%)}.table-journey__portfolio-origin::after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:var(--copper)}
.table-journey__portfolio-board .table-journey__routes{position:absolute;z-index:1;inset:0;display:block;width:auto;margin:0;padding:0;border:0;list-style:none;transform-style:preserve-3d}
.table-journey__portfolio-board .table-journey__route{position:absolute;display:grid;grid-template-columns:25px 1fr;grid-template-rows:auto auto 1fr;gap:2px 9px;width:47%;min-height:0;aspect-ratio:1.2;padding:15px 16px 13px;background:rgba(248,246,240,.97);border:1px solid rgba(38,50,56,.25);box-shadow:0 8px 20px rgba(38,50,56,.1),0 2px 5px rgba(38,50,56,.07);transform:translate3d(calc((1 - var(--portfolio)) * var(--sx)),calc((1 - var(--portfolio)) * var(--sy)),calc((1 - var(--portfolio)) * 90px)) scale(calc(.84 + var(--portfolio) * .16)) rotateZ(var(--rz));transform-origin:center;transition:border-color 360ms cubic-bezier(.16,1,.3,1),box-shadow 360ms cubic-bezier(.16,1,.3,1);will-change:transform}
.table-journey__portfolio-board .table-journey__route--1{--sx:125px;--sy:132px;--rz:-1.8deg;left:0;top:0}.table-journey__portfolio-board .table-journey__route--2{--sx:-125px;--sy:124px;--rz:1.5deg;right:0;top:3%}.table-journey__portfolio-board .table-journey__route--3{--sx:110px;--sy:-132px;--rz:.8deg;left:6%;bottom:0}.table-journey__portfolio-board .table-journey__route--4{--sx:-110px;--sy:-128px;--rz:-1.2deg;right:4%;bottom:1%}
.table-journey__portfolio-board .table-journey__route>span{grid-row:1/4;font:var(--type-mono);font-size:8px;color:var(--copper-text)}.table-journey__portfolio-board .table-journey__route strong{font-size:clamp(22px,2.2vw,33px);font-weight:400;line-height:1;letter-spacing:-.04em}.table-journey__portfolio-board .table-journey__route small{font:var(--type-mono);font-size:7px;text-transform:uppercase;color:var(--blue)}.table-journey__portfolio-board .table-journey__route ul{align-self:end;margin:11px 0 0;padding:9px 0 0;border-top:1px solid rgba(38,50,56,.2);list-style:none}.table-journey__portfolio-board .table-journey__route ul li{margin-top:3px;font-size:11px;color:var(--ink-3)}
.table-journey[data-portfolio="0"] .table-journey__route--1,.table-journey[data-portfolio="1"] .table-journey__route--2,.table-journey[data-portfolio="2"] .table-journey__route--3,.table-journey[data-portfolio="3"] .table-journey__route--4{z-index:4;border-color:rgba(195,111,74,.72);box-shadow:0 13px 28px rgba(38,50,56,.14),0 2px 5px rgba(38,50,56,.08)}
.table-journey__portfolio-index{display:none}
.table-journey__method li{display:grid;grid-template-columns:38px .55fr 1fr;gap:18px;padding:15px 0;border-bottom:1px solid rgba(38,50,56,.28);align-items:baseline}.table-journey__method span{font:var(--type-mono);color:var(--copper)}.table-journey__method strong{font-size:clamp(21px,2.1vw,32px);font-weight:400}.table-journey__method p{margin:0;font:var(--type-mono);color:var(--ink-4)}
.table-journey__method-board{position:relative;width:100%;min-width:0;padding:17px 20px 16px;background:rgba(248,246,240,.96);border:1px solid rgba(38,50,56,.3);box-shadow:0 10px 26px rgba(38,50,56,.1),0 2px 5px rgba(38,50,56,.07);opacity:calc(.15 + var(--method-in) * .85);transform:translate3d(calc((1 - var(--method-in)) * 13vw),calc((1 - var(--method-in)) * 27vh),0) scale(calc(.38 + var(--method-in) * .62)) rotateX(calc((1 - var(--method-in)) * 60deg)) rotateZ(-.3deg);transform-origin:82% 100%;overflow:hidden;will-change:transform,opacity}
.table-journey__method-board::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.34),transparent 38%);pointer-events:none}
.table-journey__method-meta{position:relative;z-index:2;display:flex;justify-content:space-between;padding-bottom:13px;border-bottom:1px solid rgba(38,50,56,.44);font:var(--type-mono);font-size:8px;text-transform:uppercase;color:var(--ink-4)}.table-journey__method-meta span:first-child{color:var(--copper-text)}
.table-journey__method-board .table-journey__method{position:relative;z-index:2;margin:0;padding:0;list-style:none}
.table-journey__method-board .table-journey__method li{--mp:clamp(0,calc(var(--method) * 5 - var(--method-index)),1);position:relative;display:grid;grid-template-columns:39px .68fr 1fr;gap:14px;align-items:center;min-height:86px;padding:13px 9px;border-bottom:1px solid rgba(38,50,56,.18);opacity:calc(.2 + var(--mp) * .8);transform:translate3d(calc((1 - var(--mp)) * 14px),0,0);transition:background-color 320ms cubic-bezier(.16,1,.3,1);will-change:transform,opacity}.table-journey__method-board .table-journey__method span{font:var(--type-mono);font-size:9px;color:var(--copper-text)}.table-journey__method-board .table-journey__method strong{font-size:clamp(23px,2.25vw,34px);font-weight:400;letter-spacing:-.04em}.table-journey__method-board .table-journey__method p{margin:0;font:var(--type-mono);font-size:9px;line-height:1.35;color:var(--ink-4)}.table-journey__method-board .table-journey__method li>i{position:absolute;left:0;top:50%;width:3px;height:0;background:var(--blue);transform:translateY(-50%);transition:height 420ms cubic-bezier(.16,1,.3,1)}
.table-journey[data-method="0"] .table-journey__method li:nth-child(1),.table-journey[data-method="1"] .table-journey__method li:nth-child(2),.table-journey[data-method="2"] .table-journey__method li:nth-child(3),.table-journey[data-method="3"] .table-journey__method li:nth-child(4),.table-journey[data-method="4"] .table-journey__method li:nth-child(5){background:rgba(10,103,161,.045)}.table-journey[data-method="0"] .table-journey__method li:nth-child(1)>i,.table-journey[data-method="1"] .table-journey__method li:nth-child(2)>i,.table-journey[data-method="2"] .table-journey__method li:nth-child(3)>i,.table-journey[data-method="3"] .table-journey__method li:nth-child(4)>i,.table-journey[data-method="4"] .table-journey__method li:nth-child(5)>i{height:48%}
.table-journey__method-index{display:none}
.table-journey__evidence{display:grid;grid-template-columns:1fr 1fr}.table-journey__evidence li{min-height:180px;padding:20px 18px 16px 0;border-bottom:1px solid rgba(38,50,56,.3)}.table-journey__evidence li:nth-child(odd){border-right:1px solid rgba(38,50,56,.3)}.table-journey__evidence li:nth-child(even){padding-left:18px}.table-journey__evidence strong{display:block;font-size:clamp(35px,4vw,62px);font-weight:400;line-height:1}.table-journey__evidence p{margin:19px 0 10px;font-size:17px;line-height:1.25}.table-journey__evidence span{font:var(--type-mono);text-transform:uppercase;color:var(--ink-4)}
.table-journey__evidence-board{position:relative;width:100%;min-width:0;padding:17px 20px 14px;background:rgba(248,246,240,.97);border:1px solid rgba(38,50,56,.3);box-shadow:0 9px 24px rgba(38,50,56,.09),0 2px 5px rgba(38,50,56,.07);opacity:calc(.15 + var(--evidence-in) * .85);transform:translate3d(calc((1 - var(--evidence-in)) * 13vw),calc((1 - var(--evidence-in)) * 27vh),0) scale(calc(.38 + var(--evidence-in) * .62)) rotateX(calc((1 - var(--evidence-in)) * 60deg)) rotateZ(.25deg);transform-origin:82% 100%;overflow:hidden;will-change:transform,opacity}
.table-journey__evidence-meta{position:relative;z-index:2;display:flex;justify-content:space-between;padding-bottom:13px;border-bottom:1px solid rgba(38,50,56,.48);font:var(--type-mono);font-size:8px;text-transform:uppercase;color:var(--ink-4)}.table-journey__evidence-meta span:first-child{color:var(--copper-text)}
.table-journey__evidence-board .table-journey__evidence{position:relative;z-index:2;display:block;width:auto;margin:0;padding:0;border:0;list-style:none}
.table-journey__evidence-board .table-journey__evidence li{--ep:clamp(0,calc(var(--evidence) * 4 - var(--evidence-index)),1);position:relative;display:grid;grid-template-columns:.62fr 1fr .72fr;gap:15px;align-items:center;min-height:105px;padding:15px 2px;border:0;border-bottom:1px solid rgba(38,50,56,.2);opacity:calc(.2 + var(--ep) * .8);transform:translate3d(calc((1 - var(--ep)) * 13px),0,0);will-change:transform,opacity}.table-journey__evidence-board .table-journey__evidence strong{margin:0;font-size:clamp(29px,3.2vw,49px);font-weight:400;letter-spacing:-.045em}.table-journey__evidence-board .table-journey__evidence p{margin:0;font-size:14px;line-height:1.2}.table-journey__evidence-board .table-journey__evidence span{font:var(--type-mono);font-size:8px;text-transform:uppercase;color:var(--ink-4)}.table-journey__evidence-board .table-journey__evidence li>i{position:absolute;left:0;right:0;bottom:-1px;height:1px}.table-journey__evidence-board .table-journey__evidence li>i b{display:block;width:calc(var(--ep) * 100%);height:100%;background:rgba(10,103,161,.66)}
.table-journey__evidence-scan{position:absolute;z-index:4;left:13px;right:13px;top:57px;height:1px;background:var(--copper);opacity:calc(.15 + var(--evidence) * .44);transform:translateY(calc(var(--evidence) * 430px));box-shadow:0 0 12px rgba(195,111,74,.26)}
.table-journey__evidence-index{display:none}
.table-journey__experience{display:grid;grid-template-columns:1fr 1fr;gap:24px}.table-journey__experience>div>p{margin:0;padding:0 0 12px;border-bottom:1px solid var(--ink);font:var(--type-mono);text-transform:uppercase;color:var(--blue)}.table-journey__experience ul{list-style:none;margin:0;padding:0}.table-journey__experience li{--xp:clamp(0,calc(var(--experience) * 11 - var(--experience-index)),1);display:grid;gap:2px;padding:10px 0;border-bottom:1px solid rgba(38,50,56,.24);opacity:calc(.2 + var(--xp) * .8);transform:translate3d(calc((1 - var(--xp)) * 12px),0,0);will-change:transform,opacity}.table-journey__experience strong{font-size:16px;font-weight:500}.table-journey__experience span{font:var(--type-mono);color:var(--ink-4)}
.table-journey__phase--7{grid-template-columns:1fr 1fr}.table-journey__heading--book{width:min(54vw,780px)}.table-journey__heading--book h2{font-size:clamp(48px,5.8vw,95px)}.table-journey__heading--book blockquote{max-width:680px;margin:36px 0 26px;padding-top:18px;border-top:1px solid var(--ink);font-size:clamp(21px,2.4vw,37px);line-height:1.08;letter-spacing:-.03em}.table-journey__heading--book .table-concept__cta{margin-top:0}
.table-journey__book{position:relative;z-index:4;display:grid;place-items:center;padding:60px 0;pointer-events:none}.table-journey[data-active="true"] .table-journey__book{position:absolute;right:9vw;top:50%;padding:0;opacity:var(--book);transform:translate3d(calc((1 - var(--book)) * 19vw),calc((1 - var(--book)) * 26vh - 50%),0) scale(calc(.28 + var(--book) * .72)) rotate(calc((1 - var(--book)) * 11deg));transform-origin:center;will-change:transform,opacity;pointer-events:none}.table-journey[data-scene="7"] .table-journey__book{pointer-events:auto}.table-journey__book .book3d{--p:1!important;--w:clamp(180px,23vw,320px);margin:0}
.table-journey__progress{display:none}.table-journey[data-active="true"] .table-journey__progress{position:absolute;z-index:8;left:clamp(24px,6vw,92px);right:clamp(24px,6vw,92px);bottom:25px;display:grid;grid-template-columns:repeat(8,1fr);gap:10px;font:var(--type-mono);text-transform:uppercase;color:rgba(38,50,56,.55)}.table-journey__progress span:last-of-type{text-align:right}.table-journey__progress i{grid-column:1/-1;height:1px;background:rgba(38,50,56,.22)}.table-journey__progress b{display:block;width:calc(var(--journey) * 100%);height:100%;background:var(--ink)}

.operator-summary{padding:clamp(100px,14vw,210px) clamp(24px,6vw,92px);background:var(--ink);color:var(--paper)}.operator-summary .operator-eyebrow{color:var(--ember-2)}
.operator-summary__intro{display:grid;grid-template-columns:1.35fr .65fr;gap:7vw;align-items:end}.operator-summary__intro h2{grid-column:1/-1;max-width:1100px;margin:45px 0 80px;font-size:clamp(60px,8.7vw,146px);font-weight:400;line-height:.84;letter-spacing:-.068em}
.operator-summary ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--border-inverse)}.operator-summary ol li{display:grid;grid-template-columns:60px .7fr 1fr;gap:30px;padding:24px 0;border-bottom:1px solid var(--border-inverse)}.operator-summary ol span{font:var(--type-mono);color:var(--ember-2)}.operator-summary ol strong{font-size:clamp(24px,3vw,44px);font-weight:400}.operator-summary ol p{margin:8px 0 0;font:var(--type-mono);color:rgba(252,252,250,.58)}
.operator-summary blockquote{max-width:950px;margin:clamp(90px,12vw,170px) 0 0;font-size:clamp(55px,7.4vw,120px);line-height:.88;letter-spacing:-.065em}
.operator-instruments{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(50px,8vw,130px);padding:clamp(100px,13vw,190px) clamp(24px,6vw,92px);background:var(--bone-3)}
.operator-instruments__head{position:sticky;top:100px;align-self:start}.operator-instruments__head h2{margin:35px 0 28px;font-size:clamp(55px,6.8vw,108px);font-weight:400;line-height:.85;letter-spacing:-.065em}.operator-instruments__head>p:last-child{max-width:37ch;font-size:clamp(17px,1.35vw,21px);line-height:1.45;color:var(--ink-3)}
.operator-instruments ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}.operator-instruments li{display:grid;grid-template-columns:1fr auto;gap:8px 24px;padding:24px 0;border-bottom:1px solid rgba(38,50,56,.28)}.operator-instruments li>span{font:var(--type-mono);text-transform:uppercase;color:var(--blue)}.operator-instruments li>strong{font-size:clamp(24px,3.4vw,52px);font-weight:400;letter-spacing:-.04em}.operator-instruments li>p{margin:0;font-size:clamp(16px,1.3vw,20px)}.operator-instruments li>i{grid-column:1/-1;display:block;height:3px;background:rgba(38,50,56,.11)}.operator-instruments li>i b{display:block;height:100%;background:var(--blue)}.operator-instruments li>small{grid-column:1/-1;font:var(--type-mono);color:var(--ink-4)}
.operator-impact{padding:clamp(100px,13vw,190px) clamp(24px,6vw,92px);background:var(--copper);color:var(--ink)}.operator-impact .operator-eyebrow{color:var(--ink)}.operator-impact>h2{max-width:1000px;margin:45px 0 clamp(70px,9vw,130px);font-size:clamp(66px,9vw,150px);font-weight:400;line-height:.82;letter-spacing:-.07em}.operator-impact ol{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}.operator-impact li{min-height:260px;padding:25px 22px 20px 0;border-bottom:1px solid var(--ink)}.operator-impact li:not(:last-child){border-right:1px solid rgba(38,50,56,.32)}.operator-impact li+li{padding-left:22px}.operator-impact li strong{font-size:clamp(40px,4.5vw,72px);font-weight:500;line-height:1}.operator-impact li p{max-width:19ch;margin:30px 0 18px;font-size:clamp(17px,1.4vw,22px);line-height:1.25}.operator-impact li span{font:var(--type-mono);text-transform:uppercase;color:rgba(38,50,56,.68)}
.operator-founder{min-height:100svh;display:grid;grid-template-columns:1.08fr .92fr;align-items:end;gap:6vw;padding:clamp(100px,11vw,170px) clamp(24px,6vw,92px) 0;background:var(--blue);color:var(--paper)}.operator-founder .operator-eyebrow{color:var(--ember-2)}.operator-founder__copy{align-self:center;padding-bottom:clamp(80px,9vw,130px)}.operator-founder__copy h2{margin:34px 0 30px;font-size:clamp(56px,6.6vw,108px);font-weight:400;line-height:.86;letter-spacing:-.065em}.operator-founder__copy>p{max-width:39ch;font-size:clamp(17px,1.45vw,23px);line-height:1.4;color:rgba(252,252,250,.72)}.operator-founder__copy ul{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;margin:clamp(55px,6vw,90px) 0 0;padding:22px 0 0;border-top:1px solid var(--border-inverse)}.operator-founder__copy li{display:grid;gap:4px}.operator-founder__copy li strong{font-size:clamp(28px,3vw,45px);font-weight:400}.operator-founder__copy li span{max-width:15ch;font:var(--type-mono);color:rgba(252,252,250,.62)}.operator-founder__portrait{display:flex;align-self:end;justify-content:center;height:min(82svh,850px)}.operator-founder__portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:bottom}
.operator-book{min-height:100svh;display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(50px,8vw,130px);padding:clamp(100px,12vw,180px) clamp(24px,6vw,92px);background:var(--paper)}.operator-book__object{display:grid;place-items:center;min-height:620px}.operator-book__object .book3d{width:min(28vw,370px)}.operator-book__copy h2{max-width:780px;margin:35px 0 28px;font-size:clamp(58px,7vw,115px);font-weight:400;line-height:.86;letter-spacing:-.065em}.operator-book__copy>p{max-width:41ch;font-size:clamp(18px,1.5vw,24px);line-height:1.4}.operator-book__copy blockquote{max-width:690px;margin:clamp(50px,6vw,90px) 0 35px;padding-top:24px;border-top:1px solid var(--ink);font-size:clamp(25px,3.1vw,46px);line-height:1.08;letter-spacing:-.035em}
.operator-fit{padding:clamp(100px,13vw,190px) clamp(24px,6vw,92px);background:var(--bone-3)}.operator-fit>div{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:end;margin-top:clamp(60px,8vw,120px)}.operator-fit h2{margin:0;font-size:clamp(60px,8vw,132px);font-weight:400;line-height:.84;letter-spacing:-.068em}.operator-fit ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}.operator-fit li{display:grid;grid-template-columns:45px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid rgba(38,50,56,.25);font-size:clamp(17px,1.5vw,23px)}.operator-fit li span{font:var(--type-mono);color:var(--copper)}
.operator-final{min-height:92svh;display:grid;grid-template-columns:1fr auto;align-items:end;gap:60px;padding:clamp(110px,13vw,190px) clamp(24px,6vw,92px) clamp(50px,6vw,85px);background:var(--ink);color:var(--paper)}.operator-final .operator-eyebrow{color:var(--ember-2)}.operator-final h2{max-width:1050px;margin:32px 0 0;font-size:clamp(64px,8.8vw,148px);font-weight:400;line-height:.84;letter-spacing:-.068em}.operator-final .table-concept__cta{border-color:var(--paper);color:var(--paper)}.operator-final .table-concept__cta:hover{background:var(--paper);color:var(--ink)}.operator-final__base{grid-column:1/-1;display:flex;justify-content:space-between;gap:28px;padding-top:20px;border-top:1px solid var(--border-inverse);font:var(--type-mono);color:rgba(252,252,250,.62)}.operator-final__base nav{display:flex;gap:24px}.operator-final__base a{color:inherit;text-decoration:none}
.operator-next{min-height:90svh;display:grid;align-content:center;justify-items:start;gap:24px;padding:clamp(100px,12vw,170px) clamp(24px,6vw,92px);background:var(--paper)}.operator-next h2{max-width:1050px;margin:0;font-size:clamp(58px,7.8vw,126px);font-weight:400;line-height:.87;letter-spacing:-.065em}.operator-next>p:not(.operator-eyebrow){max-width:48ch;font-size:clamp(18px,1.7vw,25px);line-height:1.4}.operator-next>a{color:var(--ink);text-underline-offset:6px}

@media (max-width:850px){
  .table-concept__header{grid-template-columns:1fr auto}.table-concept__header>span{display:none}.table-concept__header>a:last-child{font-size:9px}
  .operator-film{height:410vh}.operator-film__copy{left:24px;width:min(72vw,620px)}.operator-film__copy h1,.operator-film__copy h2{font-size:clamp(50px,10.8vw,82px)}.operator-film__progress{left:24px;width:min(70vw,600px)}.operator-film__instruction{left:24px}.operator-film__measure{right:24px;width:min(38vw,380px)}
  .table-journey[data-active="true"]{height:820vh}.table-journey__phase{grid-template-columns:1fr;align-content:center;gap:34px;padding:100px 24px 70px}.table-journey__heading{max-width:650px}.table-journey__heading h2{font-size:clamp(48px,10.5vw,78px)}.table-journey__zones{width:min(72vw,600px);height:min(46vh,470px)}.table-journey__groups,.table-journey__readings,.table-journey__questions,.table-journey__routes,.table-journey__method,.table-journey__evidence,.table-journey__experience{width:min(72vw,600px)}.table-journey__book .book3d{--w:clamp(170px,35vw,280px)}.table-journey[data-active="true"] .table-journey__book{right:7vw}.table-journey__heading--book{width:min(65vw,620px)}
  .operator-summary__intro{grid-template-columns:1fr}.operator-summary ol li{grid-template-columns:44px 1fr}.operator-summary ol p{grid-column:2}.operator-next{min-height:75svh}
  .operator-instruments{grid-template-columns:1fr}.operator-instruments__head{position:static}.operator-impact ol{grid-template-columns:repeat(2,1fr)}.operator-impact li:nth-child(2){border-right:0}.operator-founder{grid-template-columns:1fr;padding-bottom:0}.operator-founder__copy{padding-bottom:0}.operator-founder__portrait{height:65svh}.operator-book{grid-template-columns:1fr}.operator-book__object{min-height:520px}.operator-book__object .book3d{width:min(58vw,340px)}.operator-fit>div{grid-template-columns:1fr;align-items:start}.operator-final{grid-template-columns:1fr;align-content:end}.operator-final .table-concept__cta{margin-top:20px}
}
@media (max-width:520px){
  .table-concept__header>a:last-child{display:none}.table-concept__header{grid-template-columns:1fr;background:rgba(247,244,237,.96)}.operator-film{height:390vh}.operator-film__poster,.operator-film__canvas{object-position:62% center}.operator-film__shade{background:linear-gradient(180deg,rgba(247,244,237,.98) 0%,rgba(247,244,237,.93) 30%,rgba(247,244,237,.58) 52%,rgba(247,244,237,.05) 76%)}.operator-film__copy{top:31%;left:20px;right:20px;width:auto;transform:translateY(calc(-50% + 14px))}.operator-film[data-step="0"] .operator-film__copy--0,.operator-film[data-step="1"] .operator-film__copy--1,.operator-film[data-step="2"] .operator-film__copy--2,.operator-film[data-step="3"] .operator-film__copy--3{transform:translateY(-50%)}.operator-film__copy h1,.operator-film__copy h2{margin:15px 0 16px;font-size:clamp(45px,13.4vw,65px);line-height:.88}.operator-film__copy>p:last-of-type{max-width:31ch;font-size:16px}.operator-film__copy .table-concept__cta{margin-top:22px;padding:12px 16px}.operator-film__instruction{display:none}.operator-film__progress{left:20px;right:20px;bottom:18px;width:auto;gap:4px;font-size:8px}.operator-film__measure{right:20px;bottom:70px;width:52vw}.operator-film__measure>div:first-child{display:none}.operator-film__measure>i{margin-top:0}.operator-summary ol li{gap:13px}.operator-summary blockquote{font-size:clamp(48px,14vw,78px)}
  .table-journey__camera img,.table-journey__camera-video--diagnostic,.table-journey__camera-video--decisions{left:-34%;width:168%;object-position:62% center}.table-journey__shade{background:linear-gradient(180deg,rgba(247,244,237,.97) 0%,rgba(247,244,237,.9) 45%,rgba(247,244,237,.54) 72%,rgba(247,244,237,.2) 100%)}.table-journey__phase{display:block;padding:92px 20px 65px}.table-journey__heading h2{margin:17px 0 16px;font-size:clamp(43px,13vw,61px)}.table-journey__heading>p:last-of-type{font-size:15px}.table-journey__heading--threep h2{font-size:clamp(39px,11.5vw,51px)}.table-journey__heading--threep>p:last-of-type{max-width:30ch;font-size:13px}.table-journey__zones{width:100%;height:min(42vh,350px);margin-top:16px}.table-journey__document{padding:10px}.table-journey__document-meta{font-size:6px}.table-journey__document-rule{margin:7px 0 8px}.table-journey__document-lines{gap:5px}.table-journey__document-signal{left:10px;right:10px;bottom:10px}.table-journey__zone-label{left:6px;right:6px;bottom:6px;grid-template-columns:17px 1fr;gap:0 4px;padding:6px}.table-journey__zone-label>span{font-size:6px}.table-journey__zone-label strong{font-size:14px}.table-journey__zone-label p{font-size:5px;white-space:nowrap}.table-journey__groups,.table-journey__readings,.table-journey__evidence{width:100%;margin-top:30px}.table-journey__groups li{padding:11px 0}.table-journey__groups strong{font-size:25px}.table-journey__groups p{font-size:9px}.table-journey__readings li{min-height:96px;padding:10px 9px 8px 0}.table-journey__readings li:nth-child(even){padding-left:9px}.table-journey__readings span{font-size:8px}.table-journey__readings strong{margin:8px 0 2px;font-size:24px}.table-journey__readings p{font-size:11px}.table-journey__evidence li{min-height:116px;padding:12px 9px 8px 0}.table-journey__evidence li:nth-child(even){padding-left:9px}.table-journey__evidence strong{font-size:32px}.table-journey__evidence p{margin:10px 0 5px;font-size:13px}.table-journey__evidence span{font-size:8px}.table-journey__heading--book{width:100%}.table-journey__heading--book h2{font-size:clamp(37px,10.8vw,51px)}.table-journey__heading--book>p:last-of-type,.table-journey__heading--book blockquote{width:58%}.table-journey__heading--book blockquote{margin:21px 0 17px;font-size:17px}.table-journey__heading--book .table-concept__cta{gap:8px;padding:10px 11px;font-size:11px}.table-journey__book .book3d{--w:clamp(115px,38vw,170px)}.table-journey[data-active="true"] .table-journey__book{right:4vw;top:82%}.table-journey[data-active="true"] .table-journey__progress{left:20px;right:20px;bottom:17px;gap:3px;font-size:8px}
  .table-journey__questions,.table-journey__routes,.table-journey__method,.table-journey__experience{width:100%;margin-top:28px}.table-journey__questions li{grid-template-columns:23px 1fr;gap:6px;min-height:88px;padding:10px 8px 9px 0}.table-journey__questions li:nth-child(even){padding-left:8px}.table-journey__questions span{font-size:8px}.table-journey__questions p{font-size:14px}.table-journey__routes>li{grid-template-columns:20px 1fr;gap:1px 5px;min-height:133px;padding:9px 7px 8px 0}.table-journey__routes>li:nth-child(even){padding-left:7px}.table-journey__routes>li>span,.table-journey__routes small{font-size:7px}.table-journey__routes strong{font-size:20px}.table-journey__routes ul{margin-top:7px}.table-journey__routes ul li{margin-top:2px;font-size:10px}.table-journey__method li{grid-template-columns:25px .6fr 1.25fr;gap:7px;padding:10px 0}.table-journey__method span,.table-journey__method p{font-size:8px}.table-journey__method strong{font-size:17px}.table-journey__experience{grid-template-columns:1fr 1fr;gap:12px}.table-journey__experience>div>p{padding-bottom:8px;font-size:8px}.table-journey__experience li{padding:6px 0}.table-journey__experience strong{font-size:12px}.table-journey__experience span{font-size:7px}.table-journey[data-active="true"] .table-journey__progress span{height:3px;font-size:0;background:rgba(38,50,56,.18)}
  .operator-impact ol{grid-template-columns:1fr}.operator-impact li{min-height:190px;border-right:0!important}.operator-impact li+li{padding-left:0}.operator-founder__copy ul{grid-template-columns:1fr;gap:18px}.operator-founder__copy li{grid-template-columns:100px 1fr;align-items:baseline}.operator-book__object{min-height:430px}.operator-book__object .book3d{width:min(68vw,300px)}.operator-final__base{display:grid;gap:12px}
}
@media (max-width:850px){
  .table-journey__profit-board,.table-journey__positioning-board,.table-journey__portfolio-board,.table-journey__method-board,.table-journey__evidence-board{width:min(72vw,600px)}
}
@media (max-width:520px){
  .table-journey__phase--1 .table-journey__heading h2{font-size:clamp(40px,11.8vw,53px)}
  .table-journey__phase--1 .table-journey__heading>p:last-of-type{max-width:32ch;font-size:13px}
  .table-journey__profit-board{width:100%;min-height:244px;margin-top:24px;padding:12px 13px 10px;transform:translate3d(calc((1 - var(--profit-in)) * 8vw),calc((1 - var(--profit-in)) * 18vh),0) scale(calc(.5 + var(--profit-in) * .5)) rotateX(calc(58deg - var(--profit-in) * 58deg)) rotateZ(.3deg)}
  .table-journey__profit-meta{grid-template-columns:1fr auto;padding-bottom:10px;font-size:7px}.table-journey__profit-meta span:last-child{display:none}
  .table-journey__profit-columns{display:none}
  .table-journey__profit-board .table-journey__readings{position:relative;width:100%;height:157px;margin:0}
  .table-journey__profit-board .table-journey__profit-reading{position:absolute;inset:0;display:none;grid-template-columns:1fr auto;grid-template-rows:auto auto 1fr;gap:5px 14px;align-content:center;min-height:0;padding:19px 4px 14px;border-top:1px solid rgba(38,50,56,.4);border-right:0;opacity:1;transform:none}
  .table-journey[data-profit="0"] .table-journey__profit-reading:nth-child(1),.table-journey[data-profit="1"] .table-journey__profit-reading:nth-child(2),.table-journey[data-profit="2"] .table-journey__profit-reading:nth-child(3),.table-journey[data-profit="3"] .table-journey__profit-reading:nth-child(4),.table-journey[data-profit="4"] .table-journey__profit-reading:nth-child(5),.table-journey[data-profit="5"] .table-journey__profit-reading:nth-child(6){display:grid}
  .table-journey__profit-board .table-journey__profit-reading span{grid-column:1;font-size:8px}.table-journey__profit-board .table-journey__profit-reading strong{grid-column:2;grid-row:1/3;font-size:34px}.table-journey__profit-board .table-journey__profit-reading p{grid-column:1/-1;align-self:end;font-size:15px}
  .table-journey__profit-reading>i{bottom:0}.table-journey__profit-reading>i b{width:100%}
  .table-journey__profit-index{display:flex;gap:6px;align-items:center}.table-journey__profit-index i{display:block;width:100%;height:2px;background:rgba(38,50,56,.16)}
  .table-journey[data-profit="0"] .table-journey__profit-index i:nth-child(1),.table-journey[data-profit="1"] .table-journey__profit-index i:nth-child(2),.table-journey[data-profit="2"] .table-journey__profit-index i:nth-child(3),.table-journey[data-profit="3"] .table-journey__profit-index i:nth-child(4),.table-journey[data-profit="4"] .table-journey__profit-index i:nth-child(5),.table-journey[data-profit="5"] .table-journey__profit-index i:nth-child(6){background:var(--blue)}
  .table-journey__profit-scan{left:8px;right:8px;top:48px;transform:translateY(calc(var(--profit) * 138px))}
  .table-journey__phase--2 .table-journey__heading h2{font-size:clamp(39px,11.5vw,51px)}.table-journey__phase--2 .table-journey__heading>p:last-of-type{max-width:32ch;font-size:13px}
  .table-journey__positioning-board{width:100%;height:305px;margin-top:22px;transform:translate3d(calc((1 - var(--positioning-in)) * 8vw),calc((1 - var(--positioning-in)) * 18vh),0) scale(calc(.5 + var(--positioning-in) * .5)) rotateX(calc((1 - var(--positioning-in)) * 58deg))}
  .table-journey__positioning-board .table-journey__questions{left:8px;right:8px;bottom:8px}.table-journey__positioning-board .table-journey__questions li{grid-template-columns:23px 1fr;gap:7px;min-height:79px;padding:10px 11px}.table-journey__positioning-board .table-journey__questions span{font-size:7px}.table-journey__positioning-board .table-journey__questions p{font-size:18px}.table-journey__positioning-index{left:20px;right:20px;bottom:3px}
  .table-journey__phase--3 .table-journey__heading h2{font-size:clamp(41px,12vw,54px)}.table-journey__phase--3 .table-journey__heading>p:last-of-type{max-width:33ch;font-size:13px}
  .table-journey__portfolio-board{width:100%;height:252px;margin-top:22px;transform:translate3d(calc((1 - var(--portfolio-in)) * 8vw),calc((1 - var(--portfolio-in)) * 18vh),0) scale(calc(.5 + var(--portfolio-in) * .5)) rotateX(calc((1 - var(--portfolio-in)) * 58deg))}.table-journey__portfolio-origin{width:92px;height:55px;font-size:6px}.table-journey__portfolio-origin i{width:280px}
  .table-journey__portfolio-board .table-journey__route{left:8px;right:8px;top:0;bottom:auto;display:none;width:auto;aspect-ratio:auto;min-height:210px;padding:17px 18px;transform:none}.table-journey[data-portfolio="0"] .table-journey__route--1,.table-journey[data-portfolio="1"] .table-journey__route--2,.table-journey[data-portfolio="2"] .table-journey__route--3,.table-journey[data-portfolio="3"] .table-journey__route--4{display:grid}
  .table-journey__portfolio-board .table-journey__route strong{font-size:32px}.table-journey__portfolio-board .table-journey__route small,.table-journey__portfolio-board .table-journey__route>span{font-size:7px}.table-journey__portfolio-board .table-journey__route ul li{font-size:13px}
  .table-journey__portfolio-index{position:absolute;z-index:6;left:17px;right:17px;bottom:23px;display:flex;gap:5px}.table-journey__portfolio-index i{display:block;width:100%;padding-top:5px;border-top:2px solid rgba(38,50,56,.15);font:var(--type-mono);font-size:6px;color:var(--ink-4)}.table-journey[data-portfolio="0"] .table-journey__portfolio-index i:nth-child(1),.table-journey[data-portfolio="1"] .table-journey__portfolio-index i:nth-child(2),.table-journey[data-portfolio="2"] .table-journey__portfolio-index i:nth-child(3),.table-journey[data-portfolio="3"] .table-journey__portfolio-index i:nth-child(4){border-color:var(--blue);color:var(--blue)}
  .table-journey__phase--4 .table-journey__heading h2,.table-journey__phase--5 .table-journey__heading h2{font-size:clamp(39px,11.5vw,51px)}.table-journey__phase--4 .table-journey__heading>p:last-of-type,.table-journey__phase--5 .table-journey__heading>p:last-of-type{max-width:33ch;font-size:13px}
  .table-journey__method-board{width:100%;min-height:228px;margin-top:22px;padding:12px 13px 10px;transform:translate3d(calc((1 - var(--method-in)) * 8vw),calc((1 - var(--method-in)) * 18vh),0) scale(calc(.5 + var(--method-in) * .5)) rotateX(calc((1 - var(--method-in)) * 58deg)) rotateZ(-.2deg)}.table-journey__method-meta{padding-bottom:10px;font-size:7px}.table-journey__method-board .table-journey__method{position:relative;width:100%;height:156px;margin:0}.table-journey__method-board .table-journey__method li{position:absolute;inset:0;display:none;grid-template-columns:31px 1fr;grid-template-rows:auto 1fr;gap:4px 8px;align-content:center;min-height:0;padding:18px 8px;opacity:1;transform:none}.table-journey[data-method="0"] .table-journey__method li:nth-child(1),.table-journey[data-method="1"] .table-journey__method li:nth-child(2),.table-journey[data-method="2"] .table-journey__method li:nth-child(3),.table-journey[data-method="3"] .table-journey__method li:nth-child(4),.table-journey[data-method="4"] .table-journey__method li:nth-child(5){display:grid}.table-journey__method-board .table-journey__method strong{font-size:34px}.table-journey__method-board .table-journey__method p{grid-column:2;font-size:9px}.table-journey__method-index{display:flex;gap:5px}.table-journey__method-index i{display:block;width:100%;padding-top:5px;border-top:2px solid rgba(38,50,56,.15);font:var(--type-mono);font-size:6px;color:var(--ink-4)}.table-journey[data-method="0"] .table-journey__method-index i:nth-child(1),.table-journey[data-method="1"] .table-journey__method-index i:nth-child(2),.table-journey[data-method="2"] .table-journey__method-index i:nth-child(3),.table-journey[data-method="3"] .table-journey__method-index i:nth-child(4),.table-journey[data-method="4"] .table-journey__method-index i:nth-child(5){border-color:var(--blue);color:var(--blue)}
  .table-journey__evidence-board{width:100%;min-height:225px;margin-top:22px;padding:12px 13px 10px;transform:translate3d(calc((1 - var(--evidence-in)) * 8vw),calc((1 - var(--evidence-in)) * 18vh),0) scale(calc(.5 + var(--evidence-in) * .5)) rotateX(calc((1 - var(--evidence-in)) * 58deg)) rotateZ(.25deg)}.table-journey__evidence-meta{padding-bottom:10px;font-size:7px}.table-journey__evidence-board .table-journey__evidence{position:relative;width:100%;height:154px;margin:0}.table-journey__evidence-board .table-journey__evidence li{position:absolute;inset:0;display:none;grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:7px;align-content:center;min-height:0;padding:16px 5px;border-right:0;opacity:1;transform:none}.table-journey[data-evidence="0"] .table-journey__evidence li:nth-child(1),.table-journey[data-evidence="1"] .table-journey__evidence li:nth-child(2),.table-journey[data-evidence="2"] .table-journey__evidence li:nth-child(3),.table-journey[data-evidence="3"] .table-journey__evidence li:nth-child(4){display:grid}.table-journey__evidence-board .table-journey__evidence strong{font-size:42px}.table-journey__evidence-board .table-journey__evidence p{font-size:15px}.table-journey__evidence-board .table-journey__evidence span{font-size:7px}.table-journey__evidence-index{display:flex;gap:5px}.table-journey__evidence-index i{display:block;width:100%;padding-top:5px;border-top:2px solid rgba(38,50,56,.15);font:var(--type-mono);font-size:6px;color:var(--ink-4)}.table-journey[data-evidence="0"] .table-journey__evidence-index i:nth-child(1),.table-journey[data-evidence="1"] .table-journey__evidence-index i:nth-child(2),.table-journey[data-evidence="2"] .table-journey__evidence-index i:nth-child(3),.table-journey[data-evidence="3"] .table-journey__evidence-index i:nth-child(4){border-color:var(--blue);color:var(--blue)}.table-journey__evidence-scan{left:8px;right:8px;top:44px;transform:translateY(calc(var(--evidence) * 137px))}
}
@media (prefers-reduced-motion:reduce){
  .operator-film{height:100svh}.operator-film__poster--start,.operator-film__canvas{display:none}.operator-film__poster--resolved{opacity:1}.operator-film__copy:not(.operator-film__copy--3),.operator-film__progress,.operator-film__instruction{display:none}.operator-film__copy--3{opacity:1;transform:translateY(-50%);pointer-events:auto}.operator-film__measure{opacity:1;transform:none}
  .table-journey[data-active="true"]{height:auto}.table-journey[data-active="true"] .table-journey__sticky{position:relative;height:auto}.table-journey[data-active="true"] .table-journey__phase{position:relative;min-height:100svh;opacity:1;transform:none;pointer-events:auto}.table-journey[data-active="true"] .table-journey__book{position:relative;right:auto;top:auto;opacity:1;transform:none;pointer-events:auto}.table-journey[data-active="true"] .table-journey__progress{display:none}
  .table-journey__profit-board .table-journey__profit-reading{position:relative;display:grid;inset:auto}.table-journey__profit-board .table-journey__readings{height:auto}.table-journey__profit-scan{display:none}
  .table-journey__positioning-board{height:auto}.table-journey__positioning-board .table-journey__positioning-sheet{position:relative;inset:auto;min-height:360px;padding-bottom:24px}.table-journey__positioning-board .table-journey__questions{position:relative;left:auto;right:auto;bottom:auto;margin-top:12px}.table-journey__positioning-board .table-journey__questions li{display:grid}.table-journey__positioning-index{display:none}
  .table-journey__portfolio-board{height:auto}.table-journey__portfolio-board .table-journey__routes{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px}.table-journey__portfolio-board .table-journey__route{position:relative;inset:auto;display:grid;width:auto;transform:none}.table-journey__portfolio-origin,.table-journey__portfolio-index{display:none}
  .table-journey__method-board .table-journey__method{height:auto}.table-journey__method-board .table-journey__method li{position:relative;inset:auto;display:grid;opacity:1;transform:none}.table-journey__method-index{display:none}
  .table-journey__evidence-board .table-journey__evidence{height:auto}.table-journey__evidence-board .table-journey__evidence li{position:relative;inset:auto;display:grid;opacity:1;transform:none}.table-journey__evidence-index,.table-journey__evidence-scan{display:none}
}

/* ==========================================================================
   Logo motion study · supplied geometric artwork
   ========================================================================== */
.logo-motion{--mx:0;--my:0;min-height:100svh;display:grid;grid-template-rows:72px 1fr 58px;overflow:hidden;background:var(--paper);color:var(--ink)}
.logo-motion__header,.logo-motion__footer{position:relative;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 clamp(20px,4vw,64px);font:var(--type-mono);text-transform:uppercase;letter-spacing:.08em}
.logo-motion__header{border-bottom:1px solid var(--border-hairline)}.logo-motion__footer{border-top:1px solid var(--border-hairline);color:var(--ink-4)}
.logo-motion__header a{color:inherit;text-decoration:none;font-family:var(--font-sans);font-size:16px;font-weight:500;text-transform:none;letter-spacing:-.02em}.logo-motion__header>span{opacity:.62}.logo-motion__header button{justify-self:end;padding:9px 14px;border:1px solid var(--border-soft);border-radius:999px;background:transparent;color:inherit;font:inherit;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:background-color 180ms cubic-bezier(.16,1,.3,1),color 180ms cubic-bezier(.16,1,.3,1)}.logo-motion__header button:hover{background:var(--ink);color:var(--paper)}
.logo-motion__stage{--mx:0;--my:0;position:relative;display:grid;place-items:center;min-height:0;perspective:1500px;isolation:isolate;touch-action:pan-y}
.logo-motion__halo{position:absolute;left:50%;top:55%;width:min(56vw,780px);aspect-ratio:1;border:1px solid rgba(38,50,56,.08);border-radius:50%;transform:translate(-50%,-50%) scale(.9);box-shadow:0 0 0 11vw rgba(10,103,161,.025),0 0 0 22vw rgba(10,103,161,.018)}
.logo-motion__camera{position:relative;width:min(66vw,calc(100svh - 170px),820px);aspect-ratio:1;transform-style:preserve-3d;animation:logo-camera 4.6s cubic-bezier(.16,1,.3,1) both}
.logo-motion__rig{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(calc(var(--my) * -5deg)) rotateY(calc(var(--mx) * 7deg));transition:transform 500ms cubic-bezier(.16,1,.3,1)}
.logo-motion__piece{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;clip-path:var(--clip);transform-origin:center;opacity:0;backface-visibility:visible;will-change:transform,opacity,filter;animation:logo-piece-in 3.4s cubic-bezier(.16,1,.3,1) var(--delay) both}
.logo-motion__piece--4,.logo-motion__piece--5{animation-name:logo-piece-ripple}
.logo-motion__wordmark{position:absolute;z-index:5;left:clamp(20px,4vw,64px);bottom:clamp(22px,4vw,55px);display:grid;gap:3px;opacity:0;transform:translateY(14px);animation:logo-wordmark-in 900ms cubic-bezier(.16,1,.3,1) 3.15s both}.logo-motion__wordmark strong{font-size:clamp(24px,2.4vw,38px);font-weight:500;letter-spacing:-.04em}.logo-motion__wordmark span{font:var(--type-mono);text-transform:uppercase;color:var(--ink-4)}
.logo-motion__footer span:last-child{justify-self:end}
@keyframes logo-camera{0%{transform:rotateX(58deg) rotateZ(-12deg) scale(.7) translate3d(5%,-3%,0)}42%{transform:rotateX(18deg) rotateZ(2deg) scale(.9) translate3d(0,0,0)}100%{transform:rotateX(0) rotateZ(0) scale(1) translate3d(0,0,0)}}
@keyframes logo-piece-in{0%{opacity:.12;filter:drop-shadow(0 22px 22px rgba(38,50,56,.17));transform:translate3d(var(--x),var(--y),var(--z)) rotateX(var(--rx)) rotateY(var(--ry)) rotateZ(var(--rz)) scale(.76)}30%{opacity:1}78%{filter:drop-shadow(0 14px 14px rgba(38,50,56,.12));transform:translate3d(0,0,12px) rotateX(0) rotateY(0) rotateZ(0) scale(1)}100%{opacity:1;filter:none;transform:translate3d(0,0,0) rotateX(0) rotateY(0) rotateZ(0) scale(1)}}
@keyframes logo-piece-ripple{0%{opacity:0;filter:drop-shadow(0 22px 22px rgba(38,50,56,.17));transform:translate3d(var(--x),var(--y),var(--z)) rotateX(var(--rx)) rotateY(var(--ry)) rotateZ(var(--rz)) scale(.55)}46%{opacity:1}74%{filter:drop-shadow(0 14px 14px rgba(38,50,56,.12));transform:translate3d(0,0,22px) rotateX(0) rotateY(0) rotateZ(0) scale(1.035)}100%{opacity:1;filter:none;transform:translate3d(0,0,0) rotateX(0) rotateY(0) rotateZ(0) scale(1)}}
@keyframes logo-wordmark-in{to{opacity:1;transform:none}}
@media (max-width:700px){
  .logo-motion{grid-template-rows:64px 1fr 50px}.logo-motion__header,.logo-motion__footer{grid-template-columns:1fr auto;padding:0 18px}.logo-motion__header>span{display:none}.logo-motion__camera{width:106vw}.logo-motion__halo{width:94vw}.logo-motion__wordmark{left:20px;bottom:24px}.logo-motion__footer span:first-child{display:none}.logo-motion__footer span:last-child{justify-self:start;font-size:8px}
}
@media (prefers-reduced-motion:reduce){
  .logo-motion__camera,.logo-motion__piece,.logo-motion__wordmark{animation:none}.logo-motion__piece,.logo-motion__wordmark{opacity:1;transform:none}.logo-motion__rig{transform:none}.logo-motion__halo{box-shadow:none}
}
@media (max-width:520px){
  .table-journey__positioning-board{height:286px}
  .table-journey__positioning-sheet{padding:12px 13px 84px}
  .table-journey__positioning-meta{padding-bottom:8px;font-size:6px}
  .table-journey__positioning-title{grid-template-columns:1fr auto;gap:10px;padding:14px 0 12px}
  .table-journey__positioning-title strong{font-size:25px}
  .table-journey__positioning-title small{max-width:14ch;font-size:6px;line-height:1.3}
  .table-journey__positioning-map{grid-template-columns:auto 1fr;padding:11px 0;gap:7px 9px}
  .table-journey__positioning-map span{font-size:6px}
  .table-journey__positioning-notes{gap:6px}.table-journey__positioning-notes i{height:3px}
  .table-journey__positioning-board .table-journey__questions{left:13px;right:13px;bottom:12px}
  .table-journey__positioning-board .table-journey__questions li{grid-template-columns:24px 1fr;gap:8px;min-height:70px;padding:10px 0 0}
  .table-journey__positioning-board .table-journey__questions p{font-size:17px}
  .table-journey[data-scene="7"] .table-journey__shade{background:linear-gradient(90deg,rgba(247,244,237,.99) 0%,rgba(247,244,237,.96) 57%,rgba(247,244,237,.72) 70%,rgba(247,244,237,.14) 100%)}
  .table-journey__heading--book h2{width:58%}
}

.operator-fit li span{color:var(--copper-text)}
.operator-final__base a:hover{text-decoration:underline;text-underline-offset:4px}
.operator-final{min-height:100svh}
.operator-final h2{margin-top:0}
.table-concept__brand{display:inline-flex;align-items:center;gap:10px;width:max-content;color:inherit;text-decoration:none;font-family:var(--font-sans);font-size:16px;font-weight:500;text-transform:none;letter-spacing:-.025em}.table-concept__brand img{width:31px;height:31px;object-fit:contain;animation:operator-brand-mark-in 1100ms cubic-bezier(.16,1,.3,1) both;transform-origin:center;will-change:transform,opacity}.table-concept__brand span{white-space:nowrap}
@keyframes operator-brand-mark-in{0%{opacity:0;transform:perspective(180px) rotateX(62deg) rotateY(-28deg) rotateZ(-7deg) scale(.72)}65%{opacity:1;transform:perspective(180px) rotateX(-4deg) rotateY(3deg) rotateZ(1deg) scale(1.04)}100%{opacity:1;transform:none}}
@media (max-width:700px){.table-concept__brand{gap:8px;font-size:15px}.table-concept__brand img{width:27px;height:27px}}
@media (prefers-reduced-motion:reduce){.table-concept__brand img{animation:none}}

/* Production navigation stays literal and compact. Framework language belongs
   in the page story, not in the site chrome. */
@media (max-width:850px){
  .table-concept__header{display:flex}
  .table-concept__header>.table-concept__brand{display:inline-flex;font-size:15px}
  .table-concept__header nav{gap:18px}
  .table-concept__header nav>a:not(.table-concept__header-cta){display:none}
  .table-concept__header-cta{font-size:9px}
}
@media (max-width:520px){
  .table-concept__header{display:flex;background:rgba(247,244,237,.96)}
  .table-concept__header>.table-concept__brand{display:inline-flex}
  .operator-final__base{display:grid;gap:12px}
  .operator-final__base nav{justify-content:space-between;gap:12px}
}
@media (min-width:521px){
  .table-journey__profit-columns,
  .table-journey__profit-board .table-journey__profit-reading{grid-template-columns:minmax(0,.75fr) minmax(110px,.8fr) minmax(0,1.15fr)}
}

/* Final motion pass: the generated table dissolves into the warm paper field
   only after the book has begun to lift. Copy and the official cover remain
   crisp HTML above it. */
.table-journey{--book-field:0}
.table-journey__book-field{position:absolute;z-index:2;inset:0;background:linear-gradient(110deg,var(--paper) 0%,rgba(252,252,250,.98) 58%,rgba(241,244,247,.96) 100%);opacity:var(--book-field);pointer-events:none;will-change:opacity}

/* Positioning questions occupy one physical sheet and crossfade in place. */
.table-journey__positioning-board .table-journey__questions{height:94px}
.table-journey__positioning-board .table-journey__questions li{position:absolute;inset:0;display:grid;opacity:0;visibility:hidden;transform:translate3d(0,8px,0);transition:opacity 170ms cubic-bezier(.16,1,.3,1),transform 250ms cubic-bezier(.16,1,.3,1),visibility 0s linear 180ms}
.table-journey[data-positioning="0"] .table-journey__questions li:nth-child(1),.table-journey[data-positioning="1"] .table-journey__questions li:nth-child(2),.table-journey[data-positioning="2"] .table-journey__questions li:nth-child(3),.table-journey[data-positioning="3"] .table-journey__questions li:nth-child(4),.table-journey[data-positioning="4"] .table-journey__questions li:nth-child(5),.table-journey[data-positioning="5"] .table-journey__questions li:nth-child(6){opacity:1;visibility:visible;transform:none;transition-delay:0s}

.table-concept__cta:active,.table-concept__header-cta:active,.channel:active{transform:scale(var(--press-scale));transition-duration:var(--dur-instant)}
.site-header .site-geometric-lockup img{animation:site-mark-arrive 720ms cubic-bezier(.16,1,.3,1) both;transform-origin:center}
@keyframes site-mark-arrive{from{opacity:0;transform:perspective(160px) rotateX(48deg) rotateY(-20deg) scale(.78)}to{opacity:1;transform:none}}

@media (max-width:520px){
  .table-journey__positioning-board .table-journey__questions{height:79px}
  .table-journey__profit-board .table-journey__profit-reading,
  .table-journey__portfolio-board .table-journey__route,
  .table-journey__method-board .table-journey__method li,
  .table-journey__evidence-board .table-journey__evidence li{display:grid!important;opacity:0!important;visibility:hidden;transform:translate3d(0,8px,0)!important;transition:opacity 170ms cubic-bezier(.16,1,.3,1),transform 250ms cubic-bezier(.16,1,.3,1),visibility 0s linear 180ms}

  .table-journey[data-profit="0"] .table-journey__profit-reading:nth-child(1),.table-journey[data-profit="1"] .table-journey__profit-reading:nth-child(2),.table-journey[data-profit="2"] .table-journey__profit-reading:nth-child(3),.table-journey[data-profit="3"] .table-journey__profit-reading:nth-child(4),.table-journey[data-profit="4"] .table-journey__profit-reading:nth-child(5),.table-journey[data-profit="5"] .table-journey__profit-reading:nth-child(6),
  .table-journey[data-portfolio="0"] .table-journey__route--1,.table-journey[data-portfolio="1"] .table-journey__route--2,.table-journey[data-portfolio="2"] .table-journey__route--3,.table-journey[data-portfolio="3"] .table-journey__route--4,
  .table-journey[data-method="0"] .table-journey__method li:nth-child(1),.table-journey[data-method="1"] .table-journey__method li:nth-child(2),.table-journey[data-method="2"] .table-journey__method li:nth-child(3),.table-journey[data-method="3"] .table-journey__method li:nth-child(4),.table-journey[data-method="4"] .table-journey__method li:nth-child(5),
  .table-journey[data-evidence="0"] .table-journey__evidence li:nth-child(1),.table-journey[data-evidence="1"] .table-journey__evidence li:nth-child(2),.table-journey[data-evidence="2"] .table-journey__evidence li:nth-child(3),.table-journey[data-evidence="3"] .table-journey__evidence li:nth-child(4){opacity:1!important;visibility:visible;transform:none!important;transition-delay:0s}
}

@media (prefers-reduced-motion:reduce){
  .site-header .site-geometric-lockup img{animation:none}
  .table-journey__positioning-board .table-journey__questions{height:auto}
  .table-journey__positioning-board .table-journey__questions li,
  .table-journey__profit-board .table-journey__profit-reading,
  .table-journey__portfolio-board .table-journey__route,
  .table-journey__method-board .table-journey__method li,
  .table-journey__evidence-board .table-journey__evidence li{position:relative;inset:auto;display:grid!important;opacity:1!important;visibility:visible;transform:none!important;transition:none}
}

/* Flagship motion polish: phase changes are tied continuously to scroll so
   adjacent chapters hand off instead of cutting between finished mockups. */
.table-journey[data-active="true"] .table-journey__phase{opacity:var(--phase-opacity,0);transform:translate3d(0,var(--phase-y,20px),0) scale(var(--phase-scale,.992));transition:none;will-change:transform,opacity}
.table-journey__phase--0{--phase-opacity:var(--phase-0);--phase-y:var(--phase-0-y);--phase-scale:var(--phase-0-scale)}
.table-journey__phase--1{--phase-opacity:var(--phase-1);--phase-y:var(--phase-1-y);--phase-scale:var(--phase-1-scale)}
.table-journey__phase--2{--phase-opacity:var(--phase-2);--phase-y:var(--phase-2-y);--phase-scale:var(--phase-2-scale)}
.table-journey__phase--3{--phase-opacity:var(--phase-3);--phase-y:var(--phase-3-y);--phase-scale:var(--phase-3-scale)}
.table-journey__phase--4{--phase-opacity:var(--phase-4);--phase-y:var(--phase-4-y);--phase-scale:var(--phase-4-scale)}
.table-journey__phase--5{--phase-opacity:var(--phase-5);--phase-y:var(--phase-5-y);--phase-scale:var(--phase-5-scale)}
.table-journey__phase--6{--phase-opacity:var(--phase-6);--phase-y:var(--phase-6-y);--phase-scale:var(--phase-6-scale)}
.table-journey__phase--7{--phase-opacity:var(--phase-7);--phase-y:var(--phase-7-y);--phase-scale:var(--phase-7-scale)}

.table-journey__zones{opacity:calc(.66 + var(--threep-copy) * .34)}
.table-journey__profit-board,.table-journey__positioning-board,.table-journey__portfolio-board,.table-journey__method-board,.table-journey__evidence-board{opacity:1}

/* The diagnostic surfaces begin as paper on the table, then gain just enough
   depth to read. The earlier extreme scaling made them feel like UI cards. */
.table-journey__profit-board{transform-origin:78% 96%;box-shadow:0 calc(3px + var(--profit-in) * 9px) calc(8px + var(--profit-in) * 22px) rgba(38,50,56,calc(.04 + var(--profit-in) * .08)),0 1px 3px rgba(38,50,56,.06);transform:translate3d(calc((1 - var(--profit-in)) * 8vw + var(--profit-out) * 3vw),calc((1 - var(--profit-in)) * 15vh + var(--profit-out) * 8vh),calc(var(--profit-in) * 16px - var(--profit-out) * 16px)) scale(calc(.72 + var(--profit-in) * .28 - var(--profit-out) * .06)) rotateX(calc((1 - var(--profit-in)) * 54deg + 1deg + var(--profit-out) * 10deg)) rotateZ(calc((1 - var(--profit-in)) * -.8deg + .18deg + var(--profit-out) * .35deg))}
.table-journey__positioning-board{transform-origin:86% 94%;transform:translate3d(calc((1 - var(--positioning-in)) * 6.5vw + var(--positioning-out) * 2vw),calc((1 - var(--positioning-in)) * 14vh + var(--positioning-out) * 9vh),calc(var(--positioning-in) * 18px - var(--positioning-out) * 18px)) scale(calc(.74 + var(--positioning-in) * .26 - var(--positioning-out) * .055)) rotateX(calc((1 - var(--positioning-in)) * 50deg + 1deg + var(--positioning-out) * 11deg)) rotateZ(calc((1 - var(--positioning-in)) * .65deg - .12deg - var(--positioning-out) * .3deg))}
.table-journey__portfolio-board{transform-origin:72% 96%;transform:translate3d(calc((1 - var(--portfolio-in)) * 9vw + var(--portfolio-out) * 3.5vw),calc((1 - var(--portfolio-in)) * 13vh + var(--portfolio-out) * 8vh),calc(var(--portfolio-in) * 20px - var(--portfolio-out) * 20px)) scale(calc(.7 + var(--portfolio-in) * .3 - var(--portfolio-out) * .06)) rotateX(calc((1 - var(--portfolio-in)) * 48deg + 1deg + var(--portfolio-out) * 9deg)) rotateZ(calc((1 - var(--portfolio-in)) * -1.05deg + .08deg + var(--portfolio-out) * .4deg))}
.table-journey__method-board{transform-origin:88% 94%;box-shadow:0 calc(3px + var(--method-in) * 9px) calc(8px + var(--method-in) * 22px) rgba(38,50,56,calc(.04 + var(--method-in) * .08)),0 1px 3px rgba(38,50,56,.06);transform:translate3d(calc((1 - var(--method-in)) * 7vw + var(--method-out) * 2.5vw),calc((1 - var(--method-in)) * 16vh + var(--method-out) * 8vh),calc(var(--method-in) * 18px - var(--method-out) * 18px)) scale(calc(.74 + var(--method-in) * .26 - var(--method-out) * .055)) rotateX(calc((1 - var(--method-in)) * 56deg + 1deg + var(--method-out) * 10deg)) rotateZ(calc((1 - var(--method-in)) * -.75deg + .12deg + var(--method-out) * .3deg))}
.table-journey__evidence-board{transform-origin:80% 96%;box-shadow:0 calc(3px + var(--evidence-in) * 9px) calc(8px + var(--evidence-in) * 22px) rgba(38,50,56,calc(.04 + var(--evidence-in) * .08)),0 1px 3px rgba(38,50,56,.06);transform:translate3d(calc((1 - var(--evidence-in)) * 9.5vw + var(--evidence-out) * 2.5vw),calc((1 - var(--evidence-in)) * 14.5vh + var(--evidence-out) * 9vh),calc(var(--evidence-in) * 17px - var(--evidence-out) * 17px)) scale(calc(.73 + var(--evidence-in) * .27 - var(--evidence-out) * .06)) rotateX(calc((1 - var(--evidence-in)) * 52deg + 1deg + var(--evidence-out) * 11deg)) rotateZ(calc((1 - var(--evidence-in)) * .55deg - .1deg - var(--evidence-out) * .35deg))}

@media (min-width:851px){
  .table-journey__zones{transform:translate3d(calc((1 - var(--threep-copy)) * 8vw),calc(52px + (1 - var(--threep-copy)) * 16vh),0) scale(calc(.68 + var(--threep-copy) * .32)) rotateX(calc((1 - var(--threep-copy)) * 52deg + 2deg)) rotateZ(calc((1 - var(--threep-copy)) * -1deg - .2deg))}
}

@media (max-width:520px){
  .table-journey__profit-board{transform:translate3d(calc((1 - var(--profit-in)) * 4vw + var(--profit-out) * 2vw),calc((1 - var(--profit-in)) * 11vh + var(--profit-out) * 6vh),calc(var(--profit-in) * 9px - var(--profit-out) * 9px)) scale(calc(.82 + var(--profit-in) * .18 - var(--profit-out) * .04)) rotateX(calc((1 - var(--profit-in)) * 42deg + var(--profit-out) * 8deg)) rotateZ(calc((1 - var(--profit-in)) * -.45deg + var(--profit-out) * .25deg))}
  .table-journey__positioning-board{transform:translate3d(calc((1 - var(--positioning-in)) * 3vw + var(--positioning-out) * 1.5vw),calc((1 - var(--positioning-in)) * 10vh + var(--positioning-out) * 6.5vh),calc(var(--positioning-in) * 10px - var(--positioning-out) * 10px)) scale(calc(.83 + var(--positioning-in) * .17 - var(--positioning-out) * .04)) rotateX(calc((1 - var(--positioning-in)) * 39deg + var(--positioning-out) * 8deg)) rotateZ(calc((1 - var(--positioning-in)) * .35deg - var(--positioning-out) * .2deg))}
  .table-journey__portfolio-board{transform:translate3d(calc((1 - var(--portfolio-in)) * 4.5vw + var(--portfolio-out) * 2vw),calc((1 - var(--portfolio-in)) * 9.5vh + var(--portfolio-out) * 6vh),calc(var(--portfolio-in) * 11px - var(--portfolio-out) * 11px)) scale(calc(.81 + var(--portfolio-in) * .19 - var(--portfolio-out) * .04)) rotateX(calc((1 - var(--portfolio-in)) * 37deg + var(--portfolio-out) * 7deg)) rotateZ(calc((1 - var(--portfolio-in)) * -.55deg + var(--portfolio-out) * .25deg))}
  .table-journey__method-board{transform:translate3d(calc((1 - var(--method-in)) * 3.5vw + var(--method-out) * 1.5vw),calc((1 - var(--method-in)) * 11.5vh + var(--method-out) * 6vh),calc(var(--method-in) * 10px - var(--method-out) * 10px)) scale(calc(.83 + var(--method-in) * .17 - var(--method-out) * .04)) rotateX(calc((1 - var(--method-in)) * 43deg + var(--method-out) * 8deg)) rotateZ(calc((1 - var(--method-in)) * -.35deg + var(--method-out) * .2deg))}
  .table-journey__evidence-board{transform:translate3d(calc((1 - var(--evidence-in)) * 4vw + var(--evidence-out) * 1.5vw),calc((1 - var(--evidence-in)) * 10vh + var(--evidence-out) * 6.5vh),calc(var(--evidence-in) * 10px - var(--evidence-out) * 10px)) scale(calc(.82 + var(--evidence-in) * .18 - var(--evidence-out) * .04)) rotateX(calc((1 - var(--evidence-in)) * 40deg + var(--evidence-out) * 8deg)) rotateZ(calc((1 - var(--evidence-in)) * .3deg - var(--evidence-out) * .2deg))}
}

@media (prefers-reduced-motion:reduce){
  .table-journey[data-active="true"] .table-journey__phase{opacity:1;transform:none;will-change:auto}
  .table-journey__zones,.table-journey__profit-board,.table-journey__positioning-board,.table-journey__portfolio-board,.table-journey__method-board,.table-journey__evidence-board{opacity:1;transform:none;box-shadow:none;will-change:auto}
}

/* Short tablet viewports need the same focused reading rhythm as phones.
   Keeping six rows on one sheet made the document collide with its intro. */
@media (min-width:521px) and (max-width:850px) and (max-height:820px) and (prefers-reduced-motion:no-preference){
  .table-journey__phase--1,.table-journey__phase--2,.table-journey__phase--3,.table-journey__phase--4,.table-journey__phase--5{grid-template-rows:auto auto;align-content:center;gap:24px;padding:68px 48px 52px}
  .table-journey__phase--1 .table-journey__heading h2,.table-journey__phase--2 .table-journey__heading h2,.table-journey__phase--3 .table-journey__heading h2,.table-journey__phase--4 .table-journey__heading h2,.table-journey__phase--5 .table-journey__heading h2{margin:18px 0 15px;font-size:clamp(47px,8.5vw,64px)}
  .table-journey__phase--1 .table-journey__heading>p:last-of-type,.table-journey__phase--2 .table-journey__heading>p:last-of-type,.table-journey__phase--3 .table-journey__heading>p:last-of-type,.table-journey__phase--4 .table-journey__heading>p:last-of-type,.table-journey__phase--5 .table-journey__heading>p:last-of-type{max-width:38ch;font-size:15px;line-height:1.38}
  .table-journey__profit-board{width:min(82vw,680px);min-height:226px;padding:14px 16px 12px}
  .table-journey__profit-meta{grid-template-columns:1fr auto;padding-bottom:10px}.table-journey__profit-meta span:last-child{display:none}
  .table-journey__profit-columns{display:none}
  .table-journey__profit-board .table-journey__readings{position:relative;width:100%;height:151px;margin:0}
  .table-journey__profit-board .table-journey__profit-reading{position:absolute;inset:0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto 1fr;gap:5px 20px;align-content:center;min-height:0;padding:20px 5px 14px;border-top:1px solid rgba(38,50,56,.4);border-right:0;opacity:0;visibility:hidden;transform:translate3d(0,8px,0)}
  .table-journey[data-profit="0"] .table-journey__profit-reading:nth-child(1),.table-journey[data-profit="1"] .table-journey__profit-reading:nth-child(2),.table-journey[data-profit="2"] .table-journey__profit-reading:nth-child(3),.table-journey[data-profit="3"] .table-journey__profit-reading:nth-child(4),.table-journey[data-profit="4"] .table-journey__profit-reading:nth-child(5),.table-journey[data-profit="5"] .table-journey__profit-reading:nth-child(6){opacity:1;visibility:visible;transform:none}
  .table-journey__profit-board .table-journey__profit-reading span{grid-column:1;font-size:9px}.table-journey__profit-board .table-journey__profit-reading strong{grid-column:2;grid-row:1/3;font-size:40px}.table-journey__profit-board .table-journey__profit-reading p{grid-column:1/-1;align-self:end;font-size:15px}
  .table-journey__profit-reading>i{bottom:0}.table-journey__profit-reading>i b{width:100%}
  .table-journey__profit-index{display:flex;gap:7px}.table-journey__profit-index i{display:block;width:100%;height:2px;background:rgba(38,50,56,.16)}
  .table-journey[data-profit="0"] .table-journey__profit-index i:nth-child(1),.table-journey[data-profit="1"] .table-journey__profit-index i:nth-child(2),.table-journey[data-profit="2"] .table-journey__profit-index i:nth-child(3),.table-journey[data-profit="3"] .table-journey__profit-index i:nth-child(4),.table-journey[data-profit="4"] .table-journey__profit-index i:nth-child(5),.table-journey[data-profit="5"] .table-journey__profit-index i:nth-child(6){background:var(--blue)}
  .table-journey__profit-scan{display:none}

  .table-journey__positioning-board{width:min(82vw,680px);height:292px;margin:0}.table-journey__positioning-sheet{padding:14px 16px 88px}.table-journey__positioning-title{padding:17px 0 14px}.table-journey__positioning-board .table-journey__questions{left:16px;right:16px;bottom:12px}.table-journey__positioning-board .table-journey__questions li{min-height:76px;padding:11px 0}.table-journey__positioning-board .table-journey__questions p{font-size:20px}

  .table-journey__portfolio-board{width:min(82vw,680px);height:232px;margin:0}.table-journey__portfolio-origin{display:none}.table-journey__portfolio-board .table-journey__route{left:8px;right:8px;top:0;bottom:auto;display:none;width:auto;aspect-ratio:auto;min-height:196px;padding:16px 18px;transform:none}.table-journey[data-portfolio="0"] .table-journey__route--1,.table-journey[data-portfolio="1"] .table-journey__route--2,.table-journey[data-portfolio="2"] .table-journey__route--3,.table-journey[data-portfolio="3"] .table-journey__route--4{display:grid}.table-journey__portfolio-board .table-journey__route strong{font-size:34px}.table-journey__portfolio-board .table-journey__route ul li{font-size:13px}.table-journey__portfolio-index{left:18px;right:18px;bottom:13px}

  .table-journey__method-board{width:min(82vw,680px);min-height:218px;margin:0;padding:13px 15px 11px}.table-journey__method-board .table-journey__method{position:relative;width:100%;height:148px;margin:0}.table-journey__method-board .table-journey__method li{position:absolute;inset:0;display:none;grid-template-columns:42px 1fr;grid-template-rows:auto 1fr;gap:5px 11px;align-content:center;min-height:0;padding:19px 9px;opacity:1;transform:none}.table-journey[data-method="0"] .table-journey__method li:nth-child(1),.table-journey[data-method="1"] .table-journey__method li:nth-child(2),.table-journey[data-method="2"] .table-journey__method li:nth-child(3),.table-journey[data-method="3"] .table-journey__method li:nth-child(4),.table-journey[data-method="4"] .table-journey__method li:nth-child(5){display:grid}.table-journey__method-board .table-journey__method strong{font-size:38px}.table-journey__method-board .table-journey__method p{grid-column:2;font-size:11px}.table-journey__method-index{display:flex;gap:6px}

  .table-journey__evidence-board{width:min(82vw,680px);min-height:216px;margin:0;padding:13px 15px 11px}.table-journey__evidence-board .table-journey__evidence{position:relative;width:100%;height:146px;margin:0}.table-journey__evidence-board .table-journey__evidence li{position:absolute;inset:0;display:none;grid-template-columns:1fr;grid-template-rows:auto auto auto;gap:7px;align-content:center;min-height:0;padding:16px 7px;border-right:0;opacity:1;transform:none}.table-journey[data-evidence="0"] .table-journey__evidence li:nth-child(1),.table-journey[data-evidence="1"] .table-journey__evidence li:nth-child(2),.table-journey[data-evidence="2"] .table-journey__evidence li:nth-child(3),.table-journey[data-evidence="3"] .table-journey__evidence li:nth-child(4){display:grid}.table-journey__evidence-board .table-journey__evidence strong{font-size:44px}.table-journey__evidence-board .table-journey__evidence p{font-size:16px}.table-journey__evidence-index{display:flex;gap:6px}.table-journey__evidence-scan{display:none}
}

@media (max-width:520px){
  .table-journey__camera-video--context{left:-34%;width:168%;object-position:62% center}
}

/* Focused tablet and phone sheets crossfade their internal reading instead of
   replacing it in a single frame. */
@media (max-width:520px) and (prefers-reduced-motion:no-preference), (min-width:521px) and (max-width:850px) and (max-height:820px) and (prefers-reduced-motion:no-preference){
  .table-journey__profit-board .table-journey__profit-reading,
  .table-journey__positioning-board .table-journey__questions li,
  .table-journey__portfolio-board .table-journey__route,
  .table-journey__method-board .table-journey__method li,
  .table-journey__evidence-board .table-journey__evidence li{display:grid!important;opacity:0!important;visibility:hidden;transform:translate3d(0,7px,0)!important;transition:opacity 180ms cubic-bezier(.25,1,.5,1),transform 320ms cubic-bezier(.16,1,.3,1),visibility 0s linear 180ms}
  .table-journey__positioning-board .table-journey__questions li{position:absolute;inset:0}
  .table-journey[data-profit="0"] .table-journey__profit-reading:nth-child(1),.table-journey[data-profit="1"] .table-journey__profit-reading:nth-child(2),.table-journey[data-profit="2"] .table-journey__profit-reading:nth-child(3),.table-journey[data-profit="3"] .table-journey__profit-reading:nth-child(4),.table-journey[data-profit="4"] .table-journey__profit-reading:nth-child(5),.table-journey[data-profit="5"] .table-journey__profit-reading:nth-child(6),
  .table-journey[data-positioning="0"] .table-journey__questions li:nth-child(1),.table-journey[data-positioning="1"] .table-journey__questions li:nth-child(2),.table-journey[data-positioning="2"] .table-journey__questions li:nth-child(3),.table-journey[data-positioning="3"] .table-journey__questions li:nth-child(4),.table-journey[data-positioning="4"] .table-journey__questions li:nth-child(5),.table-journey[data-positioning="5"] .table-journey__questions li:nth-child(6),
  .table-journey[data-portfolio="0"] .table-journey__route--1,.table-journey[data-portfolio="1"] .table-journey__route--2,.table-journey[data-portfolio="2"] .table-journey__route--3,.table-journey[data-portfolio="3"] .table-journey__route--4,
  .table-journey[data-method="0"] .table-journey__method li:nth-child(1),.table-journey[data-method="1"] .table-journey__method li:nth-child(2),.table-journey[data-method="2"] .table-journey__method li:nth-child(3),.table-journey[data-method="3"] .table-journey__method li:nth-child(4),.table-journey[data-method="4"] .table-journey__method li:nth-child(5),
  .table-journey[data-evidence="0"] .table-journey__evidence li:nth-child(1),.table-journey[data-evidence="1"] .table-journey__evidence li:nth-child(2),.table-journey[data-evidence="2"] .table-journey__evidence li:nth-child(3),.table-journey[data-evidence="3"] .table-journey__evidence li:nth-child(4){opacity:1!important;visibility:visible;transform:none!important;transition-delay:0s}
}

/* The flagship homepage keeps the same complete mobile navigation as the
   supporting pages without changing its lighter over-image header. */
.table-concept__menu-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid rgba(38,50,56,.32);background:rgba(247,244,237,.7);color:var(--ink);cursor:pointer}
.table-concept__menu-toggle span{position:relative;display:block;width:16px;height:1px;background:currentColor}
.table-concept__menu-toggle span::before,.table-concept__menu-toggle span::after{content:"";position:absolute;left:0;width:16px;height:1px;background:currentColor;transition:transform 220ms cubic-bezier(.16,1,.3,1),opacity 140ms cubic-bezier(.25,1,.5,1)}
.table-concept__menu-toggle span::before{top:-5px}.table-concept__menu-toggle span::after{top:5px}
.table-concept__menu-toggle[aria-expanded="true"] span{background:transparent}.table-concept__menu-toggle[aria-expanded="true"] span::before{transform:translateY(5px) rotate(45deg)}.table-concept__menu-toggle[aria-expanded="true"] span::after{transform:translateY(-5px) rotate(-45deg)}
@media (max-width:600px){
  .table-concept__header nav{position:absolute;z-index:31;top:72px;left:0;right:0;display:none;align-items:stretch;gap:0;padding:8px 20px 20px;background:rgba(247,244,237,.99);border-bottom:1px solid var(--border-hairline)}
  .table-concept__header nav.is-open{display:flex;flex-direction:column}
  .table-concept__header nav>a,.table-concept__header nav>a:not(.table-concept__header-cta){display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:12px 0;border-bottom:1px solid rgba(38,50,56,.18);font-family:var(--font-sans);font-size:18px;font-weight:400;letter-spacing:-.025em;text-transform:none}
  .table-concept__header nav .table-concept__header-cta{justify-content:center;min-height:46px;margin-top:16px;padding:12px 16px;border:1px solid var(--ink);font:var(--type-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
  .table-concept__menu-toggle{display:inline-flex;flex:0 0 auto}
}
@media (prefers-reduced-motion:reduce){.table-concept__menu-toggle span::before,.table-concept__menu-toggle span::after{transition:none}}

/* Desk-object finish: these are printed working papers, not interface cards.
   Their warmth, thin lower edge and restrained contact shadow keep them tied to
   the photographed tabletop as they rise toward the reader. */
.table-journey__shade{background:linear-gradient(90deg,rgba(247,244,237,.98) 0%,rgba(247,244,237,.92) 42%,rgba(247,244,237,.66) 64%,rgba(247,244,237,.14) 88%,rgba(247,244,237,.035) 100%)}
.table-journey__document,
.table-journey__profit-board,
.table-journey__positioning-sheet,
.table-journey__portfolio-board .table-journey__route,
.table-journey__method-board,
.table-journey__evidence-board{
  background-color:#f5f1e8;
  border-color:rgba(38,50,56,.27);
  border-bottom:2px solid rgba(106,94,76,.28);
  border-radius:1px;
  backface-visibility:hidden;
  transform-style:preserve-3d;
}
.table-journey__positioning-board::before{content:"";position:absolute;inset:8px -6px -7px 8px;z-index:-1;background:#e6e0d4;border:1px solid rgba(38,50,56,.18);transform:rotateZ(.5deg);box-shadow:0 2px 4px rgba(38,50,56,.06)}
.table-journey__positioning-sheet::before{display:none}
.table-journey__portfolio-board .table-journey__route::after{content:"";position:absolute;left:7px;right:-5px;bottom:-6px;height:6px;z-index:-1;background:#ddd6c9;border:1px solid rgba(38,50,56,.14);transform:skewX(-18deg)}
.table-journey[data-active="true"] .table-journey__book{opacity:var(--book-overlay);transform:translate3d(calc((1 - var(--book-overlay)) * 2vw),calc((1 - var(--book-overlay)) * 4vh - 50%),0) scale(calc(.92 + var(--book-overlay) * .08)) rotate(calc((1 - var(--book-overlay)) * -1.5deg));transform-origin:50% 70%}
.table-journey__book .book3d__body{transform:rotateX(calc(8deg - var(--book-overlay) * 10deg)) rotateY(calc(8deg - var(--book-overlay) * 4deg)) rotateZ(calc(-1.5deg + var(--book-overlay) * 1.5deg))}
.table-journey__book .book3d__stage{transform:translateY(calc((1 - var(--book-overlay)) * 8px))}
.table-journey__book .book3d__shadow{width:calc(var(--w) * .96);height:calc(var(--w) * .2);opacity:calc(.35 + var(--book-overlay) * .2);filter:blur(10px)}
@media (min-width:521px){.table-journey[data-active="true"] .table-journey__book{right:22vw}}
@media (min-width:851px){
  .table-journey__heading--book{width:min(50vw,680px)}
  .table-journey__camera-video--bridge{transform:translate3d(7vw,0,0) scale(1.06);transform-origin:center}
  .table-journey[data-active="true"] .table-journey__book{top:55%}
}
@media (min-width:521px) and (max-width:850px){
  .table-journey__heading--book{width:56vw}
  .table-journey__heading--book h2{font-size:clamp(42px,7.4vw,64px)}
}
@media (prefers-reduced-motion:reduce){
  .table-journey__book .book3d__body{transform:rotateX(-2deg) rotateY(4deg)}
  .table-journey__book .book3d__stage{transform:none}
}
