/* "How close are we?" magazine: lab-notebook styling */
body.lab{background:var(--paper);color:var(--ink);
 background-image:linear-gradient(rgba(200,70,30,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(200,70,30,.08) 1px,transparent 1px);background-size:24px 24px}
.lab :focus-visible{outline-color:var(--rust-ink)}
.subnav{background:var(--ink);color:var(--cream)}
.subnav .wrap{display:flex;align-items:center;gap:22px;padding-top:10px;padding-bottom:10px;font-family:var(--mono);font-size:13px;letter-spacing:1px;overflow-x:auto;white-space:nowrap}
.subnav b{font-family:var(--display);font-size:13px;letter-spacing:2px;color:var(--ochre)}
.subnav a{color:var(--cream);text-decoration:none}
.subnav a[aria-current]{text-decoration:underline;text-underline-offset:4px;color:#fff}
.subnav .sp{flex:1}
.mast{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:26px 0 14px;border-bottom:3px double var(--ink)}
.mast h1{font-family:var(--display);font-size:clamp(34px,5vw,58px);font-weight:800;letter-spacing:-1px;line-height:.95;text-transform:uppercase}
.mast h1 em{font-style:normal;color:var(--rust-ink)}
.mast .r{font-family:var(--mono);font-size:12.5px;text-align:right;line-height:1.7;color:#5b574f;letter-spacing:1px;text-transform:uppercase}
@media (max-width:700px){.mast .r{text-align:left}}
.mag-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:38px;padding:26px 0 0}
@media (max-width:1000px){.mag-grid{grid-template-columns:1fr}}
.lead{display:grid;grid-template-columns:1.05fr 1fr;gap:26px;align-items:start}
@media (max-width:700px){.lead{grid-template-columns:1fr}}
.fig{border:1px solid var(--ink);box-shadow:6px 6px 0 var(--ochre);aspect-ratio:4/5;background:var(--navy);overflow:hidden}
.fig svg{width:100%;height:100%}
.figcap{font-family:var(--mono);font-size:12px;color:#5b574f;margin-top:12px}
.tagl{font-family:var(--mono);font-size:12.5px;letter-spacing:2px;color:var(--rust-ink);text-transform:uppercase}
.lead h2{font-family:var(--serif);font-size:clamp(28px,3vw,38px);line-height:1.05;margin:10px 0 12px;font-weight:600}
.lead p{font-size:17px;line-height:1.55;color:#33302b}
.meter{margin:16px 0;border:1px solid var(--ink);padding:12px 14px;background:var(--paper2)}
.side h3{font-family:var(--mono);font-size:12.5px;letter-spacing:3px;border-bottom:1px solid var(--ink);padding-bottom:8px;display:flex;justify-content:space-between;text-transform:uppercase}
.side h3 span{color:var(--rust-ink)}
.idx{list-style:none;counter-reset:n}
.idx li{display:grid;grid-template-columns:34px 1fr 80px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed #8d877b}
.idx .n{font-family:var(--display);font-size:16px;color:var(--rust-ink);font-weight:700}
.idx a{font-family:var(--serif);font-size:16px;line-height:1.2;font-weight:600;text-decoration:none}
.idx a:hover{text-decoration:underline}
.idx .k{font-family:var(--mono);font-size:11.5px;color:var(--ink-muted);letter-spacing:1px;margin-top:2px;text-transform:uppercase}
.idx .mini{height:6px;border:1px solid var(--ink);margin-top:4px;position:relative}.idx .mini i{position:absolute;left:0;top:0;bottom:0;background:var(--rust)}
.idx .pct{text-align:right;font-family:var(--mono);font-size:17px;font-weight:600}
.idx .pct small{display:block;font-size:10.5px;color:var(--ink-muted);font-weight:400;letter-spacing:.5px}
.idx-note{font-family:var(--mono);font-size:12px;color:var(--ink-muted);margin-top:8px;line-height:1.6}
.mapcta{margin-top:16px;border:1.5px solid var(--ink);color:var(--ink);padding:13px 15px;display:flex;align-items:center;gap:14px;text-decoration:none;background:var(--paper2)}
.mapcta .d{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--teal);display:grid;place-items:center;flex:none}.mapcta .d i{width:9px;height:9px;border-radius:50%;background:var(--teal)}
.mapcta b{font-family:var(--display);font-size:13.5px;display:block}.mapcta small{font-family:var(--mono);font-size:12px;color:var(--ink-muted)}
.mapcta:hover{background:#fff}
.topics{display:flex;gap:10px;margin:34px 0 0;align-items:center;font-family:var(--mono);font-size:13px;flex-wrap:wrap}
.topics .l{letter-spacing:2px;color:#5b574f;margin-right:4px}
.topics button{border:1px solid var(--ink);padding:5px 11px;background:var(--paper2);cursor:pointer;color:var(--ink);font-family:var(--mono);font-size:13px}
.topics button[aria-pressed=true]{background:var(--ink);color:var(--ochre)}
.notes{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.notes input{border:1px solid var(--ink);background:#fff;padding:7px 12px;width:210px;font-family:var(--mono);font-size:13px;color:var(--ink)}
.notes small{flex-basis:100%;text-align:right;color:var(--ink-muted);font-size:11.5px}
.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px;margin:20px 0 10px;border-top:1px solid var(--ink);padding-top:18px}
.file{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);background:var(--paper2);border:1px solid var(--ink)}
.file .cover{aspect-ratio:16/9;border-bottom:1px solid var(--ink);overflow:hidden}.file .cover svg{width:100%;height:100%}
.file .b{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}
.file .t{font-family:var(--serif);font-size:17px;font-weight:600;line-height:1.2}
.file .s{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;letter-spacing:1px;color:var(--rust-ink);text-transform:uppercase}
.file .s b{color:var(--ink)}
.file .soon{font-family:var(--mono);font-size:11.5px;color:var(--ink-muted)}
a.file:hover .t{text-decoration:underline}
/* article */
.art-hd{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;padding:30px 0 10px}
@media (max-width:900px){.art-hd{grid-template-columns:1fr}}
.art-hd h1{font-family:var(--serif);font-size:clamp(32px,4.4vw,56px);line-height:1.02;font-weight:600;margin:12px 0}
.art-hd .dek{font-size:19px;line-height:1.5;color:#33302b}
.byline{font-family:var(--mono);font-size:12.5px;color:var(--ink-muted);margin-top:12px;letter-spacing:.5px}
.cover-xl{border:1px solid var(--ink);box-shadow:8px 8px 0 var(--ochre);aspect-ratio:16/10;overflow:hidden}.cover-xl svg{width:100%;height:100%}
.prose{max-width:68ch;margin:20px auto 0;font-size:19px;line-height:1.65}
.prose p{margin:0 0 1.1em}
.prose h2{font-family:var(--display);font-size:22px;margin:1.6em 0 .6em;font-weight:700}
.prose .drop:first-letter{font-family:var(--display);float:left;font-size:64px;line-height:.9;padding:6px 10px 0 0;color:var(--rust-ink)}
.callout{border:1px solid var(--ink);background:var(--paper2);padding:16px 18px;margin:1.4em 0;font-size:16.5px}
.callout .k{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--rust-ink);text-transform:uppercase;margin-bottom:6px}
.wide{max-width:980px;margin:34px auto}
.sample-flag{display:inline-block;font-family:var(--mono);font-size:11.5px;letter-spacing:1px;border:1px dashed var(--ink);padding:3px 8px;margin-top:10px;text-transform:uppercase}
/* terraform toy */
.toy{border:1px solid var(--ink);background:var(--navy);color:var(--sand);display:grid;grid-template-columns:1.5fr 1fr}
@media (max-width:800px){.toy{grid-template-columns:1fr}}
.toy .cv{position:relative;width:100%;aspect-ratio:1/1;max-height:640px;min-height:280px;background:#120f2e}
@media (min-width:801px){.toy .cv{aspect-ratio:auto;max-height:none;min-height:480px;height:100%}}
.toy canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}
.toy canvas:focus-visible{outline:3px solid var(--ochre);outline-offset:-3px}
.toy .ctl{padding:18px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.toy h3{font-family:var(--display);font-size:18px;color:var(--cream)}
.toy .k{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--teal-hi);text-transform:uppercase}
.toy .cov{font-family:var(--mono);font-size:14px}
.toy .cov b{font-family:var(--display);font-size:30px;color:var(--cream);display:block}
.toy ol{list-style:none;display:flex;flex-direction:column;gap:8px}
.toy li{font-size:14.5px;line-height:1.4;padding:8px 10px;border:1px dashed var(--line);border-radius:6px;color:var(--muted)}
.toy li.hit{border-style:solid;border-color:var(--teal);color:var(--sand);background:rgba(95,179,161,.1)}
.toy li b{font-family:var(--mono);font-size:12px;display:block;letter-spacing:1px;color:var(--ochre)}
.toy li .reality{font-family:var(--mono);font-size:11.5px;color:var(--teal-hi);display:block;margin-top:3px}
.toy .row{display:flex;gap:8px;flex-wrap:wrap}
.toy .btn{color:var(--sand);border-color:var(--line);border-radius:30px}
.toy .fine{font-family:var(--mono);font-size:12px;color:var(--muted);line-height:1.5}
/* method */
.method{max-width:820px;margin:0 auto;padding:30px 0 20px}
.method h1{font-family:var(--display);font-size:clamp(28px,4vw,44px);font-weight:800;line-height:1.05;margin:10px 0}
.method h2{font-family:var(--display);font-size:20px;margin:34px 0 10px}
.method p,.method li{font-size:18px;line-height:1.6}
.method ul{padding-left:22px}
.stamp{display:inline-block;font-family:var(--mono);font-size:13px;border:1.5px solid var(--rust-ink);color:var(--rust-ink);padding:6px 10px;transform:rotate(-1.5deg);margin:8px 0;letter-spacing:1px}
.rings-tbl{width:100%;border-collapse:collapse;margin-top:10px;font-size:16px;background:var(--paper2)}
.rings-tbl th,.rings-tbl td{border:1px solid var(--ink);padding:9px 12px;text-align:left;vertical-align:top}
.rings-tbl th{font-family:var(--mono);font-size:12.5px;letter-spacing:1px;text-transform:uppercase}

.method details.src{border-top:1px dashed #8d877b;padding:8px 0}
.method details.src summary{cursor:pointer;font-family:var(--mono);font-size:13.5px}
.method details.src ul{margin:6px 0 4px 18px;font-size:14.5px;overflow-wrap:anywhere}
.method details.src .fld{font-family:var(--mono);font-size:12px;color:var(--ink-muted)}
.review-badge{display:inline-block;font-family:var(--mono);font-size:12.5px;letter-spacing:1px;color:var(--green);border:1px solid var(--green);border-radius:5px;padding:3px 8px}
.review-badge.draft{color:var(--rust-ink);border:1.5px dashed var(--rust-ink)}

.also{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px;margin:34px 0 10px;border-top:1px solid var(--ink);padding-top:22px;align-items:start}
@media (max-width:800px){.also{grid-template-columns:1fr}}
.method-card{display:block;text-decoration:none;color:var(--ink);background:var(--paper2);border:1px solid var(--ink);padding:18px 20px}
.method-card h3{font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.2;margin:6px 0}
.method-card p{font-size:15.5px;line-height:1.45;margin-bottom:10px}
.method-card:hover h3{text-decoration:underline}
.also .notes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-family:var(--mono);font-size:13px}
.also .notes label{flex-basis:100%;letter-spacing:1px;text-transform:uppercase;font-size:12px}
.also .notes input{flex:1;min-width:180px;padding:8px 10px;border:1px solid var(--ink);background:var(--paper2);font:inherit}
.also .notes small{flex-basis:100%;color:var(--ink-muted)}
