*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0f;--surface:#13131a;--border:#1e1e2e;--accent1:#7c3aed;--accent2:#06b6d4;--violet:#a78bfa;--cyan:#38bdf8;--text:#e2e8f0;--muted:#8b98ad;--radius:16px;--measure:46rem;color-scheme:dark}html{background:var(--bg);scroll-padding-top:5.5rem}body{background:var(--bg);color:var(--text);flex-direction:column;min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.6;display:flex}a{color:var(--cyan)}a:hover{color:var(--violet)}.wrap{width:100%;max-width:60rem;margin:0 auto;padding:0 1rem}.masthead{z-index:10;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#0a0a0fd9;position:sticky;top:0}.masthead .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;padding-bottom:1rem;display:flex}.brand{align-items:center;gap:.65rem;text-decoration:none;display:inline-flex}.brand img{width:36px;height:36px;box-shadow:0 0 0 1px var(--border), 0 0 18px #06b6d42e;border-radius:9px}.brand span{letter-spacing:-.02em;background:linear-gradient(135deg, var(--violet) 0%, var(--cyan) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.15rem;font-weight:800}.masthead nav{gap:1.25rem;display:flex}.masthead nav a{color:var(--muted);font-size:.95rem;font-weight:600;text-decoration:none}.masthead nav a:hover,.masthead nav a[aria-current=page]{color:var(--text)}main{flex:1;padding:2.5rem 0 4rem}.site-footer{border-top:1px solid var(--border);color:var(--muted);padding:1.5rem 0;font-size:.85rem}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.site-footer .hosted{align-items:center;gap:.4rem;display:inline-flex}.page-title{letter-spacing:-.03em;background:linear-gradient(135deg, var(--violet) 0%, var(--cyan) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(2rem,5vw,3rem);font-weight:800;line-height:1.15}.lede{color:var(--muted);max-width:var(--measure);margin-top:.5rem;font-size:1.1rem}.section-title{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:3rem 0 1rem;font-size:.8rem;font-weight:700}.post-list{gap:1rem;list-style:none;display:grid}.post-list a{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:1.25rem 1.4rem;text-decoration:none;transition:border-color .2s,transform .2s;display:block}.post-list a:hover{border-color:var(--accent1);transform:translateY(-2px)}.post-list a.has-cover{grid-template-columns:7rem 1fr;align-items:center;gap:1.25rem;display:grid}.post-list img{object-fit:cover;border:1px solid var(--border);background:#000;border-radius:12px;width:7rem;height:7rem}@media (width<=34rem){.post-list a.has-cover{grid-template-columns:4.5rem 1fr;align-items:start;gap:1rem}.post-list img{width:4.5rem;height:4.5rem}}.post-list h3{letter-spacing:-.01em;font-size:1.2rem}.post-list p{color:var(--muted);margin-top:.3rem;font-size:.95rem}.meta{color:var(--muted);font-size:.85rem}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:1.25rem;max-width:52rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;flex-direction:column;text-decoration:none;transition:transform .2s,border-color .2s;display:flex;overflow:hidden}.card:hover{border-color:var(--accent2);transform:translateY(-4px)}.card img{aspect-ratio:1;object-fit:cover;background:#000;width:100%;display:block}.card-body{padding:1.1rem 1.3rem 1.3rem}.card-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);font-size:.72rem;font-weight:700}.card-title{margin-top:.2rem;font-size:1.2rem;font-weight:700}.card-desc{color:var(--muted);margin-top:.3rem;font-size:.9rem}.post-cover{max-width:var(--measure);aspect-ratio:2;border:1px solid var(--border);border-radius:var(--radius);background:#000;margin-bottom:2rem;position:relative;overflow:hidden}.post-cover:before{content:"";background:var(--cover) center / cover;filter:blur(40px)brightness(.5);position:absolute;inset:-10%}.post-cover img{cursor:zoom-in;width:auto;height:100%;margin:0 auto;display:block;position:relative;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000);mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000)}.post-cover img:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px}.prose{max-width:var(--measure);font-size:1.05rem}.prose>*+*{margin-top:1.1em}.prose h2{letter-spacing:-.02em;margin-top:2.4em;font-size:1.6rem;line-height:1.25}.prose h3{margin-top:1.8em;font-size:1.2rem}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose strong{color:#f1f5f9}.prose blockquote{border-left:3px solid var(--accent1);background:var(--surface);color:#cbd5e1;border-radius:0 10px 10px 0;padding:.9rem 1.2rem}.prose :not(pre)>code{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.1em .35em;font-size:.9em}.prose pre{border:1px solid var(--border);border-radius:10px;padding:1rem 1.2rem;font-size:.88rem;line-height:1.5;overflow-x:auto}.prose table{border-collapse:collapse;font-size:.93rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.5rem .75rem}.prose th{background:var(--surface)}.prose hr{border:0;border-top:1px solid var(--border);margin:2.5em 0}.prose .diagram{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:10px;padding:1.25rem 1rem;overflow-x:auto}.prose .diagram svg{max-width:100%;height:auto}.prose pre:has(>code.language-mermaid){visibility:hidden;min-height:8rem}.prose img{border:1px solid var(--border);border-radius:10px;max-width:100%;height:auto;margin:0 auto;display:block}.prose .screenshot-narrow img{max-width:min(100%,26rem)}.prose img{cursor:zoom-in}.prose img:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.prose .screenshot-pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));align-items:start;gap:1rem;display:grid}.prose .screenshot-pair img{max-width:100%}.prose .caption{color:var(--muted);text-align:center;margin-top:.5rem;font-size:.9rem}.prose figure.flip{margin:1.5rem 0;position:relative}.prose figure.flip img{cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}.prose figure.flip:after{content:attr(data-current);border:1px solid var(--cyan);color:var(--text);pointer-events:none;background:#0a0a0fcc;border-radius:999px;padding:.15rem .6rem;font-size:.85rem;font-weight:600;position:absolute;top:.6rem;left:.6rem}.prose figure.flip figcaption{color:var(--muted);margin-top:.5rem;font-size:.9rem}.prose figure.flip .seed{opacity:.6;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.75rem}.prose figure.flip details{margin-top:.25rem}.prose figure.flip summary{cursor:pointer;color:var(--cyan);width:fit-content;font-size:.8rem}.prose figure.flip details p{overflow-wrap:anywhere;margin:.4rem 0 0;font-size:.82rem;line-height:1.55}.prose figure.flip img.flip-input{float:left;cursor:zoom-in;border-radius:6px;width:4.5rem;height:4.5rem;margin:.15rem .75rem .25rem 0}.prose figure.flip figcaption:after{content:"";clear:both;display:block}.lightbox{cursor:zoom-out;background:#05050af0;border:0;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;padding:0;overflow:auto}.lightbox::backdrop{background:#05050af0}.lightbox img{border-radius:10px;max-width:min(100%,100vw);height:auto;margin:1rem auto;display:block}
