.blog-page-head{padding:80px 0 40px;border-bottom:1px solid var(--border);position:relative}.blog-page-head .hero-glow{position:absolute;pointer-events:none;width:720px;height:720px;border-radius:999px;background:radial-gradient(circle,var(--jj-neon-glow),transparent 60%);filter:blur(120px);opacity:.35;top:-260px;right:-200px;z-index:0}.blog-page-head .inner{position:relative;z-index:1}.blog-h1{font-family:var(--font-display);font-size:clamp(40px,6vw,88px);line-height:.95;letter-spacing:-.03em;font-weight:700;margin:18px 0 16px}.blog-h1 .accent{color:var(--accent)}.blog-lede{font-family:var(--font-mono);font-size:15px;line-height:1.65;color:var(--fg-secondary);max-width:620px;margin:0 0 8px}.blog-lede em{color:var(--fg);font-style:normal;font-weight:500}.blog-controls{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:18px 0;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);margin:32px 0 0}.blog-search{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--bg-card);transition:border-color .16s var(--ease-out)}.blog-search:focus-within{border-color:var(--border-neon);box-shadow:0 0 0 3px #39ffaa14}.blog-search .ps{color:var(--accent);font-family:var(--font-mono);font-size:14px}.blog-search input{flex:1;background:transparent;border:0;outline:none;color:var(--fg);font-family:var(--font-mono);font-size:14px;letter-spacing:0}.blog-search input::placeholder{color:var(--fg-muted)}.blog-search .clear{background:transparent;border:0;color:var(--fg-muted);font-family:var(--font-mono);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:2px}.blog-search .clear:hover{color:var(--fg-secondary);background:#ffffff0d}.blog-search .esc-hint{font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);border:1px solid var(--border-strong);padding:1px 5px;border-radius:2px}.blog-filter{display:flex;gap:4px;align-items:center;border:1px solid var(--border-strong);border-radius:var(--r-2);padding:4px;background:var(--bg-card);flex-wrap:wrap}.blog-filter button{background:transparent;border:0;font-family:var(--font-mono);font-size:11px;color:var(--fg-secondary);padding:6px 10px;border-radius:var(--r-1);cursor:pointer;text-transform:lowercase;letter-spacing:.04em;transition:color .12s,background .12s}.blog-filter button:hover{color:var(--fg);background:var(--bg-hover)}.blog-filter button.active{color:var(--accent-fg);background:var(--accent);font-weight:600}.blog-count{font-family:var(--font-mono);font-size:11px;color:var(--fg-tertiary);letter-spacing:.06em;text-transform:uppercase;text-align:right;white-space:nowrap}.blog-count .accent{color:var(--accent)}@media (max-width: 760px){.blog-controls{grid-template-columns:1fr}.blog-count{text-align:left}}.blog-list-year{margin-top:56px}.blog-year-head{display:flex;align-items:baseline;gap:16px;padding:10px 6px 14px;margin-bottom:4px;border-bottom:1px dashed var(--border)}.blog-year-head .y{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--fg);letter-spacing:-.01em}.blog-year-head .y .accent{color:var(--accent)}.blog-year-head .ct{font-family:var(--font-mono);font-size:11px;color:var(--fg-tertiary);letter-spacing:.06em;text-transform:uppercase}.blog-year-head .rule{flex:1;height:1px;background:var(--border)}.blog-empty{padding:80px 24px;text-align:center;font-family:var(--font-mono);color:var(--fg-tertiary)}.blog-empty .glyph{color:var(--fg-muted);font-size:36px;margin-bottom:12px}.blog-empty h3{font-family:var(--font-mono);font-size:16px;color:var(--fg);margin:0 0 8px;font-weight:500}.blog-empty p{font-size:13px;line-height:1.6;max-width:380px;margin:0 auto}.blog-empty .accent{color:var(--accent)}.match{background:#39ffaa2e;color:var(--fg);padding:0 1px;border-radius:1px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:56px;padding-top:28px;border-top:1px dashed var(--border);font-family:var(--font-mono)}.pagination .pages{display:flex;gap:4px}.pagination .pages button{background:transparent;border:1px solid var(--border-strong);color:var(--fg-secondary);width:38px;height:36px;font-family:var(--font-mono);font-size:13px;border-radius:var(--r-2);cursor:pointer;transition:all .12s var(--ease-out)}.pagination .pages button:hover:not(:disabled){border-color:var(--border-neon);color:var(--accent)}.pagination .pages button.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}.pagination .pages button:disabled{opacity:.35;cursor:not-allowed}.pagination .step{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--border-strong);border-radius:var(--r-2);color:var(--fg-secondary);background:transparent;font-family:var(--font-mono);font-size:12px;cursor:pointer;transition:all .12s var(--ease-out);text-transform:lowercase}.pagination .step:hover:not(:disabled){border-color:var(--border-neon);color:var(--accent)}.pagination .step:disabled{opacity:.35;cursor:not-allowed}.pagination .info{font-size:11px;color:var(--fg-tertiary);letter-spacing:.06em;text-transform:uppercase}@media (max-width: 600px){.pagination{flex-wrap:wrap;gap:16px;justify-content:center}.pagination .info{order:-1;width:100%;text-align:center}}.post-page{position:relative}.post-page .hero-glow{position:absolute;pointer-events:none;width:800px;height:800px;border-radius:999px;background:radial-gradient(circle,var(--jj-neon-glow),transparent 60%);filter:blur(140px);opacity:.18;top:-300px;right:-300px;z-index:0}.post-shell{max-width:760px;margin:0 auto;padding:0 32px;position:relative;z-index:1}.post-back{margin-top:56px;margin-bottom:32px;font-family:var(--font-mono);font-size:12px;color:var(--fg-tertiary);text-decoration:none;display:inline-flex;align-items:center;gap:8px;padding:6px 0;transition:color .12s}.post-back:hover{color:var(--accent)}.post-back .arrow{transition:transform .16s var(--ease-out)}.post-back:hover .arrow{transform:translate(-3px)}.post-meta-row{font-family:var(--font-mono);font-size:11px;color:var(--fg-tertiary);letter-spacing:.06em;text-transform:uppercase;display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding-bottom:16px;border-bottom:1px dashed var(--border);margin-bottom:32px}.post-meta-row .pip{color:var(--accent)}.post-meta-row .sep{color:var(--fg-muted)}.post-meta-row .tag{color:var(--accent)}.post-title{font-family:var(--font-display);font-size:clamp(34px,4.6vw,60px);line-height:1.05;letter-spacing:-.025em;font-weight:700;margin:0 0 24px;text-wrap:balance}.post-title .accent{color:var(--accent)}.post-dek{font-family:var(--font-display);font-size:20px;line-height:1.45;color:var(--fg-secondary);margin:0 0 48px;padding-bottom:32px;border-bottom:1px solid var(--border);text-wrap:pretty;font-weight:400;max-width:640px}.post-body{font-family:var(--font-prose);font-size:17px;line-height:1.7;color:var(--fg-secondary)}.post-body p{margin:0 0 24px;color:var(--fg-secondary);text-wrap:pretty}.post-body>p:first-child:first-letter,.post-body p.dropcap:first-letter{font-family:var(--font-display);font-size:56px;font-weight:700;color:var(--accent);float:left;line-height:1;margin:-6px 12px 0 -4px;padding:0;text-shadow:0 0 20px var(--jj-neon-glow)}.post-body h2{font-family:var(--font-display);font-size:26px;line-height:1.2;letter-spacing:-.015em;font-weight:600;color:var(--fg);margin:56px 0 16px}.post-body h2:before{content:"§ ";color:var(--accent);font-weight:600}.post-body h3{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--fg);margin:40px 0 14px}.post-body img,.post-body figure{margin:32px -32px;max-width:calc(100% + 64px)}.post-body img{width:100%;border:1px solid var(--border);border-radius:var(--r-2);background:var(--bg-card);display:block}.post-body figure{margin:32px -32px}.post-body figure figcaption{font-family:var(--font-mono);font-size:12px;color:var(--fg-tertiary);text-align:center;margin:12px 32px 0;letter-spacing:.02em}.post-body .lb-image{margin:32px -32px;overflow:visible;position:relative;z-index:0}.post-body .lb-image:hover,.post-body .lb-image:focus-within{z-index:100}.post-body .lb-image .lb-frame{display:block;position:relative;overflow:visible}.post-body .lb-image .lb-frame:before{content:"";position:absolute;top:calc(var(--lb-off, 0px) * -1);bottom:calc(var(--lb-off, 0px) * -1);left:0;right:0;z-index:-1;pointer-events:none;border-radius:0;box-shadow:0 0 #0000,0 0 #0000;transition:box-shadow .52s cubic-bezier(.2,.7,.2,1)}.post-body .lb-image:hover .lb-frame:before,.post-body .lb-image:focus-within .lb-frame:before{box-shadow:0 0 0 5px #000,0 40px 110px 10px #000000bf,0 12px 40px #0000008c}.post-body .lb-image .lb-frame img{width:100%;height:auto;display:block;position:relative;margin:0;border:1px solid var(--border);border-radius:var(--r-2);background:var(--bg-card);clip-path:inset(25% 0);-webkit-clip-path:inset(25% 0);transition:clip-path .52s cubic-bezier(.2,.7,.2,1),-webkit-clip-path .52s cubic-bezier(.2,.7,.2,1),border-color .52s cubic-bezier(.2,.7,.2,1),border-radius .52s cubic-bezier(.2,.7,.2,1);max-width:none;will-change:clip-path}.post-body .lb-image:hover .lb-frame img,.post-body .lb-image:focus-within .lb-frame img{clip-path:inset(0 0);-webkit-clip-path:inset(0 0);border-color:#000;border-radius:0}.post-body .lb-image figcaption{font-family:var(--font-mono);font-size:12px;color:var(--fg-tertiary);text-align:center;margin:12px 32px 0;padding:0;background:#0000;letter-spacing:.02em;position:relative;z-index:1;transition:transform .52s cubic-bezier(.2,.7,.2,1),margin .52s cubic-bezier(.2,.7,.2,1),padding .52s cubic-bezier(.2,.7,.2,1),background .52s cubic-bezier(.2,.7,.2,1),color .52s cubic-bezier(.2,.7,.2,1)}.post-body .lb-image:hover figcaption,.post-body .lb-image:focus-within figcaption{transform:translateY(calc(var(--lb-off, 0px) - 7px));margin:12px -5px 0;padding:12px 32px;background:#000;color:var(--fg-secondary)}@media (prefers-reduced-motion: reduce){.post-body .lb-image .lb-frame img,.post-body .lb-image .lb-frame:before,.post-body .lb-image figcaption{transition:none}}.lb-backdrop{position:fixed;inset:0;z-index:50;background:#08080c47;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .52s cubic-bezier(.2,.7,.2,1)}.post-shell:has(.lb-image:hover) .lb-backdrop,.post-shell:has(.lb-image:focus-within) .lb-backdrop{opacity:1}@media (prefers-reduced-motion: reduce){.lb-backdrop{transition:none}}.post-body pre{font-family:var(--font-mono);font-size:13px;line-height:1.65;background:var(--bg-card);border:1px solid var(--border);border-left:2px solid var(--accent);color:var(--fg);padding:18px 22px;overflow-x:auto;border-radius:var(--r-2);margin:28px 0;position:relative}.post-body pre:before{content:attr(data-lang);position:absolute;top:8px;right:12px;font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);letter-spacing:.1em;text-transform:uppercase}.post-body code:not(pre code){font-family:var(--font-mono);font-size:.9em;color:var(--accent);background:#39ffaa0f;border:1px solid var(--border);padding:1px 6px;border-radius:var(--r-1)}.post-body blockquote{font-family:var(--font-display);font-size:20px;line-height:1.5;color:var(--fg);border-left:2px solid var(--accent);padding:4px 0 4px 24px;margin:32px 0;font-style:italic}.post-body ul,.post-body ol{margin:0 0 24px;padding-left:24px}.post-body li{margin-bottom:8px}.post-body li::marker{color:var(--accent)}.post-body a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(57,255,170,.4);transition:border-color .12s}.post-body a:hover{border-bottom-color:var(--accent)}.post-body hr{border:0;border-top:1px dashed var(--border);margin:48px 0}.post-end{margin:48px 0 0;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--fg-muted);letter-spacing:.3em}.post-end .accent{color:var(--accent)}.post-foot{margin:56px 0 0;padding:32px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:24px;font-family:var(--font-mono);font-size:12px;flex-wrap:wrap}.post-foot .left{color:var(--fg-tertiary);display:flex;gap:12px;flex-wrap:wrap;align-items:center}.post-foot .left .accent{color:var(--accent)}.post-foot .share{display:flex;gap:8px}.post-foot .share a{text-decoration:none;padding:6px 12px;border:1px solid var(--border-strong);border-radius:var(--r-2);color:var(--fg-secondary);font-size:11px;letter-spacing:.04em;text-transform:lowercase;transition:all .12s var(--ease-out)}.post-foot .share a:hover{border-color:var(--border-neon);color:var(--accent)}.post-nav{margin:32px 0 80px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.post-nav a{display:flex;flex-direction:column;gap:6px;padding:18px 22px;border:1px solid var(--border);border-radius:var(--r-2);text-decoration:none;color:inherit;background:var(--bg-card);transition:all .22s var(--ease-out);min-height:90px}.post-nav a:hover{border-color:var(--border-strong);background:var(--bg-hover)}.post-nav a .dir{font-family:var(--font-mono);font-size:11px;color:var(--fg-muted);letter-spacing:.08em;text-transform:uppercase}.post-nav a .dir .arrow{color:var(--accent)}.post-nav a .t{font-family:var(--font-mono);font-size:14px;color:var(--fg);line-height:1.45;transition:color .12s}.post-nav a:hover .t{color:var(--accent)}.post-nav a.next{text-align:right;align-items:flex-end}.post-nav .empty{background:transparent;border-style:dashed;color:var(--fg-muted);cursor:default}.post-nav .empty:hover{background:transparent;border-color:var(--border)}@media (max-width: 600px){.post-nav{grid-template-columns:1fr}.post-body img,.post-body figure{margin-left:0;margin-right:0;max-width:100%}}
