/* falden.ai
   Warm paper, ink, one green accent. Caslon for reading, Inter for interface,
   IBM Plex Mono for every fact. Nothing above the fold moves. No dark object.
   Spec: SPEC.md in this directory. */

/* ---------- fonts (self-hosted, latin subsets, OFL) ---------- */
@font-face{font-family:"Libre Caslon Display";font-style:normal;font-weight:400;font-display:swap;
  src:url("/fonts/libre-caslon-display-latin.v18.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Libre Caslon Text";font-style:normal;font-weight:400;font-display:swap;
  src:url("/fonts/libre-caslon-text-latin.v5.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Libre Caslon Text";font-style:italic;font-weight:400;font-display:swap;
  src:url("/fonts/libre-caslon-text-latin-italic.v5.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Libre Caslon Text";font-style:normal;font-weight:700;font-display:swap;
  src:url("/fonts/libre-caslon-text-latin-700.v5.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("/fonts/inter-latin.v20.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url("/fonts/ibm-plex-mono-latin-400.v20.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("/fonts/ibm-plex-mono-latin-500.v20.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* metric-matched fallbacks so the swap does not move layout (values tuned by measurement) */
@font-face{font-family:"Caslon Text Fallback";src:local("Georgia");size-adjust:107.27%;ascent-override:90.43%;descent-override:24.24%;line-gap-override:0%}
@font-face{font-family:"Caslon Display Fallback";src:local("Georgia");size-adjust:83.56%;ascent-override:116.08%;descent-override:31.83%;line-gap-override:0%}
@font-face{font-family:"Inter Fallback";src:local("Arial");size-adjust:106.93%;ascent-override:90.60%;descent-override:22.56%;line-gap-override:0%}
@font-face{font-family:"Plex Mono Fallback";src:local("Menlo"),local("Consolas"),local("Courier New");size-adjust:99.66%;ascent-override:102.85%;descent-override:27.59%;line-gap-override:0%}

/* ---------- tokens ---------- */
:root{
  --paper:#FAFAFA; --paper-2:#F1F1F1; --card:#FDFDFD;
  --ink:#14171C; --ink-2:#5A616D; --ink-3:#666C76;
  --rule:#E6E6E6; --rule-2:#D6D6D6;
  --accent:#1D6A4E; --flag:#A8552C; --mark-ink:#17231C;
  --display:"Libre Caslon Display","Caslon Display Fallback",Georgia,"Times New Roman",serif;
  --text:"Libre Caslon Text","Caslon Text Fallback",Georgia,"Times New Roman",serif;
  --ui:"Inter","Inter Fallback",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono","Plex Mono Fallback",ui-monospace,Menlo,Consolas,monospace;
  --pad:clamp(24px,4vw,96px); --max:1440px; --r:3px;
  --wash-a:#FFFFFF; --wash-b:#EEF0F2; --wash-c:#F5F5F5;
  --fast:140ms; --base:220ms; --ease:cubic-bezier(.25,1,.5,1);
}

/* ground variants (dev switch; the chosen one becomes :root) */
html.g-warm{--paper:#FBFAF8;--paper-2:#F4F1EC;--card:#FFFEFC;--rule:#E5E1DA;--rule-2:#D5CFC5;--wash-a:#FFFFFF;--wash-b:#F1EDE4;--wash-c:#F6F3EE}
html.g-neutral{--paper:#F6F6F4;--paper-2:#EFEFEC;--card:#FCFCFB;--rule:#E2E2DE;--rule-2:#D1D1CB;--wash-a:#FDFDFC;--wash-b:#ECEEEF;--wash-c:#F2F2F0}
.gswitch{position:fixed;right:16px;bottom:16px;z-index:30;display:flex;gap:6px;align-items:center;background:var(--card);border:1px solid var(--rule-2);border-radius:var(--r);padding:6px 8px;font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.gswitch button{font:inherit;color:var(--ink-2);background:var(--paper-2);border:1px solid var(--rule);border-radius:2px;padding:3px 8px;cursor:pointer}
.gswitch button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--paper)}
body{
  margin:0;min-height:100vh;color:var(--ink);background:var(--paper);
  background-image:
    radial-gradient(120% 80% at 12% 0%,var(--wash-a) 0%,rgba(255,255,255,0) 54%),
    radial-gradient(90% 70% at 94% 4%,var(--wash-b) 0%,rgba(255,255,255,0) 60%),
    linear-gradient(180deg,var(--paper) 0%,var(--wash-c) 100%);
  background-repeat:no-repeat;
  font-family:var(--text);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--fast) var(--ease)}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
::selection{background:rgba(29,106,78,.18)}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0}
p{margin:0 0 1em}
code,kbd,.mono,.fact{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"zero"}
.mono{font-size:.92em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;border-radius:var(--r);font-family:var(--ui);font-size:14px;z-index:10}
.skip:focus{left:8px}
.muted{color:var(--ink-2)}
.small{font-family:var(--ui);font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.wide{max-width:60ch;margin:0 0 16px}

/* ---------- mark ---------- */
.mark{display:block;width:32px;height:32px;flex:none}
.mark .bars{fill:var(--mark-ink)}
.mark .strike{stroke:var(--accent);stroke-width:5;stroke-linecap:butt;fill:none}

/* ---------- bar ---------- */
.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 84%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;height:64px}
.topbar .wrap{max-width:none;padding:0 clamp(24px,4vw,140px)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.brand:hover{color:inherit}
.brand span{font-family:var(--ui);font-size:18px;font-weight:600;letter-spacing:-.012em;color:var(--ink)}
.nav{display:flex;align-items:center;gap:28px;font-family:var(--ui);font-size:14px}
.nav a{color:var(--ink-2);text-decoration:none}
.nav a:hover{color:var(--ink)}
.btn{display:inline-block;color:#fff;background:var(--ink);padding:9px 16px;border-radius:var(--r);font-family:var(--ui);font-size:13.5px;font-weight:500;text-decoration:none;border:0;cursor:pointer;line-height:1.3;transition:background var(--fast) var(--ease)}
.btn:hover{background:var(--accent);color:#fff}
.nav .btn{color:#fff}

/* ---------- hero ---------- */
h1{font-size:clamp(40px,3.6vw,56px);line-height:1.08;letter-spacing:-.012em;margin:0 0 22px;max-width:17ch;text-wrap:balance}
.lede{font-size:clamp(17px,1.2vw,19px);color:var(--ink-2);max-width:46ch;margin:0 0 30px;line-height:1.5}
.cta-row{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin:0 0 34px}
.btn-lg{font-size:15px;padding:13px 22px}
.link-arrow{font-family:var(--ui);font-size:15px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule-2);padding-bottom:2px;transition:border-color var(--fast) var(--ease),color var(--fast) var(--ease)}
.link-arrow::after{content:"\2192";margin-left:8px;color:var(--ink-3)}
.link-arrow:hover{color:var(--accent);border-color:var(--accent)}
.shape{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:0;display:flex;flex-wrap:wrap;gap:6px 0}
.shape span+span::before{content:"\00B7";margin:0 10px;color:var(--rule-2)}

/* ---------- the pack ---------- */
.packwrap{padding-bottom:clamp(40px,6vw,64px)}
.packlabel{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:13px;font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}
.pack{background:var(--card);border:1px solid var(--rule-2);border-radius:var(--r);overflow:hidden;
  box-shadow:0 1px 1px rgba(30,34,28,.05),0 6px 14px -6px rgba(30,34,28,.09),0 30px 56px -28px rgba(30,34,28,.16)}
.pk-top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 24px;border-bottom:1px solid var(--ink);flex-wrap:wrap}
.pk-id{display:flex;align-items:center;gap:12px}
.pk-id .mark{width:24px;height:24px}
.pk-id b{font-family:var(--display);font-size:16px;font-weight:400}
.pk-id em{font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);border-left:1px solid var(--rule-2);padding-left:12px;margin-left:2px}
.pk-serial{font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.04em}
.pk-scope{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));border-bottom:1px solid var(--rule);margin:0}
.pk-scope div{padding:13px 24px;border-right:1px solid var(--rule)}
.pk-scope div:last-child{border-right:0}
.pk-scope dt,.pk-seal dt{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin:0 0 5px}
.pk-seal dt{color:var(--ink-2)}
.pk-scope dd{margin:0;font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}
.pk-find{padding:30px 24px 26px;border-bottom:1px solid var(--rule)}
.pk-big{font-family:var(--mono);font-size:clamp(46px,7vw,76px);line-height:.92;letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-feature-settings:normal}
.pk-of{font-family:var(--text);font-size:17px;color:var(--ink-2);margin-left:12px}
.pk-find p{margin:16px 0 0;font-size:17px;line-height:1.55;max-width:54ch;color:var(--ink-2)}
.pk-find p em{font-style:italic;color:var(--ink)}
.pk-sub{display:flex;gap:30px;flex-wrap:wrap;margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
.pk-sub b{display:block;font-family:var(--mono);font-size:24px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-feature-settings:normal;line-height:1;font-weight:500}
.pk-sub span{display:block;font-family:var(--ui);font-size:12px;color:var(--ink-3);margin-top:6px;max-width:24ch;line-height:1.45}
.pk-def{margin:18px 0 0;font-family:var(--ui);font-size:12.5px;color:var(--ink-3);max-width:64ch;line-height:1.55}
.pk-rows{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12.5px}
.pk-rows caption{caption-side:top;text-align:left;padding:15px 24px 9px;font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}
.pk-rows th{text-align:left;font-family:var(--ui);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:0 24px 8px;border-bottom:1px solid var(--rule-2)}
.pk-rows td{padding:9px 24px;border-bottom:1px solid var(--rule);color:var(--ink-2);font-variant-numeric:tabular-nums;vertical-align:top}
.pk-rows th.num,.pk-rows td.num{text-align:right}
.pk-rows .no{color:var(--flag)}
.pk-rows .yes{color:var(--accent)}
.pk-rows .none{color:var(--ink-3)}
.pk-note{padding:12px 24px 0;font-family:var(--ui);font-size:12px;color:var(--ink-3);line-height:1.55;margin:0}
.pk-seal{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px 30px;padding:22px 24px;background:var(--paper-2);border-top:1px solid var(--rule-2);margin:18px 0 0}
.pk-seal dd{margin:0;font-family:var(--mono);font-size:11.5px;color:var(--ink);word-break:break-all;line-height:1.5}
.pk-foot{padding:14px 24px 18px;font-family:var(--ui);font-size:12.5px;color:var(--ink-3);line-height:1.6;border-top:1px solid var(--rule);margin:0}

/* ---------- bands ---------- */
.band{padding:clamp(56px,7vw,104px) 0;border-top:1px solid var(--rule);scroll-margin-top:72px}
.band-head{margin-bottom:24px}
.band h2{font-size:clamp(28px,2.8vw,42px);line-height:1.08;letter-spacing:-.016em;margin:0 0 16px;max-width:24ch;text-wrap:pretty}
.band-head p{margin:0;color:var(--ink-2);max-width:60ch;font-size:18px}
.band h3{font-family:var(--display);font-size:20px;margin:30px 0 12px}
.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin:0 0 13px}

/* verify */
.verify h2{font-size:clamp(28px,2.8vw,42px);letter-spacing:-.016em;margin:0 0 14px}
.packwrap{scroll-margin-top:72px}
.verify p{max-width:62ch}
.pill{display:flex;align-items:flex-start;gap:14px;border:1px solid var(--rule-2);border-radius:var(--r);background:var(--card);padding:13px 15px;overflow-x:auto;margin:18px 0 10px}
.pill pre{margin:0;font-family:var(--mono);font-size:12.5px;line-height:1.6;color:var(--ink);white-space:pre}
.pill .d{color:var(--ink-3)}
.pill button{margin-left:auto;flex:none;font-family:var(--ui);font-size:12px;font-weight:500;color:var(--ink-2);background:var(--paper-2);border:1px solid var(--rule);border-radius:2px;padding:6px 11px;cursor:pointer;min-height:24px;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}
.pill button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.pill button[data-done="1"]{background:var(--paper-2);color:var(--accent);border-color:var(--accent)}
.out{font-family:var(--ui);font-size:13.5px;color:var(--ink-2);margin:0 0 6px;line-height:1.6}
.out code{font-size:12.5px;color:var(--ink);background:var(--paper-2);padding:2px 6px;border-radius:2px}
.out code.ok{color:var(--accent)}
.out code.fail{color:var(--flag)}

/* access */
.perms{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px 44px;margin:24px 0 26px;max-width:760px}
.perms h3{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 4px;font-weight:400}
.perms ul{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:13.5px}
.perms li{display:flex;align-items:baseline;gap:11px;padding:11px 0;border-bottom:1px solid var(--rule);line-height:1.45}
.perms .k{width:11px;flex:none;text-align:center}
.perms .y .k{color:var(--accent)}
.perms .n{color:var(--ink-3)}
.perms li em{font-style:normal;font-family:var(--ui);font-size:12px;color:var(--ink-3);display:block}
.nv{margin:8px 0 0;padding:0;list-style:none;max-width:66ch;counter-reset:nv}
.nv li{position:relative;padding:12px 0 12px 40px;border-top:1px solid var(--rule);font-family:var(--ui);font-size:14px;line-height:1.55;color:var(--ink-2);counter-increment:nv}
.nv li::before{content:counter(nv,decimal-leading-zero);position:absolute;left:0;top:14px;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.06em}
.nv li:last-child{border-bottom:1px solid var(--rule)}

/* why now */
.filing{border-left:2px solid var(--ink);padding:4px 0 4px 22px;margin:26px 0 22px;max-width:60ch}
.filing blockquote{margin:0 0 11px;font-size:19px;line-height:1.5;font-style:italic}
.filing p{font-style:normal;font-family:var(--ui);font-size:13px;color:var(--ink-2);line-height:1.6;margin:0}
.filing a{color:var(--ink-2)}

/* questions */
.asks{margin:24px 0 0;padding:0;list-style:none;max-width:64ch;counter-reset:a}
.asks li{position:relative;padding:15px 0 15px 42px;border-top:1px solid var(--rule);font-size:17px;line-height:1.52;counter-increment:a}
.asks li::before{content:counter(a,decimal-leading-zero);position:absolute;left:0;top:17px;font-family:var(--mono);font-size:11px;color:var(--ink-3);letter-spacing:.06em}
.asks li:last-child{border-bottom:1px solid var(--rule)}

/* spec list */
.spec{margin:0}
.spec>div{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,2.4fr);gap:26px;padding:19px 0;border-top:1px solid var(--rule)}
.spec>div:last-child{border-bottom:1px solid var(--rule)}
.spec dt{font-family:var(--ui);font-size:12.5px;font-weight:600;color:var(--ink-3);padding-top:3px}
.spec dd{margin:0;color:var(--ink-2);max-width:60ch}

/* compare / partners */
.plain{max-width:62ch;color:var(--ink-2)}
.plain strong{color:var(--ink);font-weight:400}

.req-head{margin:clamp(40px,5vw,64px) 0 8px;scroll-margin-top:80px}
.req-head h3{font-family:var(--display);font-size:clamp(26px,2.8vw,38px);letter-spacing:-.016em;margin:0 0 10px}
.req-head p{margin:0;color:var(--ink-2);max-width:58ch;font-size:17px}
/* form */
.form{max-width:640px;margin-top:22px}
.byline{font-family:var(--ui);font-size:13px;color:var(--ink-3);margin:6px 0 0}
.f{display:block;margin-bottom:18px}
.f>span.l{display:block;font-family:var(--ui);font-size:13px;font-weight:500;color:var(--ink);margin-bottom:6px}
.f>span.l i{font-style:normal;color:var(--ink-3);font-weight:400}
.f>span.h{display:block;font-family:var(--ui);font-size:12.5px;color:var(--ink-3);margin:-2px 0 7px;line-height:1.5}
.f input,.f select,.f textarea{width:100%;font-family:var(--ui);font-size:15px;color:var(--ink);background:var(--card);border:1px solid var(--rule-2);border-radius:var(--r);padding:11px 13px;min-height:44px;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}
.f select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%235A616D' stroke-width='1.5'/></svg>");background-repeat:no-repeat;background-position:right 13px center;padding-right:36px}
.f textarea{resize:vertical;min-height:88px}
.f input:hover,.f select:hover,.f textarea:hover{border-color:var(--ink-3)}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(29,106,78,.15)}
.f [aria-invalid="true"]{border-color:var(--flag)}
.f .err{display:none;font-family:var(--ui);font-size:12.5px;color:var(--flag);margin:0 0 6px}
.f.is-err .err{display:block}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.fbtn{font-family:var(--ui);font-size:15px;font-weight:500;color:#fff;background:var(--ink);border:0;border-radius:var(--r);padding:12px 24px;cursor:pointer;margin-top:2px;min-height:44px;transition:background var(--fast) var(--ease)}
.fbtn:hover{background:var(--accent)}
.fbtn[disabled]{background:var(--ink-3);cursor:default}
.ffine{margin:14px 0 0;font-family:var(--ui);font-size:12.5px;color:var(--ink-3);max-width:58ch;line-height:1.6}
.fnext{margin:10px 0 0;font-family:var(--ui);font-size:12.5px;color:var(--ink-2);max-width:58ch;line-height:1.6}
.fstatus{display:none;border:1px solid var(--rule-2);border-left:2px solid var(--accent);border-radius:var(--r);background:var(--card);padding:16px 18px;margin:0 0 18px;font-family:var(--ui);font-size:14px;line-height:1.6;color:var(--ink-2);max-width:640px}
.fstatus.err{border-left-color:var(--flag)}
.fstatus.show{display:block}
.fstatus strong{color:var(--ink);font-weight:600}
.fstatus ol{margin:8px 0 0;padding-left:20px}
.fstatus li{margin:4px 0}
[hidden]{display:none!important}


/* charts */
.fig{margin:34px 0 0;max-width:1000px}
.fig figcaption{font-family:var(--ui);font-size:13.5px;color:var(--ink-2);line-height:1.6;margin-top:14px;max-width:70ch}
.chart{display:block;width:100%;height:auto;overflow:visible}
.chart text{font-family:var(--mono);font-size:12px;fill:var(--ink-2)}
.wf-label{font-family:var(--ui);font-size:13px;fill:var(--ink)}
.wf-value{font-size:12px;fill:var(--ink-3)}
.wf-bar{fill:var(--paper-2);stroke:var(--rule-2);stroke-width:1}
.wf-bar-zoom{fill:var(--paper-2)}
.wf-bar-dark{fill:var(--ink-2)}
.wf-bar-dark-accent{fill:var(--accent)}
.wf-side{fill:var(--ink);font-size:12.5px}
.wf-guide{stroke:var(--rule-2);stroke-width:1}
.wf-axis{font-size:11px;fill:var(--ink-3)}
.sc-grid{stroke:var(--rule);stroke-width:1}
.sc-axis{stroke:var(--rule-2);stroke-width:1}
.sc-tick{font-size:11px;fill:var(--ink-3)}
.sc-label{font-family:var(--ui);font-size:12px;fill:var(--ink-3)}
.sc-dot{fill:var(--ink-2);fill-opacity:.85;stroke:var(--card);stroke-width:1.5;transition:fill-opacity var(--fast) var(--ease)}
.sc-dot.sc-aivendor{fill:var(--card);fill-opacity:1;stroke:var(--ink-2);stroke-width:1.5}
.sc-dot:hover{fill-opacity:1}
@media (max-width:700px){.chart text{font-size:26px}.wf-label{font-size:28px}.wf-side{font-size:26px}.wf-value{display:none}.sc-tick{font-size:22px}.sc-label{display:none}.chart-waterfall{margin-bottom:8px}}

/* faq */
.faq{margin:0}
.faq>div{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2.1fr);gap:26px;padding:20px 0;border-top:1px solid var(--rule)}
.faq>div:last-child{border-bottom:1px solid var(--rule)}
.faq dt{font-size:17.5px;line-height:1.35}
.faq dd{margin:0;color:var(--ink-2);max-width:60ch;font-size:16px}

/* footer */
footer{border-top:1px solid var(--ink);padding:26px 0 64px;display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;font-family:var(--ui);font-size:12.5px;color:var(--ink-3);line-height:1.6}
footer p{margin:0}
footer a{color:var(--ink-2);text-decoration:none}
footer a:hover{color:var(--accent)}
footer .sep::before{content:"\00B7";margin:0 8px;color:var(--rule-2)}

/* 404 + privacy */
.plainpage{padding:clamp(40px,7vw,84px) 0 64px;max-width:66ch}
.plainpage h1{font-size:clamp(28px,4vw,44px);margin-bottom:18px}
.plainpage h2{font-size:20px;margin:26px 0 8px}
.plainpage p,.plainpage li{color:var(--ink-2)}

/* ---------- responsive ---------- */
@media (max-width:700px){
  .nav a:not(.btn){display:none}
  .shape{flex-direction:column;gap:5px}
  .shape span+span::before{content:none;margin:0}
  .pk-scope div{border-right:0;border-bottom:1px solid var(--rule)}
  .pk-scope div:last-child{border-bottom:0}
  .pk-rows th,.pk-rows td,.pk-rows caption,.pk-find,.pk-seal,.pk-top,.pk-foot,.pk-note{padding-left:16px;padding-right:16px}
  .pk-rows{font-size:12px}
  .spec>div,.faq>div{grid-template-columns:1fr;gap:8px}
}
@media (max-width:840px){
  .pill{flex-direction:column}
  .pill button{margin-left:0}
}
@media (max-width:560px){
  /* register rows stack: id and verdict on the first line, attribution under it, then approver and lines */
  .pk-rows thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .pk-rows tbody tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 14px;padding:11px 16px;border-bottom:1px solid var(--rule)}
  .pk-rows td{display:block;padding:0;border:0;text-align:left}
  .pk-rows td:nth-child(1){order:1;color:var(--ink);font-weight:500}
  .pk-rows td:nth-child(5){order:2;margin-left:auto}
  .pk-rows td:nth-child(5)::before{content:"independent: ";color:var(--ink-3)}
  .pk-rows td:nth-child(2){order:3;flex-basis:100%;color:var(--ink-3)}
  .pk-rows td:nth-child(3){order:4}
  .pk-rows td:nth-child(3)::before{content:"approved by ";color:var(--ink-3)}
  .pk-rows td:nth-child(4){order:5}
  .pk-rows td:nth-child(4)::after{content:" lines";color:var(--ink-3)}
}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* ---------- print ---------- */
@media print{
  body{background:#fff;color:#000;font-size:11pt}
  .bar .nav,.skip,.pill button,.fbtn,.form,.fnext{display:none!important}
  .pack{box-shadow:none;border:1px solid #999}
  a[href^="http"]::after{content:" (" attr(href) ")";font-family:var(--mono);font-size:9pt;color:#555}
  .band{break-inside:avoid;padding:18pt 0}
  .pk-seal dd{word-break:break-all}
}

/* ---- hero: editorial cover. Seal high and centered, cover line bottom-left, register top-right, bar transparent.
   Mark box = --flare-size x min(w,h); ink is .8 of the box (tools/hero/src/flare/pipeline.ts). ---- */
html,body{overflow-x:clip}
.hero{--hero-ground:#070A09;position:relative;isolation:isolate;overflow:hidden;background:var(--hero-ground,#000);color:#F2F4F3;margin:-64px calc(50% - 50vw) 0;min-height:100svh;display:flex;flex-direction:column;padding:calc(64px + clamp(48px,8vh,120px)) clamp(24px,4vw,140px) clamp(56px,8vh,110px);
  --flare-size:.5;--flare-cy:.36;--flare-rim:3;--flare-body:.7;--flare-bar:.6;--flare-strike:1;--ocean-pitch:-22;--ocean-h:54%;--ocean-mask:40%}
.flare-poster,.flare-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
/* cover matches the live mark on every viewport narrower than 16:9 (laptops); contain matches on wider ones */
.flare-poster{object-fit:cover;object-position:center;transition:opacity 900ms ease-out}
@media (min-aspect-ratio:16/9){.flare-poster{object-fit:contain}}
.flare-poster.is-hidden{opacity:0}
.flare-canvas{opacity:0;transition:opacity 1400ms ease-out}
.flare-canvas.is-live{opacity:1}
.ocean-canvas{position:absolute;left:0;right:0;bottom:0;height:var(--ocean-h);width:100%;z-index:-1;pointer-events:none;opacity:0;transition:opacity 2200ms ease-out 500ms;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--ocean-mask));mask-image:linear-gradient(to bottom,transparent 0,#000 var(--ocean-mask))}
.ocean-canvas.is-live{opacity:1}
/* top scrim under the transparent bar: same z-index as the canvases, later in tree order, so it paints over them and under the text */
.hero::after{content:"";position:absolute;left:0;right:0;top:0;height:128px;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,rgba(7,10,9,.5),rgba(7,10,9,0))}
@media (prefers-reduced-motion:reduce){.flare-poster,.flare-canvas,.ocean-canvas{transition:none}}

/* grid: register top-right (row 1), open middle (row 2), cover line bottom-left (row 3) */
.hero-grid{flex:1;width:100%;max-width:none;margin:0 auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:auto 1fr auto;column-gap:clamp(24px,4vw,64px);row-gap:0}
.hero-lead{grid-column:1 / -1;grid-row:3;align-self:end;min-width:0}
.hero .eyebrow{font-weight:500;font-size:clamp(11px,min(.8vw,1.3vh),14px);line-height:1.2;letter-spacing:.14em;color:rgba(250,250,250,.62);margin:0 0 clamp(12px,1.6vh,20px)}
.hero h1{font-size:clamp(48px,min(6.1vw,9.8vh),104px);line-height:.96;letter-spacing:-.008em;margin:0 0 clamp(24px,2.6vh,40px);max-width:none;color:#F2F4F3;white-space:nowrap;font-kerning:normal}
.hero .cta-row{position:relative;display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin:0;width:max-content;max-width:100%}
/* ground-colored scrim behind the action row only: swallows the particles under the button, invisible on bare ground */
.hero .cta-row::before{content:"";position:absolute;inset:-18px -28px;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,rgba(7,10,9,.7),rgba(7,10,9,0))}
.hero .btn-lg{font-size:clamp(14.5px,min(1vw,1.65vh),18px);line-height:1.25;padding:calc(.85em - 1.5px) calc(1.4em - 1.5px);letter-spacing:.01em;font-weight:500;border:2.5px solid transparent;border-radius:var(--r)}
.btn-light{background:#EEF1F0;color:#0E1211}
.btn-light:hover{background:#FAFAFA;color:#0E1211}
.hero-lines{grid-column:2;grid-row:1;align-self:start;justify-self:end;margin:clamp(40px,7vh,96px) 0 0;padding:0;list-style:none;font-family:var(--ui);font-size:clamp(15px,min(1.15vw,1.9vh),19px);line-height:1.5;letter-spacing:.002em;color:rgba(250,250,250,.78);max-width:30ch;display:grid;gap:0}
.hero-lines li{padding:10px 0;border-top:1px solid rgba(250,250,250,.12)}
.hero-lines li:last-child{border-bottom:1px solid rgba(250,250,250,.12)}
.hero :focus-visible,.topbar.on-dark :focus-visible{outline-color:#7CCDB0}

/* topbar: transparent over the band at rest; .scrolled (site.js) brings the ink fill back so the sticky bar never floats see-through over the mark */
.topbar{transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease)}
.topbar.on-dark{background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.topbar.on-dark.scrolled{background:color-mix(in srgb,#070A09 82%,transparent);border-bottom-color:rgba(255,255,255,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.topbar.on-dark .brand span{color:#F2F4F3;font-weight:600;letter-spacing:-.004em}
.topbar.on-dark .nav a{color:rgba(250,250,250,.74);font-weight:450;letter-spacing:.004em}
.topbar.on-dark .nav a:hover{color:#F2F4F3}
.topbar.on-dark .nav .btn{background:transparent;color:#F2F4F3;border:2.5px solid transparent;outline:1px solid rgba(250,250,250,.34);outline-offset:-1px;padding:6.5px 12.5px;font-size:13px;font-weight:500;letter-spacing:.01em;line-height:1.25}
.topbar.on-dark .nav .btn:hover{background:rgba(250,250,250,.08);outline-color:rgba(250,250,250,.52);color:#fff}
.topbar.on-dark.scrolled .nav .btn{background:#EEF1F0;color:#0E1211;outline-color:transparent}
.topbar.on-dark.scrolled .nav .btn:hover{background:#FAFAFA;color:#0E1211}

/* short laptops: 1280x720, 1366x768, 1440x780 with browser chrome */
@media (min-width:901px) and (max-height:760px){
  .hero{--flare-size:.44;--flare-cy:.33}
  .hero h1{font-size:clamp(44px,5.2vw,78px)}
  .hero-lines{margin-top:clamp(24px,5vh,40px)}
}

/* phone: no water, no scrims, mark in the top third, everything in flow */
@media (max-width:900px){
  .hero{min-height:100svh;padding:calc(64px + 32px) var(--pad) 40px;--flare-size:.92;--flare-cy:.28}
  .hero::after{height:96px}
  .ocean-canvas{display:none}
  .hero-grid{grid-template-columns:1fr;grid-template-rows:1fr auto auto}
  .hero-lead{grid-column:1;grid-row:2}
  .hero h1{font-size:clamp(44px,12.5vw,64px);margin-bottom:22px;white-space:normal;text-wrap:balance}
  .hero .cta-row{width:100%;flex-direction:column;align-items:stretch;gap:14px}
  .hero .cta-row::before{content:none}
  .hero .cta-row .btn{text-align:center}
  .hero-lines{grid-column:1;grid-row:3;justify-self:start;margin:28px 0 0;font-size:14.5px;color:rgba(250,250,250,.7);max-width:34ch}
}
@media (max-width:900px) and (max-height:700px){
  .hero{--flare-size:.78;--flare-cy:.27}
  .hero-lines{display:none}
}
@media (max-width:700px){.topbar.on-dark:not(.scrolled) .nav .btn{visibility:hidden}}

/* ---- motion: entrance, scroll-out, reveals, micro-interactions. One vocabulary: rise 16px, ease-out, <= 760ms. ---- */
:root{--rise:cubic-bezier(.2,.7,.2,1)}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes rise-sm{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
html.js .topbar .brand,html.js .nav > a,html.js .hero .eyebrow,html.js .hero h1,html.js .hero .cta-row,html.js .hero-lines li{opacity:0}
/* entrance, slow and in order: wordmark, nav items one by one, then the cover line rises, then the register */
html.is-ready .topbar .brand{animation:rise-sm 900ms var(--rise) 200ms both}
html.is-ready .nav > a{animation:rise-sm 800ms var(--rise) both}
html.is-ready .nav > a:nth-child(1){animation-delay:380ms}
html.is-ready .nav > a:nth-child(2){animation-delay:460ms}
html.is-ready .nav > a:nth-child(3){animation-delay:540ms}
html.is-ready .nav > a:nth-child(4){animation-delay:620ms}
html.is-ready .nav > a:nth-child(5){animation-delay:760ms}
html.is-ready .hero .eyebrow{animation:rise 900ms var(--rise) 950ms both}
html.is-ready .hero h1{animation:rise 1100ms var(--rise) 1100ms both}
html.is-ready .hero .cta-row{animation:rise 900ms var(--rise) 1480ms both}
html.is-ready .hero-lines li{animation:rise 900ms var(--rise) both}
html.is-ready .hero-lines li:nth-child(1){animation-delay:1650ms}
html.is-ready .hero-lines li:nth-child(2){animation-delay:1800ms}
/* the mark reveals from the band on its own (flare-canvas.is-live); the copy lands just after it */

/* scroll-out: --out runs 0..1 over the first 55% of the band (site.js). The copy lifts and fades, a veil dims the canvases. */
.hero{--out:0}
.hero-grid{opacity:calc(1 - var(--out) * 1.25);transform:translateY(calc(var(--out) * -36px));will-change:opacity,transform}
.hero-veil{position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--hero-ground,#000);opacity:calc(var(--out) * .72)}

/* reveals below the band: once, on entering the viewport; children stagger */
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity 640ms var(--rise),transform 640ms var(--rise)}
html.js .reveal.in{opacity:1;transform:none}
html.js .reveal > *{transition:opacity 560ms var(--rise),transform 560ms var(--rise);opacity:0;transform:translateY(12px)}
html.js .reveal.in > *{opacity:1;transform:none}
html.js .reveal.in > :nth-child(2){transition-delay:70ms}
html.js .reveal.in > :nth-child(3){transition-delay:140ms}
html.js .reveal.in > :nth-child(4){transition-delay:210ms}
html.js .reveal.in > :nth-child(n+5){transition-delay:280ms}

/* micro-interactions */
.btn{transition:background var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--ease)}
.btn:hover{transform:translateY(-1px)}
.btn.is-lit:hover,.hero .btn:hover,.nav .btn:hover{transform:none}
.btn:active{transform:translateY(0) scale(.985)}
.nav a:not(.btn){position:relative;transition:color var(--fast) var(--ease)}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 160ms var(--rise)}
.nav a:not(.btn):hover::after{transform:scaleX(1)}
.hero-lines li{transition:color var(--fast) var(--ease)}
.hero-lines li:hover{color:#F2F4F3}

@media (prefers-reduced-motion:reduce){
  html.js .topbar .brand,html.js .nav > a,html.js .hero .eyebrow,html.js .hero h1,html.js .hero .cta-row,html.js .hero-lines li{opacity:1;animation:none}
  .hero-grid{opacity:1;transform:none}
  .hero-veil{opacity:0}
  html.js .reveal,html.js .reveal > *{opacity:1;transform:none;transition:none}
  .btn:hover,.btn:active{transform:none}
}

/* ---- folded sub-blocks and the headline numbers row ---- */
.fold{margin-top:clamp(40px,6vh,72px);padding-top:clamp(28px,4vh,40px);border-top:1px solid var(--rule)}
.fold .eyebrow{margin-bottom:10px}
h3.sub{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.2vw,32px);line-height:1.15;letter-spacing:-.01em;max-width:28ch;margin:0 0 14px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 clamp(28px,4vh,44px);padding:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.stats > div{padding:22px 24px 22px 0;border-right:1px solid var(--rule)}
.stats > div + div{padding-left:24px}
.stats > div:last-child{border-right:0}
.stats dt{font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px}
.stats dd{margin:0;display:flex;flex-direction:column;gap:4px}
.stats .fact{font-family:var(--display);font-size:clamp(40px,4vw,64px);line-height:1;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.stats em{font-style:normal;font-family:var(--ui);font-size:13.5px;color:var(--ink-2)}
@media (max-width:760px){
  .stats{grid-template-columns:1fr}
  .stats > div{border-right:0;border-bottom:1px solid var(--rule);padding:16px 0}
  .stats > div + div{padding-left:0}
  .stats > div:last-child{border-bottom:0}
}

/* ---- hovered request button: a live gradient ring in the flare's tint, slim, spinning; the rays aim at it (hero-entry.ts).
   Double background: the face on padding-box, the conic ring on border-box, so the face stays clean. ---- */
@property --ring-angle{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes ring-spin{to{--ring-angle:360deg}}
:root{--tint:#DCE4FF;--ring-stops:transparent 0 45%,var(--tint) 78%,#fff 92%,transparent 100%}
.btn{transition:background var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--ease),box-shadow 240ms var(--rise);--btn-face:var(--ink)}
.btn-light{--btn-face:#EEF1F0}
.btn-light:hover{--btn-face:#FAFAFA}
.topbar.on-dark .nav .btn{--btn-face:#070A09}
.topbar.on-dark.scrolled .nav .btn{--btn-face:#EEF1F0}
.btn.is-lit{border-color:transparent;outline-color:transparent;background:linear-gradient(var(--btn-face),var(--btn-face)) padding-box,conic-gradient(from var(--ring-angle),var(--ring-stops)) border-box;animation:ring-spin 2.2s linear infinite;box-shadow:0 0 12px -5px var(--tint),0 0 26px -12px var(--tint)}
@media (prefers-reduced-motion:reduce){.btn.is-lit{animation:none}}


/* ---- the slot: real rows from the published pack, then the same pack verified offline, one story.
   Placement is measured in site.js: .slot-corner puts it level with the button when the headline
   leaves room, otherwise it sits just above the headline row. ---- */
.slot{grid-column:2;grid-row:2;align-self:end;justify-self:end;position:relative;width:min(100%,600px);height:200px;margin:0 0 clamp(20px,4vh,56px);font-family:var(--mono);color:rgba(250,250,250,.6)}
.hero.slot-corner .slot{grid-row:3;margin-bottom:0}
.slot-panel{position:absolute;inset:0 0 auto 0;opacity:0;transition:opacity 320ms var(--ease);pointer-events:none}
.slot-panel.is-on{opacity:1;pointer-events:auto}
.ledger-head{margin:0 0 6px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(250,250,250,.5);display:flex;align-items:center;gap:8px}
.ledger-head .dot{width:6px;height:6px;border-radius:50%;background:var(--tint);box-shadow:0 0 8px var(--tint);animation:pulse-dot 2.4s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{opacity:.45}50%{opacity:1}}
.ledger{list-style:none;margin:0;padding:0;border-top:1px solid rgba(250,250,250,.12)}
.ledger li{display:grid;grid-template-columns:4.5ch minmax(0,1fr) auto auto;gap:14px;align-items:baseline;padding:7px 0 7px 10px;margin-left:-10px;border-bottom:1px solid rgba(250,250,250,.1);font-size:11.5px;line-height:1.4;white-space:nowrap;border-left:2px solid transparent;transition:color 200ms var(--ease),border-color 200ms var(--ease);animation:rise-sm 600ms var(--rise) both}
.ledger li.is-out{animation:fade-out 360ms var(--ease) both}
@keyframes fade-out{to{opacity:0;transform:translateY(-6px)}}
.ledger .n{color:rgba(250,250,250,.8)}
.ledger .who{overflow:hidden;text-overflow:ellipsis}
.ledger .who em{font-style:normal;color:rgba(250,250,250,.4)}
.ledger .lines{color:rgba(250,250,250,.5)}
.ledger .ind{color:#E0A080;min-width:2ch;text-align:right;white-space:nowrap}
.ledger .ind em{font-style:normal;color:rgba(250,250,250,.4)}
.ledger .ind.yes{color:#8FD9B6}
.ledger li.is-lit{color:#F2F4F3;border-left-color:var(--tint)}
.ledger li.is-lit .who em,.ledger li.is-lit .lines{color:rgba(250,250,250,.75)}
.vterm{margin:0;padding:8px 0 0;font:11.5px/1.75 var(--mono);color:rgba(250,250,250,.72);white-space:pre;border-top:1px solid rgba(250,250,250,.12);height:170px;overflow:hidden}
.vterm .p{color:rgba(250,250,250,.4)}
.vterm .ok{color:#8FD9B6}
.vterm .fail{color:#E0A080}
.vterm .dim{color:rgba(250,250,250,.45)}
.vterm{border-left:2px solid transparent;padding-left:10px;margin-left:-10px;transition:border-color 200ms var(--ease),color 200ms var(--ease)}
.vterm.is-lit{border-left-color:var(--tint);color:#F2F4F3}
.vterm .cur{display:inline-block;width:.6ch;height:1.1em;vertical-align:-.15em;background:var(--tint);animation:pulse-dot 1s steps(2,end) infinite}
html.js .slot{opacity:0}
html.is-ready .slot{animation:rise 900ms var(--rise) 2000ms both}
@media (max-width:900px),(max-height:760px){.slot{display:none}}
@media (prefers-reduced-motion:reduce){.ledger li,.ledger li.is-out,.ledger-head .dot,.vterm .cur{animation:none}html.js .slot{opacity:1;animation:none}.slot-panel{transition:none}}

/* ---- measured: the numbers are the headline. Row 1 a ruled label line, row 2 three numerals, row 3 the sentence as the lede
   (8 cols) with the method as a colophon (4), row 4 the two charts on one row under a hairline, then the fold as argument (7)
   plus filing (5). 12 columns, 40px gutters at 1440. ---- */
#measured{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,2.8vw,40px);row-gap:0;align-items:start}
#measured > *{grid-column:1 / -1;min-width:0}
#measured .m-eyebrow,#pack .m-eyebrow,#assessment .m-eyebrow{grid-row:1;position:relative;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 24px;margin:0 0 clamp(36px,5vh,56px);padding-bottom:12px}
#measured .m-eyebrow{margin-bottom:0}
#measured .m-eyebrow span + span,#pack .m-eyebrow span + span,#assessment .m-eyebrow span + span{color:var(--ink-3)}
#measured .m-eyebrow::after,#pack .m-eyebrow::after,#assessment .m-eyebrow::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--rule)}
#measured .m-eyebrow::after{opacity:var(--land,1)}  /* the rule the seam lands on */
#measured .stats{grid-row:3;margin:0;border-top:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr))}
#measured .stats > div{padding:clamp(28px,3.4vh,44px) 32px clamp(26px,3.2vh,40px) 0}
#measured .stats > div + div{padding-left:36px}
#measured .stats dt{margin-bottom:18px}
#measured .stats .fact{display:inline-block;font-size:clamp(96px,9vw,128px);line-height:.9;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
#measured .stats em{font-size:14px;margin-top:10px;max-width:38ch}
#measured .band-head{grid-row:2;margin:0;padding:clamp(36px,5vh,56px) 0 clamp(28px,4vh,40px)}
#measured .band-head h2{font-size:clamp(32px,3.2vw,48px);line-height:1.1;letter-spacing:-.014em;max-width:24ch;margin:0}
#measured .band-head p{font-family:var(--ui);font-size:16.5px;line-height:1.55;max-width:66ch}
#measured .caveat{font-size:13.5px;color:var(--ink-3);max-width:72ch}
#measured .caveat a{color:var(--ink-2)}
#measured .method{margin:0;padding-top:clamp(32px,4vh,48px);max-width:none}
#measured .method a{overflow-wrap:anywhere}
@media (min-width:1100px){
  #measured .band-head{grid-column:1 / 11}
}
#measured .kicker{grid-row:4;font-family:var(--ui);font-size:17px;line-height:1.55;color:var(--ink-2);max-width:66ch;margin:clamp(24px,3vh,36px) 0 0}
#measured .caveat{margin-top:18px}
#measured .fig{position:relative;margin:clamp(40px,5vh,64px) 0 0;max-width:none}
#measured .fignum{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);margin-right:10px}
#measured .axes{display:none;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.wf-zoom{stroke:var(--rule-2);stroke-width:1;stroke-dasharray:3 3;fill:none}
@media (min-width:1200px){
  #measured .fig-wf{grid-row:5;grid-column:1 / 10}
  #measured .caveat{grid-row:6;grid-column:1 / 10}
  #measured .fold{grid-row:7}
  #measured .chart-waterfall text{font-size:18px}
  #measured .chart-waterfall .wf-label{font-size:19px}
  #measured .chart-waterfall .wf-value{font-size:17px}
  #measured .chart-waterfall .wf-axis{font-size:16px}
  #measured .chart-scatter .sc-tick{font-size:22px}
  #measured .chart-scatter .sc-label{display:none}
  #measured .axes{display:block}
}
#measured .fold{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(40px,5vw,80px);align-items:start;margin-top:clamp(48px,6vh,80px);padding-top:clamp(32px,4vh,48px);border-top:1px solid var(--rule)}
#measured .fold-text{grid-column:1;min-width:0}
#measured .fold .filing{grid-column:2;margin:0;max-width:none;border-left:1px solid var(--rule);padding:4px 0 4px clamp(24px,2.5vw,40px)}
#measured .fold .filing blockquote{font-family:var(--text);font-style:italic;font-size:clamp(22px,1.9vw,27px);line-height:1.3;letter-spacing:-.008em;margin:0 0 18px;text-wrap:pretty}
html.js .reveal .stats > div{opacity:0;transform:translateY(10px);transition:opacity 560ms var(--rise),transform 560ms var(--rise)}
html.js .reveal.in .stats > div{opacity:1;transform:none}
html.js .reveal.in .stats > div:nth-child(2){transition-delay:90ms}
html.js .reveal.in .stats > div:nth-child(3){transition-delay:180ms}
@media (prefers-reduced-motion:reduce){
  html.js .reveal .stats > div{opacity:1;transform:none;transition:none}
}
@media (max-width:760px){
  #measured,#measured .fold{display:block}
  #measured .m-eyebrow{padding-bottom:10px}
  #measured .stats{margin:0 0 8px;border-bottom:0}
  #measured .stats > div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:baseline;padding:12px 0 14px;border:0;border-bottom:1px solid var(--rule)}
  #measured .stats dt{margin:0;font-size:10.5px}
  #measured .stats dd{display:block;text-align:right}
  #measured .stats .fact{display:block;font-size:clamp(32px,9vw,40px);line-height:1;letter-spacing:-.02em}
  #measured .stats em{display:block;margin-top:2px;font-size:12.5px}
  #measured .band-head{padding-top:28px}
  #measured .band-head h2{font-size:24px;max-width:none}
  #measured .method{margin:12px 0 0;padding:0}
  #measured .fig{margin-top:36px}
  #measured .fold .filing{margin-top:24px;padding-left:18px}
  #measured .fold .filing blockquote{font-size:20px}
}

/* ---- strike wipe: the band pins for one viewport of scroll; the strike's own diagonal becomes the edge of the paper, then the
   lit seam swings flat and lands as the rule under WHAT WE MEASURED (site.js, the pin driver). Every rule is scoped to html.pin,
   which site.js adds on laptops (min-width 901, min-height 600) without reduced motion; without the class the page is today's flow.
   Geometry: the strike rises to the right at atan(26/42) = 31.76 deg, tan .619 (glyph.ts). ---- */
:root{--band-h:100svh;--land:1}
html.pin{--land:0}
html.pin .hero-pin{height:calc(2 * var(--band-h));margin:-64px calc(50% - 50vw) 0}
html.pin .hero{position:sticky;top:0;height:var(--band-h);min-height:0;margin:0}
html.pin #measured{position:relative;z-index:1;margin-top:calc(-1 * var(--band-h));border-top:0;background:transparent;scroll-margin-top:0}
html.pin #measured:not(.in){pointer-events:none}
html.pin body{background-image:none}
html.pin .hero-veil{opacity:calc(var(--out) * .45)}
.hero-page,.strike-line{display:none}
html.pin .hero-page{display:block;position:absolute;inset:0;z-index:3;pointer-events:none;background:var(--paper);
  clip-path:polygon(0 0,100% 0,100% calc(var(--wipe,0) * (100% + 61.9vw) - 61.9vw),0 calc(var(--wipe,0) * (100% + 61.9vw)))}
html.pin .strike-line{display:none;position:absolute;left:0;top:0;z-index:4;height:1px;pointer-events:none;transform-origin:50% 50%;
  will-change:transform;background:var(--accent);opacity:var(--seam,0)}
html.pin .strike-line::before{content:"";position:absolute;left:0;right:0;top:-6px;bottom:-6px;
  background:linear-gradient(to bottom,transparent,var(--tint,#DCE4FF) 50%,transparent);opacity:var(--halo,1)}
html.pin .hero.is-landed .strike-line{visibility:hidden}
html.pin .hero.is-covered .flare-canvas,html.pin .hero.is-covered .ocean-canvas{display:none}
html.pin .topbar.on-dark.scrolled{background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
html.pin .topbar.on-dark .brand.is-paper span{color:var(--ink)}
html.pin .topbar.on-dark .nav a.is-paper:not(.btn){color:var(--ink-2)}
html.pin .topbar.on-dark .nav a.is-paper:not(.btn):hover{color:var(--ink)}
html.pin .topbar.on-dark .nav .btn.is-paper{background:var(--ink);color:#fff;border-color:var(--ink);outline-color:transparent}
html.pin #measured.reveal{opacity:1;transform:none;transition:none}
html.js #measured > .m-eyebrow.in{opacity:1;transform:none}

/* ---- measured, the charts: Inter for words, mono for numbers, ink outline on the counted share ---- */
#measured .chart-waterfall .wf-label{font-family:var(--ui);font-size:19px;fill:var(--ink)}
#measured .chart-waterfall .wf-side{font-family:var(--ui);font-size:17px;fill:var(--ink-2)}
#measured .chart-waterfall .wf-value,#measured .chart-waterfall .wf-axis{font-family:var(--mono);font-size:16px;fill:var(--ink-3)}
#measured .chart-waterfall .wf-pct{font-family:var(--mono);font-size:19px;font-weight:500;fill:var(--ink)}
#measured .chart-waterfall .wf-bar{fill:#EEEFF0;stroke:var(--rule-2);stroke-width:1}
#measured .chart-waterfall .wf-bar-dark{fill:#4B535E;stroke:#1F242B;stroke-width:1}
#measured .chart-waterfall .wf-bar-dark-accent{fill:var(--accent);stroke:#144A37}
#measured .chart-waterfall .wf-guide{stroke:var(--rule)}
#measured .fig-title{font-family:var(--display);font-size:clamp(22px,1.9vw,26px);line-height:1.2;letter-spacing:-.01em;margin:0 0 18px;max-width:36ch}
#measured .chart-scatter .sc-quad{fill:var(--accent);fill-opacity:.05}
#measured .chart-scatter .sc-median{stroke:var(--accent);stroke-opacity:.45;stroke-width:1;stroke-dasharray:4 4}
#measured .chart-scatter .sc-note{font-family:var(--ui);font-size:15px;fill:var(--ink-2)}
#measured .chart-scatter .sc-note-med{font-family:var(--mono);font-size:13px;fill:var(--accent)}
#measured .chart-scatter .sc-tick{font-family:var(--mono);font-size:15px;fill:var(--ink-3)}
#measured .chart-scatter .sc-label{font-family:var(--ui);font-size:15px;fill:var(--ink-3)}
#measured .chart-scatter .sc-grid{stroke:var(--rule)}
#measured .chart-scatter .sc-axis{stroke:var(--rule-2)}
@media (min-width:1200px){#measured .axes{display:none}#measured .chart-scatter .sc-label{display:block}#measured .chart-scatter .sc-tick{font-size:15px}}

/* ---- landing choreography: every group enters in order once the section is in; the pin holds children
   invisible (not faded) until then, so nothing can ever sit over the band ---- */
html.pin #measured:not(.in):not(.out) > :not(.m-eyebrow){visibility:hidden}
html.pin #measured:not(.out) > .m-eyebrow:not(.in){visibility:hidden}
/* leaving: the mirror of the landing. Last in, first out; the numerals count down in view, then their row fades, then the label. */
html.js #measured.out > [data-enter]{opacity:0;transform:translateY(14px);transition:opacity 520ms var(--ease),transform 520ms var(--ease)}
html.js #measured.out > [data-enter="4"]{transition-delay:0ms}
html.js #measured.out > [data-enter="3"]{transition-delay:60ms}
html.js #measured.out > [data-enter="2"]{transition-delay:420ms}
html.js #measured.out > [data-enter="1"]{transition-delay:640ms}
html.js #measured.out > .m-eyebrow{opacity:0;transition:opacity 400ms var(--ease) 720ms}
html.js #measured.out .stats > div{opacity:1;transform:none;transition:none}
html.js #measured.out .stats em{opacity:0;transition:opacity 300ms var(--ease)}
html.js #measured.out .wf-bar-dark{transform:scaleX(0);transition:transform 520ms var(--ease) 120ms}
html.js #measured.out .wf-zoom{stroke-dashoffset:1200;transition:stroke-dashoffset 400ms var(--ease)}
html.js #measured.out .sc-dot{transform:scale(0);transition:transform 360ms var(--ease)}
html.js #measured > [data-enter]{opacity:0;transform:translateY(14px);transition:opacity 700ms var(--rise),transform 700ms var(--rise)}
html.js #measured.in > [data-enter]{opacity:1;transform:none}
html.js #measured.in > [data-enter="1"]{transition-delay:120ms}
html.js #measured.in > [data-enter="2"]{transition-delay:500ms}
html.js #measured.in > [data-enter="3"]{transition-delay:4500ms}
html.js #measured.in > [data-enter="4"]{transition-delay:4700ms}
html.js #measured .stats > div{opacity:0;transform:translateY(10px);transition:opacity 560ms var(--rise),transform 560ms var(--rise)}
html.js #measured.in .stats > div{opacity:1;transform:none}
html.js #measured.in .stats > div:nth-child(1){transition-delay:520ms}
html.js #measured.in .stats > div:nth-child(2){transition-delay:740ms}
html.js #measured .stats em{opacity:0;transition:opacity 500ms var(--ease)}
html.js #measured.in .stats em{opacity:1;transition-delay:1450ms}
html.js #measured .wf-bar-dark{transform:scaleX(0);transform-box:fill-box;transform-origin:left center;transition:transform 800ms var(--rise)}
html.js #measured.in .wf-bar-dark{transform:none;transition-delay:1950ms}
html.js #measured.in g:nth-of-type(2) .wf-bar-dark{transition-delay:2100ms}
html.js #measured.in g:nth-of-type(3) .wf-bar-dark{transition-delay:2250ms}
html.js #measured .wf-zoom{stroke-dashoffset:1200;stroke-dasharray:3 3;transition:none}
html.js #measured.in .wf-zoom{stroke-dasharray:3 3;stroke-dashoffset:0;transition:stroke-dashoffset 900ms var(--ease) 2350ms}
html.js #measured .sc-dot{transform:scale(0);transform-box:fill-box;transform-origin:center;transition:transform 480ms var(--rise),fill-opacity var(--fast) var(--ease)}
html.js #measured.in .sc-dot{transform:none;transition-delay:2400ms}
html.js #measured.in .sc-dot:nth-of-type(n+6){transition-delay:2500ms}
html.js #measured.in .sc-dot:nth-of-type(n+11){transition-delay:2600ms}
html.js #measured.in .sc-dot:nth-of-type(n+16){transition-delay:2700ms}
@media (prefers-reduced-motion:reduce){
  html.js #measured > [data-enter],html.js #measured .stats > div,html.js #measured .stats em,html.js #measured .wf-bar-dark,html.js #measured .sc-dot{opacity:1;transform:none;transition:none}
  html.js #measured .wf-zoom{stroke-dashoffset:0}
}
@media (max-width:760px){
  #measured .stats{grid-template-columns:1fr}
  #measured .stats > div + div{padding-left:0}
}

/* ---- the unit chart: every square is ten merged pull requests, colored by the two questions ---- */
#measured .fig-units{margin-top:clamp(12px,2vh,24px);grid-column:1 / -1}
.chart-units{width:100%;height:auto;display:block;overflow:visible}
.chart-units .u{rx:1.5}
.chart-units .u.nosig-yes{fill:#E3E6E8}
.chart-units .u.nosig-no{fill:#4B535E}
.chart-units .u.sig-yes{fill:#FAFAFA;stroke:var(--accent);stroke-width:1.6}
.chart-units .u.sig-no{fill:var(--accent)}
.chart-units .lead{fill:none;stroke:var(--ink-2);stroke-width:1;stroke-dasharray:420;stroke-dashoffset:0}
.chart-units .nt{font-family:var(--ui);font-size:15px;fill:var(--ink)}
.chart-units .nt .big{font-family:var(--display);font-size:32px;fill:var(--ink);letter-spacing:-.01em}
.chart-units .ns{font-family:var(--ui);font-size:13px;fill:var(--ink-3)}
.un-legend{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--ui);font-size:12.5px;color:var(--ink-2)}
.un-legend li{display:flex;align-items:center;gap:8px}
.un-legend .sw{width:11px;height:11px;border-radius:1.5px;display:inline-block;flex:none}
.un-legend .sw.nosig-yes{background:#E3E6E8}
.un-legend .sw.nosig-no{background:#4B535E}
.un-legend .sw.sig-yes{background:#FAFAFA;box-shadow:inset 0 0 0 1.5px var(--accent)}
.un-legend .sw.sig-no{background:var(--accent)}
.un-legend .un-unit{color:var(--ink-3);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-left:auto}
#measured .m-def,#pack .m-def,#assessment .m-def{font-family:var(--ui);font-size:15px;line-height:1.5;color:var(--ink-2);max-width:62ch;margin:16px 0 0}
#pack .m-def a{color:var(--ink)}
/* choreography: the squares arrive as a wave left to right, then the four callouts, each with its leader drawing */
/* CSP-safe column index (no inline style attrs): data-c → --c */
.chart-units .u[data-c="0"]{--c:0}.chart-units .u[data-c="1"]{--c:1}.chart-units .u[data-c="2"]{--c:2}.chart-units .u[data-c="3"]{--c:3}.chart-units .u[data-c="4"]{--c:4}.chart-units .u[data-c="5"]{--c:5}.chart-units .u[data-c="6"]{--c:6}.chart-units .u[data-c="7"]{--c:7}.chart-units .u[data-c="8"]{--c:8}.chart-units .u[data-c="9"]{--c:9}.chart-units .u[data-c="10"]{--c:10}.chart-units .u[data-c="11"]{--c:11}.chart-units .u[data-c="12"]{--c:12}.chart-units .u[data-c="13"]{--c:13}.chart-units .u[data-c="14"]{--c:14}.chart-units .u[data-c="15"]{--c:15}.chart-units .u[data-c="16"]{--c:16}.chart-units .u[data-c="17"]{--c:17}.chart-units .u[data-c="18"]{--c:18}.chart-units .u[data-c="19"]{--c:19}.chart-units .u[data-c="20"]{--c:20}.chart-units .u[data-c="21"]{--c:21}.chart-units .u[data-c="22"]{--c:22}.chart-units .u[data-c="23"]{--c:23}.chart-units .u[data-c="24"]{--c:24}.chart-units .u[data-c="25"]{--c:25}.chart-units .u[data-c="26"]{--c:26}.chart-units .u[data-c="27"]{--c:27}.chart-units .u[data-c="28"]{--c:28}.chart-units .u[data-c="29"]{--c:29}.chart-units .u[data-c="30"]{--c:30}.chart-units .u[data-c="31"]{--c:31}.chart-units .u[data-c="32"]{--c:32}.chart-units .u[data-c="33"]{--c:33}.chart-units .u[data-c="34"]{--c:34}.chart-units .u[data-c="35"]{--c:35}.chart-units .u[data-c="36"]{--c:36}.chart-units .u[data-c="37"]{--c:37}.chart-units .u[data-c="38"]{--c:38}.chart-units .u[data-c="39"]{--c:39}.chart-units .u[data-c="40"]{--c:40}.chart-units .u[data-c="41"]{--c:41}.chart-units .u[data-c="42"]{--c:42}.chart-units .u[data-c="43"]{--c:43}.chart-units .u[data-c="44"]{--c:44}.chart-units .u[data-c="45"]{--c:45}.chart-units .u[data-c="46"]{--c:46}.chart-units .u[data-c="47"]{--c:47}.chart-units .u[data-c="48"]{--c:48}.chart-units .u[data-c="49"]{--c:49}.chart-units .u[data-c="50"]{--c:50}.chart-units .u[data-c="51"]{--c:51}.chart-units .u[data-c="52"]{--c:52}.chart-units .u[data-c="53"]{--c:53}.chart-units .u[data-c="54"]{--c:54}.chart-units .u[data-c="55"]{--c:55}.chart-units .u[data-c="56"]{--c:56}.chart-units .u[data-c="57"]{--c:57}.chart-units .u[data-c="58"]{--c:58}.chart-units .u[data-c="59"]{--c:59}.chart-units .u[data-c="60"]{--c:60}
html.js #measured .u{opacity:0;transition:opacity 240ms var(--ease)}
html.js #measured.in .u{opacity:1;transition-delay:calc(1300ms + var(--c) * 14ms)}
html.js #measured.out .u{opacity:0;transition-delay:calc(var(--c) * 3ms)}
html.js #measured .note{opacity:0;transition:opacity 420ms var(--ease)}
html.js #measured .note .lead{stroke-dashoffset:420;transition:stroke-dashoffset 640ms var(--ease)}
html.js #measured.in .note.n1{opacity:1;transition-delay:2300ms}
html.js #measured.in .note.n1 .lead{stroke-dashoffset:0;transition-delay:2300ms}
html.js #measured.in .note.n2{opacity:1;transition-delay:2900ms}
html.js #measured.in .note.n2 .lead{stroke-dashoffset:0;transition-delay:2900ms}
html.js #measured.in .note.n3{opacity:1;transition-delay:3500ms}
html.js #measured.in .note.n3 .lead{stroke-dashoffset:0;transition-delay:3500ms}
html.js #measured.in .note.n4{opacity:1;transition-delay:4100ms}
html.js #measured.in .note.n4 .lead{stroke-dashoffset:0;transition-delay:4100ms}
html.js #measured.out .note{opacity:0;transition:opacity 260ms var(--ease)}
html.js #measured.out .note .lead{stroke-dashoffset:420;transition:none}
html.js #measured .un-legend{opacity:0;transition:opacity 500ms var(--ease)}
html.js #measured.in .un-legend{opacity:1;transition-delay:2300ms}
html.js #measured.out .un-legend{opacity:0;transition-delay:0ms}
@media (prefers-reduced-motion:reduce){
  html.js #measured .u,html.js #measured .note,html.js #measured .un-legend{opacity:1;transition:none}
  html.js #measured .note .lead{stroke-dashoffset:0}
}
@media (max-width:760px){
  .chart-units .nt{font-size:22px}.chart-units .nt .big{font-size:40px}.chart-units .ns{font-size:19px}
  .un-legend .un-unit{margin-left:0}
}

/* ---- measured: head as two columns, foot row (legend left, caveat right), why-now as three statements ---- */
@media (min-width:1100px){
  #measured .m-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(40px,5vw,80px);align-items:end;grid-column:1 / -1}
  #measured .m-head h2{grid-column:1}
  #measured .m-head .m-def{grid-column:2;margin:0 0 6px;max-width:44ch}
}
#measured .fig-foot{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(40px,5vw,80px);align-items:start;margin-top:18px}
#measured .fig-foot .un-legend{margin:0;grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}
#measured .fig-foot .un-legend .un-unit{grid-column:1 / -1;margin:6px 0 0}
#measured .fig-foot .caveat{grid-column:2;grid-row:1;align-self:start;margin:0 !important;font-family:var(--ui);font-size:13px;line-height:1.55;color:var(--ink-3);max-width:46ch;justify-self:end;text-align:right}
#measured .fig-foot .caveat a{color:var(--ink-2)}
#measured .why{list-style:none;margin:8px 0 0;padding:0;font-family:var(--ui);font-size:17px;line-height:1.5;color:var(--ink);max-width:56ch;counter-reset:why}
#measured .why li{position:relative;padding:14px 0 14px 40px;border-top:1px solid var(--rule);counter-increment:why}
#measured .why li:last-child{border-bottom:1px solid var(--rule)}
#measured .why li::before{content:counter(why,decimal-leading-zero);position:absolute;left:0;top:16px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--accent)}
#measured .fold .filing figcaption p{font-size:14px;line-height:1.6}
html.js #measured.in > [data-enter="3"]{transition-delay:2300ms}
html.js #measured.in > [data-enter="4"]{transition-delay:4600ms}
@media (max-width:1099px){#measured .fig-foot{display:block}#measured .fig-foot .caveat{text-align:left;justify-self:start;margin-top:16px}}
@media (max-width:760px){#measured .fig-foot .un-legend{grid-template-columns:1fr}}

/* ---- the pack section: head like Measured, the specimen, then the verify row ---- */
#pack .m-head{margin-bottom:clamp(28px,4vh,44px)}
#pack .band-head h2{font-size:clamp(32px,3.2vw,48px);line-height:1.1;letter-spacing:-.014em;max-width:24ch;margin:0}
#pack .pack{margin:0}
#pack .verify-row{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(40px,5vw,80px);align-items:start;margin-top:clamp(40px,6vh,72px);padding-top:clamp(28px,4vh,40px);border-top:1px solid var(--rule)}
#pack .verify-cmd .eyebrow{margin-bottom:14px}
#pack .verify-cmd .pill{margin:0 0 14px}
#pack .verify-note{font-family:var(--ui);font-size:14.5px;line-height:1.6;color:var(--ink-2);max-width:46ch;padding-top:26px}
#pack .verify-note p{margin:0 0 12px}
@media (min-width:1100px){#pack .m-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(40px,5vw,80px);align-items:end}#pack .m-head h2{grid-column:1;margin:0}#pack .m-head .m-def{grid-column:2;margin:0 0 6px;max-width:44ch}}
@media (max-width:1099px){#pack .verify-row{display:block}#pack .verify-note{padding-top:8px}}
/* choreography on entry: head, then the specimen row by row, then the verify row */
html.js #pack > [data-enter]{opacity:0;transform:translateY(14px);transition:opacity 700ms var(--rise),transform 700ms var(--rise)}
html.js #pack.in > [data-enter]{opacity:1;transform:none}
html.js #pack.in > [data-enter="1"]{transition-delay:60ms}
html.js #pack.in > [data-enter="2"]{transition-delay:300ms}
html.js #pack.in > [data-enter="3"]{transition-delay:1500ms}
html.js #pack .pack > *{opacity:0;transform:translateY(8px);transition:opacity 520ms var(--rise),transform 520ms var(--rise)}
html.js #pack.in .pack > *{opacity:1;transform:none}
html.js #pack.in .pack > .pk-top{transition-delay:300ms}
html.js #pack.in .pack > .pk-scope{transition-delay:420ms}
html.js #pack.in .pack > .pk-find{transition-delay:560ms}
html.js #pack.in .pack > .pk-rows{transition-delay:820ms}
html.js #pack.in .pack > .pk-seal{transition-delay:1180ms}
html.js #pack.in .pack > .pk-foot{transition-delay:1300ms}
html.js #pack .pk-rows tbody tr{opacity:0;transition:opacity 420ms var(--ease)}
html.js #pack.in .pk-rows tbody tr{opacity:1}
html.js #pack.in .pk-rows tbody tr:nth-child(1){transition-delay:880ms}
html.js #pack.in .pk-rows tbody tr:nth-child(2){transition-delay:980ms}
html.js #pack.in .pk-rows tbody tr:nth-child(3){transition-delay:1080ms}
html.js #pack.in .pk-rows tbody tr:nth-child(4){transition-delay:1180ms}
@media (prefers-reduced-motion:reduce){html.js #pack > [data-enter],html.js #pack .pack > *,html.js #pack .pk-rows tbody tr{opacity:1;transform:none;transition:none}}

/* ---- the engagement: head like the others, the access row, four spec rows, the request as two columns ---- */
#assessment .m-head{margin-bottom:clamp(36px,5vh,56px)}
#assessment .band-head h2{font-size:clamp(32px,3.2vw,48px);line-height:1.1;letter-spacing:-.014em;max-width:24ch;margin:0}
@media (min-width:1100px){#assessment .m-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(40px,5vw,80px);align-items:end}#assessment .m-head h2{grid-column:1}#assessment .m-head .m-def{grid-column:2;margin:0 0 6px;max-width:46ch}}
#assessment .access-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(40px,5vw,80px);align-items:start;padding:clamp(28px,4vh,40px) 0;border-top:1px solid var(--rule)}
#assessment .access-perms .eyebrow{margin-bottom:16px}
#assessment .access-note{font-family:var(--ui);font-size:15px;line-height:1.6;color:var(--ink-2);max-width:60ch;padding-top:30px}
#assessment .access-note p{margin:0 0 12px}
.nv-details{margin-top:8px}
.nv-details summary{cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink);list-style:none;display:inline-flex;align-items:center;gap:8px;padding:6px 0}
.nv-details summary::-webkit-details-marker{display:none}
.nv-details summary::before{content:"+";font-size:14px;color:var(--accent);transition:transform var(--fast) var(--ease)}
.nv-details[open] summary::before{transform:rotate(45deg)}
.nv-details .nv{margin:10px 0 0;padding-left:20px;font-size:14px;color:var(--ink-2)}
.nv-details .nv li{margin:0 0 8px}
.nv-details .small{margin:8px 0 0;font-size:13px}
#assessment .spec-4{margin:clamp(28px,4vh,40px) 0 0;border-top:1px solid var(--rule)}
#assessment .req-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(40px,5vw,80px);align-items:start;margin-top:clamp(48px,6vh,80px);padding-top:clamp(32px,4vh,48px);border-top:1px solid var(--rule)}
#assessment .req-head{margin:0;max-width:40ch}
#assessment .req-form .form{margin:0;max-width:none}
@media (max-width:1099px){#assessment .access-row,#assessment .req-row{display:block}#assessment .access-note{padding-top:20px}#assessment .req-form{margin-top:24px}}
html.js #assessment > [data-enter]{opacity:0;transform:translateY(14px);transition:opacity 700ms var(--rise),transform 700ms var(--rise)}
html.js #assessment.in > [data-enter]{opacity:1;transform:none}
html.js #assessment.in > [data-enter="1"]{transition-delay:60ms}
html.js #assessment.in > [data-enter="2"]{transition-delay:320ms}
html.js #assessment.in > [data-enter="3"]{transition-delay:560ms}
html.js #assessment.in > [data-enter="4"]{transition-delay:800ms}
html.js #assessment .spec-4 > div{opacity:0;transform:translateY(8px);transition:opacity 520ms var(--rise),transform 520ms var(--rise)}
html.js #assessment.in .spec-4 > div{opacity:1;transform:none}
html.js #assessment.in .spec-4 > div:nth-child(1){transition-delay:700ms}
html.js #assessment.in .spec-4 > div:nth-child(2){transition-delay:820ms}
html.js #assessment.in .spec-4 > div:nth-child(3){transition-delay:940ms}
html.js #assessment.in .spec-4 > div:nth-child(4){transition-delay:1060ms}
@media (prefers-reduced-motion:reduce){html.js #assessment > [data-enter],html.js #assessment .spec-4 > div{opacity:1;transform:none;transition:none}}

/* the verify commands never scroll sideways: the long line breaks with a shell continuation, and the block wraps as a last resort */
.pill pre{overflow-x:visible;white-space:pre-wrap;overflow-wrap:anywhere}
