/* outset.systems. One stylesheet, no JavaScript, served under a CSP that allows
   neither inline styles nor scripts. So: no style="" and no on*= anywhere.

   The site is a house with three rooms. The navy, cobalt, cream and red are the
   house. Each product page is set in that product's own world: the Feed on
   paper, the Ledger on its warm dark ground, Atlas at night. A theme is only a
   set of tokens; every component reads the tokens. */

@font-face{font-family:"Plex Sans";font-style:normal;font-weight:100 700;font-display:swap;src:url("fonts/IBMPlexSans.woff2") format("woff2")}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:200 700;font-display:swap;src:url("fonts/Newsreader.woff2") format("woff2")}
@font-face{font-family:"Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/IBMPlexMono-400.woff2") format("woff2")}
@font-face{font-family:"Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/IBMPlexMono-500.woff2") format("woff2")}

:root{
  --navy:#1a1f47; --cobalt:#143f99; --cream:#fcffda; --red:#ff594a;
  --peri:#6170bb; --fade:#a6b1e6;
  --sans:"Plex Sans",system-ui,"Segoe UI",Arial,sans-serif;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --mono:"Plex Mono",ui-monospace,Consolas,Menlo,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
  --gut:clamp(1rem,4vw,3.5rem);
  --wide:84rem;
  /* the house by default */
  --bg:var(--navy); --raise:#20265a; --ink:var(--cream); --soft:var(--fade);
  --rule:rgba(252,255,218,.14); --accent:var(--red); --on-accent:var(--navy);
  --disp:var(--sans); --text:var(--sans); --dw:700; --dls:-.035em;
}
.t-feed{
  --bg:#f1f0ea; --raise:#fbfaf6; --ink:#171614; --soft:#5d5a53;
  --rule:rgba(23,22,20,.16); --accent:#c8401c; --on-accent:#fbfaf6;
  --text:var(--serif); --dw:700;
}
.t-ledger{
  --bg:#16130f; --raise:#1f1b15; --ink:#ece6da; --soft:#a79f90;
  --rule:rgba(236,230,218,.14); --accent:#2bbd8c; --on-accent:#0f1712;
  --disp:var(--serif); --dw:400; --dls:-.02em;
}
.t-atlas{
  --bg:#0f0d0a; --raise:#1b1712; --ink:#efe6cf; --soft:#ab9f88;
  --rule:rgba(239,230,207,.15); --accent:#e0a53a; --on-accent:#15110a;
}
/* unlisted:start */
.t-scout{
  --bg:#fbf9f2; --raise:#fffdf6; --ink:#1d1d1b; --soft:#6b665c;
  --rule:#e8e1cd; --accent:#076678; --on-accent:#fbf1c7;
}
/* unlisted:end */

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--text);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:.4rem;z-index:9;background:var(--cream);color:var(--navy);padding:.4rem .8rem}
.skip:focus{left:.5rem}
code,kbd,pre{font-family:var(--mono);font-size:.88em}

/* ── the house bar ── */
.bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:.45rem var(--gut);background:var(--cobalt);color:var(--cream);font-family:var(--sans);border-bottom:1px solid rgba(252,255,218,.14)}
.brand{display:flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none}
.brand svg{width:20px;height:20px;flex:none}
.brand b{font-weight:700;font-size:1.08rem;letter-spacing:-.02em}
.brand i{color:var(--red);font-style:normal}
.bar-help{display:inline-flex;align-items:center;padding:.3rem .68rem;background:var(--red);color:var(--navy);font-family:var(--mono);font-weight:500;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  transition:background .18s ease,color .18s ease,transform .18s var(--ease),box-shadow .18s ease}
.bar-help:hover{background:var(--cream);transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.4)}

.bar-help span{display:inline-block}

/* The word Help pixelates in from left to right on load. The mask is solid for
   400px, then a 20px band of 2px blocks, then empty; it slides one block per
   step, so the blocks stay on a grid. It starts with the word hidden (-420px)
   and ends with it whole (-370px). No script, so this runs on every page load. */
