@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-ext-wght-normal.B5bTHO_g.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/instrument-sans-latin-wght-normal.BbzFLZTg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #fbfbfd;--bg-raise: #ffffff;--bg-raise-2: #f4f4f8;--line: #e6e7ee;--line-soft: #eff0f5;--line-strong: #d5d7e1;--fg: #0b0b12;--muted: #545a68;--faint: #6c7280;--accent: #5956f1;--accent-strong: #4a47dd;--accent-wash: #eeeefe;--on-accent: #ffffff;--grad: linear-gradient(100deg, #6363fa, #cc53fc);--warn: #96580a;--warn-wash: #fdf4e8;--radius: 12px;--radius-lg: 16px;--radius-sm: 9px;--sh-card: 0 1px 2px rgba(14, 16, 32, .04), 0 8px 22px -14px rgba(14, 16, 32, .14);--sh-hover: 0 2px 4px rgba(14, 16, 32, .05), 0 16px 34px -16px rgba(89, 86, 241, .28);--sh-shot: 0 1px 2px rgba(14, 16, 32, .05), 0 18px 38px -20px rgba(14, 16, 32, .3);--dur: .18s;--ease: cubic-bezier(.2, .8, .25, 1);--font-body: "Instrument Sans Variable", Inter, "Hiragino Sans", "Noto Sans JP", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0c0d12;--bg-raise: #14161d;--bg-raise-2: #1b1e27;--line: #262a35;--line-soft: #1e212a;--line-strong: #363b48;--fg: #f7f8fb;--muted: #a6abb8;--faint: #8b91a0;--accent: #8f8dfa;--accent-strong: #a5a3fb;--accent-wash: #1d1d38;--on-accent: #11111a;--warn: #e2a660;--warn-wash: #2b2114;--sh-card: inset 0 1px 0 rgba(255, 255, 255, .04), 0 10px 26px -16px rgba(0, 0, 0, .8);--sh-hover: inset 0 1px 0 rgba(255, 255, 255, .06), 0 18px 38px -18px rgba(89, 86, 241, .45);--sh-shot: 0 18px 40px -22px rgba(0, 0, 0, .9);color-scheme:dark}}*{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;font:16.5px/1.7 var(--font-body);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;overflow-x:clip}.shell{width:100%;max-width:68rem;margin:0 auto;padding:0 1.25rem}main.shell{flex:1;padding-bottom:5rem}a{color:var(--accent-strong);text-decoration-thickness:1px;text-underline-offset:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}h1,h2,h3{font-family:var(--font-body);font-weight:650;line-height:1.18;letter-spacing:-.022em;text-wrap:balance}.site-head{position:sticky;top:0;z-index:20;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:color-mix(in srgb,var(--bg) 85%,transparent);border-bottom:1px solid var(--line)}.head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.7rem;padding-bottom:.7rem}.brand{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-weight:700;font-size:1.08rem;letter-spacing:-.03em;color:var(--fg);text-decoration:none}.brand-mark{display:block;border-radius:5px}.brand-2{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.head-nav{display:flex;align-items:center;gap:.6rem}.btn-cta{font-weight:550;font-size:.88rem;color:var(--on-accent);text-decoration:none;padding:.48rem .95rem;border-radius:var(--radius-sm);background:var(--accent);white-space:nowrap;box-shadow:var(--sh-card);transition:background var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.btn-cta:after{content:"›";margin-left:.4rem}.btn-cta:hover{background:var(--accent-strong);transform:translateY(-1px);box-shadow:var(--sh-hover)}.nav-link{color:var(--muted);text-decoration:none;font-size:.88rem;padding:.42rem .5rem;white-space:nowrap}.nav-link:hover{color:var(--fg)}.btn-ghost{font-size:.88rem;color:var(--muted);text-decoration:none;padding:.42rem .7rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-raise);white-space:nowrap;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.btn-ghost:hover{color:var(--fg);background:var(--bg-raise-2)}.lang{position:relative}.lang summary{list-style:none;display:flex;align-items:center;gap:.4rem;cursor:pointer;color:var(--muted);font-size:.88rem;padding:.42rem .7rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-raise);user-select:none}.lang summary::-webkit-details-marker{display:none}.lang summary:hover{color:var(--fg);background:var(--bg-raise-2)}.lang summary svg{width:15px;height:15px}.lang[open] summary{color:var(--fg);background:var(--bg-raise-2)}.lang ul{position:absolute;right:0;top:calc(100% + .4rem);margin:0;padding:.3rem;list-style:none;min-width:10rem;background:var(--bg-raise);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px #0e102024}.lang ul a{display:block;padding:.42rem .7rem;border-radius:var(--radius-sm);color:var(--fg);text-decoration:none;font-size:.9rem}.lang ul a:hover{background:var(--bg-raise-2)}@media(max-width:540px){.head-row{gap:.5rem}.lang summary span{display:none}.btn-ghost{display:none}.nav-link{padding:.42rem .3rem;font-size:.84rem}}.site-foot{border-top:1px solid var(--line);padding:2rem 0 2.75rem;color:var(--muted);font-size:.85rem}.foot-method{max-width:46rem;margin:0 0 .9rem}.foot-nav{margin:0;color:var(--faint)}.foot-nav a{color:var(--muted);text-decoration:none}.foot-nav a:hover{color:var(--fg)}.foot-nav span{margin:0 .5rem}.eyebrow{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
