:root{--accent:#6b5c3e;--accent-dim:#efe9dd;--ink:#1c1a16;--mut:#4a453e;--faint:#5c564c;--line:#d9d2c4;--bg:#faf7f0;--paper:#fffdf8;--link:#4a3214;--focus-ring:color-mix(in srgb,var(--accent) 85%,#1c1a16)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
/* Paper presence: warm base + almost-invisible grain (CSS-only; print overrides to white). */
body{margin:0;font-family:Georgia,'Iowan Old Style','Palatino Linotype',serif;color:var(--ink);line-height:1.6;
  background-color:var(--bg);
  background-image:
    radial-gradient(circle at 18% 22%, rgba(90,70,40,.028) 0, transparent 42%),
    radial-gradient(circle at 78% 68%, rgba(90,70,40,.022) 0, transparent 48%),
    repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(28,26,22,.012) 2px, rgba(28,26,22,.012) 3px),
    repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(28,26,22,.008) 3px, rgba(28,26,22,.008) 4px);
  background-attachment:fixed}
.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus,.skip:focus-visible{position:fixed;left:8px;top:8px;width:auto;height:auto;overflow:visible;background:var(--paper);color:var(--ink);padding:10px 14px;z-index:100;border:2px solid var(--accent);border-radius:6px;font-family:system-ui,sans-serif;font-size:14px;text-decoration:none;box-shadow:0 4px 16px rgba(28,26,22,.12)}
a{color:var(--link)}a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
a:focus:not(:focus-visible),button:focus:not(:focus-visible),select:focus:not(:focus-visible),input:focus:not(:focus-visible){outline:none}
.hubnav{border-bottom:2px solid var(--accent);background:var(--paper)}
.hubnav nav{max-width:880px;margin:0 auto;padding:12px 20px;display:flex;flex-wrap:wrap;gap:4px 18px}
.hubnav a{font-family:system-ui,sans-serif;font-size:13px;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;color:var(--mut);padding:6px 2px;min-height:44px;display:inline-flex;align-items:center}
.hubnav a[aria-current]{color:var(--accent);font-weight:700}
.hubnav a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px;border-radius:3px}
main{max-width:880px;margin:0 auto;padding:24px 20px 48px}
/* Progressive “Read this page” — enhance.js only; print/no-JS omit. */
.listen-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-family:system-ui,sans-serif;font-size:13px;color:var(--mut);margin:0 0 16px;padding:0 0 12px;border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent)}
.listen-btn{font-family:system-ui,sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:8px 14px;min-height:40px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.listen-btn:hover{border-color:var(--accent);color:var(--accent)}
.listen-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.listen-btn[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 12%,var(--paper));border-color:var(--accent);color:var(--accent)}
.listen-status{font-size:12px;color:var(--faint);font-style:italic}
.crumb{font-family:system-ui,sans-serif;font-size:13px;margin:0 0 8px}
.hero{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:24px}
.hero h1{font-size:34px;line-height:1.1;margin:.2em 0;border-left:6px solid var(--accent);padding-left:14px}
.hero.rig h1{margin-bottom:.1em}
.lede{font-size:18px;color:var(--mut);margin:.4em 0}
.lede-more{font-size:16px;color:var(--mut);margin:.5em 0 0;line-height:1.5;max-width:52rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;font-family:system-ui,sans-serif;font-size:14px;background:var(--accent);color:#fff;padding:9px 16px;border-radius:6px;text-decoration:none}
.btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
.btn.ghost{background:transparent;color:var(--link);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}
h2{font-size:22px;margin:1.4em 0 .5em}h3{font-size:17px;margin:1.1em 0 .3em}
.hint{font-size:14px;color:var(--faint);font-style:italic}
.startflow{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.startflow li{flex:1 1 130px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:system-ui,sans-serif;font-size:13px}
.startflow.tall li{display:flex;gap:10px;align-items:flex-start;flex-basis:100%}
.startflow.tall p{margin:.2em 0 0;color:var(--mut)}
.sh-n{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;align-items:center;justify-content:center;font-size:12px;margin-right:6px;flex:none}
.domaingrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
/* Card depth: soft lift + slight zoom + multi-layer shadow; --mx/--my for light magnetic (JS). */
.domaincard{--mx:0px;--my:0px;display:flex;flex-direction:column;gap:4px;min-height:7.5rem;border:1px solid color-mix(in srgb,var(--line) 88%,var(--accent) 12%);border-left:6px solid var(--accent);border-radius:9px;padding:15px 15px 14px;background:linear-gradient(165deg,#fffefb 0%,var(--paper) 55%,#faf6ee 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 1px 2px rgba(28,26,22,.04),0 2px 6px rgba(28,26,22,.03);text-decoration:none;color:var(--ink);transform:translate3d(var(--mx),var(--my),0);transition:border-color .18s ease,box-shadow .18s ease,transform .18s cubic-bezier(.2,.7,.2,1),opacity .18s ease;will-change:transform}
.domaincard:hover,.domaincard:focus-visible{border-color:var(--accent);z-index:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 1px 0 rgba(28,26,22,.04),0 4px 10px rgba(28,26,22,.06),0 12px 28px rgba(28,26,22,.09);transform:translate3d(var(--mx),calc(var(--my) - 3px),0) scale(1.02)}
.domaincard:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:3px}
.domaingrid:has(.domaincard:hover) .domaincard:not(:hover):not(.dim),
.domaingrid:has(.domaincard:focus-visible) .domaincard:not(:focus-visible):not(.dim){opacity:.58}
.domaincard.dim{opacity:.48;pointer-events:none;box-shadow:none;background:var(--paper);transform:none}
.domaincard.dim:hover,.domaincard.dim:focus-visible{transform:none;box-shadow:none;border-color:var(--line)}
.dc-name{font-size:20px;font-weight:700;line-height:1.2;letter-spacing:-.01em;order:2}
.dc-verb{font-family:system-ui,sans-serif;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);order:1}
.dc-q{color:var(--mut);font-size:14px;line-height:1.45;order:3}
.dc-count{font-family:system-ui,sans-serif;font-size:11.5px;color:var(--faint);margin-top:auto;padding-top:6px;order:4}
/* min(290px,100%) not a bare 290px: a fixed track floor is wider than a 320px viewport's content
   box and pushes the whole page into horizontal scroll. */
.rigcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(290px,100%),1fr));gap:14px}
.rigcard{--mx:0px;--my:0px;display:flex;flex-direction:column;border:1px solid color-mix(in srgb,var(--line) 90%,var(--accent) 10%);border-radius:11px;background:linear-gradient(180deg,#fffefb 0%,var(--paper) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 1px 2px rgba(28,26,22,.04),0 2px 6px rgba(28,26,22,.03);text-decoration:none;color:var(--ink);overflow:hidden;transform:translate3d(var(--mx),var(--my),0);transition:border-color .18s ease,box-shadow .18s ease,transform .18s cubic-bezier(.2,.7,.2,1),opacity .18s ease;will-change:transform}
.rigcard:hover,.rigcard:focus-visible{border-color:var(--accent);z-index:1;box-shadow:inset 0 3px 0 var(--accent),0 1px 0 rgba(28,26,22,.04),0 4px 12px rgba(28,26,22,.06),0 14px 30px rgba(28,26,22,.08);transform:translate3d(var(--mx),calc(var(--my) - 3px),0) scale(1.02)}
.rigcard:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:3px}
.rigcards:has(.rigcard:hover) .rigcard:not(:hover),
.rigcards:has(.rigcard:focus-visible) .rigcard:not(:focus-visible){opacity:.6}
.rc-head{display:flex;align-items:baseline;gap:8px;padding:15px 16px 0}
.rc-name{flex:1;min-width:0;font-size:19px;font-weight:700;line-height:1.25;letter-spacing:-.01em}
.rc-head .badge{margin-left:0;flex:none}
/* Clamping rule for this card, learned the hard way (twice): -webkit-line-clamp draws the ellipsis
   but does NOT constrain height when the clamped element is a flex item — the extra line renders
   underneath and collides with the plate below. So the clamp always sits on a NON-flex inner
   element. Likewise -webkit-line-clamp only; the standard `line-clamp` shorthand also stops
   clipping in current Chrome. Unsupported browsers simply show the full text (never truncated). */
.rc-purpose{padding:6px 16px 14px;overflow:hidden}
.rc-purpose>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;color:var(--mut);font-size:15px;line-height:1.5}
/* NOT --accent-dim: every domain's accent_dim in the DB is a DARK value (it was authored for the
   dark /build UI), so tinting a light-theme surface with it renders ink-on-near-black. Warm neutral
   first, then an optional domain-tinted mix for browsers that have color-mix. */
