/* Norlyst — site vitrine. La feuille de l'app étendue au site : les tokens
   clairs de DESIGN.md (src/style.css), Inter pour les titres, le texte et le
   nom, IBM Plex Mono pour les chiffres et les tickers (planche de marque).
   Page de 1440 px au plus. Thème clair seulement. */
:root{
  --paper:#FFFFFF;--surface:#F2F4F7;--hover:#E9EDF2;--rule:#DCE0E5;--wash:#E8EEF6;--bar-rule:#A9B8CA;
  --ink:#131820;--ink-light:#4F5B62;--ink-muted:#656C72;
  --fill:#1C2340;--fill-soft:#263040;--onfill:#ECE6D9;--chrome-text:#D7D2C6;--chrome-label:#93A9C8;--chrome-soft:#2C3542;
  --table-header:#1F4068;--nuit:#2C4A6E;--accent:#C1281A;
  --pos:#2A5F36;--pos-wash:#E8F0EA;--warn:#8A6320;--warn-wash:#FBF3E2;--neg-wash:#FBEDEA;
  --sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --gutter:48px;--max:1440px;--ease:cubic-bezier(.16,1,.3,1);
  color-scheme:light;scrollbar-color:var(--bar-rule) var(--surface);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;background:var(--surface);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
p,h1,h2,h3,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
img{display:block;max-width:100%;height:auto}
a{color:var(--nuit);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .15s}
a:hover{color:var(--accent)}
::selection{background:var(--nuit);color:var(--onfill)}
:focus-visible{outline:2px solid var(--nuit);outline-offset:2px}
.chrome :focus-visible,.footer :focus-visible{outline-color:var(--onfill)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:16px;top:-80px;z-index:100;background:var(--fill);color:var(--onfill);padding:10px 14px;font:600 14px var(--sans);text-decoration:none;border-radius:2px}
.skip:focus{top:10px}
.skip:hover{color:var(--paper)}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* Titres : Inter, la fonte du logotype, serrée comme lui (-3,5 %). */
h1,h2{font-family:var(--sans);font-weight:650;text-wrap:balance}
h1{font-size:clamp(40px,4.4vw,64px);line-height:1.02;letter-spacing:-.035em}
h2{font-size:clamp(28px,2.6vw,38px);line-height:1.08;letter-spacing:-.03em}
h3{font:600 17px/1.35 var(--sans);letter-spacing:-.01em}
.copy{font-size:17px;line-height:1.62;color:var(--ink-light);max-width:62ch;text-wrap:pretty}

/* Chrome : la barre d'encre bleutée de l'app, posée en haut. */
.chrome{position:sticky;top:0;z-index:40;background:var(--fill);color:var(--chrome-text)}
.chrome .wrap{display:flex;align-items:center;gap:28px;height:56px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;color:var(--onfill);text-decoration:none}
.brand:hover{color:var(--onfill)}
.brand img{width:28px;height:28px}
.brand span{font:600 20px/1 var(--sans);letter-spacing:-.035em}
.nav-links{display:flex;align-items:center;gap:24px}
.nav-links a{display:inline-flex;align-items:center;height:56px;color:var(--chrome-text);font:600 13px/1 var(--sans);text-decoration:none;box-shadow:inset 0 -2px 0 transparent}
.nav-links a:hover{color:var(--onfill)}
.nav-links a[aria-current=page]{color:var(--onfill);box-shadow:inset 0 -2px 0 var(--accent)}
.nav-links .nav-cta a{height:32px;padding:0 14px;border-radius:2px;background:var(--onfill);color:var(--fill);box-shadow:none;transition:background-color .15s}
.nav-links .nav-cta a:hover{background:var(--paper);color:var(--fill)}
/* Menu Product : les pages de fonction, dans un panneau sous la barre. Sans
   script, Product mène à l'accueil. */
.nav-menu{position:relative}
.nav-product::after{content:"";width:5px;height:5px;margin:0 0 3px 8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .15s}
.nav-product[aria-expanded=true]::after{margin:3px 0 0 8px;transform:rotate(225deg)}
.nav-links .nav-product.is-current{color:var(--onfill);box-shadow:inset 0 -2px 0 var(--accent)}
.nav-panel{display:none;position:absolute;top:100%;left:-16px;z-index:50;width:600px;padding-top:6px;background:var(--paper);border:1px solid var(--rule);border-radius:2px;box-shadow:0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1)}
.nav-panel.open{display:block}
.nav-panel ul{margin:0;padding:0;list-style:none}
.nav-links .nav-panel a{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:baseline;height:auto;padding:10px 16px 10px 14px;border-left:2px solid transparent;box-shadow:none;color:var(--ink);font:600 14px/1.35 var(--sans)}
.nav-links .nav-panel a .d{font-weight:400;font-size:13px;color:var(--ink-light)}
.nav-links .nav-panel a:hover{background:var(--hover);color:var(--ink)}
.nav-links .nav-panel a[aria-current=page]{border-left-color:var(--accent);background:var(--wash);color:var(--ink)}
.nav-panel-foot{display:flex;justify-content:space-between;gap:16px;margin-top:6px;border-top:1px solid var(--rule)}
.nav-links .nav-panel-foot a{display:inline-flex;padding:10px 16px;border-left:0;background:none;color:var(--nuit)}
.nav-links .nav-panel-foot a:hover,.nav-links .nav-panel-foot a[aria-current=page]{background:none;color:var(--accent);text-decoration:underline}
.nav-toggle{display:none;width:44px;height:44px;margin-right:-10px;padding:0;border:0;background:none;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.nav-toggle span{display:block;width:20px;height:2px;background:var(--onfill)}

/* Boutons : angles de 2 px, aplat d'encre bleutée pour l'action. */
.btn{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 18px;border-radius:2px;font:600 14px/1 var(--sans);text-decoration:none;white-space:nowrap;transition:background-color .15s,color .15s,border-color .15s}
.btn-primary{background:var(--fill);color:var(--onfill)}
.btn-primary:hover{background:var(--nuit);color:var(--onfill)}
.btn-secondary{background:var(--paper);color:var(--ink-light);border:1px solid var(--rule)}
.btn-secondary:hover{background:var(--surface);color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:8px}

/* En-tête de page : filet brique de 3 px, filet d'encre de 2 px dessous. */
.page-head{padding-top:48px}
.title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding-bottom:22px;border-bottom:2px solid var(--ink)}
.title-row h1{padding-left:24px;border-left:3px solid var(--accent)}
.title-row .actions{flex:none;padding-bottom:6px}
.lead{margin-top:22px;max-width:70ch;font-size:18px;line-height:1.58;color:var(--ink-light);text-wrap:pretty}

