/* The Working Observatory. Loaded after the preserved component styles.
   Desktop rules precede responsive adjustments; all changes are scoped. */
body.observatory {
  --bg-0:#f0ebdd; --bg-1:#f7f3e9; --bg-2:#e8e3d6;
  --ink:#172a22; --ink-2:#3e5147; --ink-3:#536255;
  --paper:#f0ebdd; --paper-ink:#172a22; --paper-ink-2:#3e5147;
  --paper-line:#bfc6b6; --line:rgb(23 42 34 / .18); --line-strong:rgb(23 42 34 / .3);
  --verify:#945033; --verify-text:#824129; --verify-a1:rgb(148 80 51 / .05);
  --verify-a2:rgb(148 80 51 / .10); --verify-a3:rgb(148 80 51 / .18);
  --live:#376951; --compound:#785b2e; --focus:#824129; --focus-paper:#824129;
  --ink-a1:rgb(23 42 34 / .025); --ink-a2:rgb(23 42 34 / .07);
  --ink-a3:var(--line); --ink-a4:var(--line-strong); --ink-a5:rgb(23 42 34 / .4);
  --ink-a6:rgb(23 42 34 / .6); --glass:#f0ebdd; --glass-solid:#f7f3e9;
  --glass-hi:transparent; --glass-soft:#e8e3d6; --paper-verify:#824129;
  --pillar-accent:#945033; --pillar-glow:transparent;
  --font-reading:var(--font-sans); --font-mono:var(--font-sans);
  --container:min(1240px,calc(100% - 96px)); --rail:160px;
  --section-space:clamp(72px,9vw,128px); --fs-body:1.125rem; --fs-body-s:1rem;
  --fs-body-l:1.2rem; --fs-lede:1.35rem; --obs-forest:#101f1b; --obs-ivory:#f0ebdd;
  --obs-light-ink:#f0ebdd; --obs-light-muted:#c2cbbf; --obs-copper:#d7946b;
  margin:0; padding:0!important; background:var(--bg-0)!important;
  color:var(--ink); font-family:var(--font-sans); font-size:18px; line-height:1.7;
  overflow-x:clip;
  color-scheme:light;
}
body.observatory a,body.observatory a:visited{color:var(--verify-text);}
body.observatory::before,body.observatory::after {content:none!important;display:none!important;}
body.observatory [hidden]{display:none!important;}
body.observatory main {max-width:none;width:100%;margin-inline:0;}
body.observatory h1,body.observatory h2,body.observatory h3 {text-wrap:pretty;}
body.observatory :is(h1,h2,h3,p,li,dd,td,th,a,button){overflow-wrap:break-word;}
body.observatory :focus-visible {outline:3px solid var(--focus);outline-offset:4px;}
body.observatory .scroll-progress{height:2px;background:var(--verify);}
body.observatory :is(.reveal,.reveal.is-visible,.register-stamp)>* {opacity:1!important;transform:none!important;}
body.observatory .reveal {opacity:1!important;transform:none!important;}
/* Retire scroll-linked ink fades: every card and reading block is immediately legible. */
body.observatory :is(.hero-inner,.library-lane,.skills-model,.skills-catalog,.skills-anatomy,.entry,.practice-row,.dive-card,.library-row,.skill-row,.skill-modes article,.status-ledger article,.experiment-list article,.preset-list>li,.change-log>li,.career-ledger ol>li,.template-ledger>article,.skills-anatomy ol>li,.method-steps>li,.about-card,.about-visual,.dives-more,.field-note-route,.route-next,.skills-route,.faq-list details,.reading-list a,.related-notes a,.article-nav a,.recipe,.agent-card,.dial,.guide-step,.command-ledger>div,.security-ledger article,.starter-routine li,.model-lanes article,.evidence-layers article,.observer-matrix article,.article-contents){animation:none!important;opacity:1!important;transform:none!important;}
body.observatory .register-drawn-rule {display:none;}
body.observatory :is(.section-head,.library-lane,.now-section,.skills-model,.skills-catalog,.skills-anatomy,.system-section,.career-ledger,.route-next,.field-note-route)::after {display:none!important;}
body.observatory :is(.section-title,.library-lane h2,.now-section h2,.skills-section-head h2,.template-index h2,.profile-body h2) {font-size:clamp(2rem,4vw,3.7rem);line-height:1.08;letter-spacing:-.025em;}
body.observatory :is(.section-kicker,.article-eyebrow,.contents-kicker,.entry-date,.library-kicker) {font-size:.7rem;letter-spacing:.13em;line-height:1.6;}
/* Navigation has one persistent row; native menu/search behaviour is retained. */
body.observatory .site-nav {
  --ink:var(--obs-light-ink);--ink-2:var(--obs-light-muted);--ink-3:var(--obs-light-muted);
  --line:rgb(240 235 221 / .18);--focus:var(--obs-copper);--verify:var(--obs-copper);
  position:relative;top:0;left:0!important;transform:none;width:100%;max-width:none;
  min-height:80px;height:auto;padding:12px 5%;border:0;border-radius:0;
  background:var(--obs-forest);color:var(--obs-light-ink);box-shadow:none;
}
body.observatory .nav-brand {font-size:24px;letter-spacing:-.025em;gap:10px;color:var(--obs-light-ink);}
body.observatory .brand-dim {color:inherit;}
body.observatory .nav-brand .brand-mark {width:30px;height:30px;flex-basis:30px;}
body.observatory .nav-link-index,body.observatory .kbd {display:none;}
body.observatory .nav-desktop {gap:28px;}
body.observatory .nav-link {font-size:13px;text-transform:none;letter-spacing:0;color:var(--obs-light-muted);}
body.observatory .nav-link:hover,body.observatory .nav-link.is-current {color:var(--obs-light-ink);}
body.observatory .nav-field-notes {display:none;}
body.observatory .nav-search {background:transparent;border:1px solid var(--line);border-radius:0;padding:9px 14px;color:var(--obs-light-ink);}
body.observatory .nav-toggle {color:var(--obs-light-ink);background:transparent;box-shadow:none;border:1px solid var(--line);}
body.observatory .nav-toggle:hover,body.observatory .nav-search:hover {color:var(--obs-forest);background:var(--obs-ivory);}
body.observatory .nav-search .kbd {display:none!important;}
body.observatory .nav-drawer-panel,body.observatory .palette {background:var(--bg-0);color:var(--ink);box-shadow:none;}
body.observatory .nav-drawer-head,body.observatory .nav-drawer-utility {color:var(--ink-2);}
body.observatory .nav-drawer-links .drawer-link {color:var(--ink);}
/* The hover/focus bar is drawn 3px inside the link's edge; keep the index numeral clear of it. */
body.observatory .nav-drawer-links .drawer-index {padding-inline-start:var(--space-5);}
body.observatory .palette-backdrop {background:rgb(6 17 11 / .62);}
body.observatory .palette input {font-size:19px;}
/* Optional analytics lives in the page flow and never covers reading or controls. */
body.observatory .analytics-consent {position:relative!important;inset:auto!important;width:var(--container)!important;max-width:1240px!important;margin:24px auto!important;box-shadow:none!important;}
body.observatory .profile-body p,body.observatory .now-body p{max-width:720px!important;}
body.observatory .footer {
 --ink:var(--obs-light-ink);--ink-2:var(--obs-light-muted);--ink-3:var(--obs-light-muted);
 --line:rgb(240 235 221 / .18);--focus:var(--obs-copper);
 background:var(--obs-forest);color:var(--obs-light-ink);border:0;padding:64px 0 28px;
}
body.observatory .footer-inner,body.observatory .footer-signoff {width:var(--container);max-width:1240px;margin-inline:auto;}
body.observatory .footer a,body.observatory .footer a:visited {color:var(--obs-light-ink);}
body.observatory .footer-signoff {font-size:10px;letter-spacing:.09em;border-color:rgb(240 235 221 / .18);}
body.observatory .btn {border-radius:0;box-shadow:none;min-height:48px;font-size:14px;font-family:var(--font-sans);}
body.observatory .btn-primary {background:var(--ink);color:var(--paper);border-color:var(--ink);}
/* Home: a real full-bleed composition, with its own portrait source. */
body.observatory[data-observatory-kind="home"] .site-nav {position:absolute;z-index:50;inset:0 0 auto;background:linear-gradient(180deg,rgba(5,15,11,.78),rgba(5,15,11,0));}
body.observatory .hero {
 --ink:var(--obs-light-ink);--ink-2:var(--obs-light-muted);--ink-3:var(--obs-light-muted);
 --verify:var(--obs-copper);--line:rgb(240 235 221 / .25);--focus:var(--obs-copper);
 position:relative;isolation:isolate;display:block;min-height:850px;height:auto;
 padding:132px max(6vw,calc((100vw - 1260px)/2)) 74px;background:var(--obs-forest);color:var(--ink);
}
body.observatory .obs-home-art {position:absolute;inset:0;z-index:-2;display:block;}
body.observatory .obs-home-art img {position:static!important;display:block;width:100%;height:100%;object-fit:cover;filter:none;opacity:1;transform:none!important;}
body.observatory .hero-scrim {position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,16,11,.65),rgba(5,16,11,.12) 68%);}
body.observatory .hero-inner {display:block;width:100%;max-width:none;margin:0;text-align:start;translate:none!important;}
body.observatory .hero-copy {max-width:650px;width:100%;min-width:0;}
body.observatory .obs-name {font:400 clamp(5.5rem,9vw,8rem)/.91 var(--font-display);letter-spacing:-.04em;margin:10px 0 28px;color:var(--obs-light-ink);}
body.observatory .hero-eyebrow {font-size:11px;margin:0 0 16px;color:var(--obs-light-muted);}
body.observatory .hero-clock {display:none!important;}
body.observatory .hero-title {font:400 clamp(1.4rem,2vw,1.8rem)/1.25 var(--font-sans);letter-spacing:-.015em;max-width:600px;margin:0;}
body.observatory .hero-title :is(.title-line,.title-ink){display:block;overflow:visible;white-space:normal;text-decoration:none!important;transform:none!important;animation:none!important;opacity:1!important;}
body.observatory .hero-title .title-line::after,body.observatory .hero-title .title-ink::after {display:none!important;}
body.observatory .hero-sub {max-width:470px;font-size:17px;line-height:1.65;color:var(--obs-light-muted);margin:20px 0 0;}
body.observatory .hero-actions {justify-content:flex-start;gap:20px;flex-wrap:wrap;margin:27px 0 0;}
body.observatory[data-observatory-kind="home"] .hero-actions .btn-primary {background:var(--obs-ivory);color:var(--obs-forest);border-color:var(--obs-ivory);}
body.observatory[data-observatory-kind="home"] .hero-actions .btn-ghost {color:var(--obs-light-ink);}
body.observatory .hero-note {position:absolute;inset:auto 6% 30px auto;width:auto;max-width:270px;min-width:0;padding:0;background:none;border:none;box-shadow:none;color:var(--obs-light-muted);text-align:end;}
body.observatory .hero-note::before,body.observatory .hero-note::after {content:none;}
body.observatory .hero-note strong{font:400 14px/1.5 var(--font-sans);color:var(--obs-light-ink);}
body.observatory .hero-note>span{font-size:10px;letter-spacing:.04em;}
body.observatory .scroll-cue {display:none;}
body.observatory .practice {padding-block:var(--section-space);}
body.observatory .practice-ledger {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;border:0;}
body.observatory .practice-row {display:block;padding:22px 0;border-block:1px solid var(--line);background:transparent!important;}
body.observatory .practice-row .practice-num{display:block;font-size:12px;margin-bottom:20px;color:var(--verify);}
body.observatory .practice-row strong{font:400 37px/1.05 var(--font-display);}
body.observatory .practice-row small{display:block;margin-top:14px;font-size:12px;}
body.observatory .practice-row>span:nth-of-type(3){display:block;margin-top:18px;font-size:16px;line-height:1.65;}
body.observatory .practice-row .practice-arrow{display:block;margin-top:22px;font-size:23px;}
body.observatory :is(.entry,.dive-card,.library-row,.skill-row,.template-ledger>article):hover{background:var(--bg-2)!important;}
body.observatory .entry {padding-block:34px;}
body.observatory .entry-title {font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.15;}
body.observatory .entry-body {font-family:var(--font-sans);font-size:17px;line-height:1.75;}
body.observatory .filters .chip {border-radius:0;min-height:44px;}
/* Core pages: useful content appears before long decorative scenes. */
body.observatory :is(.page-hero,.system-hero) {min-height:0;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:60px;align-items:center;padding:70px max(6vw,calc((100vw - 1240px)/2));border:0;overflow:visible;background:var(--bg-0);color:var(--ink);}
body.observatory :is(.page-hero-copy,.system-hero-inner){grid-column:1;grid-row:1;max-width:780px;padding:0!important;width:100%;}
body.observatory :is(.page-hero-copy h1,.system-hero-inner h1){font-size:clamp(3.1rem,5.2vw,5.5rem);line-height:1.02;max-width:18ch;margin:18px 0;letter-spacing:-.03em;}
body.observatory :is(.page-hero-copy>p,.system-hero-inner>p):not(.article-eyebrow){font-size:18px;max-width:59ch;color:var(--ink-2);}
body.observatory :is(.page-hero-scrim,.system-hero-scrim){display:none!important;}
body.observatory .obs-page-art{margin:0;grid-column:2;grid-row:1;align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0;}
body.observatory .obs-page-art picture{display:block;}
body.observatory .obs-page-art img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;}
body.observatory :is(.obs-page-art,.obs-cover) figcaption{font-size:10px;color:var(--ink-3);letter-spacing:.04em;padding:10px 0;line-height:1.5;}
body.observatory[data-observatory-kind="system"] .system-hero {display:block;background:var(--obs-forest)!important;--verify-text:var(--obs-copper);--ink:var(--obs-light-ink);--ink-2:var(--obs-light-muted);--ink-3:var(--obs-light-muted);color:var(--ink);}
body.observatory[data-observatory-kind="system"] .system-hero .article-eyebrow{color:var(--obs-light-muted);}
body.observatory[data-observatory-kind="system"] .system-hero h1 {font-size:clamp(3.5rem,7vw,7rem);max-width:16ch;}
body.observatory :is(.system-body,.profile-body,.now-body){max-width:1240px;width:var(--container);margin-inline:auto;}
body.observatory .system-section {gap:50px;}
body.observatory .system-map {background:var(--bg-2);padding:32px;}
body.observatory .system-map li {background:transparent;}
/* The sequence animation may dim these labels before they enter the viewport. Keep the
   instructional diagram readable during that transition; it is content, not decoration. */
