:root{--bg:#131312;--accent:#c84b3a;--text:#ededed;--text-dim:#555;--ink:#d8d3c8;--ink2:#d8d3c86b;--ink3:#d8d3c82e;--border:#ffffff14;--border2:#fff3;--border3:#ffffff0a;--font-body:"Lora", Georgia, serif;--font-label:"IBM Plex Mono", monospace;--font-head:"Newsreader", Georgia, serif}html{background:var(--bg);color:var(--text)}body{margin:.5rem}a{color:var(--ink);text-decoration:none}a:hover{color:var(--accent)}em{color:var(--ink2);font-style:italic}.emoji{color:#fff}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.5s ease-out fadeUp}.post-page{max-width:680px;font-family:var(--font-body);margin:0 auto;padding:3rem 2rem;font-size:1.1rem;line-height:1.85}.post-page img{max-width:100%;height:auto;display:block}.post-page .img-container>span{text-align:center;color:var(--ink2);margin:.6rem 0 1.75rem;font-size:1rem;font-style:italic;display:block}.post-page h1{font-family:var(--font-head);color:var(--ink);margin:0 0 1rem;font-size:clamp(2rem,4vw,3rem);font-weight:500;line-height:1.1}.post-page>h1{font-size:clamp(2.5rem,5vw,3rem);text-decoration:underline}.post-page h2,.post-page h3,.post-page h4{font-family:var(--font-head);color:var(--ink);margin:2rem 0 .75rem;font-weight:500}.post-page code:not(.code-block code){font-family:var(--font-label);background:var(--border);color:var(--accent);padding:.15em .4em;font-size:.8rem}.post-content :is(h1,h2,h3,h4){margin-top:2.5rem;position:relative}.post-content :is(h1,h2,h3,h4):hover:before{content:"#";font-family:var(--font-label);font-size:inherit;color:var(--ink3);position:absolute;top:-.2rem;left:-1.7rem}.post-meta{font-family:var(--font-label);color:var(--ink2);letter-spacing:.08em;border-bottom:1px solid var(--border);gap:1.5rem;margin-bottom:2.5rem;padding-bottom:1.5rem;font-size:.7rem;display:flex}.post-toc{flex-direction:column;gap:0;width:160px;display:flex;position:fixed;top:8rem;right:calc(50% + 380px)}@media (width<=1100px){.post-toc{display:none}}.post-toc:before{content:"Table of contents";font-family:var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-bottom:.25rem;font-size:.6rem}.post-toc a{font-family:var(--font-label);letter-spacing:.02em;color:var(--ink2);border-left:2px solid var(--border);white-space:nowrap;text-overflow:ellipsis;padding:.3rem 0 .3rem .75rem;font-size:.8rem;text-decoration:none;transition:color .15s,border-color .15s;overflow:hidden}.post-toc a:hover{color:var(--ink)}.post-toc a.active{color:var(--ink);border-left-color:var(--accent)}.code-block{border:1px solid var(--border);font-family:var(--font-label);color:var(--ink);background:#0e0e0d;margin:1.75rem 0;padding:1.25rem 1.5rem;font-size:.8rem;line-height:1.7;position:relative;overflow-x:auto}.code-block:has(.code-file){padding-top:2rem}.code-block:before{content:attr(data-lang);font-family:var(--font-label);letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);font-size:.65rem;position:absolute;top:.5rem;right:.75rem}.code-block .code-file{font-family:var(--font-label);color:var(--ink3);font-size:.65rem;position:absolute;top:.5rem;left:.75rem}.code-block code{font-size:inherit;color:inherit;background:0 0;padding:0}@keyframes shimmer{0%{background-position:200%}to{background-position:-200%}}.skeleton{background:linear-gradient(90deg, var(--border) 25%, var(--border2) 50%, var(--border) 75%);background-size:200%;border-radius:2px;animation:2s linear infinite shimmer}.skeleton-title{width:70%;height:2.8rem;margin-bottom:1.25rem}.skeleton-meta{width:40%;height:.75rem;margin-bottom:2.5rem}.skeleton-line{width:100%;height:.85rem;margin-bottom:.6rem}.skeleton-line--short{width:60%}.skeleton-line--gap{margin-top:1.5rem}nav.navbar{border-bottom:1.5px solid var(--border);justify-content:space-between;align-items:center;padding:1.5rem 2rem;display:flex}.navbar-logo a{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;color:var(--ink);font-weight:500}.logo-dot{color:var(--accent)}.navbar-links{gap:2rem;margin:0;padding:0;list-style:none;display:flex}.navbar-links a{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim)}.navbar-links a:hover{color:var(--ink)}footer{border-top:1.5px solid var(--border);grid-template-columns:1fr 1fr 1fr;padding:1.75rem 2rem;display:grid}.foot-r,.foot-c,.foot-l{font-family:var(--font-label);color:var(--text-dim);font-size:.75rem}.foot-c{text-align:center}.foot-r{text-align:right}.hero{border-bottom:1.5px solid var(--border);padding:5rem 2rem 4rem}.label{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin:.15rem 0 2rem;font-size:.75rem;display:block}h1.heading{font-family:var(--font-head);letter-spacing:-.015em;color:var(--ink);margin:2.8rem 0 1.75rem;font-size:clamp(2.6rem,5vw,3.4rem);font-weight:400;line-height:1.08}p.subheading{font-family:var(--font-label);color:var(--ink2);max-width:460px;margin-bottom:2.5rem;font-size:12px;font-weight:500;line-height:1.9}.hero-cta{align-items:center;gap:1.5rem;display:flex}.btn{font-family:var(--font-label);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:none;padding:.75rem 1.5rem;font-size:.75rem;transition:all .15s;display:inline-block}.btn:disabled{opacity:.3;cursor:default;pointer-events:none}.btn-fill{background:var(--ink);color:var(--bg)}.btn-fill:hover{background:var(--accent);color:var(--text)}.btn-line{border:1px solid var(--border);color:var(--ink2);background:0 0}.btn-line:hover{border-color:var(--border2);color:var(--ink)}.btn-accent{border:1px solid var(--border);color:var(--ink2);background:0 0;position:relative;overflow:hidden}.btn-accent:after{content:"";background:var(--accent);z-index:-1;transform-origin:0;transition:transform .15s;position:absolute;inset:0;transform:scaleX(0)}.btn-accent:hover{border-color:var(--accent);color:var(--text)}.btn-accent:hover:after{transform:scaleX(1)}.rule{font-family:var(--font-label);letter-spacing:.24em;text-transform:uppercase;color:var(--ink3);align-items:center;gap:1rem;margin-bottom:.75rem;padding:2.5rem 0 0;font-size:.75rem;font-weight:500;display:flex}.rule:after{content:"";background:var(--border);flex:1;height:1.5px}.section{padding:3rem 2rem 4rem}.article-list{counter-reset:article}a.article-head{border-bottom:1px solid var(--border3);color:var(--ink);counter-increment:article;align-items:baseline;gap:2.5rem;padding:1.2rem 0;transition:padding-left .15s;display:flex}a.article-head:last-child{border-bottom:none}a.article-head:hover{padding-left:.3rem}a.article-head:before{content:counter(article, decimal-leading-zero);font-family:var(--font-label);color:var(--ink3);letter-spacing:.1em;flex-shrink:0;font-size:.7rem}.article-body{flex:1}.article-title{font-family:var(--font-head);font-size:1.1rem;font-weight:400;line-height:1.3;display:block}.article-meta{color:var(--ink3);letter-spacing:.12em;font-size:.7rem;font-family:var(--font-label);gap:1rem;margin-top:.3rem;display:flex}.article-topic{color:var(--accent)}.article-date{color:var(--ink3);letter-spacing:.08em;font-size:.7rem;font-family:var(--font-label);flex-shrink:0;margin-left:auto}.topics{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}a.topic{gap:1rem;display:flex}a.topic:hover .topic-symbol{color:var(--text)}.topic-symbol{letter-spacing:.12em;color:var(--accent);font-weight:500;transition:color .15s}.blog-page{padding:3rem 2rem}.blog-page h1{font-family:var(--font-head);color:var(--ink);margin:0 0 1.5rem;font-size:clamp(2rem,4vw,3rem);font-weight:300}.blog-page input[type=search]{border:1px solid var(--border);color:var(--ink);font-family:var(--font-label);box-sizing:border-box;background:0 0;outline:none;width:100%;margin-bottom:2rem;padding:.5rem 1rem;font-size:.8rem}.blog-page input[type=search]:focus{border-color:var(--border2)}.blog-page input[type=search]::placeholder{color:var(--ink3)}.pagination{align-items:center;gap:1.5rem;margin-top:2rem;display:flex}.page-number{font-family:var(--font-label);color:var(--ink3);letter-spacing:.1em;font-size:.75rem}.about-page{max-width:680px;padding:3rem 2rem}.about-page h1{font-family:var(--font-head);color:var(--ink);margin:0 0 1.5rem;font-size:clamp(2rem,4vw,3rem);font-weight:300}.about-page p{font-family:var(--font-label);color:var(--ink2);font-size:.9rem;line-height:1.8}
