/* ============================================================
   Dennis Crowley — shared design system (matches the home)
   Near-monochrome editorial index · serif display + sans body
   ============================================================ */
:root{
  --bg:#fafaf8;
  --ink:#1a1a1a;
  --ink-soft:#585853;
  --hair:#e6e6df;
  --hair-soft:#f0f0ea;
  --accent:#0d6e7c;

  --serif:"Iowan Old Style","Charter",Georgia,"Times New Roman",serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --fs-h1:clamp(2.25rem,6vw,3.4rem);
  --fs-h2:clamp(1.3rem,2.4vw,1.6rem);
  --fs-h3:1.05rem;
  --fs-h4:1rem;
  --fs-h5:.95rem;
  --fs-h6:.9rem;
  --fs-body:1.0625rem;
  --fs-small:.875rem;
  --fs-eyebrow:.75rem;

  --lh-display:1.12;
  --lh-heading:1.3;
  --lh-body:1.68;

  --gutter:clamp(20px,6vw,48px);
  --page-max:800px;
  --sec-pad:clamp(3.25rem,9vw,5.75rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:var(--fs-body);line-height:var(--lh-body);
  font-feature-settings:"kern";text-rendering:optimizeLegibility;
  padding-bottom:40px;
}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-weight:500;margin:0}
h1{font-size:var(--fs-h1);line-height:var(--lh-display);letter-spacing:-0.015em}
h2{font-size:var(--fs-h2);line-height:var(--lh-heading)}
h3{font-size:var(--fs-h3);line-height:var(--lh-heading)}
h4{font-size:var(--fs-h4)}h5{font-size:var(--fs-h5)}h6{font-size:var(--fs-h6)}
p{margin:0 0 1rem}
p:last-child{margin-bottom:0}
small,.small{font-size:var(--fs-small)}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 34%,transparent)}
a:hover{border-bottom-color:var(--accent)}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
::selection{background:color-mix(in srgb,var(--accent) 18%,transparent)}

.wrap{max-width:var(--page-max);margin-inline:auto;padding-inline:var(--gutter)}
section{padding-block:calc(var(--sec-pad) * .5)}
.eyebrow{font-family:var(--sans);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 1.35rem;font-weight:600}
.muted{color:var(--ink-soft)}
.rule{border:0;border-top:1px solid var(--hair);margin:0}
.seeall{font-size:var(--fs-small);color:var(--ink-soft);border-bottom:1px solid var(--hair)}
.seeall:hover{color:var(--accent);border-bottom-color:currentColor}
.sec-more{margin-top:1.4rem}

.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--bg);padding:.5rem .9rem;font-size:var(--fs-small);border:0;z-index:1000}
.skip:focus{left:12px;top:12px}

/* header / nav */
header.site{padding-block:1.5rem .5rem}
.site-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1.25rem}
.site-name{font-family:var(--serif);font-size:var(--fs-h6);letter-spacing:.01em;color:var(--ink);border:0}
nav.site-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.15rem 1.15rem}
nav.site-nav a{font-size:var(--fs-small);color:var(--ink-soft);border-bottom:1px solid transparent}
nav.site-nav a:hover{color:var(--accent);border-bottom-color:currentColor}
nav.site-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink)}
@media (max-width:640px){.site-row{flex-direction:column;align-items:flex-start;gap:.6rem}}

/* page header */
.page-head{padding-block:calc(var(--sec-pad) * .7) calc(var(--sec-pad) * .25)}
.page-head h1{margin-bottom:.9rem}
.page-head .lede{font-size:calc(var(--fs-body) * 1.1);line-height:1.55;color:var(--ink-soft);max-width:40em}
.crumbs{font-size:var(--fs-small);color:var(--ink-soft);margin:0 0 1.4rem}
.crumbs a{color:var(--ink-soft);border-bottom:1px solid var(--hair)}
.crumbs a:hover{color:var(--accent);border-bottom-color:currentColor}

/* prose */
.prose{max-width:40em}
.prose p{font-size:var(--fs-body);line-height:var(--lh-body);margin:0 0 1.15rem}
.prose h2{margin:2.4rem 0 .9rem}
.prose a{color:var(--accent);border-bottom:1px solid color-mix(in srgb,var(--accent) 34%,transparent)}

