@font-face{font-family:"Geist";font-weight:300 600;font-display:swap;src:url(/fonts/geist-latin.woff2) format("woff2")}
@font-face{font-family:"Geist Mono";font-weight:400 500;font-display:swap;src:url(/fonts/geist-mono-latin.woff2) format("woff2")}
@font-face{font-family:"Geist Fallback";font-weight:400;src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Arimo");size-adjust:102.7%;ascent-override:97.86%;descent-override:28.72%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback";font-weight:500;src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Arimo");size-adjust:105.1%;ascent-override:95.62%;descent-override:28.07%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback";font-weight:600 700;src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("Arimo Bold");size-adjust:99.3%;ascent-override:101.21%;descent-override:29.71%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback Android";font-weight:400;src:local("Roboto"),local("Roboto-Regular");size-adjust:103.9%;ascent-override:96.73%;descent-override:28.39%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback Android";font-weight:500;src:local("Roboto"),local("Roboto-Regular");size-adjust:105.5%;ascent-override:95.26%;descent-override:27.96%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback Android";font-weight:600 700;src:local("Roboto Bold"),local("Roboto-Bold");size-adjust:106%;ascent-override:94.81%;descent-override:27.83%;line-gap-override:0%}
:root{--font:"Geist","Geist Fallback","Geist Fallback Android",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--sans:"Geist","Geist Fallback","Geist Fallback Android",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.h1{font-size:clamp(2.75rem,6.4vw,6.5rem);font-weight:600;letter-spacing:-.045em;line-height:.96}
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .16s ease both}
::view-transition-new(root){animation:vt-in .36s var(--ease) both}
::view-transition-group(hdr){animation-duration:.2s}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(14px)}}}
.hdr.is-stuck{background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-color:var(--line)}
@media (prefers-reduced-motion:no-preference){.slip.arm.is-on .row,.slip.arm.is-on .slip__foot{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--i,0) * .32s + .5s)}
.slip.arm.is-on .slip__top::after{transform:none;transition:transform 1.8s var(--ease) .3s}
@keyframes print{from{clip-path:inset(-10px 0 100% 0);transform:translateY(-14px)}to{clip-path:inset(-10px 0 -10px 0);transform:none}}}
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){
    .rv{animation:rv linear both;animation-timeline:view();animation-range:entry 0% cover 24%}
    @keyframes rv{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
  }}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
.end :focus-visible{outline-color:#fff}
.post-card:focus-within,.theme-card:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(5,150,105,.18)}
.chip--green{background:var(--green-50);border-color:transparent;color:var(--green)}
.ph__lede p:last-child{margin-bottom:0}
.article-main h3{font-size:clamp(1.25rem,1.8vw,1.625rem);font-weight:600;letter-spacing:-.025em;line-height:1.2;margin-top:32px;margin-bottom:12px}
.toc-box a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.toc-box a.is-cur{font-weight:600}
@media (prefers-reduced-motion:no-preference){.fig.arm.is-on .fig__steps li,.fig.arm.is-on .fig__card,.fig.arm.is-on .fig__arrow,.fig.arm.is-on .fig__hub,.fig.arm.is-on .fig__cluster li{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--i,0) * .22s)}}

