/* Orakl — research-note stylesheet.
   One column of text in a narrow measure, with numbered notes floated into the
   right margin on wide screens and folded inline below 900px. */

:root{
  --paper:#faf9f6;
  --ink:#1a1b1e;
  --dim:#5f6570;
  --faint:#8b9099;
  --rule:#e2e0d8;
  --card:#ffffff;
  --violet:#5b4bcc;
  --for:#2f6f4f;
  --against:#9c4221;
  --forbg:#f0f6f2;
  --againstbg:#fbf2ec;
  --measure:34rem;
  --margincol:18rem;
}

@media (prefers-color-scheme: dark){
  :root{
    --paper:#111214;
    --ink:#eceef2;
    --dim:#9aa1ac;
    --faint:#767c86;
    --rule:#282a2f;
    --card:#181a1e;
    --violet:#a496ff;
    --for:#6cc39a;
    --against:#e08a5f;
    --forbg:#141d19;
    --againstbg:#1e1713;
  }
}

*{box-sizing:border-box;margin:0;padding:0}

html{-webkit-text-size-adjust:100%}

body{
  background:var(--paper);
  color:var(--ink);
  font:17px/1.68 ui-serif,Georgia,"Iowan Old Style","Times New Roman",serif;
  font-variant-numeric:oldstyle-nums proportional-nums;
  counter-reset:snmark snnote;
  -webkit-font-smoothing:antialiased;
}

/* ---------- frame ---------- */

.sheet{max-width:58rem;margin:0 auto;padding:0 24px 88px}
.col{max-width:var(--measure)}

/* ---------- breadcrumb ---------- */

.crumb{
  font-family:ui-sans-serif,system-ui,"Helvetica Neue",sans-serif;
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;
  color:var(--faint);padding:34px 0 0;
}
.crumb a{color:var(--violet);text-decoration:none}
.crumb a:hover{text-decoration:underline}
.crumb .sep{color:var(--rule);padding:0 .5em}

/* ---------- masthead ---------- */

.masthead{padding:26px 0 30px;border-bottom:2px solid var(--ink);margin-bottom:34px}
.wordmark{
  font-family:ui-sans-serif,system-ui,"Helvetica Neue",sans-serif;
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;font-weight:700;
  color:var(--violet);margin-bottom:16px;
}
h1{
  font-size:clamp(28px,5.4vw,42px);line-height:1.12;letter-spacing:-.015em;
  font-weight:600;max-width:20ch;
}
.standfirst{color:var(--dim);font-size:19px;line-height:1.55;margin-top:15px;max-width:42ch}
.dateline{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:11.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);margin-top:20px;
}

/* ---------- body text ---------- */

h2{
  font-family:ui-sans-serif,system-ui,"Helvetica Neue",sans-serif;
  font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:650;
  color:var(--dim);margin:44px 0 14px;
}
h2:first-of-type{margin-top:0}
h3{
  font-size:18px;font-weight:600;letter-spacing:-.005em;margin:28px 0 8px;
}
p{margin-bottom:15px}
p.lead{font-size:18.5px;color:var(--ink)}
p.dim,.dim{color:var(--dim)}
em{font-style:italic}
strong,b{font-weight:640}
a{color:var(--violet);text-decoration-thickness:.5px;text-underline-offset:2px}
hr{border:0;border-top:1px solid var(--rule);margin:40px 0}
code,.mono{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.86em;background:var(--card);border:1px solid var(--rule);
  border-radius:4px;padding:.08em .34em;
}

blockquote{
  border-left:2px solid var(--violet);padding-left:16px;margin:18px 0;
  color:var(--dim);font-style:italic;
}

/* ---------- section rules ---------- */

section{padding-bottom:6px}
section + section{border-top:1px solid var(--rule);padding-top:30px;margin-top:34px}

/* ---------- margin notes ---------- */

.ref{
  font-family:ui-sans-serif,system-ui,sans-serif;
  font-size:.62em;font-weight:700;color:var(--violet);
  vertical-align:super;line-height:0;cursor:default;
}
.ref::after{counter-increment:snmark;content:counter(snmark)}

.note{
  float:right;clear:right;
  width:var(--margincol);
  margin-right:calc(-1 * (var(--margincol) + 2rem));
  margin-top:.28rem;margin-bottom:1.1rem;
  font-size:13.5px;line-height:1.55;color:var(--dim);
  font-family:ui-sans-serif,system-ui,"Helvetica Neue",sans-serif;
  text-align:left;
}
.note::before{
  counter-increment:snnote;content:counter(snnote);
  color:var(--violet);font-weight:700;font-size:11px;
  vertical-align:super;line-height:0;margin-right:.35em;
}
.note code{font-size:.9em}

@media (max-width:900px){
  .note{
    float:none;width:auto;margin:14px 0 16px 1.1rem;
    padding-left:.95rem;border-left:1px solid var(--rule);
    display:block;
  }
  :root{--measure:100%}
}

/* ---------- contents block ---------- */

