/* r32 owner: loop-workbench. Exact r30 source lines 5263-5853; route scope is declared by data/css-ownership.json. */
/* Loop thesis ------------------------------------------------------------- */

.section--loop-thesis {
    background: var(--bg-soft);
}

.loop-thesis__statement {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(22rem, 0.9fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: end;
}

.loop-thesis__statement h2 {
    max-width: 11ch;
}

.loop-thesis__lead {
    margin-bottom: 1rem;
    color: var(--muted);
    font-size: clamp(1.12rem, 1.7vw, 1.45rem);
    line-height: 1.65;
}

.register-split {
    display: grid;
    margin-top: clamp(3rem, 6vw, 5.4rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 1px solid var(--line);
    border-radius: 1.1rem;
    overflow: hidden;
}

.register-split article {
    min-height: 24rem;
    padding: clamp(1.7rem, 4vw, 3.2rem);
    border-right: 1px solid var(--line);
    background: var(--surface);
}

.register-split article:last-child {
    border-right: 0;
    background: linear-gradient(145deg, rgba(var(--signal-rgb), 0.06), transparent 65%), var(--surface);
}

.register-split article > span {
    display: block;
    margin-bottom: 3rem;
    color: var(--signal);
    font-family: var(--font-mono);
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.register-split h3 {
    max-width: 18ch;
    font-size: clamp(1.75rem, 3vw, 3.1rem);
}

.register-split p {
    color: var(--muted);
}

.register-split strong {
    display: block;
    margin-top: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* Recurrence engine ------------------------------------------------------- */

.section--recurrence-engine {
    overflow: hidden;
}

.recurrence-engine {
    display: grid;
    grid-template-columns: minmax(37rem, 1.1fr) minmax(22rem, 0.9fr);
    border: 1px solid var(--line);
    border-radius: 1.3rem;
    overflow: hidden;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.recurrence-map {
    position: relative;
    min-height: 43rem;
    border-right: 1px solid var(--line);
    background:
        linear-gradient(var(--line) 1px, transparent 1px),
        linear-gradient(90deg, var(--line) 1px, transparent 1px),
        radial-gradient(circle, rgba(var(--signal-rgb), 0.07), transparent 42%);
    background-size: 4rem 4rem, 4rem 4rem, auto;
}

.recurrence-map__orbit {
    position: absolute;
    inset: 12%;
    border: 1px solid rgba(var(--signal-rgb), 0.32);
    border-radius: 50%;
}

.recurrence-map__orbit::before,
.recurrence-map__orbit::after {
    position: absolute;
    inset: 15%;
    border: 1px dashed var(--line-strong);
    border-radius: 50%;
    content: "";
}

.recurrence-map__orbit::after {
    inset: 34%;
    border-style: solid;
    border-color: rgba(var(--signal-rgb), 0.22);
}

.recurrence-map__orbit i {
    position: absolute;
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 50%;
    background: var(--signal);
    box-shadow: 0 0 1.1rem var(--signal);
}

.recurrence-map__orbit i:nth-child(1) { top: 4%; left: 31%; }
.recurrence-map__orbit i:nth-child(2) { top: 52%; right: -0.25rem; }
.recurrence-map__orbit i:nth-child(3) { bottom: 8%; left: 17%; }

.recurrence-map__core {
    position: absolute;
    inset: 50% auto auto 50%;
    z-index: 2;
    display: grid;
    width: 9.6rem;
    aspect-ratio: 1;
    place-items: center;
    border: 1px solid rgba(var(--signal-rgb), 0.44);
    border-radius: 50%;
    background: var(--surface);
    box-shadow: 0 0 4rem rgba(var(--signal-rgb), 0.12);
    transform: translate(-50%, -50%);
}

.recurrence-map__core strong {
    color: var(--signal);
    font-size: 3rem;
    line-height: 0.8;
}

.recurrence-map__core span {
    color: var(--faint);
    font-family: var(--font-mono);
    font-size: 0.48rem;
    letter-spacing: 0.14em;
}

.recurrence-node {
    position: absolute;
    z-index: 3;
    display: grid;
    width: 7.3rem;
    min-height: 3.6rem;
    padding: 0.6rem 0.65rem;
    grid-template-columns: auto 1fr;
    gap: 0.45rem;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 0.75rem;
    color: var(--muted);
    background: rgba(13, 13, 18, 0.9);
    box-shadow: 0 0 0 0 rgba(var(--signal-rgb), 0);
    transform: translate(-50%, -50%);
    transition: border-color .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease, transform .25s ease;
}

html[data-theme="dawn"] .recurrence-node {
    background: rgba(246, 241, 232, 0.92);
}

.recurrence-node span {
    color: var(--signal);
    font-family: var(--font-mono);
    font-size: 0.52rem;
}

.recurrence-node strong {
    overflow: hidden;
    font-size: 0.58rem;
    letter-spacing: 0.055em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.recurrence-node:hover,
.recurrence-node[aria-selected="true"] {
    z-index: 4;
    border-color: var(--signal);
    color: var(--text);
    background: rgba(var(--signal-rgb), 0.1);
    box-shadow: 0 0 0 0.4rem rgba(var(--signal-rgb), 0.055);
    transform: translate(-50%, -50%) scale(1.04);
}

.recurrence-node:nth-of-type(1) { top: 8%; left: 50%; }
.recurrence-node:nth-of-type(2) { top: 18%; left: 78%; }
.recurrence-node:nth-of-type(3) { top: 38%; left: 91%; }
.recurrence-node:nth-of-type(4) { top: 65%; left: 87%; }
.recurrence-node:nth-of-type(5) { top: 86%; left: 68%; }
.recurrence-node:nth-of-type(6) { top: 92%; left: 38%; }
.recurrence-node:nth-of-type(7) { top: 77%; left: 12%; }
.recurrence-node:nth-of-type(8) { top: 52%; left: 6%; }
.recurrence-node:nth-of-type(9) { top: 27%; left: 14%; }
.recurrence-node:nth-of-type(10) { top: 11%; left: 27%; }

.recurrence-inspector {
    display: flex;
    min-width: 0;
    min-height: 43rem;
    padding: clamp(2rem, 5vw, 4rem);
    flex-direction: column;
    justify-content: center;
}

.recurrence-inspector__top {
    display: flex;
    margin-bottom: 2.2rem;
    align-items: baseline;
    justify-content: space-between;
    border-bottom: 1px solid var(--line);
}

.recurrence-inspector__top span {
    color: var(--signal);
    font-family: var(--font-display);
    font-size: clamp(4rem, 8vw, 7rem);
    line-height: 0.85;
}

.recurrence-inspector__top em {
    color: var(--faint);
    font-family: var(--font-mono);
    font-size: 0.54rem;
    font-style: normal;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.recurrence-inspector h3 {
    font-size: clamp(2.2rem, 4vw, 4rem);
}

.recurrence-inspector__summary {
    color: var(--muted);
    font-size: 1.04rem;
}

.recurrence-inspector__evidence {
    margin-top: 1rem;
    padding: 1rem;
    border-left: 0.18rem solid var(--signal);
    background: rgba(var(--signal-rgb), 0.05);
}

.recurrence-inspector__evidence span {
    color: var(--signal);
    font-family: var(--font-mono);
    font-size: 0.5rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.recurrence-inspector__evidence p {
    margin: 0.35rem 0 0;
    color: var(--muted);
    font-size: 0.76rem;
}

.recurrence-inspector blockquote {
    margin: 1.5rem 0 0;
    padding-top: 1.2rem;
    border-top: 1px solid var(--line);
    color: var(--text);
    font-family: var(--font-mono);
    font-size: 0.78rem;
    line-height: 1.65;
}

/* Lens engine ------------------------------------------------------------- */

.section--loop-lenses {
    background: var(--bg-soft);
}

.lens-engine {
    display: grid;
    grid-template-columns: minmax(15rem, 0.35fr) minmax(0, 0.65fr);
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    overflow: hidden;
    background: var(--surface);
}

.lens-engine__tabs {
    display: grid;
    border-right: 1px solid var(--line);
}

.lens-engine__tabs button {
    display: grid;
    min-height: 7rem;
    padding: 1.2rem;
    grid-template-columns: 2rem 1fr;
    gap: 0.6rem;
    align-items: center;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    background: transparent;
    text-align: left;
    font-size: 0.82rem;
    font-weight: 800;
}

.lens-engine__tabs button:last-child { border-bottom: 0; }
.lens-engine__tabs button span { color: var(--signal); font-family: var(--font-mono); font-size: 0.55rem; }
.lens-engine__tabs button:hover,
.lens-engine__tabs button[aria-selected="true"] { color: var(--text); background: rgba(var(--signal-rgb), 0.065); box-shadow: inset 0.18rem 0 var(--signal); }

.lens-engine__panel {
    min-height: 24rem;
    padding: clamp(2rem, 5vw, 4rem);
}

.lens-engine__panel h3 {
    font-size: clamp(2rem, 4.2vw, 4rem);
}

.lens-engine__panel > p:not(.eyebrow) {
    max-width: 52rem;
    color: var(--muted);
    font-size: 1.08rem;
}

.lens-engine__boundary {
    margin-top: 2rem;
    padding: 1.1rem;
    border: 1px solid var(--line);
    border-radius: 0.8rem;
    background: rgba(255,255,255,0.015);
}

.lens-engine__boundary span {
    display: block;
    margin-bottom: 0.35rem;
    color: var(--signal);
    font-family: var(--font-mono);
    font-size: 0.5rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.lens-engine__boundary p { margin: 0; color: var(--muted); }

/* Analogy firewall -------------------------------------------------------- */

.analogy-matrix {
    border: 1px solid var(--line);
    border-radius: 1rem;
    overflow: hidden;
}

.analogy-row {
    display: grid;
    grid-template-columns: 0.45fr 1fr 1fr 0.9fr;
    border-bottom: 1px solid var(--line);
}

.analogy-row:last-child { border-bottom: 0; }

.analogy-row > * {
    min-width: 0;
    min-height: 8rem;
    margin: 0;
    padding: 1.2rem;
    border-right: 1px solid var(--line);
    color: var(--muted);
    font-size: 0.82rem;
    line-height: 1.55;
}

.analogy-row > *:last-child { border-right: 0; }
.analogy-row > span { color: var(--signal); font-family: var(--font-mono); font-size: 0.62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.analogy-row--head { background: var(--surface-2); }
.analogy-row--head > * { min-height: auto; color: var(--text); font-family: var(--font-mono); font-size: 0.55rem; letter-spacing: .1em; text-transform: uppercase; }

/* Architecture engine ---------------------------------------------------- */

.section--architecture-lab { background: var(--bg-soft); }

.architecture-layout {
    display: grid;
    grid-template-columns: minmax(20rem, 0.72fr) minmax(31rem, 1.28fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: center;
}

.architecture-layout__copy h2 { max-width: 9ch; }
.architecture-layout__copy > p { max-width: 37rem; color: var(--muted); font-size: 1.07rem; }
.architecture-layout__note { padding: .9rem 1rem; border-left: .17rem solid var(--signal); background: rgba(var(--signal-rgb),.05); font-family: var(--font-mono); font-size: .68rem !important; }

.architecture-engine {
    display: grid;
    grid-template-columns: minmax(13rem, .4fr) minmax(0, .6fr);
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    overflow: hidden;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.architecture-engine__tabs { border-right: 1px solid var(--line); }
.architecture-engine__tabs button {
    display: grid;
    width: 100%;
    min-height: 5.7rem;
    padding: 1rem;
    grid-template-columns: 1.7rem 1fr;
    gap: .55rem;
    align-items: center;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    background: transparent;
    text-align: left;
}
.architecture-engine__tabs button:last-child { border-bottom: 0; }
.architecture-engine__tabs span { color: var(--signal); font-family: var(--font-mono); font-size: .51rem; }
.architecture-engine__tabs strong { font-size: .67rem; line-height: 1.35; }
.architecture-engine__tabs button:hover,
.architecture-engine__tabs button[aria-selected="true"] { color: var(--text); background: rgba(var(--signal-rgb),.065); box-shadow: inset .17rem 0 var(--signal); }

.architecture-engine__panel { padding: clamp(1.8rem,4vw,3.2rem); }
.architecture-engine__panel h3 { font-size: clamp(2rem,3.8vw,3.6rem); }
.architecture-engine__panel dl { margin: 1.4rem 0; border-top: 1px solid var(--line); }
.architecture-engine__panel dl div { display: grid; padding: .8rem 0; grid-template-columns: 5.4rem 1fr; gap: .8rem; border-bottom: 1px solid var(--line); }
.architecture-engine__panel dt { color: var(--signal); font-family: var(--font-mono); font-size: .5rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.architecture-engine__panel dd { margin: 0; color: var(--muted); font-size: .78rem; }
.architecture-engine__panel blockquote { margin: 1.4rem 0 0; padding: 1rem; border-left: .18rem solid var(--signal); background: rgba(var(--signal-rgb),.045); color: var(--text); font-family: var(--font-mono); font-size: .7rem; }

/* Cycle lab --------------------------------------------------------------- */

.cycle-lab-layout {
    display: grid;
    grid-template-columns: minmax(21rem, .68fr) minmax(34rem, 1.32fr);
    gap: clamp(3rem, 7vw, 7rem);
    align-items: start;
}

.cycle-lab-copy { position: sticky; top: calc(var(--header-h) + 2rem); }
.cycle-lab-copy h2 { max-width: 9ch; }
.cycle-lab-copy > p { max-width: 38rem; color: var(--muted); }

.cycle-formula {
    margin: 1.6rem 0;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: .8rem;
    background: var(--surface);
    overflow-x: auto;
}
.cycle-formula span { display: block; color: var(--signal); font-family: var(--font-display); font-size: 1.8rem; }
.cycle-formula strong { display: block; min-width: 36rem; font-family: var(--font-mono); font-size: .66rem; letter-spacing: .03em; }
.cycle-lab-warning { padding-left: 1rem; border-left: .17rem solid var(--dawn); font-family: var(--font-mono); font-size: .68rem; }
.cycle-lab-warning strong { color: var(--dawn); }

.cycle-lab {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, .52fr);
    border: 1px solid var(--line);
    border-radius: 1.2rem;
    overflow: hidden;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.cycle-lab__controls { padding: 1.2rem; border-right: 1px solid var(--line); }
.cycle-control { display: block; padding: 1rem .85rem; border-bottom: 1px solid var(--line); }
.cycle-control:last-child { border-bottom: 0; }
.cycle-control > span { display: flex; margin-bottom: .65rem; align-items: baseline; justify-content: space-between; gap: 1rem; }
.cycle-control strong { font-size: .72rem; }
.cycle-control output { color: var(--signal); font-family: var(--font-mono); font-size: .57rem; text-align: right; }
.cycle-control small { display: block; margin-top: .45rem; color: var(--faint); font-size: .58rem; }
.cycle-control input[type="range"] { width: 100%; accent-color: var(--signal); }

.cycle-lab__result {
    display: flex;
    padding: 1.6rem;
    flex-direction: column;
    justify-content: center;
    background: linear-gradient(145deg, rgba(var(--signal-rgb),.08), transparent 70%);
}
.cycle-lab__result > span { color: var(--faint); font-family: var(--font-mono); font-size: .5rem; letter-spacing: .12em; text-transform: uppercase; }
.cycle-lab__result > strong { margin: .7rem 0; color: var(--signal); font-family: var(--font-display); font-size: clamp(3.4rem,6vw,6rem); line-height: 1; }
.cycle-lab__result meter { width: 100%; height: .8rem; accent-color: var(--signal); }
.cycle-lab__result h3 { margin: 1.4rem 0 .6rem; font-size: 1.3rem; }
.cycle-lab__result p { margin: 0; color: var(--muted); font-size: .72rem; }

/* Deep time --------------------------------------------------------------- */

.section--deep-time { background: var(--bg-soft); }
.deep-time-track { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); border: 1px solid var(--line); border-radius: 1rem; overflow: hidden; }
.deep-time-track article { position: relative; min-height: 19rem; padding: 1.35rem; border-right: 1px solid var(--line); background: var(--surface); }
.deep-time-track article:last-child { border-right: 0; }
.deep-time-track article::after { position: absolute; right: 0; bottom: 0; left: 0; height: .16rem; content: ""; background: var(--signal); opacity: calc(.18 + (var(--i, 1) * .1)); }
.deep-time-track article:nth-child(1) { --i: 1; }
.deep-time-track article:nth-child(2) { --i: 2; }
.deep-time-track article:nth-child(3) { --i: 3; }
.deep-time-track article:nth-child(4) { --i: 4; }
.deep-time-track article:nth-child(5) { --i: 5; }
.deep-time-track span { color: var(--signal); font-family: var(--font-mono); font-size: .58rem; letter-spacing: .08em; }
.deep-time-track h3 { margin-top: 4.5rem; font-size: 1.25rem; }
.deep-time-track p { color: var(--muted); font-size: .72rem; }

/* Ethics ------------------------------------------------------------------ */

.ethics-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: .65rem; }
.ethics-card { min-height: 19rem; padding: 1.25rem; border: 1px solid var(--line); border-radius: .9rem; background: var(--surface); }
.ethics-card > span { color: var(--signal); font-family: var(--font-mono); font-size: .56rem; }
.ethics-card h3 { margin-top: 4rem; font-size: 1.25rem; }
.ethics-card p { margin: 0; color: var(--muted); font-size: .72rem; }

.ethics-scenario { display: grid; margin-top: 1rem; grid-template-columns: minmax(17rem,.7fr) minmax(0,1.3fr); border: 1px solid var(--line); border-radius: 1rem; overflow: hidden; background: var(--surface); }
.ethics-scenario > div,
.ethics-scenario > article { padding: clamp(1.5rem,4vw,3rem); }
.ethics-scenario > div { border-right: 1px solid var(--line); }
.ethics-scenario label { display: block; margin: 1rem 0 .45rem; color: var(--faint); font-family: var(--font-mono); font-size: .52rem; letter-spacing: .1em; text-transform: uppercase; }
.ethics-scenario select { width: 100%; min-height: 3.3rem; padding: .75rem; border: 1px solid var(--line-strong); border-radius: .65rem; background: var(--surface-2); }
.ethics-scenario > article { background: linear-gradient(135deg, rgba(var(--signal-rgb),.1), transparent 70%); }
.ethics-scenario > article > span { display: inline-flex; padding: .4rem .65rem; border: 1px solid rgba(var(--signal-rgb),.38); border-radius: 999px; color: var(--signal); font-family: var(--font-mono); font-size: .53rem; font-weight: 800; letter-spacing: .1em; }
.ethics-scenario > article h3 { margin-top: 1.7rem; font-size: clamp(1.7rem,3vw,3rem); }
.ethics-scenario > article p { color: var(--muted); }

/* Evidence / signals / failures ------------------------------------------ */

.section--evidence-ladder { background: var(--bg-soft); }
.evidence-ladder { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .7rem; }
.evidence-rung { min-height: 22rem; padding: 1.4rem; border: 1px solid var(--line); border-radius: .9rem; background: var(--surface); }
.evidence-rung > span { color: rgba(var(--signal-rgb),.18); font-family: var(--font-display); font-size: 5rem; line-height: 1; }
.evidence-rung h3 { font-size: 1.5rem; }
.evidence-rung > p:last-child { color: var(--muted); font-size: .76rem; }

.signal-card-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .7rem; }
.signal-card { position: relative; min-height: 22rem; padding: 1.35rem; border: 1px solid var(--line); border-radius: .9rem; overflow: hidden; background: var(--surface); }
.signal-card::after { position: absolute; right: -4rem; bottom: -4rem; width: 10rem; height: 10rem; border: 1px solid rgba(var(--signal-rgb),.24); border-radius: 50%; content: ""; }
.signal-card > span { color: var(--signal); font-family: var(--font-mono); font-size: .56rem; }
.signal-card h3 { margin-top: 6rem; font-size: 1.45rem; }
.signal-card p { color: var(--muted); font-size: .76rem; }

.section--failure-modes { background: var(--bg-soft); }
.failure-layout { display: grid; grid-template-columns: minmax(19rem,.65fr) minmax(31rem,1.35fr); gap: clamp(3rem,8vw,8rem); }
.failure-layout h2 { max-width: 8ch; }
.failure-layout > div > p:last-child { color: var(--muted); }
.failure-list { margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 1rem; overflow: hidden; list-style: none; }
.failure-list li { display: grid; min-height: 5.4rem; padding: 1rem 1.2rem; grid-template-columns: 3rem 1fr; gap: 1rem; align-items: center; border-bottom: 1px solid var(--line); background: var(--surface); }
.failure-list li:last-child { border-bottom: 0; }
.failure-list span { color: var(--signal); font-family: var(--font-mono); font-size: .56rem; }
.failure-list p { margin: 0; color: var(--muted); font-size: .82rem; }

.manifesto-band--loop { background: radial-gradient(circle at 80% 30%, rgba(255,255,255,.13), transparent 25rem), linear-gradient(115deg,#13131a,#17121a 55%,#220d16); }
.manifesto-band--loop::before { color: var(--signal); opacity: .1; }
.manifesto-band--loop .eyebrow { color: var(--signal); }
.manifesto-band--loop h2 { color: var(--text); }
.manifesto-band--loop p:not(.eyebrow) { color: var(--muted); }
.manifesto-band--loop .manifesto-band__declaration { color: var(--signal); border-top-color: var(--line); }

.loop-exit { display: grid; padding: clamp(2rem,5vw,4rem); grid-template-columns: minmax(0,1.2fr) minmax(18rem,.8fr); gap: 3rem; align-items: end; border: 1px solid var(--line); border-radius: 1.1rem; background: linear-gradient(145deg,rgba(var(--signal-rgb),.06),transparent 60%),var(--surface); }
.loop-exit h2 { max-width: 12ch; font-size: clamp(2.6rem,4.8vw,5rem); }
.loop-exit p { max-width: 48rem; color: var(--muted); }
.loop-exit__actions { display: grid; gap: .65rem; }

