/* The Second Question — stylesheet */

:root{
  --paper:#F5F6F7;
  --surface:#FFFFFF;
  --sunk:#ECEEF0;
  --rule:#DDE1E4;
  --rule-strong:#B9BFC5;
  --ink:#0E1216;
  --ink-soft:#3B434A;
  --muted:#737C84;
  --accent:#1533C7;
  --accent-soft:#E4E8FB;

  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-read:"Source Serif 4","Iowan Old Style",Georgia,serif;
  --f-mono:"DM Mono","SFMono-Regular",Menlo,monospace;

  --gutter:150px;
  --measure:640px;
  --gap:48px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0E1114;
    --surface:#161A1E;
    --sunk:#1D2227;
    --rule:#282E34;
    --rule-strong:#434B52;
    --ink:#E9ECEE;
    --ink-soft:#C0C6CB;
    --muted:#8B949B;
    --accent:#8AA0FF;
    --accent-soft:#171C36;
  }
}
:root[data-theme="dark"]{
  --paper:#0E1114;
  --surface:#161A1E;
  --sunk:#1D2227;
  --rule:#282E34;
  --rule-strong:#434B52;
  --ink:#E9ECEE;
  --ink-soft:#C0C6CB;
  --muted:#8B949B;
  --accent:#8AA0FF;
  --accent-soft:#171C36;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--f-read);
  font-size:17px;
  line-height:1.66;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
img{max-width:100%;}

/* ---------------- shell ---------------- */
.page{max-width:1040px;margin:0 auto;padding:0 32px;}
.grid{
  display:grid;
  grid-template-columns:var(--gutter) minmax(0,var(--measure));
  column-gap:var(--gap);
}
.grid > .rail{grid-column:1;}
.grid > .col{grid-column:2;}
.grid > .full{grid-column:1 / -1;}
@media (max-width:860px){
  .grid{grid-template-columns:minmax(0,1fr);}
  .grid > .rail,.grid > .col,.grid > .full{grid-column:1;}
  :root{--gap:0px;}
}

/* ---------------- masthead ---------------- */
.masthead{border-bottom:1px solid var(--rule-strong);background:var(--paper);}
.masthead .page{
  display:flex;flex-wrap:wrap;gap:12px 32px;align-items:baseline;justify-content:space-between;
  padding-top:20px;padding-bottom:18px;
}
.wordmark{
  font-family:var(--f-display);font-weight:700;font-size:19px;letter-spacing:-.025em;
  text-decoration:none;line-height:1;
}
.wordmark em{font-style:normal;color:var(--accent);}
nav.top{display:flex;gap:26px;}
nav.top a{
  font-family:var(--f-mono);font-size:12px;letter-spacing:.02em;color:var(--muted);
  text-decoration:none;padding-bottom:2px;border-bottom:1px solid transparent;
}
nav.top a:hover,nav.top a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);}

/* ---------------- rail labels ---------------- */
.rail-label{
  font-family:var(--f-mono);font-size:11px;line-height:1.6;letter-spacing:.02em;
  color:var(--muted);text-transform:uppercase;
  position:sticky;top:26px;
}
@media (max-width:860px){
  .rail-label{position:static;margin-bottom:12px;}
}
.rail-label b{display:block;color:var(--accent);font-weight:500;}

/* ---------------- type ---------------- */
h1,h2,h3{font-family:var(--f-display);font-weight:700;letter-spacing:-.03em;line-height:1.02;margin:0;}
h1{font-size:clamp(2.6rem,7.5vw,4.6rem);text-wrap:balance;}
h2{font-size:clamp(1.5rem,3.2vw,2.05rem);line-height:1.1;letter-spacing:-.025em;}
h3{font-family:var(--f-display);font-size:1.05rem;font-weight:600;letter-spacing:-.01em;line-height:1.3;}
p{margin:0 0 19px;}
.lede{
  font-family:var(--f-read);font-size:clamp(1.12rem,2vw,1.32rem);line-height:1.5;
  color:var(--ink-soft);
}
.kicker{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);margin:0 0 16px;
}
hr.rule{border:0;border-top:1px solid var(--rule);margin:0;}
hr.rule-strong{border:0;border-top:1px solid var(--rule-strong);margin:0;}

