@import"https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&family=Outfit:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";.lang-switcher[data-astro-cid-a2mxz4y6]{position:relative}.lang-trigger[data-astro-cid-a2mxz4y6]{display:flex;align-items:center;gap:.35rem;background:none;border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--muted);font-size:.82rem;padding:.3rem .65rem;cursor:pointer;transition:all .2s;font-family:inherit}.lang-trigger[data-astro-cid-a2mxz4y6]:hover{color:var(--text);border-color:var(--border-bright)}.lang-icon[data-astro-cid-a2mxz4y6]{font-size:.9rem}.lang-menu[data-astro-cid-a2mxz4y6]{display:none;position:absolute;top:100%;right:0;margin-top:.35rem;list-style:none;background:#05080ff2;backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius-xs);padding:.35rem 0;min-width:120px;z-index:200}.lang-menu[data-astro-cid-a2mxz4y6].open{display:block}.lang-menu[data-astro-cid-a2mxz4y6] a[data-astro-cid-a2mxz4y6]{display:block;padding:.4rem .85rem;color:var(--muted);font-size:.85rem;text-decoration:none;transition:all .15s}.lang-menu[data-astro-cid-a2mxz4y6] a[data-astro-cid-a2mxz4y6]:hover{color:var(--text);background:#38bdf80f}.lang-menu[data-astro-cid-a2mxz4y6] a[data-astro-cid-a2mxz4y6].active{color:var(--primary-light)}.navbar[data-astro-cid-ymhdp2rl]{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--border)}.nav-inner[data-astro-cid-ymhdp2rl]{display:flex;align-items:center;justify-content:space-between;height:60px}.nav-logo[data-astro-cid-ymhdp2rl]{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text)}.nav-logo[data-astro-cid-ymhdp2rl]:hover{color:var(--text)}.logo-img[data-astro-cid-ymhdp2rl]{width:30px;height:30px;border-radius:var(--radius-xs);object-fit:cover;border:1px solid var(--border-bright)}.logo-text-group[data-astro-cid-ymhdp2rl]{display:flex;flex-direction:column;line-height:1}.logo-text[data-astro-cid-ymhdp2rl]{font-family:var(--font-code);font-weight:500;font-size:.9rem;letter-spacing:-.01em;text-transform:lowercase}.logo-jp[data-astro-cid-ymhdp2rl]{font-family:var(--font-heading);font-size:.55rem;color:var(--muted);letter-spacing:.02em;margin-top:1px}.nav-links[data-astro-cid-ymhdp2rl]{display:flex;list-style:none;gap:.25rem;align-items:center}.nav-links[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl]{color:var(--muted);font-family:var(--font-code);font-weight:400;font-size:.8rem;padding:.35rem .75rem;border-radius:var(--radius-xs);transition:color .2s;text-transform:lowercase;letter-spacing:.01em}.nav-links[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl]:hover,.nav-links[data-astro-cid-ymhdp2rl] a[data-astro-cid-ymhdp2rl].active{color:var(--text)}.nav-github[data-astro-cid-ymhdp2rl]{border:1px solid var(--border)!important;border-radius:var(--radius-xs)!important}.nav-github[data-astro-cid-ymhdp2rl]:hover{border-color:var(--border-bright)!important}.nav-toggle[data-astro-cid-ymhdp2rl]{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.nav-toggle[data-astro-cid-ymhdp2rl] span[data-astro-cid-ymhdp2rl]{width:20px;height:1.5px;background:var(--text);border-radius:0;transition:all .2s}@media(max-width:768px){.nav-toggle[data-astro-cid-ymhdp2rl]{display:flex}.nav-links[data-astro-cid-ymhdp2rl]{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;background:var(--bg);border-bottom:1px solid var(--border);padding:1.5rem;gap:.5rem}.nav-links[data-astro-cid-ymhdp2rl].open{display:flex}}.footer[data-astro-cid-sz7xmlte]{padding:0;margin-top:0;background:var(--bg);position:relative}.footer-rule[data-astro-cid-sz7xmlte]{height:1px;background:var(--border)}.footer-inner[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:2.5rem;padding-top:3rem;padding-bottom:2rem}.footer-top[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;gap:3rem}.footer-brand[data-astro-cid-sz7xmlte]{max-width:280px}.footer-logo[data-astro-cid-sz7xmlte]{display:flex;align-items:center;gap:.55rem;font-family:var(--font-code);font-weight:500;font-size:.9rem;margin-bottom:.75rem;text-transform:lowercase;color:var(--text)}.logo-img[data-astro-cid-sz7xmlte]{width:24px;height:24px;border-radius:var(--radius-xs);object-fit:cover;border:1px solid var(--border)}.footer-tagline[data-astro-cid-sz7xmlte]{color:var(--muted);font-size:.85rem;line-height:1.5;font-weight:300}.footer-links[data-astro-cid-sz7xmlte]{display:flex;gap:4rem}.footer-col[data-astro-cid-sz7xmlte]{display:flex;flex-direction:column;gap:.4rem}.footer-col[data-astro-cid-sz7xmlte] h4[data-astro-cid-sz7xmlte]{font-family:var(--font-code);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:.25rem;font-weight:500}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--muted);font-size:.85rem;transition:color .2s;font-weight:300}.footer-col[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--text)}.footer-bottom[data-astro-cid-sz7xmlte]{display:flex;justify-content:space-between;align-items:center;padding-top:1.5rem;border-top:1px solid var(--border)}.footer-copy[data-astro-cid-sz7xmlte]{color:var(--muted);font-size:.75rem;font-family:var(--font-code)}.footer-badges[data-astro-cid-sz7xmlte]{display:flex;gap:.4rem}.footer-badge[data-astro-cid-sz7xmlte]{font-family:var(--font-code);font-size:.65rem;padding:.15rem .5rem;border-radius:var(--radius-xs);background:var(--surface);border:1px solid var(--border);color:var(--muted)}.build-badge[data-astro-cid-sz7xmlte]{opacity:.4}.footer-made[data-astro-cid-sz7xmlte]{color:var(--muted);font-size:.75rem;font-family:var(--font-code)}.footer-made[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:var(--text-secondary);transition:color .2s}.footer-made[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}@media(max-width:768px){.footer-top[data-astro-cid-sz7xmlte]{flex-direction:column}.footer-bottom[data-astro-cid-sz7xmlte]{flex-direction:column;gap:1rem;text-align:center}}:root{--bg: #0a0a0a;--bg-alt: #111111;--surface: rgba(255,255,255,.03);--surface-solid: #161616;--border: rgba(255,255,255,.06);--border-bright: rgba(255,255,255,.12);--text: #e8e8e8;--text-secondary: #888888;--muted: #555555;--accent: #ff6b35;--accent-light: #ff8f66;--primary: #e8e8e8;--secondary: #888888;--font-heading: "Zen Kaku Gothic New", system-ui, sans-serif;--font-body: "Outfit", system-ui, sans-serif;--font-code: "IBM Plex Mono", "Menlo", monospace;--radius: 4px;--radius-sm: 3px;--radius-xs: 2px;--max-width: 1200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.15;color:var(--text);letter-spacing:-.02em}h1{font-size:3.5rem}h2{font-size:2.25rem}h3{font-size:1.4rem;font-weight:500}h4{font-size:1.15rem;font-weight:500}@media(max-width:768px){h1{font-size:2.25rem}h2{font-size:1.6rem}h3{font-size:1.15rem}}a{color:var(--text);text-decoration:none;transition:color .2s}a:hover{color:var(--accent)}code{font-family:var(--font-code);font-size:.875em;background:var(--surface-solid);padding:.2em .45em;border-radius:var(--radius-xs);color:var(--accent-light);border:1px solid var(--border)}pre{font-family:var(--font-code);font-size:.85rem;background:var(--surface-solid);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1.25rem;overflow-x:auto;line-height:1.7}pre code{background:none;padding:0;font-size:inherit;border:none}img{max-width:100%;height:auto}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.section{padding:7rem 0;position:relative}.section-title{text-align:center;margin-bottom:4rem}.section-title h2{margin-bottom:.75rem}.section-title p{color:var(--muted);font-size:1.05rem;max-width:600px;margin:0 auto;line-height:1.6;font-weight:300}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.75rem;border-radius:var(--radius-xs);font-family:var(--font-body);font-weight:500;font-size:.9rem;text-decoration:none;transition:all .2s ease;cursor:pointer;border:none;letter-spacing:.01em}.btn-primary{background:var(--text);color:var(--bg)}.btn-primary:hover{background:#fff;color:var(--bg)}.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-bright)}.btn-secondary:hover{border-color:var(--text);color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;transition:border-color .2s ease}.card:hover{border-color:var(--border-bright)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .9rem;border-radius:var(--radius-xs);font-size:.8rem;font-weight:500;font-family:var(--font-code);background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);transition:border-color .2s}.badge:hover{border-color:var(--border-bright)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border)}.grid-2>*{background:var(--bg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}.grid-3>*{background:var(--bg)}@media(max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}}table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.9rem}th,td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border)}th{font-family:var(--font-code);font-weight:500;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}blockquote{border-left:2px solid var(--border-bright);padding:.75rem 1.25rem;margin:1.5rem 0;background:var(--surface);border-radius:0;color:var(--text-secondary)}hr{border:none;height:1px;background:var(--border);margin:0}.section-divider{position:relative;height:1px;background:var(--border);margin:0}.section-divider.reverse{height:1px;background:var(--border)}.section-divider:before{display:none}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