/* Bande de faits : le format KPI de l'app. */
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:26px;background:var(--paper);border:1px solid var(--rule);border-radius:2px}
.facts>div{padding:14px 18px;border-left:1px solid var(--rule)}
.facts>div:first-child{border-left:0}
.facts dt{font:600 11px/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted)}
.facts dd{margin-top:4px;font:650 18px/1.3 var(--sans);letter-spacing:-.01em;color:var(--ink)}
.facts dd .num{font-weight:600;letter-spacing:0}
.facts dd small{display:block;margin-top:4px;font:400 13px/1.45 var(--sans);color:var(--ink-light)}

/* Feuille et figure : carte blanche à barre de section. */
.sheet{background:var(--paper);border:1px solid var(--rule);border-radius:2px}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:36px;padding:8px 12px 8px 10px;background:var(--wash);border-left:2px solid var(--accent);border-bottom:1px solid var(--bar-rule);border-radius:2px 2px 0 0;font:600 11px/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--table-header)}
.bar .meta{font:400 11px/1.4 var(--mono);letter-spacing:0;text-transform:none;color:var(--ink-muted);white-space:nowrap}
/* Une figure s'affiche à l'échelle 1:1 : l'<img> garde la largeur de ses
   attributs (réservée avant le chargement), la feuille se règle sur elle et se
   centre ; l'image ne rétrécit que quand la place manque, jamais agrandie. */
.fig{width:fit-content;max-width:100%;margin:24px auto 0}
.fig .shot{padding:12px}
.fig picture img{border:1px solid var(--rule)}
.fig .pending{display:grid;place-items:center;min-height:320px;padding:24px;border:1px dashed var(--bar-rule);background:var(--surface);font:400 13px/1.5 var(--mono);color:var(--ink-muted);text-align:center}
.page-head .fig{margin-top:22px}

/* Sections. */
.section{padding-top:96px}
.sec-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px 56px;align-items:end;padding-top:22px;border-top:1px solid var(--ink)}
.sec-head.solo{grid-template-columns:minmax(0,1fr)}
.sec-head.chapter{align-items:start}
.split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:start;margin-top:24px}
.split.flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.split>.fig{margin-top:0}
/* Demi-colonne : la piste de la figure suit sa taille réelle (58 % au plus),
   les lignes de preuve prennent le reste. */