body.observatory .system-map ol[data-sequence] > li {opacity:1!important;}
body.observatory .obs-library-search {width:var(--container);margin:10px auto 36px;max-width:1240px;}
body.observatory .obs-library-search>label {font-size:12px;text-transform:uppercase;letter-spacing:.1em;}
body.observatory .obs-library-search>div{display:flex;gap:24px;margin-top:12px;align-items:stretch;}
body.observatory .obs-library-search :is(input,select) {font:inherit;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line-strong);min-height:52px;padding:10px 0;min-width:0;border-radius:0;}
body.observatory .obs-library-search input {flex:1;}
body.observatory .obs-library-search select {font-size:15px;max-width:240px;}
body.observatory #library-status{font-size:12px;min-height:20px;margin-top:12px;color:var(--ink-3);}
body.observatory .library-index{padding-top:0;}
body.observatory .library-row{grid-template-columns:132px 110px minmax(0,1fr) 28px;column-gap:28px;align-items:center;padding:24px 0;}
body.observatory .obs-thumb{grid-column:1;grid-row:1;display:block;width:132px;}
body.observatory .obs-thumb img{display:block;width:100%;height:94px;object-fit:cover;}
body.observatory .library-row-meta{grid-column:2;grid-row:1;}
body.observatory .library-row-copy{grid-column:3;grid-row:1;min-width:0;}
body.observatory .library-row-copy strong{font:400 clamp(1.6rem,2.4vw,2rem)/1.12 var(--font-display);}
body.observatory .library-row-copy small{font-size:14px;line-height:1.6;margin-top:10px;}
body.observatory .library-row-arrow{grid-column:4;grid-row:1;}
body.observatory .template-ledger>article{padding:30px 0;min-width:0;border:0!important;border-top:1px solid var(--line)!important;box-shadow:none!important;background:transparent!important;}
body.observatory .template-ledger>article::before,body.observatory .template-ledger>article::after{content:none!important;}
body.observatory .obs-template-preview{grid-column:1/-1;margin-top:18px;width:100%;min-width:0;max-width:100%;}
body.observatory .obs-template-preview summary{min-height:44px;cursor:pointer;font-size:14px;}
body.observatory .obs-template-preview pre{background:var(--bg-2);color:var(--ink);padding:24px;font:13px/1.7 ui-monospace,monospace;max-width:100%;overflow:auto;margin:15px 0;white-space:pre-wrap;overflow-wrap:anywhere;}
body.observatory .obs-copy{border:1px solid var(--line-strong);background:transparent;color:var(--ink);font:14px var(--font-sans);padding:12px 18px;min-height:44px;cursor:pointer;}
body.observatory .obs-copy-status{display:inline-block;font-size:13px;margin-inline-start:14px;}
/* Article openings and reading canvas. Existing article text and diagrams stay semantic. */
body.observatory[data-observatory-kind="article"] .article-hero,body.observatory[data-observatory-kind="service"] .article-hero{
 --ink:var(--obs-light-ink);--ink-2:var(--obs-light-muted);--ink-3:var(--obs-light-muted);
 --line:rgb(240 235 221 / .22);--verify-text:var(--obs-copper);--verify:var(--obs-copper);--pillar-accent:var(--obs-copper);
 display:block;width:100%;max-width:none;margin:0;padding:58px max(8vw,calc((100vw - 1120px)/2)) 44px;
 background:var(--obs-forest)!important;color:var(--ink);overflow:visible;
}
body.observatory .article-hero::before,body.observatory .article-hero::after{content:none!important;}
body.observatory .article-hero :is(.article-title,h1){font-size:clamp(3.25rem,5.7vw,5.6rem);max-width:100%;line-height:1.05;margin:20px 0 24px;letter-spacing:-.027em;}
body.observatory .article-hero .article-lede{font-size:20px;line-height:1.65;max-width:850px;color:var(--ink-2);margin:0 0 25px;}
body.observatory .article-hero .crumbs{margin:0 0 20px;font-size:11px;line-height:1.8;}
body.observatory .article-hero .article-eyebrow{font-size:11px;color:var(--ink-2);}
body.observatory .article-meta{border-top:1px solid var(--line);margin:25px 0 0;padding:18px 0 0;display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
body.observatory .article-meta :is(.entry-date,.entry-read,.tag){color:var(--ink-2);font-size:12px!important;}
body.observatory .obs-cover{margin:0 0 30px;width:100%;display:block;}
body.observatory .obs-cover picture{display:block;}
body.observatory .obs-cover img{display:block;width:100%;height:clamp(270px,34vw,530px);object-fit:cover;object-position:center;}
body.observatory .obs-cover figcaption{max-width:1240px;width:var(--container);margin:auto;text-align:end;}
body.observatory .article-body{font-family:var(--font-sans);font-size:18px;line-height:1.8;color:var(--ink-2);}
body.observatory[data-observatory-kind="article"] .article-body {width:min(720px,calc(100% - 48px));max-width:720px;margin:60px auto 90px;padding:0;}
body.observatory .article-body>p{max-width:none;font-size:18px;line-height:1.8;margin-bottom:26px;color:var(--ink-2);}
body.observatory .article-body>p:first-of-type::first-letter {float:none!important;font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;margin:0!important;color:inherit!important;}
body.observatory .article-body h2 {font:400 clamp(2.1rem,3.8vw,3rem)/1.12 var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:64px 0 26px;padding-top:28px;}
body.observatory .article-body h3 {font:400 clamp(1.5rem,2.5vw,2rem)/1.2 var(--font-display);color:var(--ink);margin-block:28px 15px;}
body.observatory .article-body p,body.observatory .article-body li {color:var(--ink-2);}
body.observatory .article-body .hx{font:400 11px/1.5 var(--font-sans);color:var(--verify);vertical-align:middle;margin-inline-end:16px;}
body.observatory .article-body::before {position:static!important;display:block!important;float:none;width:100%;height:auto;margin:0 0 30px;padding:12px 0;border-block:1px solid var(--line);color:var(--ink-3);font-size:10px;letter-spacing:.08em;white-space:pre-line;}
body.observatory .article-body pre {background:var(--obs-forest);color:var(--obs-light-ink);border:0;padding:25px;line-height:1.75;max-width:100%;overflow:auto;}
body.observatory .article-body pre code{color:inherit;background:none;font-size:13px;}
body.observatory .article-body :not(pre)>code{background:var(--bg-2);color:var(--ink);font-size:.85em;overflow-wrap:anywhere;}
body.observatory .article-body a {color:var(--verify-text);text-decoration-thickness:1px;text-underline-offset:4px;}
body.observatory .article-body .fieldnote,body.observatory .article-body .pattern,body.observatory .article-body .recipe,body.observatory .article-body .takeaways {background:var(--bg-2);border:0;border-inline-start:2px solid var(--verify);padding:28px;margin-block:32px;box-shadow:none;}
body.observatory .article-body :is(.workflow-diagram,.model-lanes,.evidence-viz,.scope-diagram,.diagnostic-viz,.provenance-viz,.monitor-viz,.loop-rail,.operating-loop,.monitor-flow,.monitor-state-grid){left:auto!important;transform:none!important;width:100%;max-width:100%;margin-inline:0!important;}
body.observatory .article-body :is(.workflow-diagram,.evidence-viz,.scope-diagram,.diagnostic-viz,.provenance-viz,.monitor-viz) h2{margin:0 0 18px;padding:0;font-size:clamp(1.6rem,3vw,2.3rem);}
body.observatory .article-body .compare-wrap{width:100%!important;max-width:100%;min-width:0;margin-inline:0!important;overflow:auto;}
body.observatory .article-body .compare{background:transparent;min-width:100%;color:var(--ink-2);}
body.observatory .article-body .compare :is(th,td){border-color:var(--line);color:var(--ink-2);}
body.observatory .obs-contents{width:var(--container);max-width:1040px;margin:25px auto 0;border-block:1px solid var(--line);}
body.observatory .obs-contents>summary{cursor:pointer;display:flex;justify-content:space-between;padding:17px 0;font-size:13px;min-height:50px;}
body.observatory .obs-contents>summary span{font-size:20px;}
body.observatory .obs-contents[open]>summary span{transform:rotate(45deg);}
body.observatory .obs-contents .article-contents{display:grid;width:100%;max-width:none;margin:0;padding:14px 0 30px;border:0;background:transparent;grid-template-columns:160px minmax(0,1fr);gap:32px;}
body.observatory .obs-contents .article-contents ol{columns:2;column-gap:35px;}
body.observatory .obs-contents .article-contents li{break-inside:avoid;}
body.observatory .obs-contents .article-contents h2{font:400 32px/1.1 var(--font-display);}
/* The article chapter bar returned in R3 with the reading rail; both are styled in motion.css. */
body.observatory :is(.related-reading,.related-notes,.article-series){margin-top:60px;border-color:var(--line);}
body.observatory main>.related-reading,body.observatory main>.article-series{width:min(720px,calc(100% - 48px));max-width:720px;margin-inline:auto;}
body.observatory .wake-kicker{color:var(--obs-ivory);}
body.observatory .related-list>a{grid-template-columns:132px 110px minmax(0,1fr) 28px;gap:24px;padding:24px 0;}
body.observatory .related-list .related-meta{grid-column:2;grid-row:1;color:var(--ink-3);}
body.observatory .related-list .related-copy{grid-column:3;grid-row:1;min-width:0;}
body.observatory .related-list .related-arrow{grid-column:4;grid-row:1;align-self:center;}
body.observatory .related-copy strong{font:400 27px/1.15 var(--font-display);color:var(--ink);}
body.observatory .related-copy small{font-size:14px;line-height:1.65;color:var(--ink-2);}
/* Garage retains the supplied configuration studies and their disclosure. */
body.observatory .garage-hero{min-height:780px;padding-top:80px;}
body.observatory .garage-hero-copy{color:var(--obs-light-ink);}
body.observatory .garage-hero-copy :is(p,h1,span,a){color:var(--obs-light-ink);}
body.observatory .garage-hero-shade{background:linear-gradient(90deg,rgba(5,16,11,.8),rgba(5,16,11,.08));}
body.observatory .garage-story{width:var(--container);max-width:1240px;margin-inline:auto;}
body.observatory .garage-story::before{display:none!important;}
body.observatory .garage-figure{margin-left:50%;}
body.observatory.garage-page{--garage-terracotta-light:#824129;}
body.observatory .colour-field strong{color:inherit;}
body.observatory .garage-next{background:var(--bg-2);}
body.observatory[data-observatory-kind="utility"] .article-hero{padding-top:65px;}
body.observatory[data-observatory-kind="utility"] .article-page{max-width:850px;width:var(--container);margin:0 auto;}
/* Native RTL spacing, not a mirrored English screenshot. */
html[dir="rtl"] body.observatory{font-family:var(--font-ar);}
html[dir="rtl"] body.observatory .site-nav{right:0!important;inset-inline-start:0!important;}
html[dir="rtl"] body.observatory :is(.btn,.nav-toggle,.nav-search,.drawer-link,.drawer-link strong,.obs-contents summary){font-family:var(--font-ar);}
html[dir="rtl"] body.observatory :is(h1,h2,h3,.article-title){font-family:var(--font-ar);line-height:1.35;letter-spacing:0;}
html[dir="rtl"] body.observatory .article-hero {text-align:start;}
html[dir="rtl"] body.observatory .obs-page-art{grid-column:2;}
html[dir="rtl"] body.observatory pre{direction:ltr;text-align:left;}
/* Restrained motion never gates the visibility of reading content. */
@media(prefers-reduced-motion:no-preference){body.observatory .obs-page-art img,body.observatory .obs-thumb img,body.observatory .obs-next-art img{transition:transform .5s var(--ease-out);}body.observatory .library-row:hover .obs-thumb img,body.observatory .related-list>a:hover .obs-thumb img,body.observatory .an-next:hover .obs-next-art img{transform:scale(1.035);}}
@media(min-width:1100px){body.observatory[data-observatory-kind="article"] .article-body :is(.workflow-diagram,.model-lanes,.evidence-viz,.scope-diagram,.diagnostic-viz,.provenance-viz){width:min(1000px,calc(100vw - 96px));max-width:none;margin-inline:calc((100% - min(1000px,100vw - 96px))/2)!important;}}
@media(min-width:1100px){body.observatory[data-observatory-kind="article"] .article-body .compare-wrap{width:min(1000px,calc(100vw - 96px))!important;max-width:none;margin-inline:calc((100% - min(1000px,100vw - 96px))/2)!important;}}
@media(max-width:1050px){body.observatory{--container:calc(100% - 56px);}body.observatory .nav-desktop{gap:18px;}body.observatory .nav-brand{font-size:21px;}body.observatory :is(.page-hero,.system-hero){gap:35px;}body.observatory .library-row{grid-template-columns:105px 80px minmax(0,1fr) 24px;gap:18px;}body.observatory .obs-thumb{width:105px;}body.observatory .practice-ledger{gap:25px;}body.observatory .practice-row strong{font-size:32px;}}
@media(max-width:900px){body.observatory .site-nav{min-height:68px;padding:8px 24px;}body.observatory .nav-desktop{display:none;}body.observatory .nav-toggle{display:inline-flex;}body.observatory .nav-actions{gap:10px;}body.observatory :is(.page-hero,.system-hero){grid-template-columns:minmax(0,1fr) minmax(180px,.55fr);padding:50px 28px;}body.observatory .page-hero-copy h1{font-size:clamp(2.7rem,6vw,4rem);}body.observatory .obs-page-art img{aspect-ratio:3/4;}body.observatory .system-section{gap:28px;}}
@media(max-width:700px){
 body.observatory{--container:calc(100% - 44px);--section-space:64px;--fs-body:1.0625rem;--rail:0px;font-size:17px;}
 body.observatory .site-nav{min-height:66px;padding:8px 22px;}
 body.observatory .nav-brand{font-size:20px;gap:8px;}
 body.observatory .nav-brand .brand-mark{width:25px;height:25px;flex-basis:25px;}
 body.observatory .nav-search{padding:8px;}
 body.observatory .nav-search .palette-label{display:none;}
 body.observatory .nav-search .search-glyph{display:block;width:18px;height:18px;}
 body.observatory .hero{padding:95px 24px 45px;min-height:850px;}
 body.observatory .hero-scrim{background:linear-gradient(180deg,rgba(5,15,11,.07),rgba(5,15,11,.32) 55%,rgba(5,15,11,.1));}
 body.observatory .obs-name{font-size:75px;line-height:.92;margin:8px 0 24px;}
 body.observatory .hero-eyebrow{font-size:10px;margin:0 0 14px;}
 body.observatory .hero-title{font-size:23px;line-height:1.18;max-width:330px;}
 body.observatory .hero-sub{font-size:15px;line-height:1.6;max-width:345px;margin-top:18px;color:var(--obs-light-ink);}
 body.observatory .hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:12px;margin-top:22px;}
 body.observatory .hero-actions .btn{font-size:13px;min-height:46px;}
 body.observatory[data-observatory-kind="home"] .hero-actions .btn-ghost{background:rgba(8,20,14,.65);padding-inline:12px;}
 body.observatory .practice-ledger{grid-template-columns:1fr;gap:28px;}
 body.observatory .practice-row{padding-block:20px;}
 body.observatory .practice-row .practice-num{margin-bottom:12px;}
 body.observatory .practice-row strong{font-size:34px;}
 body.observatory .practice-row .practice-arrow{margin-top:15px;}
 body.observatory .section-head{gap:20px;}
 body.observatory .section-title{font-size:38px;}
 body.observatory .section-index{font-size:11px;}
 body.observatory :is(.page-hero,.system-hero){display:flex;flex-direction:column;align-items:stretch;gap:28px;padding:36px 22px 32px;}
 body.observatory .page-hero-copy{order:0;max-width:none;}
 body.observatory .page-hero-copy h1{font-size:45px;line-height:1.04;max-width:100%;}
 body.observatory .page-hero-copy>p:not(.article-eyebrow){font-size:16px;line-height:1.7;}
 body.observatory .obs-page-art{order:1;display:block;max-width:none;}
 body.observatory .obs-page-art img{aspect-ratio:1.6;height:auto;}
 body.observatory[data-observatory-kind="system"] .system-hero h1{font-size:52px;}
 body.observatory :is(.system-section,.profile-intro,.now-section,.career-ledger){display:block;padding-block:42px;}
 body.observatory .system-index{margin-bottom:16px;}
 body.observatory .system-map{padding:22px;}
 body.observatory .obs-library-search{margin-block:10px 24px;}
 body.observatory .obs-library-search>div{gap:12px;}
 body.observatory .obs-library-search input{width:100%;font-size:16px;}
 body.observatory .obs-library-search select{max-width:none;width:40%;font-size:14px;}
 body.observatory .library-index{padding-top:0;}
 body.observatory .library-lane{padding-top:36px;}
 body.observatory .library-row{grid-template-columns:88px minmax(0,1fr) 20px;gap:10px 16px;padding:22px 0;}
 body.observatory .obs-thumb{grid-column:1;grid-row:1/3;width:88px;align-self:start;}
 body.observatory .obs-thumb img{height:96px;}
 body.observatory .library-row-meta{grid-column:2;grid-row:1;font-size:10px;}
 body.observatory .library-row-copy{grid-column:2;grid-row:2;}
 body.observatory .library-row-copy strong{font-size:25px;line-height:1.12;}
 body.observatory .library-row-copy small{font-size:13px;line-height:1.6;margin-top:12px;}
 body.observatory .library-row-arrow{grid-column:3;grid-row:2;}
 body.observatory .obs-template-preview pre{padding:17px;font-size:12px;}
 body.observatory .obs-copy-status{display:block;margin:12px 0 0;}
 body.observatory[data-observatory-kind="article"] .article-hero,body.observatory[data-observatory-kind="service"] .article-hero{padding:34px 22px 32px;}
 body.observatory .article-hero :is(.article-title,h1){font-size:46px;line-height:1.07;letter-spacing:-.02em;margin:17px 0 23px;}
 body.observatory .article-hero .article-lede{font-size:17px;line-height:1.7;margin-bottom:22px;}
 body.observatory .article-hero .crumbs{font-size:10px;margin-bottom:18px;}
 body.observatory .article-meta{gap:12px;margin-top:22px;padding-top:17px;}
 body.observatory .article-meta .entry-tags{width:100%;}
 body.observatory .obs-cover{margin-bottom:12px;}
 body.observatory .obs-cover img{height:240px;object-position:center;}
 body.observatory .obs-cover figcaption{font-size:9px;padding-block:8px;}
 body.observatory .obs-contents{margin-top:15px;}
 body.observatory .obs-contents .article-contents{display:block;padding:0 0 20px;}
 body.observatory .obs-contents .article-contents ol{columns:1;}
 body.observatory .obs-contents .contents-heading{display:none;}
 body.observatory[data-observatory-kind="article"] .article-body{width:var(--container);margin:35px auto 60px;}
 body.observatory .article-body>p{font-size:17px;line-height:1.8;}
 body.observatory .article-body h2{font-size:35px;line-height:1.14;margin:45px 0 22px;padding-top:22px;}
 body.observatory .article-body h3{font-size:27px;}
 body.observatory .article-body .hx{font-size:10px;margin-inline-end:8px;}
 body.observatory .article-body :is(.fieldnote,.pattern,.recipe,.takeaways){padding:21px;margin-block:26px;}
 body.observatory .article-body pre{padding:20px;font-size:12px;}
 body.observatory .article-body :is(.workflow-diagram,.model-lanes,.evidence-viz,.scope-diagram,.diagnostic-viz,.provenance-viz){max-width:100%;margin-inline:0!important;}
 body.observatory .related-list>a{grid-template-columns:88px minmax(0,1fr) 24px;gap:10px 16px;}
 body.observatory .related-list .related-meta{grid-column:2;grid-row:1;}
 body.observatory .related-list .related-copy{grid-column:2;grid-row:2;}
 body.observatory .related-list .related-arrow{grid-column:3;grid-row:1/3;}
 body.observatory .related-copy strong{font-size:25px;line-height:1.12;}
 body.observatory .footer{padding-top:42px;}
 body.observatory .garage-hero{min-height:740px;}
 body.observatory .garage-hero h1{font-size:clamp(2.6rem,10vw,4rem);}
 html[dir="rtl"] body.observatory :is(.article-hero :is(.article-title,h1),.page-hero-copy h1){font-size:36px;line-height:1.45;}
}
@media(max-width:360px){body.observatory{--container:calc(100% - 36px);}body.observatory .site-nav{padding-inline:18px;}body.observatory .nav-brand{font-size:18px;}body.observatory .hero{padding-inline:18px;min-height:900px;}body.observatory .hero-title{font-size:21px;}body.observatory .obs-name{font-size:68px;}body.observatory .hero-sub{font-size:14px;}body.observatory .article-hero :is(.article-title,h1){font-size:40px;}body.observatory .page-hero-copy h1{font-size:39px;}}
@media(prefers-reduced-motion:reduce){body.observatory *,body.observatory *::before,body.observatory *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}}
@media print{body.observatory .site-nav,body.observatory .obs-cover,body.observatory .obs-home-art,body.observatory .obs-page-art,body.observatory .obs-next-art{display:none!important;}body.observatory{background:#fff!important;color:#111;}body.observatory .article-hero,body.observatory .article-nav>a.an-next{background:#fff!important;color:#111!important;}body.observatory .article-hero *,body.observatory .article-nav>a.an-next *{color:#111!important;}}

/* Explicitly retire the old hero's priority declarations. */
body.observatory .hero {padding:132px max(6vw,calc((100vw - 1260px)/2)) 74px!important;}
body.observatory .hero-note {background:transparent!important;color:var(--obs-light-muted)!important;box-shadow:none!important;border:0!important;padding:0!important;inset:auto 6% 30px auto!important;transform:none!important;}
body.observatory .hero-note strong {color:var(--obs-light-ink)!important;}
body.observatory .hero-note span {color:var(--obs-light-muted)!important;}
@media(max-width:700px){body.observatory .hero{padding:95px 24px 45px!important;}}
@media(max-width:360px){body.observatory .hero{padding-inline:18px!important;}}

/* The shared chip hover (register.css) sets dark text while the archive toggle keeps its copper hover fill. */
body.observatory .archive-toggle:hover {color:var(--bg-0);}

/* ---------- Home re-composition (Observatory in Motion R2, spec §5.1) ----------
   The finished state of every home block lives here; motion.css only moves it. */
/* Hero: the name sits in line masks, a copper rule closes the title and the eyebrow carries a live
   dot. The readout stays bottom-right on wide screens, where a soft shade behind it keeps its text
   at 4.5:1 over the art's bright desk (spec §8), and moves under the actions below 1051px. */
body.observatory[data-observatory-kind="home"] .obs-line,body.observatory[data-observatory-kind="home"] .obs-line>span{display:block;}
body.observatory[data-observatory-kind="home"] .hero-eyebrow{position:relative;}
body.observatory[data-observatory-kind="home"] .hero-eyebrow::before{content:"";display:inline-block;width:6px;height:6px;margin-inline-end:9px;border-radius:50%;background:var(--obs-copper);background:color-mix(in srgb,var(--live) 55%,var(--obs-light-ink));vertical-align:1px;}
body.observatory[data-observatory-kind="home"] .hero-title::after{content:"";display:block;width:120px;height:1px;margin-top:22px;background:var(--obs-copper);transform-origin:left center;}
body.observatory[data-observatory-kind="home"] .hero-note{max-width:none;isolation:isolate;}
body.observatory[data-observatory-kind="home"] .hero-note::before{content:"";position:absolute;inset:-56px -72px;z-index:-1;background:radial-gradient(closest-side,color-mix(in srgb,var(--obs-forest) 88%,transparent) 55%,transparent);pointer-events:none;}
body.observatory[data-observatory-kind="home"] .hero-note strong{display:block;white-space:nowrap;}
body.observatory[data-observatory-kind="home"] .hero-note :is([data-count],[data-dives]){font:400 26px/1 var(--font-display);letter-spacing:0;color:var(--obs-light-ink)!important;}
body.observatory .obs-chain{display:inline-flex;flex-wrap:wrap;align-items:center;row-gap:4px;}
body.observatory .obs-chain-link{display:inline-block;position:relative;width:22px;margin-inline:6px;overflow:hidden;white-space:nowrap;vertical-align:middle;-webkit-text-fill-color:transparent;}
body.observatory .obs-chain-link::before{content:"";position:absolute;inset-inline:0;top:50%;height:1px;background:var(--verify);transform-origin:left center;}
@media(max-width:1050px){
 body.observatory[data-observatory-kind="home"] .hero-note::before{content:none;}
 body.observatory[data-observatory-kind="home"] .hero-note{position:static;display:grid;justify-items:start;margin-top:22px;text-align:start;}
 body.observatory[data-observatory-kind="home"] .hero-note strong{white-space:normal;}
}
@media(max-width:700px){
 body.observatory[data-observatory-kind="home"] .hero-scrim{background:linear-gradient(180deg,color-mix(in srgb,var(--obs-forest) 8%,transparent),color-mix(in srgb,var(--obs-forest) 32%,transparent) 42%,color-mix(in srgb,var(--obs-forest) 88%,transparent));}
}
/* Feature scene: No. 43 as a full-bleed scene between 01 and 02 (generated by build-observatory).
   Its words sit inside the art's safe area, clear of the letterbox's widest inset (12% / 8%), and
   a shade that follows them keeps them at 4.5:1 wherever the art's light falls (spec §8). */
body.observatory .obs-feature,body.observatory .obs-feature:visited{--focus:var(--obs-copper);--verify:var(--obs-copper);position:relative;isolation:isolate;overflow:clip;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(560px,92svh,900px);padding:max(16svh,96px) max(10%,32px) max(14svh,88px);color:var(--obs-light-ink);text-decoration:none;}
body.observatory .obs-feature:focus-visible{outline-offset:-10px;}
body.observatory .obs-feature-art{position:absolute;inset:0;z-index:-1;display:block;overflow:hidden;background:var(--obs-forest);}
body.observatory .obs-feature-art img{display:block;width:100%;height:100%;object-fit:cover;}
body.observatory .obs-feature-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,color-mix(in srgb,var(--obs-forest) 90%,transparent) 88%);}
body.observatory .obs-feature-copy{position:relative;isolation:isolate;display:grid;justify-items:start;gap:14px;max-width:760px;}
body.observatory .obs-feature-copy::before{content:"";position:absolute;inset:-16vh -100vw -30vh;z-index:-1;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--obs-forest) 88%,transparent) 16vh,color-mix(in srgb,var(--obs-forest) 92%,transparent));pointer-events:none;}
body.observatory .obs-feature-copy>*{grid-column:1;grid-row:auto;justify-self:start;}
body.observatory .obs-feature .dive-num{font-size:12px;letter-spacing:.14em;color:var(--obs-copper);}
body.observatory .obs-feature .dive-title{font:400 clamp(2.5rem,6vw,5.4rem)/.98 var(--font-display);letter-spacing:-.035em;color:var(--obs-light-ink);}
body.observatory .obs-feature .dive-desc{max-width:58ch;font-size:clamp(15px,1.2vw,17px);line-height:1.65;color:var(--obs-light-muted);}
body.observatory .obs-feature .dive-cta{display:inline-flex;align-items:center;min-height:48px;margin-top:10px;padding:0 20px;background:var(--obs-ivory);color:var(--obs-forest);font-size:14px;font-weight:500;letter-spacing:0;transition:transform var(--t-hover) var(--ease-out);}
body.observatory .obs-feature .dive-cta::after{content:none;}
body.observatory .obs-feature:hover .dive-cta{transform:translateX(5px);}
/* The list drops No. 43, which the feature above presents; the release contract checks the pair. */
body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card[href="/insights/ai-agents-in-production/"]{display:none;}
@media(max-width:700px){
 body.observatory .obs-feature,body.observatory .obs-feature:visited{min-height:clamp(560px,88svh,760px);padding-inline:max(10%,24px);}
}
/* Deep dives: the seven rows carry their article thumbnails (build-observatory adds them behind OBS
   markers, as on the Library). The thumbnail leads the row, so the 3px hover/focus bar that
   register.css draws inside the row's start edge lands on the image, never on text. */
