html{scroll-behavior:smooth}main.wrap{max-width:1200px;padding-top:45px}section{margin-bottom:84px;scroll-margin-top:24px}
.atlas-hero{max-width:1040px}.atlas-hero h1{font:400 clamp(40px,6vw,72px)/1.12 Georgia,serif;letter-spacing:-2px}.atlas-hero h1 em{color:#0b5d63}.atlas-hero .lead{max-width:820px}
.flow{list-style:none;padding:0;margin:34px 0;display:grid;grid-template-columns:repeat(6,1fr);gap:0;counter-reset:g;font:13px/1.45 system-ui;color:#555}
.flow li{counter-increment:g;padding:12px 14px 12px 0;border-top:3px solid #0b5d63;position:relative}.flow li:not(:last-child)::after{content:"→";position:absolute;right:8px;top:12px;color:#9aa8a2}
.flow b{display:block;font:600 17px Georgia,serif;color:#111}.flow b::before{content:counter(g,decimal-leading-zero) " ";font:500 11px system-ui;color:#0b5d63;letter-spacing:.1em}
.atlas-nav{flex-wrap:wrap;gap:20px;border-top:1px solid #dcd7cc;padding-top:22px}
label{display:block;font:600 13px/1.5 system-ui;margin:18px 0 7px}input,select,textarea,button{font:14px/1.5 system-ui;max-width:100%}
select,input[type=search],textarea{width:100%;padding:10px;border:1px solid #c7cbc4;border-radius:3px;background:#fff;color:#222}input[type=range]{width:100%;accent-color:#0b5d63}output{float:right;color:#0b5d63}
button{border:1px solid #0b5d63;color:#0b5d63;background:#fff;padding:9px 13px;border-radius:3px;cursor:pointer}button:hover,button[aria-pressed=true]{background:#0b5d63;color:#fff}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.opt:focus-within{outline:3px solid #c48122;outline-offset:3px}
/* calls */
.call{display:inline-block;font:700 11px/1 system-ui;letter-spacing:.12em;padding:7px 9px;border-radius:2px;color:#fff;vertical-align:middle;white-space:nowrap}.call.sm{font-size:9.5px;padding:4px 6px;letter-spacing:.1em}
.call-go{background:#1d7a4f}.call-pilot{background:#0b5d63}.call-constrain{background:#8a6400}.call-fix{background:#b4521a}.call-stop{background:#a8231b}.call-none{background:#e7e4dc;color:#777}
/* run */
.presets{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 6px}.preset{font-size:13px;padding:8px 12px}
.gate-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:22px 0 0}
.gate-tab{display:flex;flex-direction:column;align-items:flex-start;gap:5px;border:1px solid #dcd7cc;border-bottom:0;background:#f4f2ec;color:#333;padding:10px 12px;border-radius:4px 4px 0 0;text-align:left}
.gate-tab:hover{background:#ebe8df;color:#111}.gate-tab[aria-selected=true]{background:#fff;color:#111;border-color:#0b5d63;border-top-width:3px}
.gt-n{font:500 10px system-ui;letter-spacing:.14em;color:#0b5d63}.gt-name{font:600 16px Georgia,serif}
.run{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:0;border:1px solid #0b5d63;background:#fff;scroll-margin-top:16px}
.run-q{padding:24px 26px;border-right:1px solid #e3dfd5}.run-m{padding:24px 26px;background:#fafaf6}
.run-q h3{font:400 26px/1.25 Georgia,serif;margin:4px 0 6px}
fieldset.axis{border:0;border-top:1px solid #e3dfd5;margin:16px 0 0;padding:12px 0 0}fieldset.axis legend{font:14px system-ui;padding:0 8px 0 0}fieldset.axis legend b{font-size:15px;color:#0b5d63}
.q{margin:10px 0 14px}.q-text{font:600 14.5px/1.45 system-ui;margin:0 0 7px;color:#222}
.opts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.opt{margin:0;display:flex;font:13px/1.35 system-ui;border:1px solid #cfd3cc;border-radius:3px;background:#fff;cursor:pointer;position:relative}
.opt input{position:absolute;opacity:0;width:1px;height:1px}.opt span{padding:8px 9px;width:100%}
.opt:hover{border-color:#0b5d63}.opt:has(input:checked){background:#0b5d63;border-color:#0b5d63;color:#fff}
.axis-band{font:600 12px system-ui;color:#64716a;margin:0}
#gate-tools{margin-top:18px}#next-gate{margin-top:4px}
.plot-wrap{padding:0 0 28px 30px;position:relative}.plot{height:330px;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);position:relative;border:1px solid #becac4}
.plot.nine{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);height:360px}
.cell{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px;font:13px/1.35 system-ui;border:1px solid #fff;background:#eef0e6;color:#333;overflow-wrap:anywhere;text-align:left;border-radius:0;opacity:.72}
.cell:nth-child(2n){background:#e6ece6}button.cell:hover{background:#dfe8e2;color:#111;opacity:1}
.cell.active{opacity:1;background:#fff;outline:3px solid #0b5d63;outline-offset:-3px;z-index:1;color:#111;font-weight:600}
.plot.nine .cell{padding:9px;font-size:12px}
.marker{position:absolute;height:16px;width:16px;border:3px solid #fff;border-radius:50%;background:#0b5d63;box-shadow:0 0 0 2px #0b5d63;transform:translate(-50%,50%);pointer-events:none;z-index:2}
.axis-x{position:absolute;bottom:0;left:30px;right:0;text-align:center;font:12px system-ui;color:#555}.axis-y{position:absolute;left:0;top:0;bottom:28px;writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;font:12px system-ui;color:#555}
.verdict{border-left:3px solid #0b5d63;padding:4px 16px;margin:14px 0 0}.verdict h3{font:600 21px/1.3 Georgia,serif;margin:8px 0}.verdict p{font-size:16px;margin:6px 0}
.move{font-size:17px!important;color:#111}.ask{background:#fff7e8;border-left:3px solid #c48122;padding:8px 12px;margin-left:-19px!important}
.asks{padding-left:18px;margin:4px 0;font-size:15px}.asks li{margin:4px 0}
/* memo */
.memo{margin-top:26px;border:1px solid #1d2b2c;background:#fff;padding:26px 28px;box-shadow:6px 6px 0 #e4e0d4}
.memo-head{display:grid;grid-template-columns:1fr 1.3fr;gap:28px;align-items:start}
.memo-call .call{font-size:30px;padding:12px 16px;letter-spacing:.08em;margin:8px 0}.memo-call .kicker{display:block}.memo-def{margin:4px 0;font-size:16px}
.memo-bind p{margin:6px 0;font:600 17px Georgia,serif}.memo-bind .small{font:13px system-ui;color:#666}
.ladder{margin:22px 0;border-top:1px solid #e3dfd5;padding-top:14px}.ladder ol{list-style:none;padding:0;margin:10px 0 6px;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;counter-reset:r}
.ladder li{counter-increment:r;font:12px/1.3 system-ui;padding:9px 8px;background:#f0efe9;color:#888;border-bottom:3px solid #ddd}.ladder li::before{content:"L" counter(r) " ";font-weight:700}
.ladder li.on{background:#e0efe7;color:#174d33;border-color:#1d7a4f}.ladder li.held{background:#fbeee4;color:#7a3a12;border-color:#b4521a;text-decoration:line-through}
.ladder li[aria-current]{font-weight:700}
.memo-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:30px}.memo h4{font:600 12px system-ui;letter-spacing:.12em;text-transform:uppercase;color:#0b5d63;margin:8px 0}
.memo ol,.memo ul{padding-left:20px;margin:6px 0 14px}.memo-cols li{font-size:15.5px;margin:7px 0;line-height:1.5}.memo-cols li b{font:600 12px system-ui;color:#555}
.doctrine{background:#123f42;color:#f5f3e8;padding:24px 30px;margin-top:34px}.doctrine h3{color:#fff;margin:0}.doctrine p{margin-bottom:0}
/* lab */
.lab{display:grid;grid-template-columns:290px 1fr;border:1px solid #dcd7cc;background:#fff;border-radius:4px;overflow:hidden}.controls{padding:24px;background:#f0efe9;border-right:1px solid #dcd7cc}.visual{padding:26px;min-width:0}
.controls .small{font:12px/1.6 system-ui}details{font-size:14px;margin:18px 0}summary{cursor:pointer;font-family:system-ui}
/* vocabulary + lenses */
.filter{display:grid;grid-template-columns:2fr 1fr;gap:18px}.term-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.term{border:1px solid #dedbd1;background:#fff;padding:20px;border-radius:3px}.term h3{margin:7px 0;font-size:21px}.term p{font-size:15.5px;margin:7px 0}.term .small{font:12px/1.6 system-ui;color:#64716a}.term .kicker{font-size:10px}
.term-ask{font:italic 17px/1.45 Georgia,serif!important;color:#0b5d63;border-left:2px solid #c48122;padding-left:10px}
.lens-row{font:13px system-ui!important}.linkish{border:0;padding:0;background:none;color:#0b5d63;text-decoration:underline;text-underline-offset:3px;font:600 13px system-ui}.linkish:hover{background:none;color:#123f42}
/* nine */
.nine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}textarea{min-height:120px;resize:vertical}
.check{font:12px/1.4 system-ui;margin:5px 0 0;min-height:1.4em}.check.ok{color:#1d7a4f}.check.ok::before{content:"✓ "}.check.warn{color:#9a4a15}
.button-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:22px 0}
.limits{font-size:16px;color:#555;max-width:820px;border-top:1px solid #dcd7cc;padding-top:10px}
footer{padding-bottom:25px}[hidden]{display:none!important}
@media(max-width:900px){.run{grid-template-columns:1fr}.run-q{border-right:0;border-bottom:1px solid #e3dfd5}.flow{grid-template-columns:repeat(3,1fr)}.flow li:nth-child(3)::after{content:none}.gate-strip{grid-template-columns:repeat(3,1fr)}.gate-tab{border-bottom:1px solid #dcd7cc;border-radius:4px}.memo-head,.memo-cols{grid-template-columns:1fr;gap:12px}}
@media(max-width:800px){.lab{grid-template-columns:1fr}.controls{border-right:0;border-bottom:1px solid #dcd7cc}.term-grid,.nine-grid{grid-template-columns:1fr 1fr}.visual{padding:20px}.atlas-nav{font-size:11px}}
@media(max-width:560px){.term-grid,.nine-grid,.filter{grid-template-columns:1fr}.opts{grid-template-columns:1fr}.flow{grid-template-columns:1fr 1fr}.flow li::after{content:none!important}.gate-strip{grid-template-columns:repeat(2,1fr)}
.plot{height:300px}.plot.nine{height:340px}.plot.nine .cell{padding:5px;font-size:10.5px;gap:4px}.plot.nine .call.sm{font-size:8px;padding:3px 4px}.cell{padding:9px;font-size:12px}
.wrap{padding-left:16px;padding-right:16px}.run-q,.run-m,.visual,.memo{padding:16px}.atlas-hero h1{letter-spacing:-1px}.plot-wrap{padding-left:24px}.ladder ol{grid-template-columns:1fr}.memo-call .call{font-size:24px}.ask{margin-left:-11px!important}}
/* dark theme (site toggle and system preference) */:root[data-theme=dark] body{color-scheme:dark}
:root[data-theme=dark] .run,:root[data-theme=dark] .memo,:root[data-theme=dark] .lab,:root[data-theme=dark] .term,:root[data-theme=dark] .opt,:root[data-theme=dark] select,:root[data-theme=dark] textarea,:root[data-theme=dark] input[type=search],:root[data-theme=dark] button{background:#161a19;color:#d6d9d5;border-color:#2f3836}
:root[data-theme=dark] button,:root[data-theme=dark] .linkish,:root[data-theme=dark] output,:root[data-theme=dark] fieldset.axis legend b,:root[data-theme=dark] .gt-n,:root[data-theme=dark] .memo h4,:root[data-theme=dark] .term-ask,:root[data-theme=dark] .atlas-hero h1 em{color:#7fd0c9}
:root[data-theme=dark] button{border-color:#3c6e6a}:root[data-theme=dark] button:hover,:root[data-theme=dark] button[aria-pressed=true],:root[data-theme=dark] .opt:has(input:checked){background:#0b5d63;color:#fff;border-color:#0b5d63}
:root[data-theme=dark] .linkish{background:none}:root[data-theme=dark] .run{border-color:#3c6e6a}:root[data-theme=dark] .run-q{border-color:#2a3230}
:root[data-theme=dark] .run-m{background:#121514}:root[data-theme=dark] .controls{background:#1a1f1e;border-color:#2a3230}
:root[data-theme=dark] .gate-tab{background:#1a1f1e;color:#c9cdc9;border-color:#2a3230}:root[data-theme=dark] .gate-tab:hover{background:#202625}:root[data-theme=dark] .gate-tab[aria-selected=true]{background:#161a19;color:#f3f2ee;border-color:#7fd0c9}
:root[data-theme=dark] .plot{border-color:#2f3836}:root[data-theme=dark] .cell{background:#1b2120;color:#c9cdc9;border-color:#121514}:root[data-theme=dark] .cell:nth-child(2n){background:#1f2625}:root[data-theme=dark] button.cell:hover{background:#26302e;color:#fff}
:root[data-theme=dark] .cell.active{background:#0f1211;color:#f3f2ee;outline-color:#7fd0c9}
:root[data-theme=dark] .run-q h3,:root[data-theme=dark] .verdict h3,:root[data-theme=dark] .move,:root[data-theme=dark] .memo-bind p,:root[data-theme=dark] .flow b,:root[data-theme=dark] .q-text,:root[data-theme=dark] .term h3,:root[data-theme=dark] .gt-name{color:#f3f2ee}
:root[data-theme=dark] .ask{background:#2a2418;color:#e6dccb}:root[data-theme=dark] .verdict{border-color:#7fd0c9}
:root[data-theme=dark] .memo{border-color:#3a4442;box-shadow:6px 6px 0 #0a0c0c}:root[data-theme=dark] .ladder li{background:#1d2221;color:#8a918d;border-color:#2f3836}
:root[data-theme=dark] .ladder li.on{background:#173326;color:#bfe6cf;border-color:#2fa36b}:root[data-theme=dark] .ladder li.held{background:#33211a;color:#f0b892;border-color:#b4521a}
:root[data-theme=dark] .call-none{background:#2a302e;color:#9ba29e}:root[data-theme=dark] .check.ok{color:#6fcf9f}:root[data-theme=dark] .check.warn{color:#f0a36b}
:root[data-theme=dark] .axis-band,:root[data-theme=dark] .flow,:root[data-theme=dark] .limits{color:#9ba29e}:root[data-theme=dark] .atlas-nav,:root[data-theme=dark] .limits,:root[data-theme=dark] fieldset.axis,:root[data-theme=dark] .ladder,:root[data-theme=dark] .flow li{border-color:#2a3230}:root[data-theme=dark] .flow li{border-top-color:#7fd0c9}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) body{color-scheme:dark}:root:not([data-theme=light]) .run,:root:not([data-theme=light]) .memo,:root:not([data-theme=light]) .lab,:root:not([data-theme=light]) .term,:root:not([data-theme=light]) .opt,:root:not([data-theme=light]) select,:root:not([data-theme=light]) textarea,:root:not([data-theme=light]) input[type=search],:root:not([data-theme=light]) button{background:#161a19;color:#d6d9d5;border-color:#2f3836}:root:not([data-theme=light]) button,:root:not([data-theme=light]) .linkish,:root:not([data-theme=light]) output,:root:not([data-theme=light]) fieldset.axis legend b,:root:not([data-theme=light]) .gt-n,:root:not([data-theme=light]) .memo h4,:root:not([data-theme=light]) .term-ask,:root:not([data-theme=light]) .atlas-hero h1 em{color:#7fd0c9}:root:not([data-theme=light]) button{border-color:#3c6e6a}:root:not([data-theme=light]) button:hover,:root:not([data-theme=light]) button[aria-pressed=true],:root:not([data-theme=light]) .opt:has(input:checked){background:#0b5d63;color:#fff;border-color:#0b5d63}:root:not([data-theme=light]) .linkish{background:none}:root:not([data-theme=light]) .run{border-color:#3c6e6a}:root:not([data-theme=light]) .run-q{border-color:#2a3230}:root:not([data-theme=light]) .run-m{background:#121514}:root:not([data-theme=light]) .controls{background:#1a1f1e;border-color:#2a3230}:root:not([data-theme=light]) .gate-tab{background:#1a1f1e;color:#c9cdc9;border-color:#2a3230}:root:not([data-theme=light]) .gate-tab:hover{background:#202625}:root:not([data-theme=light]) .gate-tab[aria-selected=true]{background:#161a19;color:#f3f2ee;border-color:#7fd0c9}:root:not([data-theme=light]) .plot{border-color:#2f3836}:root:not([data-theme=light]) .cell{background:#1b2120;color:#c9cdc9;border-color:#121514}:root:not([data-theme=light]) .cell:nth-child(2n){background:#1f2625}:root:not([data-theme=light]) button.cell:hover{background:#26302e;color:#fff}:root:not([data-theme=light]) .cell.active{background:#0f1211;color:#f3f2ee;outline-color:#7fd0c9}:root:not([data-theme=light]) .run-q h3,:root:not([data-theme=light]) .verdict h3,:root:not([data-theme=light]) .move,:root:not([data-theme=light]) .memo-bind p,:root:not([data-theme=light]) .flow b,:root:not([data-theme=light]) .q-text,:root:not([data-theme=light]) .term h3,:root:not([data-theme=light]) .gt-name{color:#f3f2ee}:root:not([data-theme=light]) .ask{background:#2a2418;color:#e6dccb}:root:not([data-theme=light]) .verdict{border-color:#7fd0c9}:root:not([data-theme=light]) .memo{border-color:#3a4442;box-shadow:6px 6px 0 #0a0c0c}:root:not([data-theme=light]) .ladder li{background:#1d2221;color:#8a918d;border-color:#2f3836}:root:not([data-theme=light]) .ladder li.on{background:#173326;color:#bfe6cf;border-color:#2fa36b}:root:not([data-theme=light]) .ladder li.held{background:#33211a;color:#f0b892;border-color:#b4521a}:root:not([data-theme=light]) .call-none{background:#2a302e;color:#9ba29e}:root:not([data-theme=light]) .check.ok{color:#6fcf9f}:root:not([data-theme=light]) .check.warn{color:#f0a36b}:root:not([data-theme=light]) .axis-band,:root:not([data-theme=light]) .flow,:root:not([data-theme=light]) .limits{color:#9ba29e}:root:not([data-theme=light]) .atlas-nav,:root:not([data-theme=light]) .limits,:root:not([data-theme=light]) fieldset.axis,:root:not([data-theme=light]) .ladder,:root:not([data-theme=light]) .flow li{border-color:#2a3230}:root:not([data-theme=light]) .flow li{border-top-color:#7fd0c9}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.controls,.atlas-nav,.filter,.button-row,button,.presets,.gate-strip,.run,#combinations,#questions,#lenses,#nine,.top,.flow{display:none}.memo{box-shadow:none}}
.verdict p.kicker{font-size:11px!important;margin:16px 0 4px}
.byline{font:13px/1.5 system-ui;color:#666;margin:14px 0 0}.byline a{font-weight:600}.credit{color:#8a5a00!important}.cite{font:13px/1.6 system-ui;background:#f0efe9;padding:10px 14px}:root[data-theme=dark] .cite{background:#1a1f1e}:root[data-theme=dark] .credit{color:#e8aa6a!important}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .cite{background:#1a1f1e}:root:not([data-theme=light]) .credit{color:#e8aa6a!important}}
