:root{--bg: #ffffff;--ink: #111111;--ink-mute: #555555;--line: #e5e5e5;--line-strong: #cccccc;--surface: #fafafa;--accent: #2563eb;--accent-mute: #5b8bf0;--max-width: 880px;--radius: 8px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic,Meiryo,sans-serif;font-size:16px;line-height:1.75;letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}img{max-width:100%;height:auto}hr{border:0;border-top:1px solid var(--line);margin:3rem 0}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.25rem}.site{display:flex;flex-direction:column;min-height:100vh}main.site-main{flex:1;padding:2.5rem 0 4rem}.section{margin:4rem 0}.section:first-of-type{margin-top:2rem}.section-title{font-size:.85rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin:0 0 1.25rem}.hero h1{font-size:clamp(1.9rem,4.5vw,2.6rem);letter-spacing:-.01em;margin:0 0 .5rem}.hero .name-ja{margin:0 0 .75rem;font-size:1.05rem;letter-spacing:.08em}.hero .role{color:var(--ink-mute);margin:0 0 1.25rem;font-size:.95rem}.hero p.lead{font-size:1.05rem;margin:0 0 .75rem;max-width:36em}.hero p.sub{color:var(--ink-mute);margin:0 0 2rem;max-width:36em}.cards{display:grid;gap:.75rem;grid-template-columns:1fr}@media(min-width:640px){.cards.cols-2{grid-template-columns:1fr 1fr}.cards.cols-3{grid-template-columns:1fr 1fr 1fr}}.card{display:block;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);color:inherit;transition:background .12s ease,border-color .12s ease}a.card:hover{background:var(--surface);border-color:var(--line-strong);text-decoration:none}.card .card-title{font-weight:600;margin:0 0 .25rem;font-size:1rem}.card .card-desc{color:var(--ink-mute);margin:0;font-size:.92rem}.card .card-meta{color:var(--ink-mute);font-size:.82rem;margin-top:.4rem}.link-row{display:flex;flex-wrap:wrap;gap:.5rem}.link-row a{display:inline-flex;align-items:center;padding:.4rem .85rem;border:1px solid var(--line);border-radius:999px;font-size:.88rem;color:var(--ink);background:var(--bg);transition:background .12s ease,border-color .12s ease}.link-row a:hover{background:var(--surface);border-color:var(--line-strong);text-decoration:none}.site-header{border-bottom:1px solid var(--line);background:var(--bg)}.site-header .inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1rem}.site-header .brand{font-weight:600;color:var(--ink);font-size:1rem}.site-header nav{display:flex;gap:1rem}.site-header nav a{color:var(--ink-mute);font-size:.92rem}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--ink);text-decoration:none}.site-footer{border-top:1px solid var(--line);padding:2rem 0;color:var(--ink-mute);font-size:.85rem}.site-footer .inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.prose h1{font-size:1.8rem;margin:0 0 .5rem;letter-spacing:-.01em}.prose .meta{color:var(--ink-mute);font-size:.88rem;margin:0 0 2rem}.prose h2{font-size:1.25rem;margin:2.5rem 0 1rem}.prose h3{font-size:1.05rem;margin:2rem 0 .75rem}.prose p,.prose ul,.prose ol{margin:0 0 1.25rem}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.25rem 0}.prose code{background:var(--surface);border:1px solid var(--line);padding:.05rem .35rem;border-radius:4px;font-size:.9em}.prose pre{background:var(--surface);border:1px solid var(--line);padding:1rem;border-radius:var(--radius);overflow-x:auto;font-size:.88rem;line-height:1.6}.prose pre code{background:transparent;border:0;padding:0}.prose blockquote{margin:1.25rem 0;padding:.4rem 1rem;color:var(--ink-mute);border-left:3px solid var(--line-strong)}.log-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.log-list .date{color:var(--ink-mute);font-size:.82rem;margin-top:.25rem}.tags{display:inline-flex;flex-wrap:wrap;gap:.35rem;margin-left:.5rem}.tag{display:inline-block;padding:.05rem .5rem;border:1px solid var(--line);border-radius:999px;font-size:.72rem;color:var(--ink-mute)}