body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card{grid-template-columns:132px 110px minmax(0,1fr) 64px;grid-template-rows:auto auto;column-gap:28px;row-gap:8px;align-items:center;padding-block:24px;}
body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.obs-thumb{grid-column:1;grid-row:1/3;align-self:center;width:132px;}
body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.dive-num{grid-column:2;grid-row:1/3;}
body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.dive-title{grid-column:3;grid-row:1;align-self:end;}
body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.dive-desc{grid-column:3;grid-row:2;align-self:start;}
body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.dive-cta{grid-column:4;grid-row:1/3;justify-self:end;}
body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card:hover .obs-thumb img{transform:scale(1.035);}
/* Field notes are not links: the timeline's tick is their marker, so the row bar that covered the date goes. */
body.observatory[data-observatory-kind="home"] .timeline>.entry:hover{box-shadow:none;}
@media(max-width:1050px){
 body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card{grid-template-columns:105px 80px minmax(0,1fr) 56px;column-gap:18px;}
 body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.obs-thumb{width:105px;}
}
@media(max-width:700px){
 body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card{grid-template-columns:88px minmax(0,1fr) 20px;grid-template-rows:auto auto auto;column-gap:16px;row-gap:6px;align-items:start;}
 body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.obs-thumb{grid-row:1/4;width:88px;align-self:start;}
 body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.dive-num{grid-column:2;grid-row:1;}
 body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.dive-title{grid-column:2;grid-row:2;align-self:start;}
 body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.dive-desc{grid-column:2;grid-row:3;}
 body.observatory[data-observatory-kind="home"] .dives-grid>.dive-card>.dive-cta{grid-column:3;grid-row:1/4;align-self:center;}
}
/* Field notes as a timeline: a rail between the date column and the notes, one tick per note, and
   the evidence chains drawn as copper links. Filter chips carry their counts (main.js). */
