@font-face{font-family:"Spectral";src:url("/fonts/spectral-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Spectral";src:url("/fonts/spectral-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Spectral";src:url("/fonts/spectral-semibold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"Spectral";src:url("/fonts/spectral-semibold-italic.woff2") format("woff2");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:"Spectral";src:url("/fonts/spectral-bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Spectral";src:url("/fonts/spectral-bold-italic.woff2") format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:"Fira Sans";src:url("/fonts/fira-sans-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Fira Sans";src:url("/fonts/fira-sans-semibold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"JetBrains Mono";src:url("/fonts/jetbrains-mono-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"JetBrains Mono";src:url("/fonts/jetbrains-mono-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Spectral on Georgia";src:local("Georgia"),local("Gelasio Regular"),local("Gelasio-Regular");font-weight:400;font-style:normal;size-adjust:100.2%;ascent-override:105.7%;descent-override:46.2%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Georgia";src:local("Georgia Italic"),local("Georgia-Italic"),local("Gelasio Italic"),local("Gelasio-Italic");font-weight:400;font-style:italic;size-adjust:90.1%;ascent-override:117.5%;descent-override:51.4%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Georgia";src:local("Georgia Bold"),local("Georgia-Bold"),local("Gelasio Bold"),local("Gelasio-Bold");font-weight:600 700;font-style:normal;size-adjust:88.1%;ascent-override:120.2%;descent-override:52.5%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Georgia";src:local("Georgia Bold Italic"),local("Georgia-BoldItalic"),local("Gelasio Bold Italic"),local("Gelasio-BoldItalic");font-weight:600 700;font-style:italic;size-adjust:80.1%;ascent-override:132.2%;descent-override:57.8%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Times";src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Liberation Serif"),local("LiberationSerif"),local("Tinos"),local("Tinos-Regular");font-weight:400;font-style:normal;size-adjust:109.9%;ascent-override:96.4%;descent-override:42.1%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Times";src:local("Times New Roman Italic"),local("TimesNewRomanPS-ItalicMT"),local("Liberation Serif Italic"),local("LiberationSerif-Italic"),local("Tinos Italic"),local("Tinos-Italic");font-weight:400;font-style:italic;size-adjust:100.3%;ascent-override:105.5%;descent-override:46.1%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Times";src:local("Times New Roman Bold"),local("TimesNewRomanPS-BoldMT"),local("Liberation Serif Bold"),local("LiberationSerif-Bold"),local("Tinos Bold"),local("Tinos-Bold");font-weight:600 700;font-style:normal;size-adjust:105.7%;ascent-override:100.2%;descent-override:43.8%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Times";src:local("Times New Roman Bold Italic"),local("TimesNewRomanPS-BoldItalicMT"),local("Liberation Serif Bold Italic"),local("LiberationSerif-BoldItalic"),local("Tinos Bold Italic"),local("Tinos-BoldItalic");font-weight:600 700;font-style:italic;size-adjust:101.2%;ascent-override:104.7%;descent-override:45.8%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Noto";src:local("Noto Serif"),local("NotoSerif-Regular");font-weight:400;font-style:normal;size-adjust:92.8%;ascent-override:114.1%;descent-override:49.9%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Noto";src:local("Noto Serif Italic"),local("NotoSerif-Italic");font-weight:400;font-style:italic;size-adjust:87.5%;ascent-override:121.1%;descent-override:52.9%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Noto";src:local("Noto Serif Bold"),local("NotoSerif-Bold");font-weight:600 700;font-style:normal;size-adjust:89.3%;ascent-override:118.6%;descent-override:51.9%;line-gap-override:0.0%}@font-face{font-family:"Spectral on Noto";src:local("Noto Serif Bold Italic"),local("NotoSerif-BoldItalic");font-weight:600 700;font-style:italic;size-adjust:81.9%;ascent-override:129.3%;descent-override:56.5%;line-gap-override:0.0%}@font-face{font-family:"Fira Sans on Arial";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("LiberationSans"),local("Arimo"),local("Arimo-Regular");font-weight:400;font-style:normal;size-adjust:102.6%;ascent-override:91.1%;descent-override:25.8%;line-gap-override:0.0%}@font-face{font-family:"Fira Sans on Arial";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold"),local("Arimo Bold"),local("Arimo-Bold");font-weight:600 700;font-style:normal;size-adjust:95.6%;ascent-override:97.8%;descent-override:27.7%;line-gap-override:0.0%}@font-face{font-family:"Fira Sans on Roboto";src:local("Roboto"),local("Roboto-Regular");font-weight:400;font-style:normal;size-adjust:102.7%;ascent-override:91.0%;descent-override:25.8%;line-gap-override:0.0%}@font-face{font-family:"Fira Sans on Roboto";src:local("Roboto Bold"),local("Roboto-Bold");font-weight:600 700;font-style:normal;size-adjust:101.4%;ascent-override:92.2%;descent-override:26.1%;line-gap-override:0.0%}:root{--bg:#faf8f4;--bg-nav:#faf8f4;--nav-logo-fg:#1a1a1a;--bg-offset:#f2f0eb;--text:#1a1a1a;--text-muted:#555555;--text-faint:#6e6a64;--border:#cccccc;--danger:#9e2f2f;--border-muted:#aaaaaa;--link:#1a1a1a;--link-underline:#6e6a64;--link-hover:#1a1a1a;--link-hover-underline:#1a1a1a;--link-visited:#444444;--selection-bg:#1a1a1a;--selection-text:#faf8f4;--initial-glow:drop-shadow(0 0 0.28em rgba(150,105,40,0.30));--font-serif:"Spectral","Spectral on Georgia","Spectral on Times","Spectral on Noto","Georgia","Times New Roman",serif;--font-sans:"Fira Sans","Fira Sans on Arial","Fira Sans on Roboto","Helvetica Neue","Arial",sans-serif;--font-mono:"JetBrains Mono","Consolas","Menlo",monospace;--text-size:23px;--text-size-small:0.85em;--line-height:1.65;--body-max-width:800px;--page-padding:1.5rem;--nav-height:3rem;--transition-fast:0.15s ease;--transition-medium:0.28s ease;--hm-0:#e8e8e4;--hm-1:#b4b4b0;--hm-2:#787874;--hm-3:#424240;--hm-4:#1a1a1a;--rule:var(--border-muted);--font-ui:var(--font-sans);--bg-subtle:var(--bg-offset)}@media (max-width:540px){:root{--nav-height:7rem}}[data-theme="dark"]{--bg:#121212;--bg-nav:#181818;--nav-logo-fg:#d4d0c8;--bg-offset:#1a1a1a;--text:#d4d0c8;--text-muted:#8c8881;--text-faint:#8b8680;--border:#333333;--danger:#e08a84;--border-muted:#444444;--link:#d4d0c8;--link-underline:#8b8680;--link-hover:#ffffff;--link-hover-underline:#ffffff;--link-visited:#a39f98;--selection-bg:#d4d0c8;--selection-text:#121212;--initial-glow:drop-shadow(0 0 0.3em rgba(235,200,140,0.28));--bg-subtle:var(--bg-offset);--hm-0:#252524;--hm-1:#484844;--hm-2:#6e6e6a;--hm-3:#9e9e9a;--hm-4:#d4d0c8}[data-theme="cappuccino"]{--bg:#553a28;--bg-nav:#503626;--nav-logo-fg:#ead0a0;--bg-offset:#4a3324;--text:#ead0a0;--text-muted:#d0b888;--text-faint:#c6ac88;--border:#7a5d44;--danger:#ffb0a0;--border-muted:#6a4f38;--link:#ead0a0;--link-underline:#c6ac88;--link-hover:#f5e6c0;--link-hover-underline:#f5e6c0;--link-visited:#d0b888;--selection-bg:#ead0a0;--selection-text:#3a2418;--initial-glow:drop-shadow(0 0 0.3em rgba(255,216,150,0.34));--bg-subtle:var(--bg-offset);--hm-0:#4a3324;--hm-1:#6a4f38;--hm-2:#8d6c4e;--hm-3:#b09575;--hm-4:#ead0a0}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#121212;--bg-nav:#181818;--nav-logo-fg:#d4d0c8;--bg-offset:#1a1a1a;--text:#d4d0c8;--text-muted:#8c8881;--text-faint:#8b8680;--border:#333333;--danger:#e08a84;--border-muted:#444444;--link:#d4d0c8;--link-underline:#8b8680;--link-hover:#ffffff;--link-hover-underline:#ffffff;--link-visited:#a39f98;--selection-bg:#d4d0c8;--selection-text:#121212;--initial-glow:drop-shadow(0 0 0.3em rgba(235,200,140,0.28));--bg-subtle:var(--bg-offset);--hm-0:#252524;--hm-1:#484844;--hm-2:#6e6e6a;--hm-3:#9e9e9a;--hm-4:#d4d0c8}}*,*::before,*::after{box-sizing:border-box}html{background-color:var(--bg);color:var(--text);font-family:var(--font-serif);font-size:var(--text-size);line-height:var(--line-height);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 1.25rem);scroll-padding-bottom:2rem}body{margin:0;padding:0;background-color:var(--bg);color:var(--text);transition:background-color var(--transition-fast),color var(--transition-fast)}::selection{background-color:var(--selection-bg);color:var(--selection-text)}:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:2px}button:focus,a:focus,summary:focus,[role="button"]:focus{outline:none}button:focus-visible,a:focus-visible,summary:focus-visible,[role="button"]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--text);outline-offset:2px}img,video,svg,embed,object,iframe{max-width:100%;height:auto}hr{border:none;border-top:1px solid var(--border);margin:3.3rem 0}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}[hidden]{display:none!important}