/* ============================================================
   pinnavaia.com — the design system (every page)
   The shell all pages share — apex, /daniel, and the hosted tools. Brand type
   (Fraunces + IBM Plex Mono + one gold accent) on solid, calm light/dark
   surfaces — no living sky, no motion. Left-aligned reading, not a centered
   splash. Paths are root-absolute (served at the site root), not file://.
   ============================================================ */

@font-face{font-family:"Fraunces";src:url("/assets/fonts/fraunces-400.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("/assets/fonts/fraunces-400-italic.woff2") format("woff2");
  font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/plex-mono-400.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/assets/fonts/plex-mono-500.woff2") format("woff2");
  font-weight:500;font-style:normal;font-display:swap}

:root{
  --serif:"Fraunces","Iowan Old Style",Palatino,Georgia,serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --measure:34rem; --wrap:44rem;
  --s1:.375rem;--s2:.625rem;--s3:1rem;--s4:1.5rem;--s5:2.25rem;--s6:3.5rem;

  /* light ground (default), theme-aware below */
  --bg:#E9EAE3;          /* warm-neutral, faint green bias — not cream */
  --surface:#F6F6F0;     /* lifted paper for panels */
  --ink:#1B2A2B;         /* warm dark slate */
  --ink-soft:#55635F;
  --accent:#8C6E28;      /* gold, darkened for AA on light */
  --line:#1b2a2b1f;
}
@media (prefers-color-scheme: dark){
  :root{--bg:#10191B;--surface:#172426;--ink:#F0EEE7;--ink-soft:#A9B7B3;--accent:#D8B978;--line:#ffffff1c}
}
:root[data-theme="light"]{--bg:#E9EAE3;--surface:#F6F6F0;--ink:#1B2A2B;--ink-soft:#55635F;--accent:#8C6E28;--line:#1b2a2b1f}
:root[data-theme="dark"]{--bg:#10191B;--surface:#172426;--ink:#F0EEE7;--ink-soft:#A9B7B3;--accent:#D8B978;--line:#ffffff1c}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--serif);
  line-height:1.7;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(1.25rem,5vw,2rem)}

/* ---- top bar: breadcrumb + theme toggle ---- */
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:var(--s4) 0 var(--s3);border-bottom:1px solid var(--line);margin-bottom:var(--s5)}
.crumbs{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--ink-soft)}
.crumbs a{color:var(--ink-soft);text-decoration:none}
.crumbs a:hover{color:var(--accent)}
.crumbs .sep{opacity:.5;margin:0 .5em}
.crumbs [aria-current]{color:var(--ink)}
.toggle{display:grid;place-items:center;width:2.1rem;height:2.1rem;flex:none;
  color:var(--ink-soft);background:transparent;border:1px solid var(--line);border-radius:8px;cursor:pointer;
  transition:color .15s,border-color .15s}
.toggle:hover{color:var(--accent);border-color:var(--accent)}
.toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.toggle svg{width:1rem;height:1rem;display:none}
:root[data-theme="dark"] .toggle .i-sun{display:block}
:root[data-theme="light"] .toggle .i-moon{display:block}
@media (prefers-color-scheme: dark){.toggle .i-sun{display:block}.toggle .i-moon{display:none}}
@media (prefers-color-scheme: light){.toggle .i-moon{display:block}.toggle .i-sun{display:none}}

/* ---- page head ---- */
.eyebrow{font-family:var(--mono);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);margin:0 0 var(--s2)}
/* lowercase variant — the apex motto and /daniel's line read lowercase */
.eyebrow.lower{text-transform:none;letter-spacing:.26em;font-size:.72rem;margin:0 0 var(--s3)}
h1{font-family:var(--serif);font-weight:400;font-optical-sizing:auto;font-size:clamp(2rem,5vw,2.8rem);
  line-height:1.08;letter-spacing:-.01em;margin:0 0 var(--s3);text-wrap:balance;max-width:var(--measure)}
.lede{font-size:1.1rem;color:var(--ink);max-width:var(--measure);margin:0 0 var(--s5)}

/* ---- prose ---- */
.prose{max-width:var(--measure)}
.prose h2{font-family:var(--serif);font-weight:400;font-size:1.4rem;letter-spacing:-.005em;margin:var(--s6) 0 var(--s3)}
.prose p{margin:0 0 var(--s3);color:var(--ink)}
.prose a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}
.prose ol,.prose ul{max-width:var(--measure);padding-left:1.3em}
.prose li{margin:.3em 0}
.prose strong{font-weight:600}
.meta{font-family:var(--mono);font-size:.72rem;line-height:1.8;color:var(--ink-soft);
  border-left:2px solid var(--line);padding-left:var(--s3);margin:var(--s5) 0;max-width:var(--measure)}
.meta code{background:var(--surface);padding:.1em .35em;border-radius:3px}

/* ---- generic panel + controls (reusable by any tool) ---- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:var(--s5);margin:0 0 var(--s5)}
.btn{font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--bg);background:var(--accent);border:none;border-radius:8px;padding:.7em 1.4em;cursor:pointer}
.btn:hover{filter:brightness(1.06)}
.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.btn:disabled{opacity:.45;cursor:default}
.btn.ghost{color:var(--ink);background:transparent;border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);filter:none}

/* ---- generic data table ---- */
table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.78rem}
th,td{text-align:right;padding:.5em .4em;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
th:first-child,td:first-child{text-align:left;color:var(--ink-soft)}
th{color:var(--ink-soft);font-weight:500;letter-spacing:.04em}

/* ---- footer rail ---- */
footer{border-top:1px solid var(--line);margin-top:var(--s6);padding:var(--s4) 0 var(--s6);
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--ink-soft)}
footer a{color:var(--ink-soft);text-decoration:none}
footer a:hover{color:var(--accent)}

/* ---- a tools/index list ---- */
.index{list-style:none;margin:0 0 var(--s5);padding:0;max-width:var(--measure)}
.index li{border-bottom:1px solid var(--line)}
.index li:first-child{border-top:1px solid var(--line)}
.lock{font-family:var(--mono);font-size:.54rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);
  border:1px solid var(--accent);border-radius:2px;padding:.1em .45em;margin-left:.6em;vertical-align:.15em}
.index a{display:block;text-decoration:none;color:var(--ink);padding:var(--s4) 0}
.index a:hover .k{color:var(--accent)}
.index .k{font-family:var(--serif);font-size:1.3rem}
.index .d{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;color:var(--ink-soft);margin-top:.3rem}
