/* imapenguin.com shared static-page theme — blog-blue, follows system light/dark.
   Pairs with /shared/iap.js (sets data-theme from saved pref or system, binds the toggle).
   Used by /lab/ and the shared-theme tool pages. */

@import url("https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Inter:wght@400;500;600;700&display=swap");

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

:root{
  --fdisp:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
  --fbody:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
  --fmono:'DM Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}

[data-theme="dark"]{
  --bg:#0d1117;--bg2:#161b22;--bg3:#21262d;
  --border:#30363d;--border2:#3d444d;
  --text:#e6edf3;--text2:#9198a1;--text3:#5b636d;
  --accent:#66b3ff;--accent2:#9ecbff;--hl-fill:#388bfd;--hl-text:#0d1117;
  --row-alt:#11161d;--toggle-bg:#21262d;--toggle-knob:#66b3ff;
}
[data-theme="light"]{
  --bg:#ffffff;--bg2:#f6f8fa;--bg3:#eaeef2;
  --border:#d0d7de;--border2:#bcc4cd;
  --text:#1f2328;--text2:#59636e;--text3:#8c959f;
  --accent:#0969da;--accent2:#0a5cc0;--hl-fill:#0969da;--hl-text:#ffffff;
  --row-alt:#f6f8fa;--toggle-bg:#eaeef2;--toggle-knob:#0969da;
}

html,body{background:var(--bg);color:var(--text);font-family:var(--fbody);min-height:100vh;overflow-x:hidden;transition:background .25s,color .25s}

.page{position:relative;z-index:1;max-width:920px;margin:0 auto;padding:36px 32px 64px}
.page.wide{max-width:1100px}
@media(max-width:560px){.page{padding:24px 16px 56px}}

.header-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:30px;gap:16px}
.eyebrow{font-family:var(--fmono);font-size:10px;font-weight:500;letter-spacing:.16em;color:var(--accent);text-transform:uppercase;margin-bottom:8px}
h1{font-family:var(--fdisp);font-size:clamp(26px,5vw,44px);font-weight:700;color:var(--text);line-height:1.1;letter-spacing:-.02em}
h1 em{font-style:normal;color:var(--accent)}
.subtitle{font-family:var(--fbody);margin-top:10px;font-size:12px;color:var(--text2);letter-spacing:.01em;line-height:1.65;max-width:580px}

.back-link{display:inline-block;font-family:var(--fmono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);text-decoration:none;margin-bottom:18px;transition:color .15s}
.back-link:hover{color:var(--accent)}
.back-link::before{content:'\2190  '}

/* theme toggle */
.theme-toggle{flex-shrink:0;margin-top:10px;display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none}
.toggle-track{position:relative;width:46px;height:26px;background:var(--toggle-bg);border:1px solid var(--border2);border-radius:13px;transition:background .25s,border-color .25s}
.toggle-knob{position:absolute;top:4px;left:4px;width:16px;height:16px;background:var(--toggle-knob);border-radius:50%;transition:transform .28s cubic-bezier(.4,0,.2,1),background .25s}
[data-theme="light"] .toggle-knob{transform:translateX(20px)}
.toggle-icon{width:15px;height:15px;flex-shrink:0;stroke:var(--text2);fill:none;stroke-width:1.8;stroke-linecap:round;transition:stroke .25s}
[data-theme="dark"] .icon-sun{stroke:var(--text3)}[data-theme="dark"] .icon-moon{stroke:var(--accent)}
[data-theme="light"] .icon-sun{stroke:var(--accent)}[data-theme="light"] .icon-moon{stroke:var(--text3)}

/* sections */
section{margin-top:40px}
h2{font-family:var(--fdisp);font-weight:600;font-size:22px;letter-spacing:-.01em;margin-bottom:5px}
h2 em{font-style:normal;color:var(--accent)}
.sec-note{font-family:var(--fbody);font-size:12px;color:var(--text2);letter-spacing:.01em;margin-bottom:16px;line-height:1.65}

/* tables */
.table-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:8px;overflow-x:auto;transition:background .25s,border-color .25s}
table{border-collapse:collapse;width:100%;min-width:480px;font-family:var(--fmono);font-size:13px}
th,td{padding:9px 16px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}
thead th{font-family:var(--fmono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);font-weight:500;border-bottom:1px solid var(--border2)}
thead th.num{text-align:right}
tbody tr:nth-child(even){background:var(--row-alt)}
tbody tr:last-child td{border-bottom:none}
td.num{text-align:right;font-variant-numeric:tabular-nums}
td.sym{color:var(--accent);font-weight:500}
.pw{color:var(--text2)}
tr.base td{color:var(--accent)}

/* card grid (index hub) */
.group-label{font-family:var(--fmono);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:36px 0 14px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.card{display:block;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:16px 18px;text-decoration:none;color:var(--text);transition:border-color .15s,background .15s,transform .15s}
.card:hover{border-color:var(--accent);background:var(--bg3);transform:translateY(-2px)}
.card .ct{font-family:var(--fbody);font-size:14px;font-weight:600;letter-spacing:.01em;margin-bottom:5px}
.card .cd{font-family:var(--fbody);font-size:11px;color:var(--text2);line-height:1.55;letter-spacing:.01em}
.card .cmeta{font-family:var(--fmono);margin-top:9px;font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--text3)}

/* footer */
footer{margin-top:48px;font-family:var(--fmono);font-size:10px;color:var(--text3);letter-spacing:.05em;text-align:center}
footer a{color:var(--text2);text-decoration:none;border-bottom:1px solid var(--border2)}
footer a:hover{color:var(--accent);border-color:var(--accent)}

/* ============================================================
   retro layer — C64 display chrome + light-blue accent.
   Shares its look with the blog (assets/ananke/css/iap-theme.css).
   Appended last so it overrides the rules above without !important.
   ============================================================ */
@font-face{font-family:'C64';src:url('/shared/fonts/C64_Pro-STYLE.woff2') format('woff2');font-display:swap}
@font-face{font-family:'C64Mono';src:url('/shared/fonts/C64_Pro_Mono-STYLE.woff2') format('woff2');font-display:swap}

[data-theme="dark"]{--accent:#8b9fff;--accent2:#b3c0ff;--hl-fill:#6c5eb5;--toggle-knob:#8b9fff}
[data-theme="light"]{--accent:#4a3fb5;--accent2:#352879;--hl-fill:#6c5eb5;--toggle-knob:#4a3fb5}

h1{font-family:'C64',var(--fmono);font-weight:400;font-size:clamp(18px,3.4vw,27px);line-height:1.4;letter-spacing:.01em}
h2{font-family:'C64',var(--fmono);font-weight:400;font-size:17px;line-height:1.4}
.eyebrow,.group-label{font-family:'C64Mono',var(--fmono);letter-spacing:.04em}

.table-wrap,.card{border-radius:4px}
