@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;src:url(/fonts/material-symbols-outlined.woff2) format("woff2")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:1.25rem;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased}:root{--font-mono: "Fira Code", "Consolas", "Monaco", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 2rem;--space-xl: 4rem;--max-width: 75rem;--content-width: 62.5rem;--header-height: 3.75rem}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-body);font-size:100%;line-height:1.6;background-color:var(--color-bg);color:var(--color-text);transition:background-color .3s ease,color .3s ease;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;flex-direction:column;min-height:100vh}.skip-link{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:var(--color-accent);color:var(--color-accent-text);padding:var(--space-sm) var(--space-md);border-radius:0 0 8px 8px;z-index:1000;text-decoration:none;font-weight:600;transition:top .2s ease}.skip-link:focus{top:0;outline:2px solid var(--color-accent);outline-offset:2px}header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border);background-color:var(--color-bg);position:sticky;top:0;z-index:100}header .site-title-heading{margin:0;font-family:inherit;font-size:inherit;font-weight:inherit}header a.site-title{color:var(--color-text);text-decoration:none;font-size:1.5rem;font-weight:400;text-transform:uppercase;letter-spacing:.1em;transition:color .2s ease}header a.site-title:hover{color:var(--color-accent)}#theme-toggle-btn{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:50%;padding:var(--space-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:var(--color-text);transition:all .2s ease}#theme-toggle-btn:hover{background:var(--color-border);transform:scale(1.05)}#theme-toggle-btn:focus{outline:2px solid var(--color-accent);outline-offset:2px}#theme-toggle-btn:active{transform:scale(.95)}#theme-toggle-btn svg{display:none;transition:transform .3s ease}#theme-toggle-btn .sun-icon,#theme-toggle-btn .moon-icon{display:none}html[data-theme=light] #theme-toggle-btn .sun-icon,html[data-theme=dark] #theme-toggle-btn .moon-icon{display:block}main{flex-grow:1;margin:0 auto;padding:var(--space-lg);width:100%;max-width:var(--max-width)}footer{text-align:center;padding:var(--space-sm);font-family:var(--font-caption);font-size:.875rem;color:var(--color-text-muted);border-top:1px solid var(--color-border);margin-top:auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:1.3;margin-top:0;font-weight:700}.caption,.date,.meta,time{font-family:var(--font-caption)}a{color:var(--color-accent);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-accent-hover);text-decoration:underline}a:focus{outline:2px solid var(--color-accent);outline-offset:2px}img{max-width:100%;height:auto;display:block}code{font-family:var(--font-mono);background:var(--color-bg-secondary);padding:.125em .375em;border-radius:4px;font-size:.9em}pre{background:var(--color-bg-secondary);padding:var(--space-md);border-radius:8px;overflow-x:auto;border:1px solid var(--color-border)}pre code{background:none;padding:0}blockquote{border-left:4px solid var(--color-accent);margin:var(--space-lg) 0;padding:var(--space-md) var(--space-lg);background:var(--color-bg-secondary);border-radius:0 8px 8px 0;font-style:italic}::selection{background:var(--color-accent);color:var(--color-accent-text)}@media(max-width:48rem){html{font-size:15px}header{padding:var(--space-sm) var(--space-md)}header a.site-title{font-size:1rem}main{padding:var(--space-md)}footer{padding:var(--space-sm)}#theme-toggle-btn{width:2.25rem;height:2.25rem}}@media(max-width:30rem){html{font-size:14px}header{padding:var(--space-sm)}header a.site-title{font-size:.9rem}main{padding:var(--space-sm)}}@media print{*,*:before,*:after{background:#fff!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}html{font-size:12pt;line-height:1.5}body{margin:0;padding:0}header,footer,.skip-link,#theme-toggle-btn,nav{display:none!important}main{max-width:100%;padding:0;margin:0}a{text-decoration:underline}a[href^=http]:after{content:" (" attr(href) ")";font-size:.8em;font-weight:400}h1,h2,h3,h4,h5,h6{page-break-after:avoid;page-break-inside:avoid}img{max-width:100%!important;page-break-inside:avoid}p,blockquote,ul,ol{orphans:3;widows:3}blockquote,pre{page-break-inside:avoid;border:1px solid #ccc}@page{margin:2cm}}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--color-text: #1a1a2e;--color-text-muted: #64748b;--color-bg: #fafafa;--color-bg-secondary: #f1f5f9;--color-accent: #0070f3;--color-accent-hover: #0051a8;--color-accent-text: #ffffff;--color-border: #e2e8f0;--color-shadow: rgba(0, 0, 0, .1)}html[data-theme=dark]{--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-bg: #0f172a;--color-bg-secondary: #1e293b;--color-accent: #38bdf8;--color-accent-hover: #7dd3fc;--color-accent-text: #ffffff;--color-border: #334155;--color-shadow: rgba(0, 0, 0, .3)}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/playfair-display/playfair-display-regular.ttf) format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display/playfair-display-bold.ttf) format("truetype")}@font-face{font-family:Playfair Display;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/playfair-display/playfair-display-italic.ttf) format("truetype")}@font-face{font-family:Playfair Display;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/playfair-display/playfair-display-bold-italic.ttf) format("truetype")}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-sans-3/source-sans-3-regular.ttf) format("truetype")}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/source-sans-3/source-sans-3-bold.ttf) format("truetype")}@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-sans-3/source-sans-3-italic.ttf) format("truetype")}@font-face{font-family:"Source Sans 3";font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/source-sans-3/source-sans-3-bold-italic.ttf) format("truetype")}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-code-pro/source-code-pro-regular.ttf) format("truetype")}@font-face{font-family:Source Code Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/source-code-pro/source-code-pro-bold.ttf) format("truetype")}:root{--font-heading: "Playfair Display", Georgia, serif;--font-body: "Source Sans 3", system-ui, sans-serif;--font-caption: "Source Code Pro", monospace}
