:root{--color-primary: #0D1B2A;--color-secondary: #778DA9;--color-dark: #1B263B;--color-navy: #415A77;--color-light: #ECECEA;--font-sans: "Söhne", "Helvetica Neue", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", monospace;--font-serif: "Newsreader", "Georgia", "Times New Roman", serif;--text-xs: clamp(.7rem, .65rem + .25vw, .75rem);--text-sm: clamp(.8rem, .75rem + .25vw, .875rem);--text-base: clamp(.95rem, .9rem + .25vw, 1.0625rem);--text-lg: clamp(1.125rem, 1rem + .5vw, 1.25rem);--text-xl: clamp(1.35rem, 1.15rem + 1vw, 1.75rem);--text-2xl: clamp(1.75rem, 1.4rem + 1.75vw, 2.5rem);--text-3xl: clamp(2.25rem, 1.75rem + 2.5vw, 3.5rem);--text-4xl: clamp(2.75rem, 2rem + 3.75vw, 5rem);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 4rem;--space-2xl: 8rem;--content-width: 85ch;--wide-width: 110ch;--full-width: 100%;--gutter: clamp(1rem, 5vw, 3rem);--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .4s ease;--accent: #10b981;--accent-dim: #059669;--accent-glow: rgba(16, 185, 129, .15)}:root{--bg: var(--color-light);--bg-elevated: #ffffff;--bg-subtle: #e2e2e0;--text: var(--color-primary);--text-secondary: var(--color-navy);--text-tertiary: var(--color-secondary);--border: var(--color-secondary);--border-subtle: #d8d8d6}[data-theme=dark]{--bg: var(--color-primary);--bg-elevated: #162435;--bg-subtle: #1e3048;--text: var(--color-light);--text-secondary: var(--color-secondary);--text-tertiary: var(--color-navy);--border: var(--color-navy);--border-subtle: #0a1520}.bg-waves{position:relative;background-color:var(--bg);overflow:hidden}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.7;color:var(--text);background-color:var(--bg);transition:background-color var(--transition-slow),color var(--transition-slow);min-height:100vh;min-height:100dvh;overflow-x:hidden}::selection{background-color:var(--accent);color:var(--bg)}h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.2;letter-spacing:-.02em;color:var(--text)}h1{font-size:var(--text-4xl);font-weight:400;letter-spacing:-.03em}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{line-height:1.7}p+p{margin-top:1.5em}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-dim)}strong{font-weight:600}em{font-style:italic}small,.text-sm{font-size:var(--text-sm)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.mono{font-family:var(--font-mono);font-size:.9em;letter-spacing:-.02em}.serif{font-family:var(--font-serif);font-style:italic}.container{width:100%;max-width:var(--full-width);padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.container--content{max-width:calc(var(--content-width) + var(--gutter) * 2)}.container--wide{max-width:calc(var(--wide-width) + var(--gutter) * 2)}.tag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);color:var(--text-secondary)}.tag--accent{border-color:var(--accent);color:var(--accent)}.divider{width:100%;height:1px;background:var(--border);border:none}.divider--thick{height:2px;background:var(--text)}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.02em;padding:var(--space-sm) var(--space-md);border:1px solid var(--text);background:transparent;color:var(--text);cursor:pointer;transition:all var(--transition-fast)}.btn:hover{background:var(--text);color:var(--bg)}.btn--accent{border-color:var(--accent);color:var(--accent)}.btn--accent:hover{background:var(--accent);color:var(--bg)}.prose{line-height:1.7}.prose h2{margin-top:2.5em;margin-bottom:.75em}.prose h3{margin-top:2em;margin-bottom:.5em}.prose p{margin-bottom:1.5em}.prose ul,.prose ol{padding-left:1.5em;margin-bottom:1.5em}.prose li{margin-bottom:.5em}.prose blockquote{border-left:2px solid var(--accent);padding-left:var(--space-lg);margin:var(--space-lg) 0;color:var(--text-secondary);font-family:var(--font-serif);font-size:var(--text-lg);font-style:italic}.prose pre{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--bg-elevated);border:1px solid var(--border);padding:var(--space-md);overflow-x:auto;margin:var(--space-lg) 0}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--bg-subtle);padding:.15em .4em;border-radius:2px}.prose pre code{background:none;padding:0}.prose img{max-width:100%;height:auto}.prose hr{border:none;height:1px;background:var(--border);margin:var(--space-xl) 0}.prose table{width:100%;border-collapse:collapse;margin:var(--space-lg) 0;font-size:var(--text-sm)}.prose th,.prose td{text-align:left;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border)}.prose th{font-weight:600;font-family:var(--font-mono);text-transform:uppercase;font-size:var(--text-xs);letter-spacing:.05em;color:var(--text-secondary)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in var(--transition-slow) ease forwards}.animate-slide-up{animation:slide-up var(--transition-slow) ease forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.katex-display{overflow-x:auto;overflow-y:hidden;padding:var(--space-sm) 0;-webkit-overflow-scrolling:touch}.katex-display::-webkit-scrollbar{height:4px}.katex-display::-webkit-scrollbar-track{background:transparent}.katex-display::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.katex-display .katex{white-space:nowrap}@media(max-width:768px){:root{--gutter: 1.25rem}body{line-height:1.65}.katex-display{font-size:.9em}}@media print{body{background:#fff;color:#000}.no-print{display:none!important}}
