/* ==========================================================================
   theme-hall.css  --  trial "hall" skin for simulation pages.
   Opt-in only: a page gets it by loading this file AND putting class="hall"
   on <body>. Every rule is scoped under .hall, so pages that do not opt in
   are untouched. Layout, markup and text are unchanged; this only restyles.
   Background: /bio-kernel-series/simulations/assets/img/hall-bg.jpg by default.
   Add a second class to swap it, e.g. class="hall bg-jungle" (img/jungle-bg.jpg).
   ========================================================================== */

.hall{
  --h-bg:#120d08;
  --h-panel:rgba(26,19,12,.86);
  --h-panel2:rgba(34,25,16,.80);
  --h-line:rgba(214,170,104,.22);
  --h-line2:rgba(214,170,104,.38);
  --h-text:#e8dcc7;
  --h-body:#d6c8b0;
  --h-muted:#a8977b;
  --h-head:#f4e7cf;
  --h-gold:#d9aa5c;
  --h-link:#e6bb74;
  background:var(--h-bg);
  color:var(--h-text);
}

/* Fixed backdrop, darkened toward the centre column.
   THE DEFAULT IS NO IMAGE, DELIBERATELY. A page picks its backdrop with a bg- class, and
   every bg- class must have a rule below. CSS does not complain about a class it has no
   rule for; it simply leaves this default in place. With an image here, a page whose rule
   was missing quietly showed that image and looked like a deliberate choice, which is the
   bug that cost 2026-09-18. With no image here, the same mistake renders flat dark, which
   is unmistakably broken. The throne room is now an ordinary named backdrop, bg-hall.
   tools/check-theme.py names the cause. */
.hall::before{
  content:"";position:fixed;inset:0;z-index:-2;
  background:#120d08 none center top / cover no-repeat;
}
.hall.bg-hall::before{background-image:url("/bio-kernel-series/simulations/assets/img/hall-bg.jpg")}
.hall::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(18,13,8,.35) 0%, rgba(18,13,8,.78) 22%, rgba(18,13,8,.86) 50%, rgba(18,13,8,.78) 78%, rgba(18,13,8,.35) 100%);
}