@media (min-width:1101px){
  .split:has(>.fig:first-child){grid-template-columns:fit-content(58%) minmax(0,1fr)}
  .split:has(>.fig:last-child){grid-template-columns:minmax(0,1fr) fit-content(58%)}
}
/* Paire large / étroite : la même vue en mise en page desktop et téléphone,
   côte à côte, chacune à l'échelle 1:1, la paire au centre de la page ; sous
   1101 px, la variante étroite ne double plus la large. */
.pair{display:grid;grid-template-columns:minmax(0,max-content) 419px;gap:24px;align-items:start;justify-content:center;margin-top:24px}
.pair>.fig{margin-top:0}
.pair .phone picture{display:flex;justify-content:center}
.group-head .links a{margin-left:18px}
/* Lien vers une page de fonction, au bout d'une section ou d'une tête de groupe. */
.more{margin-top:12px;font-size:15px;line-height:1.5}
.more a,.group-head a.c,.group-head .links a{font:600 14px/1.4 var(--sans);color:var(--nuit);text-decoration:none}
.more a:hover,.group-head a.c:hover,.group-head .links a:hover{color:var(--accent);text-decoration:underline}
.after{margin-top:24px}

/* Lignes de preuve : clé et texte, réglées au filet. */
.rows{background:var(--paper);border:1px solid var(--rule);border-radius:2px}
.rows>div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;padding:14px 18px;border-top:1px solid var(--rule)}
.rows>div:first-child{border-top:0}
.rows dt{padding-top:2px;font:600 11px/1.6 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--table-header)}
.rows dd{max-width:72ch;font-size:15px;line-height:1.55}
.rows dd strong{font-weight:600}
.rows dd .dim{display:block;margin-top:8px;font-size:13px;line-height:1.55;color:var(--ink-light)}
.rows.strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.rows.strip>div{display:block;border-top:0;border-left:1px solid var(--rule);padding:16px 18px 18px}
.rows.strip>div:first-child{border-left:0}
.rows.strip dd{margin-top:6px}
.rows.quad{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.rows.quad>div:nth-child(-n+2){border-top:0}
.rows.quad>div:nth-child(even){border-left:1px solid var(--rule)}

/* Tables : en-tête plein, zébrage sur la surface. */
.table-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--rule);border-radius:2px}
.tbl{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5}
.tbl th{padding:9px 12px;background:var(--table-header);color:var(--paper);font:600 11px/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;text-align:left;white-space:nowrap}
.tbl th+th{border-left:1px solid rgb(255 255 255 / .16)}
.tbl td{padding:10px 12px;border-top:1px solid var(--rule);vertical-align:top}
.tbl tbody tr:nth-child(even) td{background:var(--surface)}
.tbl .name{font-weight:600;white-space:nowrap}
.tbl .data{font:400 13px/1.5 var(--mono);font-variant-numeric:tabular-nums}
.tbl .scale{font-weight:500;color:var(--ink)}
.tbl .dim{color:var(--ink-light)}
.tbl tfoot td{background:var(--paper);color:var(--ink-light);font-size:13px}

/* Le problème : sept endroits, puis un profil. */
.places{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.places>div{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:96px;padding:14px;border-left:1px dashed var(--bar-rule);font-size:14px;line-height:1.4}
.places>div:first-child{border-left:0}
.places span{font:600 11px/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted)}
.places .lost{color:var(--accent)}
.places .lost span{color:var(--accent)}

/* Prix et fondateur. */
.plan{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr)}
.plan>div{padding:28px 30px 30px}
.plan>div+div{border-left:1px solid var(--rule)}
.price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin-top:18px}
.price b{font:500 44px/1 var(--mono);font-variant-numeric:tabular-nums}
.price span{font-size:14px;color:var(--ink-light)}
.plan .copy{margin-top:16px;font-size:15px}
.plan .actions{margin-top:22px}
.quote{font:500 clamp(20px,1.6vw,24px)/1.45 var(--sans);letter-spacing:-.01em;text-wrap:pretty}
.person{display:flex;align-items:center;gap:12px;margin-top:22px}
.person img{width:48px;height:56px;object-fit:cover;object-position:50% 22%;border:1px solid var(--rule);border-radius:2px}
.person b{display:block;font-size:14px;font-weight:600}
.person span{display:block;font-size:13px;color:var(--ink-light)}

