:root{--bg:#0a0e0f;--bg-panel:#0d1417;--grid:#12191d;--border:#1e2a30;--border-2:#17211f;--chip-brd:#2a3a34;--text:#c9d4d0;--text-hi:#f0f6f2;--text-mid:#9aaaa4;--text-low:#6b7d78;--text-dim:#7a8a86;--accent:#4ade80;--mono:var(--font-mono), monospace;--sans:-apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--sans);color:var(--text);background:var(--bg);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);-webkit-font-smoothing:antialiased;background-size:32px 32px;margin:0;line-height:1.6}body.no-grid{background-image:none}a{color:inherit;text-decoration:none}::selection{background:#4ade8054}img{max-width:100%;display:block}.wrap{max-width:1000px;margin:0 auto}.reading{max-width:720px;margin:0 auto}.site-header{z-index:10;border-bottom:1px solid var(--border);backdrop-filter:blur(6px);background:#0a0e0fcc;justify-content:space-between;align-items:center;padding:22px 40px;display:flex;position:sticky;top:0}.logo{font-family:var(--mono);color:var(--text-hi);font-size:18px;font-weight:700}.logo .dot{color:var(--accent)}.logo .cursor{background:var(--accent);vertical-align:-2px;width:9px;height:17px;margin-left:5px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.nav{font-family:var(--mono);color:var(--text-dim);gap:28px;font-size:13px;display:flex}.nav a:hover,.nav a.active{color:var(--accent)}.back-link{font-family:var(--mono);color:var(--accent);font-size:13px}.section-label{font-family:var(--mono);color:var(--accent);letter-spacing:.12em;white-space:nowrap;margin:0 0 18px;font-size:12px;overflow:hidden}.section-label:after{content:" ─────────────────────────────────────────"}.tags{font-family:var(--mono);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.tag{border:1px solid var(--chip-brd);color:#8aa39a;border-radius:3px;padding:3px 10px}.meta{font-family:var(--mono);color:var(--text-low);font-size:12px}.featured{padding:48px 40px 40px}.featured .date{margin-bottom:14px}.featured h1{color:var(--text-hi);margin:0 0 18px;font-size:40px;font-weight:700;line-height:1.28}.featured p{color:var(--text-mid);max-width:560px;margin:0 0 22px;font-size:15px;line-height:1.85}.post-list-wrap{padding:8px 40px 44px}.post-list-wrap .section-label{margin:28px 0 8px}.post-list{flex-direction:column;display:flex}.post-row{border-bottom:1px solid var(--border-2);grid-template-columns:120px 1fr auto;align-items:baseline;gap:28px;padding:22px 0;display:grid}.post-list .post-row:last-child{border-bottom:none}.post-row .p-date{font-family:var(--mono);color:var(--text-low);font-size:13px}.post-row .p-title{color:#e2ebe6;font-size:17px;font-weight:500}.post-row .p-tag{font-family:var(--mono);color:var(--accent);font-size:12px}.post-row:hover .p-title{color:var(--accent)}.empty-state{font-family:var(--mono);color:var(--text-low);padding:22px 0;font-size:13px}.article{padding:56px 40px 60px}.article .meta{margin-bottom:16px}.article h1{color:var(--text-hi);margin:0 0 20px;font-size:38px;font-weight:700;line-height:1.32}.article .tags{margin-bottom:36px}.article h2,.about-content h2{color:var(--text-hi);margin:40px 0 16px;font-size:22px;font-weight:700}.article h3,.about-content h3{color:var(--text-hi);margin:32px 0 14px;font-size:18px;font-weight:700}.article p,.about-content p{color:#b3c0ba;margin:0 0 24px;font-size:16px;line-height:2}.article p.lead{margin-bottom:26px}.article ul,.article ol,.about-content ul,.about-content ol{color:#b3c0ba;margin:0 0 24px;padding-left:1.4em;font-size:16px;line-height:1.9}.article li,.about-content li{margin-bottom:6px}.article blockquote,.about-content blockquote{border-left:2px solid var(--accent);color:var(--text-mid);margin:0 0 24px;padding:4px 20px}.article table,.about-content table{border-collapse:collapse;width:100%;margin:0 0 28px;font-size:14px}.article th,.article td,.about-content th,.about-content td{border:1px solid var(--border);text-align:left;padding:8px 12px}.article th,.about-content th{font-family:var(--mono);color:var(--text-mid);font-weight:500}.article p a,.article li a,.about-content p a,.about-content li a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}code{font-family:var(--mono);background:var(--grid);color:var(--accent);border-radius:3px;padding:2px 6px;font-size:14px}pre,pre.astro-code{border:1px solid var(--border);font-family:var(--mono);border-radius:8px;margin:0 0 28px;padding:22px 24px;font-size:13.5px;line-height:1.85;overflow:auto;background:var(--bg-panel)!important;color:var(--text)!important}pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.post-nav{border-top:1px solid var(--border);font-family:var(--mono);color:var(--text-low);justify-content:space-between;margin-top:44px;padding-top:28px;font-size:13px;display:flex}.post-nav a:hover{color:var(--accent)}.post-nav .spacer{flex:1}.about-section{border-bottom:1px solid var(--border-2);padding:44px 40px}.about-hero{border-bottom:1px solid var(--border-2);padding:56px 40px 44px}.about-hero .grid{grid-template-columns:1fr 200px;align-items:center;gap:48px;display:grid}.about-hero .cmd{font-family:var(--mono);color:var(--text-low);margin-bottom:12px;font-size:13px}.about-hero h1{color:var(--text-hi);margin:0 0 20px;font-size:44px;font-weight:700;line-height:1.2}.about-hero h1 .slash{color:var(--accent)}.about-hero p{color:var(--text-mid);max-width:560px;margin:0;font-size:15px;line-height:1.95}.avatar{border:1px solid var(--chip-brd);background:var(--bg-panel);width:160px;height:160px;font-family:var(--mono);color:var(--accent);border-radius:8px;justify-content:center;justify-self:end;align-items:center;font-size:64px;display:flex}.stack-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.stack-card{border:1px solid var(--border);background:var(--bg-panel);border-radius:6px;padding:20px}.stack-card .cat{font-family:var(--mono);color:var(--text-low);margin-bottom:12px;font-size:12px}.timeline{flex-direction:column;display:flex}.tl-row{border-bottom:1px solid var(--grid);grid-template-columns:110px 1fr;gap:28px;padding:16px 0;display:grid}.timeline .tl-row:last-child{border-bottom:none}.tl-row .tl-year{font-family:var(--mono);color:var(--text-low);font-size:13px}.tl-row .tl-year.now{color:var(--accent)}.tl-row .tl-title{color:#e2ebe6;margin-bottom:4px;font-size:16px;font-weight:500}.tl-row .tl-desc{color:var(--text-dim);font-size:13px}.contact-links{font-family:var(--mono);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.contact-links a{border:1px solid var(--chip-brd);color:var(--text);border-radius:4px;gap:8px;padding:10px 18px;display:flex}.contact-links a span{color:var(--accent)}.contact-links a:hover{border-color:var(--accent);color:var(--accent)}.site-footer{border-top:1px solid var(--border);font-family:var(--mono);color:var(--text-low);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:32px 40px;font-size:12px;display:flex}@media (width<=720px){.site-header,.featured,.post-list-wrap,.article,.about-section,.about-hero,.site-footer{padding-left:20px;padding-right:20px}.featured h1{font-size:30px}.article h1{font-size:28px}.about-hero h1{font-size:32px}.post-row{grid-template-columns:1fr;gap:6px}.post-row .p-tag{justify-self:start}.about-hero .grid{grid-template-columns:1fr;gap:28px}.avatar{justify-self:start}.stack-grid{grid-template-columns:1fr}}