/* alternate backdrops, one class each */
.hall.bg-galton-board::before{background-image:url("/bio-kernel-series/simulations/assets/img/galton-board-bg.jpg")}
.hall.bg-ring-attractor::before{background-image:url("/bio-kernel-series/simulations/assets/img/ring-attractor-bg.jpg")}
.hall.bg-the-ladder::before{background-image:url("/bio-kernel-series/simulations/assets/img/the-ladder-bg.jpg")}
.hall.bg-minority-game::before{background-image:url("/bio-kernel-series/simulations/assets/img/minority-game-bg.jpg")}
.hall.bg-autocatalytic-sets-markets::before{background-image:url("/bio-kernel-series/simulations/assets/img/autocatalytic-sets-markets-bg.jpg")}
.hall.bg-autocatalytic-sets-two::before{background-image:url("/bio-kernel-series/simulations/assets/img/autocatalytic-sets-two-bg.jpg")}
.hall.bg-dendritic-growth::before{background-image:url("/bio-kernel-series/simulations/assets/img/dendritic-growth-bg.jpg")}
.hall.bg-bzk-live::before{background-image:url("/bio-kernel-series/simulations/assets/img/bzk-live-bg.jpg")}
.hall.bg-modeled-economy::before{background-image:url("/bio-kernel-series/simulations/assets/img/modeled-economy-bg.jpg")}
.hall.bg-epidermoid-cyst::before{background-image:url("/bio-kernel-series/simulations/assets/img/epidermoid-cyst-bg.jpg")}
.hall.bg-reading-the-strand::before{background-image:url("/bio-kernel-series/simulations/assets/img/reading-the-strand-bg.jpg")}
.hall.bg-reactor::before{background-image:url("/bio-kernel-series/simulations/assets/img/reactor-bg.jpg")}
.hall.bg-tri-trophic::before{background-image:url("/bio-kernel-series/simulations/assets/img/tri-trophic-bg.jpg")}
.hall.bg-mutation-selection::before{background-image:url("/bio-kernel-series/simulations/assets/img/mutation-selection-bg.jpg")}
.hall.bg-growth-repair::before{background-image:url("/bio-kernel-series/simulations/assets/img/growth-repair-bg.jpg")}
.hall.bg-logic-mass-in-the-cell::before{background-image:url("/bio-kernel-series/simulations/assets/img/logic-mass-in-the-cell-bg.jpg")}
.hall.bg-principia-read::before{background-image:url("/bio-kernel-series/simulations/assets/img/principia-read-bg.jpg")}
.hall.bg-whats-inside-a-cell::before{background-image:url("/bio-kernel-series/simulations/assets/img/whats-inside-a-cell-bg.jpg")}
.hall.bg-recurcline::before{background-image:url("/bio-kernel-series/simulations/assets/img/recurcline-bg.jpg")}
.hall.bg-alpha-trace::before{background-image:url("/bio-kernel-series/simulations/assets/img/alpha-trace-bg.jpg")}
.hall.bg-then-what-is-dna::before{background-image:url("/bio-kernel-series/simulations/assets/img/then-what-is-dna-bg.jpg")}
.hall.bg-self-maintaining-membrane::before{background-image:url("/bio-kernel-series/simulations/assets/img/self-maintaining-membrane-bg.jpg")}
.hall.bg-homeostasis::before{background-image:url("/bio-kernel-series/simulations/assets/img/homeostasis-bg.jpg")}
.hall.bg-feynman-slit::before{background-image:url("/bio-kernel-series/simulations/assets/img/feynman-slit-bg.jpg")}
.hall.bg-box-and-papers::before{background-image:url("/bio-kernel-series/simulations/assets/img/box-and-papers-bg.jpg")}
.hall.bg-chemistry::before{background-image:url("/bio-kernel-series/simulations/assets/img/chemistry-bg.jpg")}
.hall.bg-chemistry-substitute::before{background-image:url("/bio-kernel-series/simulations/assets/img/chemistry-substitute-bg.jpg")}
.hall.bg-engineering-tools::before{background-image:url("/bio-kernel-series/simulations/assets/img/engineering-tools-bg.jpg")}
.hall.bg-phase-vs-regime::before{background-image:url("/bio-kernel-series/simulations/assets/img/phase-vs-regime-bg.jpg")}
.hall.bg-autonomy-theory::before{background-image:url("/bio-kernel-series/simulations/assets/img/autonomy-theory-bg.jpg")}
.hall.bg-assembly-theory::before{background-image:url("/bio-kernel-series/simulations/assets/img/assembly-theory-bg.jpg")}
.hall.bg-relativity-from-adjacency::before{background-image:url("/bio-kernel-series/simulations/assets/img/relativity-from-adjacency-bg.jpg")}
.hall.bg-kaneko::before{background-image:url("/bio-kernel-series/simulations/assets/img/kaneko-bg.jpg")}
.hall.bg-dynamical-systems-canon::before{background-image:url("/bio-kernel-series/simulations/assets/img/dynamical-systems-canon-bg.jpg")}
.hall.bg-control-theory::before{background-image:url("/bio-kernel-series/simulations/assets/img/control-theory-bg.jpg")}
.hall.bg-bifurcation-theory::before{background-image:url("/bio-kernel-series/simulations/assets/img/bifurcation-theory-bg.jpg")}
.hall.bg-hopfield-networks::before{background-image:url("/bio-kernel-series/simulations/assets/img/hopfield-networks-bg.jpg")}
.hall.bg-llms-and-agents::before{background-image:url("/bio-kernel-series/simulations/assets/img/llms-and-agents-bg.jpg")}
.hall.bg-biomolecular-condensates::before{background-image:url("/bio-kernel-series/simulations/assets/img/biomolecular-condensates-bg.jpg")}
.hall.bg-waddington::before{background-image:url("/bio-kernel-series/simulations/assets/img/waddington-bg.jpg")}
.hall.bg-major-transitions::before{background-image:url("/bio-kernel-series/simulations/assets/img/major-transitions-bg.jpg")}
.hall.bg-mitochondrion::before{background-image:url("/bio-kernel-series/simulations/assets/img/mitochondrion-bg.jpg")}
.hall.bg-raf-sets::before{background-image:url("/bio-kernel-series/simulations/assets/img/raf-sets-bg.jpg")}
.hall.bg-computational-life-emergence::before{background-image:url("/bio-kernel-series/simulations/assets/img/computational-life-emergence-bg.jpg")}
.hall.bg-computational-life::before{background-image:url("/bio-kernel-series/simulations/assets/img/computational-life-bg.jpg")}
.hall.bg-gershenson::before{background-image:url("/bio-kernel-series/simulations/assets/img/gershenson-bg.jpg")}
.hall.bg-autocatalytic-sets::before{background-image:url("/bio-kernel-series/simulations/assets/img/autocatalytic-sets-bg.jpg")}
.hall.bg-further-reading::before{background-image:url("/bio-kernel-series/simulations/assets/img/further-reading-bg.jpg")}
.hall.bg-adjacent-work::before{background-image:url("/bio-kernel-series/simulations/assets/img/adjacent-work-bg.jpg")}
.hall.bg-one-way-fold::before{background-image:url("/bio-kernel-series/simulations/assets/img/one-way-fold-bg.jpg")}
.hall.bg-poincare::before{background-image:url("/bio-kernel-series/simulations/assets/img/poincare-bg.jpg")}
.hall.bg-rapt-theorems::before{background-image:url("/bio-kernel-series/simulations/assets/img/rapt-theorems-bg.jpg")}
.hall.bg-why-cellular-automata::before{background-image:url("/bio-kernel-series/simulations/assets/img/why-cellular-automata-bg.jpg")}
.hall.bg-vortex-street::before{background-image:url("/bio-kernel-series/simulations/assets/img/vortex-street-bg.jpg")}
.hall.bg-attractor-stack-coupling::before{background-image:url("/bio-kernel-series/simulations/assets/img/attractor-stack-coupling-bg.jpg")}
.hall.bg-sovereignty::before{background-image:url("/bio-kernel-series/simulations/assets/img/sovereignty-bg.jpg")}
.hall.bg-attractlet::before{background-image:url("/bio-kernel-series/simulations/assets/img/attractlet-bg.jpg")}
.hall.bg-attractors-vs-attractlets::before{background-image:url("/bio-kernel-series/simulations/assets/img/attractors-vs-attractlets-bg.jpg")}
.hall.bg-living-structures::before{background-image:url("/bio-kernel-series/simulations/assets/img/living-structures-bg.jpg")}
.hall.bg-basins::before{background-image:url("/bio-kernel-series/simulations/assets/img/basins-bg.jpg")}
.hall.bg-autocatalytic::before{background-image:url("/bio-kernel-series/simulations/assets/img/autocatalytic-bg.jpg")}
.hall.bg-clock-driven::before{background-image:url("/bio-kernel-series/simulations/assets/img/clock-driven-bg.jpg")}
.hall.bg-finding-a-basin::before{background-image:url("/bio-kernel-series/simulations/assets/img/finding-a-basin-bg.jpg")}
.hall.bg-logistic-map::before{background-image:url("/bio-kernel-series/simulations/assets/img/logistic-map-bg.jpg")}
.hall.bg-jungle::before{background-image:url("/bio-kernel-series/simulations/assets/img/jungle-bg.jpg")}
.hall.bg-temple::before{background-image:url("/bio-kernel-series/simulations/assets/img/temple-bg.jpg")}
.hall.bg-gothic::before{background-image:url("/bio-kernel-series/simulations/assets/img/gothic-bg.jpg")}
.hall.bg-congress::before{background-image:url("/bio-kernel-series/simulations/assets/img/congress-bg.jpg")}
.hall.bg-luau::before{background-image:url("/bio-kernel-series/simulations/assets/img/luau-bg.jpg")}
.hall.bg-aggregation::before{background-image:url("/bio-kernel-series/simulations/assets/img/convective-self-aggregation-bg.png")}
.hall.bg-hailstorm::before{background-image:url("/bio-kernel-series/simulations/assets/img/hailstorm-bg.jpg")}
.hall.bg-macaw::before{background-image:url("/bio-kernel-series/simulations/assets/img/macaw-bg.jpg")}
.hall.bg-courtroom::before{background-image:url("/bio-kernel-series/simulations/assets/img/courtroom-bg.png")}
.hall.bg-desert::before{background-image:url("/bio-kernel-series/simulations/assets/img/desert-rider-bg.png")}
.hall.bg-lagoon::before{background-image:url("/bio-kernel-series/simulations/assets/img/lagoon-bg.jpg")}
.hall.bg-gate::before{background-image:url("/bio-kernel-series/simulations/assets/img/gate-bg.jpg")}
.hall.bg-storm::before{background-image:url("/bio-kernel-series/simulations/assets/img/storm-bg.jpg")}
.hall.bg-garage::before{background-image:url("/bio-kernel-series/simulations/assets/img/garage-bg.jpg")}
.hall.bg-hurricane::before{background-image:url("/bio-kernel-series/simulations/assets/img/hurricane-bg.jpg")}
.hall.bg-tropic::before{background-image:url("/bio-kernel-series/simulations/assets/img/tropic-bg.jpg")}
.hall.bg-study::before{background-image:url("/bio-kernel-series/simulations/assets/img/study-bg.jpg")}
.hall.bg-sun::before{background-image:url("/bio-kernel-series/simulations/assets/img/sun-bg.png")}
.hall.bg-machine::before{background-image:url("/bio-kernel-series/simulations/assets/img/machine-bg.jpg")}
.hall.bg-orbit::before{background-image:url("/bio-kernel-series/simulations/assets/img/orbit-bg.jpg")}
.hall.bg-chalkboard::before{background-image:url("/bio-kernel-series/simulations/assets/img/chalkboard-bg.jpg")}
.hall.bg-supercell::before{background-image:url("/bio-kernel-series/simulations/assets/img/supercell-bg.jpg")}
.hall.bg-balloon::before{background-image:url("/bio-kernel-series/simulations/assets/img/balloon-bg.jpg")}
.hall.bg-dogpark::before{background-image:url("/bio-kernel-series/simulations/assets/img/dogpark-bg.png")}
.hall.bg-volcano::before{background-image:url("/bio-kernel-series/simulations/assets/img/volcano-bg.jpg")}
.hall.bg-cinema::before{background-image:url("/bio-kernel-series/simulations/assets/img/cinema-bg.jpg")}
.hall.bg-carnot::before{background-image:url("/bio-kernel-series/simulations/assets/img/carnot-bg.jpg")}
.hall.bg-skyline::before{background-image:url("/bio-kernel-series/simulations/assets/img/skyline-bg.jpg")}
.hall.bg-dynamo::before{background-image:url("/bio-kernel-series/simulations/assets/img/dynamo-bg.jpg")}
.hall.bg-exchange::before{background-image:url("/bio-kernel-series/simulations/assets/img/exchange-bg.jpg")}
.hall.bg-macaque::before{background-image:url("/bio-kernel-series/simulations/assets/img/macaque-bg.jpg")}
.hall.bg-a-life::before{background-image:url("/bio-kernel-series/simulations/assets/img/a-life-bg.png")}
.hall.bg-false-basins::before{background-image:url("/bio-kernel-series/simulations/assets/img/false-basins-bg.png")}
.hall.bg-life-physiology::before{background-image:url("/bio-kernel-series/simulations/assets/img/life-physiology-bg.png")}
.hall.bg-substrate::before{background-image:url("/bio-kernel-series/simulations/assets/img/substrate-bg.png")}
.hall.bg-crab::before{background-image:url("/bio-kernel-series/simulations/assets/img/crab-bg.jpg")}
.hall.bg-giraffe::before{background-image:url("/bio-kernel-series/simulations/assets/img/giraffe-bg.jpg")}
.hall.bg-bull::before{background-image:url("/bio-kernel-series/simulations/assets/img/bull-bg.jpg")}
.hall.bg-lion::before{background-image:url("/bio-kernel-series/simulations/assets/img/lion-bg.png")}
/* repaired 2026-09-18: rules whose pages existed but whose selectors were missing */
.hall.bg-block::before{background-image:url("/bio-kernel-series/simulations/assets/img/block-bg.png")}
.hall.bg-bloom-late::before{background-image:url("/bio-kernel-series/simulations/assets/img/bloom-late-bg.jpg")}
.hall.bg-cardroom::before{background-image:url("/bio-kernel-series/simulations/assets/img/cardroom-bg.jpg")}
.hall.bg-foreclosure::before{background-image:url("/bio-kernel-series/simulations/assets/img/foreclosure-bg.jpg")}
.hall.bg-insect-hall::before{background-image:url("/bio-kernel-series/simulations/assets/img/a-life-bg.png")}
.hall.bg-prions::before{background-image:url("/bio-kernel-series/simulations/assets/img/prions-bg.png")}
.hall.bg-glycolytic::before{background-image:url("/bio-kernel-series/simulations/assets/img/glycolytic-bg.png")}
.hall.bg-living-cell::before{background-image:url("/bio-kernel-series/simulations/assets/img/living-cell-bg.png")}
.hall.bg-order-book::before{background-image:url("/bio-kernel-series/simulations/assets/img/order-book-bg.jpg")}