/* Accès : trois étapes. */
.steps{counter-reset:step}
.steps>li{display:grid;grid-template-columns:48px minmax(0,1fr);border-top:1px solid var(--rule)}
.steps>li:first-child{border-top:0}
.steps .n{padding:14px 0 14px 18px;font:500 13px/1.6 var(--mono);color:var(--ink-muted)}
.steps p{padding:14px 18px 14px 0;font-size:15px;line-height:1.55}
.fine{font-size:13px;line-height:1.6;color:var(--ink-light)}

/* Pied de page. */
.footer{margin-top:112px;background:var(--fill);color:var(--chrome-text);padding:48px 0 32px}
.footer .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;align-items:start}
.lockup{display:flex;flex-direction:column;align-items:flex-start}
.lockup .row{display:flex;align-items:center;gap:12px}
.lockup img{width:40px;height:40px}
.lockup .name{font:600 28px/1 var(--sans);letter-spacing:-.035em;color:var(--onfill)}
.lockup .rule{width:100%;height:0;margin-top:14px;border-top:1px solid var(--accent)}
.lockup .sig{margin-top:9px;font:400 13px var(--mono);color:var(--onfill)}
.footer .tag{margin-top:20px;max-width:36ch;font-size:13px;line-height:1.6;color:var(--chrome-label)}
.footer .k{margin-bottom:12px;font:600 11px/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--chrome-label)}
.footer ul{display:flex;flex-direction:column;gap:9px}
.footer a{color:var(--chrome-text);font-size:14px;text-decoration:none}
.footer a:hover{color:var(--onfill);text-decoration:underline}
.footer .legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:40px;padding-top:16px;border-top:1px solid var(--chrome-soft);font-size:12px;line-height:1.6;color:var(--chrome-label)}

/* Pages intérieures : sommaire latéral, groupes, chapitres. */
.side-layout{display:grid;grid-template-columns:248px minmax(0,1fr);gap:40px;align-items:start;margin-top:40px}
.toc{position:sticky;top:76px;background:var(--paper);border:1px solid var(--rule);border-radius:2px}
.toc>a{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;border-top:1px solid var(--rule);color:var(--ink);font-size:14px;text-decoration:none}
.toc>a:first-child{border-top:0}
.toc>a:hover{background:var(--surface);color:var(--ink)}
.toc .c{font:400 12px/1.6 var(--mono);color:var(--ink-muted)}
.toc .note{padding:12px 14px;border-top:1px solid var(--rule);font-size:13px;line-height:1.55;color:var(--ink-light)}
.group+.group{margin-top:44px}
.group-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:12px}
.group-head h2{font-size:clamp(24px,2vw,30px)}
.group-head .c{font:400 13px var(--mono);color:var(--ink-muted)}
.tbl .n{width:48px;font:400 12px/1.6 var(--mono);color:var(--ink-muted)}
.tbl .what{color:var(--ink-light)}
.tbl .needs{white-space:nowrap}
/* Les tableaux de Features gardent les mêmes colonnes d'un groupe à l'autre. */
@media (min-width:768px){
  .nav-panel :focus-visible{outline-color:var(--nuit)}
  .group .tbl{table-layout:fixed}
  .group .tbl th:first-child{width:56px}
  .group .tbl th:nth-child(2){width:180px}
  .group .tbl th:last-child{width:170px}
  .group .tbl .name,.group .tbl .needs,.group .tbl .chip{white-space:normal}
}
@media (min-width:1280px){
  .group .tbl th:nth-child(2){width:256px}
  .group .tbl th:last-child{width:200px}
}
.chip{display:inline-block;margin:0 4px 4px 0;padding:2px 6px;border-radius:2px;background:var(--surface);color:var(--ink-light);font:600 11px/1.4 var(--sans);white-space:nowrap}
.chip.acct{background:var(--wash);color:var(--table-header)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:16px;font-size:13px;color:var(--ink-light)}
.chapters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:26px;background:var(--paper);border:1px solid var(--rule);border-radius:2px}
.chapters a{display:block;padding:12px 14px;border-left:1px solid var(--rule);color:var(--ink);text-decoration:none}
.chapters a:first-child{border-left:0}
.chapters a:hover{background:var(--surface);color:var(--ink)}
.chapters .when{display:block;font:400 12px/1.5 var(--mono);color:var(--ink-muted)}
.chapters .t{display:block;margin-top:4px;font-size:15px;font-weight:600}
.chapters .p{display:block;margin-top:2px;font-size:13px;color:var(--ink-light)}
.when-line{font:400 13px/1.6 var(--mono);color:var(--ink-muted)}
.when-line+.copy{margin-top:8px}