body.observatory[data-observatory-kind="home"] .timeline{--obs-rail-x:calc(var(--rail) + clamp(var(--space-11),5vw,72px) / 2);--obs-tick-y:43px;position:relative;isolation:isolate;}
body.observatory[data-observatory-kind="home"] .timeline::before,body.observatory[data-observatory-kind="home"] .timeline::after{content:"";display:block;position:absolute;z-index:0;top:calc(var(--obs-tick-y) + 5px);bottom:0;inset-inline-start:var(--obs-rail-x);width:1px;pointer-events:none;}
body.observatory[data-observatory-kind="home"] .timeline::before{background:var(--line-strong);}
body.observatory[data-observatory-kind="home"] .timeline::after{background:var(--verify);transform-origin:top center;}
body.observatory[data-observatory-kind="home"] .timeline>.entry::before{content:"";display:block;position:absolute;z-index:1;top:var(--obs-tick-y);inset-inline-start:calc(var(--obs-rail-x) - 5px);width:11px;height:11px;box-sizing:border-box;border:1px solid var(--verify);border-radius:50%;background:var(--verify);}
body.observatory[data-observatory-kind="home"] .chip-count{color:var(--verify-text);font-variant-numeric:tabular-nums;}
@media(max-width:700px){
 body.observatory[data-observatory-kind="home"] .timeline{--obs-rail-x:5px;--obs-tick-y:40px;}
 body.observatory[data-observatory-kind="home"] .timeline>.entry{padding-inline-start:26px;}
}
/* 04 Human judgement: an image-led split. The identity-network image (hidden since the Observatory
   pass) returns beside the two cards; its frame is the letterbox's clip host (motion.css). */