.rc-vitals{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:auto;padding:11px 16px;border-top:1px solid var(--line);background:#f4efe2;background:color-mix(in srgb,var(--accent) 9%,#fffdf8)}
.rc-vital{min-width:0;overflow:hidden}
.rc-vital b{display:block;font-family:system-ui,sans-serif;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}
.rc-vital i{margin-top:2px;font-style:normal;font-size:13px;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.rc-foot{display:flex;align-items:center;gap:10px;padding:9px 16px 10px;border-top:1px solid var(--line);font-family:system-ui,sans-serif;font-size:11.5px;color:var(--mut)}
.rc-meta{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-go{flex:none;color:var(--accent);font-size:14px;transition:transform .15s ease}
.rigcard:hover .rc-go,.rigcard:focus-visible .rc-go{transform:translateX(3px)}
@media (max-width:360px){.rc-vitals{grid-template-columns:1fr 1fr}.rc-vital:last-child{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){
  .rigcard,.domaincard,.rc-go,.door-go,.pane-shard,.pane-link{transition:none}
  .rigcard,.domaincard{--mx:0px!important;--my:0px!important;transform:none!important;will-change:auto}
  .rigcard:hover,.rigcard:focus-visible,.domaincard:hover,.domaincard:focus-visible{transform:none!important}
  .rigcard:hover .rc-go,.rigcard:focus-visible .rc-go{transform:none}
}
.badge{display:inline-block;font-family:system-ui,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:var(--accent);color:#fff;border-radius:4px;padding:1px 6px;margin-left:8px;vertical-align:middle}
.specstrip{display:flex;flex-wrap:wrap;gap:4px 18px;font-family:system-ui,sans-serif;font-size:12px;color:var(--mut)}
.specstrip b{color:var(--faint);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-right:4px}
.specstrip.big{gap:14px 22px;font-size:15px;margin-top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fffefb 0%,#f6f0e4 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.specstrip.big i{font-style:normal;font-weight:700;font-size:16px;color:var(--ink);letter-spacing:-.01em}
.specstrip.big em{display:block;font-style:normal;color:var(--faint);font-size:12px;margin-top:3px;line-height:1.4}
.specstrip.big span{flex:1 1 200px;min-width:0}
.metastrip{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;font-family:system-ui,sans-serif;font-size:12px;color:var(--mut)}
.metastrip b{color:var(--faint);text-transform:uppercase;letter-spacing:.05em;margin-right:4px;font-weight:600}
.beingbuilt{margin-top:30px;border-top:1px solid var(--line);padding-top:16px}
.beingbuilt h2{font-size:17px;margin:0}
.beingbuilt .hint{margin:.3em 0 0}
.bblist{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.bblist li{font-family:system-ui,sans-serif;font-size:12px;color:var(--mut);background:var(--paper);border:1px dashed var(--line);border-radius:999px;padding:4px 12px}
/* Long-rig section rhythm — quiet anchors for scan, not chrome. */
.rsec{margin:36px 0 0;padding:18px 0 4px;border-top:1px solid color-mix(in srgb,var(--line) 85%,transparent)}
.rsec:first-of-type{margin-top:20px}
.rsec>h2{margin-top:0;padding-left:12px;border-left:3px solid color-mix(in srgb,var(--accent) 55%,var(--line));line-height:1.25}
.hero.rig+.rsec,.hero.rig~.rig-toc+.rsec{border-top:none;padding-top:8px}
.pathblock,.laneblock{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:12px 0;background:var(--paper)}
.pathh,.laneh{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:0}
.pathcost{font-family:system-ui,sans-serif;font-size:13px;color:var(--accent);margin-left:auto}
.lanetext{white-space:pre-line;color:var(--mut)}
.integration{border-left:3px solid var(--accent);padding-left:12px;margin:12px 0}
.manifest{margin-top:8px}
.mrow{display:flex;gap:14px;border-bottom:1px solid var(--line);padding:12px 0}
.mrole{flex:0 0 110px;font-family:system-ui,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);padding-top:2px}
.mcore{flex:1}.mcore-h{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.mcore-name{font-weight:700}.mprice{font-family:system-ui,sans-serif;font-size:13px;color:var(--accent);white-space:nowrap}
.mnote{margin:.3em 0;color:var(--mut);font-size:15px}
.swaps{margin-top:6px}.swaps summary{font-family:system-ui,sans-serif;font-size:12px;color:var(--accent);cursor:pointer}
.swap{border-left:2px solid var(--accent-dim);padding:6px 0 6px 12px;margin:6px 0}
.swap-name{font-weight:600}.swap-price{font-family:system-ui,sans-serif;font-size:12px;color:var(--accent);margin-left:8px}
.swap-note{display:block;color:var(--mut);font-size:14px}
.sequence{list-style:none;padding:0;margin:8px 0 0;counter-reset:none}
.step{display:flex;gap:14px;align-items:flex-start;border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent);padding:16px 4px 16px 0}
.step:last-child{border-bottom:none}
.step input{margin-top:5px;width:20px;height:20px;flex:none;accent-color:var(--accent)}
.step input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.step label{cursor:pointer;flex:1;min-width:0}
.step-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.step-n{font-family:system-ui,sans-serif;font-weight:700;font-size:13px;color:var(--accent);min-width:1.6em}
.step-t{font-weight:700;font-size:16px;line-height:1.3}.step-time{font-family:system-ui,sans-serif;font-size:12px;color:var(--faint);margin-left:auto}
.step-d{display:block;color:var(--mut);font-size:15px;line-height:1.55;margin-top:.35em}
.step input:checked ~ label{opacity:.62}
.step.step-done label{opacity:.55}
.step.step-done .step-t{text-decoration:line-through;text-decoration-color:var(--line)}
.step.step-done .step-n{background:var(--accent);color:#fff;border-radius:4px;padding:0 5px}
/* Sticky “On this page” toc — enhance.js only; never required for content. */
.rig-toc{position:sticky;top:0;z-index:5;font-family:system-ui,sans-serif;font-size:12.5px;background:rgba(255,253,248,.96);border:1px solid var(--line);border-radius:10px;padding:10px 14px 11px;margin:4px 0 20px;box-shadow:0 1px 0 rgba(28,26,22,.04),0 6px 16px rgba(28,26,22,.05);backdrop-filter:blur(6px)}
.rig-toc-label{display:block;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-size:10px;font-weight:600;margin-bottom:6px}
.rig-toc nav,.rig-toc [role="list"]{display:flex;flex-wrap:wrap;gap:6px 14px}
.rig-toc a{color:var(--mut);text-decoration:none;padding:6px 2px;min-height:36px;display:inline-flex;align-items:center;border-bottom:1px solid transparent}
.rig-toc a:hover,.rig-toc a:focus-visible{color:var(--accent);border-bottom-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.rig-toc a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:2px}
@media (max-height:520px){.rig-toc{position:static;box-shadow:none}}
.continue-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-family:system-ui,sans-serif;font-size:13px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:10px 14px;margin:0 0 18px;color:var(--mut);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.continue-banner a{font-weight:600;color:var(--link)}
.continue-banner button{font-family:system-ui,sans-serif;font-size:12px;background:transparent;border:1px solid var(--line);border-radius:5px;padding:6px 10px;min-height:36px;cursor:pointer;color:var(--mut);margin-left:auto}
.continue-banner button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
/* Phase B — client-side Compass filters (domain .rigcards only; enhance.js). */
.compass-filters{font-family:system-ui,sans-serif;font-size:13px;background:linear-gradient(180deg,#fffefb 0%,var(--paper) 100%);border:1px solid var(--line);border-radius:10px;padding:12px 14px 13px;margin:0 0 16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.compass-filters-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-bottom:10px}
.compass-filters-title{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}
.compass-filters-count{font-size:12px;color:var(--mut)}
.compass-filters-count.is-active{color:var(--accent);font-weight:600}
.compass-filters-controls{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}
.compass-field{display:flex;flex-direction:column;gap:3px;min-width:min(140px,100%)}
.compass-field label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--faint)}
.compass-field select{font-family:system-ui,sans-serif;font-size:13px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 28px 8px 9px;min-height:40px;max-width:100%;appearance:auto}
.compass-field select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-color:var(--accent)}
.compass-field select.is-set{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 6%,#fff)}
.compass-reset{font-family:system-ui,sans-serif;font-size:12px;background:transparent;border:1px solid var(--line);border-radius:6px;padding:8px 12px;min-height:40px;cursor:pointer;color:var(--mut);align-self:flex-end}
.compass-reset:hover,.compass-reset:focus-visible{border-color:var(--accent);color:var(--accent)}
.compass-reset:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.compass-reset:disabled{opacity:.45;cursor:default;border-color:var(--line);color:var(--faint)}
.rigcard.is-filtered-out{display:none!important}
.compass-empty{font-family:system-ui,sans-serif;font-size:14px;color:var(--mut);background:var(--paper);border:1px dashed var(--line);border-radius:8px;padding:14px 16px;margin:4px 0 8px}
.compass-empty[hidden]{display:none!important}
.compass-empty a,.compass-empty button{font-family:inherit;font-size:inherit;font-weight:600;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline}
.doors-nudge{font-family:system-ui,sans-serif;font-size:14px;color:var(--mut);margin:14px 0 0}
.doors-nudge a,.doors-nudge-inline a{font-weight:600}
.doors-nudge-inline{margin-top:10px}
.grace-doors .grace-doors-grid{grid-template-columns:repeat(2,1fr);gap:14px}
.grace-door{border-left:4px solid var(--accent);background:linear-gradient(165deg,#fffefb 0%,var(--paper) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 1px 3px rgba(28,26,22,.04);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.grace-door:hover,.grace-door:focus-visible{box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 4px 14px rgba(28,26,22,.07);transform:translateY(-1px)}
@media (max-width:760px){.grace-doors .grace-doors-grid{grid-template-columns:1fr}}
.datatable{margin:14px 0}table{border-collapse:collapse;width:100%;font-size:14px}
/* Same accent_dim trap as .rc-vitals: on a rig page the domain sets --accent-dim to a DARK value,
   which rendered these header cells as near-black ink on near-black ground (~1.4:1) on every live
   rig page with a table. Warm neutral + optional domain tint instead. */
.datatable th,.matrix th{background:#f1eade;background:color-mix(in srgb,var(--accent) 14%,#fffdf8);text-align:left}
.datatable th,.datatable td,.matrix th,.matrix td{border:1px solid var(--line);padding:6px 9px}
.matrix-wrap{overflow-x:auto}.matrix{font-family:system-ui,sans-serif;font-size:12px}.matrix td{text-align:center}
.echo{border:1px solid color-mix(in srgb,var(--line) 70%,var(--accent) 30%);border-left:5px solid var(--accent);background:linear-gradient(135deg,#fbf8f1 0%,var(--paper) 55%,#f7f2e8 100%);padding:14px 16px;margin:14px 0;border-radius:0 10px 10px 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.echo-h{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:4px}
.echo-t{font-weight:700;font-size:16px;font-style:italic}
.echo-dur{font-family:system-ui,sans-serif;font-size:12px;color:var(--faint)}
.echo p{margin:.4em 0 0;color:var(--mut);line-height:1.6}
.feedtrace{list-style:none;padding:0}
.feed{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.feed-dir{font-weight:700;color:var(--accent)}
.feed-type{font-family:system-ui,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#fff;background:var(--faint);border-radius:4px;padding:1px 6px}
.feed-material .feed-type{background:#9a6a2a}.feed-energy .feed-type{background:#b8860b}.feed-information .feed-type{background:#3a6ea5}.feed-community .feed-type{background:#4a7a5a}
.feed-link{font-weight:600}.feed-desc{flex:1 1 100%;color:var(--mut);font-size:14px}
.refitem{margin:8px 0}.ref-label{margin:.2em 0;font-weight:600}
.ref-links a{font-family:system-ui,sans-serif;font-size:12px;border:1px solid var(--line);border-radius:5px;padding:2px 8px;margin-right:6px;text-decoration:none;display:inline-block;color:var(--mut)}
.lexicon dt{font-weight:700;margin-top:12px}.lexicon dd{margin:0 0 6px;color:var(--mut)}
.printblock{margin-top:32px;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-family:system-ui,sans-serif;font-size:11px;color:var(--faint)}
.printblock code{font-size:11px}
.hubfoot{border-top:1px solid var(--line);background:var(--paper);font-family:system-ui,sans-serif;font-size:12px;color:var(--faint)}
.hubfoot p{max-width:880px;margin:0 auto;padding:14px 20px}
.hubfoot-nav{padding-bottom:0!important}
.hubfoot-nav a{color:var(--mut);text-decoration:none;text-transform:uppercase;letter-spacing:.06em;font-size:12px;padding:6px 2px;min-height:36px;display:inline-flex;align-items:center}
.hubfoot-nav a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:2px}
.hubfoot-nav a:hover{color:var(--accent)}
.press-wrap{overflow-x:auto;margin-top:8px}
.presstable{width:100%;border-collapse:collapse;font-family:system-ui,sans-serif;font-size:13px}
.presstable th,.presstable td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.presstable th{color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:11px}
.presstable tr.press-detail td{border-bottom:2px solid var(--line);padding-top:0;padding-bottom:12px;color:var(--faint);font-size:12px}
.press-hash,.press-full{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}
.press-full{color:var(--mut)}
.storystrip{margin-top:32px;border-top:1px solid var(--line);padding-top:18px}
.workcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.workcard{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--paper);text-decoration:none;color:var(--ink)}
.wc-kind{font-family:system-ui,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700}
.wc-title{font-size:18px;font-weight:700;line-height:1.2}.wc-summary{color:var(--mut);font-size:14px}
.wc-meta{font-family:system-ui,sans-serif;font-size:11px;color:var(--faint)}
.revline{font-family:system-ui,sans-serif;font-size:13px;color:var(--faint);margin:.2em 0}
.sharerow{font-family:system-ui,sans-serif;font-size:13px;color:var(--mut);margin-top:18px}
.worka{font-size:17px;line-height:1.7}.worka p{margin:0 0 1em}
.curloop{margin:0 0 22px}.curloop h3{display:flex;align-items:center;gap:8px;margin-bottom:.2em}
.loopflow{list-style:none;padding:0;max-width:560px}
.loopstep{border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:10px 14px;margin:0 0 6px;background:var(--paper)}
.ls-station{display:block;font-weight:700}.ls-carries{display:block;color:var(--mut);font-size:14px}
.ls-arrow{display:block;font-family:system-ui,sans-serif;font-size:12px;color:var(--accent);margin-top:4px}
.ls-loop{color:var(--faint)}
.revblock{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}
.revdate{font-family:system-ui,sans-serif;font-size:13px;color:var(--faint);font-weight:400}
.revhash{font-family:ui-monospace,monospace;font-size:11px;color:var(--faint);word-break:break-all}
/* ── the manifesto (site root) — same paper, same ink, one notch more ceremonial ── */
.manif-mast{text-align:center;padding:30px 0 28px;border-bottom:1px solid var(--line)}
.manif-kicker{font-family:system-ui,sans-serif;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0 0 16px}
.manif-mast h1{font-size:clamp(42px,7vw,62px);line-height:1.05;margin:0 auto;padding:16px 30px;border-top:3px double var(--accent);border-bottom:3px double var(--accent);display:inline-block;letter-spacing:.02em}
.manif-lede{font-size:20px;color:var(--mut);max-width:34em;margin:18px auto 0}
.manif-ctas{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.manif-stats{font-family:system-ui,sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:16px 0 0}
.manif-cols{display:grid;grid-template-columns:1.15fr .85fr;gap:14px 36px;align-items:start}
.manif-prose p,p.manif-prose{margin:0 0 1em;color:var(--mut);font-size:17px;line-height:1.7;max-width:64ch}
.manif-quote{font-size:21px;font-style:italic;line-height:1.5;color:var(--ink);border-left:4px solid var(--accent);padding:4px 0 4px 18px;margin:6px 0 0}
.manif-quote.wide{margin:0 0 14px;max-width:44ch}
.manif-arks{display:flex;justify-content:center;flex-wrap:wrap;gap:34px;margin:26px 0 6px}
.manif-ark{margin:0;text-align:center}
.manif-ark svg{width:76px;height:76px}
.ga-ink{fill:none;stroke:var(--ink);opacity:.45;stroke-width:1.5}
.ga-strike{stroke:var(--accent);stroke-width:2.5;opacity:.8}
.manif-ark figcaption{font-family:system-ui,sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-top:8px}
.manif-pane-fig{margin:22px 0 12px}
.pane-svg{display:block;width:100%;height:auto}
.pane-link{cursor:pointer;outline:none}
.pane-link:focus-visible .pane-shard{stroke-width:2.4;stroke-opacity:1;fill-opacity:.62}
/* Live presence: clearer base fill; hover/focus + sibling dim (CSS :has + enhance.js caption). */
.pane-shard{fill-opacity:.30;stroke-width:1.65;stroke-opacity:.85;transition:fill-opacity .18s ease,stroke-width .18s ease,stroke-opacity .18s ease}
.pane-link:hover .pane-shard,.pane-link:focus-visible .pane-shard,.pane-link.pane-hot .pane-shard,.pane-shard.pane-hot{fill-opacity:.60;stroke-width:2.15;stroke-opacity:1}
.pane-svg:has(.pane-link:hover) .pane-link:not(:hover) .pane-shard:not(.dim),
.pane-svg:has(.pane-link:focus-visible) .pane-link:not(:focus-visible) .pane-shard:not(.dim),
.pane-svg.pane-focusing .pane-link:not(.pane-hot) .pane-shard:not(.dim),
.pane-svg.pane-focusing .pane-shard:not(.pane-hot):not(.dim){fill-opacity:.14;stroke-opacity:.55}
.pane-shard.dim{fill-opacity:.09;stroke-dasharray:4 3;stroke-opacity:.55;pointer-events:none}
/* One-shot settle on first paint (disabled under reduced-motion). */
@keyframes pane-settle{from{opacity:0}to{opacity:1}}
.pane-svg.pane-enter{animation:pane-settle .55s ease both}
@media (prefers-reduced-motion:reduce){
  .pane-svg.pane-enter{animation:none}
  .pane-shard,.pane-link{transition:none}
}
.manif-pane-fig figcaption{margin-top:10px}
.pane-caption{min-height:1.4em;transition:color .15s ease}
.pane-caption.is-active{color:var(--ink);font-style:normal}
.manif-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.manif-chip{display:inline-flex;align-items:center;gap:7px;font-family:system-ui,sans-serif;font-size:12.5px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:4px 12px;text-decoration:none}
.manif-chip i{width:9px;height:9px;border-radius:50%;background:var(--dc,var(--accent));flex:none}
.manif-chip span{color:var(--faint)}
a.manif-chip:hover{border-color:var(--dc,var(--accent))}
.manif-chip.dim{opacity:.55;border-style:dashed}
.manif-laws{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.manif-law{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:14px 16px}
.manif-law b{font-size:17px}
.manif-law p{margin:.4em 0 0;color:var(--mut);font-size:15px;line-height:1.55}
.manif-doors{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.manif-door{position:relative;padding-right:34px}
.door-go{position:absolute;right:14px;bottom:12px;color:var(--accent);font-size:15px;transition:transform .15s ease}
.manif-door:hover .door-go{transform:translateX(3px)}
.manif-close{text-align:center;border-top:1px solid var(--line);margin-top:36px;padding:44px 0 10px}
.mc-big{font-size:clamp(30px,5vw,44px);font-weight:700;line-height:1.25;margin:0}
.mc-creed{font-family:system-ui,sans-serif;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin:22px 0 0}
.mc-welcome{font-family:system-ui,sans-serif;font-size:12px;color:var(--faint);margin:26px 0 0}
@media (max-width:760px){.manif-cols,.manif-laws,.manif-doors{grid-template-columns:1fr}.manif-quote{margin-top:12px}}
@media (prefers-reduced-motion:reduce){
  .pane-shard,.door-go,.grace-door{transition:none}
  .manif-door:hover .door-go{transform:none}
  .grace-door:hover,.grace-door:focus-visible{transform:none}
}
/* ── Pocket print pack (Door-scale; B&W / photocopy-friendly) ── */
.pocket-link{margin:12px 0 0}
.pocket-pack{max-width:42rem}
.pocket-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px;align-items:center}
.pk-cover,.pk-howto,.pk-rig,.pk-back{margin:0 0 1.4rem}
.pk-kicker{font-family:system-ui,sans-serif;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}
.pk-lede{font-size:1.15rem;line-height:1.45;margin:.4rem 0 .8rem}
.pk-grace{font-style:italic;color:var(--mut);margin:.5rem 0}
.pk-prose,.pk-scope{font-size:14px;color:var(--mut);line-height:1.5}
.pk-scope{border-left:3px solid var(--line);padding-left:12px;margin-top:10px}
.pk-howto h2,.pk-rig h2,.pk-back h2{font-size:1.25rem;margin:0 0 .5rem}
.pk-howto-list{margin:0;padding-left:1.2rem;font-family:system-ui,sans-serif;font-size:14px;line-height:1.45}
.pk-howto-list li{margin:.35rem 0}
.pk-i{display:inline-block;min-width:1.4em;font-family:system-ui,sans-serif;color:var(--accent)}
.pk-purpose{margin:.2rem 0 .4rem;line-height:1.4}
.pk-signals{font-family:system-ui,sans-serif;font-size:12px;color:var(--faint);margin:0 0 .5rem}
.pk-why{font-family:system-ui,sans-serif;font-size:13px;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--accent);padding:8px 10px;margin:.5rem 0 .8rem}
.pk-rig h3{font-size:1rem;margin:1rem 0 .35rem;font-family:system-ui,sans-serif}
.pk-sub{font-weight:400;color:var(--faint);font-size:12px}
.pk-manifest{border-top:1px solid var(--line)}
.pk-mrow{display:grid;grid-template-columns:7.5rem 1fr;gap:4px 10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.pk-role{font-family:system-ui,sans-serif;font-weight:600;font-size:12px;color:var(--mut)}
.pk-core{line-height:1.35}
.pk-price{font-family:system-ui,sans-serif;font-size:12px;color:var(--faint);white-space:nowrap}
.pk-swap{grid-column:2;font-family:system-ui,sans-serif;font-size:12px;color:var(--faint);font-style:italic}
.pk-seq{list-style:none;padding:0;margin:.4rem 0 0;font-size:13px}
.pk-seq li{display:grid;grid-template-columns:2rem 1fr auto;gap:2px 8px;padding:5px 0;border-bottom:1px solid var(--line);page-break-inside:avoid}
.pk-n{font-family:system-ui,sans-serif;font-weight:700;font-size:12px}
.pk-st{font-weight:600}
.pk-time{font-family:system-ui,sans-serif;font-size:11px;color:var(--faint)}
.pk-sd{grid-column:2 / -1;font-size:12px;color:var(--mut);line-height:1.35}
.pk-full,.pk-door-url,.pk-press,.pk-brand{font-family:system-ui,sans-serif;font-size:12px;color:var(--faint);margin:.6rem 0 0}
.pk-urls{font-family:system-ui,sans-serif;font-size:13px;line-height:1.5;padding-left:1.1rem}
.pk-empty{font-size:13px;color:var(--mut)}
@media print{
  .hubnav,.hubfoot,.skip,.btn,.crumb,.sharerow,.printblock .btn,.manif-ctas,.door-go,.rc-go,.rig-toc,.continue-banner,.doors-nudge,.doors-nudge-inline,.compass-filters,.compass-empty,.listen-bar,.pocket-toolbar,.no-print{display:none!important}
  .rigcard.is-filtered-out{display:flex!important}
  body{background:#fff!important;background-image:none!important;color:#000;font-size:11pt}
  .domaincard,.rigcard,.grace-door,.echo,.specstrip.big,.continue-banner{box-shadow:none!important;background:#fff!important;transform:none!important;--mx:0!important;--my:0!important}
  .domaincard:hover,.rigcard:hover,.grace-door:hover{transform:none;box-shadow:none}
  .domaingrid:has(.domaincard:hover) .domaincard:not(:hover),
  .rigcards:has(.rigcard:hover) .rigcard:not(:hover){opacity:1!important}
  .pane-shard{fill-opacity:.25!important;stroke-width:1.4!important;stroke-opacity:1!important;transition:none!important}
  .pane-link{pointer-events:none}
  .pane-svg.pane-enter{animation:none!important}
  .rsec{border-top:1px solid #ccc;margin-top:1em;padding-top:.6em}
  .rsec>h2{border-left:none;padding-left:0}
  .step.step-done .step-t{text-decoration:none}
  .step.step-done .step-n{background:transparent;color:#000;padding:0}
  main{max-width:none;padding:0}
  a{color:#000;text-decoration:none}
  .bundle-only{display:none}
  /* Expand every BOM swap and path block — garage paper must not hide options. */
  details.swaps,details{display:block!important;border:none}
  details.swaps>summary,details>summary{display:none}
  details.swaps .swap,details .swap{display:block;margin:.2em 0 .2em 1em}
  .swaps summary{list-style:none}
  .rc-purpose,.rc-purpose>span,.rc-vital,.rc-vital i{display:block;overflow:visible;-webkit-line-clamp:none;max-height:none}
  .rigcard{break-inside:avoid}.rc-vitals{background:transparent}
  .bblist li{border-style:solid}
  /* Sequence checkboxes print as empty boxes for pencil ticks. */
  .step input,.stepbox{-webkit-appearance:none;appearance:none;width:14px;height:14px;border:1.5px solid #000;border-radius:2px;background:#fff;vertical-align:middle;margin-right:6px}
  .sequence .step{page-break-inside:avoid;break-inside:avoid;padding:.35em 0}
  .rsec h2{page-break-after:avoid;break-after:avoid;margin-top:1.2em}
  .pathblock,.laneblock,.echo,.mrow,.datatable,.feed,.manif-law,.manif-door,.manif-ark,.manif-pane-fig{page-break-inside:avoid;break-inside:avoid}
  .pathblock{page-break-before:auto}
  .specstrip,.metastrip{break-inside:avoid}
  table{page-break-inside:auto}tr{page-break-inside:avoid}
  .hero{margin-bottom:.8em}
  /* Pocket pack: sparse ink, clear breaks between rigs */
  .pocket-pack{max-width:none;color:#000}
  .pk-cover{page-break-after:avoid}
  .pk-howto{page-break-after:always;break-after:page}
  .pk-rig{page-break-before:always;break-before:page;page-break-inside:auto}
  .pk-back{page-break-before:always;break-before:page}
  .pk-kicker,.pk-signals,.pk-sub,.pk-price,.pk-swap,.pk-time,.pk-full,.pk-door-url,.pk-press,.pk-brand{color:#333!important}
  .pk-why{background:transparent!important;border:1px solid #000;border-left:3px solid #000}
  .pk-mrow,.pk-seq li,.pk-manifest{border-color:#000}
  .pk-scope{border-color:#000}
  .pk-i{color:#000}
  a.pk-full, .pk-urls{color:#000}
}