*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-width:thin;scrollbar-color:var(--color-text-dimmed) transparent}body{font-family:Noto Sans,system-ui,sans-serif;line-height:1.7;color:var(--color-text);background-color:var(--color-bg)}body:before{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.07;filter:url(#grain)}:root{--color-bg: #D9D9D9;--color-surface: #FFFFFF;--color-text: #222222;--color-text-secondary: #555555;--color-text-dimmed: #888888;--color-border: #222222;--color-shadow: #0E4C92;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--max-width: 1200px;--header-height: 72px;--timeline-width: 220px;--border-width: 2px;--border-radius: 12px;--shadow-offset: 4px;--transition-fast: .15s ease}[data-theme=dark]{--color-bg: #000000;--color-surface: #111111;--color-text: #E0E0E0;--color-text-secondary: #BFBFBF;--color-text-dimmed: #888888;--color-border: #888888;--color-shadow: #4A9FE5}h1,h2,h3,h4,h5,h6{font-weight:800;letter-spacing:-.02em;line-height:1.3}a{color:inherit;text-decoration:none}::selection{background:var(--color-text);color:var(--color-bg)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-dimmed);border-radius:3px}:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.prose{font-size:var(--font-size-base);line-height:1.7;color:var(--color-text)}.prose h2{font-size:var(--font-size-2xl);margin:var(--space-2xl) 0 var(--space-md)}.prose h3{font-size:var(--font-size-xl);margin:var(--space-xl) 0 var(--space-md)}.prose p{margin-bottom:var(--space-lg)}.prose ul,.prose ol{margin-bottom:var(--space-lg);padding-left:var(--space-xl)}.prose li{margin-bottom:var(--space-xs)}.prose code{font-family:SF Mono,Fira Code,monospace;font-size:.9em;background:var(--color-bg);padding:.2em .5em;border-radius:6px;border:var(--border-width) solid var(--color-border)}.prose pre{background:var(--color-bg);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius);padding:var(--space-lg);overflow-x:auto;margin-bottom:var(--space-lg)}.prose pre code{background:none;border:none;padding:0}.prose blockquote{border-left:4px solid var(--color-border);padding-left:var(--space-lg);color:var(--color-text-secondary);margin-bottom:var(--space-lg);font-style:italic}.prose img{max-width:100%;border-radius:var(--border-radius);border:var(--border-width) solid var(--color-border);margin:var(--space-lg) 0}.prose hr{border:none;border-top:var(--border-width) solid var(--color-border);margin:var(--space-2xl) 0}.prose strong{font-weight:800}.prose .callout{background:var(--color-bg);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius);padding:var(--space-lg) var(--space-xl);margin-bottom:var(--space-2xl);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-shadow)}@media(max-width:768px){.prose .callout{border:none;border-left:4px solid var(--color-shadow);border-radius:0;box-shadow:none;padding:var(--space-sm) var(--space-lg)}}.prose mark{background:transparent;color:inherit;box-decoration-break:clone;-webkit-box-decoration-break:clone;border-bottom:3px solid var(--color-shadow);padding-bottom:1px}.theme-toggle[data-astro-cid-x3pjskd3]{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:var(--border-width) solid var(--color-border);background:var(--color-surface);border-radius:var(--border-radius);cursor:pointer;color:var(--color-text);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-shadow);transition:transform var(--transition-fast),box-shadow var(--transition-fast);overflow:hidden}.theme-toggle[data-astro-cid-x3pjskd3]:hover{transform:translate(-2px,-2px);box-shadow:calc(var(--shadow-offset) + 2px) calc(var(--shadow-offset) + 2px) 0 var(--color-shadow)}.theme-toggle[data-astro-cid-x3pjskd3]:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--color-shadow)}.theme-toggle__icon[data-astro-cid-x3pjskd3]{position:absolute;display:flex;align-items:center;justify-content:center;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1)}[data-theme=light] .theme-toggle__icon--sun[data-astro-cid-x3pjskd3]{opacity:1;transform:rotate(0) scale(1)}[data-theme=light] .theme-toggle__icon--moon[data-astro-cid-x3pjskd3]{opacity:0;transform:rotate(90deg) scale(0)}[data-theme=dark] .theme-toggle__icon--moon[data-astro-cid-x3pjskd3]{opacity:1;transform:rotate(0) scale(1)}[data-theme=dark] .theme-toggle__icon--sun[data-astro-cid-x3pjskd3]{opacity:0;transform:rotate(-90deg) scale(0)}.header[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);max-width:var(--max-width);margin:0 auto;padding:0 var(--space-2xl)}.header__name[data-astro-cid-3ef6ksr2]{font-size:var(--font-size-xl);font-weight:800;letter-spacing:-.02em;color:var(--color-text)}.header__name[data-astro-cid-3ef6ksr2]:hover{opacity:.7}.header__nav[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:var(--space-sm)}.header__icon-link[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--border-radius);border:var(--border-width) solid var(--color-border);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-shadow);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.header__icon-link[data-astro-cid-3ef6ksr2]:hover{transform:translate(-2px,-2px);box-shadow:calc(var(--shadow-offset) + 2px) calc(var(--shadow-offset) + 2px) 0 var(--color-shadow)}.header__icon-link[data-astro-cid-3ef6ksr2]:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--color-shadow)}@media(max-width:768px){.header[data-astro-cid-3ef6ksr2]{padding:0 var(--space-md)}}
