:root{--font-sans:var(--font-paperlogy), -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", system-ui, sans-serif;--font-display:var(--font-sans);--font-serif:var(--font-sans);--font-mono:"JetBrains Mono", "SF Mono", "Fira Code", "Consolas", monospace;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;--weight-black:900;--step--1:clamp(.82rem, .79rem + .16vw, .875rem);--step-0:clamp(1rem, .95rem + .25vw, 1.0625rem);--step-1:clamp(1.15rem, 1.06rem + .42vw, 1.3rem);--step-2:clamp(1.4rem, 1.22rem + .85vw, 1.75rem);--step-3:clamp(1.7rem, 1.4rem + 1.45vw, 2.35rem);--step-4:clamp(2.15rem, 1.65rem + 2.4vw, 3.2rem);--step-5:clamp(2.7rem, 1.95rem + 3.6vw, 4.4rem);--step-6:clamp(3.3rem, 2.1rem + 5.6vw, 6rem);--leading-tight:1.18;--leading-snug:1.32;--leading-body:1.78;--leading-relaxed:1.85;--color-bg:#fff;--color-bg-sunken:#faf9f7;--color-surface:#f6f4f1;--color-text:#1a1714;--color-text-secondary:#4a463f;--color-text-muted:oklch(48% .012 55);--color-border:#ddd9d3;--color-border-light:#ece9e4;--color-border-strong:#c8c3bb;--color-accent:oklch(50% .13 42);--color-accent-hover:oklch(43% .13 40);--color-accent-bright:oklch(58% .16 42);--color-accent-light:oklch(96.5% .014 48);--color-accent-surface:oklch(95% .024 48);--color-index-amber:#b45309;--shadow-color:26 23 20;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--section-gap:clamp(4rem, 2.5rem + 7vw, 8rem);--measure:65ch;--measure-wide:78ch;--container-max:980px;--container-wide:1180px;--border-radius:3px;--radius-soft:8px;--radius-pill:999px;--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-back:cubic-bezier(.34, 1.4, .64, 1);--transition-fast:.13s var(--ease-out-quart);--transition-base:.24s var(--ease-out-quart);--transition-slow:.62s var(--ease-out-expo);--reveal-duration:.76s;--z-base:1;--z-raised:10;--z-dropdown:1000;--z-sticky:1100;--z-drawer:1200;--z-modal:1300;--z-toast:1400;--z-tooltip:1500}.dark{--color-bg:#100e0c;--color-bg-sunken:#15120f;--color-surface:#1b1814;--color-text:#ece8e1;--color-text-secondary:#aaa49b;--color-text-muted:#8a847b;--color-border:#2e2a25;--color-border-light:#221f1b;--color-border-strong:#423d36;--color-accent:oklch(76% .115 56);--color-accent-hover:oklch(83% .095 58);--color-accent-bright:oklch(72% .14 50);--color-accent-light:#1c1814;--color-accent-surface:oklch(30% .045 45);--color-index-amber:#e08a3c;--shadow-color:0 0 0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);font-size:16px;line-height:var(--leading-body);color:var(--color-text);background:var(--color-bg);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-padding-top:6rem}body{background:var(--color-bg);flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}h1,h2,h3,h4,h5,h6,p,li,a,blockquote,figcaption,dd,dt,span{word-break:keep-all;overflow-wrap:anywhere}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-bold);line-height:var(--leading-snug);letter-spacing:-.015em;color:var(--color-text);text-wrap:balance}p{text-wrap:pretty}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent)}img,svg,video,canvas{max-width:100%;height:auto;display:block}strong,b{font-weight:var(--weight-semibold)}::selection{background:var(--color-accent);color:#fff}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}.skip-nav{top:-100%;left:var(--space-4);z-index:var(--z-tooltip);padding:var(--space-2) var(--space-4);background:var(--color-accent);color:#fff;font-size:.875rem;font-weight:var(--weight-semibold);border-radius:var(--border-radius);text-decoration:none;position:absolute}.skip-nav:focus{top:var(--space-4);color:#fff}html[data-language=ko] [data-lang=en],html[data-language=en] [data-lang=ko]{display:none!important}html[data-language=en] body{letter-spacing:.003em}.js .reveal.reveal-armed{opacity:0;transition:opacity var(--reveal-duration) var(--ease-out-expo), transform var(--reveal-duration) var(--ease-out-expo);transition-delay:calc(var(--i,0) * 70ms);will-change:opacity, transform;transform:translateY(22px)}.js .reveal.reveal-armed.is-in{opacity:1;transform:none}.js .reveal-x.reveal-armed{opacity:0;transition:opacity var(--reveal-duration) var(--ease-out-expo), transform var(--reveal-duration) var(--ease-out-expo);transition-delay:calc(var(--i,0) * 70ms);transform:translate(-26px)}.js .reveal-x.reveal-armed.is-in{opacity:1;transform:none}.container,.container-wide{width:100%;padding-inline:var(--space-8);margin-inline:auto}.container{max-width:var(--container-max)}.container-wide{max-width:var(--container-wide)}@media (width<=760px){.container,.container-wide{padding-inline:var(--space-5)}}.btn{--btn-bg:var(--color-text);--btn-fg:var(--color-bg);align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:.95rem;font-weight:var(--weight-semibold);border:1px solid var(--btn-bg);border-radius:var(--border-radius);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;transition:transform var(--transition-base), background var(--transition-base), border-color var(--transition-base), color var(--transition-base);padding:.7rem 1.3rem;line-height:1;display:inline-flex}.btn:hover{color:var(--btn-fg);transform:translateY(-2px)}.btn .btn-arrow{transition:transform var(--transition-base)}.btn:hover .btn-arrow{transform:translate(3px)}.btn-accent{--btn-bg:var(--color-accent);--btn-fg:#fff}.btn-accent:hover{--btn-bg:var(--color-accent-hover)}.btn-ghost{--btn-bg:transparent;--btn-fg:var(--color-text);border-color:var(--color-border-strong)}.btn-ghost:hover{--btn-fg:var(--color-text);border-color:var(--color-text);background:0 0}.text-link{font-size:.95rem;font-weight:var(--weight-semibold);color:var(--color-accent);align-items:center;gap:.35em;display:inline-flex}.text-link .arrow{transition:transform var(--transition-base)}.text-link:hover{color:var(--color-accent-hover)}.text-link:hover .arrow{transform:translate(4px)}.prose{line-height:var(--leading-body)}.prose h2{font-size:var(--step-2);margin-top:var(--space-12);margin-bottom:var(--space-4);color:var(--color-text);font-weight:var(--weight-bold)}.prose h3{font-size:var(--step-1);margin-top:var(--space-8);margin-bottom:var(--space-3);color:var(--color-text);font-weight:var(--weight-semibold)}.prose p{margin-bottom:var(--space-6)}.prose ul,.prose ol{margin:var(--space-6) 0;padding-left:var(--space-8)}.prose li{margin-bottom:var(--space-2)}.prose a{color:var(--color-accent);text-underline-offset:.2em;text-decoration:underline 1px}.prose a:hover{color:var(--color-accent-hover)}.prose img{border-radius:var(--radius-soft);width:100%;margin:var(--space-8) 0}.prose strong{font-weight:var(--weight-bold);color:var(--color-text)}.prose code{background:var(--color-surface);border-radius:var(--border-radius);font-size:.9em;font-family:var(--font-mono);padding:.15rem .35rem}.prose pre{color:#f0ece6;padding:var(--space-6);border-radius:var(--radius-soft);margin:var(--space-8) 0;background:#1c1916;overflow-x:auto}.dark .prose pre{background:#0a0908}.prose pre code{background:0 0;padding:0}.prose blockquote{border:1px solid var(--color-border);border-radius:var(--radius-soft);background:var(--color-surface);padding:var(--space-4) var(--space-6);margin:var(--space-8) 0;color:var(--color-text-secondary)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js .reveal,.js .reveal-x{opacity:1!important;transition:none!important;transform:none!important}}
