
:root{--bg:#EEF0F3;--ink:#161A23;--mute:#5A6272;--rule:#D2D6DE;--panel:#fff;--a:#2563EB;--b:#E8590C;--acc:#7A3FE0;
--serif:"Newsreader",Georgia,serif;--sans:"Public Sans",system-ui,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,monospace}
@media (prefers-color-scheme:dark){:root{--bg:#12151C;--ink:#E7EAF0;--mute:#9AA2B2;--rule:#2A303C;--panel:#1A1E27;--a:#5B8CFF;--b:#FF8A4C;--acc:#B08CFF}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:1.0625rem/1.65 var(--sans)}
a{color:var(--acc);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.wrap{max-width:66rem;margin:0 auto;padding:0 1.25rem}
header.site{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:1.1rem 0;border-bottom:1px solid var(--rule)}
.brand{font:600 1.4rem var(--serif);color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.brand span{color:var(--acc)}
nav{display:flex;gap:1.2rem}
nav a{color:var(--mute);text-decoration:none;font-weight:600;font-size:.97rem}
nav a:hover,nav a[aria-current]{color:var(--ink)}
h1{font:600 clamp(2.1rem,5vw,3.4rem)/1.08 var(--serif);margin:2.25rem 0 .7rem;letter-spacing:-.015em}
h2{font:600 1.7rem/1.2 var(--serif);margin:2.75rem 0 .6rem}
h3{font:700 1.08rem var(--sans);margin:1.6rem 0 .3rem}
.lede{font-size:1.18rem;color:var(--mute);max-width:42rem;margin:0}
.prose{max-width:42rem}
.prose p,.prose li{margin:0 0 1.05rem}
.formula{display:block;font-family:var(--mono);font-size:.95rem;background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:.8rem 1rem;margin:.9rem 0;overflow-x:auto;white-space:nowrap}
/* lab */
.lab{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1.5rem;margin:1.75rem 0;background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:1.25rem}
@media (max-width:820px){.lab{grid-template-columns:1fr}}
.lab canvas{display:block;width:100%;aspect-ratio:1;border-radius:8px;background:var(--bg);touch-action:none;cursor:crosshair}
.ctl h3{margin-top:0}
.seg{display:flex;border:1.5px solid var(--rule);border-radius:8px;overflow:hidden;margin:.4rem 0 1rem}
.seg button{flex:1;font:700 .92rem var(--sans);padding:.55rem;border:0;background:var(--bg);color:var(--mute);cursor:pointer}
.seg button[aria-pressed="true"]{color:#fff}
.seg button.ca[aria-pressed="true"]{background:var(--a)}.seg button.cb[aria-pressed="true"]{background:var(--b)}
.btns{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem}
.btn{font:700 .95rem var(--sans);padding:.6rem 1.1rem;border-radius:8px;border:1.5px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer}
.btn.ghost{background:transparent;color:var(--ink)}
label{display:block;font-size:.88rem;font-weight:700;color:var(--mute)}
input[type=range]{width:100%;accent-color:var(--acc)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1rem 0}
.stats div{background:var(--bg);border-radius:8px;padding:.6rem .7rem}
.stats b{display:block;font:600 1.25rem var(--mono)}
.stats span{font-size:.8rem;color:var(--mute)}
.weights{font:.88rem var(--mono);color:var(--mute);margin:0}
.hint{font-size:.93rem;color:var(--mute);margin:.75rem 0 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin:1rem 0}
.cards a{display:block;background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:1.25rem;color:var(--ink);text-decoration:none}
.cards a:hover{border-color:var(--acc)}
.cards h3{margin:0 0 .3rem;font:600 1.25rem var(--serif)}
.cards p{margin:0;color:var(--mute);font-size:.97rem}
/* timeline */
.tl{list-style:none;padding:0;margin:1.5rem 0;border-left:2px solid var(--rule)}
.tl li{position:relative;padding:0 0 1.6rem 1.5rem}
.tl li::before{content:"";position:absolute;left:-7px;top:.45rem;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid var(--mute)}
.tl li.key::before{background:var(--acc);border-color:var(--acc)}
.tl .yr{font:600 .95rem var(--mono);color:var(--acc)}
.tl h3{margin:.1rem 0 .25rem;font:600 1.2rem var(--serif)}
.tl p{margin:0;color:var(--mute);max-width:40rem}

.forsale{margin:0;background:var(--ink);color:var(--bg);font-size:.9rem;text-align:center;padding:.5rem 1rem}
.forsale a{color:var(--bg);font-weight:700;text-decoration-color:var(--acc)}
.forsale b{color:#C9B3FF}
.acq{background:var(--panel);border:1px solid var(--rule);border-top:4px solid var(--acc);border-radius:12px;padding:1.5rem;margin:1.75rem 0}
.acq .big{font:600 clamp(1.8rem,6vw,3rem)/1 var(--serif);margin:0 0 .6rem}
.acq .big span{color:var(--acc)}
.pts{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.25rem;margin:1.5rem 0}
.pts div{border-top:2px solid var(--acc);padding-top:.6rem}
.pts h3{margin-top:0}.pts p{margin:.25rem 0 0;color:var(--mute);font-size:.97rem}
footer{margin-top:4rem;padding:1.5rem 0 3rem;border-top:1px solid var(--rule);font-size:.92rem;color:var(--mute)}