/* ---------- one shell: header, heading scale and closing band are the same on every page ---------- */
html .hdr__in{height:72px}
html .hdr .logo svg{height:28px}
@media (max-width:1040px){html .hdr__in{height:64px}}
@media (max-width:374px){html .hdr .logo svg{height:22px}}
html .h1in{font-size:clamp(2.5rem,5.8vw,5.5rem);font-weight:600;letter-spacing:-.045em;line-height:.98;margin-top:16px;max-width:14em;text-wrap:balance}
html .end{background:var(--blue);color:#fff;border:0;padding-block:clamp(88px,12vw,184px);text-align:center}
html .end .wrap{display:block;text-align:center}
html .end .h2{font-size:clamp(2.5rem,6.4vw,6rem);letter-spacing:-.05em;line-height:.94;max-width:14em;margin-inline:auto;color:#fff}
html .end p{margin-top:20px;color:#DCE6F6;font-size:var(--fs-lede);max-width:32em;margin-inline:auto}
html .end .act{margin-top:36px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
html .end .btn--ink,html .end .btn--blue{background:#fff;color:var(--ink)}
html .end .btn--ink:hover,html .end .btn--blue:hover{background:var(--paper)}
html .end .btn--ghost{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}
html .end .btn--ghost:hover{border-color:#fff}
html .end :focus-visible{outline-color:#fff}
/* figure steps: the article list counter must not draw a second number over the node */
.article-main .fig__steps li{display:flex;flex-direction:column;gap:4px;padding-left:28px}
.article-main .fig__steps li::before{content:"";position:absolute;left:-7px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--sheet);border:2px solid var(--blue);font-size:0;color:transparent}
@media (min-width:760px){.article-main .fig__steps li{padding:26px 0 0 0}.article-main .fig__steps li::before{left:0;top:-8px}}

/* ---------- ask tractionora widget ---------- */
.ta-chat-launcher{appearance:none;box-sizing:border-box;position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:49;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:198px;min-height:48px;padding:12px 18px;border:1px solid #C9CDD4;border-radius:999px;background:#fff;color:#15171C;font:700 14px/1.4 Manrope,system-ui,sans-serif;text-decoration:none;box-shadow:0 4px 20px #15171C12;cursor:pointer}
.ta-chat-launcher:hover{background:#F6F7F9}.ta-chat-launcher svg{width:19px;height:19px}.ta-chat-launcher:focus-visible,.ta-chat-panel :focus-visible{outline:2px solid #059669;outline-offset:3px}
/* Panel: wide enough to read comfortably; the message area gets everything the header, links and footer do not use. */
.ta-chat-panel{box-sizing:border-box;position:fixed;inset:auto 20px 80px auto;margin:0;width:500px;max-width:calc(100vw - 40px);height:720px;max-height:calc(100dvh - 110px);padding:0;border:1px solid #C9CDD4;border-radius:18px;background:#fff;color:#15171C;box-shadow:0 16px 64px #15171C22;font:400 14px/1.5 Manrope,system-ui,sans-serif;overflow:hidden}
.ta-chat-panel[open]{display:flex;flex-direction:column}.ta-chat-panel::backdrop{background:#15171C18}
.ta-chat-head{flex:none;padding:10px 8px 10px 16px;border-bottom:1px solid #e6e7eb;display:flex;align-items:center;gap:10px}.ta-chat-head h2{margin:0;font-size:16px;line-height:1.3;font-weight:500}.ta-chat-head p{margin:1px 0 0;font-size:13px;line-height:1.3;color:#5A5F69}.ta-chat-mark{width:28px;height:28px;flex:none;border-radius:7px}
.ta-chat-contact,.ta-chat-reset{flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 8px;border:0;background:transparent;font:400 13px/1.3 Manrope,system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.ta-chat-contact{margin-left:auto;color:#15171C}.ta-chat-reset{color:#343841}
.ta-chat-close{flex:none;min-width:44px;min-height:44px;border:0;border-radius:8px;background:transparent;color:#343841;font:400 24px/1 system-ui;cursor:pointer}.ta-chat-close:hover{background:#F6F7F9}
.ta-chat-body{min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}
.ta-chat-intro{flex:none;padding:14px 16px 6px;font-size:14px}.ta-chat-intro p{margin:0 0 8px}
.ta-chat-starters{display:flex;flex-wrap:wrap;gap:6px}.ta-chat-starters button{min-height:40px;border:1px solid #C9CDD4;border-radius:999px;padding:6px 12px;background:#F6F7F9;color:#343841;text-align:left;font:400 13px/1.35 Manrope,system-ui;cursor:pointer}
.ta-chat-starters button:hover{border-color:#059669;color:#15171C}.ta-chat-starters button:disabled{opacity:.6;cursor:wait}
/* The mount takes all remaining height; Deep Chat's own message list scrolls inside it. */
.ta-chat-mount{min-height:0;flex:1;display:flex;padding:0 8px}.ta-chat-mount deep-chat{display:block;width:100%;height:100%;min-height:0}
.ta-chat-status{flex:none;padding:4px 16px;color:#5A5F69;font-size:13px;min-height:18px}.ta-chat-status:empty{padding-top:0;padding-bottom:0;min-height:0}
.ta-chat-links{flex:none;padding:2px 16px 8px;display:flex;gap:6px;flex-wrap:wrap}.ta-chat-links:empty{display:none}
.ta-chat-links a{min-height:36px;display:inline-flex;align-items:center;padding:4px 12px;border:1px solid #C9CDD4;border-radius:999px;background:#F6F7F9;font-size:13px;line-height:1.3;color:#15171C;text-decoration:none}.ta-chat-links a:hover{background:#F6F7F9;border-color:#059669}
.ta-chat-foot{flex:none;padding:7px 16px;border-top:1px solid #e6e7eb;background:#f8f8fa;font-size:14px;line-height:1.4;color:#5A5F69}.ta-chat-foot p{margin:0}.ta-chat-foot a{color:#047857}
@media(max-width:600px){.ta-chat-launcher{right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:11px 15px}
.ta-chat-panel{inset:auto 6px max(6px,env(safe-area-inset-bottom)) 6px;width:auto;max-width:none;height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);border-radius:16px}
.ta-chat-head{padding:4px 2px 4px 12px;gap:6px}.ta-chat-head p{display:none}.ta-chat-contact,.ta-chat-reset{padding:0 6px}
.ta-chat-intro{padding:10px 12px 4px}.ta-chat-foot{padding:6px 12px}.ta-chat-status{padding-left:12px;padding-right:12px}.ta-chat-links{padding:2px 12px 6px}.ta-chat-mount{padding:0 4px}}
.ta-chat-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.ta-chat-panel.has-messages .ta-chat-intro{display:none}
@media(max-height:550px){.ta-chat-panel{bottom:8px;height:calc(100dvh - 24px);max-height:calc(100dvh - 24px)}.ta-chat-body{overflow:auto}.ta-chat-mount{min-height:140px;flex-shrink:0}.ta-chat-intro{padding-top:6px;padding-bottom:4px}.ta-chat-head{padding-top:4px;padding-bottom:4px}.ta-chat-foot{padding-top:4px;padding-bottom:4px}}
@media(prefers-reduced-motion:reduce){.ta-chat-panel,.ta-chat-panel *,.ta-chat-launcher{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* phones: the launcher is an icon only, so it covers less; pages leave room at the bottom for it */
@media(max-width:640px){
.ta-chat-launcher{min-width:48px;width:48px;height:48px;padding:0;gap:0;right:12px;bottom:max(12px,env(safe-area-inset-bottom))}
.ta-chat-launcher span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}

/* ===== services depth (D2) ===== */
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.rv{animation:rv linear both;animation-timeline:view();animation-range:entry 0% cover 24%}@keyframes rv{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}}}
/* process as a rail: rows hang off one line */
.steps-row.rail-steps{display:block;grid-template-columns:none;gap:0;margin-top:clamp(36px,4vw,64px);margin-left:0}
.rail-steps>.step-col{position:relative;display:grid;gap:6px 24px;border-top:1px solid var(--line);padding:clamp(22px,2.6vw,36px) 0 clamp(22px,2.6vw,36px) clamp(24px,3.4vw,48px)}
.rail-steps>.step-col:first-child{border-top:0}
.rail-steps>.step-col::before{content:"";position:absolute;left:-9px;top:clamp(30px,3.2vw,44px);width:16px;height:16px;border-radius:50%;background:var(--sheet);border:2px solid var(--blue);transition:background-color .25s}
.rail-steps>.step-col:hover::before{background:var(--blue)}
.rail-steps>.step-col--gate::before{background:var(--dot-amber);border-color:var(--dot-amber)}
.rail-steps>.step-col h3{margin:0}
.rail-steps>.step-col p{margin:0}
@media (min-width:900px){
  .rail-steps>.step-col{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start}
  .rail-steps>.step-col>.step-col__n,.rail-steps>.step-col>h3{grid-column:1}
  .rail-steps>.step-col>p{grid-column:2;grid-row:1 / span 2}
}
.find__sheet .rail-steps>.step-col{display:block}
.find__sheet .rail-steps>.step-col>*+*{margin-top:6px}
/* coverage explorer: pick an area, read its detail */
.areas.is-explorer{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,48px);align-items:start}
.explorer__tabs{grid-column:1;grid-row:1;display:grid;border-top:1px solid var(--line-2)}
.explorer__tab{appearance:none;position:relative;display:grid;gap:4px;width:100%;min-height:44px;padding:16px 14px 16px 22px;background:none;border:0;border-bottom:1px solid var(--line-2);font:inherit;text-align:left;color:var(--ink-2);cursor:pointer;transition:background-color .2s,color .2s}
.explorer__tab::before{content:"";position:absolute;top:calc(50% - 7px);width:14px;height:14px;border-radius:50%}
.explorer__tab:hover{background:var(--sheet);color:var(--ink)}
.explorer__tab[aria-selected="true"]{background:var(--sheet);color:var(--ink)}
.explorer__tab[aria-selected="true"]::before{transform:none}
.explorer__n{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.explorer__t{font-weight:600;letter-spacing:-.01em;font-size:1.0625rem}
.areas.is-explorer>.area{display:none;grid-column:2;grid-row:1;border:1px solid var(--line);border-radius:16px;padding:clamp(22px,3vw,36px);background:var(--sheet);box-shadow:0 24px 40px -28px rgba(20,21,26,.25)}
.areas.is-explorer>.area[data-on]{display:flex}
@media (prefers-reduced-motion:no-preference){.areas.is-explorer>.area[data-on]{animation:explin .35s var(--ease) both}@keyframes explin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
@media (max-width:859px){.areas.is-explorer{grid-template-columns:minmax(0,1fr)}.explorer__tabs,.areas.is-explorer>.area{grid-column:1}.areas.is-explorer>.area{grid-row:2}}
/* engagement slip uses a wider label column */
.find--eng .slip .row{grid-template-columns:15ch minmax(0,1fr)}
.find--eng .slip dt{overflow-wrap:anywhere}
/* request form */
.req{background:var(--sheet)}
.req__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:32px;align-items:start}
.req__copy{grid-column:1 / span 5}
.req__copy .h2{margin-top:12px;font-size:clamp(2rem,3.8vw,3.5rem)}
.req__copy p{margin-top:16px;color:var(--ink-2);max-width:30em}
.req__form{grid-column:7 / -1;position:relative;display:grid;gap:16px}
.req__f{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.req__f .full{grid-column:1 / -1}
.req__form label{display:block;margin-bottom:6px;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.req__form input,.req__form textarea{width:100%;min-height:48px;padding:13px 16px;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line-2);border-radius:12px;transition:border-color .18s,box-shadow .18s}
.req__form textarea{resize:vertical}
.req__form input:focus,.req__form textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(5,150,105,.14)}
.req__form [aria-invalid="true"]{border-color:#B3261E;box-shadow:0 0 0 3px rgba(179,38,30,.14)}
.req__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.req__note{font-size:.875rem;color:var(--ink-2)}
.req__note a{color:var(--blue);text-underline-offset:3px}
.req__form .btn{justify-self:start}
.req__status{padding:12px 16px;border-radius:12px;background:var(--paper);border:1px solid var(--line-2);color:var(--ink)}
.req__status:focus{outline:2px solid var(--blue);outline-offset:2px}
@media (max-width:959px){.req__copy,.req__form{grid-column:1 / -1}}
@media (max-width:560px){.req__f{grid-template-columns:minmax(0,1fr)}.req__form .btn{justify-self:stretch;justify-content:center}}
/* long button labels may wrap on the narrowest phones */
@media (max-width:400px){.find__copy .btn,.req__form .btn{white-space:normal;text-align:left}}

/* ===== learn, blog and research (D3) ===== */
.take{margin:0 0 36px;padding:20px 24px;background:var(--sheet);border:1px solid var(--line);border-radius:14px}
.take__t{margin:0 0 10px;font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.take ul{margin:0;display:grid;gap:8px}
.callouts{display:grid;gap:12px;margin:28px 0}
.callout{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;align-items:start;padding:16px 18px;background:var(--sheet);border:1px solid var(--line-2);border-radius:12px}
.callout__k{align-self:start;white-space:nowrap;padding:4px 10px;border-radius:999px;border:1px solid var(--line-2);background:var(--paper);font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.callout__k--fact{background:var(--blue-50);border-color:transparent;color:var(--blue-d)}
.article-main .callout p{margin:0;font-size:1rem;line-height:1.5;color:var(--ink)}
@media (max-width:560px){.callout{grid-template-columns:minmax(0,1fr)}}
/* research topics as a neutral status list: no colour, because none of these is a verified result */
.status-list{list-style:none;margin:clamp(28px,3vw,48px) 0 0;padding:0;border-top:1px solid var(--line-2)}
.status-row{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:12px clamp(20px,3vw,48px);padding:clamp(22px,2.8vw,36px) 0;border-bottom:1px solid var(--line-2)}
.status-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid var(--line-2);border-radius:999px;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:transparent}
.status-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink-3)}
.status-row__main h3{font-size:1.375rem;font-weight:600;letter-spacing:-.025em;line-height:1.2}
.status-row__main p{margin-top:10px;color:var(--ink-2);max-width:40em}
.status-row__main ul{margin-top:14px;display:grid;gap:6px;font-size:.9375rem;color:var(--ink-2)}
.status-row__main li{position:relative;padding-left:16px}
.status-row__main li::before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--ink-3)}
.status-row__main .link{display:inline-flex;margin-top:16px}
@media (max-width:760px){.status-row{grid-template-columns:minmax(0,1fr)}}
/* every page leaves room under the footer for the chat button */
html .ftr{padding-bottom:88px}
.ta-chat-launcher{transition:opacity .2s ease-out,transform .2s ease-out,visibility .2s}.ta-chat-launcher.is-later{opacity:0;visibility:hidden;transform:translateY(8px)}@media (prefers-reduced-motion:reduce){.ta-chat-launcher{transition:none}}

/* =====================================================================
   Growth Lines on the inner pages (site family: services, learn, blog, research, about, why)
   Parent: DESIGN.md. Regions open with a 2px ink rule and divide with hairlines; no boxes, no side stripes.
   A sequence of steps is a station line: a 6px rail in the line colour (--c) with 18px stations. Each service keeps
   its homepage line colour; the Growth Assessment, which every service starts from, is the ink trunk.
   `html body` lets these rules win over each page's own inline CSS, which loads after this file.
   ===================================================================== */
html body main{--c:var(--ink)}

/* ---------- step lists become a vertical station line ---------- */
html body .steps-row.rail-steps{position:relative;margin-inline-start:0;border:0}
html body .steps-row.rail-steps::before{content:"";position:absolute;inset-inline-start:6px;inset-block:clamp(39px,4.1vw,53px);inline-size:6px;border-radius:3px;background:var(--c)}
html body .rail-steps>.step-col{padding-inline:48px 0;border-block-start:1px solid var(--line)}
html body .rail-steps>.step-col:first-child{border-block-start:0}
html body .rail-steps>.step-col::before{inset-inline-start:0;inline-size:18px;block-size:18px;border:0;background:var(--c);z-index:1;transition:none}
html body .rail-steps>.step-col:hover::before{background:var(--c)}
/* the step that waits for the visitor: ringed in ink, as on the homepage map */
html body .rail-steps>.step-col--gate::before{inset-inline-start:-2px;inline-size:22px;block-size:22px;background:var(--sheet);box-shadow:inset 0 0 0 5px var(--c),0 0 0 3px var(--sheet),0 0 0 5px var(--ink)}
/* the heading leads; the step label is a meta line under it */
html body .rail-steps>.step-col>h3{order:-1}
html body .rail-steps>.step-col{display:flex;flex-direction:column}
@media (min-width:900px){html body .rail-steps>.step-col{display:grid}html body .rail-steps>.step-col>h3{grid-row:1}html body .rail-steps>.step-col>.step-col__n{grid-row:2}}
html body .find__sheet .rail-steps>.step-col{display:flex}

/* ---------- ledger lists (principles, guides, problems): ruled rows, no rail ---------- */
html body .rail{margin-inline-start:0;border:0;border-block-start:var(--rule)}
html body :is(.rail>.guide,.rail>.box,.rail>.paths__card){padding-inline:0;border-block-start:1px solid var(--line)}
html body :is(.rail>.guide,.rail>.box,.rail>.paths__card):first-child{border-block-start:0}
html body :is(.rail>.guide,.rail>.box,.rail>.paths__card)::before{content:none}
html body .rail>*>:is(.h3,h3){order:-1}
html body .rail>*>:is(.chip,.box__n){grid-row:2;margin-block-start:10px}
html body .rail>.paths__card{border-radius:0;background:none;box-shadow:none}

/* ---------- boxed asides and cards: open, under an ink rule ---------- */
html body :is(.story-aside,.prose-aside,.bound,.deliv-item,.path,.persp-item){padding:24px 0 0;border:0;border-block-start:var(--rule);border-radius:0;background:none;box-shadow:none}
html body :is(.deliv-items,.persp-items){gap:0}
html body :is(.deliv-item,.persp-item){padding-block:20px;border-block-start:1px solid var(--line)}
html body :is(.deliv-item,.persp-item):first-child{border-block-start:var(--rule)}
html body .persp-item h3{font-weight:800;font-size:1.125rem}
html body .deliv-item h3{font-size:1.125rem}
html body :is(.bound,.path) li::before,html body :is(.box,.area,.guide) li::before{background:var(--ink-3)}
html body .prose-aside li::before{content:none}
html body .story-aside h3,html body .prose-aside h3{font-size:1.125rem}

/* ---------- coverage explorer: the chosen area is a station; its panel opens under a rule ---------- */
html body .explorer__tabs{border-block-start:var(--rule)}
html body .explorer__tab{padding-inline:30px 14px;border-block-end-color:var(--line)}
html body .explorer__tab::before{inset-inline-start:4px;inset-block-start:calc(50% - 7px);inset-block-end:auto;inline-size:14px;block-size:14px;border-radius:50%;background:var(--sheet);box-shadow:inset 0 0 0 3px var(--line-2);transform:none;transition:background-color .2s,box-shadow .2s}
html body .explorer__tab:hover{background:var(--sunken)}
html body .explorer__tab[aria-selected="true"]{background:none}
html body .explorer__tab[aria-selected="true"] .explorer__t{font-weight:800}
html body .explorer__tab[aria-selected="true"]::before{background:var(--c);box-shadow:none}
html body .areas.is-explorer>.area{padding:24px 0 0;border:0;border-block-start:var(--rule);border-radius:0;background:none;box-shadow:none}
html body .explorer__t{font-weight:700}

/* ---------- reading pages: takeaways and callouts as ruled blocks ---------- */
html body .take{padding:18px 0 20px;border:0;border-block:var(--rule);border-block-end:1px solid var(--line);border-radius:0;background:none}
html body .callouts{gap:0;border-block-start:1px solid var(--line)}
html body .callout{padding:16px 0;border:0;border-block-end:1px solid var(--line);border-radius:0;background:none}
html body .callout__k{padding:0 9px;min-block-size:24px;border:0;border-radius:6px;background:var(--mist);color:var(--ink-2);font-family:var(--sans);font-weight:700;letter-spacing:0;text-transform:none}
html body .callout__k--fact{background:var(--emerald-soft);color:var(--blue-d)}
html body .status-chip{padding:0 9px;min-block-size:24px;border:0;border-radius:6px;background:var(--mist);font-family:var(--sans);font-weight:700;font-size:.8125rem;letter-spacing:0;text-transform:none}
html body .status-chip::before{content:none}
html body .status-list{border-block-start:var(--rule)}
html body .status-row{border-block-end-color:var(--line)}
html body .status-row__main h3{font-weight:800}

/* ---------- request form ---------- */
html body .req__form label{font-family:var(--sans);font-size:.8125rem;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink-2)}
html body .req__form :is(input,textarea){border-color:var(--line-input)}
html body .req__form :is(input,textarea):focus{border-color:var(--emerald);box-shadow:0 0 0 3px rgb(5 150 105 / 22%)}
html body .req__form [aria-invalid="true"]{border-color:var(--red);box-shadow:0 0 0 3px rgb(180 35 24 / 14%)}
html body .req__status:focus{outline-color:var(--emerald)}
html body .req{border-block-start:var(--rule)}
html body .post-card:focus-within,html body .theme-card:focus-within{border-color:var(--emerald);box-shadow:0 0 0 3px rgb(5 150 105 / 22%)}
html body .toc-box a.is-cur{color:var(--ink);border-inline-start-color:var(--ink);font-weight:800}

html body :is(.rail,.guides,.areas,.svc__list) .link{justify-self:start;align-self:flex-start}

/* ---------- reading pages: the contents list is ruled rows; a figure's steps are a station line ---------- */
html body .toc-box a.is-cur{border-inline-start:0;color:var(--ink);font-weight:800}
html body .article-main .fig__steps li{border:0;margin:0;padding-block:14px;padding-inline:40px 0}
html body .article-main .fig__steps li::before{inset-inline:0 auto;inset-block-start:16px;inline-size:18px;block-size:18px;border:0;background:var(--c)}
html body .article-main .fig__steps li:not(:last-child)::after{content:"";position:absolute;inset-inline-start:6px;inset-block:25px -25px;inline-size:6px;border-radius:3px;background:var(--c)}
@media (min-width:760px){
  html body .article-main .fig__steps li{padding:26px 0 0;border-block-start:6px solid var(--c)}
  html body .article-main .fig__steps li::before{inset-block-start:-12px}
  html body .article-main .fig__steps li:not(:last-child)::after{content:none}
}
html body .fig__arrow{background:var(--ink)}
/* in and out of scope: the heading leads, the chip is a meta line under it */
html body .bound{display:flex;flex-direction:column}
html body .bound>h3{order:-1}
html body .bound>.chip{align-self:flex-start;margin-block:8px 0}
html body :is(.sidebar-box,.fig){padding-inline:0;border:0;border-block-start:var(--rule);border-radius:0;background:none}
html body .sidebar-box{padding-block:20px 0}
html body .fig{padding-block:20px 0}
