:root{color-scheme:dark;--background:#0d1117;--surface:#161b22;--surface-raised:#1c2128;--text:#e6edf3;--text-muted:#9da7b3;--border:#30363d;--accent:#79c0ff;--accent-strong:#a5d6ff;--focus:#f2cc60;--font-sans:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--site-width:70rem;--content-width:47rem}*,:before,:after{box-sizing:border-box}html{background:var(--background);scroll-behavior:smooth}body{background:var(--background);min-height:100vh;color:var(--text);font-family:var(--font-sans);text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.8}a{color:var(--accent);text-underline-offset:.18em;overflow-wrap:anywhere}a:hover{color:var(--accent-strong)}:focus-visible{outline:.2rem solid var(--focus);outline-offset:.2rem;border-radius:.2rem}.skip-link{z-index:10;background:var(--text);color:var(--background);border-radius:.4rem;padding:.5rem .75rem;font-weight:700;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-shell{width:min(calc(100% - 2rem), var(--site-width));margin-inline:auto}.site-header{border-bottom:1px solid var(--border);padding-block:clamp(2rem,6vw,4.5rem) 1.5rem}.site-title{color:var(--text);letter-spacing:-.04em;font-size:clamp(1.8rem,5vw,2.75rem);font-weight:800;line-height:1.1;text-decoration:none}.site-title:hover{color:var(--text)}.site-description{max-width:40rem;color:var(--text-muted);margin:.75rem 0 0}main{min-height:60vh}.page,.article{width:min(calc(100% - 2rem), var(--content-width));margin-inline:auto;padding-block:clamp(2.5rem,7vw,5rem)}.page-header,.article-header{margin-bottom:clamp(2rem,5vw,3.5rem)}.page-title,.article-title{letter-spacing:-.04em;text-wrap:balance;margin:0;font-size:clamp(2rem,7vw,3.35rem);font-weight:800;line-height:1.25}.article-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-top:1rem;font-size:.95rem;display:flex}.category{border:1px solid var(--border);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.05rem .55rem;font-size:.8rem}.prose{overflow-wrap:anywhere}.prose :where(h1,h2,h3,h4,h5,h6){color:var(--text);letter-spacing:-.025em;text-wrap:pretty;font-weight:750;line-height:1.4}.prose h1{margin:2.5em 0 .7em;font-size:clamp(1.85rem,5vw,2.4rem)}.prose h2{border-bottom:1px solid var(--border);margin:2.5em 0 .7em;padding-bottom:.35em;font-size:clamp(1.55rem,4vw,1.9rem)}.prose h3{margin:2.2em 0 .65em;font-size:clamp(1.25rem,3vw,1.5rem)}.prose :where(h4,h5,h6){margin:2em 0 .6em;font-size:1.1rem}.prose p{margin-block:1.35em}.prose :where(ul,ol){margin-block:1.25em;padding-inline-start:1.6em}.prose li+li{margin-top:.45em}.prose blockquote{border-left:.25rem solid var(--accent);color:var(--text-muted);margin:1.75rem 0;padding:.25rem 1.1rem}.prose blockquote>:first-child{margin-top:0}.prose blockquote>:last-child{margin-bottom:0}.prose :not(pre)>code{border:1px solid var(--border);background:var(--surface);font-family:var(--font-mono);border-radius:.3rem;padding:.15em .35em;font-size:.88em}.prose pre{border:1px solid var(--border);max-width:100%;font-family:var(--font-mono);tab-size:2;border-radius:.65rem;margin-block:1.75rem;padding:1rem 1.15rem;font-size:.88rem;line-height:1.65;overflow-x:auto;background:var(--surface)!important}.prose pre code{font-family:inherit}.prose img{border-radius:.65rem;width:auto;max-width:100%;height:auto;margin:2rem auto;display:block}.prose iframe,.prose .speakerdeck-iframe{background:var(--surface)!important;aspect-ratio:16/9!important;border:0!important;border-radius:.65rem!important;width:100%!important;max-width:100%!important;height:auto!important;margin:2rem auto!important;display:block!important;box-shadow:0 1rem 2.5rem #00000040!important}.prose table{border-spacing:0;border-collapse:collapse;width:100%;margin-block:1.75rem;display:block;overflow-x:auto}.prose :where(th,td){border:1px solid var(--border);text-align:left;min-width:8rem;padding:.65rem .8rem}.prose th{background:var(--surface)}.prose details{border:1px solid var(--border);background:var(--surface);border-radius:.6rem;margin-block:1.5rem;padding:.75rem 1rem}.prose summary{cursor:pointer;font-weight:700}.prose mark{color:var(--text);background:#5b4b00;padding-inline:.15em}.prose hr{border:0;border-top:1px solid var(--border);margin-block:3rem}.prose button{border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font:inherit;cursor:pointer;border-radius:.4rem;padding:.5rem .8rem}.article-list{margin:0;padding:0;list-style:none}.article-list li{border-top:1px solid var(--border);padding-block:1.25rem}.article-list li:last-child{border-bottom:1px solid var(--border)}.article-list time{color:var(--text-muted);margin-bottom:.25rem;font-size:.9rem;display:block}.article-list a{color:var(--text);text-decoration-color:var(--border);font-size:clamp(1.05rem,3vw,1.25rem);font-weight:650;line-height:1.5}.article-list a:hover{color:var(--accent-strong);text-decoration-color:currentColor}.site-footer{border-top:1px solid var(--border);padding-block:2rem 3rem}.site-footer nav{flex-wrap:wrap;gap:.6rem 1.25rem;display:flex}.site-footer a{color:var(--text-muted)}@media (width<=35rem){body{line-height:1.75}.site-shell,.page,.article{width:min(calc(100% - 1.25rem), var(--content-width))}.prose pre{border-radius:.4rem;margin-inline:-.25rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
