:root{--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Newsreader", "Georgia", "Times New Roman", serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--leading-tight: 1.3;--leading-normal: 1.7;--leading-relaxed: 1.85;--measure: 68ch;--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;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-full: 9999px;--btn-font-size: var(--text-sm);--btn-padding: var(--space-3) var(--space-5);--transition-fast: 225ms ease;--transition-base: 375ms ease;--transition-slow: .6s ease;--ease-out: cubic-bezier(.23, 1, .32, 1);--press-duration: .14s;--color-bg: #faf8f5;--color-bg-alt: #f2ede6;--color-bg-card: #ffffff;--color-surface: #ebe5db;--color-text: #2c2825;--color-text-secondary: #6b6259;--color-text-muted: #7d756a;--color-accent: #8b6914;--color-accent-hover: #a47d1a;--color-accent-subtle: rgba(139, 105, 20, .08);--color-accent-border: rgba(139, 105, 20, .2);--color-border: #e2dbd0;--color-border-light: #ece7df;--color-link: #6b5510;--color-link-hover: #8b6914;--color-code-bg: #f5f0e8;--color-code-text: #5c4d2e;--color-success: #3a7d44;--color-error: #c0392b;--shadow-sm: 0 1px 2px rgba(44, 40, 37, .04);--shadow-md: 0 2px 8px rgba(44, 40, 37, .06), 0 1px 2px rgba(44, 40, 37, .04);--shadow-lg: 0 4px 16px rgba(44, 40, 37, .08), 0 2px 4px rgba(44, 40, 37, .04);--viz-footer-align: center}[data-theme=dark]{--color-bg: #1a1814;--color-bg-alt: #22201b;--color-bg-card: #2a2722;--color-surface: #332f29;--color-text: #e8e2d8;--color-text-secondary: #b5ad9f;--color-text-muted: #918880;--color-accent: #d4a935;--color-accent-hover: #e4bc4a;--color-accent-subtle: rgba(212, 169, 53, .1);--color-accent-border: rgba(212, 169, 53, .25);--color-border: #3d3830;--color-border-light: #332f29;--color-link: #d4a935;--color-link-hover: #e4bc4a;--color-code-bg: #2a2722;--color-code-text: #d4c9a8;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 2px 8px rgba(0, 0, 0, .25), 0 1px 2px rgba(0, 0, 0, .15);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;-webkit-text-size-adjust:100%}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}#program,#enroll{scroll-margin-top:80px}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background-color var(--transition-base),color var(--transition-base);min-height:100vh;position:relative}body:after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.028;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;mix-blend-mode:multiply}[data-theme=dark] body:after{opacity:.04;mix-blend-mode:soft-light}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:500;line-height:var(--leading-tight);color:var(--color-text);letter-spacing:-.01em}h1{font-size:var(--text-4xl);margin-bottom:var(--space-6)}h2{font-size:var(--text-2xl);margin-top:var(--space-12);margin-bottom:var(--space-4)}h3{font-size:var(--text-xl);margin-top:var(--space-8);margin-bottom:var(--space-3)}h4{font-size:var(--text-lg);margin-top:var(--space-6);margin-bottom:var(--space-2)}p{margin-bottom:var(--space-6);max-width:var(--measure)}a{color:var(--color-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}a:hover{color:var(--color-link-hover);text-decoration-color:var(--color-link-hover)}strong{font-weight:600}em{font-family:var(--font-heading);font-style:italic}blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-6);margin:var(--space-8) 0;font-family:var(--font-heading);font-size:var(--text-lg);font-style:italic;color:var(--color-text-secondary);max-width:var(--measure)}code{font-family:var(--font-mono);font-size:.9em;background-color:var(--color-code-bg);color:var(--color-code-text);padding:.15em .4em;border-radius:var(--radius-sm)}pre{background-color:var(--color-code-bg);border-radius:var(--radius-md);padding:var(--space-6);overflow-x:auto;margin:var(--space-8) 0;border:1px solid var(--color-border-light)}pre code{background:none;padding:0;font-size:var(--text-sm);line-height:1.6}ul,ol{margin-bottom:var(--space-6);padding-left:var(--space-8);max-width:var(--measure)}li{margin-bottom:var(--space-2)}li::marker{color:var(--color-accent)}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-12) 0}img{max-width:100%;height:auto;border-radius:var(--radius-md);content-visibility:auto}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 var(--space-6)}.container--narrow{max-width:720px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background-color:var(--color-accent-subtle);color:var(--color-text)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@media(max-width:768px){:root{--text-base: 1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem}.container{padding:0 var(--space-4)}}@media(max-width:480px){:root{--text-4xl: 1.875rem;--text-3xl: 1.5rem}}