/* ---------------- home hero ---------------- */
.hero{padding:76px 0 0;}
.hero .meta{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 22px;
}
.hero .meta b{color:var(--accent);font-weight:500;}
.hero h1{margin-bottom:22px;}
.hero .lede{max-width:44ch;margin-bottom:28px;}

.readlink{
  display:inline-flex;align-items:baseline;gap:10px;
  font-family:var(--f-display);font-weight:600;font-size:15px;letter-spacing:-.01em;
  text-decoration:none;color:var(--ink);
  border-bottom:2px solid var(--accent);padding-bottom:3px;
}
.readlink span{color:var(--accent);font-family:var(--f-mono);font-size:13px;}
.readlink:hover{color:var(--accent);}

/* ---------------- sections ---------------- */
section.band{padding:60px 0;}
section.band + section.band{border-top:1px solid var(--rule);}
.band .col > *:last-child{margin-bottom:0;}
.band p{max-width:60ch;}

/* thesis lines */
.thesis{list-style:none;margin:0;padding:0;}
.thesis li{
  border-top:1px solid var(--rule);padding:18px 0;
  display:grid;grid-template-columns:74px minmax(0,1fr);gap:16px;align-items:baseline;
}
.thesis li:last-child{border-bottom:1px solid var(--rule);}
.thesis .q{
  font-family:var(--f-mono);font-size:11px;color:var(--accent);white-space:nowrap;
  text-transform:uppercase;letter-spacing:.1em;
}
.thesis .a{font-size:16.5px;line-height:1.55;}

/* ---------------- archive list ---------------- */
.issues{list-style:none;margin:0;padding:0;}
.issues li{border-top:1px solid var(--rule);}
.issues li:last-child{border-bottom:1px solid var(--rule);}
.issues a{
  display:grid;grid-template-columns:62px minmax(0,1fr);gap:20px;align-items:baseline;
  padding:20px 0;text-decoration:none;
}
.issues a:hover .t{color:var(--accent);}
.issues .no{font-family:var(--f-mono);font-size:11px;color:var(--muted);letter-spacing:.06em;}
.issues .t{font-family:var(--f-display);font-weight:600;font-size:1.22rem;letter-spacing:-.02em;line-height:1.2;display:block;}
.issues .s{display:block;font-size:15px;color:var(--muted);margin-top:5px;line-height:1.5;}
.issues li.pending{opacity:.62;}
.issues li.pending .row{
  display:grid;grid-template-columns:62px minmax(0,1fr);gap:20px;align-items:baseline;padding:20px 0;
}
.issues li.pending .t{font-weight:500;}

/* ---------------- article ---------------- */
article{padding:60px 0 0;}
article .dateline{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 24px;
}
article .dateline b{color:var(--accent);font-weight:500;}
article h1{margin-bottom:20px;}
article .lede{max-width:48ch;margin-bottom:0;}
.movement{padding:52px 0 0;}
.movement h2{margin-bottom:16px;max-width:20ch;}
.movement p{max-width:62ch;}
.movement h3{margin:30px 0 8px;}

/* figure */
figure{margin:34px 0 30px;padding:0;}
.fig-head{border-top:1px solid var(--rule-strong);padding-top:14px;margin-bottom:20px;}
.fig-title{font-family:var(--f-display);font-weight:600;font-size:14.5px;letter-spacing:-.01em;margin:0 0 3px;}
.fig-src{font-family:var(--f-mono);font-size:11px;letter-spacing:.05em;color:var(--muted);margin:0;text-transform:uppercase;}
svg.chart{display:block;width:100%;height:auto;overflow:visible;}
.grid-line{stroke:var(--rule);stroke-width:1;}
.axis-txt{fill:var(--muted);font-family:var(--f-mono);font-size:11px;}
.pt-lbl{fill:var(--ink);font-family:var(--f-display);font-size:14px;font-weight:700;}
.series{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.dot{fill:var(--accent);stroke:var(--paper);stroke-width:2;}
figcaption{font-size:14.5px;color:var(--muted);line-height:1.55;margin-top:14px;max-width:56ch;}

/* counter panel */
.counter{border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);padding:24px 0;margin:30px 0;}
.counter .lbl{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 18px;}
.counter dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 20px;}
.counter dt{font-family:var(--f-display);font-weight:700;font-size:1.05rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;}
.counter dd{margin:0;font-size:15.5px;line-height:1.5;color:var(--ink-soft);}
.counter > p{margin:20px 0 0;max-width:60ch;font-size:16px;}