body.observatory[data-observatory-kind="home"] .about{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);column-gap:clamp(20px,4vw,56px);width:var(--container);max-width:1240px;margin-inline:auto;padding-bottom:var(--section-space);}
body.observatory[data-observatory-kind="home"] .about>.section-head{grid-column:1/-1;width:auto;margin-inline:0;}
body.observatory[data-observatory-kind="home"] .about>.about-visual{display:flex;flex-direction:column;grid-column:1;width:auto;min-width:0;margin:0;overflow:visible;border:0;background:transparent;}
body.observatory[data-observatory-kind="home"] .about-visual::after{content:none;}
body.observatory[data-observatory-kind="home"] .about-visual .obs-frame{position:relative;display:block;flex:1;min-height:420px;overflow:hidden;background:var(--obs-forest);}
body.observatory[data-observatory-kind="home"] .about-visual .obs-frame img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;}
body.observatory[data-observatory-kind="home"] .about-visual figcaption{position:static;padding:10px 0 0;border:0;background:transparent;color:var(--ink-3);}
body.observatory[data-observatory-kind="home"] .about>.about-grid{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr);gap:18px;width:auto;padding:0;}
body.observatory[data-observatory-kind="home"] .about-grid::before,body.observatory[data-observatory-kind="home"] .about-card::after{content:none;display:none;}
body.observatory[data-observatory-kind="home"] .about-card{min-height:0;padding:26px 24px 28px;background:var(--bg-1)!important;border:0!important;box-shadow:none!important;}
body.observatory[data-observatory-kind="home"] .about-avatar{margin-bottom:var(--space-9);}
@media(max-width:820px){
 body.observatory[data-observatory-kind="home"] .about{grid-template-columns:minmax(0,1fr);row-gap:18px;}
 body.observatory[data-observatory-kind="home"] .about>.about-visual,body.observatory[data-observatory-kind="home"] .about>.about-grid{grid-column:1;}
 body.observatory[data-observatory-kind="home"] .about-visual .obs-frame{flex:none;min-height:0;aspect-ratio:16/10;}
}
/* Work with me: a forest band that runs into the footer, with the ten-day ruler (build-observatory
   generates it from the sprint page's five-moves table; it is aria-hidden, the table is the source). */
