:root{--color-bg:#080b14;--color-bg-secondary:#0d1020;--color-surface:#121625;--color-surface-elevated:#191e31;--color-surface-soft:#222840;--color-primary:#7c4dff;--color-primary-dark:#5e35d5;--color-primary-light:#a987ff;--color-gold:#d8b14b;--color-text:#f2f3f7;--color-text-secondary:#b8bcc9;--color-text-muted:#7e8496;--color-border:#262c42;--color-focus:#c9b3ff;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Hiragino Kaku Gothic ProN", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--font-serif:Georgia, "Times New Roman", "Noto Serif", serif;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:clamp(2rem, 5vw, 2.75rem);--leading:1.65;--shadow-card:0 1px 2px #0006, 0 8px 24px #00000059;--container-max:72rem;--container-narrow:46rem;--motion-fast:.15s ease}*,:before,:after{box-sizing:border-box}*{margin:0}html{color-scheme:dark}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading);-webkit-font-smoothing:antialiased;min-height:100dvh}img,svg{max-width:100%;display:block}a{color:var(--color-primary-light);text-underline-offset:3px}a:hover{color:var(--color-focus)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}.container{max-width:var(--container-max);padding-inline:var(--space-5);margin-inline:auto}.container--narrow{max-width:var(--container-narrow)}.skip-link{background:var(--color-primary);color:#fff;padding:var(--space-2) var(--space-4);border-radius:0 0 var(--radius-sm) 0;z-index:100;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}h1,h2,h3{letter-spacing:-.01em;font-weight:700;line-height:1.25}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}.starfield{background-image:radial-gradient(1px 1px at 12% 22%, #ffffff40 0, transparent 100%), radial-gradient(1px 1px at 78% 12%, #fff3 0, transparent 100%), radial-gradient(1.5px 1.5px at 55% 45%, #a987ff59 0, transparent 100%), radial-gradient(1px 1px at 32% 70%, #ffffff2e 0, transparent 100%), radial-gradient(1px 1px at 90% 60%, #d8b14b47 0, transparent 100%), linear-gradient(180deg, var(--color-bg-secondary) 0%, var(--color-bg) 65%)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card)}.badge{border:1px solid var(--color-gold);color:var(--color-gold);font-size:var(--text-sm);padding:.15rem var(--space-3);white-space:nowrap;border-radius:999px;display:inline-block}.btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);transition:background var(--motion-fast);font-weight:600;text-decoration:none;display:inline-block}.btn:hover{background:var(--color-primary-dark);color:#fff}.section{padding-block:var(--space-8)}.section+.section{padding-top:0}.grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));display:grid}.prose{max-width:var(--container-narrow)}.prose h2{margin-top:var(--space-7);margin-bottom:var(--space-3)}.prose h3{margin-top:var(--space-5);margin-bottom:var(--space-2)}.prose p,.prose li{color:var(--color-text-secondary);margin-bottom:var(--space-3)}.prose ul{padding-inline-start:1.25rem}.prose strong{color:var(--color-text)}.prose,.card{overflow-wrap:break-word}:lang(ja){line-break:strict}:lang(ko){line-break:strict;word-break:keep-all}:lang(ja) .prose,:lang(ko) .prose,:lang(ja) .card,:lang(ko) .card{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.lang[data-astro-cid-idm6pdb5] ul[data-astro-cid-idm6pdb5]{gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.lang[data-astro-cid-idm6pdb5] a[data-astro-cid-idm6pdb5]{color:var(--color-text-muted);border-radius:var(--radius-sm);border:1px solid #0000;padding:.1rem .45rem;text-decoration:none}.lang[data-astro-cid-idm6pdb5] a[data-astro-cid-idm6pdb5]:hover{color:var(--color-text)}.lang[data-astro-cid-idm6pdb5] a[data-astro-cid-idm6pdb5][aria-current=page]{color:var(--color-primary-light);border-color:var(--color-primary-dark)}.site-header[data-astro-cid-isef26zo]{border-bottom:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg) 88%, transparent);z-index:20;backdrop-filter:blur(8px);position:sticky;top:0}.header-inner[data-astro-cid-isef26zo]{align-items:center;gap:var(--space-5);padding-block:var(--space-3);flex-wrap:wrap;display:flex}.wordmark[data-astro-cid-isef26zo]{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text);letter-spacing:.02em;font-weight:700;text-decoration:none}.header-nav[data-astro-cid-isef26zo]{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.header-nav[data-astro-cid-isef26zo] a[data-astro-cid-isef26zo]{color:var(--color-text-secondary);text-decoration:none}.header-nav[data-astro-cid-isef26zo] a[data-astro-cid-isef26zo]:hover{color:var(--color-text)}.header-side[data-astro-cid-isef26zo]{align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-inline-start:auto;display:flex}@media (width<=47.9rem){.header-side[data-astro-cid-isef26zo]{margin-inline-start:0}}.site-footer[data-astro-cid-oenwriqq]{border-top:1px solid var(--color-border);background:var(--color-bg-secondary);padding-block:var(--space-6);margin-top:var(--space-8);color:var(--color-text-secondary);font-size:var(--text-sm)}.footer-inner[data-astro-cid-oenwriqq]{gap:var(--space-4);display:grid}.footer-nav[data-astro-cid-oenwriqq]{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer-bottom[data-astro-cid-oenwriqq]{gap:var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}
