:root{--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Cascadia Code", monospace;--c-bg:#fafaf8;--c-surface:#fff;--c-surface-hover:#f3f3f0;--c-fg:#1a1a1a;--c-muted:#666;--c-subtle:#888;--c-accent:#2563eb;--c-accent-hover:#1d4ed8;--c-accent-light:#eff6ff;--c-border:#e5e5e5;--c-code-bg:#f0f0ee;--c-success:#16a34a;--c-success-bg:#f0fdf4;--c-success-border:#86efac;--c-warn:#d97706;--c-warn-bg:#fffbeb;--c-warn-border:#fcd34d;--c-info-bg:#eff6ff;--c-info-border:#93c5fd;--c-term-bg:#1e1e2e;--c-term-fg:#cdd6f4;--c-term-green:#a6e3a1;--c-term-yellow:#f9e2af;--c-term-blue:#89b4fa;--c-term-red:#f38ba8;--c-term-comment:#6c7086;--max-w:52rem;--radius:8px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #0000000f}[data-theme=dark]{--c-bg:#13141c;--c-surface:#1a1b26;--c-surface-hover:#24283b;--c-fg:#c0caf5;--c-muted:#9aa5ce;--c-subtle:#7982a9;--c-accent:#7aa2f7;--c-accent-hover:#89b4fa;--c-accent-light:#1e2238;--c-border:#2f334d;--c-code-bg:#24283b;--c-success-bg:#16261f;--c-success-border:#4ade80;--c-info-bg:#1a1e36;--c-info-border:#7aa2f7;--c-warn-bg:#2d261e;--c-warn-border:#fbbf24;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 14px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;line-height:1.7}body{font-family:var(--font-body);color:var(--c-fg);background:var(--c-bg);flex-direction:column;min-height:100vh;display:flex}.site-container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}.site-header{border-bottom:1px solid var(--c-border);background:var(--c-surface);z-index:100;backdrop-filter:blur(8px);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;height:3.75rem;display:flex}.logo-group{color:var(--c-fg);letter-spacing:-.01em;align-items:center;gap:.6rem;font-size:1.1rem;font-weight:700;text-decoration:none;display:flex}.logo-badge{background:var(--c-accent);color:#fff;text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:.2rem .5rem;font-size:.72rem;font-weight:700}.nav-links{align-items:center;gap:1.25rem;list-style:none;display:flex}.nav-link{color:var(--c-muted);font-size:.92rem;font-weight:500;text-decoration:none;transition:color .15s}.nav-link:hover,.nav-link.active{color:var(--c-accent);text-decoration:none}main{flex:1;padding:2.5rem 0 4rem}h1{letter-spacing:-.025em;margin:0 0 .75rem;font-size:2rem;font-weight:800;line-height:1.25}h2{border-bottom:1px solid var(--c-border);letter-spacing:-.015em;margin:2.5rem 0 1rem;padding-bottom:.35rem;font-size:1.4rem;font-weight:700}h3{margin:1.75rem 0 .5rem;font-size:1.15rem;font-weight:600}p{margin:.85rem 0;line-height:1.75}a{color:var(--c-accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);background:var(--c-code-bg);border-radius:4px;padding:.15em .4em;font-size:.88em}pre{font-family:var(--font-mono);border-radius:var(--radius);background:var(--c-term-bg);color:var(--c-term-fg);border:1px solid #313244;margin:1.25rem 0;padding:1.25rem;font-size:.85rem;line-height:1.55;overflow-x:auto}pre code{background:0 0;padding:0}.breadcrumbs{color:var(--c-subtle);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.85rem;display:flex}.breadcrumbs a{color:var(--c-muted)}.breadcrumbs a:hover{color:var(--c-accent)}.breadcrumbs .sep{opacity:.6}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin:1.5rem 0;display:grid}.topic-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);color:inherit;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;padding:1.5rem;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.topic-card:hover{border-color:var(--c-accent);box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-2px)}.topic-card-title{color:var(--c-fg);align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:700;display:flex}.topic-card-desc{color:var(--c-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:1.25rem;font-size:.92rem;line-height:1.6;display:-webkit-box;overflow:hidden}.topic-card-desc strong,header p strong{color:var(--c-fg);font-weight:700}.topic-card-meta{color:var(--c-subtle);border-top:1px solid var(--c-border);justify-content:space-between;align-items:center;padding-top:.75rem;font-size:.82rem;display:flex}.callout{border-radius:0 var(--radius) var(--radius) 0;border-left:4px solid;margin:1.25rem 0;padding:1rem 1.25rem}.callout p:first-child{margin-top:0}.callout p:last-child{margin-bottom:0}.callout.info{background:var(--c-info-bg);border-color:var(--c-info-border)}.callout.tip{background:var(--c-success-bg);border-color:var(--c-success-border)}.callout.warn{background:var(--c-warn-bg);border-color:var(--c-warn-border)}.callout .label{letter-spacing:.03em;margin-bottom:.35rem;font-size:.85rem;font-weight:700}table{border-collapse:collapse;width:100%;margin:1.25rem 0;font-size:.9rem}th,td{border:1px solid var(--c-border);text-align:left;padding:.65rem .85rem}th{background:var(--c-code-bg);font-weight:600}.lesson-list{flex-direction:column;gap:.75rem;margin:1.25rem 0;display:flex}.lesson-item{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-fg);justify-content:space-between;align-items:center;padding:.9rem 1.2rem;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.lesson-item:hover{border-color:var(--c-accent);background:var(--c-surface-hover);text-decoration:none}.lesson-item-left{align-items:center;gap:.85rem;display:flex}.lesson-num-badge{background:var(--c-accent-light);color:var(--c-accent);font-size:.8rem;font-weight:700;font-family:var(--font-mono);border-radius:4px;padding:.2rem .5rem}.lesson-title{font-size:.95rem;font-weight:600}.lesson-arrow{color:var(--c-subtle);font-size:1.1rem}.badge{border-radius:9999px;align-items:center;padding:.2rem .55rem;font-size:.78rem;font-weight:600;display:inline-flex}.badge-blue{background:var(--c-accent-light);color:var(--c-accent)}.badge-green{background:var(--c-success-bg);color:var(--c-success);border:1px solid var(--c-success-border)}.badge-purple{color:#9333ea;background:#9333ea1a;border:1px solid #9333ea40}.version-nav{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1.25rem 0;display:flex}.version-pill{border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-muted);border-radius:9999px;padding:.35rem .85rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .15s}.version-pill:hover{border-color:var(--c-accent);color:var(--c-accent);text-decoration:none}.version-pill.active{background:var(--c-accent);color:#fff;border-color:var(--c-accent)}.doc-card-link:hover{transform:translateY(-1px);border-color:var(--c-accent)!important;text-decoration:none!important}.doc-card-link:hover code{text-decoration:underline}.site-footer{border-top:1px solid var(--c-border);background:var(--c-surface);color:var(--c-muted);margin-top:auto;padding:2rem 0;font-size:.85rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.markdown-body{line-height:1.75}.markdown-body h1{border-bottom:2px solid var(--c-border);margin-top:2rem;margin-bottom:.75rem;padding-bottom:.35rem}.markdown-body h2{margin-top:2.25rem}.markdown-body ul,.markdown-body ol{margin:.85rem 0;padding-left:1.6rem}.markdown-body li{margin:.35rem 0}.doc-section{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:2.5rem;padding:1.75rem 2rem}.doc-section-header{border-bottom:1px solid var(--c-border);margin-bottom:1.5rem;padding-bottom:1rem}.theme-toggle{appearance:none;border:1px solid var(--c-border);cursor:pointer;width:2.25rem;height:2.25rem;color:var(--c-muted);background:0 0;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.theme-toggle:hover{color:var(--c-accent);border-color:var(--c-accent);background:var(--c-accent-light)}.theme-toggle .icon-sun,.theme-toggle .icon-moon{width:1.1rem;height:1.1rem;transition:transform .3s,opacity .2s}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon{display:none}.hero{margin-bottom:2.5rem;padding:3.5rem 0 3rem;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 10% 90%,#2563eb14 0%,#0000 70%),radial-gradient(60% 50% at 90% 20%,#9333ea0f 0%,#0000 70%);position:absolute;inset:0}[data-theme=dark] .hero:before{background:radial-gradient(80% 60% at 10% 90%,#7aa2f71a 0%,#0000 70%),radial-gradient(60% 50% at 90% 20%,#bb9af714 0%,#0000 70%)}.hero>*{z-index:1;position:relative}.hero h1{letter-spacing:-.035em;background:linear-gradient(135deg, var(--c-fg) 0%, var(--c-accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-size:2.5rem;font-weight:800;line-height:1.15}[data-theme=dark] .hero h1{background:linear-gradient(135deg,#e0e6ff 0%,#7aa2f7 60%,#bb9af7 100%);-webkit-background-clip:text;background-clip:text}.hero-description{color:var(--c-muted);max-width:40rem;margin:0 0 2rem;font-size:1.12rem;line-height:1.75}.hero-stats{flex-wrap:wrap;gap:2.5rem;display:flex}.hero-stat{flex-direction:column;gap:.15rem;display:flex}.hero-stat-value{font-size:1.75rem;font-weight:800;font-family:var(--font-mono);color:var(--c-accent);letter-spacing:-.03em;line-height:1.2}.hero-stat-label{color:var(--c-subtle);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:500}@view-transition{navigation:auto}::view-transition-old(root){animation:.15s ease-out fade-out}::view-transition-new(root){animation:.2s ease-in fade-in}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up-fade{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.5s ease-out both slide-up-fade}.animate-in:first-child{animation-delay:0s}.animate-in:nth-child(2){animation-delay:80ms}.animate-in:nth-child(3){animation-delay:.16s}.animate-in:nth-child(4){animation-delay:.24s}.animate-in:nth-child(5){animation-delay:.32s}.animate-in:nth-child(6){animation-delay:.4s}@media (width<=640px){.hero h1{font-size:1.75rem}.hero-stats{gap:1.5rem}.hero-stat-value{font-size:1.35rem}.nav-links{gap:.75rem}.nav-link{font-size:.82rem}}
