:root{--sky-top:#060913;--sky-mid:#0b1224;--sky-low:#131b35;--bg:#0b1122;--bg-elev:#121a31;--bg-elev-2:#19223d;--ink:#eef1f8;--ink-2:#b6bdd2;--ink-3:#8089a6;--line:#242d4b;--accent:#ffad5c;--accent-ink:#1b1206;--moon:#fff4d6;--device:#04060d;--shadow:0 1px 2px #00000059, 0 12px 32px #0006;--c-mobile:#ff8a4c;--c-backend:#6f9bff;--c-data:#a98cff;--c-infra:#3fcf9f;--c-process:#f0c24a;--font-sans:"Inter", "Noto Sans JP", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--gutter:clamp(16px, 4vw, 48px);--max:1120px;--radius:14px;--header-h:64px;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--sky-top)}body{color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background:0 0;margin:0;font-size:16px;line-height:1.7;overflow-x:hidden}a{color:inherit}img,svg,canvas{max-width:100%;display:block}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{width:100%;max-width:calc(var(--max) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:12px}.eyebrow b{color:var(--accent);font-weight:500}.display{letter-spacing:-.035em;margin:0;font-weight:800;line-height:.95}.section{border-top:1px solid var(--line);padding-block:clamp(56px,9vw,112px)}.section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:32px;display:flex}.section-head h2{letter-spacing:-.03em;margin:0;font-size:clamp(28px,4vw,44px);font-weight:800;line-height:1.1}.chip{border:1px solid var(--line);font-family:var(--font-mono);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:inline-flex}.btn{border:1px solid var(--ink);background:var(--ink);color:var(--bg);font:600 14px/1 var(--font-sans);cursor:pointer;border-radius:999px;align-items:center;gap:10px;padding:12px 20px;text-decoration:none;transition:transform .2s,background .2s;display:inline-flex}.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);transform:translateY(-1px)}.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.arrow-link{font-family:var(--font-mono);border-bottom:1px solid;padding-bottom:2px;font-size:13px;text-decoration:none}.arrow-link:hover{color:var(--accent)}.card{background:color-mix(in srgb, var(--bg-elev) 94%, transparent);border:1px solid var(--line);border-radius:var(--radius)}.reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);transform:translateY(16px)}.reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sky[data-astro-cid-hkbrpulz]{z-index:-1;pointer-events:none;background:radial-gradient(40% 35% at 88% 8%, #8ca0eb29, transparent 70%), linear-gradient(180deg, var(--sky-top) 0%, var(--sky-mid) 55%, var(--sky-low) 100%);position:fixed;inset:0;overflow:hidden}.star[data-astro-cid-hkbrpulz]{width:var(--s);height:var(--s);opacity:var(--o);box-shadow:0 0 calc(var(--s) * 2) #ffffff80;background:#fff;border-radius:50%;position:absolute}.star[data-astro-cid-hkbrpulz].twinkle{animation:twinkle var(--t) ease-in-out var(--d) infinite}@keyframes twinkle{0%,to{opacity:var(--o)}50%{opacity:.1}}.moon[data-astro-cid-hkbrpulz]{z-index:-1;pointer-events:none;top:calc(var(--header-h) + 36px);right:calc(var(--gutter) + 8px);background:var(--moon);border-radius:50%;width:44px;height:44px;position:absolute;box-shadow:0 0 24px 6px #fff0d240,0 0 90px 30px #96aaf01f}.mist[data-astro-cid-hkbrpulz]{background:radial-gradient(45% 60% at 20% 100%,#c8d2ff12,#0000 70%),radial-gradient(50% 70% at 75% 100%,#c8d2ff0f,#0000 70%);height:28vh;position:absolute;inset:auto 0 0}.immersive[data-astro-cid-hkbrpulz] .moon[data-astro-cid-hkbrpulz],.immersive[data-astro-cid-hkbrpulz] .mist[data-astro-cid-hkbrpulz]{display:none}@media (width<=760px){.moon[data-astro-cid-hkbrpulz]{width:30px;height:30px;top:calc(var(--header-h) + 20px)}}@media (prefers-reduced-motion:reduce){.star[data-astro-cid-hkbrpulz].twinkle{animation:none}}.site-header[data-astro-cid-hkbrpulz]{z-index:50;height:var(--header-h);background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0}.immersive[data-astro-cid-hkbrpulz] .site-header[data-astro-cid-hkbrpulz]{backdrop-filter:none;background:0 0;border-bottom-color:#0000;position:fixed;inset:0 0 auto}.bar[data-astro-cid-hkbrpulz]{align-items:center;gap:24px;height:100%;display:flex}.logo[data-astro-cid-hkbrpulz]{align-items:center;gap:12px;margin-right:auto;text-decoration:none;display:flex}.mark[data-astro-cid-hkbrpulz]{background:var(--ink);width:32px;height:32px;color:var(--bg);font:800 13px/1 var(--font-sans);letter-spacing:-.04em;border-radius:9px;place-items:center;display:grid}.logo-name[data-astro-cid-hkbrpulz]{letter-spacing:.06em;font-size:14px;font-weight:800}.nav[data-astro-cid-hkbrpulz]{gap:4px;min-width:0;display:flex}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{white-space:nowrap;color:var(--ink-2);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s,background .2s}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, transparent)}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz].active{color:var(--ink);background:color-mix(in srgb, var(--ink) 9%, transparent)}.built[data-astro-cid-hkbrpulz]{text-decoration:none}.built[data-astro-cid-hkbrpulz]:hover{color:var(--accent)}.site-footer[data-astro-cid-hkbrpulz]{border-top:1px solid var(--line);padding-block:28px}.foot[data-astro-cid-hkbrpulz]{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}@media (width<=760px){.logo-name[data-astro-cid-hkbrpulz]{display:none}.bar[data-astro-cid-hkbrpulz]{gap:8px}.nav[data-astro-cid-hkbrpulz]{scrollbar-width:none;overflow-x:auto}.nav[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{padding:6px 9px;font-size:13px}}