@media (prefers-reduced-motion:no-preference){
  .bar-help span{-webkit-mask:url("img/pixel-help.svg") 0 50%/auto 12px repeat-y;mask:url("img/pixel-help.svg") 0 50%/auto 12px repeat-y;
    animation:pixel-in 2.4s steps(25,end) .3s both}
  @keyframes pixel-in{
    from{-webkit-mask-position:-420px 50%;mask-position:-420px 50%}
    to{-webkit-mask-position:-370px 50%;mask-position:-370px 50%}
  }
}

/* ── shared pieces ── */
.wrap{max-width:var(--wide);margin:0 auto;padding-inline:var(--gut)}
.sec{padding-block:clamp(3rem,8vw,6.5rem)}
.sec + .sec{border-top:1px solid var(--rule)}
.eyebrow{margin:0 0 .9rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.h2{margin:0 0 1rem;font-family:var(--disp);font-weight:var(--dw);letter-spacing:var(--dls);line-height:1.08;font-size:clamp(1.9rem,4.6vw,3.4rem);text-wrap:balance;max-width:24ch}
.lede{margin:0;max-width:58ch;font-size:clamp(1.1rem,1.8vw,1.32rem);line-height:1.5;color:var(--soft);text-wrap:pretty}
.btns{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.72rem 1.15rem;background:var(--accent);color:var(--on-accent);
  font-family:var(--mono);font-weight:500;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  transition:transform .18s var(--ease),box-shadow .18s ease,background .18s ease}
.btn:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(0,0,0,.28)}
.btn.ghost{background:none;color:var(--ink);box-shadow:inset 0 0 0 1px var(--rule)}
.btn.ghost:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.chip{display:inline-block;padding:.08em .55em;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;box-shadow:inset 0 0 0 1px var(--rule);color:var(--soft)}
.chip.on{background:var(--accent);color:var(--on-accent);box-shadow:none}
.shot{margin:0}
.shot img{width:100%;border:1px solid var(--rule);box-shadow:0 26px 60px rgba(0,0,0,.34)}
.shot figcaption{margin-top:.7rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--soft)}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border-block:1px solid var(--rule);margin-top:2.4rem}
.cards.two{grid-template-columns:repeat(2,1fr)}
.cards.four{grid-template-columns:repeat(4,1fr)}
.card{position:relative;background:var(--bg);padding:clamp(1.2rem,2.4vw,1.9rem);transition:background .2s ease}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.card:hover{background:var(--raise)}
.card:hover::before{transform:scaleX(1)}
.card h3{margin:0 0 .5rem;font-family:var(--disp);font-weight:var(--dw);font-size:1.22rem;line-height:1.2;letter-spacing:-.012em}
.card p{margin:0;color:var(--soft);font-size:1rem;line-height:1.5}
.card .n{display:block;margin-bottom:.8rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--accent)}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--rule)}
.stat{padding:1.2rem 1rem;border-left:1px solid var(--rule)}
.stat:first-child{border-left:0}
.stat b{display:block;font-family:var(--disp);font-weight:var(--dw);font-size:clamp(1.8rem,4.2vw,3rem);line-height:1;letter-spacing:var(--dls)}
.stat span{display:block;margin-top:.45rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}

.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(1.6rem,5vw,4.5rem);align-items:center}
.split.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}

.pull{margin:0;font-family:var(--disp);font-weight:var(--dw);font-size:clamp(1.6rem,4vw,2.9rem);line-height:1.14;letter-spacing:var(--dls);max-width:26ch;text-wrap:balance}
.pull em{font-style:normal;color:var(--accent)}

.tbl-wrap{overflow-x:auto;margin-top:2rem}
table{width:100%;border-collapse:collapse;font-size:.98rem;min-width:30rem}
th{font-family:var(--mono);font-weight:500;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--soft);text-align:left}
th,td{padding:.7rem .9rem .7rem 0;border-bottom:1px solid var(--rule);vertical-align:top}
td:first-child{font-family:var(--mono);font-size:.84em;white-space:nowrap}

