:root{
  --paper:#f5efe3; --paper-2:#ece4d3; --ink:#1f1c17; --muted:#6b6355;
  --accent:#0e7c6b; --accent-2:#d9573b; --rule:#d8cdb8;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#16151a; --paper-2:#1f1e25; --ink:#ece6da; --muted:#a39b8c;
  --accent:#4fd1b5; --accent-2:#ff8a6b; --rule:#33313a;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.65 var(--serif);
  background-image:radial-gradient(var(--rule) 1px,transparent 1px);background-size:22px 22px;background-attachment:fixed}
main,header.site,footer.site{max-width:44rem;margin:0 auto;padding:0 1.25rem}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--accent-2)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--ink);color:var(--paper);padding:.4rem .7rem}
header.site{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:center;justify-content:space-between;padding-top:1.5rem;padding-bottom:1.5rem}
.brand{font:600 1rem/1 var(--mono);letter-spacing:.02em;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:.6rem}
.pulse{width:.7rem;height:.7rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 60%,transparent)}70%{box-shadow:0 0 0 .6rem transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.pulse{animation:none}}
nav{display:flex;gap:1.1rem;font:500 .85rem/1 var(--mono);text-transform:lowercase}
nav a{color:var(--muted);text-decoration:none;padding:.3rem 0;border-bottom:2px solid transparent}
nav a:hover{color:var(--ink)}
nav a[aria-current=page]{color:var(--ink);border-color:var(--accent-2)}
.hero{padding:3.5rem 0 1.5rem;border-bottom:1px solid var(--rule);margin-bottom:2rem}
.hero.small{padding-top:2rem}
.hero h1{font-size:clamp(2.4rem,8vw,4.2rem);line-height:1.02;letter-spacing:-.02em;margin:.3rem 0 .8rem;font-weight:600}
.hero.small h1{font-size:clamp(2rem,6vw,3rem)}
.lede{font-size:1.25rem;color:var(--muted);margin:0;max-width:34rem}
.kicker{font:500 .78rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent-2);margin:0}
.prose h1{font-size:clamp(1.9rem,6vw,2.7rem);line-height:1.1;letter-spacing:-.015em;margin:.4rem 0 1.4rem}
.prose h2{font-size:1.35rem;margin:2.2rem 0 .5rem;line-height:1.25}
.prose p,.prose li{max-width:38rem}
.prose ol,.prose ul{padding-left:1.3rem}
.prose li{margin:.35rem 0}
.prose li::marker{color:var(--accent-2);font-family:var(--mono);font-size:.9em}
.prose strong{font-weight:650}
blockquote{margin:1.5rem 0;padding:1rem 1.25rem;background:var(--paper-2);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;font:1.1rem var(--mono)}
blockquote p{margin:0}
code{font:.88em var(--mono);background:var(--paper-2);padding:.1em .3em;border-radius:4px}
hr{border:0;border-top:1px dashed var(--rule);margin:2.5rem 0 1.25rem}
.goals h2{font-family:var(--mono);font-size:1rem;letter-spacing:.01em;padding:.9rem 0 0;border-top:1px solid var(--rule)}
.goals h2::before{content:"▸ ";color:var(--accent)}
.latest{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--rule)}
.entries{list-style:none;padding:0;margin:1rem 0}
.entries li{border-bottom:1px solid var(--rule)}
.entries a{display:grid;gap:.15rem;padding:1.1rem .25rem;text-decoration:none;color:var(--ink);transition:background .15s}
.entries a:hover{background:color-mix(in srgb,var(--paper-2) 70%,transparent)}
.entries time{font:.75rem var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.entries .t{font-size:1.3rem;font-weight:600;line-height:1.25}
.entries a:hover .t{color:var(--accent)}
.entries .s{color:var(--muted);font-size:1rem}
.more{font:500 .85rem var(--mono)}
.sig{font-style:italic;color:var(--muted)}
.badge{display:inline-block;font:700 .65rem/1 var(--mono);letter-spacing:.08em;color:var(--paper);background:var(--accent);padding:.25rem .4rem;border-radius:4px;vertical-align:.15em;font-style:normal}
footer.site{margin-top:4rem;padding-top:1.5rem;padding-bottom:2.5rem;border-top:1px solid var(--rule);font:.8rem/1.6 var(--mono);color:var(--muted)}
footer.site p{margin:.35rem 0}
footer.site a{color:var(--muted)}
@media (max-width:520px){body{font-size:17px}.hero{padding-top:2rem}nav{gap:.85rem}}
.elsewhere{margin-top:2rem;padding:.9rem 1.1rem;border:1px dashed var(--rule);border-radius:8px;font:.9rem/1.5 var(--mono);color:var(--muted)}
.tool{margin:0 0 1.5rem;max-width:38rem}
.tool label{display:block;font:500 .8rem var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.4rem}
.tool-row{display:flex;gap:.5rem}
.tool input{flex:1;min-width:0;font:1rem var(--mono);padding:.65rem .8rem;border:1px solid var(--rule);border-radius:8px;background:var(--paper);color:var(--ink)}
.tool input:focus{outline:2px solid var(--accent);outline-offset:1px}
.tool button{font:600 .9rem var(--mono);padding:.65rem 1.1rem;border:0;border-radius:8px;background:var(--accent);color:var(--paper);cursor:pointer}
.tool button:hover{background:var(--accent-2)}
.tool-res{max-width:38rem;padding:1rem 1.25rem;border:1px solid var(--rule);border-left:4px solid var(--muted);border-radius:0 8px 8px 0;background:var(--paper-2);margin-bottom:1.5rem}
.tool-res.yes{border-left-color:var(--accent)}.tool-res.warn{border-left-color:var(--accent-2)}
.tool-res p{margin:.35rem 0}.tool-name span{color:var(--muted);font:.9rem var(--mono)}
.tool-meta{font:.8rem/1.5 var(--mono);color:var(--muted)}
.tool-res blockquote{font-size:.95rem;margin:.8rem 0 .2rem}
.tool-res blockquote p{white-space:pre-line}
.audit{border-collapse:collapse;margin:.6rem 0;font:.95rem var(--mono)}
.audit td{padding:.25rem .9rem .25rem 0;border-bottom:1px solid var(--rule)}
.audit td:last-child{text-align:right;font-weight:600}
.tool-res+details,details+details{max-width:38rem}
details{margin:.4rem 0}details summary{cursor:pointer;font:600 .9rem var(--mono)}
.audit-list{font-size:.9rem;word-break:break-all}
.req{max-width:38rem;padding:1rem 1.25rem;border:1px dashed var(--accent);border-radius:8px;background:var(--paper-2)}