/* glass variant: lighter overlay and see-through cards, so the backdrop shows.
   Opt in with a third class, e.g. class="hall bg-jungle glass". */
.hall.glass::after{
  background:linear-gradient(90deg, rgba(18,13,8,.10) 0%, rgba(18,13,8,.30) 22%, rgba(18,13,8,.38) 50%, rgba(18,13,8,.30) 78%, rgba(18,13,8,.10) 100%);
}
.hall.glass main{
  background:rgba(22,16,10,.50);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
}
.hall.glass .site-header,.hall.glass .footer{background:rgba(20,14,9,.62)}
.hall.glass .panel{background:rgba(18,13,8,.42)}
.hall.glass .thesis{background:rgba(18,13,8,.35)}
.hall.glass .readout,.hall.glass .eqs{background:rgba(10,7,4,.55)}
.hall.glass p,.hall.glass h1,.hall.glass h2,.hall.glass h3,.hall.glass .lede,.hall.glass .role{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- chrome ---- */
.hall .site-header{
  max-width:1164px;margin:14px auto 0;border:1px solid var(--h-line);border-radius:14px;
  background:rgba(20,14,9,.88);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.hall .site-title{color:var(--h-head);font-family:"EB Garamond",Georgia,serif;font-size:26px}
.hall .top-nav a{color:var(--h-text)}
.hall .top-nav a:hover{color:var(--h-gold)}
.hall .footer{
  max-width:1164px;margin:0 auto 14px;border:1px solid var(--h-line);border-radius:14px;
  background:rgba(20,14,9,.88);color:var(--h-muted);
}
.hall main{
  background:var(--h-panel);border:1px solid var(--h-line);border-radius:18px;
  padding:34px 34px 30px;margin-top:18px;margin-bottom:18px;max-width:1164px;
  margin-left:auto;margin-right:auto;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.hall .back{color:var(--h-link)}
.hall a{color:var(--h-link)}

/* ---- type ---- */
.hall h1{font-family:"EB Garamond",Georgia,serif;font-weight:500;font-size:46px;color:var(--h-head);letter-spacing:.2px}
.hall h2,.hall .panel h3{font-family:"EB Garamond",Georgia,serif;font-weight:500;color:var(--h-head)}
.hall .panel h3{font-size:24px}
.hall .lede{font-family:"EB Garamond",Georgia,serif;font-size:21px;color:#e2cfa9}
.hall p{color:var(--h-body)}
.hall strong{color:var(--h-head)}
.hall em{color:inherit}
.hall .thesis{
  background:rgba(214,170,104,.06);border-left-color:var(--h-gold);color:var(--h-text);
}
.hall code{background:rgba(214,170,104,.12);color:var(--h-head);padding:1px 5px;border-radius:5px}

/* ---- badges ---- */
.hall .badge{background:rgba(214,170,104,.10);border-color:var(--h-line2);color:#e9c98e}
.hall .badge.open{background:rgba(217,170,92,.18);border-color:rgba(217,170,92,.5);color:#f2cf8f}
.hall .rule{background:rgba(10,7,4,.45);border-left-color:var(--h-gold);color:var(--h-text)}
.hall .badge.gold{background:rgba(217,170,92,.22);border-color:rgba(217,170,92,.6);color:#f2cf8f}

/* ---- panels ---- */
.hall .panel{background:var(--h-panel2);border-color:var(--h-line)}
.hall .panel .role{color:var(--h-muted)}
.hall .panel canvas{border:1px solid var(--h-line)}
.hall .ctl label{color:var(--h-text)}
.hall .ctl .val{color:var(--h-muted)}
.hall .ctl input[type=range]{accent-color:var(--h-gold)}
.hall .buttons button{background:rgba(214,170,104,.08);border-color:var(--h-line2);color:var(--h-head)}
.hall .buttons button:hover{background:rgba(214,170,104,.18)}
.hall .readout{background:rgba(12,9,6,.55);border-color:var(--h-line);color:var(--h-text)}
.hall .readout .metric span:first-child{color:var(--h-muted)}
.hall .status.holding{color:#8fcf9f}
.hall .status.recovering{color:var(--h-gold)}
.hall .status.ruptured{color:#e38a7c}
.hall .honesty{background:rgba(214,170,104,.08);border-color:var(--h-line2);color:#e2cfa9}
.hall .honesty strong{color:var(--h-head)}

/* ---- page-local blocks used by the physics pages ---- */
.hall .eqs{background:rgba(12,9,6,.55);border-color:var(--h-line);color:var(--h-text)}
.hall .eqs span{color:var(--h-muted)!important}
.hall .ref{color:var(--h-muted)}
.hall table.nums th,.hall table.nums td{border-color:var(--h-line)}
.hall table.nums th{background:rgba(214,170,104,.10);color:#e9c98e}
.hall table.nums td{color:var(--h-text)}

/* ---- disclosure card, gate ---- */
.hall .disclosure,.hall .gate,.hall .disc-banner{background:var(--h-panel2);border-color:var(--h-line);color:var(--h-text)}
.hall .disc-k,.hall .disc-foot,.hall .disc-sov li em{color:var(--h-muted)}
.hall .disc-v,.hall .disc-sov li,.hall .gate p{color:var(--h-text)}
.hall .disc-row{border-bottom-color:var(--h-line)}
.hall .disc-sov{border-top-color:var(--h-line)}
.hall .disc-sov-h{color:var(--h-head)}

/* ---- home page blocks (/index.html): hero keeps its own image ---- */
.hall .hero{border-color:var(--h-line2);box-shadow:0 18px 44px rgba(0,0,0,.45)}
.hall .intro,.hall .pair-intro{color:var(--h-text)}
.hall .intro strong,.hall .pair-intro strong{color:var(--h-head)}
.hall .card{background:var(--h-panel2);border-color:var(--h-line);box-shadow:0 14px 34px rgba(0,0,0,.35)}
.hall .card h2{font-family:"EB Garamond",Georgia,serif;font-weight:500;font-size:28px;color:var(--h-head)}
.hall .card ul{border-top-color:var(--h-line)}
.hall .card li{color:var(--h-body)}
.hall .btn{background:rgba(214,170,104,.08);border-color:var(--h-line2);color:var(--h-head)}
.hall .btn:hover{background:rgba(214,170,104,.18)}
.hall .note{background:rgba(10,7,4,.45);border-color:var(--h-line);color:var(--h-text)}
.hall.glass .card{background:rgba(18,13,8,.42)}
.hall.glass .note{background:rgba(10,7,4,.50)}
.hall.glass .intro,.hall.glass .pair-intro,.hall.glass .card li{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- Bio-Kernel hub (/bio-kernel-series/index.html): rail + card gallery ---- */
.hall .layout{
  background:var(--h-panel);border:1px solid var(--h-line);border-radius:18px;
  padding:34px 34px 30px;margin-top:18px;margin-bottom:18px;max-width:1164px;box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.hall.glass .layout{background:rgba(22,16,10,.50);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.hall .rail h2{color:var(--h-muted);font-family:inherit}
.hall .rail .intro,.hall .rail p,.hall .rail .laddermini li{color:var(--h-body)}
.hall .rail section{border-top-color:var(--h-line)}
.hall .rail a.head{color:var(--h-head)}
.hall .rail a.head:hover{color:var(--h-gold)}
.hall .constitution-link{background:rgba(10,7,4,.45);border-color:var(--h-line);border-left-color:var(--h-gold);color:var(--h-text)}
.hall .constitution-link a,.hall .side-note a{color:var(--h-link)}
.hall .side-note{color:var(--h-muted)}
.hall .gate .tag{background:rgba(214,170,104,.14);border-color:var(--h-line2);color:#e9c98e}
.hall .card h3{font-family:"EB Garamond",Georgia,serif;font-weight:500;font-size:26px;color:var(--h-head)}
.hall .card p{color:var(--h-body)}
.hall .enter{background:rgba(214,170,104,.08);border-color:var(--h-line2);color:var(--h-head)}
.hall .enter:hover{background:rgba(214,170,104,.18)}
.hall.glass .gate{background:rgba(18,13,8,.42)}
.hall.glass .rail p,.hall.glass .card p,.hall.glass .rail a.head{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- long-document pages (.doc: the Constitution) ---- */
.hall .doc .frame{background:rgba(10,7,4,.45);border-color:var(--h-line);color:#e2cfa9}
.hall .doc h2{font-family:"EB Garamond",Georgia,serif;font-weight:500;font-size:28px;color:var(--h-head);border-top-color:var(--h-line)}
.hall .doc .art{color:var(--h-gold);font-family:"Courier New",monospace}
.hall .doc p,.hall .doc ul,.hall .doc ol{color:var(--h-body)}
.hall .doc blockquote{background:rgba(10,7,4,.45);border-left-color:var(--h-gold);color:var(--h-head)}
.hall .doc code{background:rgba(214,170,104,.12);border-color:var(--h-line);color:var(--h-head)}
.hall .doc a{color:var(--h-link)}
.hall .doc .close{color:var(--h-muted);border-top-color:var(--h-line)}
.hall .doc .subclause{color:var(--h-head)}
.hall .doc .subclause strong{color:var(--h-gold)}
.hall.glass .doc li,.hall.glass .doc blockquote{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- card-grid hub pages (.band / .shelf / .tile: Attractlets, Living Structures, Weather...) ---- */
.hall .band-head{border-bottom-color:var(--h-line)}
.hall .band-head h2{color:var(--h-head)}
.hall .band-head .q{color:var(--h-muted)}
.hall .tile{background:var(--h-panel2);border-color:var(--h-line);box-shadow:0 12px 30px rgba(0,0,0,.30)}
.hall .tile h3{font-family:"EB Garamond",Georgia,serif;font-weight:500;font-size:23px;color:var(--h-head)}
.hall .tile p{color:var(--h-body)}
.hall .tile .col.supplied{color:#e79a86}
.hall .tile .col.living{color:#8fcf9f}
.hall .tile .col.gated{color:var(--h-gold)}
.hall .tile .col.middle{color:#9cc0ea}
.hall .tile .col.sov{color:#b7d2f2}
.hall .tile .col.open{color:var(--h-gold)}
.hall .tile a.go{color:var(--h-link)}
.hall .tile .basin{background:rgba(10,7,4,.45);border-color:var(--h-line);color:var(--h-body)}
.hall .tile .basin .bl{color:var(--h-gold)}
.hall .tile.coming,.hall .tile.gatedslot{background:rgba(18,13,8,.30);border-color:var(--h-line2)}
.hall .tile.coming h3,.hall .tile.gatedslot h3,.hall .tile .stamp{color:var(--h-muted)}
.hall .side-note{color:var(--h-muted)}
.hall.glass .tile{background:rgba(18,13,8,.42)}
.hall.glass .tile .basin{background:rgba(10,7,4,.50)}
.hall.glass .tile .basin,.hall.glass .tile .col{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- Principia Attractum pages (own chrome: .hdr / .logo / .ftr, .sidebar, .branch) ---- */
.hall .hdr{
  max-width:1164px;margin:14px auto 0;border:1px solid var(--h-line);border-radius:14px;
  background:rgba(20,14,9,.88);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.hall main,.hall .hdr,.hall .ftr,.hall .site-header,.hall .footer{box-sizing:border-box}
.hall .logo{color:var(--h-head);font-family:"EB Garamond",Georgia,serif;font-size:26px}
.hall .hdr nav a{color:var(--h-text)}
.hall .hdr nav a:hover{color:var(--h-gold)}
.hall .ftr{
  max-width:1164px;margin:0 auto 14px;border:1px solid var(--h-line);border-radius:14px;
  background:rgba(20,14,9,.88);color:var(--h-muted);
}
.hall.glass .hdr,.hall.glass .ftr{background:rgba(20,14,9,.62)}
.hall .sidebar{background:var(--h-panel2);border-color:var(--h-line)}
.hall .sidebar h2{color:var(--h-muted);font-family:inherit;font-size:14px}
.hall .sidebar a{color:var(--h-head)}
.hall .sidebar a:hover{color:var(--h-gold)}
.hall .sidebar .lbl{color:var(--h-gold)}
.hall .sidebar-alt{border-color:rgba(231,154,134,.35)}
.hall .sidebar-alt h2{color:#e79a86}
.hall.glass .sidebar{background:rgba(18,13,8,.42)}
.hall .sub{font-family:"EB Garamond",Georgia,serif;font-size:21px;color:#e2cfa9}
.hall .refs{color:var(--h-muted);border-top-color:var(--h-line)}
.hall .branch-title{color:var(--h-gold)}
.hall .branch{background:rgba(214,170,104,.08);border-color:var(--h-line2);color:var(--h-head)}
.hall .branch:hover{background:rgba(214,170,104,.22);color:var(--h-head)}
/* inline-coloured notes on these pages were set for a white page; lift them for the dark one */
.hall .maincol p[style]{color:var(--h-muted)!important}
.hall .maincol a[style],.hall .maincol span[style]{color:#e79a86!important}
.hall.glass .sidebar a,.hall.glass .sidebar .lbl,.hall.glass .refs li,.hall.glass .branch-title{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- Principia concept pages (taxonomy): class boxes, comparison table, axis map ---- */
.hall main p[style*="color"]{color:var(--h-muted)!important}
.hall h3{color:var(--h-head)}
.hall .class{background:rgba(18,13,8,.42);border-color:var(--h-line)}
.hall .class.base{border-top-color:#a8977b}
.hall .class.coord{border-top-color:var(--h-gold)}
.hall .class.sov{border-top-color:#9cc0ea}
.hall .class h3{font-family:"EB Garamond",Georgia,serif;font-weight:500;font-size:24px}
.hall .cid{background:rgba(214,170,104,.14);color:var(--h-head)}
.hall .class .role,.hall .ex .exwhy,.hall .attribution{color:var(--h-muted)}
.hall .ex{background:rgba(10,7,4,.45);border-color:var(--h-line)}
.hall .ex .exlabel{color:var(--h-gold)}
.hall .compare th,.hall .compare td{border-color:var(--h-line)}
.hall .compare th{background:rgba(214,170,104,.10);color:#e9c98e}
.hall .compare td,.hall .compare td:first-child{color:var(--h-text)}
.hall .compare .exname{color:var(--h-body)}
.hall .cond li{color:var(--h-body);border-top-color:var(--h-line)}
.hall .cond .yes::before{color:#8fcf9f}
.hall .cond .no::before{color:#e79a86}
.hall .cond .part::before{color:var(--h-gold)}
.hall .pivot,.hall .pull{background:rgba(10,7,4,.45);border-left-color:#9cc0ea;color:var(--h-text)}
.hall .pivot strong{color:#b7d2f2}
.hall .frame{background:rgba(10,7,4,.40);border-color:var(--h-line);color:var(--h-body)}
.hall .warn{background:rgba(60,20,14,.45);border-color:rgba(231,154,134,.35);border-left-color:#e79a86;color:var(--h-text)}
.hall .warn strong{color:#f0b3a3}
.hall .laddereq{background:rgba(10,7,4,.55);border-color:var(--h-line);color:var(--h-text)}
.hall .laddereq .lbl{color:var(--h-gold)}
.hall .next{border-top-color:var(--h-line);color:var(--h-body)}
.hall .attribution{border-top-color:var(--h-line)}
.hall .taxmap-axis{background:rgba(10,7,4,.45);border-color:var(--h-line)}
.hall .taxmap-cell.attractlet{background:rgba(120,50,40,.28);border-right-color:var(--h-line)}
.hall .taxmap-cell.attractlet .tm-tag{color:#e79a86}
.hall .taxmap-cell.attractlet .tm-name{color:#f0b3a3}
.hall .taxmap-cell.base{background:rgba(214,170,104,.05)}
.hall .taxmap-cell.coord{background:rgba(214,170,104,.10)}
.hall .taxmap-cell.sov{background:rgba(120,160,220,.16);border-left-color:#9cc0ea}
.hall .taxmap-cell.sov .tm-name{color:#b7d2f2}
.hall .tm-tag,.hall .tm-genustag{color:var(--h-gold)}
.hall .tm-name{color:var(--h-head)}
.hall .tm-note,.hall .tm-linetest,.hall .tm-band{color:var(--h-muted)}
.hall .tm-linelabel{color:var(--h-text)}
.hall .taxmap-line{background:rgba(10,7,4,.35)}
.hall .taxmap-line.line1{border-left-color:#c98f84;border-right-color:#c98f84}
.hall .taxmap-line.line2{border-left-color:#9cc0ea;border-right-color:#9cc0ea}
.hall .taxmap-genus{background:transparent}
.hall .tm-band.mid{border-top-color:var(--h-line2)}
.hall .taxmap-basin{background:rgba(120,160,220,.12);border-color:rgba(156,192,234,.35);color:#b7d2f2}
.hall .taxmap-basin .bn-note,.hall .taxmap-transform .tf-note{color:var(--h-muted)}
.hall .taxmap-transform{background:rgba(214,170,104,.08);border-color:rgba(217,170,92,.5);color:#e9c98e}
.hall .taxmap-transform .tf-cand{background:rgba(217,170,92,.22);border-color:rgba(217,170,92,.6);color:#f2cf8f}
.hall.glass .class p,.hall.glass .cond li,.hall.glass .compare td,.hall.glass .tm-note,.hall.glass .frame{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- Principia landing (/principia-attractum/): .wrap, .body, .epigraph, .door ---- */
.hall .logo a{color:inherit}
.hall .body{color:var(--h-body)}
.hall .cite{color:var(--h-muted)}
.hall .epigraph{font-family:"EB Garamond",Georgia,serif;font-size:26px;color:var(--h-head);border-top-color:var(--h-line2);border-bottom-color:var(--h-line2)}
.hall .door{border-color:var(--h-line2)}
.hall .door.primary{background:rgba(217,170,92,.22);color:var(--h-head);border-color:rgba(217,170,92,.6)}
.hall .door.primary:hover{background:rgba(217,170,92,.34)}
.hall .door.secondary{background:rgba(214,170,104,.06);color:var(--h-head)}
.hall .door.secondary:hover{background:rgba(214,170,104,.16)}
.hall .soon{color:var(--h-muted)}
.hall.glass .body p,.hall.glass .epigraph,.hall.glass .cite{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- spec pages (Duncan's Neighborhood): .eq blocks, plain tables, .gov ---- */
.hall .eq{background:rgba(10,7,4,.55);border-color:var(--h-line);color:var(--h-text)}
.hall .eq .lbl{color:var(--h-gold)}
.hall main > .card th{color:#e9c98e;border-bottom-color:var(--h-line2)}
.hall main > .card td{color:var(--h-text);border-bottom-color:var(--h-line)}
.hall main > .card tr.pass td{color:#8fcf9f}
.hall main > .card tr.ctrl td{color:#e79a86}
.hall p.note{background:none;border:none;padding:0;color:var(--h-muted)}
.hall .gov{border-top-color:var(--h-line);color:var(--h-muted)}
.hall.glass .eq,.hall.glass main > .card td{text-shadow:0 1px 2px rgba(0,0,0,.65)}

/* ---- Principia primitive list (.props, .prim, .pid, .example) ---- */
.hall .props{color:var(--h-body)}
.hall .props li{border-bottom-color:var(--h-line)}
.hall .prim{background:rgba(18,13,8,.42);border-color:var(--h-line)}
.hall .prim h3{font-family:"EB Garamond",Georgia,serif;font-weight:500;font-size:24px;color:var(--h-head)}
.hall .pid{background:rgba(214,170,104,.14);color:var(--h-head)}
.hall .prim .constraint{color:var(--h-text)}
.hall .prim .isnot{color:var(--h-muted)}
.hall .prim .example{background:rgba(10,7,4,.45);border-left-color:var(--h-gold);color:var(--h-text)}
.hall .prim .example strong{color:var(--h-gold)}
.hall.glass .props li,.hall.glass .prim .example{text-shadow:0 1px 2px rgba(0,0,0,.65)}

@media(max-width:800px){
  .hall .site-header,.hall .hdr{margin:0;border-radius:0;border-left:0;border-right:0}
  .hall main,.hall .layout{margin:12px 8px;padding:22px 16px;border-radius:14px}
  .hall .footer,.hall .ftr{margin:0;border-radius:0}
  .hall .hdr,.hall .site-header{height:auto;padding:18px;flex-direction:column;align-items:flex-start;gap:10px}
  .hall .top-nav a{margin:0 18px 0 0}
  .hall .hdr nav a{margin:0 18px 0 0}
  .hall .compare,.hall table.nums{display:block;overflow-x:auto}
  .hall main > .card{padding:22px 16px}
  .hall .frame,.hall .class,.hall .warn{padding:16px 16px}
  .hall .taxmap-line.line1{border-left:none;border-right:none;border-top-color:#c98f84;border-bottom-color:#c98f84}
  .hall .taxmap-line.line2{border-left:none;border-right:none;border-top-color:#9cc0ea;border-bottom-color:#9cc0ea}
  .hall h1{font-size:36px}
  .hall::after{background:rgba(18,13,8,.80)}
  .hall.glass::after{background:rgba(18,13,8,.40)}
}

/* ==========================================================================
   light variant: for bright backdrops. Opt in with a fourth class,
   e.g. class="hall bg-tropic glass light". Frosted white cards, dark text.
   Placed last so it overrides the dark defaults above.
   ========================================================================== */
.hall.light{
  --h-panel:rgba(255,255,255,.80);
  --h-panel2:rgba(255,255,255,.62);
  --h-line:rgba(16,36,74,.16);
  --h-line2:rgba(16,36,74,.28);
  --h-text:#16263f;
  --h-body:#22324a;
  --h-muted:#4a5a72;
  --h-head:#0b1a33;
  --h-gold:#8a5a0c;
  --h-link:#1f4f8f;
  background:#eaf4f8;color:var(--h-text);
}
.hall.light.glass::after{background:linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.08) 22%, rgba(255,255,255,.12) 50%, rgba(255,255,255,.08) 78%, rgba(255,255,255,0) 100%)}
.hall.light .site-header,.hall.light .footer,.hall.light .hdr,.hall.light .ftr{background:rgba(255,255,255,.72)}
.hall.light.glass main,.hall.light.glass .layout{background:rgba(255,255,255,.58);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 20px 50px rgba(10,40,70,.22)}
.hall.light.glass .panel,.hall.light.glass .card,.hall.light.glass .tile,.hall.light.glass .class,.hall.light.glass .sidebar{background:rgba(255,255,255,.55)}
.hall.light.glass .thesis{background:rgba(255,255,255,.50);border-left-color:#1f4f8f}
.hall.light .readout,.hall.light.glass .readout,.hall.light .eqs,.hall.light.glass .eqs,.hall.light .note,.hall.light .tile .basin,.hall.light .ex,.hall.light .frame{background:rgba(255,255,255,.82);border-color:var(--h-line)}
.hall.light .lede{color:#1d3b5e}
.hall.light .badge{background:rgba(255,255,255,.75);border-color:var(--h-line2);color:#1d3b5e}
.hall.light .buttons button,.hall.light .btn,.hall.light .enter,.hall.light .branch{background:rgba(255,255,255,.82);border-color:var(--h-line2);color:#8f3f3f}
.hall.light .buttons button:hover,.hall.light .btn:hover,.hall.light .enter:hover,.hall.light .branch:hover{background:#fff}
.hall.light .honesty{background:rgba(255,248,232,.85);border-color:#e2d3ad;color:#5c4a22}
.hall.light .honesty strong{color:#3e3014}
.hall.light code{background:rgba(16,36,74,.08);color:var(--h-head)}
.hall.light .ctl input[type=range]{accent-color:#1f4f8f}
.hall.light .status.holding{color:#1f6b3d}
.hall.light .status.recovering{color:#8a5a0c}
.hall.light .status.ruptured{color:#a13d3d}
.hall.light table.nums th,.hall.light .compare th{background:rgba(16,36,74,.06);color:#1d3b5e}
.hall.light.glass p,.hall.light.glass h1,.hall.light.glass h2,.hall.light.glass h3,.hall.light.glass .lede,.hall.light.glass .role,
.hall.light.glass li,.hall.light.glass .tile .basin,.hall.light.glass .tile .col,.hall.light.glass .intro,.hall.light.glass .pair-intro{text-shadow:none}
@media(max-width:800px){
  .hall.light.glass::after{background:rgba(255,255,255,.10)}
}

/* ==========================================================================
   A-Life hub (/bio-kernel-series/a-life/) page-specific classes.
   Added 2026-09-17. Carries the classes that page uses which the base theme
   did not already cover: .crumbs, the gold .badge, the .aim purple call-out,
   and the .st status pills inside .card. .card/.thesis/.note/.enter/.lede
   are already themed above.
   ========================================================================== */
.hall .crumbs{color:var(--h-muted)}
.hall .crumbs a{color:var(--h-link)}
.hall .badge{background:rgba(20,14,9,.55);border-color:var(--h-line2);color:var(--h-text)}
.hall .badge.gold{background:rgba(60,42,16,.60);border-color:var(--h-line2);color:var(--h-gold)}
.hall .aim{background:rgba(30,20,40,.45);border-color:rgba(150,120,190,.34);border-left-color:#a98fd6;color:var(--h-body)}
.hall .aim strong{color:#cbb6f0}
.hall .card .st{color:var(--h-text)}
.hall .card .st-build{background:rgba(60,42,16,.60);color:var(--h-gold)}
.hall .card .st-plan{background:rgba(20,30,52,.60);color:#9cc0ea}

.hall.light .crumbs a{color:var(--h-link)}
.hall.light .aim{background:rgba(246,242,251,.85);border-color:#cdbfe0;border-left-color:#6b4fa0;color:#4a3d63}
.hall.light .aim strong{color:#5a3f8f}
.hall.light .card .st-build{background:rgba(255,243,220,.85);color:#9b5d00}
.hall.light .card .st-plan{background:rgba(238,243,248,.85);color:#3a5a8f}

/* ==========================================================================
   Principia metrics grid (/principia-attractum/metrics/). Added 2026-09-16.
   .metric-grid / .metric-card with .id, .name, .def, .dom. The card links carry
   inline navy colour, so the name colour is lifted with !important.
   ========================================================================== */
.hall .metric-card{background:rgba(18,13,8,.42);border-color:var(--h-line)}
.hall .metric-card .id{background:rgba(214,170,104,.14);color:var(--h-gold)}
.hall .metric-card .name,.hall .metric-card .name a{color:var(--h-head)!important}
.hall .metric-card .name a{border-bottom-color:var(--h-line2)!important}
.hall .metric-card .def{color:var(--h-body)}
.hall .metric-card .dom{color:var(--h-muted);border-top-color:var(--h-line)}
.hall.glass .metric-card .name,.hall.glass .metric-card .def{text-shadow:0 1px 2px rgba(0,0,0,.65)}

.hall.light.glass .metric-card{background:rgba(255,255,255,.55)}
.hall.light .metric-card .id{background:rgba(16,36,74,.08);color:#1d3b5e}
.hall.light .metric-card .name,.hall.light .metric-card .name a{color:#10244a!important}


/* ==========================================================================
   Governance page (/governance/). Added 2026-09-17.
   The page ships its own unscoped inline light-mode styles (.card white, dark
   text on white, .panel/.key/.badge pale fills). These rules override them for
   the dark hall backdrop; !important is needed to beat the page's inline block.
   Scoped under .hall so only the themed page is affected.
   ========================================================================== */
.hall.govpage main .card{background:var(--h-panel)!important;border-color:var(--h-line)!important;
  border-radius:22px;box-shadow:0 18px 44px rgba(0,0,0,.5)!important}
.hall.govpage.glass main .card{background:rgba(22,16,10,.50)!important;backdrop-filter:blur(3px)}
.hall.govpage main h1{color:var(--h-head)!important;font-family:"EB Garamond",Georgia,serif}
.hall.govpage main h2{color:var(--h-head)!important;font-family:"EB Garamond",Georgia,serif}
.hall.govpage main h2 .n{color:var(--h-gold)!important}
.hall.govpage main .lede{color:var(--h-body)!important}
.hall.govpage main p,.hall.govpage main li{color:var(--h-body)!important}
.hall.govpage main a{color:var(--h-link)!important}
.hall.govpage main .rule{color:var(--h-head)!important}
.hall.govpage main .badge{background:rgba(214,170,104,.14)!important;border-color:var(--h-line2)!important;
  color:var(--h-gold)!important}
.hall.govpage main .panel{background:rgba(18,13,8,.42)!important;border-color:var(--h-line)!important}
.hall.govpage main .panel p{color:var(--h-body)!important}
.hall.govpage main .key{background:rgba(214,170,104,.14)!important;border-color:var(--h-line2)!important;
  color:var(--h-gold)!important}
.hall.govpage main blockquote{background:rgba(18,13,8,.38)!important;border-left-color:var(--h-gold)!important;
  color:var(--h-body)!important}
.hall.govpage main .meta{color:var(--h-muted)!important;border-top-color:var(--h-line)!important}
.hall.govpage main .meta b{color:var(--h-head)!important}
.hall.govpage .footer{border-top-color:var(--h-line)!important;color:var(--h-body)!important}
.hall.govpage.glass main h1,.hall.govpage.glass main h2,.hall.govpage.glass main .lede,
.hall.govpage.glass main p,.hall.govpage.glass main li{text-shadow:0 1px 2px rgba(0,0,0,.65)}


/* ==========================================================================
   About page (/about/). Added 2026-09-17. Same situation as /governance/:
   the page ships unscoped inline light-mode styles; these override them for
   the dark hall backdrop. Scoped under .aboutpage so no other page is touched.
   ========================================================================== */
.hall.aboutpage main .card{background:var(--h-panel)!important;border-color:var(--h-line)!important;
  border-radius:22px;box-shadow:0 18px 44px rgba(0,0,0,.5)!important}
.hall.aboutpage.glass main .card{background:rgba(22,16,10,.50)!important;backdrop-filter:blur(3px)}
.hall.aboutpage main h1{color:var(--h-head)!important;font-family:"EB Garamond",Georgia,serif}
.hall.aboutpage main h2{color:var(--h-head)!important;font-family:"EB Garamond",Georgia,serif}
.hall.aboutpage main .lede{color:var(--h-body)!important}
.hall.aboutpage main p,.hall.aboutpage main li{color:var(--h-body)!important}
.hall.aboutpage main p strong{color:var(--h-head)!important}
.hall.aboutpage main a{color:var(--h-link)!important}
.hall.aboutpage main .badge{background:rgba(214,170,104,.14)!important;border-color:var(--h-line2)!important;
  color:var(--h-gold)!important}
.hall.aboutpage main blockquote{background:rgba(18,13,8,.38)!important;border-left-color:var(--h-gold)!important;
  color:var(--h-body)!important}
.hall.aboutpage main .meta{color:var(--h-muted)!important;border-top-color:var(--h-line)!important}
.hall.aboutpage main .meta b{color:var(--h-head)!important}
.hall.aboutpage .footer{border-top-color:var(--h-line)!important;color:var(--h-body)!important}
.hall.aboutpage.glass main h1,.hall.aboutpage.glass main h2,.hall.aboutpage.glass main .lede,
.hall.aboutpage.glass main p,.hall.aboutpage.glass main li{text-shadow:0 1px 2px rgba(0,0,0,.65)}
