
/* Layout: an encyclopedia with a broadsheet masthead; main column + right rail (ads, related); entry pages carry an "Explore the science" lab */
:root{
  --bg:#f4f2ed; --paper:#fffdf8; --ink:#16181d; --mute:#5f6470; --rule:#ddd8cc; --accent:#c8501f; --amber:#b9781f; --link:#1d4f9a; --night:#0b0f17; --night-ink:#ece5d6;
  --sky:#3d5bd9; --eng:#0f8a7d; --odd:#c2367a; --deep:#a86a12; --low:#c8372d; --med:#2f7d32; --space:#5a3fc0; --sea:#1a6fa3; --nature:#5f7d1a; --disc:#b4521a;
  --display:"Bebas Neue",Oswald,Impact,sans-serif; --serif:"Newsreader",Georgia,serif; --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0e1015;--paper:#151820;--ink:#ebe7de;--mute:#9ba1ad;--rule:#272c36;--accent:#ff7a45;--amber:#f2a65a;--link:#8db7ff;--night:#06080d;
  --sky:#8197ff;--eng:#44c4b4;--odd:#f06aa8;--deep:#e0a54a;--low:#ff6b5e;--med:#6cc070;--space:#a48dff;--sea:#5ab4ea;--nature:#a5c552;--disc:#f08a4e;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0e1015;--paper:#151820;--ink:#ebe7de;--mute:#9ba1ad;--rule:#272c36;--accent:#ff7a45;--amber:#f2a65a;--link:#8db7ff;--night:#06080d;
  --sky:#8197ff;--eng:#44c4b4;--odd:#f06aa8;--deep:#e0a54a;--low:#ff6b5e;--med:#6cc070;--space:#a48dff;--sea:#5ab4ea;--nature:#a5c552;--disc:#f08a4e;color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.55}
a{color:var(--link);text-underline-offset:2px}
.gut{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.max{max-width:1220px;margin:0 auto}
header.mast{border-bottom:1px solid var(--rule);background:var(--paper)}
.mast .row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding-block:14px}
.brand{font-family:var(--display);font-size:42px;letter-spacing:.04em;line-height:1;color:var(--ink);text-decoration:none}
.brand span{color:var(--accent)}
nav.top{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase}
nav.top a{color:var(--ink);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
nav.top a[aria-current="page"]{border-bottom-color:var(--accent)}
.search{margin-left:auto;display:flex;min-width:0;flex:0 1 280px}
.search input{width:100%;font:inherit;font-size:15px;padding:8px 12px;border:1px solid var(--rule);border-radius:4px;background:var(--bg);color:var(--ink)}
.ad{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:1px dashed var(--rule);background:repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in srgb,var(--rule) 35%,transparent) 10px 11px);color:var(--mute);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-inline:auto;max-width:100%}
.ad small{letter-spacing:.04em;text-transform:none;font-size:11px}
.ad-leader{width:728px;height:90px;margin-block:18px}
.ad-mpu{width:300px;height:250px}
.ad-half{width:300px;height:600px}
@media (max-width:760px){.ad-leader{width:320px;height:50px}}
main{padding-block:10px 60px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start}
@media (max-width:980px){.layout{grid-template-columns:minmax(0,1fr)}.rail{display:none}}
.rail{position:sticky;top:16px;display:flex;flex-direction:column;gap:22px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
h1{font-family:var(--display);font-weight:400;font-size:clamp(46px,7vw,92px);line-height:.92;letter-spacing:.02em;margin:.2em 0 .25em;text-wrap:balance}
h2{font-family:var(--display);font-weight:400;font-size:40px;letter-spacing:.03em;line-height:1;margin:1.4em 0 .5em}
h3{font-family:var(--serif);font-size:23px;margin:0 0 .3em}
.lede{font-size:22px;max-width:62ch}
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:center;margin:16px 0 8px;background:var(--night);color:var(--night-ink);border-radius:6px;overflow:hidden}
@media (max-width:820px){.hero{grid-template-columns:minmax(0,1fr)}}
.hero img{display:block;width:100%;height:100%;object-fit:cover}
.hero .copy{padding:24px 26px 26px 6px}
@media (max-width:820px){.hero .copy{padding:0 20px 22px}}
.hero .copy .eyebrow{color:#f2a65a}
.hero h2{margin:.2em 0 .3em;font-size:52px;color:#fff}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:10px 14px;border-radius:4px;border:1px solid currentColor;color:inherit;text-decoration:none;background:transparent;cursor:pointer}
.btn.solid{background:var(--accent);border-color:var(--accent);color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-family:var(--mono);font-size:12.5px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:999px;padding:6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.chip .dot{width:9px;height:9px;border-radius:50%;background:var(--c)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.card{background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:16px 16px 14px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--ink);border-top:4px solid var(--c);min-width:0}
.card:hover{border-color:var(--c)}
.card .t{font-family:var(--display);font-size:27px;line-height:1;letter-spacing:.02em}
.card .w{font-family:var(--mono);font-size:11.5px;color:var(--mute)}
.card .h{font-size:15.5px;color:var(--mute);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.status{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.status.out{color:var(--accent)} .status.production{color:var(--amber)} .status.idea{color:var(--mute)}
.list{border-top:1px solid var(--rule)}
.list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:12px 2px;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink)}
.list a .tt{font-size:19px} .list a .ww{font-family:var(--mono);font-size:12px;color:var(--mute);grid-column:1}
.list a .st{grid-row:1/3;grid-column:2;align-self:center}
.letter{font-family:var(--display);font-size:34px;color:var(--accent);margin:18px 0 4px}
.video{position:relative;border-radius:6px;overflow:hidden;background:var(--night);aspect-ratio:16/9;max-width:100%}
.video img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92}
.video .play{position:absolute;inset:auto 18px 18px auto}
.video .soon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#ece5d6;text-align:center;padding:20px}
.video .soon b{font-family:var(--display);font-size:44px;font-weight:400;letter-spacing:.03em}
.facts{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.facts li{padding-left:20px;position:relative}
.facts li::before{content:"";position:absolute;left:3px;top:.65em;width:8px;height:8px;border-radius:50%;background:var(--c,var(--accent))}
.src{font-family:var(--mono);font-size:11.5px;white-space:nowrap}
.lab{background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:20px;margin:16px 0;min-width:0}
.lab .eyebrow{color:var(--accent)}
.lab canvas{display:block;width:100%;height:auto;border-radius:4px;background:var(--night);touch-action:manipulation}
.ctl{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px;font-family:var(--mono);font-size:13px;color:var(--mute)}
.ctl label{display:flex;gap:10px;align-items:center;flex:1 1 260px;min-width:0}
.ctl input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}
.readout{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-family:var(--mono);font-size:13.5px;font-variant-numeric:tabular-nums;margin-top:10px}
.kv dt{color:var(--mute)} .kv dd{margin:0;text-align:right}
.steps{counter-reset:s;list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:8px}
.steps li{counter-increment:s;padding-left:34px;position:relative}
.steps li::before{content:counter(s);position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--mono);font-size:12px;display:flex;align-items:center;justify-content:center}
.plan{border-left:3px solid var(--c);padding:6px 0 6px 14px;margin:12px 0;font-size:17px}
.foot{border-top:1px solid var(--rule);margin-top:40px;padding-block:22px;font-size:15px;color:var(--mute)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
@media (max-width:760px){.split{grid-template-columns:minmax(0,1fr)}}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* public site additions */
body{margin:0}
.mast .row{justify-content:space-between}
.brand{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}.brand svg{width:40px;height:40px;flex:none}.brand span{font-size:.62em;letter-spacing:.12em}
@media (max-width:560px){.brand{font-size:30px;gap:8px}.brand svg{width:30px;height:30px}nav.top{gap:12px;font-size:12px}}
.ytbtn{font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#c4302b;padding:8px 12px;border-radius:4px;text-decoration:none}
main{padding-block:18px 40px}
h1{font-family:var(--display);font-weight:400;font-size:clamp(40px,6vw,72px);line-height:.98;letter-spacing:.01em;margin:6px 0 12px}
h2{font-family:var(--display);font-weight:400;font-size:34px;letter-spacing:.02em;margin:34px 0 10px}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.lede{font-size:21px;line-height:1.45;max-width:46em}
.btn{display:inline-block;font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:10px 14px;border:1px solid var(--ink);border-radius:4px;color:var(--ink);text-decoration:none;margin:4px 6px 4px 0}
.btn.solid{background:var(--accent);border-color:var(--accent);color:#fff}
.hero2{padding:26px 0 8px;border-bottom:1px solid var(--rule)}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.scard{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:6px;overflow:hidden;padding-bottom:12px;position:relative;min-width:0}
.scard img,.scard .ph{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--night)}
.scard .ph{background:linear-gradient(135deg,var(--c),var(--night))}
.scard b{font-size:19px;line-height:1.25;padding:0 12px}.scard .w{font-family:var(--mono);font-size:12px;color:var(--mute);padding:0 12px}
.scard .badge{position:absolute;top:10px;left:10px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:rgba(10,12,16,.82);color:#f2e9d8;padding:4px 8px;border-radius:3px}
.upgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.up{background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:12px 14px}
.up b{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.up ul{margin:6px 0 0;padding-left:18px;font-size:15.5px}
.story h1{max-width:20em}
.yt{position:relative;aspect-ratio:16/9;background:#000;border-radius:6px;overflow:hidden;margin:18px 0;cursor:pointer}
.yt img,.yt iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0}
.yt button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;border:0;background:rgba(196,48,43,.92);color:#fff;font-size:34px;cursor:pointer}
.yt.soon{cursor:default}.yt.soon img{opacity:.55}.yt.soon span{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:rgba(8,10,14,.85);color:#f2e9d8;font-family:var(--mono);font-size:13px}
.yt.soon a{color:#ffb48a}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px}
@media (max-width:900px){.cols{grid-template-columns:minmax(0,1fr)}}
.main p{max-width:40em}.main blockquote{margin:18px 0;padding:6px 0 6px 18px;border-left:4px solid var(--c,var(--accent));font-style:italic;font-size:20px;max-width:38em}
.factlist li,.srcs li{margin:6px 0}.src{font-family:var(--mono);font-size:12px;white-space:nowrap}
.side .box{background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:12px 14px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px}
.side .box>b{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.chap{margin:0;padding-left:0;list-style:none;font-size:15px}.chap li{display:flex;gap:10px;padding:3px 0}.chap span{font-family:var(--mono);font-size:12px;color:var(--mute);min-width:42px}
.labwrap,.try{margin:26px 0;background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:16px}
.adwrap{margin:22px 0;text-align:center}.adwrap span{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:4px}
.prose{max-width:44em}
footer.foot{border-top:1px solid var(--rule);padding-block:18px 40px;font-size:15px;color:var(--mute)}
