/* peterfilias.com — direction B: dark, terminal-inspired */
:root{--bg:#0a0b0d;--bg2:#111317;--line:#262a31;--fg:#ecebe7;--soft:#c9ccd1;--dim:#9ba1aa;--acc:#c6ff3d;--acc-hover:#d6ff70;--on-acc:#0a0b0d;--strong:#ffffff;--bar:rgba(10,11,13,.92);--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:"Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;--pad:clamp(20px,5vw,64px);--max:1200px;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,p,ul{margin:0}
a{color:var(--acc);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:root[data-mode="light"]{--bg:#f7f6f1;--bg2:#ffffff;--line:#d6d4cb;--fg:#121316;--soft:#33363c;--dim:#565b63;--acc:#3d6600;--acc-hover:#2f5000;--on-acc:#ffffff;--strong:#0a0b0d;--bar:rgba(247,246,241,.92);color-scheme:light}
.mode-switch{display:none;background:none;border:0;padding:0;margin:0;font:inherit;color:var(--soft);cursor:pointer;white-space:nowrap}
.js .mode-switch{display:inline-block}
.mode-switch:hover{color:var(--acc)}
.topbar__tools{display:flex;flex-wrap:wrap;align-items:center;gap:4px 18px}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:2px}
::selection{background:var(--acc);color:var(--on-acc)}
.mono{font-family:var(--mono);font-size:.88em}
.dim{color:var(--dim)}
.jump{position:absolute;left:-999px;top:8px;background:var(--acc);color:var(--on-acc);padding:8px 14px;font:700 14px var(--mono);z-index:10}
.jump:focus{left:8px}
main{display:block;max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
main:focus{outline:none}

.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px var(--pad);background:var(--bar);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);font:400 13px var(--mono)}
.topbar__home{color:var(--soft);text-decoration:none}
.topbar__nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.topbar__nav a{text-decoration:none}
.topbar__nav a:hover{text-decoration:underline}

.hero{padding:clamp(56px,11vh,120px) 0 clamp(40px,6vh,64px)}
.cmd{font:400 14px var(--mono);color:var(--acc);margin-bottom:24px;letter-spacing:.01em}
.cmd::before{content:"> ";color:var(--dim)}
p.cmd[aria-hidden]::before{content:""}
p.cmd[aria-hidden]::after{content:"▌";margin-left:2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
h1{font:700 clamp(38px,5.6vw,78px)/1.05 var(--sans);letter-spacing:-.03em;max-width:17ch}
.h1--page{font-size:clamp(34px,4.6vw,62px);max-width:20ch}
.hl{color:var(--acc)}
.lead{max-width:62ch;color:var(--soft);margin-top:24px;font-size:clamp(17px,1.6vw,19px)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn{display:inline-block;padding:12px 18px;border:1px solid var(--line);color:var(--fg);font:400 14px var(--mono);text-decoration:none;transition:border-color .15s,background .15s}
.btn:hover{border-color:var(--acc)}
.btn--solid{background:var(--acc);border-color:var(--acc);color:var(--on-acc);font-weight:700}
.btn--solid:hover{background:var(--acc-hover)}

.stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}
.stat{padding:24px 22px;border-right:1px solid var(--line)}
.stat:last-child{border-right:0}
.stat b{display:block;font:700 clamp(28px,3vw,38px)/1.1 var(--mono);color:var(--strong)}
.stat span{color:var(--dim);font-size:14px}

.block{padding:clamp(40px,7vh,72px) 0;border-bottom:1px solid var(--line)}
.block:last-child{border-bottom:0}
.block>p{max-width:72ch;color:var(--soft)}
.block>p+p,.block>*+.grid2,.block>.grid2+p,.block>*+.arrows,.block>*+.chips{margin-top:20px}
.label{font:700 13px var(--mono);color:var(--acc);text-transform:uppercase;letter-spacing:.1em;margin-bottom:24px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.panel{border:1px solid var(--line);background:var(--bg2);padding:24px}
.panel--wide{grid-column:1/-1}
.block>.panel--wide+.panel--wide{margin-top:20px}
.aside-note{display:block;margin-top:6px;font:400 12px/1.5 var(--mono);color:var(--dim);font-style:italic}
.aside-note::before{content:"* ";color:var(--acc);font-style:normal}
.panel h3{font:700 18px/1.3 var(--sans);margin-bottom:12px}
.panel__num{font:700 36px/1.1 var(--mono);color:var(--strong);margin-bottom:8px}
.arrows{padding:0;list-style:none}
.arrows li{position:relative;padding-left:24px;margin-bottom:9px;color:var(--soft)}
.arrows li::before{content:"→";position:absolute;left:0;color:var(--acc);font-family:var(--mono)}
.arrows li:last-child{margin-bottom:0}
.chips{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none}
.chips li{border:1px solid var(--line);padding:6px 12px;font:400 13px var(--mono);color:var(--soft)}
.more{font:400 14px var(--mono)}
.prose{max-width:72ch;color:var(--soft)}
.prose p+p{margin-top:16px}

.log{display:grid;grid-template-columns:200px 1fr;gap:28px;padding:24px 0;border-top:1px dashed var(--line)}
.log:first-of-type{border-top:0;padding-top:0}
.log__meta{display:flex;flex-direction:column;font:400 13px var(--mono);color:var(--dim)}
.log__when{color:var(--acc)}
.log h3{font:700 19px/1.35 var(--sans)}
.log__title{font-weight:400;color:var(--soft)}
.log__body>p{margin-top:6px}
.log__body .arrows{margin-top:12px}
.big{font:700 clamp(24px,3.4vw,40px) var(--mono);word-break:break-word}
.big+p{margin-top:8px}

.baseline{max-width:var(--max);margin:0 auto;padding:32px var(--pad) 48px;border-top:1px solid var(--line);font:400 13px var(--mono);color:var(--dim);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}
.hero--404{min-height:60vh}

@media (max-width:860px){.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.grid2{grid-template-columns:1fr}.log{grid-template-columns:1fr;gap:8px}.log__meta{flex-direction:row;gap:14px}}
@media (max-width:560px){body{font-size:16px}.topbar{position:static}.topbar__nav{gap:4px 14px}.btn{flex:1 1 100%;text-align:center}.stat{padding:18px 14px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}p.cmd[aria-hidden]::after{animation:none}*{transition:none!important}}
@media print{body{background:#fff;color:#000}.topbar,.actions{display:none}}

sup.fn{font-size:.65em;line-height:0;vertical-align:super;color:var(--acc);margin-left:1px}