/* the five steps: Scout to Execution, ingest to score */
.steps{list-style:none;margin:2.4rem 0 0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border-block:1px solid var(--rule)}
.steps li{position:relative;padding:1.2rem 1.1rem 1.3rem;border-left:1px solid var(--rule)}
.steps li:first-child{border-left:0}
.steps h3{margin:0 0 .35rem;font-family:var(--disp);font-weight:var(--dw);font-size:1.3rem}
.steps p{margin:0;color:var(--soft);font-size:.96rem;line-height:1.45}
.steps .tag{display:block;margin-top:.7rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.steps .tag.plain{color:var(--soft)}

.closer{padding-block:clamp(3.4rem,9vw,7rem);text-align:center}
.closer .pull{margin-inline:auto}
.closer .btns{justify-content:center}

/* ── the home page: the original landing, under the house bar. It keeps its own
   type stacks and sizes on purpose. Its footer strip stands in for the site's. ── */
.t-landing{--disp:"Helvetica Neue",Helvetica,Arial,"Segoe UI",system-ui,sans-serif;--mono:ui-monospace,"SF Mono",SFMono-Regular,"JetBrains Mono",Menlo,Consolas,"Liberation Mono",monospace;--line:rgba(252,255,218,.10);font-family:var(--disp)}
.t-landing .foot{display:none}
.panel{position:relative;width:100%;min-height:calc(100vh - 2.6rem);display:flex;flex-direction:column;overflow:hidden;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:100% clamp(2.2rem,5vw,3rem),clamp(3rem,7vw,4.4rem) 100%}
/* Soft cobalt bloom off the top edge. */
.panel::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(130% 62% at 50% -6%,rgba(97,112,187,.20),transparent 62%)}
.panel > *{position:relative;z-index:1}
.l-lede{padding:clamp(1rem,2.6vw,1.7rem) clamp(1rem,3vw,2rem) 0;max-width:58ch}
.l-eyebrow{margin:0 0 .55rem;font-family:var(--mono);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--red)}
.l-lede h1{margin:0;font-weight:600;letter-spacing:-.01em;line-height:1.34;font-size:clamp(.95rem,1.55vw,1.28rem);text-wrap:balance}
.l-lede h1 em{font-style:normal;color:var(--peri)}
.l-explore{font-family:var(--mono);font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--fade);padding:clamp(.9rem,2.4vw,1.4rem) clamp(1rem,3vw,2rem) 0;margin:0}
.l-nav{display:flex;flex-wrap:wrap;gap:clamp(1.2rem,5vw,3.4rem);align-items:center;justify-content:center;padding:clamp(1.2rem,3.6vw,2.4rem) clamp(1rem,3vw,2rem);border-bottom:1px solid var(--line)}
.l-nav a{position:relative;color:var(--cream);text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.15rem,3.4vw,2rem);line-height:1;transition:color .22s ease,transform .22s var(--ease),text-shadow .22s ease}
.l-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-.28em;height:4px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease)}
.l-nav a:hover{color:var(--red);transform:translateY(-6px);text-shadow:0 10px 18px rgba(0,0,0,.5)}
.l-nav a:hover::after,.l-nav a:focus-visible::after{transform:scaleX(1)}
.l-nav .idx{font-family:var(--mono);font-size:.5em;color:var(--fade);vertical-align:super;margin-right:.15em;font-weight:400;transition:color .22s ease}
.l-nav a:hover .idx{color:var(--red)}
.l-info{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.l-info > div{position:relative;background:var(--navy);overflow:hidden;padding:clamp(1rem,2.4vw,1.5rem);min-height:clamp(4rem,9vw,6rem);transition:background .22s ease}
/* Red rule wipes across the top of a card on hover or when linked to. */
.l-info > div::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .32s var(--ease)}
.l-info > div:hover,.l-info > div:target{background:#1e2450}
.l-info > div:hover::before,.l-info > div:target::before{transform:scaleX(1)}
.l-info .k{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;color:var(--red);text-transform:uppercase}
.l-info .status{font-style:normal;font-size:.54rem;letter-spacing:.12em;margin-left:.5em;padding:.1em .5em;vertical-align:middle;white-space:nowrap}
.l-info .status.live{background:var(--red);color:var(--navy);font-weight:700}
.l-info p{font-family:var(--mono);font-size:.72rem;line-height:1.6;color:var(--fade);margin:.6rem 0 0}
.l-info a{color:var(--cream);text-decoration:none;border-bottom:1px solid var(--red);transition:color .18s ease}
.l-info a:hover{color:var(--red)}
.l-info a.k{color:var(--red);border-bottom:0}
.l-info a.k:hover{color:var(--cream)}
.l-vlabel{position:absolute;left:.3rem;top:clamp(5rem,13vh,9rem);writing-mode:vertical-rl;font-family:var(--mono);font-size:.58rem;letter-spacing:.28em;color:var(--fade);text-transform:uppercase}
.l-maze{flex:1 1 auto;display:flex;align-items:center;min-height:clamp(5.5rem,12vw,8.5rem);padding:clamp(.8rem,2vw,1.4rem) clamp(1rem,3vw,2rem);border-bottom:1px solid var(--line)}
.maze{width:100%;height:auto;max-height:clamp(4.5rem,9.2vw,8rem);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.maze .trace{fill:none;stroke:var(--cream);stroke-width:13;opacity:.85}
.maze .sig{fill:none;stroke:var(--red);stroke-width:13;stroke-dasharray:70 1500}
.maze .sig.cool{stroke:var(--peri)}
.maze .s1{animation:flow 4.4s linear infinite}
.maze .s2{animation:flow 6.1s linear infinite;animation-delay:-1.5s}
.maze .s3{animation:flow 7.8s linear infinite;animation-delay:-3.4s}
@keyframes flow{from{stroke-dashoffset:1570}to{stroke-dashoffset:0}}
.l-word{font-weight:800;letter-spacing:-.04em;line-height:.86;white-space:nowrap;font-size:clamp(2rem,11.4vw,15rem);color:var(--cream);text-align:center;padding:clamp(.6rem,1.6vw,1.2rem) clamp(.8rem,2.5vw,1.6rem) clamp(.7rem,1.8vw,1.35rem)}
.l-word .dot{color:var(--red)}
.l-legal{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:clamp(.7rem,1.8vw,1rem) clamp(1rem,3vw,2rem);border-top:1px solid var(--line);font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;color:var(--fade);text-transform:uppercase}
.l-legal .r{color:var(--peri)}
.l-legal .r b{color:var(--cream);font-weight:400}

/* ── product heroes ── */
.phero{padding-block:clamp(2.6rem,7vw,5.6rem) clamp(2rem,5vw,3.4rem)}
.phero h1{margin:0;font-family:var(--disp);font-weight:var(--dw);letter-spacing:var(--dls);line-height:1.02;font-size:clamp(2.7rem,8vw,6.6rem);max-width:15ch;text-wrap:balance}
.phero h1 em{font-style:normal;color:var(--accent)}
.phero .lede{margin-top:1.3rem}
.phero .shot{margin-top:clamp(2rem,5vw,3.4rem)}

.t-feed .mast{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-bottom:.5rem;font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.t-feed .nameplate{margin:0;padding:.5rem 0 .7rem;text-align:center;font-family:var(--sans);font-weight:700;letter-spacing:-.045em;line-height:.9;font-size:clamp(4rem,17vw,12.5rem);border-block:3px double var(--ink)}
.t-feed .promise{margin:1.8rem auto 0;text-align:center;font-family:var(--serif);font-weight:500;letter-spacing:-.015em;line-height:1.14;font-size:clamp(1.8rem,4.6vw,3.5rem);max-width:21ch;text-wrap:balance}
.t-feed .promise em{font-style:normal;color:var(--accent)}
.t-feed .lede.c,.t-feed .btns.c{margin-inline:auto;text-align:center;justify-content:center}
.t-feed .lede.c{margin-top:1rem}

/* a scorecard, set in type: a specimen of what the article page prints */
.score{background:var(--raise);border:1px solid var(--rule);border-top:3px solid var(--accent);padding:1.4rem 1.5rem;font-family:var(--sans)}
.score h3{margin:0 0 1rem;font-family:var(--mono);font-weight:500;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.score dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.2rem}
.score dt{font-weight:600}
.score dd{margin:0;color:var(--soft);font-family:var(--serif);line-height:1.4}

.t-ledger .warn{display:flex;gap:.6rem;align-items:baseline;padding:.75rem 1rem;border-left:3px solid var(--accent);background:var(--raise);font-size:.98rem;max-width:64ch;margin-top:1.8rem}
.t-ledger .warn b{color:var(--accent);font-weight:600;white-space:nowrap}

/* Atlas's hero picture runs edge to edge, the way the map does */
.t-atlas .atlas-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--rule)}
.t-atlas .atlas-hero img{width:100%;min-height:26rem;max-height:86vh;object-fit:cover}
.t-atlas .atlas-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,13,10,.1) 30%,rgba(15,13,10,.97) 96%);pointer-events:none}
.t-atlas .atlas-hero .over{position:absolute;z-index:1;left:0;right:0;bottom:0}
.t-atlas .atlas-hero .over .wrap{padding-bottom:clamp(1.4rem,4vw,3rem)}
.t-atlas .views{display:flex;flex-wrap:wrap;gap:.1rem 1.8rem;margin:2rem 0 0;padding:0;list-style:none;font-family:var(--mono);font-size:.84rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.t-atlas .views li::before{content:"\25C6\00A0";color:var(--accent)}
.promise-row{display:flex;flex-wrap:wrap;gap:.6rem 2.4rem;justify-content:center;padding:1.5rem var(--gut);font-family:var(--mono);font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;border-block:1px solid var(--rule)}
.promise-row span::before{content:"\25A0\00A0";color:var(--accent)}

/* ── help pages ── */
.doc-head{padding-block:clamp(2rem,5vw,3.6rem) 1.4rem;border-bottom:1px solid var(--rule)}
.doc-head h1{margin:0;font-family:var(--disp);font-weight:var(--dw);letter-spacing:var(--dls);line-height:1.05;font-size:clamp(2.2rem,5.6vw,4rem)}
.doc-head .lede{margin-top:.8rem}
.doc-head .lede a{color:var(--accent);text-underline-offset:2px}
.crumb{margin:0 0 .8rem;font-family:var(--mono);font-size:.74rem;letter-spacing:.08em}
.crumb a{text-decoration:none;color:var(--soft)}
.crumb a:hover{color:var(--accent)}
.doc{display:grid;grid-template-columns:15rem minmax(0,46rem);gap:clamp(1.6rem,5vw,4.5rem);padding-block:2.4rem 4rem;align-items:start}
.toc{position:sticky;top:4.2rem;font-family:var(--sans);font-size:.92rem}
.toc p{margin:0 0 .5rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--soft)}
.toc a{display:block;padding:.26rem 0 .26rem .8rem;border-left:1px solid var(--rule);text-decoration:none;color:var(--soft)}
.toc a:hover{color:var(--ink);border-left-color:var(--accent)}
.prose{min-width:0}
.prose h2{margin:2.6rem 0 .6rem;font-family:var(--disp);font-weight:var(--dw);font-size:1.7rem;letter-spacing:-.018em;line-height:1.15;scroll-margin-top:4.6rem}
.prose h2:first-child{margin-top:0}
.prose h3{margin:1.6rem 0 .3rem;font-family:var(--sans);font-weight:600;font-size:1.06rem}
.prose p,.prose ul,.prose ol{margin:.6rem 0}
.prose ul,.prose ol{padding-left:1.2rem}
.prose li{margin:.3rem 0}
.prose a{color:var(--accent);text-underline-offset:2px}
.prose pre{margin:.9rem 0;padding:.9rem 1rem;overflow-x:auto;background:var(--raise);border:1px solid var(--rule);line-height:1.5}
.prose :not(pre) > code{padding:.05em .3em;background:var(--raise);box-shadow:inset 0 0 0 1px var(--rule)}
kbd{display:inline-block;min-width:1.5em;padding:0 .35em;text-align:center;background:var(--raise);box-shadow:inset 0 0 0 1px var(--rule),inset 0 -2px 0 var(--rule)}
.note{margin:1rem 0;padding:.8rem 1rem;border-left:3px solid var(--accent);background:var(--raise)}
.note p{margin:.2rem 0}
details{border-bottom:1px solid var(--rule);padding:.7rem 0}
details:first-of-type{border-top:1px solid var(--rule)}
summary{cursor:pointer;font-family:var(--sans);font-weight:600}
details p{color:var(--soft)}
.prose .tbl-wrap{margin-top:1rem}
.prose table{font-size:.94rem;min-width:24rem}

