:root{--color-bg:#0f0f1a;--color-surface:#1a1a2e;--color-surface-2:#222238;--color-border:rgba(108, 99, 255, 0.18);--color-border-hover:rgba(108, 99, 255, 0.45);--color-purple:#6c63ff;--color-purple-dim:rgba(108, 99, 255, 0.12);--color-teal:#3ecfb2;--color-teal-dim:rgba(62, 207, 178, 0.12);--color-text:#e8e8f0;--color-text-sub:#a0a0bc;--color-text-muted:#E0E0E0;--font-sans:'Noto Sans KR',system-ui,sans-serif;--font-mono:'JetBrains Mono',monospace;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--transition:0.22s ease;--header-h:64px;--subject-accent:#6c63ff}[data-theme=light]{--color-bg:#f5f5ff;--color-surface:#ffffff;--color-surface-2:#eeeeff;--color-border:rgba(108, 99, 255, 0.2);--color-border-hover:rgba(108, 99, 255, 0.5);--color-purple:#6c63ff;--color-purple-dim:rgba(108, 99, 255, 0.12);--color-teal:#2ab89e;--color-teal-dim:rgba(62, 207, 178, 0.12);--color-text:#1a1a2e;--color-text-sub:#3a3a5c;--color-text-muted:#6b6b8a}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{background:0 0;border:none;cursor:pointer;font-family:inherit}ol,ul{list-style:none}img,svg{display:block;max-width:100%}h1,h2,h3,h4{font-weight:700;line-height:1.25;letter-spacing:-.02em}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.6rem;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.9rem;font-weight:500;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition)}.btn--primary{background:var(--color-purple);color:#fff;border:1.5px solid var(--color-purple)}.btn--primary:hover{background:#7b73ff;border-color:#7b73ff}.btn--ghost{background:0 0;color:var(--color-text-sub);border:1.5px solid var(--color-border-hover)}.btn--ghost:hover{color:var(--color-text);border-color:var(--color-purple)}.section-header{text-align:center;margin-bottom:3rem}.section-header__label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-teal);margin-bottom:.75rem}.section-header__title{font-size:clamp(1.6rem, 3vw, 2.2rem);color:var(--color-text);margin-bottom:.75rem}.section-header__desc{font-size:.95rem;color:var(--color-text-muted);font-weight:300}