/* Shared visual language for the atlas. */
:root {
  --paper:#fdfcf9; --white:#fff; --ink:#213549; --blue:#385b75;
  --muted:#536371; --rule:#d6dee3; --rust:#94492e; --peach:#f7eee6;
  --al-mist:#f0f5f9; --al-pale:#f7fafc; --al-cream:#faf6ef;
  --al-edge:#b5c6d2; --al-copper:#aa6747; --al-focus:#784022;
}
body { background-color:var(--paper);color:var(--ink); }
.top { background:var(--white);border-bottom-color:var(--rule); }
.top nav a { color:var(--blue); }
.top nav a[aria-current="page"] { color:var(--ink);border-bottom-color:var(--rust); }
.brand b { color:var(--ink);letter-spacing:.035em; }
.brand small,.edition { color:var(--muted); }
.eyebrow,.over,.sectionhead .serial { color:var(--rust); }
h1,h2,h3 { text-wrap:pretty; }
.hero,.subhero,.ph-hero,.env-hero,.plan-hero,.strategy-hero {
  background-image:linear-gradient(100deg,rgba(255,255,255,0) 54%,rgba(241,246,250,.48) 100%);
}
:is(.hero,.subhero,.ph-hero,.env-hero,.plan-hero,.strategy-hero) h1 { color:var(--ink);letter-spacing:.013em; }
:is(.hero,.subhero,.ph-hero,.env-hero,.plan-hero,.strategy-hero) .lead { color:var(--muted);line-height:1.9; }
:is(.subhero,.ph-hero) .eyebrow::before,.hero .eyebrow::before { width:22px;height:1px;background:var(--al-copper); }
.button,button.action,.plan-actions :is(button[type="submit"],.button.primary) {
  background:var(--al-mist);color:var(--ink);border:1px solid #90a8b9;box-shadow:none;
}
.button:hover,button.action:hover,.plan-actions :is(button[type="submit"],.button.primary):hover {
  background:#e4eef5;color:#1a344a;border-color:var(--blue);
}
.outline:hover { color:var(--rust);background:var(--al-cream); }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid var(--al-focus);outline-offset:3px;
}
.plate,.atlas-landing-chart,.hierarchy,.strip,.ph-core,.plan-hero .plan-pin,.sf-maker {
  background:var(--al-mist);color:var(--ink);border:1px solid var(--rule);
  box-shadow:none;border-radius:3px;
}
.plate,.atlas-landing-chart,.hierarchy,.plan-hero .plan-pin,.strategy-figure {
  background-color:var(--al-pale);
  background-image:linear-gradient(90deg,rgba(255,255,255,.3),transparent 65%),
                   radial-gradient(#cedbe450 .75px,transparent .95px);
  background-size:100% 100%,12px 12px;
  border-top:2px solid #87a2b5;
}
.plate-bar,.alc-head { color:var(--muted);border-color:var(--rule); }
.plate figcaption,.alc-foot { color:var(--muted);border-color:var(--rule); }
.alc-head span:first-child,.alc-foot a { color:var(--rust); }
.atlas-landing-chart h2 { color:var(--ink); }
.hero .atlas-landing-chart p { color:var(--muted); }
.strip,.ph-core,.plan-hero .plan-pin,.sf-maker { border-inline-start:3px solid var(--al-copper); }
.strip .over,.ph-core b,.plan-hero .plan-pin :is(.over,.eyebrow,small) { color:var(--rust); }
.strip .goal,.ph-core p,.plan-hero .plan-pin :is(h2,h3,b,strong) { color:var(--ink); }
.plan-hero .plan-pin p,.hierarchy .hi-foot { color:var(--muted); }
.plan-hero .plan-pin a { color:var(--blue); }
.plan-hero .plan-pin a:focus-visible,.cx-tiny a:focus-visible { outline-color:var(--al-focus); }
.hierarchy .node { border-color:var(--al-edge);background:#fff;color:var(--ink); }
.hierarchy .node small { color:var(--muted); }
.hierarchy .node.active { border-inline-start:3px solid var(--al-copper);background:var(--al-cream); }
.hierarchy .node.active small { color:var(--rust); }
.ph-core p,.ph-core b { opacity:1; }
.sf-maker { background:#e8f0f6; }
.sf-maker b { color:var(--blue); }
.strategy-returns thead,.env-section thead th,.strategy-returns thead th {
  background:#e9f0f6;color:var(--ink);border-bottom:1px solid #aabdc9;
}
.strategy-returns tbody th,.env-section tbody th { color:var(--ink); }
.env-section tbody tr:nth-child(even) { background:var(--al-pale); }
.env-pref-controls,.premise-example,.phase-read,.chart-door { background:var(--al-mist); }
.env-notes,.ph-model,.reading-key,.stance-band { background:var(--al-cream); }
.ph-model,.ph-case-ref,.showroom-note,.ph-door { border-inline-start-color:var(--al-copper); }
.ph-word:target,.ph-group[open] summary { background:var(--al-mist); }
.ph-bridge,.ph-case-ref,.showroom-note { background:var(--al-cream); }
.env-bar i,.barrow .track { background:#e6edf1; }
.env-bar i::before,.track b { background:var(--blue); }
.env-bar + .env-bar i::before { background:var(--al-copper); }
.tile,.note-box,.casebox,.ep,.task,.work,.practice-tools,.strategy-figure,.plan-step,.plan-materials {
  border-color:var(--rule);
}
.tile:hover,.case-entry:hover,.episode-nav a:hover,.side a:hover,.ph-toc a:hover,.env-toc a:hover,.strategy-nav a:hover {
  background:var(--al-pale);color:var(--blue);
}
.side a[aria-current="page"],.ep:target,.casebox:target {
  background:var(--al-cream);border-inline-start-color:var(--rust);
}
.premise,.ph-section,.strategy-section,.env-section,.section { border-color:var(--rule); }
.ph-node,.ph-value-steps>article,.ph-case-notes>article,.strategy-actors>article,.strategy-case>article,.strategy-uses>article {
  border-color:var(--rule);border-top-color:var(--al-edge);
}
.strategy-case>article { border-top-color:var(--al-copper); }
.strategy-uses>article,.future-path-card.proven { background:var(--al-pale); }
.future-path-card.proposed { border-top-color:var(--al-copper); }
.plan-scenes label:has(input:checked) { background:var(--al-cream);border-color:var(--al-copper); }
.foot { background:#fbfbf8;color:var(--muted); }
.foot .wrap { line-height:1.7; }

/* Model diagram: replace presentation colors originally drawn for a navy ground. */
.plate svg g[fill="#f8f5ec"],.plate svg g[fill="#fff9f1"] { fill:var(--ink); }
.plate svg g[fill="#e5bd95"],.plate svg text[fill="#e5bd95"],.plate svg text[fill="#ead2b7"] { fill:var(--rust); }
.plate svg text[fill="#cdcec8"] { fill:var(--muted); }
.plate svg g[stroke="#8fa2aa"],.plate svg path[stroke="#81919b"] { stroke:#7591a5; }
.plate svg path[stroke="#425666"],.plate svg path[stroke="#506572"] { stroke:#cad8e1; }
.plate svg path[stroke="#ebc8a2"] { stroke:var(--al-copper); }
.plate svg path[fill="#294355"] { fill:#edf3f7; }
.plate svg path[stroke="#a9b7bd"] { stroke:#8aa0b1; }

/* The same numeric series, including the mobile thumbnail, always uses dark ink on a light plot. */
.note-box .atlas-thumb,.cx-tiny { background:var(--al-pale);color:var(--ink);border:1px solid var(--rule); }
.thumb-grid { stroke:#aebfc9;stroke-width:.8; }
.thumb-area { fill:#93b0c5;opacity:.21; }
.thumb-line { fill:none;stroke:#486a85;stroke-width:2.3; }
.thumb-axis { fill:var(--muted); }
.thumb-val { fill:var(--ink);paint-order:stroke;stroke:#f8fafc;stroke-width:2.8;stroke-linejoin:round; }
.thumb-dot { fill:#fff;stroke:#45667e;stroke-width:2; }
.atlas-thumb a:hover .thumb-dot,.atlas-thumb a:focus .thumb-dot,.cx-tiny a.mini-active .thumb-dot { fill:var(--al-copper);stroke:#463222;stroke-width:2.5; }
.cx-tinybar button { color:var(--blue);border-color:var(--al-edge);background:var(--white); }
.cx[data-cx-ready] .cx-controls { background:#f2f5f8; }
.cx-svg .cx-grid { stroke:#cedae2; }
.cx-svg .cx-line { stroke:#466985; }
.cx-svg .cx-val,.cx-svg .cx-band,.cx-svg .cx-lane,.cx-svg .cx-lanehead { fill:var(--ink); }
.cx-point.is-active .cx-val,.cx-point:hover .cx-val { fill:var(--rust); }
.cx-point.is-active .cx-dot,.cx-point:hover .cx-dot { fill:var(--rust); }
.cx-point:focus-visible .cx-ring { stroke:var(--ink);stroke-width:4; }
.cx-pair>section { background:var(--al-mist);border-left-color:#7492a8; }
.cx-pair>section+section { background:var(--al-cream);border-left-color:var(--al-copper); }
.cx-detail { border-top-color:var(--al-copper); }
@media (max-width:680px) {
  .hero,.subhero,.ph-hero,.env-hero,.plan-hero,.strategy-hero { background-image:none; }
  .plate,.atlas-landing-chart,.hierarchy,.plan-hero .plan-pin,.strategy-figure { background-size:100% 100%,14px 14px; }
  .hero .lead,.subhero .lead,.ph-hero .lead,.plan-hero .lead { font-size:1rem; }
}
@media print {
  body,.top,.foot,.hero,.subhero,.ph-hero,.env-hero,.plan-hero,.strategy-hero,
  .plate,.atlas-landing-chart,.hierarchy,.strip,.ph-core,.plan-hero .plan-pin,.sf-maker,
  .strategy-figure,.cx-detail,.note-box .atlas-thumb {
    color:#152e40;background:white;box-shadow:none;
  }
  .thumb-val { stroke:white; }
}

/* Paper spacing and a single high-emphasis action where a decision is made. */
@media screen {
  .env-intro { background:linear-gradient(100deg,transparent 54%,rgba(241,246,250,.48)); }
  .env-intro .env-figure { background:var(--al-pale);border-top:2px solid var(--al-edge); }
  .subhero { padding-block:clamp(24px,3.3vw,42px); }
  .subhero h1 { max-width:28em;font-size:clamp(29px,3.75vw,48px);line-height:1.42; }
  :is(.hero,.env-intro,.strategy-hero,.plan-hero,.ph-hero) .back,
  .subhero .back { display:inline-block;margin-bottom:.2rem; }
  .side { border-top:2px solid var(--al-edge); }
  .sectionhead .serial,.ep-no,.case-letter { color:var(--rust); }
  .ep,.plan-row { scroll-margin-top:1.1rem; }
  .ep:target,.casebox:target { box-shadow:inset 1px 0 var(--rust); }
  .strategy-nav,.ph-toc,.env-toc,.episode-nav,.cx-controls { color:var(--muted); }
  .view-index .hero .actions > .button:first-child,
  .view-future .plan-actions button[type="submit"] {
    background:var(--ink);border-color:var(--ink);color:white;
  }
  .view-index .hero .actions > .button:first-child:hover,
  .view-future .plan-actions button[type="submit"]:hover { background:#354f63; }
}
@media screen and (min-width:900px) {
  .section { padding-block:clamp(37px,3.8vw,58px); }
  .railcards,.strategy-case,.strategy-actors,.strategy-uses { gap:clamp(13px,1.6vw,20px); }
  .tile { padding:clamp(16px,1.8vw,24px);border-top-width:2px; }
  .tile h3 { font:600 clamp(18px,1.65vw,22px)/1.55 var(--serif); }
}
@media screen and (max-width:680px) {
  .env-intro { background:none; }
  .subhero { padding-block:20px 23px; }
  .subhero h1 { font-size:clamp(25px,7.2vw,35px); }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .tile { transition:none; }
  .tile:hover { transform:none; }
}
@media (forced-colors:active) {
  .thumb-line,.cx-svg .cx-line,.thumb-grid { stroke:CanvasText; }
  .thumb-axis,.thumb-val,.cx-svg text { fill:CanvasText;stroke:none; }
  .thumb-dot,.cx-point .cx-dot { fill:Canvas;stroke:CanvasText; }
  .cx-point.is-active .cx-ring { stroke:Highlight; }
}

@media (max-width:800px) { .cx-controls select, .cx-controls button, .cx-tinybar button { min-height:44px; } }

/* Bright paper, clear groups and an illustration that explains field work. */
:root { --paper:#fff; --white:#fff; --al-mist:#f2f7fc; --al-pale:#fbfdff; --al-cream:#fff9f2; --rule:#dce5ed; }
body { background:#fff; }
.plate,.atlas-landing-chart,.hierarchy,.strategy-figure { background-image:none; background-color:#f8fbff; }
.atlas-landing-chart { border-color:#d0dfec;border-top-color:#87a8c5; }
.fh-intro { background:radial-gradient(ellipse at 90% 36%,#f3f8fd 0,transparent 56%); }
.fh-path>ol>li { border-bottom-color:#dce6ee; }
.fh-status { color:#526d84; }
.fh-path>ol>li>p { font-size:.95rem; }
.fh-research small,.fh-status { font-size:.82rem; }
.plate-bar,.alc-head,.alc-foot,.plate figcaption,.cite,.source,.plan-source { font-size:max(13px,.83rem); }
.premise-steps>li { background:#f8fbff;padding:18px;border:1px solid #dce6ee; }
.premise-steps>li:nth-child(2) { background:#fffaf4;border-color:#e9ded2; }
.premise-steps>li:nth-child(3) { background:#f9f9fd;border-color:#e0e0ed; }
.plan-hero { grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);gap:36px;align-items:center; }
.plan-hero .plan-illustrated { padding:0;border:1px solid #dce5ee;background:#fff;overflow:hidden; }
.plan-illustrated img { width:100%;height:auto;display:block; }
.plan-hero .plan-pin-copy { padding:14px 20px 16px; }
.plan-hero .plan-pin-copy h2 { font-size:20px;line-height:1.55; }
.plan-hero .plan-pin-copy p { font-size:14px;line-height:1.75;margin:7px 0 0; }
.stance-band { background:#fffaf4;border:1px solid #e9e0d5;border-inline-start:3px solid #b18560; }
.stance-sequence { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;padding:0;margin:20px 0 14px; }
.stance-sequence li { position:relative;display:block;padding:12px 14px;background:white;border:1px solid #e3ddd4;line-height:1.65; }
.stance-sequence li::before { display:none; }
.stance-sequence li:not(:last-child)::after { content:'→';position:absolute;right:-15px;top:39%;color:#a97c52;font-size:16px; }
.stance-sequence small { display:block;color:#8c6141;font-size:13px;font-weight:600; }
.stance-sequence strong { display:block;color:#314b62;font-size:16px;font-weight:600;margin-top:5px; }
.future-path-card { display:flex;flex-direction:column; }
.future-path-card>.smalllink:last-child { margin-top:auto; padding-top:12px; }
.future-path-card.proposed { background:#fff;border-top:3px solid #b9cce0; }
.future-path-card.proposed:nth-child(2n) { border-top-color:#d5b798; }
@media(max-width:800px) {
 .plan-hero { grid-template-columns:1fr;gap:20px; }
 .plan-hero .plan-illustrated { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center; }
 .plan-hero .plan-pin-copy { padding:12px; }
 .plan-hero .plan-pin-copy h2 { font-size:18px; }
 .plan-hero .plan-pin-copy p { font-size:13px; }
 .stance-sequence { grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
 .stance-sequence li::after { display:none; }
}
@media(max-width:600px) {
 .plan-hero .plan-illustrated { display:block; }
 .plan-illustrated img { max-height:235px;object-fit:cover;object-position:center; }
 .plan-hero .plan-pin-copy h2 br { display:none; }
 .plan-hero .plan-pin-copy { padding:12px 16px; }
 .tile h3,.tile p,.ep dd,.work p,.item p,.loop-row p,.chart-door p,.subhero .lead { font-size:16px; }
 .tile h3 { font-size:18px; }
 .railcards { grid-template-columns:1fr; }
 .stance-band { padding:18px 16px; }
 .stance-sequence li { padding:11px; }
 .stance-sequence strong { font-size:15px; }
 .cx-meter { grid-template-columns:1fr; }
 .brand small { font-size:11px;letter-spacing:.07em; }
 .episode-nav a { font-size:14px;min-height:44px; }
}
@media print { .plan-illustrated img { max-height:200px;object-fit:contain; } }
html { scroll-behavior:auto; }
.plan-hero .plan-pin-copy { padding-block:12px; }

.view-future .plan-actions button[type="submit"]:hover { color:#fff; }