.nf{min-height:60vh;display:flex;align-items:center}
.nf h1{margin:0;font-family:var(--sans);font-weight:700;letter-spacing:-.04em;line-height:1;font-size:clamp(3rem,10vw,6.5rem)}

/* ── the house footer, on every page ── */
.foot{background:var(--navy);color:var(--cream);font-family:var(--sans);border-top:1px solid rgba(252,255,218,.14);font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;max-width:var(--wide);margin:0 auto;padding:2.4rem var(--gut)}
.foot-grid a{display:block;padding:.16rem 0;text-decoration:none;color:var(--fade);overflow-wrap:anywhere}
.foot-grid a:hover{color:var(--red)}
.foot-h{margin:0 0 .5rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream)}
.foot-line{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;max-width:var(--wide);margin:0 auto;padding:.9rem var(--gut);border-top:1px solid rgba(252,255,218,.14);font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fade)}

/* ── motion: sections rise as they scroll into view, where the browser can do
   that without a script. Movement only: fading from nothing would leave text
   blank in full-page captures and link previews. ── */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .rise{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 42%}
    @keyframes rise{from{transform:translateY(26px)}to{transform:none}}
  }
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .maze .sig{animation:none}
  .btn,.card,.card::before,.bar-help,.l-nav a,.l-nav a::after,.l-info > div,.l-info > div::before{transition:none}
}

