:root{--c-bg: #0b0b0b;--c-surface: #141414;--c-text: #f0f0ee;--c-text-sub: #8f8f89;--c-border: #232323;--c-accent: #d8ff3a;--c-code-bg: #1a1a1a;--w-wide: 1200px;--w-prose: 720px;--font-body: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic UI", "Meiryo", system-ui, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Consolas", monospace}*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;background:var(--c-bg)}body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-body);line-height:1.9;-webkit-font-smoothing:antialiased}a{color:var(--c-text);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--c-accent)}img{max-width:100%;height:auto;display:block}.container{max-width:var(--w-wide);margin-inline:auto;padding-inline:20px}.container--prose{max-width:var(--w-prose)}.site-header{border-bottom:1px solid var(--c-border);background:var(--c-bg);position:sticky;top:0;z-index:10}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px}.site-header .brand{background:var(--c-text);color:var(--c-bg);font-weight:800;font-size:.95rem;letter-spacing:.06em;padding:4px 10px;text-decoration:none}.site-header .brand:hover{background:var(--c-accent);color:var(--c-bg)}.site-header nav{display:flex;gap:20px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.site-header nav a{text-decoration:none;color:var(--c-text)}.site-main{padding-block:0 80px}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;padding-block:64px 56px;border-bottom:1px solid var(--c-border)}.hero h1{font-size:clamp(1.6rem,4vw,2.6rem);line-height:1.4;font-weight:800;letter-spacing:.01em;margin:0 0 20px}.hero .lead{color:var(--c-text-sub);font-size:.9rem;margin:0;max-width:34em}.cat-list{list-style:none;margin:0;padding:0;align-self:start}.cat-list button{display:flex;justify-content:space-between;align-items:baseline;width:100%;background:none;border:0;border-top:1px solid var(--c-border);color:var(--c-text);font-family:inherit;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:12px 4px;cursor:pointer}.cat-list li:last-child button{border-bottom:1px solid var(--c-border)}.cat-list button .count{color:var(--c-text-sub);font-size:.7rem}.cat-list button:hover,.cat-list button[aria-pressed=true]{color:var(--c-accent)}.works{list-style:none;margin:0;padding:48px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:40px 20px}.work-card a{text-decoration:none;display:block}.work-card .thumb{aspect-ratio:16 / 10;overflow:hidden;background:var(--c-surface)}.work-card .thumb img{width:100%;height:100%;object-fit:cover;transition:opacity .25s ease,transform .4s ease}.work-card a:hover .thumb img{opacity:.75;transform:scale(1.03)}.work-card .thumb--placeholder{display:flex;align-items:flex-end;padding:14px;font-weight:800;font-size:.9rem;line-height:1.5;color:var(--c-text-sub);border:1px solid var(--c-border)}.work-card h2{font-size:.92rem;line-height:1.55;font-weight:700;margin:12px 0 4px}.work-card .meta{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-sub)}.work-card[hidden]{display:none}.article-hero{margin:0 0 32px}.article-hero img{width:100%;max-height:440px;object-fit:cover}.article-header{padding-top:40px}.article-header h1{font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.5;font-weight:800;margin:0 0 12px}.article-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-sub);margin-bottom:28px}.prose h2{font-size:1.28rem;line-height:1.6;font-weight:800;margin:2.4em 0 .8em;padding-bottom:10px;border-bottom:2px solid var(--c-accent)}.prose h3{font-size:1.08rem;font-weight:700;margin:1.8em 0 .6em}.prose a{color:var(--c-accent)}.prose code{font-family:var(--font-mono);font-size:.88em;background:var(--c-code-bg);padding:2px 6px;border-radius:3px}.prose pre{background:var(--c-code-bg);border:1px solid var(--c-border);color:var(--c-text);padding:16px;overflow-x:auto;line-height:1.6}.prose pre code{background:none;padding:0;font-size:.85rem}.prose table{width:100%;border-collapse:collapse;font-size:.88rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--c-border);padding:8px 12px;text-align:left}.prose th{background:var(--c-surface)}.prose blockquote{margin:1em 0;padding:4px 16px;border-left:3px solid var(--c-accent);color:var(--c-text-sub)}.pr-disclosure{font-size:.78rem;color:var(--c-text-sub);border:1px solid var(--c-border);padding:8px 14px;margin-bottom:24px}.faq{margin-top:3.5em}.faq details{background:var(--c-surface);border:1px solid var(--c-border);padding:12px 16px;margin-bottom:10px}.faq summary{font-weight:700;cursor:pointer}.faq details p{margin:10px 0 4px;color:var(--c-text-sub)}.sources{margin-top:3.5em;font-size:.8rem;color:var(--c-text-sub)}.sources ul{padding-left:1.2em}.sources a{color:var(--c-text-sub)}.site-footer{border-top:1px solid var(--c-border);padding-block:48px 32px}.site-footer .wordmark{font-size:clamp(1.8rem,5vw,3rem);font-weight:800;letter-spacing:.02em;margin:0 0 24px}.site-footer .foot-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-sub)}.site-footer nav{display:flex;gap:20px}.site-footer nav a{color:var(--c-text-sub);text-decoration:none}@media(max-width:1000px){.works{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.hero{grid-template-columns:1fr;gap:28px;padding-block:40px 36px}.works{grid-template-columns:repeat(2,1fr);gap:28px 14px}}@media(max-width:480px){.works{grid-template-columns:1fr}}
