:root{--zaffre: rgb(13, 25, 163);--emerald: rgb(21, 219, 149);--dutch-white: rgb(244, 228, 193);--ecru: rgb(228, 197, 129);--white: rgb(255, 255, 255);--air-superiority-blue: rgb(108, 166, 193);--alice-blue: rgb(212, 229, 237);--aquamarine: rgb(106, 241, 194);--blue-blue: rgb(18, 36, 226);--columbia-blue: rgb(197, 220, 231);--federal-blue: rgb(9, 18, 113);--penn-blue: rgb(5, 9, 56);--phthalo-blue: rgb(11, 21, 131);--russian-violet: rgb(22, 19, 63);--vista-blue: rgb(161, 168, 247);--vivid-sky-blue: rgb(58, 198, 240);--castleton-green: rgb(9, 93, 64);--dark-emerald: rgb(5, 56, 38);--midnight-green: rgb(2, 58, 60);--shamrock-green: rgb(40, 150, 90);--peach-yellow: rgb(234, 208, 154);--cafe-noir: rgb(50, 38, 11);--saffron: rgb(232, 197, 71);--smoky-black: rgb(33, 26, 7);--smokier-black: rgb(22, 17, 5);--oxford-blue: rgb(0, 0, 34);--rich-black: rgb(2, 3, 19);--night: rgb(6, 12, 14);--gunmetal: rgb(18, 34, 43);--licorice: rgb(33, 2, 3);--charcoal: rgb(30, 59, 72);--ebony: rgb(75, 80, 67);--jet: rgb(42, 43, 42);--almond: rgb(242, 226, 210);--cherry-blossom-pink: rgb(253, 175, 188);--floral-white: rgb(252, 247, 247);--linen: rgb(249, 235, 224);--atomic-tangerine: rgb(255, 142, 71);--burgundy: rgb(119, 3, 22);--dark-drab-brown: rgb(54, 44, 7);--dark-purple: rgb(63, 39, 63);--indigo: rgb(71, 0, 122);--mauve: rgb(212, 153, 255);--periwinkle: rgb(181, 176, 232);--seal-brown: rgb(82, 31, 0);--thistle: rgb(204, 189, 219);--turkey-red: rgb(163, 0, 0);--mindaro: rgb(202, 255, 138);--aqua: rgb(59, 244, 251);--cadet-gray: rgb(144, 153, 161);--cool-gray: rgb(204, 204, 204);--aquamarine-rgb: 106, 241, 194;--castleton-grn-rgb: 9, 93, 64;--columbia-blue-rgb: 197, 220, 231;--cool-gray-rgb: 204, 204, 204;--dark-emerald-rgb: 5, 56, 38;--dutch-white-rgb: 244, 228, 193;--ecru-rgb: 228, 197, 128;--emerald-rgb: 21, 219, 149;--gunmetal-rgb: 18, 34, 43;--night-rgb: 6, 12, 14;--oxford-blue-rgb: 0, 0, 34;--saffron-rgb: 232, 197, 71;--smokier-black-rgb: 22, 17, 5;--smoky-black-rgb: 33, 26, 7;--turkey-red-rgb: 163, 0, 0;--white-rgb: 255, 255, 255;--zaffre-rgb: 13, 25, 163;--restriction-red: rgb(234, 100, 80);--restriction-red-rgb: 234, 100, 80;--restriction-red-light: rgb(234, 140, 100);--accent-purple: #883aea;--success-green: #28a745;--success-green-rgb: 40, 167, 69;--callout-orange: rgb(234, 140, 58);--callout-orange-rgb: 234, 140, 58;--cat-permissive: var(--emerald);--cat-permissive-rgb: var(--emerald-rgb);--cat-copyleft: var(--vivid-sky-blue);--cat-copyleft-rgb: 58, 198, 240;--cat-source-available: var(--saffron);--cat-source-available-rgb: var(--saffron-rgb);--cat-public-domain: var(--mauve);--cat-public-domain-rgb: 212, 153, 255;--cat-proprietary: var(--atomic-tangerine);--cat-proprietary-rgb: 255, 142, 71}:root{--pl-bg: #0d0f15;--pl-surface: #161923;--pl-surface-alt: #1c1f2b;--pl-border: #242836;--pl-border-hover: #3a3f52;--pl-text: #e8eaf0;--pl-text-muted: #8b90a0;--pl-text-faint: #7e8495;--pl-on-accent: #0d0f15;--pl-accent: var(--emerald);--pl-accent-hover: var(--aquamarine);--pl-accent-dim: var(--castleton-green);--pl-accent-ghost: rgba(var(--emerald-rgb), .08);--pl-accent-rgb: var(--emerald-rgb);--pl-accent-hover-rgb: var(--aquamarine-rgb);--pl-focus-ring: 2px solid var(--pl-accent);--pl-focus-offset: 2px;--pl-radius-sm: 4px;--pl-radius-md: 8px;--pl-radius-lg: 12px;--pl-transition-fast: .15s ease;--pl-transition: .2s ease;--pl-width-page: 72rem;--pl-width-content: 52rem;--pl-width-narrow: 42rem;--pl-gutter: 1.5rem;--pl-space-xs: .5rem;--pl-space-sm: .75rem;--pl-space-md: 1.5rem;--pl-space-lg: 2.5rem;--pl-space-xl: 4rem;--pl-space-2xl: 6rem;--pl-text-xs: .8rem;--pl-text-sm: .875rem;--pl-text-base: 1rem;--pl-text-lg: 1.1rem;--pl-text-xl: 1.25rem;--pl-text-2xl: 1.5rem;--pl-text-3xl: 2rem;--pl-text-4xl: 2.5rem;--pl-line-height: 1.7;--pl-line-height-tight: 1.3;--pl-shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--pl-shadow-md: 0 4px 16px rgba(0, 0, 0, .25);--pl-shadow-lg: 0 8px 32px rgba(0, 0, 0, .35)}.btn-primary,.btn-secondary,.btn-ghost,.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.6rem 1.25rem;border-radius:var(--pl-radius-md);font-family:inherit;font-size:.95rem;font-weight:600;line-height:1.4;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background var(--pl-transition),color var(--pl-transition),border-color var(--pl-transition),transform var(--pl-transition),box-shadow var(--pl-transition)}.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-ghost:focus-visible,.btn-outline:focus-visible{outline:var(--pl-focus-ring);outline-offset:var(--pl-focus-offset)}.btn-primary{background:var(--pl-accent);color:var(--pl-on-accent);border-color:var(--pl-accent)}.btn-primary:hover{background:var(--pl-accent-hover);border-color:var(--pl-accent-hover);color:var(--pl-on-accent);transform:translateY(-2px);box-shadow:0 4px 16px rgba(var(--pl-accent-rgb),.25)}.btn-primary:active{transform:translateY(0);box-shadow:0 2px 6px rgba(var(--pl-accent-rgb),.15)}.btn-secondary{background:transparent;color:var(--pl-text-muted);border-color:var(--pl-border)}.btn-secondary:hover{border-color:rgba(var(--pl-accent-rgb),.5);color:var(--pl-accent);background:var(--pl-accent-ghost);transform:translateY(-2px)}.btn-secondary:active{transform:translateY(0)}.btn-ghost{background:transparent;color:var(--pl-text-muted);border-color:transparent;padding:.5rem 1rem}.btn-ghost:hover{color:var(--pl-accent);background:var(--pl-accent-ghost)}.btn-ghost:active{background:rgba(var(--pl-accent-rgb),.12)}.btn-outline{background:transparent;color:var(--pl-accent);border-color:rgba(var(--pl-accent-rgb),.35)}.btn-outline:hover{background:var(--pl-accent-ghost);border-color:var(--pl-accent);color:var(--pl-accent);transform:translateY(-1px)}.btn-outline:active{transform:translateY(0)}.btn-sm{padding:.4rem .85rem;font-size:.85rem}.btn-lg{padding:.75rem 1.75rem;font-size:1.05rem}*,*:before,*:after{box-sizing:border-box}:root{--accent: var(--emerald-rgb);--accent-dark: var(--castleton-grn-rgb);--accent-text: var(--aquamarine-rgb);--bg: var(--pl-bg);--bg-surface: var(--pl-surface);--bg-border: var(--pl-border);--text: var(--pl-text);--text-muted: var(--pl-text-muted);--header-h: 3.5rem}html{font-family:var(--sl-font, "Lexend", "Noto Sans", system-ui, sans-serif);background:var(--bg);color:var(--text)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;min-height:100dvh;display:flex;flex-direction:column}.page-main{flex:1}.skip-link{position:absolute;top:-100%;left:1rem;z-index:9999;background:rgb(var(--accent));color:#0d0f15;padding:.5rem 1rem;border-radius:4px;font-weight:700;font-size:.9rem;text-decoration:none;transition:top .1s}.skip-link:focus{top:.5rem}:focus-visible{outline:2px solid rgb(var(--accent));outline-offset:2px}:focus:not(:focus-visible){outline:none}code{font-family:var(--sl-font-mono, "JetBrains Mono", "Fira Code", monospace)}a{color:rgb(var(--accent))}a:hover{color:rgb(var(--accent-text))}.site-header{position:sticky;top:0;z-index:200;background:#0d0f15eb;backdrop-filter:blur(12px);border-bottom:1px solid var(--bg-border)}.header-inner{max-width:var(--pl-width-page, 72rem);margin:0 auto;padding:0 var(--pl-gutter, 1.5rem);height:var(--header-h);display:flex;align-items:center;gap:2rem}.site-brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--text);flex-shrink:0}.brand-logo{width:2rem;height:2rem;flex-shrink:0}.brand-name{font-size:1.05rem;font-weight:400;letter-spacing:-.01em}.brand-name strong{font-weight:700}.site-nav{display:flex;align-items:center;gap:.25rem;margin-left:auto}.nav-link{padding:.4rem .75rem;border-radius:6px;font-size:.9rem;font-weight:500;text-decoration:none;color:var(--text-muted);transition:color .15s,background .15s;display:flex;align-items:center;gap:.3rem}.nav-link:hover,.nav-link.active{color:var(--text);background:#ffffff0f}.nav-github{margin-left:.5rem}.search-trigger{display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border:1px solid var(--bg-border);border-radius:8px;background:#ffffff0a;color:var(--text-muted);cursor:pointer;font-size:.8rem;font-family:inherit;transition:border-color .15s,color .15s,background .15s;margin-left:.25rem;flex-shrink:0}.search-trigger:hover{border-color:rgba(var(--accent),.4);color:var(--text);background:#ffffff0f}.search-trigger__label{font-weight:500}.search-trigger__kbd{display:inline-flex;align-items:center;gap:.1em;margin-left:.25rem;padding:.1em .35em;border-radius:4px;background:#ffffff0f;border:1px solid var(--bg-border);font-size:.7rem;font-family:inherit;color:var(--text-muted);line-height:1}.search-trigger-mobile{gap:.5rem}.search-dialog{margin:0;padding:0;border:none;background:transparent;width:100%;max-width:100%;height:100%;max-height:100%}.search-dialog[open]{display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.search-dialog::backdrop{background:#000000a6;backdrop-filter:blur(6px)}.search-dialog__frame{width:90%;max-width:560px;max-height:70vh;background:var(--bg-surface);border:1px solid var(--bg-border);border-radius:12px;box-shadow:0 16px 48px #0006,0 0 0 1px #ffffff0a;overflow-y:auto}.search-dialog :global(.pagefind-ui){--pagefind-ui-scale: .9;--pagefind-ui-primary: rgb(var(--accent));--pagefind-ui-text: var(--text);--pagefind-ui-background: transparent;--pagefind-ui-border: var(--bg-border);--pagefind-ui-tag: rgba(255, 255, 255, .06);--pagefind-ui-border-width: 1px;--pagefind-ui-border-radius: 8px;--pagefind-ui-font: var(--sl-font, "Lexend", "Noto Sans", system-ui, sans-serif)}.search-dialog :global(.pagefind-ui__search-input){background:transparent;color:var(--text);font-family:inherit}.search-dialog :global(.pagefind-ui__search-input::placeholder){color:#ced0d780}.search-dialog :global(.pagefind-ui__search-clear){color:var(--text-muted);background:transparent}.search-dialog :global(.pagefind-ui__result-link){color:var(--text)}.search-dialog :global(.pagefind-ui__result-link:hover){color:rgb(var(--accent))}.search-dialog :global(.pagefind-ui__result-excerpt){color:var(--text-muted)}.search-dialog :global(.pagefind-ui__result-excerpt mark){color:rgb(var(--accent-text));background:transparent;font-weight:600}.search-dialog :global(.pagefind-ui__message){color:var(--text)}.search-dialog :global(.pagefind-ui__button){color:var(--text);background:#ffffff0f;border-color:var(--bg-border)}.search-dialog :global(.pagefind-ui__button:hover){border-color:rgba(var(--accent),.4)}.mobile-menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:.4rem;margin-left:auto}.mobile-menu-toggle span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .2s,opacity .2s}.mobile-nav{display:flex;flex-direction:column;padding:.5rem 1.5rem 1rem;border-top:1px solid var(--bg-border);background:var(--bg-surface)}.mobile-nav[hidden]{display:none}.mobile-nav .nav-link{padding:.7rem .5rem;font-size:1rem;border-bottom:1px solid var(--bg-border)}@media(max-width:640px){.site-nav{display:none}.mobile-menu-toggle{display:flex}}.site-footer{border-top:1px solid var(--bg-border);margin-top:4rem}.footer-inner{max-width:var(--pl-width-page, 72rem);margin:0 auto;padding:var(--pl-space-lg, 2rem) var(--pl-gutter, 1.5rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;font-size:.875rem;color:var(--text-muted)}.footer-brand{display:flex;align-items:center;gap:.5rem;width:100%;margin-bottom:.75rem}.footer-logo{width:1.5rem;height:1.5rem}.footer-tagline{font-size:.85rem;color:var(--text-muted);font-style:italic}.footer-copy{margin:0}.footer-copy strong{color:var(--text)}.footer-nav{display:flex;gap:1.5rem}.footer-nav a{color:var(--text-muted);text-decoration:none}.footer-nav a:hover{color:rgb(var(--accent))}.prose{line-height:var(--pl-line-height, 1.7);max-width:none}.prose h1,.prose h2,.prose h3{color:var(--pl-accent, var(--text));line-height:var(--pl-line-height-tight, 1.3)}.prose a{color:var(--pl-accent, rgb(var(--accent)));text-decoration:underline;text-decoration-color:rgba(var(--pl-accent-rgb),.35);text-underline-offset:3px;text-decoration-thickness:1px;transition:color var(--pl-transition-fast, .15s ease),text-decoration-color var(--pl-transition-fast, .15s ease)}.prose a:hover{color:var(--pl-accent-hover, rgb(var(--accent-text)));text-decoration-color:var(--pl-accent-hover)}.prose code{background:var(--pl-surface, var(--bg-surface));border:1px solid var(--pl-border, var(--bg-border));border-radius:var(--pl-radius-sm, 4px);padding:.1em .35em;font-size:.875em}.prose pre{background:var(--pl-surface, var(--bg-surface));border:1px solid var(--pl-border, var(--bg-border));border-radius:var(--pl-radius-md, 8px);padding:1rem;overflow-x:auto}.prose pre code{background:none;border:none;padding:0}.prose blockquote{border-left:3px solid var(--pl-accent, rgb(var(--accent)));margin-left:0;padding:var(--pl-space-sm, .75rem) var(--pl-space-md, 1.25rem);color:var(--pl-text-muted, var(--text-muted));background:var(--pl-accent-ghost, transparent);border-radius:0 var(--pl-radius-md, 8px) var(--pl-radius-md, 8px) 0}.prose blockquote p:last-child{margin-bottom:0}