@media (max-width:980px){
  .cards,.cards.four{grid-template-columns:repeat(2,1fr)}
  .steps{grid-auto-flow:row}
  .steps li{border-left:0;border-top:1px solid var(--rule)}
  .steps li:first-child{border-top:0}
  .split,.split.flip{grid-template-columns:minmax(0,1fr)}
  .l-info{grid-template-columns:repeat(2,1fr)}
  .doc{grid-template-columns:minmax(0,1fr)}
  .toc{position:static}
  .foot-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  body{font-size:1rem}
  .bar{position:static}
  .cards,.cards.two,.cards.four,.l-info{grid-template-columns:minmax(0,1fr)}
  .l-vlabel{display:none}
  .l-nav{gap:1rem 1.4rem}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3){border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--rule)}
  .t-atlas .atlas-hero img{min-height:34rem}
  td:first-child{white-space:normal}
  .foot-grid{grid-template-columns:minmax(0,1fr) auto;gap:1.4rem}
}
/* unlisted:start */
/* ── the Scout page: soft gradient hero, light large type, rounded bento cards ── */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.t-scout{font-family:var(--sans)}
.sc-hero{position:relative;overflow:hidden;text-align:center;padding:clamp(4.5rem,13vw,10rem) 0 clamp(4rem,11vw,8.5rem);
  background:radial-gradient(70% 90% at 85% 0%,rgba(7,102,120,.38),transparent 60%),radial-gradient(60% 80% at 8% 30%,rgba(143,211,201,.55),transparent 62%),linear-gradient(180deg,#d4ece6 0%,#e9f3ec 55%,var(--bg) 100%)}
.sc-hero h1{margin:0 auto;max-width:18ch;font-weight:400;letter-spacing:-.035em;line-height:1.08;font-size:clamp(2.5rem,7vw,5.4rem)}
.sc-rot{display:block;height:1.12em;overflow:hidden;color:rgba(7,102,120,.55)}
.sc-rot span{display:block;height:1.12em}
.sc-sub{margin:1.6rem auto 0;max-width:40ch;font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--ink)}
.sc-cta{margin-top:1.8rem}
.sc-pill{display:inline-block;padding:.85rem 1.6rem;border-radius:999px;background:var(--ink);color:#fff;text-decoration:none;font-weight:500;font-size:1rem;transition:transform .18s var(--ease),box-shadow .18s ease}
.sc-pill:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.sc-sec{padding-block:clamp(3.5rem,9vw,7rem)}
.sc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:2rem}
.sc-head h2,.sc-center h2{margin:0;font-weight:400;letter-spacing:-.025em;line-height:1.12;font-size:clamp(1.8rem,3.6vw,2.6rem)}
.sc-head p{margin:0;max-width:36ch;color:var(--soft);font-size:1.02rem}
.sc-center{text-align:center;margin-bottom:2.6rem}
.sc-center p{margin:.9rem auto 0;max-width:40ch;color:var(--soft)}
.sc-card{background:#f3efe4;border:1px solid var(--rule);border-radius:22px;padding:1.4rem;overflow:hidden}
.sc-label{margin:0;color:var(--soft);font-size:.86rem}
.sc-say{margin:.2rem 0 0;font-size:1rem;line-height:1.4;max-width:34ch}
.sc-bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.sc-big{grid-column:span 2;display:flex;flex-direction:column}
.sc-pane{margin-top:1.2rem;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 1px 0 var(--rule),0 18px 40px rgba(29,29,27,.08)}
.sc-pane img{width:100%}
.sc-small{display:flex;flex-direction:column;gap:.35rem;min-height:11rem}
.sc-small svg{width:22px;height:22px;margin-bottom:auto;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sc-small p:not(.sc-label){margin:0;line-height:1.45;font-size:.96rem}
.sc-small .sc-label{margin-top:2.2rem}
.sc-four .sc-small .sc-label{margin-top:0;color:var(--ink);font-weight:500;font-size:1rem}
.sc-four .sc-small{min-height:0}
.sc-trio{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);gap:1rem;align-items:stretch}
.sc-mini{display:flex;flex-direction:column}
.sc-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto;padding-top:1.4rem}
.sc-chips span{padding:.4rem .8rem;border-radius:999px;background:#fff;border:1px solid var(--rule);font-size:.9rem}
.sc-big-num{margin:auto 0 0;padding-top:1.4rem;font-size:3.4rem;line-height:1;letter-spacing:-.03em;color:var(--accent)}
.sc-big-num span{display:block;margin-top:.5rem;font-size:.9rem;letter-spacing:0;color:var(--soft)}
.sc-glow{position:relative;min-height:27rem;color:#f4fbf9;border:0;
  background:radial-gradient(60% 60% at 50% 62%,rgba(190,240,232,.9),transparent 70%),linear-gradient(160deg,#0a7d8f,#0b5d6c 55%,#0d4652)}
.sc-glow .sc-label{color:rgba(244,251,249,.75)}
.sc-orbit{--r:132px;position:absolute;left:50%;top:60%;width:0;height:0}
.sc-core{position:absolute;left:-46px;top:-46px;width:92px;height:92px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#ffffff,#9fe3d6 45%,#0a7d8f 100%);box-shadow:0 0 60px rgba(190,240,232,.8)}
.sc-ring{position:absolute;left:calc(-1 * var(--r));top:calc(-1 * var(--r));width:calc(2 * var(--r));height:calc(2 * var(--r));border-radius:50%;border:1px dashed rgba(244,251,249,.45)}
.sc-spin{position:absolute;left:0;top:0;animation:sc-turn 60s linear infinite}
.sc-spin > span{position:absolute;left:0;top:0;width:0;height:0;transform:rotate(var(--a)) translateX(var(--r))}
.sc-spin b{position:absolute;left:0;top:0;transform:translate(-50%,-50%) rotate(calc(-1 * var(--a)));white-space:nowrap;padding:.28rem .62rem;border-radius:999px;
  background:rgba(255,255,255,.92);color:#0b5d6c;font-weight:500;font-size:.76rem;animation:sc-unturn 60s linear infinite}
.o1{--a:0deg}.o2{--a:60deg}.o3{--a:120deg}.o4{--a:180deg}.o5{--a:240deg}.o6{--a:300deg}
@keyframes sc-turn{to{transform:rotate(360deg)}}
@keyframes sc-unturn{from{transform:translate(-50%,-50%) rotate(calc(-1 * var(--a)))}to{transform:translate(-50%,-50%) rotate(calc(-1 * var(--a) - 360deg))}}
.sc-steps{list-style:none;margin:0;padding:2.2rem 1.6rem 1.8rem;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.2rem;
  background:#f3efe4;border:1px solid var(--rule);border-radius:22px;position:relative}
.sc-steps::before{content:"";position:absolute;left:1.6rem;right:1.6rem;top:1.25rem;height:10px;
  background:repeating-linear-gradient(90deg,var(--rule) 0 1px,transparent 1px 12px)}
.sc-steps li{position:relative;padding-top:1.2rem;border-top:2px solid var(--accent)}
.sc-steps h3{margin:.5rem 0 .3rem;font-weight:500;font-size:1.06rem}
.sc-steps p{margin:0;color:var(--soft);font-size:.93rem;line-height:1.45}
.sc-who{display:inline-block;padding:.12rem .55rem;border-radius:999px;background:#fff;border:1px solid var(--rule);font-size:.74rem;color:var(--accent)}
.sc-close{text-align:center;padding:clamp(4rem,10vw,8rem) 0}
.sc-close p{margin:0;font-weight:400;letter-spacing:-.035em;line-height:1.05;font-size:clamp(2.4rem,6.4vw,4.8rem)}
@media (prefers-reduced-motion:no-preference){
  .sc-rot span{animation:sc-words 12s cubic-bezier(.7,0,.3,1) infinite}
  @keyframes sc-words{
    0%,20%{transform:translateY(0)}
    25%,45%{transform:translateY(-100%)}
    50%,70%{transform:translateY(-200%)}
    75%,95%{transform:translateY(-300%)}
    100%{transform:translateY(-400%)}
  }
}
@media (prefers-reduced-motion:reduce){
  .sc-spin,.sc-spin b{animation:none}
}
@media (max-width:980px){
  .sc-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sc-trio{grid-template-columns:minmax(0,1fr)}
  .sc-steps{grid-template-columns:repeat(5,minmax(12rem,1fr));overflow-x:auto;scroll-snap-type:x mandatory}
  .sc-steps li{scroll-snap-align:start}
}
@media (max-width:640px){
  .sc-bento{grid-template-columns:minmax(0,1fr)}
  .sc-big{grid-column:auto}
  .sc-glow{min-height:25rem}
  .sc-orbit{--r:122px}
  .sc-spin b{font-size:.66rem;padding:.22rem .48rem}
  .sc-core{left:-36px;top:-36px;width:72px;height:72px}
}
/* unlisted:end */

@media print{
  .bar,.foot,.toc,.btns{display:none}
  body{background:#fff;color:#000}
}
