:root{--stroke:8px;--radius:4px;--bg:#fafafa;--surface:#ffffff;--surface-stroke:#e0e0e0;--surface-hover:#e8e8e8;--surface-hover-stroke:#cfcfcf;--ink:#3d3d3d;--text:#2b2b2b;--text-muted:#6b6b6b;--font-heading:"Quicksand", ui-rounded, system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--content-width:42rem;--gutter:1rem}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}img,svg,video{display:block;max-width:100%;height:auto}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:1.2}.hero{position:relative;display:grid;place-items:center;min-height:100vh;min-height:100svh;overflow:hidden}.hero-stage{position:absolute;inset:0}.hero-shapes{position:absolute;left:50%;top:50%;width:1px;height:1px;max-width:none;overflow:visible;z-index:1;pointer-events:none;fill:none;stroke:var(--surface-stroke);stroke-width:var(--stroke);stroke-linecap:round;stroke-linejoin:round}.hero-shapes path{pointer-events:visibleStroke;transition:stroke .15s ease}.hero-shapes path:hover{stroke:var(--surface-hover-stroke)}.logo{position:relative;width:min(80vw,20rem);line-height:0}.logo svg{width:100%;overflow:visible;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.letter{animation:levitate var(--dur)ease-in-out var(--delay)infinite alternate both}.letter-a{--dur:2.6s;--delay:-0.4s;--lift:-0.45px}.letter-l{--dur:3.1s;--delay:-1.7s;--lift:-0.35px}.letter-i{--dur:2.3s;--delay:-0.9s;--lift:-0.55px}.letter-n{--dur:2.9s;--delay:-2.3s;--lift:-0.4px}.letter-e{--dur:3.4s;--delay:-1.2s;--lift:-0.5px}@keyframes levitate{from{transform:translateY(0)}to{transform:translateY(var(--lift))}}.posts{max-width:var(--content-width);margin:0 auto;padding:4rem var(--gutter)6rem}.posts-title{font-size:2rem;margin-bottom:1.5rem}.post-list{list-style:none;padding:0;display:grid;gap:1.25rem}.card{display:block;padding:1.25rem 1.5rem;background:var(--surface);border:var(--stroke)solid var(--surface-stroke);border-radius:var(--radius);color:var(--text);text-decoration:none;transition:transform .15s ease,border-color .15s ease}.card:hover,.card:focus-visible{transform:translateY(-4px);border-color:var(--surface-hover-stroke)}.card:active{transform:translateY(0)}.card time{font-size:.875rem;font-weight:600}.card h3{font-size:1.5rem;margin:.15rem 0 .35rem}.btn-home{display:inline-block;margin:var(--gutter);padding:.5rem 1.1rem;background:var(--surface);border:var(--stroke)solid var(--surface-stroke);border-radius:var(--radius);color:var(--text);font-family:var(--font-heading);font-weight:700;text-decoration:none;transition:transform .15s ease,border-color .15s ease}.btn-home:hover,.btn-home:focus-visible{transform:translateY(-3px);border-color:var(--surface-hover-stroke)}.post{max-width:var(--content-width);margin:0 auto;padding:2rem var(--gutter)6rem}.post>h1{font-size:clamp(2.25rem,7vw,3.25rem)}.post>time{display:block;margin-top:.5rem;color:var(--text-muted);font-weight:600;font-size:.9375rem}.prose{margin-top:2rem}.prose>*+*{margin-top:1.1em}.prose h2{font-size:1.75rem;margin-top:2em}.prose h3{font-size:1.35rem;margin-top:1.75em}.prose a{color:inherit;text-decoration:underline;text-decoration-color:var(--surface-stroke);text-decoration-thickness:.25em;text-underline-offset:.15em}.prose a:hover{text-decoration-color:var(--surface-hover-stroke)}.prose ul,.prose ol{padding-left:1.4em}.prose blockquote,.prose pre,.prose img{background:var(--surface);border:var(--stroke)solid var(--surface-stroke);border-radius:var(--radius)}.prose blockquote{padding:1rem 1.25rem}.prose pre{padding:1rem 1.25rem;overflow-x:auto;font-size:.9rem}.prose code{font-size:.9em}.prose :not(pre)>code{padding:.1em .35em;background:var(--surface-stroke);border-radius:var(--radius)}.prose hr{height:var(--stroke);border:0;border-radius:var(--radius);background:var(--surface-stroke);margin:2.5em 0}:focus-visible{outline:var(--stroke)solid var(--ink);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}