body.observatory[data-observatory-kind="home"] .route-next{--ink:var(--obs-light-ink);--ink-2:var(--obs-light-muted);--ink-3:var(--obs-light-muted);--line:color-mix(in srgb,var(--obs-light-ink) 18%,transparent);--focus:var(--obs-copper);--verify:var(--obs-copper);width:100%;max-width:none;margin:0;padding:clamp(72px,9vw,136px) max(6vw,calc((100vw - 1240px) / 2));border:0;background:var(--obs-forest);color:var(--obs-light-ink);}
body.observatory[data-observatory-kind="home"] .route-next-kicker{color:var(--obs-copper);}
body.observatory[data-observatory-kind="home"] .route-next h2{color:var(--obs-light-ink);}
body.observatory[data-observatory-kind="home"] .route-next>div>p:last-child{color:var(--obs-light-muted);}
body.observatory[data-observatory-kind="home"] .route-next .btn-primary{background:var(--obs-ivory);color:var(--obs-forest);border-color:var(--obs-ivory);}
body.observatory[data-observatory-kind="home"] .route-next .btn-ghost{color:var(--obs-light-ink);border-color:var(--line);}
body.observatory[data-observatory-kind="home"] .footer{margin-top:0;}
body.observatory[data-observatory-kind="home"] .obs-ruler{grid-column:1/-1;display:flex;gap:8px;margin:16px 0 0;padding:0;list-style:none;}
body.observatory[data-observatory-kind="home"] .obs-ruler li{flex:var(--w) 1 0;min-width:0;}
body.observatory[data-observatory-kind="home"] .obs-ruler i{position:relative;display:block;height:6px;overflow:hidden;background:color-mix(in srgb,var(--obs-light-ink) 14%,transparent);}
body.observatory[data-observatory-kind="home"] .obs-ruler i::after{content:"";position:absolute;inset:0;background:var(--obs-copper);transform-origin:left center;}
body.observatory[data-observatory-kind="home"] .obs-ruler b{display:block;margin-top:14px;font:600 var(--fs-micro)/1 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--obs-copper);}
body.observatory[data-observatory-kind="home"] .obs-ruler strong{display:block;margin-top:8px;font:400 clamp(20px,2.4vw,28px)/1.1 var(--font-display);color:var(--obs-light-ink);}
body.observatory[data-observatory-kind="home"] .obs-ruler[data-in] :is(b,strong){opacity:1!important;}
@media(max-width:900px){
 body.observatory[data-observatory-kind="home"] .obs-ruler{flex-direction:column;gap:18px;order:1;}
 body.observatory[data-observatory-kind="home"] .obs-ruler li{flex:none;}
 body.observatory[data-observatory-kind="home"] .obs-ruler i{width:calc(var(--w) * 10%);}
 body.observatory[data-observatory-kind="home"] .route-next-actions{order:2;}
}
/* ---------- Articles and the library (Observatory in Motion R3, spec §5.2, §5.3) ----------
   The finished state of every R3 block lives here; motion.css only moves it. */