/* pull */
.pull{margin:38px 0;padding:0 0 0 22px;border-left:3px solid var(--accent);}
.pull p{
  font-family:var(--f-display);font-weight:600;font-size:clamp(1.35rem,3vw,1.75rem);
  line-height:1.16;letter-spacing:-.025em;margin:0;max-width:22ch;text-wrap:balance;
}

/* note box */
.note{background:var(--sunk);padding:24px 26px;margin:32px 0;border-left:3px solid var(--rule-strong);}
.note .lbl{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;}
.note p{margin:0;font-size:16px;color:var(--ink-soft);max-width:58ch;}

/* today list */
.today{list-style:none;margin:26px 0 0;padding:0;}
.today li{
  border-top:1px solid var(--rule);padding:20px 0;
  display:grid;grid-template-columns:30px minmax(0,1fr);gap:16px;align-items:start;
}
.today li:last-child{border-bottom:1px solid var(--rule);}
.today .n{font-family:var(--f-mono);font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums;padding-top:3px;}
.today h3{margin:0 0 5px;}
.today p{margin:0;font-size:16px;color:var(--ink-soft);line-height:1.55;max-width:56ch;}

/* end marker */
.endmark{margin:66px 0 0;padding-top:30px;border-top:1px solid var(--rule-strong);}
.endmark p{
  font-family:var(--f-mono);font-size:12px;line-height:2;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);margin:0;max-width:44ch;
}
.endmark p b{color:var(--accent);font-weight:500;}

/* ---------------- signup ---------------- */
.signup{border-top:1px solid var(--rule-strong);margin-top:64px;padding:44px 0;}
.signup h2{margin-bottom:12px;max-width:18ch;}
.signup p{max-width:52ch;color:var(--ink-soft);}
form.sub{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;max-width:480px;}
form.sub input[type=email]{
  flex:1 1 240px;min-width:0;
  font-family:var(--f-read);font-size:16px;color:var(--ink);
  background:var(--surface);border:1px solid var(--rule-strong);padding:12px 14px;border-radius:0;
}
form.sub input[type=email]::placeholder{color:var(--muted);}
form.sub input[type=email]:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent);}
form.sub button{
  font-family:var(--f-display);font-weight:600;font-size:15px;letter-spacing:-.01em;
  background:var(--accent);color:#fff;border:1px solid var(--accent);
  padding:12px 22px;cursor:pointer;border-radius:0;
}
form.sub button:hover{background:var(--ink);border-color:var(--ink);}
.signup small{display:block;margin-top:12px;font-family:var(--f-mono);font-size:11px;color:var(--muted);}

/* ---------------- footer ---------------- */
footer{border-top:1px solid var(--rule-strong);margin-top:0;padding:34px 0 56px;}
footer .cols{display:grid;grid-template-columns:var(--gutter) minmax(0,var(--measure));column-gap:var(--gap);}
@media (max-width:860px){footer .cols{grid-template-columns:minmax(0,1fr);}}
footer .fmark{font-family:var(--f-display);font-weight:700;font-size:14px;letter-spacing:-.02em;}
footer p{font-family:var(--f-mono);font-size:11.5px;line-height:1.95;color:var(--muted);margin:0;max-width:62ch;}
footer a{color:var(--muted);}
footer a:hover{color:var(--accent);}
footer nav{margin-top:14px;display:flex;gap:22px;flex-wrap:wrap;}
footer nav a{font-family:var(--f-mono);font-size:11.5px;text-decoration:none;}

/* ---------------- misc pages ---------------- */
.simple{padding:70px 0 0;}
.simple h1{font-size:clamp(2.2rem,5.5vw,3.4rem);margin-bottom:24px;}
.simple .col p{max-width:60ch;}
.simple h2{margin:44px 0 12px;}

@media (prefers-reduced-motion:no-preference){
  .series{animation:draw 1.1s ease-out both;}
  @keyframes draw{from{stroke-dasharray:600;stroke-dashoffset:600;}to{stroke-dasharray:600;stroke-dashoffset:0;}}
}