/* Lettre du fondateur. */
.founder{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:48px;align-items:start;margin-top:40px}
.portrait{overflow:hidden;background:var(--paper);border:1px solid var(--rule);border-radius:2px}
.portrait img{width:100%;height:auto}
.portrait figcaption{padding:12px 14px;border-top:1px solid var(--rule);font-size:14px;line-height:1.5}
.portrait figcaption b{display:block;font-weight:600}
.portrait figcaption span{color:var(--ink-light)}
.letter{max-width:68ch}
.letter p{margin-top:18px;font-size:17px;line-height:1.7;text-wrap:pretty}
.letter .pull{margin-top:0;font:500 clamp(20px,1.6vw,24px)/1.45 var(--sans);letter-spacing:-.01em}
.sign{margin-top:28px;font-size:15px}
.sign b{display:block;font-weight:600}
.sign span{color:var(--ink-light)}

/* Textes légaux. */
.meta-line{margin-top:16px;font:400 13px/1.7 var(--mono);color:var(--ink-muted)}
.meta-line a{font-family:var(--sans)}
.clauses{max-width:76ch}
.clause{padding:24px 0;border-top:1px solid var(--rule)}
.clause:first-child{padding-top:0;border-top:0}
.clause h2{font-size:22px;line-height:1.3;letter-spacing:-.015em}
.clause h2 .n{margin-right:10px;font:400 14px var(--mono);letter-spacing:0;color:var(--ink-muted)}
.clause p,.clause li{margin-top:10px;font-size:16px;line-height:1.65;text-wrap:pretty}
.clause ul{padding-left:20px;list-style:disc}
.clause li{margin-top:6px}
mark.todo{padding:0 4px;border-radius:2px;background:var(--warn-wash);color:var(--warn)}

/* 404. */
.list-links{margin-top:28px;max-width:640px}
.list-links a{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--rule);color:var(--ink);font-size:15px;text-decoration:none}
.list-links a:first-child{border-top:0}
.list-links a:hover{background:var(--surface);color:var(--ink)}
.list-links span{font:400 13px var(--mono);color:var(--ink-muted)}

