/*
Theme Name: Indoor Sciences
Theme URI: https://indoorsciences.ae/
Author: Saniservice IT
Description: Classic PHP theme for indoorsciences.ae. Approved markup lives in page templates, never in post_content, so the_content filters cannot retexturize 32,915 words of approved copy.
Version: 0.1.0
Requires at least: 6.0
Requires PHP: 8.0
License: Proprietary
Text Domain: indoorsciences
*/

/* ============================================================================
   SECTION 1 - v25, VERBATIM, IN ORIGINAL CASCADE ORDER. DO NOT REORDER.
   Source: _work/inputs/indoorsciences-home-v25.html, md5 e980068b610cd130e2f6c3903527f0d3
   Two <style> blocks, concatenated in document order. Several rules depend on
   equal-specificity source order, so the order here is load-bearing.
   This block supplies all 75 tokens (--w is 1520px, up from the handover's
   1180px, which reflows every page and is intended), the shell, hero, nav,
   footer, buttons, section furniture, and the full breakpoint ladder.
   ============================================================================ */

/* --- v25 style block 1 of 2 --- */
    .iscv{--paper:#f5f7f9;--panel:#e9eef3;--line:#c9d5de;--ink:#121a22;--body:#26313c;--muted:#5a6672;--blue:#2e4a68;--blue-mid:#5b7f9e;--blue-light:#a9c4d8;--good:#3e6b4f;--elev:#a3702a;--high:#a33328;
      --sans:'Archivo',Helvetica,Arial,sans-serif;--mono:'Fragment Mono','Courier New',monospace;
      font-family:var(--sans);font-weight:300;color:var(--body);background:var(--panel);border:1px solid var(--line);padding:22px 24px 20px;box-sizing:border-box;}
    .iscv *{box-sizing:border-box;}
    .iscv .rd{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);height:5px;margin-bottom:14px;}
    .iscv .hd{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
    .iscv .hd .t{font-size:10.5px;letter-spacing:0.24em;text-transform:uppercase;color:var(--blue-mid);font-weight:400;}
    .iscv .hd .m{font-family:var(--mono);font-size:11px;color:var(--blue);}
    .iscv .stage{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:stretch;}
    .iscv .view{position:relative;background:var(--paper);border:1px solid var(--line);min-height:380px;overflow:hidden;cursor:grab;touch-action:pan-y;}
    .iscv .view canvas{display:block;width:100%;height:100%;}
    .iscv .view .tag{position:absolute;font-family:var(--mono);font-size:10.5px;color:var(--blue-mid);pointer-events:none;}
    .iscv .view .tag.tl{left:12px;top:10px;} .iscv .view .tag.tr{left:12px;right:auto;top:28px;color:var(--blue);max-width:90%;} .iscv .view .tag.bl{left:12px;bottom:10px;} .iscv .view .tag.br{right:12px;bottom:10px;}
    .iscv .view .tag b{font-weight:400;color:var(--ink);}
    .iscv .out{border-top:1px solid var(--ink);display:flex;flex-direction:column;}
    .iscv .row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px;}
    .iscv .row .v{font-family:var(--mono);font-size:12.5px;color:var(--blue);white-space:normal;grid-column:1;grid-row:2;}
    .iscv .row .st{grid-column:2;grid-row:1;}
    .iscv .st{font-family:var(--sans);font-weight:500;font-size:9px;letter-spacing:0.16em;padding:2px 6px;border:1px solid;min-width:64px;text-align:center;}
    .iscv .st.good{color:var(--good);border-color:var(--good);} .iscv .st.elev{color:var(--elev);border-color:var(--elev);} .iscv .st.high{color:var(--high);border-color:var(--high);} .iscv .st.na{color:var(--muted);border-color:var(--line);}
    .iscv .verdict{display:flex;justify-content:space-between;align-items:center;padding:14px 0 4px;margin-top:auto;}
    .iscv .verdict .l{font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--blue-mid);}
    .iscv .verdict .st{font-size:11px;padding:4px 10px;letter-spacing:0.18em;}
    .iscv .eq{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:10px;line-height:1.5;}
    .iscv .eq b{color:var(--blue);font-weight:400;}
    .iscv .ctl{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:18px;margin-top:16px;padding-top:14px;border-top:1px solid var(--ink);}
    .iscv label.l{display:block;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--blue-mid);margin-bottom:8px;font-weight:400;}
    .iscv .val{font-family:var(--mono);font-size:12px;color:var(--ink);margin-left:6px;}
    .iscv input[type=range]{width:100%;accent-color:var(--blue);height:24px;}
    .iscv .pick{display:flex;flex-wrap:wrap;gap:6px;}
    .iscv .pick button{font-family:var(--sans);font-weight:400;font-size:11.5px;padding:6px 10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;}
    .iscv .pick button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--paper);}
    .iscv .pick button .m{font-family:var(--mono);font-size:10.5px;opacity:.8;margin-left:4px;}
    .iscv .preset{margin-top:14px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
    .iscv .preset button{font-family:var(--sans);font-weight:500;font-size:12px;padding:9px 14px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;}
    .iscv .preset button:hover{background:var(--ink);color:var(--paper);}
    .iscv .preset .n{font-size:11.5px;color:var(--muted);}
    .iscv .fixed{font-family:var(--mono);font-size:10.5px;color:var(--muted);margin-top:10px;}
    @media (max-width:900px){.iscv{padding:16px 14px 14px;} .iscv .stage{grid-template-columns:1fr;} .iscv .view{min-height:300px;height:56vw;} .iscv .ctl{grid-template-columns:1fr;gap:14px;} .iscv .preset .n{flex-basis:100%;}}
      .iscv.exhibit{background:transparent;border:0;padding:0;}
    .iscv.exhibit .rd,.iscv.exhibit .hd,.iscv.exhibit .out,.iscv.exhibit .ctl,.iscv.exhibit .preset,.iscv.exhibit .fixed{display:none;}
    .iscv.exhibit .stage{display:block;}
    .iscv.exhibit .view{min-height:440px;height:440px;border:1px solid var(--line);}
    .iscv.exhibit.dark .view{background:#121a22;border-color:#2a3540;}
    .iscv.exhibit.dark .view .tag{color:#7fa3bf;} .iscv.exhibit.dark .view .tag.tr{color:#a9c4d8;} .iscv.exhibit.dark .view .tag b{color:#f5f7f9;}
    .iscv.exhibit .view .tag.tl{display:none;}
    @media (max-width:900px){.iscv.exhibit .view{min-height:300px;height:72vw;} .iscv.exhibit .view .tag.br{display:none;} .iscv.exhibit .view .tag.tr{font-size:10px;}}

/* --- v25 style block 2 of 2 --- */
  /* ================================================================
     Indoor Sciences · home · v23 (Franz numbering; built on the file sent as v22)
     One stylesheet. Consolidates the v13 base and Franz's V16–V20 layers
     to their final winning values, in cascade order. No behaviour change
     except three fixes noted inline: (F1) .tel nowrap restored,
     (F2) upload drop zone display, (F3) .tri border-top removed as V16 had it, (F4) stray top rule on
     the second diagram reading between 681 and 900px removed.
     v25 · 07 Sep · header separated from the hero: the sticky bar sits on a
     lifted surface (--nav-lift, a color-mix of --ink and --lab, no new hex)
     instead of matching the hero's top stop, and its bottom hairline moves
     from --ink-line to --ink-line-3. Same lift applied to the collapsed
     header and the open mobile menu panel so all three read as one surface.
     Style only. No markup, no copy, no behaviour change.

     v24 · 07 Sep · hero first sentence in --ground; wordmark reveal on
     load (soft-edged mask sweep, 900ms, once, fade-only under reduced
     motion); button hover changed from a cross-fade to a directional
     wipe (in 250ms from the left, out 350ms continuing right).

     v23 · 07 Sep · motion and craft pass against four skills:
     transitions.dev token scale (durations 150/250/350/400/500, 40ms
     stagger, distances 4/8/12px, blur 2/3px, smooth-out easing),
     Emil Kowalski design-eng (UI motion under 300ms, hover under a
     pointer query, no delayed hover-out, press feedback on buttons,
     reduced motion keeps fades), impeccable craft floor + detector
     (AA contrast on light-surface tags, 11px floor in the HUD, themed
     selection/caret/accent/scrollbar, tabular numerals for measured
     values, shadow shape), taste-skill reviewed: its bans on kickers
     and numbered labels conflict with the committed brief and were
     not applied. Layout and copy unchanged.

     v27 (Ninad, 04 Sep f): case-reading severity stamps and the
     0/25/60/100 numerals removed — neither is in V11; the reading is
     the scale plus the measured value, coloured by severity, as V11
     had it. Case plates return to the V11 panel box. Specimen note
     reduced.

     v26 (Ninad, 04 Sep e): ROOT CAUSE of the persistently small
     tags. Archivo carries no true small-caps (no 'smcp' feature), so
     font-variant-caps:small-caps was synthesized by shrinking caps to
     74%: a 12px .sc tag rendered at ~8.9px, while the openers (real
     uppercase since V18) rendered at a true 12px. .sc now sets real
     uppercase, so --tag (13.5px / 12px phone) is the size actually
     drawn, and every tag matches. Severity stamps keep small caps per
     the report spec.
     Fraunces display, Archivo text, Fragment Mono data.
     ================================================================ */
  html{background:#f5f7f9;color-scheme:light only;scroll-behavior:smooth;}
  :root{color-scheme:light only;
    /* the report's nine values */
    --ground:#f5f7f9; --panel:#e9eef3; --hair:#c9d5de;
    --ink:#121a22; --body:#26313c; --lab:#2e4a68; --mid:#5b7f9e;
    --good:#3e6b4f; --elev:#a3702a; --high:#a33328;
    /* extended surface palette introduced in V17–V20 (beyond the report's nine) */
    --hero-blue:#d5e3ed; --hero-blue-strong:#98b9d1; --hero-copy:#b9cad6; --hero-label:#91aec2; --hero-under:#88a1b4; --hero-tel:#a9c4d8;
    --section-blue:#0b1a28; --section-blue-card:#102434; --section-blue-hover:#152e42;
    --footer-blue:#091a27; --footer-line:#253d4e;
    --ink-line:#293642; --ink-line-2:#2a3d4c; --ink-line-3:#344b5c;
    /* v25 · nav surface, lifted off the hero so the header reads as its own band.
       Derived from existing tokens only. Dial the ink percentage to taste:
       84% = subtle · 70% = as set here · 58% = strong. */
    --nav-lift:color-mix(in srgb, var(--ink) 70%, var(--lab));
    --nav-line:var(--ink-line-3);
    /* type */
    --serif:'Fraunces',Georgia,serif; --cover:var(--serif);
    --sans:'Archivo',Helvetica,Arial,sans-serif; --mono:'Fragment Mono','Courier New',monospace;
    --fs-body:17px; --fs-table:15px; --fs-cap:13.5px; --fs-foot:13px; --tag:13.5px;
    /* layout */
    --w:1520px; --pad:clamp(24px,4vw,72px); --gut:clamp(24px,2.2vw,34px); --sec:clamp(94px,7vw,122px); --nav-h:76px;
    --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px; --s7:48px; --s8:64px; --s9:96px;
    /* motion · transitions.dev scale */
    --duration-stagger:40ms; --duration-micro:80ms; --duration-quick:150ms; --duration-fast:250ms; --duration-medium:350ms; --duration-slow:400ms; --duration-very-slow:500ms;
    --ease-smooth-out:cubic-bezier(.22,1,.36,1); --ease-out-strong:cubic-bezier(.23,1,.32,1);
    --distance-micro:4px; --distance-base:8px; --distance-medium:12px; --blur-small:2px; --blur-medium:3px;
    --ease:var(--ease-smooth-out); --motion:var(--ease-smooth-out); --hover-ease:ease; --hover-time:var(--duration-fast);
    /* light-surface tag colour: nearest to the spec's mid blue that clears AA on panel and ground */
    --tag-color:#4a6b88;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-padding-top:calc(var(--nav-h) + 20px);}
  body{overflow-x:clip;background:var(--ground);color:var(--body);font-family:var(--sans);font-weight:300;font-size:var(--fs-body);line-height:1.68;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:'pnum' 1;caret-color:var(--lab);accent-color:var(--lab);scrollbar-color:var(--mid) var(--panel);}
  ::selection{background:var(--lab);color:var(--ground);}
  .ink ::selection,header ::selection,footer ::selection,.tri ::selection{background:var(--hair);color:var(--ink);}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  [id]{scroll-margin-top:calc(var(--nav-h) + 24px);}
  .wrap{width:min(var(--w),calc(100% - (var(--pad) * 2)));margin-inline:auto;}
  .g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);}
  .g12>*{min-width:0;}
  section{padding:var(--sec) 0;border-top:1px solid var(--hair);isolation:isolate;}
  .band{border:0;}

  /* ---------- Type ---------- */
  .t-cover,.t-chapter,.t-sub{font-family:var(--serif);font-weight:400;font-style:normal;font-variation-settings:'SOFT' 0,'WONK' 0;letter-spacing:-.024em;color:var(--ink);text-wrap:pretty;}
  .t-cover{font-size:clamp(3rem,4.15vw,4.25rem);line-height:1.035;max-width:11.8em;}
  .t-chapter{font-size:clamp(2.15rem,2.75vw,2.9rem);line-height:1.09;max-width:16em;}
  .t-sub{font-size:clamp(1.42rem,1.65vw,1.76rem);line-height:1.16;}
  .sc{font-variant-caps:normal;text-transform:uppercase;font-weight:400;line-height:1.3;}
  .kicker{font-size:var(--tag);letter-spacing:.20em;color:var(--lab);}
  .label{font-size:var(--tag);letter-spacing:.17em;color:var(--tag-color);}
  .label.ink{color:var(--ink);}
  .th{font-size:13px;letter-spacing:.12em;color:var(--tag-color);}
  .rubric{font-size:clamp(1rem,1.08vw,1.09rem);line-height:1.68;color:var(--body);font-weight:300;}
  .rubric em{font-style:normal;color:var(--lab);}
  .cap{font-size:var(--fs-cap);line-height:1.55;color:var(--lab);font-weight:300;}
  .cap .fig{font-weight:500;color:var(--ink);margin-right:6px;}
  .mv{font-family:var(--mono);font-weight:400;color:var(--lab);font-size:max(.9em,12px);overflow-wrap:anywhere;font-variant-numeric:tabular-nums;}
  .mv.high{color:var(--high);} .mv.elev{color:var(--elev);} .mv.good{color:var(--good);} .mv.na{color:var(--mid);}
  .mono{font-family:var(--mono);}
  .cred{font-style:italic;font-weight:300;}
  .pending{color:var(--high);font-family:var(--mono);font-size:12.5px;line-height:1.55;}
  .tel{font-weight:500;color:var(--ink);white-space:nowrap;} .ink .tel{color:var(--hair);}   /* F1 */
  p{max-width:40em;}
  .measure{max-width:38em;}

  /* ---------- Severity stamp and scale instrument ---------- */
  .stamp{display:inline-block;font-variant-caps:small-caps;text-transform:lowercase;font-weight:500;font-size:13px;letter-spacing:.14em;line-height:1;padding:4px 7px 3px;border:1px solid currentColor;color:var(--lab);vertical-align:middle;}
  .stamp.high{color:var(--high);} .stamp.elev{color:var(--elev);} .stamp.good{color:var(--good);}
  .scale{position:relative;height:22px;margin-bottom:var(--s2);}
  .scale .bar{position:absolute;left:0;right:0;top:12px;border-top:1px solid var(--body);}
  .scale .tk{position:absolute;top:8px;width:1px;height:9px;background:var(--ink);}
  .scale .tk.m{top:10px;height:5px;background:var(--mid);}
  .scale .mk{position:absolute;top:1px;left:0;width:0;height:0;margin-left:-6px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:9px solid var(--ink);transition:left .9s var(--ease-smooth-out);}
  .scale .mk.high{border-top-color:var(--high);} .scale .mk.elev{border-top-color:var(--elev);} .scale .mk.good{border-top-color:var(--good);} .scale .mk.na{border-top-color:var(--mid);}

  /* ---------- Controls ---------- */
  .btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 23px;font-family:var(--sans);font-weight:500;font-size:13.25px;letter-spacing:.02em;line-height:1.2;border:1px solid var(--ink);color:var(--ink);background:transparent;white-space:nowrap;cursor:pointer;
    transition:background-color 200ms ease,color 200ms ease,border-color 200ms ease,box-shadow 200ms ease,transform 160ms var(--ease-out-strong);}
  .btn{position:relative;isolation:isolate;overflow:hidden;}
  .btn:active{transform:scale(.97);}
  .btn::before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:right center;
    transition:transform var(--duration-medium) var(--ease-smooth-out);}
  .btn.primary::before{background:var(--lab);}
  .btn.ghost::before{background:var(--panel);}
  .ink .btn.primary::before,.nav .btn.primary::before{background:var(--hair);}
  .ink .btn.ghost::before{background:var(--body);}
  .btn.primary{background:var(--ink);color:var(--ground);}
  .btn.primary:hover{border-color:var(--lab);}
  .btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--lab);outline-offset:3px;}
  .link{color:var(--lab);font-weight:400;border-bottom:1px solid var(--hair);padding-bottom:1px;transition:border-color 200ms ease,color 200ms ease;}
  .link:hover{border-color:var(--lab);}
  .ctas{display:flex;gap:var(--s4);flex-wrap:wrap;}
  .ink .btn.primary{background:var(--ground);color:var(--ink);border-color:var(--ground);}
  .ink .btn.primary:hover{border-color:var(--hair);}
  .ink .btn.ghost{color:var(--ground);border-color:var(--mid);}
  .ink .link{color:var(--hair);border-bottom-color:var(--body);} .ink .link:hover{border-bottom-color:var(--hair);}
  .text-cta,.micro-link,.lab-cta{display:inline-flex;align-items:center;gap:.55em;width:max-content;max-width:100%;text-decoration:none;
    transition:color 200ms ease,border-color 200ms ease,opacity 200ms ease;}
  .text-cta:after,.micro-link:after,.lab-cta:after{content:"\2192";line-height:1;transition:transform var(--duration-fast) var(--ease-smooth-out);}
  .text-cta:hover:after,.micro-link:hover:after,.lab-cta:hover:after{transform:translateX(var(--distance-micro));}
  .text-cta{font-family:var(--sans);font-size:16px;font-weight:400;color:var(--lab);padding:0 0 7px;border-bottom:1px solid var(--mid);}
  .text-cta:hover{color:#234765;border-bottom-color:#234765;}
  .micro-link{font-size:12.5px;color:var(--hair);padding-bottom:3px;border-bottom:1px solid #3b5369;white-space:nowrap;}
  .lab-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-width:230px;padding:0 0 12px;border-bottom:1px solid #fff;color:#fff;font-size:var(--tag);font-weight:500;letter-spacing:.17em;text-transform:uppercase;line-height:1.25;}
  .cell-action{margin-top:auto;padding-top:27px;}

  /* ---------- Ink surfaces ---------- */
  .ink{background:var(--ink);color:var(--hair);}
  .ink .t-cover,.ink .t-chapter,.ink .t-sub{color:var(--ground);}
  .ink .label{color:#9bb8cc;} .ink .kicker{color:#9bb8cc;}
  .ink .rubric,.ink .cap{color:var(--hair);}
  .ink .cap .fig{color:var(--ground);}
  .ink .mv{color:var(--hair);}

  /* ---------- Header ---------- */
  header{position:sticky;top:0;z-index:20;background:rgba(26,40,55,.96);background:color-mix(in srgb,var(--nav-lift) 96%,transparent);border-bottom:1px solid var(--nav-line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
  .nav{display:grid;grid-template-columns:minmax(225px,1fr) auto minmax(225px,1fr);align-items:center;height:var(--nav-h);gap:28px;}
  .nav>a:first-child{justify-self:start;}
  .nav img{height:22px;width:auto;}
  .js .nav img{-webkit-mask-image:linear-gradient(90deg,#000 0 36%,rgba(0,0,0,0) 46%);mask-image:linear-gradient(90deg,#000 0 36%,rgba(0,0,0,0) 46%);
    -webkit-mask-size:300% 100%;mask-size:300% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
    /* a reveal is an authored entrance, not UI feedback: the token ease-in-out reads as a sweep,
       where the front-loaded ease-smooth-out would finish inside the first quarter of the duration */
    animation:wordmark 900ms cubic-bezier(.65,0,.35,1) 160ms both;}
  @keyframes wordmark{
    from{-webkit-mask-position:100% 0;mask-position:100% 0;filter:blur(var(--blur-medium));}
    to{-webkit-mask-position:0 0;mask-position:0 0;filter:blur(0);}
  }
  .nav ul{justify-self:center;display:flex;gap:27px;list-style:none;font-weight:400;font-size:13.5px;letter-spacing:.012em;white-space:nowrap;}
  .nav ul a{position:relative;padding:8px 0;color:var(--hair);transition:color 200ms ease;}
  .nav ul a:hover{color:var(--ground);}
  .nav ul a:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--mid);transform:scaleX(0);transform-origin:right;transition:transform var(--duration-fast) var(--ease-smooth-out);}
  .nav ul a:hover:after{transform:scaleX(1);transform-origin:left;}
  .nav .btn{min-height:44px;padding:0 20px;font-size:13px;letter-spacing:.02em;}
  .nav .nav-cta{justify-self:end;}
  .nav .btn.primary{background:var(--ground);color:var(--ink);border-color:var(--ground);} .nav .btn.primary:hover{border-color:var(--hair);}
  body.menu-open{overflow:hidden;}
  .menu-btn{display:none;}
  .menu-cta{display:none;}

  /* ---------- Section surfaces (V17 boundary language) ---------- */
  .entry{background:var(--ground);border-top:1px solid var(--hair);}
  .ways{background:var(--panel);}
  .case{background:var(--ground);}
  .why{background:var(--panel);}
  #elements{background:var(--ground);}
  .method{background:var(--panel);}
  .receive{background:var(--ground);}
  .proof{background:var(--panel);}
  .prov{background:var(--ground);overflow:clip;}
  .who{background:var(--panel);}
  .assess{background:var(--ground);}

  /* ---------- Openers ---------- */
  .opener .kicker{display:block;font-family:var(--sans);font-weight:400;font-variant-caps:normal;text-transform:uppercase;font-size:var(--tag);line-height:1.35;letter-spacing:.19em;margin-bottom:17px;color:var(--lab);}
  .opener .kicker .n{display:inline-block;margin-right:16px;font-family:var(--serif);font-size:1.17em;font-weight:500;font-style:normal;font-variation-settings:'SOFT' 0,'WONK' 0;line-height:1;letter-spacing:-.012em;text-transform:none;font-variant-caps:normal;vertical-align:-.035em;color:inherit;}
  .opener>.label{display:block;font-variant-caps:normal;text-transform:uppercase;font-size:var(--tag);line-height:1.4;letter-spacing:.17em;margin-bottom:20px;font-weight:400;color:var(--tag-color);}
  .entry .opener>.label{line-height:1.42;letter-spacing:.16em;margin-bottom:18px;}
  .ink .opener>.label,.honest .opener>.label{color:#9bb8cc;}
  .ink .opener .kicker{color:#9bb8cc;}
  .opener .t-chapter{margin-bottom:0;}
  .opener .rubric{margin-top:24px;margin-bottom:0;}
  .full .opener{grid-column:1 / span 8;margin-bottom:52px;}
  .full .content{grid-column:1 / -1;}
  .split .opener{grid-column:1 / span 4;align-self:start;position:sticky;top:calc(var(--nav-h) + 34px);}
  .split .content{grid-column:6 / -1;}
  .split .opener .t-chapter{font-size:clamp(1.875rem,2.6vw,2.75rem);}
  .case .opener,#elements .opener,.tri .opener{margin-bottom:50px;}

  /* ---------- Hero ---------- */
  .hero{min-height:calc(100svh - var(--nav-h));display:flex;align-items:center;padding:clamp(58px,6.8vh,90px) 0;border-top:0;
    background:radial-gradient(840px 620px at 82% 48%,rgba(91,127,158,.16),transparent 72%),linear-gradient(180deg,#121a22 0%,#101923 100%);}
  .hero .wrap{width:min(var(--w),calc(100% - (var(--pad) * 2)));}
  .hero-grid{width:100%;align-items:center;row-gap:48px;}
  .hero-copy{grid-column:1 / span 6;padding-right:clamp(10px,2.2vw,36px);}
  .hero-fig{grid-column:7 / -1;padding:0 0 0 clamp(0px,1.6vw,22px);align-self:center;}
  .hero-copy>.label{display:block;font-size:15.5px;line-height:1.5;letter-spacing:.165em;font-weight:400;color:#9dbad0;margin-bottom:20px;}
  .hero .t-cover{max-width:11.25em;margin:0 0 26px;color:var(--ground);font-size:clamp(3.05rem,3.85vw,4.3rem);font-weight:400;line-height:1.045;letter-spacing:-.023em;text-wrap:balance;}
  .hero .t-cover .twist{color:var(--hero-blue-strong);}
  .hero .rubric{max-width:38em;margin:0 0 32px;color:var(--hero-copy);font-size:clamp(1rem,1.05vw,1.08rem);font-weight:300;line-height:1.72;}
  .hero .ctas{display:flex;align-items:stretch;gap:12px;margin:0 0 20px;}
  .hero .under{max-width:40em;color:#93aabd;font-size:13.5px;line-height:1.62;}
  .hero .under .tel{color:var(--hero-tel);}
  .cvx{margin:0;width:100%;}
  .cvx-poster{position:relative;overflow:hidden;touch-action:pan-y;box-shadow:0 20px 48px rgba(0,0,0,.22);transition:transform var(--duration-medium) var(--ease-smooth-out);}
  .cvx-poster img{width:100%;height:auto;border:1px solid var(--body);}
  .cvx-start{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);}
  .cvx-cap{display:grid;grid-template-columns:1fr auto;gap:var(--s4);padding-top:13px;align-items:baseline;font-size:13px;line-height:1.6;}
  .cvx-cap .link{white-space:nowrap;}
  /* V19: the two readings belong to the diagram */
  .hero-fig .diagram-insights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:22px 0 0;padding:20px 0 0;column-gap:0;border-top:1px solid var(--ink-line-3);}
  .hero-fig .diagram-insights .insight-item{min-width:0;padding:0 clamp(18px,1.7vw,28px) 0 0;}
  .hero-fig .diagram-insights .insight-item + .insight-item{padding:0 0 0 clamp(18px,1.7vw,28px);border-left:1px solid var(--ink-line-2);}
  .hero-fig .diagram-insights .insight-label{display:block;margin:0 0 10px;color:#93b3cb;font-size:var(--tag);line-height:1.4;font-weight:400;letter-spacing:.17em;text-transform:uppercase;font-variant-caps:normal;}
  .hero-fig .diagram-insights p{max-width:none;margin:0;color:#cbd7df;font-size:13.5px;line-height:1.6;}
  .hero-fig .diagram-insights .mv{color:#b8cedd;font-size:.92em;}

  /* ---------- Entry: four reasons ---------- */
  .entry .opener{margin-bottom:52px;}
  .entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:0;align-items:stretch;border:1px solid var(--hair);border-top-color:var(--body);background:rgba(233,238,243,.16);}
  .entry-cell{position:relative;display:grid;grid-template-rows:auto minmax(3.15em,auto) 1fr;align-content:start;min-height:250px;padding:30px 28px 32px;border-right:1px solid var(--hair);color:inherit;transform:none!important;
    transition:background-color var(--duration-medium) var(--ease-smooth-out),border-color var(--duration-medium) var(--ease-smooth-out),box-shadow var(--duration-medium) var(--ease-smooth-out);}
  .entry-cell:last-child{border-right:0;}
  .entry-cell .n{display:block;font-weight:500;font-size:12.5px;color:var(--lab);margin-bottom:32px;letter-spacing:.06em;}
  .entry-cell h3{min-height:2.3em;margin-bottom:13px;align-self:start;}
  .entry-cell p{font-size:14px;line-height:1.64;}
  .entry-note{grid-column:1 / span 7;margin-top:34px;}

  /* ---------- Engagement: two ways ---------- */
  .ways.split .opener{grid-column:1 / span 9;position:static;top:auto;margin-bottom:46px;}
  .ways .opener .t-chapter{max-width:18em;}
  .ways .content{grid-column:1 / -1;}
  .ways-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
  .way{min-height:310px;display:flex;flex-direction:column;align-items:flex-start;padding:30px 31px 31px;border:1px solid var(--hair);background:rgba(245,247,249,.58);
    transition:transform var(--duration-medium) var(--ease-smooth-out),border-color var(--duration-medium) var(--ease-smooth-out),background-color var(--duration-medium) var(--ease-smooth-out),box-shadow var(--duration-medium) var(--ease-smooth-out);}
  .way .label{display:block;margin-bottom:18px;}
  .way h3{max-width:14em;margin-bottom:17px;}
  .way p{font-size:15px;line-height:1.68;margin-bottom:25px;}
  .way .text-cta{margin-top:auto;}

  /* ---------- Case: plates and record ---------- */
  .plates{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  .plate{border:1px solid var(--hair);background:var(--panel);padding:var(--s4);}
  .plate img{width:100%;height:auto;border:1px solid var(--hair);}
  .plate .cap{display:grid;grid-template-columns:1fr auto;gap:var(--s4);padding-top:var(--s3);align-items:baseline;font-size:13px;color:var(--body);}
  .plate .cap .mv{white-space:nowrap;}
  .plates-note{grid-column:1 / span 7;margin-top:22px;font-size:13.5px;}
  .record{margin-top:50px;border:1px solid var(--hair);background:var(--panel);padding:28px 32px 26px;}
  .rec-head{display:grid;grid-template-columns:minmax(320px,1fr) minmax(280px,auto);column-gap:32px;align-items:center;margin:0;padding:0 0 18px;border-bottom:1px solid var(--body);}
  .rec-head>.label{line-height:1.45;letter-spacing:.155em;font-weight:400;color:var(--lab);white-space:normal;}
  .rec-head>.pending{justify-self:end;text-align:right;max-width:54em;font-size:12.5px;line-height:1.55;}
  .rec{display:block;border-top:0;}
  .rec > div{display:grid;grid-template-columns:minmax(190px,3fr) minmax(0,9fr);column-gap:var(--gut);padding:15px 0;border-bottom:1px solid var(--hair);}
  .rec > div:last-child{border-bottom:0;}
  .rec dt{padding-top:2px;font-size:var(--tag);letter-spacing:.14em;}
  .rec dd{font-size:15px;margin:0;max-width:none;line-height:1.62;}

  /* ---------- Premise ---------- */
  .prose p + p{margin-top:1.1em;}
  .anchor{font-weight:300;font-size:clamp(1.5rem,2vw,2rem);line-height:1.2;letter-spacing:-.028em;color:var(--ink);padding:var(--s5) 0;border-top:1px solid var(--body);border-bottom:1px solid var(--hair);margin:var(--s7) 0 var(--s5);max-width:22em;}

  /* ---------- Four domains ---------- */
  #elements .rows{border-top:1px solid var(--body);}
  .el{display:grid;grid-template-columns:40px minmax(180px,2.5fr) minmax(300px,5.1fr) minmax(270px,4.4fr);column-gap:28px;padding:31px 0;border-bottom:1px solid var(--hair);align-items:start;}
  .el .num{font-weight:300;font-size:1.08rem;color:var(--lab);padding-top:4px;}
  .el h3{margin:0;padding-top:1px;}
  .el p{font-size:15px;line-height:1.66;max-width:none;}
  .el .reads{margin-top:10px;font-size:13px;line-height:1.65;}
  .el .read{padding-left:27px;border-left:1px solid var(--hair);}
  .el .read .label{display:block;margin-bottom:11px;}
  .el .read .val{margin-top:7px;}
  .el .read .val .mv{font-size:12.5px;line-height:1.55;}
  .framework-panel{grid-column:1 / -1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);margin:0;padding:39px 0 0;}
  .framework-panel>.label{grid-column:1 / span 3;display:block;padding-top:4px;margin-bottom:var(--s4);}
  .framework-panel>.rubric{grid-column:4 / span 7;max-width:45em;font-size:1.06rem;line-height:1.72;}

  /* ---------- Methodology: five stages ---------- */
  .method .opener{grid-column:1 / span 8;position:static;margin-bottom:48px;}
  .method .content{grid-column:1 / -1;}
  .method .rows{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;align-items:stretch;border:1px solid var(--hair);background:var(--hair);}
  .method .step{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:24px 90px 1fr;align-content:start;min-height:338px;padding:29px 27px 31px;border:0;background:var(--panel);transform:none!important;box-shadow:none;
    transition:background-color var(--duration-medium) var(--ease-smooth-out),box-shadow var(--duration-medium) var(--ease-smooth-out);}
  .method .step:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--lab);transform:scaleX(0);transform-origin:left center;transition:transform var(--duration-fast) var(--ease-smooth-out);}
  .method .step .n{grid-row:1;margin:0;padding:0;align-self:start;font-weight:500;font-size:12.5px;color:var(--lab);letter-spacing:.06em;transition:color 200ms ease;}
  .method .step h3{grid-row:2;align-self:end;margin:0 0 18px;font-size:clamp(1.44rem,1.52vw,1.67rem);transition:color 200ms ease;}
  .method .step p{grid-row:3;align-self:start;margin:0;font-size:14.75px;line-height:1.66;max-width:none;}

  /* ---------- What you receive ---------- */
  .receive .opener{grid-column:1 / span 5;position:static;top:auto;}
  .receive .opener .t-chapter{max-width:11em;}
  .receive .content{grid-column:7 / -1;padding-top:46px;}
  .specimen{width:min(100%,320px);margin-top:27px;border:0;background:transparent;padding:0;}
  .spec-note{font-family:var(--mono);font-size:12px;line-height:1.55;letter-spacing:.015em;color:var(--tag-color);margin:0 0 11px;overflow-wrap:anywhere;}
  .spec-note .th{font-size:12px;letter-spacing:.1em;}
  .spec-note .mv{font-size:12px;}
  .report-stack{position:relative;isolation:isolate;padding:0 13px 13px 0;}
  .report-stack:before,.report-stack:after{content:"";position:absolute;border:1px solid var(--hair);background:rgba(245,247,249,.62);z-index:0;transition:transform var(--duration-medium) var(--ease-smooth-out);}
  .report-stack:before{inset:7px;transform:translate(4px,4px);}
  .report-stack:after{inset:13px 1px 1px 13px;transform:translate(4px,4px);opacity:.65;}
  .report-stack img{position:relative;z-index:2;width:100%;height:auto;border:1px solid var(--hair);box-shadow:0 10px 24px rgba(18,26,34,.10);transition:transform var(--duration-medium) var(--ease-smooth-out),box-shadow var(--duration-medium) var(--ease-smooth-out);}
  .receive .content>.rubric{max-width:42em;font-size:1.04rem;}
  .spec{list-style:none;border-top:1px solid var(--body);margin-top:31px;}
  .spec li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--gut);padding:12px 0;border-bottom:1px solid var(--hair);font-size:14px;line-height:1.6;}
  .spec b{font-weight:500;color:var(--ink);}
  .spec span{color:var(--body);}

  /* ---------- The practice ---------- */
  .proof-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,6fr) minmax(0,3fr);column-gap:var(--gut);}
  .col{border-top:1px solid var(--body);padding-top:18px;}
  .col .label{display:block;margin-bottom:var(--s4);}
  .people,.creds{list-style:none;}
  .creds{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--gut);}
  .people li,.creds li{padding:11px 0;border-bottom:1px solid var(--hair);font-size:14px;line-height:1.5;}
  .people li:last-child,.creds li:nth-last-child(-n+2){border-bottom:0;}
  .people b,.creds b{display:block;font-weight:500;color:var(--ink);margin-bottom:2px;}
  .people span,.creds span{display:block;font-size:12.5px;color:var(--body);}
  .research p{font-size:14.5px;line-height:1.66;}
  .research p + p{margin-top:var(--s4);}
  .research .text-cta{margin-top:2px;}
  .research .ded{font-size:var(--fs-cap);color:var(--lab);margin-top:var(--s5);}

  /* ---------- Part V: the structure (laboratory blue) ---------- */
  .tri{background:var(--section-blue);border-top:0;border-bottom:1px solid #1d3346;color:var(--hair);}
  .tri .opener .kicker{color:#d7e4ed;}
  .tri .opener .kicker .n{color:#b8cedd;}
  .tri .opener>.label{color:#a6c1d4;}
  .tri .opener .t-chapter,.tri .cell h3{color:var(--ground);}
  .cell{border-top:1px solid var(--body);padding-top:var(--s5);}
  .cell .label{display:block;margin-bottom:var(--s4);}
  .cell h3{margin-bottom:var(--s3);}
  .tri .content{grid-column:1 / -1;}
  .tri-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
  .tri .cell{display:flex;flex-direction:column;min-height:378px;padding:34px 32px 35px;border:1px solid rgba(169,196,216,.20);background:var(--section-blue-card);transform:none!important;
    transition:background-color var(--duration-medium) var(--ease-smooth-out),border-color var(--duration-medium) var(--ease-smooth-out),box-shadow var(--duration-medium) var(--ease-smooth-out);}
  .tri .cell .label{color:#a7c2d5;}
    .tri .verb{font-weight:300;font-size:1.22rem;color:#b4ccdc;margin-bottom:var(--s4);letter-spacing:-.02em;}
  .tri .cell p{font-size:15px;line-height:1.68;color:#cbd8e1;}
  .tri .demark{grid-column:1 / span 9;margin-top:42px;color:#bdced9;max-width:56em;}

  /* ---------- Part VI: provenance ---------- */
  .prov .opener{position:static;top:auto;}
  .ssmark{font-size:1.05rem;margin-top:var(--s6);color:var(--ink);}
  .ssmark .a{font-weight:500;} .ssmark .f{font-weight:300;}
  .ssmark small{display:block;margin-top:var(--s2);font-size:var(--tag);line-height:1.55;font-variant-caps:normal;text-transform:uppercase;letter-spacing:.15em;}
  .founder{grid-column:6 / -1;align-self:start;margin-top:48px;border-left:2px solid var(--lab);padding:4px 0 4px 24px;}
  .founder .q{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:clamp(1.25rem,1.45vw,1.55rem);line-height:1.43;letter-spacing:-.014em;color:var(--ink);max-width:31em;}
  .founder .sig{margin-top:20px;font-size:var(--fs-cap);}
  .founder .sig b{display:block;font-weight:500;color:var(--ink);font-size:var(--fs-table);}
  .founder .sig a{color:var(--lab);}
  .proofs{grid-column:1 / -1;position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:var(--gut);border-top:1px solid var(--body);margin-top:76px;}
  .proofs > div{padding:var(--s5) 0;}
  .proofs b{display:block;font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:clamp(1.85rem,2.5vw,2.45rem);line-height:1;letter-spacing:-.03em;color:var(--ink);margin-bottom:var(--s3);}
  .proofs span{display:block;font-size:var(--fs-cap);color:var(--body);line-height:1.5;}

  /* ---------- Who retains the practice ---------- */
  .who-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gut);}
  .who-cell .label{min-height:3em;}
  .who-cell h3{margin-bottom:var(--s4);}
  .who-cell p{font-size:14px;line-height:1.62;}
  .who-close{grid-column:1 / span 8;margin-top:42px;font-weight:300;font-size:1.15rem;line-height:1.35;letter-spacing:-.02em;color:var(--lab);}

  /* ---------- An honest word (ink) ---------- */
  .honest{border-top-color:#314352;}
  .honest .opener{grid-column:1 / span 7;}
  .honest .opener .t-chapter{font-size:clamp(2.3rem,3.6vw,3.6rem);max-width:12em;}
  .honest .aside{grid-column:9 / -1;align-self:end;}
  .honest .aside p{color:var(--hair);font-size:15px;line-height:1.65;}
  .honest .ctas{margin-top:var(--s6);}
  .sealwrap{display:flex;align-items:center;gap:var(--s5);margin-top:var(--s7);}
  .sealwrap img{width:104px;height:104px;flex:0 0 auto;}
  .sealwrap span{font-size:14px;color:#a9c4d8;max-width:24em;line-height:1.6;}

  /* ---------- Confidential enquiry ---------- */
  .assess .opener .rubric{max-width:26em;}
  .assess .note-side{margin-top:var(--s7);font-size:var(--fs-cap);line-height:1.6;color:var(--body);max-width:26em;}
  .enq label{display:block;margin-bottom:var(--s5);}
  .enq label .label{display:block;margin-bottom:var(--s2);}
  .enq input,.enq select,.enq textarea{display:block;width:100%;font-family:var(--sans);font-weight:300;font-size:15px;min-height:46px;color:var(--ink);background:var(--ground);border:1px solid var(--hair);padding:11px 13px;line-height:1.4;border-radius:0;transition:border-color 200ms ease;}
  .enq ::placeholder{color:var(--tag-color);opacity:1;}
  .enq textarea{min-height:128px;resize:vertical;}
  .enq input:hover,.enq select:hover,.enq textarea:hover{border-color:var(--mid);}
  .enq input:focus,.enq select:focus,.enq textarea:focus{outline:2px solid var(--lab);outline-offset:1px;border-color:var(--lab);}
  .f2{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--gut);}
  .upload-field{margin:3px 0 22px;}
  .upload-kicker{font-size:var(--tag);font-weight:400;letter-spacing:.17em;line-height:1.45;text-transform:uppercase;color:var(--tag-color);margin-bottom:10px;}
  .upload-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;min-height:0!important;}
  .enq label.upload-drop{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:74px;margin:0;padding:12px 14px;border:1px solid var(--hair);background:var(--ground);cursor:pointer;color:var(--ink);   /* F2 */
    transition:transform 200ms var(--ease-smooth-out),border-color 200ms ease,background-color 200ms ease,box-shadow 200ms ease;}
  .upload-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--hair);color:var(--lab);}
  .upload-icon svg{width:20px;height:20px;}
  .upload-copy{display:block;min-width:0;}
  .upload-copy strong{display:block;font-size:13.5px;font-weight:500;color:var(--ink);margin-bottom:2px;}
  .upload-copy>span{display:block;font-size:12.75px;font-weight:300;color:var(--tag-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .upload-browse{font-size:12.5px;font-weight:500;color:var(--lab);}
  .upload-hint{display:block;margin-top:8px;font-size:12.5px;color:var(--tag-color);}
  .upload-drop.is-dragging{border-color:var(--lab);background:#edf2f6;box-shadow:0 8px 20px rgba(18,26,34,.08);transition-duration:0s;}
  .f-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--s5);flex-wrap:wrap;margin:var(--s2) 0 var(--s4);}
  .note{font-size:var(--fs-cap);color:var(--body);line-height:1.6;max-width:36em;}
  .enq-ok{border:1px solid var(--hair);background:var(--panel);padding:var(--s5);}
  .enq-ok .label{display:block;margin-bottom:var(--s3);}

  /* ---------- Footer (deep closing blue, V18) ---------- */
  footer{padding:66px 0 42px;background:var(--footer-blue);border-top:1px solid var(--footer-line);color:#a9c4d8;font-size:14px;}
  footer .top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut);padding-bottom:34px;border-bottom:1px solid var(--footer-line);margin-bottom:26px;align-items:start;}
  footer .brand{grid-column:1 / span 7;}
  footer .mark{display:block;width:218px;height:20px;margin-bottom:var(--s4);background:var(--ground);-webkit-mask:var(--wm) left center / contain no-repeat;mask:var(--wm) left center / contain no-repeat;}
  footer .brandline{color:var(--ground);font-size:15px;line-height:1.5;font-weight:400;}
  footer .nap{margin-top:var(--s2);line-height:1.6;color:#88a6bb;max-width:56em;}
  footer .nap a{white-space:nowrap;} footer .nap a:hover{color:var(--ground);}
  footer ul{grid-column:9 / -1;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:var(--s2) var(--s5);}
  footer ul a{color:#cbd8e1;transition:color 200ms ease;} footer ul a:hover{color:var(--ground);}
  footer .fine{color:#88a6bb;line-height:1.6;}

  /* ---------- Motion ---------- */
  .js .hero .ld{opacity:0;transform:translateY(var(--distance-medium));filter:blur(var(--blur-medium));animation:ld 600ms var(--ease-smooth-out) forwards;animation-delay:calc(var(--i,0) * var(--duration-micro) + 60ms);}
  @keyframes ld{to{opacity:1;transform:none;filter:blur(0);}}
  .js .opener.rv{opacity:1!important;transform:none!important;}
  .js .opener.rv>.kicker,.js .opener.rv>.label,.js .opener.rv>.t-chapter,.js .opener.rv>.rubric,.js .opener.rv>.specimen{opacity:0;transform:translateY(var(--distance-medium));filter:blur(var(--blur-medium));transition:opacity var(--duration-very-slow) var(--ease-smooth-out),transform var(--duration-very-slow) var(--ease-smooth-out),filter var(--duration-very-slow) var(--ease-smooth-out);}
  .js .opener.rv.in>.kicker{opacity:1;transform:none;filter:blur(0);transition-delay:0ms;}
  .js .opener.rv.in>.label{opacity:1;transform:none;filter:blur(0);transition-delay:var(--duration-stagger);}
  .js .opener.rv.in>.t-chapter{opacity:1;transform:none;filter:blur(0);transition-delay:calc(var(--duration-stagger) * 2);}
  .js .opener.rv.in>.rubric{opacity:1;transform:none;filter:blur(0);transition-delay:calc(var(--duration-stagger) * 3);}
  .js .opener.rv.in>.specimen{opacity:1;transform:none;filter:blur(0);transition-delay:calc(var(--duration-stagger) * 4);}
  .js .rv:not(.opener){opacity:0;transform:translateY(var(--distance-base));filter:blur(var(--blur-small));transition:opacity var(--duration-slow) var(--ease-smooth-out),transform var(--duration-slow) var(--ease-smooth-out),filter var(--duration-slow) var(--ease-smooth-out);transition-delay:min(calc(var(--i,0) * var(--duration-stagger)),280ms);}
  .js .rv.in:not(.opener){opacity:1;transform:none;filter:blur(0);}
  /* cards: reveal and hover transitions coexist (V20) */
  .js .entry-cell.rv,.js .way.rv,.js .method .step.rv,.js .tri .cell.rv,.js .who-cell.rv,.js .proof .col.rv{
    --reveal-delay:min(calc(var(--i,0) * var(--duration-stagger)),280ms);
    transition:opacity var(--duration-slow) var(--ease-smooth-out) var(--reveal-delay),transform var(--duration-slow) var(--ease-smooth-out) var(--reveal-delay),filter var(--duration-slow) var(--ease-smooth-out) var(--reveal-delay),background-color var(--duration-medium) var(--ease-smooth-out) 0s,border-color var(--duration-medium) var(--ease-smooth-out) 0s,box-shadow var(--duration-medium) var(--ease-smooth-out) 0s;}
  .entry-cell h3,.way h3,.tri .cell h3{transition:color 200ms ease;}

  @media(hover:hover) and (pointer:fine){
    .js .entry-cell.rv.in:hover,.js .way.rv.in:hover,.js .method .step.rv.in:hover,.js .tri .cell.rv.in:hover,.entry-cell:hover,.way:hover,.method .step:hover,.tri .cell:hover{transition-duration:var(--duration-fast);transition-delay:0s;}
    .btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(18,26,34,.10);}
    .btn:hover::before{transform:scaleX(1);transform-origin:left center;transition-duration:var(--duration-fast);}
    .btn:active{transform:scale(.97);box-shadow:none;}
    .way:hover{transform:translateY(-3px);border-color:#a9bdcb;background:rgba(245,247,249,.92);box-shadow:0 14px 32px rgba(18,26,34,.08);}
    .entry-cell:hover{transform:none!important;background:rgba(233,238,243,.78);border-top-color:var(--lab);box-shadow:inset 0 0 0 1px rgba(46,74,104,.035);}
    .method .step:hover{transform:none!important;background:var(--ground);box-shadow:inset 0 0 0 1px rgba(46,74,104,.07);}
    .method .step:hover:before{transform:scaleX(1);}
    .method .step:hover .n,.method .step:hover h3{color:var(--lab);}
    .tri .cell:hover{transform:none!important;background:var(--section-blue-hover);border-color:rgba(190,216,233,.38);box-shadow:0 14px 32px rgba(0,0,0,.14);}
    .lab-cta:hover{color:#fff;border-bottom-color:#fff;opacity:.78;}
    .report-stack:hover img{transform:translateY(-4px) rotate(-.2deg);box-shadow:0 16px 36px rgba(18,26,34,.14);}
    .report-stack:hover:before{transform:translate(7px,7px) rotate(.2deg);}
    .report-stack:hover:after{transform:translate(9px,8px) rotate(.3deg);}
    .upload-drop:hover{transform:translateY(-2px);border-color:var(--mid);box-shadow:0 10px 24px rgba(18,26,34,.08);}
    .cvx:hover .cvx-poster{transform:translateY(-3px);}
    .cvx:hover .cvx-poster img{transform:scale(1.005);}
  }

  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .js .hero .ld{transform:none;filter:none;animation:ld 200ms ease forwards;animation-delay:0s;}
    .js .nav img{-webkit-mask-image:none;mask-image:none;animation:ld 200ms ease both;}
    .btn::before{transition:opacity 200ms ease;transform:scaleX(1);opacity:0;}
    .btn:hover::before{opacity:1;}
    .js .rv,.js .opener.rv>*{transform:none!important;filter:none!important;transition:opacity 200ms ease!important;transition-delay:0s!important;}
    .js .rv.in,.js .opener.rv.in>*{opacity:1!important;}
    .btn,.way,.report-stack img,.report-stack:before,.report-stack:after,.upload-drop,.cvx-poster,.text-cta:after,.micro-link:after,.lab-cta:after,.nav ul a:after,.method .step:before{transition:none!important;transform:none!important;}
    .btn:hover,.way:hover,.upload-drop:hover,.report-stack:hover img{transform:none!important;}
    .scale .mk{transition:none;}
    .method .step:before{transform:scaleX(1);}
  }
  @media(prefers-color-scheme:dark){html,body{background:#f5f7f9!important;color:#26313c!important;}}

  /* ================================================================
     Responsive. 1200 · 1100 · 1080 (nav collapses) · 900 · 680 · 560
     ================================================================ */
  @media(max-width:1200px) and (min-width:901px){
    .method .rows{grid-template-columns:repeat(3,minmax(0,1fr));}
    .method .step{min-height:315px;}
    .tri .cell{padding:30px 26px 31px;}
  }
  @media(max-width:1100px){
    .split .opener{grid-column:1 / -1;position:static;margin-bottom:var(--s7);}
    .split .content{grid-column:1 / -1;}
    .split .opener .t-chapter{font-size:clamp(2rem,3.2vw,3.25rem);}
    .hero-fig .diagram-insights p{font-size:12.75px;}
    .el{row-gap:var(--s4);}
    .el .read{grid-column:2 / -1;}
    .honest .opener{grid-column:1 / span 8;} .honest .aside{grid-column:1 / -1;margin-top:var(--s7);align-self:start;}
    .founder{grid-column:1 / -1;}
    .assess .opener .rubric{max-width:40em;}
  }
  @media(max-width:1100px) and (min-width:901px){
    .entry-grid{grid-template-columns:1fr 1fr;row-gap:var(--s7);}
    .entry-cell{padding:28px 26px 30px;}
    .entry-cell:nth-child(odd){border-right:1px solid var(--hair);}
    .entry-cell:nth-child(even){border-right:0;}
    .entry-cell:nth-child(-n+2){border-bottom:1px solid var(--hair);}
  }
  @media(max-width:1080px){
    header{--nav-h:68px;backdrop-filter:none;-webkit-backdrop-filter:none;background:rgb(26,40,55);background:var(--nav-lift);}
    header .nav{height:68px;display:grid;grid-template-columns:1fr auto;gap:16px;}
    .nav img{height:20px;}
    .nav .nav-cta{display:none;}
    header .menu-btn{display:block;position:relative;width:46px;height:46px;min-width:46px;padding:0;border:1px solid #405365;background:transparent;cursor:pointer;z-index:220;}
    header .menu-btn span{position:absolute;left:12px;right:12px;top:50%;height:1.25px;background:var(--ground);transform-origin:center;transition:transform var(--duration-fast) var(--ease-smooth-out),opacity var(--duration-quick) ease;}
    header .menu-btn span:nth-child(1){transform:translateY(-7px);}
    header .menu-btn span:nth-child(2){transform:translateY(0);}
    header .menu-btn span:nth-child(3){transform:translateY(7px);}
    body.menu-open header .menu-btn span:nth-child(1){transform:rotate(45deg);}
    body.menu-open header .menu-btn span:nth-child(2){opacity:0;}
    body.menu-open header .menu-btn span:nth-child(3){transform:rotate(-45deg);}
    body header .nav #primary-menu{display:flex;position:fixed;top:68px;right:0;left:0;width:100vw;max-height:calc(100dvh - 68px);margin:0;padding:10px max(var(--pad),calc((100vw - var(--w))/2 + var(--pad))) 18px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;background:rgba(26,40,55,.994);background:color-mix(in srgb,var(--nav-lift) 99%,transparent);border:0;border-top:1px solid var(--nav-line);border-bottom:1px solid var(--nav-line);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(calc(-1 * var(--distance-base)));transition:opacity var(--duration-quick) var(--ease-smooth-out),transform var(--duration-quick) var(--ease-smooth-out),visibility 0s linear var(--duration-quick);z-index:210;box-shadow:0 12px 28px rgba(0,0,0,.18);}
    body.menu-open header .nav #primary-menu{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity var(--duration-fast) var(--ease-smooth-out),transform var(--duration-fast) var(--ease-smooth-out),visibility 0s;}
    #primary-menu>li{width:100%;opacity:0;transform:translateY(var(--distance-micro));transition:opacity var(--duration-quick) var(--ease-smooth-out),transform var(--duration-quick) var(--ease-smooth-out);transition-delay:0s;}
    body.menu-open #primary-menu>li{opacity:1;transform:none;transition-duration:var(--duration-fast);}
    body.menu-open #primary-menu>li:nth-child(1){transition-delay:0ms}body.menu-open #primary-menu>li:nth-child(2){transition-delay:40ms}body.menu-open #primary-menu>li:nth-child(3){transition-delay:80ms}body.menu-open #primary-menu>li:nth-child(4){transition-delay:120ms}body.menu-open #primary-menu>li:nth-child(5){transition-delay:160ms}body.menu-open #primary-menu>li:nth-child(6){transition-delay:200ms}
    #primary-menu a{display:block;width:100%;padding:11px 0;font-family:var(--sans);font-size:14.5px;font-weight:300;line-height:1.35;letter-spacing:0;color:var(--hair);}
    #primary-menu a:after{display:none;}
    #primary-menu .menu-cta{display:block;border-top:1px solid #2c3946;margin-top:6px;padding-top:7px;}
    #primary-menu .menu-cta a{font-size:14.5px;font-weight:500;color:var(--ground);}
    .split .opener{margin-bottom:38px;}
    .hero{min-height:auto;}
    .hero-copy,.hero-fig{grid-column:1 / -1;padding:0;}
    .hero-fig{margin-top:8px;}
    .receive .opener{grid-column:1 / span 5;}
    .receive .content{grid-column:7 / -1;}
  }
  @media(max-width:900px){
    :root{--sec:74px;--pad:20px;--gut:20px;--fs-body:16px;--tag:12px;}
    body{font-size:var(--fs-body);}
    section{padding:var(--sec) 0;}
    .t-cover{font-size:clamp(2.55rem,10.5vw,3.05rem);line-height:1.04;}
    .t-chapter{font-size:clamp(1.95rem,7.8vw,2.28rem);}
    .opener .kicker{letter-spacing:.17em;margin-bottom:14px;}
    .opener .kicker .n{margin-right:12px;font-size:1.15em;}
    .opener>.label{letter-spacing:.155em;margin-bottom:16px;}
    .entry .opener>.label{line-height:1.45;letter-spacing:.15em;margin-bottom:16px;}
    .full .opener,.split .opener,.ways.split .opener,.method .opener{grid-column:1 / -1;margin-bottom:36px;}
    .tri .opener{margin-bottom:50px;}
    /* hero */
    .hero{padding:52px 0 66px;}
    .hero-grid{row-gap:38px;}
    .hero-copy,.hero-fig{grid-column:1 / -1;padding:0;}
    .hero-copy>.label{font-size:14.5px;line-height:1.5;letter-spacing:.15em;margin-bottom:18px;}
    .hero .t-cover{font-size:clamp(2.5rem,10vw,3.02rem);max-width:10.8em;}
    .hero .rubric{font-size:1rem;}
    .hero .ctas{display:grid;grid-template-columns:1fr;gap:10px;}
    .hero .ctas .btn{width:100%;text-align:center;white-space:normal;}
    .cvx-cap{grid-template-columns:1fr;gap:var(--s2);font-size:12px;}
    .hero-fig .diagram-insights{margin-top:20px;padding-top:18px;}
    .hero-fig .diagram-insights p{font-size:14px;line-height:1.62;}
    /* entry */
    .entry-grid{grid-template-columns:1fr;row-gap:17px;border:1px solid var(--hair);border-top-color:var(--body);}
    .entry-cell{grid-template-rows:auto auto auto;min-height:0;padding:24px 22px 27px;border-right:0;border-bottom:1px solid var(--hair);}
    .entry-cell:last-child{border-bottom:0;}
    .entry-cell .n{font-size:12.5px;margin-bottom:18px;}
    .entry-cell h3{min-height:0;}
    .entry-note{grid-column:1 / -1;margin-top:25px;}
    /* ways, case */
    .plates,.proof-grid,.tri-grid,.who-grid,.f2{grid-template-columns:1fr;row-gap:17px;}
    .ways-grid{grid-template-columns:1fr;}
    .way{min-height:0;padding:24px 22px 25px;}
    .way p{font-size:14.5px;}
    .plate{padding:var(--s3);}
    .plate .cap{grid-template-columns:1fr;gap:var(--s2);} .plate .cap .mv{white-space:normal;}
    .plates-note{grid-column:1 / -1;}
    .rec-head{grid-template-columns:1fr;row-gap:9px;align-items:start;padding-bottom:16px;}
    .rec-head>.label{white-space:normal;line-height:1.48;letter-spacing:.145em;}
    .rec-head>.pending{justify-self:start;text-align:left;font-size:12.25px;}
    .rec > div{grid-template-columns:1fr;row-gap:5px;padding:14px 0;}
    .spec li{grid-template-columns:1fr;row-gap:4px;}
    .rec dd{font-size:14.5px;}
    .anchor{font-size:1.5rem;padding:var(--s4) 0;margin:var(--s6) 0 var(--s4);}
    /* domains */
    .el{grid-template-columns:40px minmax(0,1fr);column-gap:13px;row-gap:12px;padding:25px 0;}
    .el>.num{grid-column:1;grid-row:1;padding-top:3px;}
    .el>h3{grid-column:2;grid-row:1;}
    .el>div:not(.num):not(.read),.el>.read{grid-column:2 / -1;}
    .el .read{padding:17px 0 0;border-left:0;border-top:1px solid var(--hair);}
    .el p{font-size:14.5px;}
    .framework-panel{grid-template-columns:1fr;padding-top:32px;row-gap:12px;}
    .framework-panel>.label,.framework-panel>.rubric{grid-column:1;}
    .framework-panel>.rubric{font-size:1rem;}
    /* method */
    .method .rows{grid-template-columns:1fr;}
    .method .step{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;column-gap:13px;row-gap:11px;min-height:0;padding:24px 21px 26px;}
    .method .step .n{grid-column:1;grid-row:1;margin-top:4px;}
    .method .step h3{grid-column:2;grid-row:1;align-self:start;margin:0 0 13px;font-size:1.48rem;}
    .method .step p{grid-column:1 / -1;grid-row:2;font-size:14.5px;}
    .method .step:before{height:2px;}
    /* receive */
    .receive .opener,.receive .content{grid-column:1 / -1;padding-top:0;}
    .receive .opener{display:block;}
    .receive .opener .t-chapter{max-width:11em;}
    .specimen{width:min(100%,284px);margin:25px auto 0;}
    .spec-note{margin-bottom:9px;}
    .report-stack{padding:0 11px 11px 0;}
    .spec{margin-top:25px;}
    /* practice, structure, provenance, who */
    .proof-grid{row-gap:28px;}
    .creds{grid-template-columns:1fr;} .creds li:nth-last-child(-n+2){border-bottom:1px solid var(--hair);} .creds li:last-child{border-bottom:0;}
    .col{padding-top:16px;}
    .tri-grid{gap:13px;}
    .tri .cell{min-height:0;padding:27px 23px 29px;}
    .tri .cell p{font-size:14.5px;}
    .lab-cta{min-width:0;}
    .tri .demark{grid-column:1 / -1;margin-top:32px;}
    .founder{grid-column:1 / -1;margin-top:34px;padding-left:17px;}
    .founder .q{font-size:1.22rem;line-height:1.45;max-width:none;}
    .proofs{grid-template-columns:1fr 1fr;margin-top:52px;column-gap:17px;}
    .proofs > div{padding:var(--s4) 0;border-bottom:1px solid var(--hair);}
    .proofs > div:nth-last-child(-n+2){border-bottom:0;}
    .proofs b{font-size:1.65rem;}
    .who-cell .label{min-height:0;}
    .who-close{grid-column:1 / -1;margin-top:30px;}
    /* honest, form, footer */
    .honest .opener,.honest .aside{grid-column:1 / -1;}
    .honest .aside{margin-top:28px;}
    .honest .opener .t-chapter{font-size:clamp(2.05rem,8.8vw,2.55rem);}
    .sealwrap{margin-top:var(--s6);gap:var(--s4);} .sealwrap img{width:76px;height:76px;}
    .upload-drop,.enq label.upload-drop{grid-template-columns:42px minmax(0,1fr);min-height:70px;padding:11px;gap:11px;}
    .upload-browse{display:none;}
    .upload-copy>span{white-space:normal;line-height:1.35;}
    .enq input,.enq select,.enq textarea{font-size:16px;}
    footer{padding:54px 0 34px;}
    footer .brand,footer ul{grid-column:1 / -1;}
    footer ul{margin-top:26px;}
  }
  @media(max-width:680px){
    .hero-fig .diagram-insights{grid-template-columns:1fr;}
    .hero-fig .diagram-insights .insight-item{padding:0 0 20px;}
    .hero-fig .diagram-insights .insight-item + .insight-item{padding:20px 0 0;border-left:0;border-top:1px solid var(--ink-line-2);}
  }
  @media(max-width:560px){
    :root{--pad:17px;--sec:68px;}
    .nav img{height:18px;max-width:min(66vw,215px);}
    header .menu-btn{width:44px;height:44px;min-width:44px;}
    .hero{padding-top:46px;}
    .hero-copy>.label{font-size:14px;letter-spacing:.145em;}
    .hero .t-cover{font-size:clamp(2.35rem,10.6vw,2.75rem);}
    .btn{min-height:48px;padding:0 17px;font-size:12.75px;}
    .text-cta{font-size:15.5px;}
    .entry-cell{padding:22px 19px 25px;}
    .way p,.el p{font-size:14.25px;}
    .record{padding:18px 17px;}
    .rec-head>.label{letter-spacing:.14em;}
    .framework-panel{padding-top:29px;}
    .method .step{padding:22px 18px 24px;}
    .specimen{width:min(100%,260px);}
    .tri .cell{padding:25px 20px 27px;}
    .proofs{grid-template-columns:1fr;}
    .proofs > div,.proofs > div:nth-last-child(-n+2){display:grid;grid-template-columns:88px 1fr;gap:13px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--hair);}
    .proofs > div:last-child{border-bottom:0;}
    .proofs b{font-size:1.45rem;margin:0;}
    .founder .q{font-size:1.16rem;}
    .ctas .btn{width:100%;text-align:center;white-space:normal;}
    .f-foot .btn{width:100%;text-align:center;}
    footer .mark{width:190px;}
  }

  /* ---------- 3D exhibit HUD: 11px legibility floor (impeccable detector) ---------- */
  .iscv .view .tag,.iscv.exhibit .view .tag.tr,.iscv .hd .t,.iscv .verdict .l{font-size:11px;}

/* ============================================================================
   SECTION 2 - TOKEN ALIASES FOR _ninad/03
   _ninad/03 prescribes .is-display and .is-taxon verbatim, but writes them
   against --is-serif / --is-sans / --is-mono, which neither v25 nor the
   handover declares. Aliasing them onto v25's equivalents lets doc 03 be
   ported verbatim as section 7.4 requires, without inventing a value.
   ============================================================================ */
:root{--is-serif:var(--serif);--is-sans:var(--sans);--is-mono:var(--mono);}

/* ============================================================================
   SECTION 3 - _ninad/03, PORTED VERBATIM (section 7.4)
   .is-taxon is for taxonomic names only and never for emphasis.
   #121a22 is --ink's own value, so this introduces no new colour.
   ============================================================================ */
.is-display, h1, h2, h3{font-family:var(--is-serif);font-weight:400;font-style:normal;font-variation-settings:'SOFT' 0,'WONK' 0;letter-spacing:-0.02em;color:#121a22;}
.is-taxon{font-style:italic;}
.is-data, .mono{font-family:var(--is-mono);font-weight:400;color:#2e4a68;}

/* ============================================================================
   SECTION 4 - PAGE INTERIORS, SHARED (from the approved handover CSS)
   156 rules that appear on more than one route and whose every selector class
   is one of the 118 classes v25 has no rule for. Nothing here can override
   v25: any rule touching a v25-styled class was refused.
   ============================================================================ */
.d{font-family:var(--serif);font-weight:400;font-style:normal;font-variation-settings:'SOFT' 0,'WONK' 0;letter-spacing:-0.02em;color:var(--ink);line-height:1.12;}
h2.d{font-size:clamp(2rem,3.6vw,3rem);max-width:18em;}
h3.d{font-size:clamp(1.45rem,2.2vw,1.85rem);letter-spacing:-0.015em;}
.eyebrow{font-family:var(--sans);font-weight:400;font-size:11.5px;letter-spacing:0.28em;text-transform:uppercase;color:var(--blue-mid);}
.lede{font-size:clamp(1.05rem,1.35vw,1.25rem);line-height:1.6;max-width:36em;color:var(--body);}
.rule-dbl{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);height:5px;}
.rule{border-top:1px solid var(--line);}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin:0 0 40px;}
.stat{padding:22px 24px 22px 0;border-right:1px solid var(--line);}
.stat:last-child{border-right:0;}
.stat + .stat{padding-left:24px;}
.stat b{display:block;font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:1.7rem;color:var(--ink);letter-spacing:-0.01em;line-height:1.1;margin-bottom:6px;}
.stat span{font-size:14px;color:var(--muted);}
.sec-head{display:grid;grid-template-columns:200px 1fr;gap:40px;margin-bottom:44px;}
.sec-head .eyebrow{padding-top:14px;}
.elements{border-top:1px solid var(--ink);}
.el-close{margin-top:40px;display:grid;grid-template-columns:200px 1fr;gap:40px;}
.evidence .box{border:1px solid var(--line);background:var(--paper);display:grid;grid-template-columns:1.1fr 1fr;}
.evidence .left{padding:40px 40px 40px 36px;border-right:1px solid var(--line);}
.evidence .right{padding:36px 40px;background:var(--panel);}
.evidence .lbl{font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--blue-mid);margin-bottom:18px;font-weight:400;}
.instr{background:var(--panel);border:1px solid var(--line);padding:26px 30px 24px;position:relative;}
.g{display:grid;grid-template-columns:150px 1fr 88px;gap:18px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);}
.g:last-of-type{border-bottom:0;}
.g .lab{font-size:13px;color:var(--ink);font-weight:400;}
.g .lab small{display:block;font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;color:var(--blue);font-size:13px;margin-bottom:1px;}
.instr .ft{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:14px;border-top:1px solid var(--ink);font-size:12px;color:var(--muted);}
.instr .ft .z{font-family:var(--mono);font-size:11px;letter-spacing:0.04em;}
.instr .ft .z i{font-style:normal;color:var(--good);}
.instr .ft .z b{font-weight:400;color:var(--elev);}
.instr .ft .z u{text-decoration:none;color:var(--high);}
.part{padding-top:26px;}
.part .pt{display:flex;align-items:baseline;gap:18px;margin-top:16px;}
.part .pt .rn{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:1.1rem;color:var(--blue);letter-spacing:0.06em;}
.part .pt .eyebrow{color:var(--blue-mid);}
h2.d{font-size:clamp(2.1rem,3.9vw,3.25rem);}
.rgrid{display:grid;grid-template-columns:0.72fr 1.28fr;gap:64px;align-items:start;}
.rimg{border:1px solid var(--line);background:var(--panel);padding:22px;}
.rimg img{display:block;width:100%;height:auto;border:1px solid var(--line);}
.seen{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:16px;border-top:1px solid var(--ink);}
.seen div{padding:14px 18px 14px 0;font-size:14px;line-height:1.5;}
.seen div + div{border-left:1px solid var(--line);padding-left:18px;}
.seen b{display:block;font-size:10.5px;letter-spacing:0.24em;text-transform:uppercase;color:var(--blue-mid);font-weight:400;margin-bottom:6px;}
.plate-band{padding:0 0 96px;}
.fig1{margin:0 0 56px;padding:28px 28px 18px;border:1px solid var(--line);background:var(--panel);}
.fig1 svg{display:block;width:100%;height:auto;}
.sec-head{margin-bottom:52px;}
.plates2{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1100px;margin:0 auto;}
.plates2-note{max-width:44em;margin:22px auto 0;font-size:14px;color:var(--muted);text-align:center;}
.seen{border-top-color:#2a3540;}
.seen div{color:#c9d5de;}
.seen div + div{border-left-color:#2a3540;}
.seen b{color:#7fa3bf;}
.plate-band{background:var(--paper);}
.eyebrow{font-size:12px;letter-spacing:0.22em;font-weight:400;}
.hint{display:block;font-size:12.5px;color:var(--muted);letter-spacing:0;text-transform:none;margin-top:6px;font-weight:400;}
.seq{background:var(--panel);border:1px solid var(--line);padding:26px 30px 24px;color:var(--body);}
.seq ol{list-style:none;}
.seq li{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:baseline;padding:13px 0;border-bottom:1px solid var(--line);}
.seq li:last-child{border-bottom:0;}
.seq .ph{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:1.08rem;color:var(--ink);letter-spacing:-0.01em;}
.seq .dl{font-size:12.5px;color:var(--muted);white-space:nowrap;}
.seq .ft{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:18px;padding-top:14px;border-top:1px solid var(--ink);font-size:12px;color:var(--muted);}
.seq .ft .z{font-family:var(--mono);font-size:11px;letter-spacing:0.04em;color:var(--blue);white-space:nowrap;}
.what{background:var(--paper);}
.what .cols{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:8px;}
.what p + p{margin-top:1.1em;}
.basis{background:var(--paper);}
.std{border-top:1px solid var(--ink);}
.std > div{display:grid;grid-template-columns:230px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);}
.std dt{font-weight:500;color:var(--ink);font-size:15px;padding-top:2px;}
.std dd{margin:0;font-size:15px;line-height:1.7;max-width:none;}
.basis-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:48px;}
.basis-notes > div{border-top:1px solid var(--ink);padding-top:18px;}
.basis-notes .eyebrow{margin-bottom:12px;}
.basis-notes p{font-size:15px;}
.faq{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.qas{border-top:1px solid var(--ink);}
.qa{display:grid;grid-template-columns:0.9fr 1.1fr;gap:40px;padding:28px 0;border-bottom:1px solid #d6dee5;}
.qa h3{font-size:clamp(1.2rem,1.7vw,1.45rem);margin:0;}
.qa p{font-size:16px;max-width:38em;}
.basis .cols{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.basis .cols p + p{margin-top:1.1em;}
.basis .cols p{font-size:16px;}
.is-taxon{font-style:italic;}
.rs .series{font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:var(--blue-mid);font-weight:400;}
.rs h1.d{font-size:clamp(2.2rem,4.6vw,3.7rem);max-width:15em;margin:18px 0 20px;}
.rs .lede{max-width:38em;}
.rs .byline{font-size:13.5px;color:var(--muted);margin-top:16px;max-width:60em;}
.rs .jump{display:flex;gap:18px;flex-wrap:wrap;margin-top:26px;padding-top:14px;border-top:1px solid var(--ink);}
.rs .jump a{font-size:12.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--blue);}
.rs h2.d{font-size:clamp(1.7rem,3vw,2.5rem);margin:0 0 22px;}
.rs section{padding:64px 0;}
.rs .panel{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.rs p{max-width:70ch;}
.rs p + p{margin-top:1em;}
.rs .cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.rs .cols3 h3{font-size:1.25rem;margin-bottom:10px;}
.rs .cols3 p{font-size:15px;}
.rs .tbl{width:100%;border-collapse:collapse;font-size:14.5px;border-top:1px solid var(--ink);margin:18px 0 6px;}
.rs .tbl th{font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--blue-mid);font-weight:400;text-align:left;padding:12px 10px 10px 0;border-bottom:1px solid var(--line);position:sticky;top:80px;background:inherit;}
.rs .tbl td{padding:11px 10px 11px 0;border-bottom:1px solid var(--line);vertical-align:top;}
.rs .ev{font-style:normal;font-weight:500;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;padding:1px 6px;border:1px solid var(--line);color:var(--muted);margin-left:4px;vertical-align:middle;white-space:nowrap;}
.rs .ev.calc{color:var(--blue);border-color:var(--blue-light);}
.rs .ev.assume{color:var(--elev);border-color:#d9c39d;}
.rs .ev.crit{color:var(--ink);border-color:var(--ink);}
.rs .ev.input{color:var(--good);border-color:#b7cdbf;}
.rs .evkey{font-size:13px;color:var(--muted);margin:14px 0 6px;max-width:none;}
.rs .evkey b{font-weight:500;color:var(--good);}
.rs .eqn{font-family:var(--mono);font-size:15px;color:var(--ink);padding:18px 22px;border:1px solid var(--line);background:var(--panel);margin:18px 0;line-height:1.7;max-width:40em;}
.rs .eqn small{display:block;font-size:12.5px;color:var(--muted);margin-top:8px;font-family:var(--sans);}
.rs .qa{border-top:1px solid var(--ink);padding:22px 0 26px;}
.rs .qa h3{margin-bottom:12px;font-size:clamp(1.25rem,2vw,1.6rem);}
.rs figure{margin:18px 0 0;}
.rs figcaption{font-size:13.5px;color:var(--muted);margin-top:14px;max-width:70ch;line-height:1.6;}
.rs .lim{list-style:none;max-width:70ch;}
.rs .lim li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;}
.rs .lim b{font-weight:500;color:var(--ink);}
.rs .src{font-size:14px;color:var(--body);max-width:70ch;padding-left:1.4em;}
.rs .src li{padding:8px 0;border-bottom:1px solid var(--line);}
.rs .rel{list-style:none;font-size:15px;}
.rs .rel li{padding:8px 0;}
.req{background:var(--paper);}
.req .lay{display:grid;grid-template-columns:1.5fr 0.9fr;gap:56px;align-items:start;}
.side{border-top:1px solid var(--ink);padding-top:18px;}
.side .eyebrow{margin-bottom:14px;}
.side ol{list-style:none;}
.side li{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;}
.side li b{font-weight:500;color:var(--ink);display:block;margin-bottom:3px;}
.side + .side{margin-top:36px;}
.con{background:var(--paper);}
.con .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--ink);}
.con .cc{padding:26px 24px 30px 0;border-right:1px solid var(--line);}
.con .cc + .cc{padding-left:24px;}
.con .cc:last-child{border-right:0;}
.con .cc .eyebrow{margin-bottom:12px;}
.con .cc p{font-size:15.5px;}
.con .cc p + p{margin-top:10px;}
.con .big{font-family:var(--mono);font-size:1.15rem;color:var(--blue);display:block;margin:4px 0 8px;}
.con .route{margin-top:48px;border-top:1px solid var(--ink);}
.con .route div{display:grid;grid-template-columns:260px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;}
.con .route b{font-weight:500;color:var(--ink);}
.research-archive{max-width:40em;}
.research-archive header{position:static;background:none;backdrop-filter:none;z-index:auto;border-top:0;border-bottom:1px solid var(--line);padding:0 0 26px;margin:0 0 8px;}
.research-archive h1.is-display{font-family:var(--serif);font-weight:400;font-style:normal;font-variation-settings:'SOFT' 0,'WONK' 0;letter-spacing:-0.02em;color:var(--ink);line-height:1.14;font-size:clamp(1.8rem,3vw,2.6rem);margin:10px 0 0;}
.research-archive .archive-note{font-size:12.5px;color:var(--muted);border-left:2px solid var(--line);padding-left:14px;margin-top:20px;line-height:1.6;}
.research-archive h2{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;letter-spacing:-0.015em;color:var(--ink);font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.2;margin:2.2em 0 0;}
.research-archive h3{font-family:var(--sans);font-weight:500;color:var(--ink);font-size:1.02rem;line-height:1.35;margin:1.7em 0 0;}
.research-archive p{margin-top:1.1em;}
.research-archive ul,.research-archive ol{margin:1.1em 0 0;padding-left:1.3em;}
.research-archive li{margin-top:0.5em;}
.research-archive blockquote{margin:1.4em 0 0;padding-left:18px;border-left:2px solid var(--line);color:var(--body);}
.research-archive sup{font-size:0.72em;vertical-align:super;line-height:0;}
.research-archive .references{margin-top:2.4em;border-top:1px solid var(--line);padding-top:20px;}
.research-archive .references h2{margin-top:0;}
.research-archive .references li{font-size:13.5px;color:var(--muted);word-break:break-word;}

/* ============================================================================
   SECTION 5 - PAGE INTERIORS, PER ROUTE, SCOPED BY BODY CLASS
   Rules appearing on exactly one route, prefixed with that route's body class
   so one file serves all 20 routes with no conditional enqueue.
   ============================================================================ */

/* --- body.page-diagnostics (20 rules) --- */
body.page-diagnostics .seq li a{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:baseline;color:inherit;}
body.page-diagnostics .seq li a:hover .ph{color:var(--blue);}
body.page-diagnostics .seq li{display:block;}
body.page-diagnostics .menu{background:var(--paper);}
body.page-diagnostics .qt{width:100%;border-collapse:collapse;border-top:1px solid var(--ink);}
body.page-diagnostics .qt th{text-align:left;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--blue-mid);font-weight:400;padding:12px 16px 12px 0;border-bottom:1px solid var(--line);}
body.page-diagnostics .qt td{vertical-align:top;padding:16px 16px 16px 0;border-bottom:1px solid var(--line);font-size:15.5px;}
body.page-diagnostics .qt td:first-child{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:1.1rem;color:var(--ink);letter-spacing:-0.01em;width:42%;}
body.page-diagnostics .qt td:nth-child(2){white-space:nowrap;width:18%;}
body.page-diagnostics .qt tr.all td{background:var(--panel);padding-left:12px;}
body.page-diagnostics .qt td .eg{display:block;margin-top:6px;font-family:var(--sans);font-weight:300;font-size:13.5px;color:var(--muted);letter-spacing:0;line-height:1.5;}
body.page-diagnostics .layer{border-top:1px solid var(--ink);padding:34px 0 30px;}
body.page-diagnostics .layer + .layer{margin-top:12px;}
body.page-diagnostics .layer .lh{display:grid;grid-template-columns:110px 1fr;gap:0 40px;align-items:baseline;margin-bottom:22px;}
body.page-diagnostics .layer .lh h3{font-size:clamp(1.5rem,2.2vw,1.95rem);margin:0;}
body.page-diagnostics .lg{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px;margin-left:150px;}
body.page-diagnostics .lg > div{border-top:1px solid var(--line);padding-top:12px;}
body.page-diagnostics .lg dt{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--blue-mid);margin-bottom:8px;}
body.page-diagnostics .lg dd{margin:0;font-size:15.5px;line-height:1.65;}
body.page-diagnostics .common{background:var(--paper);}

/* --- body.page-humidity (6 rules) --- */
body.page-humidity .model{background:var(--paper);}
body.page-humidity .model .embed{border:1px solid var(--line);background:var(--panel);}
body.page-humidity .model iframe{display:block;width:100%;height:1080px;border:0;}
body.page-humidity .model .guide{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:28px;}
body.page-humidity .model .guide div{font-size:15px;border-top:1px solid var(--ink);padding-top:14px;}
body.page-humidity .model .guide b{font-weight:500;color:var(--ink);}

/* --- body.page-research (25 rules) --- */
body.page-research .rix{background:var(--panel);border:1px solid var(--line);padding:26px 30px 24px;color:var(--body);}
body.page-research .rix ol{list-style:none;}
body.page-research .rix li a{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--line);color:inherit;}
body.page-research .rix li:last-child a{border-bottom:0;}
body.page-research .rix li a:hover .ph{color:var(--blue);}
body.page-research .rix .ph{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:1.08rem;color:var(--ink);letter-spacing:-0.01em;}
body.page-research .rix .dl{font-size:12.5px;color:var(--muted);white-space:nowrap;}
body.page-research .rix .ft{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:18px;padding-top:14px;border-top:1px solid var(--ink);font-size:12px;color:var(--muted);}
body.page-research .rix .ft .z{font-family:var(--mono);font-size:11px;letter-spacing:0.04em;color:var(--blue);white-space:nowrap;}
body.page-research .notes{background:var(--paper);}
body.page-research .rn-list,body.page-research .ess-list{border-top:1px solid var(--ink);}
body.page-research .rn-item,body.page-research .ess-item{display:grid;grid-template-columns:220px 1fr;gap:12px 40px;padding:30px 0;border-bottom:1px solid var(--line);color:inherit;}
body.page-research .rn-meta{display:flex;flex-direction:column;gap:6px;}
body.page-research .rn-item h3,body.page-research .ess-item h3{grid-column:2;font-size:clamp(1.4rem,2vw,1.8rem);margin:0 0 8px;}
body.page-research .rn-item p,body.page-research .ess-item p{grid-column:2;font-size:16px;max-width:40em;}
body.page-research a.rn-item:hover h3{color:var(--blue);}
body.page-research .rn-tags{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
body.page-research .rn-tags span{font-size:11.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:5px 10px;}
body.page-research .rn-item.next h3{color:var(--muted);}
body.page-research .essays{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
body.page-research .ess-note{max-width:46em;margin:-8px 0 44px;}
body.page-research .ess-note p{font-size:17px;line-height:1.7;}
body.page-research .ess-item.pend{border-bottom:1px dashed var(--line);}
body.page-research .methods{background:var(--paper);}
body.page-research .std > div{display:grid;grid-template-columns:260px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);}

/* --- body.page-technical-note (6 rules) --- */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;1,9..144,400&family=Archivo:wght@300;400;500&family=Fragment+Mono&display=swap');
:root{--is-serif:'Fraunces',Georgia,serif;--is-sans:'Archivo',Helvetica,sans-serif;--is-mono:'Fragment Mono',Courier,monospace;--ink:#121a22;--body:#26313c;--muted:#5a6672;--blue:#2e4a68;--line:#c9d5de;--paper:#f5f7f9}
body.page-technical-note .eyebrow{font-family:var(--is-sans);font-weight:500;font-size:8.5pt;letter-spacing:.28em;text-transform:uppercase;color:var(--blue)}
body.page-technical-note .sub{font-size:11pt;color:var(--muted);margin:0 0 1.2em}
body.page-technical-note .meta{display:grid;grid-template-columns:1fr 1fr;gap:.4em 2em;font-size:9.5pt;color:var(--muted);border-top:2px double var(--line);border-bottom:2px double var(--line);padding:.8em 0;margin:1.4em 0}
body.page-technical-note .meta b{font-weight:500;color:var(--ink);display:block;font-size:8.5pt;letter-spacing:.2em;text-transform:uppercase}
body.page-technical-note .foot{margin-top:2.5em;padding-top:.8em;border-top:1px solid var(--line);font-size:8.5pt;color:var(--muted)}

/* --- body.page-the-practice (18 rules) --- */
body.page-the-practice .memoriam{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
body.page-the-practice .mem{display:grid;grid-template-columns:0.9fr 1.6fr;gap:56px;margin-top:36px;padding:44px 0 8px;border-top:1px solid var(--ink);}
body.page-the-practice .mem-head h2{font-size:clamp(2rem,3.4vw,2.9rem);margin:10px 0 14px;}
body.page-the-practice .mem-sub{font-size:14px;color:var(--muted);line-height:1.6;max-width:22em;}
body.page-the-practice .mem-body p{font-size:17px;line-height:1.72;max-width:40em;}
body.page-the-practice .mem-body p + p{margin-top:1.1em;}
body.page-the-practice .mem-open{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:1.45rem!important;line-height:1.35!important;color:var(--ink);letter-spacing:-0.01em;}
body.page-the-practice .mem-ded{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 0,'WONK' 0;font-size:1.05rem!important;color:var(--ink);margin-top:1.6em!important;padding-top:18px;border-top:1px solid var(--line);}
body.page-the-practice .team{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--ink);}
body.page-the-practice .tm{padding:26px 24px 30px 0;border-right:1px solid var(--line);}
body.page-the-practice .tm + .tm{padding-left:24px;}
body.page-the-practice .tm:last-child{border-right:0;}
body.page-the-practice .tm h3{font-size:clamp(1.2rem,1.6vw,1.45rem);margin:8px 0 8px;}
body.page-the-practice .tm .role{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:12px;}
body.page-the-practice .tm p{font-size:14.5px;color:var(--body);}
body.page-the-practice .tm.lead{background:var(--panel);padding-left:24px;margin-left:0;}
body.page-the-practice .basis .grid2{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
body.page-the-practice .basis .grid2 .eyebrow{margin-bottom:14px;}

