header[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;margin:0;padding:0 var(--space-4);background:var(--color-surface-primary);box-shadow:0 2px 8px #0000000d}h2[data-astro-cid-3ef6ksr2]{margin:0;font-size:var(--font-size-base)}h2[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2],h2[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{text-decoration:none}nav[data-astro-cid-3ef6ksr2]{padding:var(--space-8)}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{padding:var(--space-4) var(--space-2);color:var(--color-text-primary);border-bottom:4px solid transparent;text-decoration:none}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{text-decoration:none;border-bottom-color:var(--color-interactive-primary)}.social-links[data-astro-cid-3ef6ksr2],.social-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{display:flex}@media(max-width:720px){.social-links[data-astro-cid-3ef6ksr2]{display:none}}footer[data-astro-cid-sz7xmlte]{padding:var(--space-8) var(--space-4) var(--space-24) var(--space-4);background:var(--color-surface-secondary);color:var(--color-text-secondary);text-align:center}.social-links[data-astro-cid-sz7xmlte]{display:flex;justify-content:center;gap:var(--space-4);margin-top:var(--space-4)}.social-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{text-decoration:none;color:var(--color-text-secondary)}.social-links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--color-text-primary)}.tag-chip[data-astro-cid-q2wpt7bd]{display:inline-block;padding:var(--space-1) var(--space-3);border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-decoration:none;transition:all .2s ease;border:1px solid transparent;white-space:nowrap}.tag-chip[data-astro-cid-q2wpt7bd].blue{background:var(--color-tag-blue-bg);color:var(--color-tag-blue-text);border-color:var(--color-tag-blue-border)}.tag-chip[data-astro-cid-q2wpt7bd].blue:hover{background:var(--color-tag-blue-hover-bg);color:var(--color-tag-blue-hover-text);border-color:var(--color-tag-blue-border);transform:translateY(-1px);box-shadow:0 2px 6px #0000001a}.tag-chip[data-astro-cid-q2wpt7bd].green{background:var(--color-tag-green-bg);color:var(--color-tag-green-text);border-color:var(--color-tag-green-border)}.tag-chip[data-astro-cid-q2wpt7bd].green:hover{background:var(--color-tag-green-hover-bg);color:var(--color-tag-green-hover-text);border-color:var(--color-tag-green-border);transform:translateY(-1px);box-shadow:0 2px 6px #0000001a}.tag-chip[data-astro-cid-q2wpt7bd].purple{background:var(--color-tag-purple-bg);color:var(--color-tag-purple-text);border-color:var(--color-tag-purple-border)}.tag-chip[data-astro-cid-q2wpt7bd].purple:hover{background:var(--color-tag-purple-hover-bg);color:var(--color-tag-purple-hover-text);border-color:var(--color-tag-purple-border);transform:translateY(-1px);box-shadow:0 2px 6px #0000001a}.tag-chip[data-astro-cid-q2wpt7bd].orange{background:var(--color-tag-orange-bg);color:var(--color-tag-orange-text);border-color:var(--color-tag-orange-border)}.tag-chip[data-astro-cid-q2wpt7bd].orange:hover{background:var(--color-tag-orange-hover-bg);color:var(--color-tag-orange-hover-text);border-color:var(--color-tag-orange-border);transform:translateY(-1px);box-shadow:0 2px 6px #0000001a}.tag-chip[data-astro-cid-q2wpt7bd].gray{background:var(--color-tag-gray-bg);color:var(--color-tag-gray-text);border-color:var(--color-tag-gray-border)}.tag-chip[data-astro-cid-q2wpt7bd].gray:hover{background:var(--color-tag-gray-hover-bg);color:var(--color-tag-gray-hover-text);border-color:var(--color-tag-gray-border);transform:translateY(-1px);box-shadow:0 2px 6px #0000001a}.tag-chip[data-astro-cid-q2wpt7bd].active{background:var(--color-interactive-primary)!important;color:var(--color-text-inverse)!important;border-color:var(--color-interactive-primary)!important;box-shadow:0 2px 6px #00000026}.tag-chip[data-astro-cid-q2wpt7bd].active:hover{background:var(--color-interactive-hover)!important;border-color:var(--color-interactive-hover)!important}.tag-chip[data-astro-cid-q2wpt7bd]:focus{outline:var(--focus-ring-width) solid var(--color-interactive-primary);outline-offset:var(--focus-ring-offset)}.tag-chip[data-astro-cid-q2wpt7bd].non-clickable{cursor:default;pointer-events:none}.tag-chip[data-astro-cid-q2wpt7bd].non-clickable:hover{transform:none;box-shadow:none}*,*:before,*:after{box-sizing:border-box}*{margin:0}body{line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;font-family:var(--font-family-sans);color:var(--color-text-primary);background-color:var(--color-surface-primary)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}a{color:var(--color-text-link);text-decoration:underline}:focus-visible{outline:var(--focus-ring-width) solid var(--color-interactive-primary);outline-offset:var(--focus-ring-offset)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--primitive-white: #ffffff;--primitive-gray-50: #fafafa;--primitive-gray-100: #f5f5f5;--primitive-gray-200: #e5e5e5;--primitive-gray-300: #d4d4d4;--primitive-gray-400: #a3a3a3;--primitive-gray-500: #737373;--primitive-gray-600: #525252;--primitive-gray-700: #404040;--primitive-gray-800: #262626;--primitive-gray-900: #171717;--primitive-black: #000000;--primitive-blue-50: #eff6ff;--primitive-blue-100: #dbeafe;--primitive-blue-200: #bfdbfe;--primitive-blue-300: #93c5fd;--primitive-blue-400: #60a5fa;--primitive-blue-500: #3b82f6;--primitive-blue-600: #2563eb;--primitive-blue-700: #1d4ed8;--primitive-blue-800: #1e40af;--primitive-blue-900: #1e3a8a;--primitive-green-600: #16a34a;--primitive-red-600: #dc2626;--primitive-amber-600: #d97706}:root{--color-surface-primary: var(--primitive-white);--color-surface-secondary: var(--primitive-gray-50);--color-surface-elevated: var(--primitive-white);--color-surface-subtle: var(--primitive-gray-100);--color-text-primary: var(--primitive-gray-900);--color-text-secondary: var(--primitive-gray-600);--color-text-tertiary: var(--primitive-gray-500);--color-text-inverse: var(--primitive-white);--color-text-link: var(--primitive-blue-600);--color-border-subtle: var(--primitive-gray-200);--color-border-medium: var(--primitive-gray-300);--color-border-strong: var(--primitive-gray-400);--color-interactive-primary: var(--primitive-amber-600);--color-interactive-hover: var(--primitive-amber-600);--color-interactive-active: var(--primitive-blue-800);--color-interactive-subtle: var(--primitive-blue-50);--color-success: var(--primitive-green-600);--color-error: var(--primitive-red-600);--color-warning: var(--primitive-amber-600);--color-tag-blue-bg: var(--primitive-blue-50);--color-tag-blue-text: var(--primitive-blue-700);--color-tag-blue-border: var(--primitive-blue-200);--color-tag-blue-hover-bg: var(--primitive-blue-100);--color-tag-blue-hover-text: var(--primitive-blue-800);--color-tag-green-bg: var(--primitive-blue-50);--color-tag-green-text: var(--primitive-blue-600);--color-tag-green-border: var(--primitive-blue-100);--color-tag-green-hover-bg: var(--primitive-blue-100);--color-tag-green-hover-text: var(--primitive-blue-700);--color-tag-purple-bg: var(--primitive-blue-100);--color-tag-purple-text: var(--primitive-blue-800);--color-tag-purple-border: var(--primitive-blue-200);--color-tag-purple-hover-bg: var(--primitive-blue-200);--color-tag-purple-hover-text: var(--primitive-blue-900);--color-tag-orange-bg: var(--primitive-gray-100);--color-tag-orange-text: var(--primitive-gray-700);--color-tag-orange-border: var(--primitive-gray-200);--color-tag-orange-hover-bg: var(--primitive-gray-200);--color-tag-orange-hover-text: var(--primitive-gray-800);--color-tag-gray-bg: var(--primitive-gray-100);--color-tag-gray-text: var(--primitive-gray-700);--color-tag-gray-border: var(--primitive-gray-200);--color-tag-gray-hover-bg: var(--primitive-blue-50);--color-tag-gray-hover-text: var(--primitive-blue-600);--focus-ring-width: 2px;--focus-ring-offset: 2px}:root{--space-0: 0;--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}:root{--font-family-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700}:root{--color-surface-primary: var(--primitive-white);--color-surface-secondary: var(--primitive-gray-50);--color-surface-elevated: var(--primitive-white);--color-surface-subtle: var(--primitive-gray-100);--color-text-primary: var(--primitive-gray-900);--color-text-secondary: var(--primitive-gray-600);--color-text-tertiary: var(--primitive-gray-500);--color-text-inverse: var(--primitive-white);--color-text-link: var(--primitive-blue-600);--color-border-subtle: var(--primitive-gray-200);--color-border-medium: var(--primitive-gray-300);--color-border-strong: var(--primitive-gray-400);--color-interactive-primary: var(--primitive-blue-600);--color-interactive-hover: var(--primitive-amber-600);--color-interactive-active: var(--primitive-blue-800);--color-interactive-subtle: var(--primitive-blue-50);--color-success: var(--primitive-green-600);--color-error: var(--primitive-red-600);--color-warning: var(--primitive-amber-600)}[data-theme=light]{--color-surface-primary: var(--primitive-white);--color-surface-secondary: var(--primitive-gray-50);--color-surface-elevated: var(--primitive-white);--color-surface-subtle: var(--primitive-gray-100);--color-text-primary: var(--primitive-gray-900);--color-text-secondary: var(--primitive-gray-600);--color-text-tertiary: var(--primitive-gray-500);--color-text-inverse: var(--primitive-white);--color-text-link: var(--primitive-blue-600);--color-border-subtle: var(--primitive-gray-200);--color-border-medium: var(--primitive-gray-300);--color-border-strong: var(--primitive-gray-400);--color-interactive-primary: var(--primitive-blue-600);--color-interactive-hover: var(--primitive-amber-600);--color-interactive-active: var(--primitive-blue-800);--color-interactive-subtle: var(--primitive-blue-50);--color-success: var(--primitive-green-600);--color-error: var(--primitive-red-600);--color-warning: var(--primitive-amber-600)}[data-theme=dark]{--color-surface-primary: var(--primitive-gray-900);--color-surface-secondary: var(--primitive-gray-800);--color-surface-elevated: var(--primitive-gray-800);--color-surface-subtle: var(--primitive-gray-700);--color-text-primary: var(--primitive-gray-50);--color-text-secondary: var(--primitive-gray-400);--color-text-tertiary: var(--primitive-gray-500);--color-text-inverse: var(--primitive-gray-900);--color-text-link: var(--primitive-blue-400);--color-border-subtle: var(--primitive-gray-700);--color-border-medium: var(--primitive-gray-600);--color-border-strong: var(--primitive-gray-500);--color-interactive-primary: var(--primitive-blue-500);--color-interactive-hover: var(--primitive-blue-400);--color-interactive-active: var(--primitive-blue-300);--color-interactive-subtle: var(--primitive-blue-900);--color-success: var(--primitive-green-600);--color-error: var(--primitive-red-600);--color-warning: var(--primitive-amber-600)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-surface-primary: var(--primitive-gray-900);--color-surface-secondary: var(--primitive-gray-800);--color-surface-elevated: var(--primitive-gray-800);--color-surface-subtle: var(--primitive-gray-700);--color-text-primary: var(--primitive-gray-50);--color-text-secondary: var(--primitive-gray-400);--color-text-tertiary: var(--primitive-gray-500);--color-text-inverse: var(--primitive-gray-900);--color-text-link: var(--primitive-blue-400);--color-border-subtle: var(--primitive-gray-700);--color-border-medium: var(--primitive-gray-600);--color-border-strong: var(--primitive-gray-500);--color-interactive-primary: var(--primitive-blue-500);--color-interactive-hover: var(--primitive-blue-400);--color-interactive-active: var(--primitive-blue-300);--color-interactive-subtle: var(--primitive-blue-900);--color-success: var(--primitive-green-600);--color-error: var(--primitive-red-600);--color-warning: var(--primitive-amber-600)}}[data-theme=high-contrast]{--color-surface-primary: var(--primitive-black);--color-surface-secondary: var(--primitive-black);--color-surface-elevated: var(--primitive-gray-900);--color-surface-subtle: var(--primitive-gray-900);--color-text-primary: var(--primitive-white);--color-text-secondary: var(--primitive-white);--color-text-tertiary: var(--primitive-gray-300);--color-text-inverse: var(--primitive-black);--color-text-link: #4d9eff;--color-border-subtle: var(--primitive-white);--color-border-medium: var(--primitive-white);--color-border-strong: var(--primitive-white);--color-interactive-primary: #4d9eff;--color-interactive-hover: #79b3ff;--color-interactive-active: #a6c9ff;--color-interactive-subtle: var(--primitive-gray-800);--color-success: var(--primitive-green-600);--color-error: var(--primitive-red-600);--color-warning: var(--primitive-amber-600);--focus-ring-width: 3px;--focus-ring-offset: 2px}@media(prefers-contrast:more){:root:not([data-theme]){--color-surface-primary: var(--primitive-black);--color-surface-secondary: var(--primitive-black);--color-surface-elevated: var(--primitive-gray-900);--color-surface-subtle: var(--primitive-gray-900);--color-text-primary: var(--primitive-white);--color-text-secondary: var(--primitive-white);--color-text-tertiary: var(--primitive-gray-300);--color-text-inverse: var(--primitive-black);--color-text-link: #4d9eff;--color-border-subtle: var(--primitive-white);--color-border-medium: var(--primitive-white);--color-border-strong: var(--primitive-white);--color-interactive-primary: #4d9eff;--color-interactive-hover: #79b3ff;--color-interactive-active: #a6c9ff;--color-interactive-subtle: var(--primitive-gray-800);--color-success: var(--primitive-green-600);--color-error: var(--primitive-red-600);--color-warning: var(--primitive-amber-600);--focus-ring-width: 3px;--focus-ring-offset: 2px}}:root{--accent: var(--color-interactive-primary);--accent-dark: var(--color-interactive-hover);--box-shadow: 0 1px 3px rgb(0 0 0 / .1), 0 4px 12px rgb(0 0 0 / .15), 0 8px 24px rgb(0 0 0 / .2)}html,body{height:100%}body{display:flex;flex-direction:column;min-height:100vh}main{flex:1 0 auto}footer{flex-shrink:0}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}body{font-family:"Atkinson",var(--font-family-sans);margin:0;padding:0;text-align:left;background-size:100% 400px;word-wrap:break-word;overflow-wrap:break-word;color:var(--color-text-primary);font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);height:100%;font-weight:var(--font-weight-normal);letter-spacing:-.01em}main{width:680px;max-width:calc(100% - 2em);margin:auto;padding:var(--space-10) var(--space-4)}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-3) 0;color:var(--color-text-primary);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold);letter-spacing:-.025em}h1{font-size:var(--font-size-5xl);margin-bottom:var(--space-4)}h2{font-size:var(--font-size-4xl);margin-top:var(--space-10);margin-bottom:var(--space-4)}h3{font-size:var(--font-size-3xl);margin-top:var(--space-8);margin-bottom:var(--space-3)}h4{font-size:var(--font-size-2xl);margin-top:var(--space-6);margin-bottom:var(--space-2)}h5{font-size:var(--font-size-xl);margin-top:var(--space-5);margin-bottom:var(--space-2)}strong,b{font-weight:var(--font-weight-semibold)}a{color:var(--color-text-link);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-interactive-hover);text-decoration:underline}p{margin-bottom:var(--space-5);text-align:justify;hyphens:auto}.prose p{margin-bottom:var(--space-6)}textarea{width:100%;font-size:var(--font-size-base);border:1px solid var(--color-border-subtle);border-radius:4px;padding:var(--space-3)}input{font-size:var(--font-size-base);border:1px solid var(--color-border-subtle);border-radius:4px;padding:var(--space-3)}table{width:100%;border-collapse:collapse;margin:var(--space-6) 0}table th,table td{padding:var(--space-3);border:1px solid var(--color-border-subtle);text-align:left}table th{background-color:var(--color-surface-secondary);font-weight:var(--font-weight-semibold)}img{max-width:100%;height:auto;border-radius:6px;box-shadow:var(--box-shadow)}code{padding:var(--space-1) var(--space-2);background-color:var(--color-surface-secondary);border-radius:3px;font-size:var(--font-size-sm);font-family:var(--font-family-mono)}pre{padding:var(--space-5);border-radius:6px;background-color:var(--color-surface-secondary);border:1px solid var(--color-border-subtle);overflow-x:auto;margin:var(--space-6) 0}pre>code{all:unset;background:none;padding:0;border-radius:0;font-size:var(--font-size-sm);line-height:var(--line-height-normal)}blockquote{border-left:3px solid var(--color-interactive-primary);padding:0 0 0 var(--space-5);margin:var(--space-6) 0;font-size:var(--font-size-lg);font-style:italic;color:var(--color-text-secondary);background-color:var(--color-surface-subtle);padding:var(--space-4) var(--space-5);border-radius:0 4px 4px 0}hr{border:none;border-top:1px solid var(--color-border-subtle);margin:var(--space-10) 0}@media(max-width:720px){body{font-size:var(--font-size-base);line-height:var(--line-height-relaxed)}main{padding:var(--space-6) var(--space-4);width:calc(100% - 2em)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}