/* Le moment : la figure d'ouverture se pose une fois sur la page, depuis un état déjà lisible. */
@media (prefers-reduced-motion:no-preference){
  .page-head .fig .shot{animation:print .7s var(--ease) .1s backwards}
}
@keyframes print{from{opacity:.82;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Réactif. */
@media (max-width:1100px){
  :root{--gutter:32px}
  .pair{grid-template-columns:minmax(0,1fr)}
  .pair .phone{display:none}
  .side-layout{grid-template-columns:minmax(0,1fr)}
  .toc{position:static}
  .chapters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .chapters a:nth-child(4){border-left:0}
  .chapters a:nth-child(n+4){border-top:1px solid var(--rule)}
  .founder{grid-template-columns:minmax(0,1fr)}
  .portrait{max-width:360px}
  .sec-head{grid-template-columns:minmax(0,1fr)}
  .split,.split.flip{grid-template-columns:minmax(0,1fr)}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts>div:nth-child(3){border-left:0}
  .facts>div:nth-child(n+3){border-top:1px solid var(--rule)}
  .places{grid-template-columns:repeat(4,minmax(0,1fr))}
  .places>div:nth-child(5){border-left:0}
  .places>div:nth-child(n+5){border-top:1px dashed var(--bar-rule)}
  .footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .title-row{flex-direction:column;align-items:flex-start;gap:20px}
  .title-row .actions{padding-bottom:0}
  .rows.strip{grid-template-columns:minmax(0,1fr)}
  .rows.strip>div{border-left:0;border-top:1px solid var(--rule)}
  .rows.strip>div:first-child{border-top:0}
  .rows.quad{grid-template-columns:minmax(0,1fr)}
  .rows.quad>div:nth-child(2){border-top:1px solid var(--rule)}
  .rows.quad>div:nth-child(even){border-left:0}
  .plan{grid-template-columns:minmax(0,1fr)}
  .plan>div+div{border-left:0;border-top:1px solid var(--rule)}
}
@media (max-width:767px){
  :root{--gutter:16px}
  .fig.wide-only{display:none}
  .chapters{grid-template-columns:minmax(0,1fr)}
  .chapters a{border-left:0;border-top:1px solid var(--rule)}
  .chapters a:first-child{border-top:0}
  .tbl .needs{white-space:normal}
  html{scroll-padding-top:60px}
  .chrome .wrap{height:48px}
  .nav-toggle{display:flex}
  .nav-links{display:none}
  .nav-links.open{position:absolute;left:0;right:0;top:48px;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:4px 0 16px;background:var(--fill);border-top:1px solid var(--chrome-soft)}
  .nav-links.open a{height:44px;padding:0 16px;border-left:2px solid transparent;box-shadow:none}
  .nav-links.open a[aria-current=page]{border-left-color:var(--accent);background:var(--chrome-soft)}
  .nav-links.open .nav-cta{margin:12px 16px 0}
  .nav-links.open .nav-cta a{justify-content:center;height:44px;border-left:0}
  .nav-links.open{max-height:calc(100vh - 48px);overflow-y:auto}
  .nav-menu{position:static}
  .nav-links.open .nav-product{display:flex;justify-content:space-between}
  .nav-links.open .nav-product.is-current{border-left-color:var(--accent);background:var(--chrome-soft);box-shadow:none}
  .nav-panel{position:static;width:auto;padding:0 0 6px;background:none;border:0;box-shadow:none}
  .nav-links.open .nav-panel a{display:flex;min-height:40px;padding:8px 16px 8px 32px;color:var(--chrome-text);font-size:14px}
  .nav-links.open .nav-panel a .d{display:none}
  .nav-links.open .nav-panel a:hover{background:var(--chrome-soft);color:var(--onfill)}
  .nav-links.open .nav-panel a[aria-current=page]{background:var(--chrome-soft);color:var(--onfill)}
  .nav-panel-foot{display:block;margin:0;border-top:0}
  .nav-links.open .nav-panel-foot a{display:flex;color:var(--chrome-label)}
  .nav-links.open .nav-panel-foot a:hover,.nav-links.open .nav-panel-foot a[aria-current=page]{color:var(--onfill);text-decoration:none}
  .page-head{padding-top:28px}
  .title-row h1{padding-left:16px}
  .lead{font-size:17px}
  .section{padding-top:64px}
  .title-row{align-items:stretch}
  .facts>div{padding:12px 14px}
  .bar{flex-wrap:wrap;gap:2px 12px}
  .fig .shot{padding:8px}
  .rows>div{grid-template-columns:minmax(0,1fr);gap:4px}
  .places{grid-template-columns:repeat(2,minmax(0,1fr))}
  .places>div:nth-child(odd){border-left:0}
  .places>div:nth-child(5){border-left:0}
  .places>div:nth-child(n+3){border-top:1px dashed var(--bar-rule)}
  .tbl.stack thead{display:none}
  .tbl.stack tr{display:block;border-top:1px solid var(--rule)}
  .tbl.stack tbody tr:first-child{border-top:0}
  .tbl.stack td{display:block;border-top:0;padding:4px 14px}
  .tbl.stack td:first-child{padding-top:12px}
  .tbl.stack td:last-child{padding-bottom:12px}
  .tbl.stack tbody tr:nth-child(even) td{background:transparent}
  .tbl.stack tbody tr:nth-child(even){background:var(--surface)}
  .tbl.stack td[data-l]::before{content:attr(data-l);display:block;font:600 11px/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted)}
  .group .tbl.stack td.n,.group .tbl.stack td.name{display:inline-block;padding-top:12px}
  .group .tbl.stack td.n{padding-right:2px}
  .group .tbl.stack td.name{padding-left:0}
  .group .tbl.stack td.n::before,.group .tbl.stack td.name::before,.group .tbl.stack td.what::before{content:none}
  .tbl.incl td.name,.tbl.incl td.data{display:inline-block;padding-top:12px}
  .tbl.incl td.data{padding-left:0;color:var(--ink-muted)}
  .tbl.incl td.data::before{content:"· ";display:inline;font:inherit;letter-spacing:0;text-transform:none;color:inherit}
  .tbl.incl td.data::after{content:" rows"}
  .tbl.incl td.name::before,.tbl.incl td.dim::before{content:none}
  .plan>div{padding:22px 18px 24px}
  .footer{margin-top:80px}
  .footer .cols{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:480px){
  .actions{flex-direction:column;align-items:stretch}
  .actions .btn{width:100%}
  .places{grid-template-columns:minmax(0,1fr)}
  .places>div{border-left:0}
  .places>div:nth-child(n+2){border-top:1px dashed var(--bar-rule)}
}