.contents{
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:22px 0;margin:36px 0 8px;list-style:none;counter-reset:toc;
}
.contents li{
  counter-increment:toc;position:relative;padding-left:3.2rem;margin-bottom:13px;
}
.contents li:last-child{margin-bottom:0}
.contents li::before{
  content:counter(toc,decimal-leading-zero);position:absolute;left:0;top:.28em;
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:11.5px;font-weight:700;
  letter-spacing:.08em;color:var(--violet);font-variant-numeric:lining-nums tabular-nums;
}
.contents a{font-weight:600;text-decoration:none}
.contents a:hover{text-decoration:underline}
.contents span{display:block;color:var(--dim);font-size:15px;line-height:1.5;margin-top:1px}

/* ---------- numbered steps ---------- */

ol.steps{list-style:none;counter-reset:step}
ol.steps > li{
  counter-increment:step;position:relative;padding-left:3.2rem;margin-bottom:22px;
}
ol.steps > li::before{
  content:counter(step,decimal-leading-zero);position:absolute;left:0;top:.3em;
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:11.5px;font-weight:700;
  letter-spacing:.08em;color:var(--violet);font-variant-numeric:lining-nums tabular-nums;
}
ol.steps b{display:block;font-weight:640;margin-bottom:3px}
ol.steps p{margin-bottom:9px;color:var(--dim);font-size:16px}
ol.steps p:last-child{margin-bottom:0}

ul.plain{list-style:none}
ul.plain li{position:relative;padding-left:1.3rem;margin-bottom:10px;color:var(--dim)}
ul.plain li::before{
  content:"";position:absolute;left:.15rem;top:.72em;
  width:5px;height:1px;background:var(--violet);
}

/* ---------- the for/against card (signature) ---------- */

.argue{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:9px;
  overflow:hidden;margin:20px 0 0;
}
.argue > div{background:var(--card);padding:17px 18px}
.argue .f{background:var(--forbg)}
.argue .a{background:var(--againstbg)}
.argue h4{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;font-weight:700;margin-bottom:11px;
}
.argue .f h4{color:var(--for)}
.argue .a h4{color:var(--against)}
.argue ul{list-style:none}
.argue li{
  font-size:15px;line-height:1.5;color:var(--ink);margin-bottom:8px;
  display:flex;justify-content:space-between;gap:12px;align-items:baseline;
}
.argue li:last-child{margin-bottom:0}
.argue li .w{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;
  color:var(--dim);font-variant-numeric:tabular-nums;flex:none;background:none;border:0;padding:0;
}
@media (max-width:560px){.argue{grid-template-columns:1fr}}

/* ---------- the four-figure verdict strip (signature) ---------- */

.verdict{
  display:grid;grid-template-columns:repeat(4,1fr);
  background:var(--card);border:1px solid var(--rule);border-top:0;
  border-radius:0 0 9px 9px;margin-bottom:6px;
}
.argue + .verdict{border-radius:0 0 9px 9px;margin-top:-1px}
.verdict > div{padding:14px 16px;border-left:1px solid var(--rule)}
.verdict > div:first-child{border-left:0}
.verdict dt{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:5px;
}
.verdict dd{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:19px;font-weight:650;
  letter-spacing:-.01em;font-variant-numeric:lining-nums tabular-nums;
}
.verdict dd small{display:block;font-size:12px;font-weight:500;color:var(--dim);letter-spacing:0;margin-top:2px}
@media (max-width:560px){
  .verdict{grid-template-columns:1fr 1fr}
  .verdict > div:nth-child(3){border-left:0}
  .verdict > div:nth-child(n+3){border-top:1px solid var(--rule)}
}

.caption{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:13px;line-height:1.55;
  color:var(--dim);margin:10px 0 0;
}

/* ---------- transcript / typed input ---------- */

.typed{
  background:var(--card);border:1px solid var(--rule);border-left:2px solid var(--violet);
  border-radius:0 8px 8px 0;padding:15px 17px;margin:16px 0;
}
.typed .who{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);font-weight:650;margin-bottom:7px;
}
.typed p{margin-bottom:9px;font-size:16px}
.typed p:last-child{margin-bottom:0}

/* ---------- definition lists ---------- */

dl.qa dt{font-weight:640;margin-top:26px}
dl.qa dt:first-child{margin-top:0}
dl.qa dd{color:var(--dim);margin-top:5px}
dl.qa dd + dd{margin-top:9px}

/* ---------- small table ---------- */

table{border-collapse:collapse;width:100%;margin:18px 0;font-size:15px}
th,td{
  text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid var(--rule);
  font-variant-numeric:lining-nums tabular-nums;
}
th{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--faint);font-weight:650;border-bottom:1px solid var(--ink);
}
td.n{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}

/* ---------- release entries ---------- */

.release{margin-bottom:30px}
.release .v{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;font-weight:700;color:var(--violet);
}
.release .when{
  font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--faint);margin-left:.8em;
}
.release h3{margin:4px 0 6px}

/* ---------- footer ---------- */

footer{
  margin-top:64px;padding-top:22px;border-top:1px solid var(--rule);
  font-family:ui-sans-serif,system-ui,"Helvetica Neue",sans-serif;
  font-size:13px;line-height:1.75;color:var(--dim);
}
footer nav{margin-bottom:12px}
footer nav a{margin-right:1.1em;text-decoration:none}
footer nav a:hover{text-decoration:underline}
footer .legal{color:var(--faint)}