/* venture detail list */
.detail{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.detail > li{border-bottom:1px solid var(--hair);padding:1.6rem .25rem}
.detail-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.3rem 1rem;margin-bottom:.55rem}
.detail-name{font-family:var(--serif);font-size:var(--fs-h2);color:var(--ink);border:0;display:inline-flex;align-items:baseline;gap:.35rem}
.detail-name .go{color:var(--accent);font-size:.9rem}
.detail-meta{font-size:var(--fs-small);color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums}
.detail-body{color:var(--ink-soft);max-width:44em;margin:0 0 .7rem}
.detail-body:last-child{margin-bottom:0}
.detail-links{list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.detail-links a{font-size:var(--fs-small);color:var(--ink-soft);border-bottom:1px solid var(--hair)}
.detail-links a:hover{color:var(--accent);border-bottom-color:currentColor}

/* timeline */
.tl{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
.tl li{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:.15rem 1.2rem;align-items:baseline;padding:.85rem .25rem;border-bottom:1px solid var(--hair)}
.tl .yr{font-family:var(--sans);font-size:var(--fs-small);color:var(--ink-soft);font-variant-numeric:tabular-nums}
.tl .ev{color:var(--ink)}
.tl .ev .sub{display:block;font-size:var(--fs-small);color:var(--ink-soft)}
@media (max-width:440px){.tl li{grid-template-columns:3.6rem minmax(0,1fr)}}

/* archive lists */
.arch-group{margin-top:2.2rem}
.arch-group:first-of-type{margin-top:0}
.arch-group h2{margin-bottom:.8rem;color:var(--ink)}
.arch-list{list-style:none;margin:0;padding:0}
.arch-list li{padding:.4rem 0;display:flex;flex-wrap:wrap;column-gap:.6rem;align-items:baseline;border-bottom:1px solid var(--hair-soft)}
.arch-list a{color:var(--ink);border-bottom:1px solid var(--hair)}
.arch-list a:hover{color:var(--accent);border-bottom-color:currentColor}
.arch-src{font-size:var(--fs-small);color:var(--ink-soft)}
.arch-note{font-size:var(--fs-small);color:var(--ink-soft);flex-basis:100%;margin-top:.1rem}

/* patents */
.patents{list-style:none;margin:0;padding:0}
.patents li{padding:.45rem 0;border-bottom:1px solid var(--hair-soft);font-size:var(--fs-small);color:var(--ink-soft)}
.patents b{font-family:var(--sans);color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}

/* footer */
.social-row{list-style:none;display:flex;flex-wrap:wrap;gap:.35rem 1.4rem;margin:0;padding:0}
.social-row a{font-size:var(--fs-small);color:var(--ink-soft);border-bottom:1px solid var(--hair)}
.social-row a:hover{color:var(--accent);border-bottom-color:currentColor}
footer.site{border-top:1px solid var(--hair);margin-top:calc(var(--sec-pad) * .5);padding-block:2.4rem 3.4rem}
footer .fine{font-size:.75rem;color:var(--ink-soft);margin-top:1.6rem;letter-spacing:.03em}

/* static-safe reveal */
.reveal{opacity:1;transform:none}
html.js-motion .reveal{opacity:0;transform:translateY(14px);transition:opacity .65s cubic-bezier(.22,.61,.36,1),transform .65s cubic-bezier(.22,.61,.36,1)}
html.js-motion .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js-motion .reveal{opacity:1;transform:none;transition:none}}

/* Keep Pivoting concept-disclaimer strip (Category B) */
#varv-disclaimer{position:fixed;left:0;right:0;bottom:0;z-index:2147482000;display:flex;justify-content:center;align-items:center;gap:.55em;flex-wrap:wrap;padding:8px 16px;font-family:var(--sans);font-size:11.5px;line-height:1.4;letter-spacing:.05em;background:#141414;color:#a7a79f;border-top:1px solid rgba(255,255,255,.1);text-align:center}
#varv-disclaimer a{color:#5bb7c4;text-decoration:none;border-bottom:1px solid rgba(91,183,196,.5)}
#varv-disclaimer a:hover{border-color:#5bb7c4}
#varv-disclaimer b{color:#f2f2ec;font-weight:600}
@media(max-width:560px){#varv-disclaimer{font-size:10.5px;padding:7px 12px}body{padding-bottom:58px}}
