:root{color-scheme:light dark;--color-bg:#fbfaf7;--color-surface:#f2f0eb;--color-surface-strong:#e8e5de;--color-text:#1c2228;--color-heading:#11161b;--color-muted:#5a636d;--color-border:#dcd8cf;--color-accent:#0b6670;--color-accent-hover:#08515a;--color-accent-2:#2c4fb8;--color-accent-soft:#dfeff0;--color-code-bg:#f5f4f0;--color-selection:#cfe5e5;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "BIZ UDPGothic", "Noto Sans JP", Meiryo, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "Cascadia Code", Consolas, "BIZ UDGothic", "Noto Sans Mono CJK JP", monospace;--color-hero-from:#e4efee;--shadow-card:0 1px 2px #11161b0a, 0 6px 20px #11161b0f;--shadow-lift:0 2px 4px #11161b0d, 0 14px 32px #11161b1a;--gradient-brand:linear-gradient(120deg, var(--color-accent), var(--color-accent-2));--ease-out:cubic-bezier(.22, 1, .36, 1);--content-width:44rem;--wide-width:66rem;--gutter:clamp(1rem, 4vw, 1.5rem);--radius:8px;--radius-lg:12px}@media (prefers-color-scheme:dark){:root{--color-bg:#14171b;--color-surface:#1c2025;--color-surface-strong:#262b31;--color-text:#dfe3e7;--color-heading:#f2f4f6;--color-muted:#9aa3ac;--color-border:#31373e;--color-accent:#72c6cd;--color-accent-hover:#9adbe0;--color-accent-soft:#1b3236;--color-code-bg:#181c21;--color-selection:#24474b;--color-hero-from:#172a2e;--shadow-card:0 1px 2px #0000004d;--shadow-lift:0 2px 4px #0000004d, 0 14px 32px #00000059}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:6rem}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);letter-spacing:.02em;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:clamp(1rem,.95rem + .2vw,1.0625rem);line-height:1.8;display:flex}main{flex:1}h1,h2,h3,h4,h5,h6{color:var(--color-heading);letter-spacing:.01em;font-feature-settings:"palt";line-height:1.45}a{color:var(--color-accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--color-accent-hover);text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}::selection{background:var(--color-selection)}img{max-width:100%;height:auto}code,kbd,pre,samp{font-family:var(--font-mono);letter-spacing:0}.container{width:100%;max-width:calc(var(--content-width) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.container-wide{width:100%;max-width:calc(var(--wide-width) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{left:var(--gutter);border-radius:var(--radius);background:var(--color-accent);color:var(--color-bg);z-index:10;padding:.5rem 1rem;font-weight:700;position:absolute;top:-100px}.skip-link:focus{color:var(--color-bg);top:.75rem}.tag-list{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.tag-list li{background:var(--color-accent-soft);color:var(--color-accent);letter-spacing:.02em;border-radius:999px;padding:.05rem .6rem;font-size:.75rem;line-height:1.7}.page-header{padding-block:clamp(2rem,6vw,3.5rem) 1.5rem}.page-header h1{margin:0;font-size:clamp(1.5rem,1.2rem + 1.4vw,2rem)}.page-header .lead{color:var(--color-muted);margin:.5rem 0 0}.section-heading{color:var(--color-muted);letter-spacing:.08em;margin:0 0 .5rem;font-size:.875rem;font-weight:700}.more-link{text-align:right;margin-top:1.5rem;font-size:.9375rem}code,kbd,pre,samp{font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}.button{border-radius:var(--radius);text-align:center;min-height:3rem;transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out), border-color .2s, color .2s;border:1px solid #0000;justify-content:center;align-items:center;gap:.5em;padding:.6rem 1.5rem;font-weight:700;line-height:1.4;text-decoration:none;display:inline-flex}.button-primary{background:var(--color-accent) var(--gradient-brand);color:var(--color-bg)}.button-primary:hover{color:var(--color-bg);box-shadow:0 6px 20px color-mix(in srgb, var(--color-accent) 35%, transparent);transform:translateY(-1px)}.button-secondary{border-color:var(--color-border);background:var(--color-bg);color:var(--color-heading)}.button-secondary:hover{border-color:var(--color-accent);color:var(--color-accent)}.section{margin-top:clamp(3rem,8vw,4.5rem)}.section>h2{margin:0 0 1.25rem;font-size:clamp(1.3125rem,1.15rem + .6vw,1.5rem)}.section>.section-lead{color:var(--color-muted);margin:-.5rem 0 1.25rem}.block{padding-block:clamp(3rem,8vw,5rem)}.block.band{border-block:1px solid var(--color-border);background:var(--color-surface)}.block-header{margin-bottom:clamp(1.5rem,4vw,2.25rem)}.block-header h2{margin:0;font-size:clamp(1.5rem,1.25rem + 1vw,1.875rem)}.block-header .section-lead{color:var(--color-muted);margin:.5rem 0 0}.kicker{color:var(--color-accent);letter-spacing:.12em;margin:0 0 .375rem;font-size:.8125rem;font-weight:700}.block-header .kicker{font-family:var(--font-mono);letter-spacing:.08em}.block-header .kicker:before{content:"// ";opacity:.6}.lift{transition:transform .25s var(--ease-out), box-shadow .25s var(--ease-out), border-color .25s}@media (hover:hover){.lift:hover{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border));box-shadow:var(--shadow-lift);transform:translateY(-3px)}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.reveal{animation:linear both fade-up view();animation-range:entry entry 60%}}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.chip-list{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.chip-list li{border:1px solid var(--color-border);background:var(--color-bg);border-radius:999px;padding:.05rem .6rem;font-size:.8125rem;line-height:1.7}.chip-list.accent li{background:var(--color-accent-soft);color:var(--color-accent);border-color:#0000;font-weight:700}.draft-banner{padding:.5rem var(--gutter);color:#78350f;text-align:center;background:#fef3c7;margin:0;font-size:.8125rem;font-weight:700}.logo[data-astro-cid-f7espo7c]{flex:none;display:block}@media (prefers-reduced-motion:no-preference){.cursor[data-astro-cid-f7espo7c]{animation:1.2s step-end infinite blink}}@keyframes blink{50%{opacity:0}}.site-header[data-astro-cid-nen7h5rs]{z-index:5;border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg) 92%, transparent);backdrop-filter:blur(8px);position:sticky;top:0}.inner[data-astro-cid-nen7h5rs]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;padding-block:.75rem;display:flex}.site-name[data-astro-cid-nen7h5rs]{color:var(--color-heading);align-items:center;gap:.625rem;text-decoration:none;display:flex}.wordmark[data-astro-cid-nen7h5rs]{line-height:1.3;display:grid}.name[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);letter-spacing:.04em;font-size:1.125rem;font-weight:700}.name-accent[data-astro-cid-nen7h5rs]{background:var(--gradient-brand);color:#0000;-webkit-background-clip:text;background-clip:text}.tagline[data-astro-cid-nen7h5rs]{color:var(--color-muted);letter-spacing:.04em;font-size:.6875rem;font-weight:400}.site-name[data-astro-cid-nen7h5rs]:hover .name[data-astro-cid-nen7h5rs]{color:var(--color-accent)}ul[data-astro-cid-nen7h5rs]{flex-wrap:wrap;align-items:center;gap:.25rem 1.25rem;margin:0;padding:0;list-style:none;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:not(.button){color:var(--color-muted);border-bottom:2px solid #0000;padding-block:.25rem;font-size:.9375rem;text-decoration:none;display:inline-block}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:not(.button):hover{color:var(--color-text)}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:not(.button)[aria-current=page]{color:var(--color-heading);border-bottom-color:var(--color-accent)}.contact[data-astro-cid-nen7h5rs]{min-height:2.5rem;padding:.4rem 1.125rem;font-size:.9375rem}@media (width<=30rem){.tagline[data-astro-cid-nen7h5rs]{display:none}ul[data-astro-cid-nen7h5rs]{gap:.25rem 1rem}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--color-border);background:var(--color-surface);color:var(--color-muted);margin-top:5rem;font-size:.875rem}main.wide+.site-footer[data-astro-cid-jo6i4kqk]{margin-top:0}.inner[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:space-between;gap:1.5rem 3rem;padding-block:2.5rem 1.5rem;display:flex}.about[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin:0}.about[data-astro-cid-jo6i4kqk] .site-name[data-astro-cid-jo6i4kqk]{color:var(--color-heading);letter-spacing:.08em;margin-bottom:.25rem;font-size:1rem;font-weight:700}ul[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(2,auto);gap:.375rem 2.5rem;margin:0;padding:0;list-style:none;display:grid}ul[data-astro-cid-jo6i4kqk] a{color:var(--color-muted);text-decoration:none}ul[data-astro-cid-jo6i4kqk] a:hover{color:var(--color-text);text-decoration:underline}.copyright[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--color-border);margin:0;padding-block:1rem 2rem}
