@font-face{font-family:"Hack";src:url("/fonts/hack-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Hack";src:url("/fonts/hack-bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Hack";src:url("/fonts/hack-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--font-mono: "Hack", "Courier New", monospace;--max-width: 76ch;--bg: #0a0a0f;--bg-secondary: #12121a;--text: #c5c5d0;--text-heading: #e0e0e8;--accent: #ff004d;--accent-dim: #9d0b28;--border: #2a2a3a;--link: #ff004d;--link-hover: #ff3370;--code-bg: #16161e}[data-theme=light]{--bg: #f5f5f0;--bg-secondary: #eaeae5;--text: #2a2a2a;--text-heading: #1a1a1a;--accent: #cc003d;--accent-dim: #9d0b28;--border: #c0c0b8;--link: #cc003d;--link-hover: #ff004d;--code-bg: #e0e0db}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-mono);background-color:var(--bg);color:var(--text);line-height:1.7;min-height:100vh;display:flex;flex-direction:column}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem;width:100%}header{border-bottom:1px solid var(--border);padding:1.5rem 0}.header-inner{display:flex;align-items:center;justify-content:space-between}.logo{height:40px;width:auto}.logo-dark{display:block}.logo-light{display:none}[data-theme=light] .logo-dark{display:none}[data-theme=light] .logo-light{display:block}nav{display:flex;align-items:center;gap:1.5rem}nav a{color:var(--text);text-decoration:none;font-size:.875rem;text-transform:lowercase}nav a:hover{color:var(--accent)}nav a.active{color:var(--accent)}.theme-toggle{background:none;border:1px solid var(--border);color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:.75rem;padding:.25rem .5rem}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}main{flex:1;padding:2rem 0}h1,h2,h3,h4{color:var(--text-heading);font-weight:700}h1{font-size:1.5rem;margin-bottom:1rem}h2{font-size:1.25rem;margin:2rem 0 .75rem}h3{font-size:1.1rem;margin:1.5rem 0 .5rem}p{margin-bottom:1rem}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline}hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.separator{color:var(--border);text-align:center;margin:2rem 0;font-size:.75rem;user-select:none}code{background:var(--code-bg);padding:.15rem .4rem;font-size:.875rem;font-family:var(--font-mono)}pre{background:var(--code-bg);padding:1rem;overflow-x:auto;margin-bottom:1rem;border:1px solid var(--border)}pre code{background:none;padding:0}.post-list{list-style:none}.post-list li{margin-bottom:.75rem;display:flex;gap:1rem;align-items:baseline}.post-list .post-date{color:var(--accent-dim);font-size:.8rem;white-space:nowrap}.post-list .post-title{color:var(--text);text-decoration:none}.post-list .post-title:hover{color:var(--accent)}.post-meta{color:var(--accent-dim);font-size:.8rem;margin-bottom:2rem}.post-tags{display:flex;gap:.5rem;margin-top:.25rem}.post-tags a{font-size:.75rem;color:var(--accent-dim);border:1px solid var(--border);padding:.1rem .4rem}.post-tags a:hover{border-color:var(--accent);text-decoration:none}.contact-form{max-width:50ch}.contact-form label{display:block;margin-bottom:.25rem;font-size:.875rem;color:var(--text-heading)}.contact-form input,.contact-form textarea{width:100%;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:.875rem;padding:.5rem;margin-bottom:1rem}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent)}.contact-form textarea{min-height:8rem;resize:vertical}.contact-form button{background:var(--accent);color:#fff;border:none;font-family:var(--font-mono);font-size:.875rem;padding:.5rem 1.5rem;cursor:pointer}.contact-form button:hover{background:var(--link-hover)}footer{border-top:1px solid var(--border);padding:1.5rem 0;font-size:.75rem;color:var(--accent-dim);text-align:center;margin-top:auto}@media (max-width: 600px){.header-inner{flex-direction:column;gap:1rem}nav{flex-wrap:wrap;justify-content:center}.post-list li{flex-direction:column;gap:.25rem}}.callout{margin:1.75em 0;padding:1em 1.25em;border-left:4px solid;border-radius:6px;background:var(--callout-bg)}.callout-title{display:block;font-weight:700;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.6em}.callout-body>*:first-child{margin-top:0}.callout-body>*:last-child{margin-bottom:0}.callout-body code{padding:.1em .35em;border-radius:3px;background:rgba(0,0,0,.06)}.callout-info{--callout-bg: rgba(59, 130, 246, 0.08);border-left-color:#3b82f6}.callout-info .callout-title{color:#1d4ed8}.callout-warning{--callout-bg: rgba(245, 158, 11, 0.10);border-left-color:#f59e0b}.callout-warning .callout-title{color:#b45309}.callout-tip{--callout-bg: rgba(16, 185, 129, 0.10);border-left-color:#10b981}.callout-tip .callout-title{color:#047857}@media (prefers-color-scheme: dark){.callout-info{--callout-bg: rgba(59, 130, 246, 0.14)}.callout-info .callout-title{color:#93c5fd}.callout-warning{--callout-bg: rgba(245, 158, 11, 0.14)}.callout-warning .callout-title{color:#fbbf24}.callout-tip{--callout-bg: rgba(16, 185, 129, 0.14)}.callout-tip .callout-title{color:#6ee7b7}.callout-body code{background:rgba(255,255,255,.08)}}@media (prefers-color-scheme: light){.callout-info{--callout-bg: rgba(59,130,246,0.08)}.callout-info .callout-title{color:#93c5fd}.callout-warning{--callout-bg: rgba(59,130,246,0.08)}.callout-warning .callout-title{color:#fbbf24}.callout-tip{--callout-bg: rgba(59,130,246,0.08)}.callout-tip .callout-title{color:#6ee7b7}.callout-body code{--callout-bg: rgba(59,130,246,0.08)}}article table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.95rem;border:1px solid #fff;}article thead{background:rgba(99,102,241,.1)}article th,article td{padding:.6em .8em;border:1px solid #fff;vertical-align:top}article th{text-align:left;font-weight:600}article tbody tr:nth-child(even){background:rgba(0,0,0,.025)}@media (prefers-color-scheme: dark){.main thead{background:rgba(99,102,241,.18)}.main tbody tr:nth-child(even){background:rgba(255,255,255,.03)}}