/* The cover and the page art clip their own image, so its opening zoom (and Task 5's drift) stays in its frame. */
body.observatory :is(.obs-cover,.obs-page-art) picture{overflow:clip;}
/* The end of an article (spec §5.2). The series sits in the reading column, and its links drop R1's
   dark panel, which put dark ink on a near-black gradient. The next link becomes a forest card
   with the next article's cover: beside the words on wide screens, above them on phones. */
body.observatory .article-series{padding-top:24px;}
body.observatory .article-nav{grid-template-columns:minmax(0,1fr);gap:0;max-width:none;margin:12px 0 0;padding:0;}
body.observatory .article-nav>a{grid-column:auto;grid-row:auto;min-height:0;padding:20px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;text-align:start;}
body.observatory .article-nav .an-title{font:400 22px/1.2 var(--font-display);}
body.observatory .article-nav>a.an-next{--verify:var(--obs-copper);display:grid;grid-template:1fr auto auto 1fr/minmax(0,1fr) minmax(0,1fr);column-gap:28px;margin-block:24px;padding:0;border:0;background:var(--obs-forest);}
body.observatory .an-next>.obs-next-art{grid-row:1/-1;aspect-ratio:16/10;overflow:hidden;}
body.observatory .obs-next-art img{display:block;width:100%;height:100%;object-fit:cover;}
body.observatory .an-next>.an-dir{grid-row:2;color:var(--obs-copper);}
body.observatory .an-next>.an-title{grid-row:3;padding-inline-end:28px;font:400 clamp(26px,2.4vw,34px)/1.12 var(--font-display);color:var(--obs-light-ink);}
@media(max-width:700px){
 body.observatory .article-nav>a.an-next{grid-template:none/minmax(0,1fr);}
 body.observatory .an-next>.obs-next-art{grid-row:auto;}
 body.observatory .an-next>:is(.an-dir,.an-title){padding-inline:20px;}
 body.observatory .an-next>.an-dir{padding-top:20px;}
 body.observatory .an-next>.an-title{padding-bottom:24px;}
}
/* The Library's search sticks to the top (spec §5.3). site-nav.js adds the header's height as a
   translate while the header shows. The bar is opaque, with a hairline, over the lanes it filters,
   and lanes and rows keep clear of it when a jump or keyboard focus brings them into view. */
