/* site-v8: lab notebook. Tokens in PLAN.md. */
@font-face{font-family:"Geist";src:url("/fonts/geist.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("/fonts/geist-mono.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root{--paper:#fff;--ink:#000;--ink-2:#404040;--hair:#c4c4c4;--mark:#9a2c1c;--sans:"Geist",system-ui,sans-serif;--mono:"Geist Mono",ui-monospace,monospace;--w:76rem;--pad:clamp(1.25rem,4vw,3rem);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#000;--ink:#fff;--ink-2:#b8b8b8;--hair:#3c3c3c;--mark:#f0907e;color-scheme:dark}}
:root[data-theme=dark]{--paper:#000;--ink:#fff;--ink-2:#b8b8b8;--hair:#3c3c3c;--mark:#f0907e;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--ink-2) var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--sans);font-feature-settings:"ss01";-webkit-font-smoothing:antialiased}
::selection{background:var(--ink);color:var(--paper)}
a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.5rem 1rem;z-index:10}
.skip:focus{left:var(--pad)}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--pad)}
code,.mono,kbd,samp{font-family:var(--mono);font-size:.92em;font-variant-numeric:tabular-nums}
/* header */
.top{border-bottom:1px solid var(--ink)}
.top .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 2rem;padding-block:1rem}
.mark{font:600 1rem/1 var(--mono);text-decoration:none;letter-spacing:-.01em;display:flex;gap:.75rem;align-items:baseline}
.mark small{font:400 .875rem/1 var(--sans);color:var(--ink-2)}
.nav{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem;margin-left:auto;align-items:center}
.nav a{font-size:.9375rem;text-decoration:none;padding:.35rem 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current=page]{border-bottom-color:var(--ink)}
.theme{font:500 .8125rem/1 var(--mono);background:none;color:var(--ink);border:1px solid var(--ink);padding:.45rem .6rem;cursor:pointer;border-radius:0}
.theme:hover{background:var(--ink);color:var(--paper)}
/* type */
h1,h2,h3{font-weight:600;line-height:1.1;letter-spacing:-.025em;text-wrap:balance;margin:0}
h1{font-size:clamp(2.75rem,7vw,5.25rem);letter-spacing:-.04em;line-height:.98}
h1.page{font-size:clamp(2.1rem,4.6vw,3.4rem);letter-spacing:-.035em;line-height:1.04}
h2{font-size:1.75rem;margin-top:0}
h3{font-size:1.25rem;letter-spacing:-.015em}
p,li,dd{max-width:68ch}
p{margin:0 0 1rem}
.lede{font-size:clamp(1.15rem,1.9vw,1.375rem);line-height:1.5;max-width:44ch;margin-top:1.5rem}
.sub{color:var(--ink-2)}
/* sections */
main{display:block}
.sec{border-top:1px solid var(--ink);padding-block:clamp(2.5rem,6vw,4.5rem)}
.sec:first-child{border-top:0}
.split{display:grid;grid-template-columns:minmax(12rem,18rem) 1fr;gap:1.5rem 4rem}
.split>h2{position:sticky;top:1rem;align-self:start}
@media (max-width:52rem){.split{grid-template-columns:1fr}.split>h2{position:static}}
.hero{padding-block:clamp(3rem,9vw,7rem) clamp(2.5rem,6vw,4.5rem)}
.hero .who{font:500 1rem/1.4 var(--sans);color:var(--ink-2);margin-bottom:1.5rem}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.btn{display:inline-block;font:500 .9375rem/1 var(--sans);padding:.85rem 1.1rem;border:1px solid var(--ink);text-decoration:none;min-height:44px}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.solid:hover{background:var(--paper);color:var(--ink)}
/* the log */
.loghead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem;margin-bottom:1rem}
.logmeta{font:400 .8125rem/1.5 var(--mono);color:var(--ink-2);margin:0 0 .75rem}
.log{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink);font-family:var(--mono);font-size:.875rem;line-height:1.5;font-variant-numeric:tabular-nums}
.log .row{display:grid;grid-template-columns:10.5rem 3.5rem 9.5rem minmax(0,1fr);gap:.25rem 1rem;padding:.9rem 0;border-bottom:1px solid var(--hair);max-width:none}
.log .when{color:var(--ink-2)}
.log .when .t{display:block}
.log .kind{font-weight:600}
.log .claim{font-family:var(--sans);font-size:.98rem;line-height:1.45;max-width:72ch}
.log .claim .res{display:block;margin:.2rem 0 0}
.log .links{grid-column:4;display:flex;flex-wrap:wrap;gap:.25rem 1rem;font-size:.8125rem}
.log .res,.res{display:inline-block;margin-left:.5rem;font:400 .8125rem/1.4 var(--mono);color:var(--ink-2)}
.pending{color:var(--ink-2)}
.log .row:first-child.k-queued .when .t::after{content:"";display:inline-block;width:.55em;height:1em;margin-left:.3em;vertical-align:-.12em;background:var(--ink);animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.log .row:first-child.k-queued .when .t::after{animation:none}}
@media (max-width:52rem){.log .row{grid-template-columns:auto auto 1fr}.log .when{grid-column:1/-1}.log .when .t{display:inline;margin-left:.5rem}.log .claim,.log .links{grid-column:1/-1}}
/* verdicts */
.verdict{font:600 .75rem/1 var(--mono);letter-spacing:.02em;justify-self:start;align-self:start;padding:.3rem .45rem;border:1px solid var(--ink);white-space:nowrap}
.v-reproduced{background:var(--ink);color:var(--paper)}
.v-partial{border-color:var(--mark);color:var(--mark)}
.v-not-reproduced{background:var(--mark);border-color:var(--mark);color:var(--paper)}
.v-cannot-check{border-style:dashed}
/* lists and definitions */
.defs{margin:0;display:grid;gap:1.75rem}
.defs dt{font-weight:600;font-size:1.125rem;letter-spacing:-.01em}
.defs dd{margin:.35rem 0 0;color:var(--ink)}
.rows{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink)}
.rows>li{padding:1.25rem 0;border-bottom:1px solid var(--hair);max-width:none;display:grid;grid-template-columns:minmax(10rem,16rem) 1fr;gap:.25rem 2rem}
.rows>li>*:first-child{font-weight:600}
.rows p{margin:0}
@media (max-width:40rem){.rows>li{grid-template-columns:1fr}}
.status{font:500 .8125rem/1 var(--mono);border:1px solid var(--ink);padding:.3rem .45rem;display:inline-block;margin:.75rem 0 1.25rem}
/* tables */
.tbl{width:100%;overflow-x:auto;margin:1rem 0 1.5rem}
table{border-collapse:collapse;width:100%;font-size:.9375rem;font-variant-numeric:tabular-nums}
caption{text-align:left;font-weight:600;padding-bottom:.5rem}
th,td{text-align:left;vertical-align:top;padding:.55rem .9rem .55rem 0;border-bottom:1px solid var(--hair)}
thead th{border-bottom:1px solid var(--ink);font-weight:600}
td.n,th.n{font-family:var(--mono);font-size:.875rem;white-space:nowrap}
/* prose */
.prose h2{margin:2.75rem 0 .75rem;font-size:1.5rem}
.prose h3{margin:2rem 0 .5rem}
.prose ul,.prose ol{padding-left:1.25rem}
.prose li{margin:.3rem 0}
.claimbox{border:1px solid var(--ink);padding:1.25rem 1.5rem;margin:1.5rem 0 2rem;max-width:68ch}
.claimbox p:last-child{margin:0}
.facts{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1.5rem;margin:1rem 0 0;font-size:.9375rem}
.facts dt{font:500 .8125rem/1.6 var(--mono);color:var(--ink-2)}
.facts dd{margin:0}
/* samples */
.sample{border:1px dashed var(--ink);padding:1.25rem 1.5rem;margin:1.5rem 0;max-width:46rem}
.sample .tag{font:600 .75rem/1 var(--mono);border:1px solid var(--ink);padding:.3rem .45rem;display:inline-block;margin-bottom:1rem}
.sample table{font-size:.875rem}
.todo{font:500 .8125rem/1.4 var(--mono);background:var(--ink);color:var(--paper);padding:.1rem .35rem}
.review{font:500 .8125rem/1.4 var(--mono);border:1px solid var(--mark);color:var(--mark);padding:.4rem .6rem;display:inline-block;margin:0 0 1.5rem}
/* footer */
.foot{border-top:1px solid var(--ink);margin-top:2rem;padding-block:2.5rem 3rem;font-size:.9375rem}
.foot .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.foot p{margin:0 0 .5rem}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin:.25rem 0}
@media (max-width:52rem){.foot .wrap{grid-template-columns:1fr}}
.bc{font:400 .875rem/1.4 var(--mono);color:var(--ink-2);margin:2rem 0 1.25rem}
.bc a{color:var(--ink-2)}
@media print{.top .nav,.theme,.skip{display:none}.sec{break-inside:avoid}}
.mb1{margin-bottom:1rem}.mt04{margin-top:.4rem}.mt05{margin-top:.5rem}.mt125{margin-top:1.25rem}.mt15{margin-top:1.5rem}
.h3s{margin:0 0 .75rem;font-size:1.125rem}.brk{word-break:break-all}.brkw{word-break:break-word}
.claimbox>:first-child{margin-top:0}.claimbox h2{margin-top:0}
/* closed beta + inquiry form */
.beta{border:1px solid var(--ink);padding:1.25rem 1.5rem;margin:0 0 1.5rem;max-width:46rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem}
.beta p{margin:0}
.subitem{font:500 .875rem/1.5 var(--mono);color:var(--ink-2);border-left:2px solid var(--ink);padding-left:.75rem;margin:0 0 1.25rem}
.inq{max-width:40rem;margin:2rem 0 1rem;display:grid;gap:1.25rem}
.field{display:grid;gap:.4rem}
.field label{font-weight:600;font-size:.9375rem}
.inq input,.inq select,.inq textarea{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--ink);border-radius:0;padding:.65rem .75rem;min-height:44px;width:100%}
.inq textarea{resize:vertical}
.inq .btn{justify-self:start;cursor:pointer}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formnote{font:500 .9375rem/1.5 var(--mono);margin:0}
.formnote:empty{display:none}
.formnote:not(:empty){border:1px solid var(--mark);color:var(--mark);padding:.6rem .8rem}
/* section label: the red bracket tag, used site-wide above section headings */
.label{font:500 .8125rem/1.4 var(--mono);border:1px solid var(--mark);color:var(--mark);padding:.3rem .55rem;width:fit-content;max-width:100%;margin:0 0 .75rem;letter-spacing:.01em}
.split>.sh{position:sticky;top:1rem;align-self:start}
@media (max-width:52rem){.split>.sh{position:static}}
.prose .label{margin:2.75rem 0 .6rem}
.prose .label+h2{margin-top:0}
.prose>.label:first-child{margin-top:0}
/* notes: answer-first explainers */
.byline{font:400 .875rem/1.5 var(--mono);color:var(--ink-2);margin:1rem 0 1.5rem}
.byline a{color:var(--ink)}
.answer{border:1px solid var(--ink);padding:1.25rem 1.5rem;margin:0 0 2rem;max-width:68ch}
.prose .answer h2{margin:0 0 .6rem;font-size:1.375rem}
.answer p{margin:0;font-size:1.0625rem}
.prose .facts{margin-bottom:1rem}
.bib{font:400 .8125rem/1.5 var(--mono);border:1px dashed var(--ink);padding:1rem 1.25rem;margin:.5rem 0 1.5rem;overflow-x:auto;max-width:68ch;white-space:pre}
.bib code{font-size:inherit}
/* peer review log (study pages) */
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.tally{list-style:none;padding:0;margin:1.25rem 0 .5rem;display:flex;flex-wrap:wrap;gap:0;font:500 .875rem/1.4 var(--mono);border:1px solid var(--ink);width:fit-content;max-width:100%}
.tally li{padding:.45rem .7rem;border-right:1px solid var(--hair);max-width:none}
.tally li:first-child{background:var(--ink);color:var(--paper);border-right-color:var(--ink)}
.tally li:last-child{border-right:0}
.prmeta{font-size:.8125rem;margin:0 0 1rem}
.prlog,.prkids{list-style:none;padding:0;margin:0;max-width:none}
.prlog{margin:0 0 1rem;border-top:1px solid var(--ink)}
.prlog li{max-width:none}
.prcard,.prkid{display:grid;grid-template-columns:6.5rem 8.5rem minmax(0,1fr);gap:.2rem 1rem;line-height:1.55}
.prcard{padding:1rem 0;border-bottom:1px solid var(--hair);font-size:1rem}
.prcard>p,.prkid>p{margin:0;max-width:68ch}
.prkid{grid-template-columns:auto minmax(0,1fr);gap:.3rem .75rem;padding:.55rem 0 .55rem .9rem;font-size:.9375rem}
.prkid>p{grid-column:1/-1}
.prlog .prkid .when .t{display:inline;margin-left:.4rem}
.prkid .chips{justify-content:flex-start}
.prcard>.prkids,.prcard>.prmore{grid-column:3/-1;margin-top:.6rem}
.prcard>.prkids{border-left:2px solid var(--ink)}
.prmore>.prkids{border-left:2px dashed var(--hair);margin-top:.35rem}
.prmore>summary{display:inline-block;cursor:pointer;list-style:none;font:600 .75rem/1 var(--mono);letter-spacing:.02em;padding:.45rem .6rem;border:1px solid var(--ink);background:var(--paper);color:var(--ink)}
.prmore>summary::-webkit-details-marker{display:none}
.prmore>summary:hover{background:var(--ink);color:var(--paper)}
.prmore>summary:focus-visible{outline:2px solid var(--mark);outline-offset:2px}
.prmore[open]>summary{background:var(--ink);color:var(--paper)}
.prlog .when{font:400 .8125rem/1.5 var(--mono);color:var(--ink-2)}
.prlog .when time{color:var(--ink);font-weight:500}
.prlog .when .t{display:block}
.prlog .chips{display:flex;flex-wrap:wrap;gap:.3rem;align-content:start}
.chip{font:600 .6875rem/1 var(--mono);letter-spacing:.02em;padding:.3rem .4rem;border:1px solid var(--ink);white-space:nowrap}
.c-open{border-style:dashed}
.c-answered{background:var(--ink);color:var(--paper)}
.c-conceded{border-color:var(--mark);color:var(--mark)}
.c-changed{background:var(--mark);border-color:var(--mark);color:var(--paper)}
.c-type{border-color:var(--hair);color:var(--ink-2);font-weight:500}
.c-planned{border-style:dashed;border-color:var(--ink-2);color:var(--ink-2);font-weight:500}
.prlog .who{font:600 .875rem/1.4 var(--mono)}
.prcard>p>.who{font-size:.9375rem}
.prlog .src{display:block;margin-top:.2rem;color:var(--ink-2);font-size:.875rem}
@media (max-width:40rem){.prcard{grid-template-columns:auto 1fr;gap:.35rem .75rem}.prlog .when .t{display:inline;margin-left:.4rem}.prlog .chips{justify-content:flex-end}.prcard>p,.prkid>p{grid-column:1/-1}.prcard>.prkids,.prcard>.prmore{grid-column:1/-1;margin-left:.75rem}.prkid{padding-left:.75rem}.tally li{border-right:0;border-bottom:1px solid var(--hair);flex:1 1 auto}.tally{width:100%}}
.prose .prlog,.prose .prkids,.prose .tally{padding-left:0}.prose .prlog li,.prose .tally li{margin:0}
