:root{--bg:#0f1020;--bg-soft:#181a33;--surface:#1f2147;--text:#e9e9ff;--text-muted:#a9abd6;--accent:#7c6cff;--accent-2:#28e0c8;--border:#2c2f5e;--radius:14px;--maxw:760px;--font:-apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Segoe UI", Meiryo, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(1200px 600px at 80% -10%, #241f55 0%, transparent 60%), var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;line-height:1.8;overflow-x:hidden}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.wide{max-width:1080px}img{max-width:100%;height:auto}.site-header{border-bottom:1px solid var(--border);backdrop-filter:blur(8px);z-index:10;background:#0f1020b3;position:sticky;top:0}.site-header .bar{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;max-width:1080px;margin:0 auto;padding:16px 20px;display:flex}.brand{color:var(--text);white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:flex}.brand .brand-name{white-space:nowrap}.brand .dot{background:linear-gradient(135deg, var(--accent), var(--accent-2));width:12px;height:12px;box-shadow:0 0 14px var(--accent);border-radius:50%;flex-shrink:0}.nav{flex-wrap:nowrap;flex-shrink:0;gap:20px;font-size:.95rem;display:flex}.nav a{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.nav a:hover{color:var(--text);text-decoration:none}.nav .nav-ic{display:none}.nav .nav-tx{display:inline}.hero{text-align:center;padding:64px 20px 40px}.hero h1{background:linear-gradient(120deg, #fff, var(--accent-2));color:#0000;background-clip:text;margin:0 0 14px;font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.3}.hero p{color:var(--text-muted);max-width:620px;margin:0 auto}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;transition:transform .15s,border-color .15s}.card:hover{border-color:var(--accent);transform:translateY(-3px)}.card h2{margin:0 0 8px;font-size:1.15rem}.card h2 a{color:var(--text)}.card .excerpt{color:var(--text-muted);margin:0 0 12px;font-size:.95rem}.meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.82rem;display:flex}.tag{background:var(--bg-soft);border:1px solid var(--border);color:var(--accent-2);border-radius:999px;padding:3px 10px;font-size:.75rem;display:inline-block}.article{padding:40px 0 80px}.article h1{margin:0 0 16px;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.35}.article .article-meta{color:var(--text-muted);margin-bottom:28px;font-size:.9rem}.prose{font-size:1.05rem}.prose h2{border-bottom:1px solid var(--border);margin-top:2em;padding-bottom:.3em;font-size:1.5rem}.prose h3{color:var(--accent-2);margin-top:1.6em;font-size:1.2rem}.prose p{margin:1em 0}.prose ul,.prose ol{padding-left:1.4em}.prose li{margin:.4em 0}.prose blockquote{border-left:3px solid var(--accent);color:var(--text-muted);background:var(--bg-soft);border-radius:0 8px 8px 0;margin:1.2em 0;padding:.2em 1em}.prose code{background:var(--bg-soft);border-radius:6px;padding:.15em .4em;font-size:.92em}.prose pre{border:1px solid var(--border);background:#0b0c1a;border-radius:10px;padding:16px;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;margin:1.4em 0;font-size:.95rem}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:10px 12px}.prose th{background:var(--bg-soft)}.prose img{border:1px solid var(--border);border-radius:10px}.breadcrumb{color:var(--text-muted);margin-bottom:18px;font-size:.82rem}.breadcrumb a{color:var(--text-muted)}.cta{border-radius:var(--radius);border:1px solid var(--accent);background:linear-gradient(135deg,#7c6cff2e,#28e0c81f);margin:40px 0;padding:24px}.cta h3{margin:0 0 8px}.cta p{color:var(--text-muted);margin:0 0 14px}.btn{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#0b0c1a;border-radius:999px;padding:11px 22px;font-weight:700;display:inline-block}.btn:hover{opacity:.92;text-decoration:none}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);padding:36px 20px;font-size:.88rem}.site-footer .inner{flex-wrap:wrap;justify-content:space-between;gap:16px;max-width:1080px;margin:0 auto;display:flex}.section-title{margin:48px 0 18px;font-size:1.4rem}.page-hero{max-width:1120px;margin:0 auto;padding:40px 24px 8px}.page-hero h1{background:linear-gradient(120deg, #fff, var(--accent-2));color:#0000;background-clip:text;margin:0 0 10px;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.3}.page-hero p{color:var(--text-muted);max-width:720px;margin:0}.layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:36px;max-width:1120px;margin:0 auto;padding:24px;display:grid}.main-col{min-width:0}.col-title{border-bottom:2px solid var(--accent);margin:0 0 20px;padding-bottom:10px;font-size:1.35rem;display:inline-block}.post-list{flex-direction:column;display:flex}.post-item{border-bottom:1px solid var(--border);padding:22px 0}.post-item:first-child{padding-top:0}.post-item-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-size:.8rem;display:flex}.post-item-title{margin:0 0 8px;font-size:1.3rem;line-height:1.4}.post-item-title a{color:var(--text)}.post-item-title a:hover{color:var(--accent-2);text-decoration:none}.post-item-excerpt{color:var(--text-muted);margin:0 0 10px;font-size:.96rem}.post-item-more{font-size:.88rem;font-weight:700}.tag-list{gap:10px}.article.main-col{padding:0}.article.main-col h1{margin:0 0 14px;font-size:clamp(1.6rem,4vw,2.3rem);line-height:1.35}.sidebar{flex-direction:column;gap:24px;display:flex;position:sticky;top:84px}.widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.widget-title{border-bottom:1px solid var(--border);color:var(--text);margin:0 0 14px;padding-bottom:10px;font-size:1rem}.widget-about{color:var(--text-muted);margin:0 0 12px;font-size:.9rem;line-height:1.7}.widget-link{font-size:.86rem;font-weight:700}.widget-posts{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.widget-posts li{flex-direction:column;gap:3px;display:flex}.widget-posts a{color:var(--text);font-size:.92rem;font-weight:600;line-height:1.45}.widget-posts a:hover{color:var(--accent-2);text-decoration:none}.widget-posts time{color:var(--text-muted);font-size:.76rem}.tag-cloud{flex-wrap:wrap;align-items:baseline;gap:8px 10px;line-height:1.5;display:flex}.tag-cloud-item{color:var(--accent-2)}.tag-cloud-item:hover{color:var(--text);text-decoration:none}.widget-cta{border-color:var(--accent);background:linear-gradient(135deg,#7c6cff2e,#28e0c81f)}.btn-sm{padding:9px 18px;font-size:.9rem}@media (width<=768px){.layout{grid-template-columns:1fr;gap:28px;padding:16px}.sidebar{position:static;top:auto}.page-hero{padding:28px 16px 4px}.grid{grid-template-columns:1fr}}@media (width<=430px){.site-header .bar{gap:10px;padding:12px 14px}.brand{gap:7px;font-size:clamp(15px,4.35897vw,19px)}.brand .dot{width:10px;height:10px}.nav{gap:clamp(12px,4.61538vw,20px)}.nav .nav-ic{align-items:center;line-height:1;display:inline-flex}.nav .nav-ic svg{color:currentColor;width:clamp(20px,5.64103vw,24px);height:auto;display:block}.nav .nav-tx{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nav a{gap:0;min-height:40px}.hero{padding:clamp(36px,12.3077vw,56px) 16px clamp(24px,8.20513vw,40px)}.hero p{font-size:clamp(14px,3.84615vw,17px)}.page-hero h1{font-size:clamp(20px,6.15385vw,28px)}.page-hero p{font-size:clamp(14px,3.84615vw,17px)}.prose{font-size:clamp(15px,4.23077vw,18px)}.prose h2{font-size:clamp(19px,5.64103vw,26px)}.prose h3{font-size:clamp(16px,4.61538vw,21px)}.article.main-col h1,.article h1{font-size:clamp(22px,6.41026vw,30px)}.post-item-title{font-size:clamp(18px,5.12821vw,23px)}.post-item-excerpt{font-size:clamp(14px,3.84615vw,17px)}.section-title,.col-title{font-size:clamp(18px,5.38462vw,24px)}.container,.wide{padding:0 16px}.layout{padding:16px 14px}img{max-width:100%;height:auto}.prose table{-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}.prose pre{overflow-x:auto}.prose{overflow-wrap:anywhere;word-break:break-word}.cta{margin:28px 0;padding:18px}.site-footer .inner{flex-direction:column;gap:8px}}@media (width>=431px) and (width<=600px){.site-header .bar{gap:10px;padding:14px 16px}.brand{gap:8px;font-size:1.05rem}.nav{gap:12px;font-size:.85rem}}