body.observatory .obs-library-search[data-under-nav]{position:sticky;top:0;z-index:140;padding-block:14px 12px;background:var(--bg-0);border-bottom:1px solid var(--line);transition:translate var(--t-element) var(--ease-out);}
/* observatory.js reveals the search after parsing. With scripting on, its place is held from the first
   paint, so revealing it moves nothing (CLS); without scripts it stays hidden and takes no room. */
@media (scripting:enabled){body.observatory .obs-library-search[hidden]{display:block!important;visibility:hidden;}}
body.observatory[data-observatory-kind="library"] :is(.library-lane,.library-row){scroll-margin-top:250px;}
@media(max-width:700px){
 body.observatory .obs-library-search :is(input,select){min-height:44px;}
 body.observatory[data-observatory-kind="library"] :is(.library-lane,.library-row){scroll-margin-top:215px;}
}
body.observatory .brand-mark{filter:none;}
/* About hero: beat register.css !important portrait layout so it takes the page-hero bands */
body.observatory .register-profile-release{min-height:0!important;grid-template-rows:auto;align-items:center!important;padding:70px max(6vw,calc((100vw - 1240px)/2))!important;}
body.observatory .register-profile-portrait{display:none;}
@media(max-width:900px){body.observatory .register-profile-release{padding:50px 28px!important;}}
@media(max-width:700px){body.observatory .register-profile-release{display:flex!important;align-items:stretch!important;padding:36px 22px 32px!important;}}
/* 3 Oct audit P1s: code in the Data face (DS-03); readable diagnostic stack (DS-04); copper on the garage/racetams dark islands (PG-02); /now/ ledgers two-column on tablets (PG-03) */
body.observatory :is(pre,code,kbd,samp){font-family:"Register Data",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
body.observatory .article-body .diagnostic-stack li{background:var(--bg-2);}
body.observatory.garage-page :is(.garage-hero,.garage-films){--garage-terracotta-light:#cf7a58;}
body.observatory .garage-films .garage-films-note a{color:var(--garage-terracotta-light);}
@media (min-width:701px) and (max-width:1050px){body.observatory :is(.status-ledger,.experiment-list) article{grid-template-columns:112px minmax(0,1fr);row-gap:8px}body.observatory :is(.status-ledger,.experiment-list) article>p{grid-column:2}}
