/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.relative{position:relative}.top-\[0\.48rem\]{top:.48rem}.left-1\.5{left:calc(var(--spacing) * 1.5)}.z-10{z-index:10}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.flex{display:flex}.inline-flex{display:inline-flex}.h-3{height:calc(var(--spacing) * 3)}.h-full{height:100%}.w-3{width:calc(var(--spacing) * 3)}.w-full{width:100%}.max-w-\[24ch\]{max-width:24ch}.max-w-\[34ch\]{max-width:34ch}.max-w-\[68ch\]{max-width:68ch}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.flex-col{flex-direction:column}.gap-1{gap:var(--spacing)}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.rounded-full{border-radius:3.40282e38px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-\(--experience-marker-border\){border-color:var(--experience-marker-border)}.border-\(--experience-rule\){border-color:var(--experience-rule)}.border-\(--project-rule\){border-color:var(--project-rule)}.bg-\(--experience-marker-background\){background-color:var(--experience-marker-background)}.py-12{padding-block:calc(var(--spacing) * 12)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.68rem\]{font-size:.68rem}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.28em\]{--tw-tracking:.28em;letter-spacing:.28em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.text-balance{text-wrap:balance}.text-\(--experience-company\){color:var(--experience-company)}.text-\(--experience-copy\){color:var(--experience-copy)}.text-\(--experience-date\){color:var(--experience-date)}.text-\(--experience-heading\){color:var(--experience-heading)}.text-\(--experience-label\){color:var(--experience-label)}.text-\(--experience-role\){color:var(--experience-role)}.text-\(--project-category\){color:var(--project-category)}.text-\(--project-copy\){color:var(--project-copy)}.text-\(--project-heading\){color:var(--project-heading)}.text-\(--project-label\){color:var(--project-label)}.text-\(--project-name\){color:var(--project-name)}.text-\(--project-status\){color:var(--project-status)}.uppercase{text-transform:uppercase}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-2:before{content:var(--tw-content);top:calc(var(--spacing) * 2)}.before\:bottom-2:before{content:var(--tw-content);bottom:calc(var(--spacing) * 2)}.before\:left-1\.5:before{content:var(--tw-content);left:calc(var(--spacing) * 1.5)}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:bg-\(--experience-line\):before{content:var(--tw-content);background-color:var(--experience-line)}@media (width>=40rem){.sm\:shrink-0{flex-shrink:0}.sm\:flex-row{flex-direction:row}.sm\:items-baseline{align-items:baseline}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:calc(var(--spacing) * 5)}:where(.sm\:space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.sm\:py-14{padding-block:calc(var(--spacing) * 14)}.sm\:text-right{text-align:right}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-\[1\.05rem\]{font-size:1.05rem}}@media (width>=64rem){.lg\:py-16{padding-block:calc(var(--spacing) * 16)}}}@view-transition{navigation:auto}:root,[data-theme=dark]{color-scheme:dark;--background:oklch(13.8% .015 276);--surface:oklch(19.5% .021 276);--surface-raised:oklch(23.5% .026 276);--surface-hover:oklch(26.5% .03 276);--surface-muted:oklch(22.8% .022 276);--surface-muted-strong:oklch(18.2% .019 276);--surface-readable:oklch(13.8% .015 276/.62);--surface-card-readable:oklch(19.5% .021 276/.7);--header-surface:oklch(18.4% .024 276/.99);--header-border:oklch(80% .1 276/.11);--panel-surface:oklch(20.5% .023 276/.66);--panel-border:oklch(39% .04 276/.5);--text-primary:oklch(91.5% .006 286);--text-secondary:oklch(84.8% .008 286);--text-muted:oklch(74.8% .012 286);--text-metadata:oklch(64.5% .016 286);--text-disabled:oklch(48% .014 286);--text-prose:oklch(88.5% .006 286);--heading-color:oklch(92.8% .007 286);--hero-heading-emphasis:oklch(80.5% .15 276);--note-toc-color:var(--accent);--note-toc-color-strong:var(--accent-hover);--note-toc-color-muted:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--note-toc-color-muted:color-mix(in oklch, var(--text-primary) 74%, var(--accent))}}:root,[data-theme=dark]{--list-surface:var(--surface)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--list-surface:color-mix(in oklch, var(--surface) 52%, transparent)}}:root,[data-theme=dark]{--list-surface-hover:var(--surface-hover)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--list-surface-hover:color-mix(in oklch, var(--surface-hover) 76%, var(--accent-soft))}}:root,[data-theme=dark]{--list-rule:var(--divider-subtle)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--list-rule:color-mix(in oklch, var(--divider-subtle) 82%, transparent)}}:root,[data-theme=dark]{--list-rule-strong:var(--divider)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--list-rule-strong:color-mix(in oklch, var(--divider) 72%, var(--accent-border))}}:root,[data-theme=dark]{--list-title:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--list-title:color-mix(in oklch, var(--text-primary) 92%, var(--accent-hover))}}:root,[data-theme=dark]{--list-copy:var(--text-secondary)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--list-copy:color-mix(in oklch, var(--text-secondary) 88%, var(--text-muted))}}:root,[data-theme=dark]{--list-meta:var(--text-metadata);--list-meta-strong:var(--text-secondary)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--list-meta-strong:color-mix(in oklch, var(--text-secondary) 72%, var(--structure))}}:root,[data-theme=dark]{--list-tag:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--list-tag:color-mix(in oklch, var(--text-muted) 74%, var(--structure-muted))}}:root,[data-theme=dark]{--border:oklch(32% .03 276);--border-subtle:oklch(30% .026 276/.68);--border-strong:oklch(42% .045 276);--divider:oklch(32% .028 276/.62);--divider-subtle:oklch(30% .024 276/.44);--structure:oklch(76% .085 276);--structure-strong:oklch(88% .068 276);--structure-muted:oklch(67% .052 276);--structure-soft:oklch(76% .085 276/.1);--structure-border:oklch(76% .085 276/.28);--header-accent:var(--accent);--header-accent-strong:var(--accent-hover);--header-accent-muted:var(--accent)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--header-accent-muted:color-mix(in oklch, var(--accent) 74%, transparent)}}:root,[data-theme=dark]{--header-accent-soft:var(--accent-soft);--header-accent-border:var(--accent-border);--header-focus-ring:var(--header-accent-strong);--presence-active:oklch(76% .17 145);--presence-sleep:var(--text-metadata);--header-progress-track:transparent;--header-progress-fill:linear-gradient(90deg, var(--structure-muted), var(--structure-strong) 58%, var(--accent-hover))}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--header-progress-fill:linear-gradient(90deg, color-mix(in oklch, var(--structure-muted) 82%, var(--accent)), var(--structure-strong) 58%, var(--accent-hover))}}:root,[data-theme=dark]{--accent:oklch(80% .145 276);--accent-contrast:oklch(18% .025 276);--accent-hover:oklch(86% .12 276);--accent-pressed:oklch(72% .15 276);--accent-focus:oklch(84% .125 276);--accent-soft:oklch(80% .145 276/.16);--accent-border:oklch(80% .145 276/.42);--accent-glow:oklch(80% .145 276/.22);--success:oklch(78% .085 276);--warning:oklch(82% .095 286);--danger:oklch(74% .13 286);--selection:oklch(80% .145 276/.28);--overlay:oklch(8% .024 276/.86);--focus-ring:var(--accent-focus);--scrollbar-track:var(--background)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--scrollbar-track:color-mix(in oklch, var(--background) 88%, var(--surface-raised))}}:root,[data-theme=dark]{--scrollbar-thumb:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--scrollbar-thumb:color-mix(in oklch, var(--border-strong) 58%, var(--accent))}}:root,[data-theme=dark]{--scrollbar-thumb-hover:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--scrollbar-thumb-hover:color-mix(in oklch, var(--border-strong) 42%, var(--accent-hover))}}:root,[data-theme=dark]{--shadow-color:oklch(6% .02 276);--contribution-0:oklch(20.1% .009 235);--contribution-1:oklch(36% .06 178);--contribution-2:oklch(49% .085 174);--contribution-3:oklch(62% .105 170);--contribution-4:oklch(75% .12 166);--github-preview-surface:var(--panel-surface)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--github-preview-surface:color-mix(in oklch, var(--panel-surface) 88%, var(--background))}}:root,[data-theme=dark]{--github-preview-border:var(--panel-border)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--github-preview-border:color-mix(in oklch, var(--panel-border) 82%, var(--structure-border))}}:root,[data-theme=dark]{--github-preview-shadow:0 1rem 2rem -1.65rem var(--shadow-color)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--github-preview-shadow:0 1rem 2rem -1.65rem color-mix(in oklch, var(--shadow-color) 70%, transparent)}}:root,[data-theme=dark]{--github-title:var(--text-primary);--github-label:var(--text-metadata);--github-link:var(--text-secondary);--github-link-hover:var(--interaction-text-hover);--github-link-surface-hover:var(--interaction-surface);--github-link-border-hover:var(--interaction-border);--github-activity-indicator:var(--structure-muted);--experience-label:var(--text-metadata);--experience-heading:var(--heading-color);--experience-rule:oklch(30% .026 276/.8);--experience-line:oklch(30% .026 276);--experience-company:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--experience-company:color-mix(in oklch, var(--text-primary) 94%, var(--accent))}}:root,[data-theme=dark]{--experience-role:var(--text-secondary);--experience-date:var(--text-metadata);--experience-copy:var(--text-muted);--experience-active-dot:var(--accent);--experience-active-ring:var(--accent-soft);--experience-active-glow:var(--accent-glow);--experience-marker-background:var(--background);--experience-marker-border:var(--border-strong);--experience-focus-ring:var(--focus-ring);--code-surface:var(--surface)}@supports (color:color-mix(in lab, red, red)){:root,[data-theme=dark]{--code-surface:color-mix(in oklch, var(--surface) 58%, var(--background))}}:root,[data-theme=dark]{--code-border:var(--border-subtle);--code-label:var(--structure-muted);--code-copy:var(--text-muted);--code-copy-hover:var(--text-primary);--code-line:var(--text-metadata)}[data-theme=light]{color-scheme:light;--background:oklch(97.8% .002 45);--surface:oklch(99.3% .001 45);--surface-raised:oklch(100% 0 0);--surface-hover:oklch(95.3% .009 45);--surface-muted:oklch(96.1% .007 45);--surface-muted-strong:oklch(93.8% .012 45);--surface-readable:oklch(99.2% .001 45/.78);--surface-card-readable:oklch(100% 0 0/.9);--header-surface:oklch(94.1% .006 45/.99);--header-border:oklch(38% .055 42/.14);--panel-surface:oklch(99.5% .001 45/.84);--panel-border:oklch(80% .022 45/.62);--text-primary:oklch(24% .012 42);--text-secondary:oklch(36% .016 42);--text-muted:oklch(43% .016 42);--text-metadata:oklch(47% .018 42);--text-disabled:oklch(63% .012 42);--text-prose:oklch(30% .014 42);--heading-color:oklch(30% .028 42);--hero-heading-emphasis:oklch(46% .145 43);--note-toc-color:var(--accent);--note-toc-color-strong:var(--accent-hover);--note-toc-color-muted:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--note-toc-color-muted:color-mix(in oklch, var(--text-primary) 72%, var(--accent))}}[data-theme=light]{--list-surface:var(--surface)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-surface:color-mix(in oklch, var(--surface) 72%, transparent)}}[data-theme=light]{--list-surface-hover:var(--surface-raised)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-surface-hover:color-mix(in oklch, var(--surface-raised) 88%, var(--accent-soft))}}[data-theme=light]{--list-rule:var(--divider-subtle)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-rule:color-mix(in oklch, var(--divider-subtle) 86%, transparent)}}[data-theme=light]{--list-rule-strong:var(--divider)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-rule-strong:color-mix(in oklch, var(--divider) 82%, var(--accent-border))}}[data-theme=light]{--list-title:var(--heading-color)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-title:color-mix(in oklch, var(--heading-color) 84%, var(--text-primary))}}[data-theme=light]{--list-copy:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-copy:color-mix(in oklch, var(--text-primary) 76%, var(--text-secondary))}}[data-theme=light]{--list-meta:var(--text-metadata)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-meta:color-mix(in oklch, var(--text-metadata) 86%, var(--text-secondary))}}[data-theme=light]{--list-meta-strong:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-meta-strong:color-mix(in oklch, var(--text-primary) 72%, var(--accent))}}[data-theme=light]{--list-tag:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--list-tag:color-mix(in oklch, var(--text-muted) 84%, var(--text-secondary))}}[data-theme=light]{--border:oklch(83% .014 45);--border-subtle:oklch(88% .01 45/.76);--border-strong:oklch(70% .03 45);--divider:oklch(83.5% .015 45/.72);--divider-subtle:oklch(88% .01 45/.5);--structure:oklch(64% .08 45);--structure-strong:oklch(53% .11 43);--structure-muted:oklch(41% .072 42);--structure-soft:oklch(64% .08 45/.09);--structure-border:oklch(58% .09 44/.25);--header-accent:var(--accent);--header-accent-strong:var(--accent-hover);--header-accent-muted:var(--accent)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--header-accent-muted:color-mix(in oklch, var(--accent) 72%, transparent)}}[data-theme=light]{--header-accent-soft:var(--accent-soft);--header-accent-border:var(--accent-border);--header-focus-ring:var(--header-accent-strong);--presence-active:oklch(49% .15 145);--presence-sleep:var(--text-metadata);--header-progress-track:transparent;--header-progress-fill:linear-gradient(90deg, var(--structure-muted), var(--structure-strong) 58%, var(--accent-hover))}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--header-progress-fill:linear-gradient(90deg, color-mix(in oklch, var(--structure-muted) 76%, var(--accent)), var(--structure-strong) 58%, var(--accent-hover))}}[data-theme=light]{--accent:oklch(49% .145 43);--accent-contrast:oklch(98% .003 45);--accent-hover:oklch(43% .145 40);--accent-pressed:oklch(37.5% .12 38);--accent-focus:oklch(54% .13 45);--accent-soft:oklch(49% .145 43/.12);--accent-border:oklch(49% .145 43/.35);--accent-glow:oklch(49% .145 43/.18);--success:oklch(45% .105 158);--warning:oklch(50% .105 78);--danger:oklch(50% .145 30);--selection:oklch(49% .145 43/.18);--overlay:oklch(13% .025 42/.72);--scrollbar-track:var(--background)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--scrollbar-track:color-mix(in oklch, var(--background) 82%, var(--accent-soft))}}[data-theme=light]{--scrollbar-thumb:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--scrollbar-thumb:color-mix(in oklch, var(--border-strong) 66%, var(--accent))}}[data-theme=light]{--scrollbar-thumb-hover:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--scrollbar-thumb-hover:color-mix(in oklch, var(--border-strong) 48%, var(--accent-hover))}}[data-theme=light]{--shadow-color:oklch(39% .045 42);--contribution-0:oklch(91% .014 45);--contribution-1:oklch(78% .07 174);--contribution-2:oklch(64% .1 170);--contribution-3:oklch(51% .105 166);--contribution-4:oklch(39% .095 162);--github-preview-surface:var(--surface-card-readable)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--github-preview-surface:color-mix(in oklch, var(--surface-card-readable) 90%, var(--background))}}[data-theme=light]{--github-preview-border:var(--panel-border)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--github-preview-border:color-mix(in oklch, var(--panel-border) 84%, var(--structure-border))}}[data-theme=light]{--github-preview-shadow:0 .75rem 1.45rem -1.15rem var(--shadow-color)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--github-preview-shadow:0 .75rem 1.45rem -1.15rem color-mix(in oklch, var(--shadow-color) 32%, transparent)}}[data-theme=light]{--github-title:var(--heading-color);--github-label:var(--text-metadata);--github-link:var(--text-secondary);--github-link-hover:var(--interaction-text-hover);--github-link-surface-hover:var(--interaction-surface);--github-link-border-hover:var(--interaction-border);--github-activity-indicator:var(--structure-muted);--experience-label:var(--text-metadata);--experience-heading:var(--heading-color);--experience-rule:var(--divider);--experience-line:var(--divider);--experience-company:var(--heading-color)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--experience-company:color-mix(in oklch, var(--heading-color) 70%, var(--accent))}}[data-theme=light]{--experience-role:var(--text-primary);--experience-date:var(--text-metadata);--experience-copy:var(--text-muted);--experience-active-dot:var(--accent);--experience-active-ring:var(--accent-soft);--experience-active-glow:var(--accent-glow);--experience-marker-background:var(--background);--experience-marker-border:var(--border-strong);--experience-focus-ring:var(--focus-ring);--code-surface:var(--surface-muted)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--code-surface:color-mix(in oklch, var(--surface-muted) 84%, var(--surface))}}[data-theme=light]{--code-border:var(--border-subtle);--code-label:var(--structure-muted);--code-copy:var(--text-secondary);--code-copy-hover:var(--text-primary);--code-line:var(--text-metadata)}:root{--page-gutter:clamp(1rem, 5vw, 4rem);--content-width:60rem;--layout-width:min(var(--content-width), calc(100vw - var(--page-gutter) - var(--page-gutter)));--site-header-offset:5.25rem;--editorial-sticky-top:calc(var(--site-header-offset) + var(--space-6));--reading-width:70ch;--font-heading:"Space Grotesk", Inter, system-ui, sans-serif;--font-body:"Space Grotesk", Inter, system-ui, sans-serif;--font-code:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-code-block:var(--font-code);--project-label:var(--experience-label);--project-heading:var(--experience-heading);--project-rule:var(--experience-rule);--project-name:var(--experience-company);--project-category:var(--experience-role);--project-status:var(--experience-date);--project-copy:var(--experience-copy);--project-focus-ring:var(--experience-focus-ring);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--section-block-spacing:clamp(2.35rem, 4.6vw, 3.65rem);--section-heading-gap:clamp(1.35rem, 2.6vw, 2.1rem);--editorial-list-row-padding:clamp(.82rem, 1.45vw, 1.12rem);--editorial-list-row-padding-airy:clamp(.95rem, 1.75vw, 1.28rem);--editorial-list-inline-padding:clamp(.55rem, 1.08vw, .82rem);--editorial-list-item-gap:clamp(.36rem, .72vw, .52rem);--editorial-list-surface-gap:clamp(.54rem, .95vw, .72rem);--interaction-duration:.21s;--interaction-ease:cubic-bezier(.16, 1, .3, 1);--ease-out:var(--interaction-ease);--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-precision:var(--interaction-ease);--ease-instrument:cubic-bezier(.32, .72, .22, 1);--focus-duration:var(--interaction-duration);--motion-medium:var(--interaction-duration);--motion-duration-fast:.12s;--motion-duration-base:.18s;--motion-duration-slow:.32s;--motion-duration-page:.42s;--motion-press-distance:.04rem;--motion-press-scale:.994;--interaction-surface:var(--surface-hover)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-surface:color-mix(in oklch, var(--surface-hover) 76%, var(--structure-soft))}}:root{--interaction-surface-pressed:var(--surface-muted-strong)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-surface-pressed:color-mix(in oklch, var(--surface-muted-strong) 78%, var(--structure-soft))}}:root{--interaction-border:var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-border:color-mix(in oklch, var(--border-subtle) 68%, var(--structure-border))}}:root{--interaction-border-strong:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-border-strong:color-mix(in oklch, var(--border-strong) 62%, var(--structure))}}:root{--interaction-edge:var(--structure-strong)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-edge:color-mix(in oklch, var(--structure-strong) 78%, var(--text-secondary))}}:root{--interaction-sheen:oklch(100% 0 0/.045);--interaction-text-hover:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-text-hover:color-mix(in oklch, var(--text-primary) 78%, var(--structure-strong))}}:root{--interaction-text-active:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-text-active:color-mix(in oklch, var(--text-primary) 68%, var(--structure-strong))}}:root{--interaction-muted-hover:var(--text-secondary)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-muted-hover:color-mix(in oklch, var(--text-secondary) 86%, var(--structure-muted))}}:root{--interaction-surface-accent:var(--surface-hover)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-surface-accent:color-mix(in oklch, var(--surface-hover) 84%, var(--structure-soft))}}:root{--interaction-card-surface:var(--surface-hover)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-card-surface:color-mix(in oklch, var(--surface-hover) 76%, var(--structure-soft))}}:root{--interaction-card-border:var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-card-border:color-mix(in oklch, var(--border-subtle) 78%, var(--structure-border))}}:root{--interaction-chip-surface:var(--surface-hover)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-chip-surface:color-mix(in oklch, var(--surface-hover) 38%, transparent)}}:root{--interaction-chip-border:var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){:root{--interaction-chip-border:color-mix(in oklch, var(--border-subtle) 70%, var(--structure-border))}}:root{--interaction-hover-block-inset:clamp(.64rem, 1.15vw, .88rem);--interaction-hover-inline-inset:var(--editorial-list-inline-padding);--interaction-contained-surface-block-padding:clamp(.48rem, .9vw, .66rem);--interaction-contained-surface-inline-padding:var(--interaction-hover-inline-inset);--interaction-hover-shadow:inset 0 0 0 1px var(--interaction-card-border), inset 0 1px 0 var(--interaction-sheen);--transition-interactive-text:color var(--interaction-duration) var(--interaction-ease), background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease);--transition-interactive-control:background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease), box-shadow var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease), transform var(--motion-duration-fast) var(--interaction-ease);--transition-interactive-card:background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease), box-shadow var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease), outline-color var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease), transform var(--motion-duration-base) var(--interaction-ease);--transition-interactive-line:opacity var(--interaction-duration) var(--interaction-ease), transform var(--interaction-duration) var(--interaction-ease)}[data-theme=light]{--interaction-surface:var(--surface-raised)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-surface:color-mix(in oklch, var(--surface-raised) 82%, var(--accent-soft))}}[data-theme=light]{--interaction-surface-pressed:var(--surface-hover)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-surface-pressed:color-mix(in oklch, var(--surface-hover) 84%, var(--accent-soft))}}[data-theme=light]{--interaction-border:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-border:color-mix(in oklch, var(--border-strong) 82%, var(--accent-border))}}[data-theme=light]{--interaction-border-strong:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-border-strong:color-mix(in oklch, var(--border-strong) 70%, var(--accent))}}[data-theme=light]{--interaction-edge:var(--accent)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-edge:color-mix(in oklch, var(--accent) 54%, var(--structure-strong))}}[data-theme=light]{--interaction-sheen:oklch(100% 0 0/.86);--interaction-text-hover:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-text-hover:color-mix(in oklch, var(--text-primary) 72%, var(--accent-hover))}}[data-theme=light]{--interaction-muted-hover:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-muted-hover:color-mix(in oklch, var(--text-primary) 58%, var(--accent-hover))}}[data-theme=light]{--interaction-surface-accent:var(--surface-raised)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-surface-accent:color-mix(in oklch, var(--surface-raised) 88%, var(--accent-soft))}}[data-theme=light]{--interaction-card-surface:var(--surface-raised)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-card-surface:color-mix(in oklch, var(--surface-raised) 86%, var(--accent-soft))}}[data-theme=light]{--interaction-card-border:var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-card-border:color-mix(in oklch, var(--border-subtle) 68%, var(--accent-border))}}[data-theme=light]{--interaction-chip-surface:var(--surface-raised)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-chip-surface:color-mix(in oklch, var(--surface-raised) 86%, var(--accent-soft))}}[data-theme=light]{--interaction-chip-border:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){[data-theme=light]{--interaction-chip-border:color-mix(in oklch, var(--border-strong) 76%, var(--accent-border))}}[data-theme=light]{--interaction-hover-shadow:inset 0 0 0 1px var(--interaction-card-border), inset 0 1px 0 var(--interaction-sheen)}*{box-sizing:border-box;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}::-webkit-scrollbar{width:.75rem;height:.75rem}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{border:3px solid var(--scrollbar-track);background-color:var(--scrollbar-thumb);border-radius:999px;min-height:2.75rem}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:var(--scrollbar-track)}html{scroll-behavior:smooth;background:var(--background)}body{background:var(--background);min-width:320px;min-height:100vh;color:var(--text-primary);font-family:var(--font-body);font-kerning:normal;font-optical-sizing:auto;padding-top:var(--site-header-offset);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.65;position:relative}::selection{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in oklch, var(--accent) 26%, transparent)}}::selection{color:var(--text-primary)}a{color:inherit;transition:var(--transition-interactive-text);text-decoration:none}a:hover{color:var(--interaction-text-hover)}img,svg{max-width:100%;display:block}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){html.theme-changing,html.theme-changing body,html.theme-changing .site-header,html.theme-changing .profile-ambient,html.theme-changing .hero-section,html.theme-changing .blog-card,html.theme-changing .project-record,html.theme-changing .writing-record,html.theme-changing .site-theme-toggle{transition:background-color var(--motion-medium) var(--ease-out), border-color var(--motion-medium) var(--ease-out), color var(--motion-medium) var(--ease-out), opacity var(--motion-medium) var(--ease-out), outline-color var(--motion-medium) var(--ease-out)}::view-transition-old(root){animation:page-exit var(--motion-duration-base) var(--ease-precision) both}::view-transition-new(root){animation:page-enter var(--motion-duration-page) var(--ease-expo) both}.site-header{animation:motion-header-enter var(--motion-duration-slow) var(--ease-expo) both}}:is([data-interaction-surface],.photo-frame,.button,.github-contributions-link,.blog-pagination-control,.blog-pagination-page){transform:translate(0)}[data-interaction-surface],.photo-frame{transition:var(--transition-interactive-card)}.button,.github-contributions-link,.blog-pagination-control,.blog-pagination-page{transition:var(--transition-interactive-control)}:is([data-interaction-surface],.photo-frame,.button,.github-contributions-link,.blog-pagination-control,.blog-pagination-page):active{transform:translate3d(0, var(--motion-press-distance), 0) scale(var(--motion-press-scale))}.skip-link{z-index:40;border:1px solid var(--accent-border);background:var(--surface-raised);min-height:2.75rem;color:var(--accent);text-transform:uppercase;align-items:center;padding:.7rem 1rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex;position:fixed;inset:1rem auto auto 1rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}h1,h2,h3{color:var(--heading-color);font-family:var(--font-heading);letter-spacing:-.01em;overflow-wrap:anywhere;text-transform:none;text-wrap:balance;margin:0;font-weight:600;line-height:1.02}h1{font-size:clamp(1.75rem,4.4vw,3rem)}h2{font-size:clamp(1.25rem,3vw,1.9rem)}h3{font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1.08}p{text-wrap:pretty;margin:0}code{border:1px solid var(--border);background:var(--surface-muted-strong);color:var(--text-primary);font-family:var(--font-code);padding:.08rem .28rem;font-size:.9em;font-weight:700}.site-header{z-index:30;border-bottom:1px solid var(--header-border);background-color:var(--header-surface);width:100%;padding:max(clamp(.88rem, 1.2vw, 1.05rem), env(safe-area-inset-top)) max(var(--space-4), env(safe-area-inset-right)) clamp(.82rem, 1vw, .96rem) max(var(--space-4), env(safe-area-inset-left));display:block;position:fixed;top:0;left:0}.site-scroll-progress{background:var(--header-progress-track);opacity:1;pointer-events:none;height:2px;transition:opacity var(--interaction-duration) var(--interaction-ease);position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.site-scroll-progress[data-scroll-progress-hidden=true]{opacity:0}.site-scroll-progress span{background:var(--header-progress-fill);transform-origin:0;will-change:transform;width:100%;height:100%;display:block;transform:scaleX(0)}.site-header-shell{width:min(100rem, calc(100vw - var(--page-gutter) - var(--page-gutter)));gap:clamp(var(--space-3), 1.35vw, var(--space-5));grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;margin-inline:auto;display:grid}.site-identity{flex:0 auto;align-content:center;justify-self:start;min-width:0;display:grid;position:relative}.site-brand-row{white-space:nowrap;align-items:center;gap:.52rem;width:fit-content;min-width:0;display:inline-flex}.site-section-indicator{width:9ch;color:var(--text-metadata);font-family:var(--font-code);letter-spacing:0;opacity:.54;transition:color var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease);flex:0 9ch;font-size:clamp(.52rem,.48rem + .1vw,.58rem);font-weight:500;line-height:1;display:none;overflow:hidden;transform:translateY(.05rem)}.site-brand-name-compact{display:none}.site-brand{width:fit-content;min-height:2.75rem;font-family:var(--font-code);letter-spacing:0;text-transform:lowercase;color:var(--text-primary);transition:color var(--interaction-duration) var(--interaction-ease);flex:none;align-items:center;font-size:clamp(.96rem,.9rem + .26vw,1.08rem);font-weight:650;line-height:1;text-decoration:none;display:inline-flex;position:relative}.site-brand:hover{color:var(--text-primary)}.site-presence{min-width:1.5rem;min-height:2.75rem;color:var(--presence-sleep);cursor:help;border-radius:3px;flex:none;place-items:center;display:inline-grid;position:relative}.site-presence:focus-visible{outline:2px solid var(--header-focus-ring);outline-offset:2px}.site-presence [data-presence-icon]{display:none}.site-presence[data-ist-presence-state=active] [data-presence-icon=active],.site-presence[data-ist-presence-state=sleep] [data-presence-icon=sleep]{display:block}.site-presence-active-icon{border:2px solid var(--presence-active);width:.58rem;height:.58rem}@supports (color:color-mix(in lab, red, red)){.site-presence-active-icon{border:2px solid color-mix(in oklch, var(--presence-active) 82%, var(--header-surface))}}.site-presence-active-icon{background:var(--presence-active);box-shadow:0 0 0 2px var(--header-surface);border-radius:50%}.site-presence-sleep-icon{width:.82rem;height:.82rem;color:var(--presence-sleep)}.site-presence-tooltip{z-index:40;border:1px solid var(--header-border);background:var(--header-surface);width:max-content;max-width:min(18rem,100vw - 2rem);color:var(--text-secondary);font-family:var(--font-code);opacity:0;pointer-events:none;transition:opacity var(--focus-duration) var(--ease-out), transform var(--focus-duration) var(--ease-out), visibility var(--focus-duration) var(--ease-out);visibility:hidden;white-space:nowrap;border-radius:3px;padding:.55rem .65rem;font-size:.62rem;font-weight:600;line-height:1;position:absolute;top:calc(100% + .4rem);left:50%;transform:translate(-50%,-.2rem)}.site-presence:is(:hover,:focus-visible) .site-presence-tooltip{opacity:1;visibility:visible;transform:translate(-50%)}.site-header-right{justify-content:flex-end;justify-self:end;align-items:center;gap:clamp(var(--space-2), .8vw, var(--space-3));width:auto;min-width:0;display:flex}.site-nav{white-space:nowrap;justify-self:center;align-items:center;gap:clamp(.72rem,1.25vw,1.35rem);min-width:0;display:inline-flex;position:relative}.site-nav:after{background:var(--header-border);height:1px;position:absolute;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-nav:after{background:color-mix(in oklch, var(--header-border) 76%, transparent)}}.site-nav:after{content:"";pointer-events:none}.site-nav a{z-index:1;min-height:2.75rem;color:var(--text-muted);font-family:var(--font-code);text-transform:lowercase;transition:color var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease);align-items:center;padding:.64rem .08rem;font-size:clamp(.64rem,.6rem + .12vw,.72rem);font-weight:600;line-height:1;text-decoration:none;display:inline-flex;position:relative}.site-nav-label-compact{display:none}.site-nav-external{gap:.28rem}.site-nav-external-icon{opacity:.64;width:.7rem;height:.7rem;transition:opacity var(--focus-duration) var(--ease-out), transform var(--focus-duration) var(--ease-out);flex:none}.site-nav-external:is(:hover,:focus-visible) .site-nav-external-icon{opacity:1;transform:translate(.08rem,-.08rem)}.site-mobile-resume,.site-nav-menu{display:none}.site-nav a:after{background:var(--header-accent-strong);content:"";opacity:0;transform-origin:50%;height:2px;transition:opacity var(--focus-duration) var(--ease-out), transform var(--focus-duration) var(--ease-out);position:absolute;bottom:0;left:0;right:0;transform:scaleX(.35)}.site-nav a:is(:hover,:focus-visible){color:var(--interaction-text-hover)}.site-nav a:is(:hover,:focus-visible):after{background:var(--structure-muted);opacity:.52;transform:scaleX(.72)}.site-nav a[data-active]{color:var(--text-primary);opacity:1}.site-nav a[data-active]:after{background:var(--header-accent-strong);opacity:1;transform:scaleX(1)}.header-instruments{color:var(--text-secondary);font-family:var(--font-code);font-variant-numeric:tabular-nums;align-items:center;display:inline-flex}.telemetry-gauge{z-index:0;width:4.05rem;height:2.85rem;color:var(--header-accent);opacity:.52;pointer-events:none;transition:opacity var(--focus-duration) var(--ease-out), filter var(--focus-duration) var(--ease-out);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-47%)}.telemetry-gauge svg{width:100%;height:100%;overflow:visible}.telemetry-gauge-arc,.telemetry-gauge-ticks,.telemetry-gauge-redline,.telemetry-gauge-needle,.telemetry-gauge-pivot{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.telemetry-gauge-arc{opacity:.72;stroke:var(--border);stroke-width:1.1px}.telemetry-gauge-ticks{opacity:.58;stroke:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){.telemetry-gauge-ticks{stroke:color-mix(in oklch, var(--border-strong) 72%, var(--text-metadata))}}.telemetry-gauge-ticks{stroke-width:.72px}.telemetry-gauge-redline{opacity:.56;stroke:var(--danger);stroke-width:1.35px;transition:opacity var(--focus-duration) var(--ease-out)}.telemetry-gauge-needle{filter:none;stroke:var(--header-accent);stroke-width:1.35px;will-change:transform;transition:stroke var(--focus-duration) var(--ease-out), filter var(--focus-duration) var(--ease-out)}.telemetry-gauge-pivot{fill:var(--header-accent);stroke:var(--header-surface);stroke-width:.55px;transition:fill var(--focus-duration) var(--ease-out), filter var(--focus-duration) var(--ease-out)}.telemetry-rpm-readout output[data-rpm-band=active]+.telemetry-gauge{opacity:.68}.telemetry-rpm-readout output[data-rpm-band=active]+.telemetry-gauge .telemetry-gauge-needle,.telemetry-rpm-readout output[data-rpm-band=active]+.telemetry-gauge .telemetry-gauge-pivot{filter:drop-shadow(0 0 1.6px var(--header-accent-border))}.telemetry-rpm-readout output[data-rpm-band=redline]+.telemetry-gauge{opacity:.78}.telemetry-rpm-readout output[data-rpm-band=redline]+.telemetry-gauge .telemetry-gauge-redline{opacity:1}.telemetry-rpm-readout output[data-rpm-band=redline]+.telemetry-gauge .telemetry-gauge-needle,.telemetry-rpm-readout output[data-rpm-band=redline]+.telemetry-gauge .telemetry-gauge-pivot{fill:var(--danger);stroke:var(--danger);filter:drop-shadow(0 0 2px var(--danger))}@supports (color:color-mix(in lab, red, red)){.telemetry-rpm-readout output[data-rpm-band=redline]+.telemetry-gauge .telemetry-gauge-needle,.telemetry-rpm-readout output[data-rpm-band=redline]+.telemetry-gauge .telemetry-gauge-pivot{filter:drop-shadow(0 0 2px color-mix(in oklch, var(--danger) 52%, transparent))}}.telemetry-music-line[hidden]{display:none}.telemetry-music-line{width:100%;min-width:0;color:var(--structure-muted);letter-spacing:0;opacity:.72;white-space:nowrap;transition:opacity var(--focus-duration) var(--ease-out);justify-content:center;align-items:center;gap:.34rem;font-size:.58rem;font-weight:500;display:inline-flex;overflow:hidden}.telemetry-music-icon{width:.68rem;height:.68rem;color:var(--header-accent);opacity:.78;flex:none}.telemetry-music-label{color:var(--header-accent);flex:none}@supports (color:color-mix(in lab, red, red)){.telemetry-music-label{color:color-mix(in oklch, var(--header-accent) 58%, var(--text-metadata))}}.telemetry-music-label{font-size:.56rem;font-weight:700}.telemetry-music-value{min-width:0;max-width:100%;color:var(--text-metadata);text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.telemetry-music-line[data-music-telemetry-state=live] .telemetry-music-icon{opacity:.92}.telemetry-readouts{justify-content:end;justify-self:end;align-items:center;gap:clamp(var(--space-3), 1vw, var(--space-4));display:inline-flex}.telemetry-readout{grid-template-rows:auto;grid-template-columns:minmax(0,max-content);place-content:center;place-items:center;row-gap:.22rem;min-height:2.42rem;display:grid}.telemetry-readout output{z-index:1;min-width:0;color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:center;text-shadow:none;font-size:.88rem;font-weight:700;line-height:1;display:inline-block;position:relative}.telemetry-rpm-readout{isolation:isolate;grid-area:rpm;min-width:4.95rem;position:relative}.telemetry-rpm-readout output{min-width:5.2ch;color:var(--header-accent-strong);text-shadow:0 0 3px var(--header-accent-border);justify-content:center;align-items:baseline;gap:.22rem;font-size:1.03rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.telemetry-rpm-readout output{text-shadow:0 0 3px color-mix(in oklch, var(--header-accent-border) 58%, transparent)}}.telemetry-rpm-unit{color:var(--text-muted);text-shadow:none;font-size:.48rem;font-weight:500;line-height:1}.telemetry-gear-readout{grid-area:gear;grid-template-rows:auto auto;grid-template-columns:minmax(0,max-content);justify-content:center;place-items:center;row-gap:.22rem;min-width:4.85rem}.telemetry-gear-head{place-items:center;min-height:1.08rem;display:grid}.telemetry-gear-window{z-index:1;align-self:baseline;place-items:center;min-width:1.25rem;height:1.08rem;display:grid;position:relative;overflow:hidden}.telemetry-gear-readout output{min-width:1.2ch;height:1em;color:var(--header-accent-strong);text-align:center;text-shadow:0 0 3px var(--header-accent-border);font-size:.98rem;line-height:1;position:relative}@supports (color:color-mix(in lab, red, red)){.telemetry-gear-readout output{text-shadow:0 0 3px color-mix(in oklch, var(--header-accent-border) 58%, transparent)}}.telemetry-transmission{width:4.85rem;height:1.9rem;color:var(--border);opacity:.96;pointer-events:none;display:block}.telemetry-transmission-diagram{width:100%;height:100%;color:inherit;overflow:visible}.telemetry-transmission-rail{fill:none;stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.telemetry-transmission-rail{stroke:color-mix(in oklch, var(--border) 82%, var(--text-metadata))}}.telemetry-transmission-rail{stroke-linecap:round;stroke-linejoin:round;stroke-width:1.15px;transition:stroke var(--focus-duration) var(--ease-out)}.telemetry-transmission-labels text{fill:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){.telemetry-transmission-labels text{fill:color-mix(in oklch, var(--text-muted) 72%, var(--text-metadata))}}.telemetry-transmission-labels text{font-family:var(--font-code);letter-spacing:0;opacity:.62;text-anchor:middle;transition:fill var(--focus-duration) var(--ease-out), opacity var(--focus-duration) var(--ease-out);font-size:4.9px;font-weight:700}.telemetry-transmission[data-gear=R] [data-transmission-label=R],.telemetry-transmission[data-gear="1"] [data-transmission-label="1"],.telemetry-transmission[data-gear="2"] [data-transmission-label="2"],.telemetry-transmission[data-gear="3"] [data-transmission-label="3"],.telemetry-transmission[data-gear="4"] [data-transmission-label="4"],.telemetry-transmission[data-gear="5"] [data-transmission-label="5"],.telemetry-transmission[data-gear="6"] [data-transmission-label="6"]{fill:var(--header-accent-strong);opacity:.96}.telemetry-transmission-labels [data-transmission-label=R]{fill:var(--header-accent-muted);opacity:.5}.telemetry-transmission[data-gear=R] [data-transmission-label=R]{fill:var(--header-accent-strong);opacity:.96}.telemetry-transmission-indicator{fill:var(--header-accent);opacity:.94;filter:drop-shadow(0 0 2px var(--header-accent-border));transition:fill var(--focus-duration) var(--ease-out), opacity var(--focus-duration) var(--ease-out), filter var(--focus-duration) var(--ease-out)}.telemetry-transmission[data-shifting=true] .telemetry-transmission-rail{stroke:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){.telemetry-transmission[data-shifting=true] .telemetry-transmission-rail{stroke:color-mix(in oklch, var(--border-strong) 62%, var(--header-accent))}}.telemetry-transmission[data-shifting=true] .telemetry-transmission-indicator{fill:var(--header-accent-strong);opacity:1;filter:drop-shadow(0 0 3px var(--header-accent-border))}.profile-ambient-status{min-width:0;color:var(--text-secondary);flex:0 auto;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.profile-ambient-status{color:color-mix(in oklch, var(--text-secondary) 76%, var(--text-primary))}}.profile-ambient-status{text-shadow:none;text-overflow:ellipsis;text-transform:lowercase;transition:opacity var(--focus-duration) var(--ease-out);white-space:nowrap;font-size:.78rem;font-weight:600}.telemetry-current{min-width:0;color:var(--structure-muted);letter-spacing:0;opacity:.62;transition:opacity var(--focus-duration) var(--ease-out);align-items:center;gap:.34rem;font-size:.59rem;font-weight:500;display:inline-flex;overflow:hidden}.telemetry-current span{line-height:1}.telemetry-current span:first-child{color:var(--text-metadata);transition:opacity var(--focus-duration) var(--ease-out);font-size:.58rem}.telemetry-current[data-current-telemetry-kind=activity] span:first-child{display:none}.telemetry-current span:last-child{min-width:0;color:var(--text-metadata);text-overflow:ellipsis;transition:opacity var(--focus-duration) var(--ease-out);white-space:nowrap;display:inline-block;overflow:hidden}@media (prefers-reduced-motion:no-preference){.telemetry-music-line[data-music-telemetry-state=live] .telemetry-music-icon{animation:telemetry-status-pulse 5.2s var(--ease-precision) infinite}}.site-theme-toggle{width:2rem;height:2rem;color:var(--text-metadata);cursor:pointer;opacity:.78;transition:var(--transition-interactive-control);background-color:#0000;border:1px solid #0000;border-radius:3px;flex:none;place-items:center;padding:0;display:inline-grid;position:relative;inset:auto;transform:none}.site-theme-toggle:hover{border-color:var(--header-accent-border);background-color:var(--header-accent-soft);color:var(--interaction-text-hover);opacity:1}.site-header :where(a,button):focus-visible{outline-color:var(--header-focus-ring)}.site-theme-toggle:before{content:"";position:absolute;inset:-.375rem}.site-theme-toggle-track{display:none}.theme-icon{color:currentColor;opacity:0;width:.82rem;height:.82rem;transition:opacity var(--focus-duration) var(--ease-out);position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}[data-theme=dark] .theme-icon-sun,:root:not([data-theme]) .theme-icon-sun,[data-theme=light] .theme-icon-moon{opacity:1}@media (width>=65rem){.site-theme-toggle{border-color:var(--header-border);background-color:var(--header-surface);justify-content:center;align-items:center;width:auto;min-width:2.9rem;height:2rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.site-theme-toggle{background-color:color-mix(in oklch, var(--header-surface) 82%, var(--surface-muted))}}.site-theme-toggle{opacity:1;padding:.22rem .3rem}.site-theme-toggle:hover{border-color:var(--header-accent-border);background-color:var(--header-surface)}@supports (color:color-mix(in lab, red, red)){.site-theme-toggle:hover{background-color:color-mix(in oklch, var(--header-surface) 72%, var(--header-accent-soft))}}.site-theme-toggle-track{border:1px solid var(--header-border);background-color:var(--background);border-radius:2px;flex:none;width:2.3rem;height:1.15rem;display:block;position:relative}@supports (color:color-mix(in lab, red, red)){.site-theme-toggle-track{background-color:color-mix(in oklch, var(--background) 78%, var(--surface-raised))}}.site-theme-toggle-thumb{background-color:var(--header-accent);width:.82rem;height:.82rem;color:var(--accent-contrast);transition:background-color var(--interaction-duration) var(--ease-out), color var(--interaction-duration) var(--ease-out), transform var(--interaction-duration) var(--ease-out);border-radius:1px;place-items:center;display:grid;position:absolute;top:.1rem;left:.1rem;transform:translate(1.12rem)}[data-theme=light] .site-theme-toggle-thumb{transform:translate(0)}.site-theme-toggle-state-icon{opacity:0;width:.65rem;height:.65rem;transition:opacity var(--interaction-duration) var(--ease-out);position:absolute}[data-theme=light] .site-theme-toggle-state-icon-light,[data-theme=dark] .site-theme-toggle-state-icon-dark,:root:not([data-theme]) .site-theme-toggle-state-icon-dark{opacity:1}.site-theme-toggle>.theme-icon{display:none}}.button{justify-content:center;align-items:center;gap:var(--space-2);border:1px solid var(--border);min-height:3.5rem;color:var(--text-primary);letter-spacing:0;text-transform:none;transition:var(--transition-interactive-control);background-color:#0000;padding:.9rem 1.2rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.button:is(:hover,:focus-visible){border-color:var(--interaction-border-strong);background-color:var(--interaction-card-surface);box-shadow:var(--interaction-hover-shadow);color:var(--interaction-text-hover)}.button:active{border-color:var(--accent-pressed);background-color:var(--interaction-surface-pressed);color:var(--accent-pressed)}.text-link{width:fit-content;min-height:2.75rem;color:var(--text-secondary);transition:var(--transition-interactive-text);background-color:#0000;border:1px solid #0000;border-radius:3px;align-items:center;gap:.35rem;margin-inline:-.24rem;padding:.5rem .4rem;font-weight:700;line-height:1.2;display:inline-flex}.text-link:is(:hover,:focus-visible){border-color:var(--interaction-chip-border);background-color:var(--interaction-chip-surface);color:var(--interaction-text-hover)}.button-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.button-primary:is(:hover,:focus-visible){border-color:var(--accent-hover);background:var(--accent-hover);color:var(--accent-contrast)}.button-primary:active{border-color:var(--accent-pressed);background:var(--accent-pressed);color:var(--accent-contrast)}.button-secondary{border-color:var(--border-strong);color:var(--text-primary);background:0 0}.hero-section{background:var(--background);isolation:isolate;border-bottom:0;padding:clamp(2.75rem,5.2vw,4.5rem) 0 clamp(2.35rem,4.5vw,3.5rem);position:relative;overflow:hidden}.hero-section:after{width:var(--layout-width);background:var(--divider);content:"";height:1px;display:block;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hero-shell{z-index:2;width:var(--layout-width);gap:clamp(var(--space-6), 5vw, var(--space-8));align-items:start;margin:0 auto;display:grid;position:relative}.hero-copy{gap:clamp(.78rem,1.5vw,1.05rem);max-width:46rem;display:grid}.hero-copy h1{max-width:21ch;color:var(--heading-color);letter-spacing:0;text-wrap:balance;margin-bottom:clamp(.35rem,1.15vw,.78rem);font-size:clamp(2rem,5vw,3.45rem);font-weight:600;line-height:1.04}.hero-heading-emphasis{color:var(--hero-heading-emphasis)}.hero-summary{max-width:42rem;color:var(--text-secondary);text-wrap:pretty;font-size:clamp(.96rem,1.14vw,1.04rem);font-weight:430;line-height:1.62}.hero-summary-lede{max-width:38rem;color:var(--text-primary);font-size:clamp(1.03rem,1.45vw,1.18rem);font-weight:520;line-height:1.52}.hero-summary a{color:var(--text-primary);transition:color var(--focus-duration) var(--ease-out);font-weight:650;text-decoration:none;display:inline-block;position:relative}.hero-summary a:after{background:var(--accent);border-radius:999px;height:.08em;position:absolute;bottom:-.14em;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.hero-summary a:after{background:color-mix(in oklch, var(--accent) 62%, transparent)}}.hero-summary a:after{content:"";transform-origin:0;transition:background-color var(--interaction-duration) var(--interaction-ease), transform .42s var(--ease-out);transform:scaleX(.56)}.hero-summary a:hover,.hero-summary a:focus-visible{color:var(--interaction-text-hover)}.hero-summary a:hover:after,.hero-summary a:focus-visible:after{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hero-summary a:hover:after,.hero-summary a:focus-visible:after{background:color-mix(in oklch, var(--accent) 86%, transparent)}}.hero-summary a:hover:after,.hero-summary a:focus-visible:after{transform:scaleX(1)}.hero-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;width:fit-content;margin-top:clamp(.45rem,1vw,.8rem);display:flex}.hero-actions .button{min-height:3.15rem;padding:.82rem 1rem;font-size:.9rem}.hero-editorial{--profile-rule:var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){.hero-editorial{--profile-rule:color-mix(in oklch, var(--border-subtle) 76%, var(--structure-border))}}.hero-editorial{width:min(100%,22rem);max-width:22rem;padding-block:var(--space-3) var(--space-2);place-self:start;gap:0;display:grid}.hero-portrait{gap:var(--space-4);border-bottom:1px solid var(--profile-rule);width:100%;padding-bottom:var(--space-4);align-items:center;margin:0;display:flex}.hero-portrait-frame{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-muted-strong);border-radius:4px;flex:none;width:clamp(6.5rem,8.5vw,7.5rem);position:relative;overflow:hidden}.hero-portrait-frame img{object-fit:cover;width:100%;height:100%}.hero-portrait figcaption{min-width:0;color:var(--text-muted);gap:.38rem;font-size:.78rem;font-weight:500;line-height:1.35;display:grid}.hero-person-name{color:var(--text-primary);font-family:var(--font-body);font-size:clamp(1.04rem,1.35vw,1.16rem);font-weight:700;line-height:1.15}.hero-location-line{align-items:center;gap:.38rem;line-height:1.2;display:inline-flex}.hero-location-line svg{flex:none;width:.95em;height:.95em;transform:translateY(-.02em)}.hero-portrait figcaption span{transition:color var(--focus-duration) var(--ease-out), opacity var(--focus-duration) var(--ease-out)}.profile-observation-list{border-bottom:1px solid var(--profile-rule);padding-block:var(--space-4);gap:.72rem;margin:0;display:grid}.profile-observation-list div{gap:var(--space-3);grid-template-columns:minmax(5.75rem,.38fr) minmax(0,1fr);display:grid}.profile-observation-list dt,.profile-observation-list dd{min-width:0;margin:0}.profile-observation-list dt{color:var(--text-metadata);font-family:var(--font-code);font-size:.61rem;font-weight:600;line-height:1.4}.profile-observation-list dd{color:var(--text-secondary);text-wrap:pretty;transition:color var(--focus-duration) var(--ease-out);font-size:.82rem;font-weight:520;line-height:1.36}.profile-observation-list div:first-child dd{color:var(--text-primary);font-size:.88rem;font-weight:650}.profile-observation-link{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--text-muted);-webkit-text-decoration-color:var(--text-muted);text-decoration-color:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){.profile-observation-link{-webkit-text-decoration-color:color-mix(in oklch, var(--text-muted) 60%, transparent);-webkit-text-decoration-color:color-mix(in oklch, var(--text-muted) 60%, transparent);text-decoration-color:color-mix(in oklch, var(--text-muted) 60%, transparent)}}.profile-observation-link{text-underline-offset:.25rem}.profile-observation-link:hover,.profile-observation-link:focus-visible{color:var(--interaction-text-hover);-webkit-text-decoration-color:var(--interaction-text-hover);-webkit-text-decoration-color:var(--interaction-text-hover);text-decoration-color:var(--interaction-text-hover)}.profile-ambient{gap:.22rem;padding-top:.78rem;display:grid}.profile-ambient-row{min-width:0;color:var(--structure-muted);font-family:var(--font-code);align-items:center;gap:.55rem;padding-block:.28rem;display:flex}.profile-ambient-row>svg{width:.82rem;height:.82rem;color:var(--header-accent);opacity:.76;flex:none}.profile-ambient-copy{align-items:baseline;gap:.48rem;min-width:0;display:flex;overflow:hidden}.profile-ambient .profile-ambient-status{flex:none;font-size:.66rem}.profile-ambient .telemetry-current{font-size:.58rem}.profile-ambient .telemetry-music-line{opacity:.78;justify-content:flex-start;font-size:.6rem}.profile-ambient .telemetry-music-value{text-align:left}.profile-weather-status{align-items:center;gap:.42rem;display:inline-flex}.profile-weather-icon{width:.9rem;min-width:.9rem;height:.9rem;color:var(--structure-muted);opacity:.72;place-items:center;display:inline-grid}.profile-weather-icon svg{width:.86rem;height:.86rem;display:none}[data-profile-weather-row][data-weather-visual=clear] [data-profile-weather-icon=clear],[data-profile-weather-row][data-weather-visual=partly-cloudy] [data-profile-weather-icon=partly-cloudy],[data-profile-weather-row][data-weather-visual=cloudy] [data-profile-weather-icon=cloudy],[data-profile-weather-row][data-weather-visual=unknown] [data-profile-weather-icon=cloudy],[data-profile-weather-row][data-weather-visual=fog] [data-profile-weather-icon=fog],[data-profile-weather-row][data-weather-visual=rain] [data-profile-weather-icon=rain],[data-profile-weather-row][data-weather-visual=snow] [data-profile-weather-icon=snow],[data-profile-weather-row][data-weather-visual=thunder] [data-profile-weather-icon=thunder],[data-profile-weather-row][data-weather-visual=cold] [data-profile-weather-icon=cold],[data-profile-weather-row][data-weather-visual=fallback] [data-profile-weather-icon=fallback]{display:block}@media (prefers-reduced-motion:no-preference){.home-page .hero-summary,.home-page .hero-actions,.home-page .hero-editorial{animation:hero-instrument-enter .48s var(--ease-expo) both}.home-page .hero-summary{animation-delay:45ms}.home-page .hero-actions{animation-delay:.105s}.home-page .hero-editorial{animation-delay:.165s}}.content-section{z-index:0;width:var(--layout-width);padding:var(--section-block-spacing) 0;margin:0 auto;position:relative}[data-site-section-label]{scroll-margin-top:calc(var(--site-header-offset) + var(--space-2))}.editorial-section-grid{width:var(--layout-width);gap:var(--space-6);max-width:100%;margin-inline:auto;display:grid}.content-section>.editorial-section-grid{width:100%}.editorial-section-heading{align-self:start}.editorial-section-heading.section-header{margin-bottom:0}.editorial-section-heading.split-header{grid-template-columns:minmax(0,1fr);align-items:start}.editorial-section-content{min-width:0}.home-footer{width:var(--layout-width);margin:0 auto;padding:clamp(1rem,2.5vw,1.6rem) 0 clamp(1.5rem,3vw,2.35rem)}.home-footer-rule{border:0;border-top:1px solid var(--border-subtle);width:100%;height:0}@supports (color:color-mix(in lab, red, red)){.home-footer-rule{border-top:1px solid color-mix(in oklch, var(--border-subtle) 58%, transparent)}}.home-footer-rule{margin:0 0 .78rem}.home-footer p{color:var(--text-muted);margin:0}@supports (color:color-mix(in lab, red, red)){.home-footer p{color:color-mix(in oklch, var(--text-muted) 72%, transparent)}}.home-footer p{font-family:var(--font-code);letter-spacing:.01em;font-size:.62rem;font-weight:400;line-height:1.45}.section-header{gap:var(--space-4);margin-bottom:var(--section-heading-gap);display:grid}.section-header>div{padding-top:.95rem;position:relative}.section-header>div:before{background:var(--border);content:"";transform-origin:0;width:clamp(3rem,8vw,6rem);height:1px;position:absolute;top:0;left:0}.section-header>div:after{display:none}.section-header h2{letter-spacing:-.025em;text-transform:none;max-width:20ch;font-size:clamp(1.12rem,2vw,1.55rem);line-height:1.1}.split-header{align-items:end}.blog-card-meta,.blog-post-meta,.archive-list time,.archive-entry-category{color:var(--structure-muted);font-family:var(--font-code);font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;transition:color var(--focus-duration) var(--ease-out);font-size:.76rem;font-weight:500;line-height:1.32}.section-note{width:fit-content;color:var(--structure-muted);font-family:var(--font-code);letter-spacing:0;text-transform:none;font-size:.68rem;font-weight:500;line-height:1.2}.section-note span{color:var(--structure-strong);margin-right:.35rem}.timeline-live-ping{background-color:var(--experience-active-dot);animation:timeline-live-ping 3s var(--ease-expo) infinite}.timeline-live-dot{background-color:var(--experience-active-dot);box-shadow:0 0 0 3px var(--experience-active-ring), 0 0 10px var(--experience-active-glow)}.writing-register,.project-register,.blog-list,.archive-section{background:var(--border-subtle);gap:1px;display:grid}.writing-register,.project-register{border-top:1px solid var(--border-subtle);gap:0}@supports (color:color-mix(in lab, red, red)){.writing-register,.project-register{border-top:1px solid color-mix(in oklch, var(--border-subtle) 72%, transparent)}}.writing-register,.project-register{background:0 0}.project-register{margin:0;padding:0;list-style:none}.writing-register,.project-register{--record-marker-width:clamp(1.8rem, 3.2vw, 2.5rem);--record-column-gap:clamp(var(--space-2), 1.8vw, var(--space-4))}.blog-card,.archive-group,.archive-list a{background:var(--surface-card-readable,var(--surface));color:var(--text-primary);transition:var(--transition-interactive-card);border:0}.blog-card,.archive-list a{outline-offset:-1px;padding:var(--editorial-list-row-padding-airy);transition:var(--transition-interactive-card);outline:1px solid #0000;position:relative}[data-interaction-surface]:before{z-index:0;inset-block:calc(var(--hover-surface-block-inset,var(--interaction-hover-block-inset)) * -1);inset-inline:calc(var(--hover-surface-inline-start-inset,0rem) * -1) var(--hover-surface-inline-end-inset,0rem);border-radius:inherit;box-shadow:none;content:"";opacity:0;pointer-events:none;transition:background-color var(--interaction-duration) var(--interaction-ease), box-shadow var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease);background-color:#0000;border:0;position:absolute}[data-interaction-surface]{--hover-surface-block-inset:var(--interaction-hover-block-inset);--hover-surface-inline-start-inset:0rem;--hover-surface-inline-end-inset:0rem;isolation:isolate;position:relative}[data-interaction-root]{position:relative}:is(.experience-record-content,.project-record-content,.writing-record-card,.blog-card-surface){--hover-surface-block-inset:0rem;--hover-surface-inline-start-inset:0rem;--hover-surface-inline-end-inset:0rem;margin-inline:calc(var(--interaction-contained-surface-inline-padding) * -1);padding:var(--interaction-contained-surface-block-padding) var(--interaction-contained-surface-inline-padding)}.experience-record-content,.project-record-content{border-radius:3px}.experience-record-content{--interaction-contained-surface-block-padding:.25rem}.project-record-content{--interaction-contained-surface-block-padding:.35rem}[data-interaction-surface]>*{z-index:1;position:relative}[data-card-link-surface]{cursor:pointer}[data-card-title]{transition:color var(--focus-duration) var(--ease-out);text-decoration:none}.card-cover-link{z-index:2;border-radius:inherit;text-decoration:none;position:absolute;inset:0}.card-cover-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-4px}[data-card-link-surface] :is(a,button):not(.card-cover-link){z-index:3;position:relative}[data-card-link-surface] :is(.writing-record-notes,.blog-card-footer){z-index:3;pointer-events:none;position:relative}[data-card-link-surface] :is(.writing-record-notes,.blog-card-footer) :is(a,button){pointer-events:auto}.blog-prose a{color:var(--text-primary);font-weight:700}.blog-card p{color:var(--text-secondary);font-weight:500;line-height:1.58}.writing-register{border-bottom:1px solid var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){.writing-register{border-bottom:1px solid color-mix(in oklch, var(--border-subtle) 58%, transparent)}}.home-page .writing-register{border-bottom-color:#0000}.writing-record,.project-record{grid-template-columns:var(--record-marker-width) minmax(0, 1fr);column-gap:var(--record-column-gap);row-gap:var(--space-3);border-bottom:1px solid var(--border-subtle);align-items:start;display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.writing-record,.project-record{border-bottom:1px solid color-mix(in oklch, var(--border-subtle) 72%, transparent)}}.writing-record,.project-record{outline-offset:-1px;padding:var(--editorial-list-row-padding-airy) 0;transition:var(--transition-interactive-card);background:0 0;outline:1px solid #0000}.project-record{padding:var(--editorial-list-row-padding) 0}.home-page .writing-record:last-child,.project-record:last-child{border-bottom-color:#0000}.writing-record-index,.project-record-index{color:var(--structure)}@supports (color:color-mix(in lab, red, red)){.writing-record-index,.project-record-index{color:color-mix(in oklch, var(--structure) 72%, var(--text-secondary))}}.writing-record-index,.project-record-index{font-family:var(--font-code);font-variant-numeric:tabular-nums;transition:color var(--focus-duration) var(--ease-out);padding-top:.24rem;font-size:clamp(.68rem,.9vw,.78rem);font-weight:600;line-height:1}[data-interaction-root]:is(:hover,:focus-within) :is(.writing-record-index,.project-record-index){color:var(--interaction-edge)}.experience-record-content,.project-record-content{min-width:0}.experience-record-date,.project-record-status{font-family:var(--font-code);font-variant-numeric:tabular-nums}.writing-record-content,.writing-record-main,.writing-record-card{gap:var(--space-3);min-width:0;display:grid}.writing-record-content{gap:var(--editorial-list-item-gap)}.writing-record-card{gap:var(--editorial-list-surface-gap)}.writing-record-kicker{color:var(--structure-muted);font-family:var(--font-code);transition:color var(--focus-duration) var(--ease-out);flex-wrap:wrap;gap:.3rem 0;font-size:clamp(.6rem,.72vw,.66rem);font-weight:500;line-height:1.35;display:flex}.writing-record-kicker>*+:before{color:var(--border)}@supports (color:color-mix(in lab, red, red)){.writing-record-kicker>*+:before{color:color-mix(in oklch, var(--border) 74%, var(--structure-muted))}}.writing-record-kicker>*+:before{content:"•";margin-inline:.55rem}.writing-record h3{font-size:clamp(1rem,1.36vw,1.16rem);line-height:1.14}.writing-record h3 [data-card-title]{color:var(--heading-color)}.writing-record-main>p{max-width:58ch;color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.writing-record-main>p{color:color-mix(in oklch, var(--text-primary) 30%, var(--text-secondary))}}.writing-record-main>p{transition:color var(--focus-duration) var(--ease-out);font-size:clamp(.86rem,.96vw,.93rem);font-weight:500;line-height:1.44}.writing-record-notes{min-width:0;color:var(--text-primary);align-self:start;gap:.45rem;display:grid}@supports (color:color-mix(in lab, red, red)){.writing-record-notes{color:color-mix(in oklch, var(--text-primary) 38%, var(--text-secondary))}}.writing-record-label{color:var(--structure-muted);font-family:var(--font-code);font-size:.62rem;font-weight:600;line-height:1}.writing-tag-row{flex-wrap:wrap;gap:.18rem .55rem;display:flex}.writing-tag-row a{min-height:1.8rem;color:var(--text-primary);background:0 0;border:0;align-items:center;gap:.12rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.writing-tag-row a{color:color-mix(in oklch, var(--text-primary) 32%, var(--text-secondary))}}.writing-tag-row a{font-family:var(--font-code);transition:var(--transition-interactive-control);padding:.22rem 0;font-size:.58rem;font-weight:500;line-height:1;text-decoration:none}.writing-tag-row a:before{color:var(--structure-muted);content:"#";opacity:.58}@media (width>=900px){.editorial-section-grid{column-gap:var(--space-6);grid-template-columns:250px minmax(0,1fr);align-items:start}.editorial-section-heading{top:var(--editorial-sticky-top);z-index:2;position:sticky}.writing-register,.project-register{--record-marker-width:clamp(2rem, 3.5vw, 2.55rem)}.writing-record,.project-record{grid-template-columns:var(--record-marker-width) minmax(0, 1fr)}.writing-record-card{column-gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(8rem,12rem);align-items:start}.writing-record-notes{opacity:.72;max-width:14rem;transition:opacity var(--focus-duration) var(--ease-out)}}.github-contributions{--github-cell:clamp(4px, 1.2vw, 10px);--github-gap:clamp(1px, .36vw, 3px);gap:var(--space-2);max-width:100%;display:grid}.github-contributions-title{margin:0 0 var(--space-1);color:var(--github-title);font-size:.95rem;font-weight:700;line-height:1.25}.github-contribution-board{grid-template-rows:auto auto;grid-template-columns:2rem minmax(0,max-content);gap:.35rem .55rem;max-width:100%;display:grid;overflow:hidden}.github-contribution-months{grid-area:1/2;grid-template-columns:repeat(var(--github-weeks,53), var(--github-cell));gap:var(--github-gap);width:fit-content;min-height:1rem;color:var(--github-label);font-family:var(--font-code);align-items:end;font-size:.72rem;font-weight:500;line-height:1;display:grid}.github-contribution-months span{text-overflow:clip;width:max-content;min-width:0;overflow:hidden}.github-contribution-weekdays{grid-area:2/1;grid-template-rows:repeat(7, var(--github-cell));gap:var(--github-gap);color:var(--github-label);font-family:var(--font-code);font-size:.72rem;font-weight:500;line-height:1;display:grid}.github-contribution-weekdays span{height:var(--github-cell);justify-content:flex-end;align-items:center;display:flex}.github-contribution-calendar{grid-area:2/2;grid-auto-flow:column;grid-auto-columns:var(--github-cell);grid-template-rows:repeat(7, var(--github-cell));gap:var(--github-gap);contain:layout paint;width:fit-content;max-width:100%;display:grid}.github-contribution-cell{width:var(--github-cell);height:var(--github-cell);background:var(--contribution-0);border-radius:2px}.github-contribution-cell[data-level="1"]{background:var(--contribution-1)}.github-contribution-cell[data-level="2"]{background:var(--contribution-2)}.github-contribution-cell[data-level="3"]{background:var(--contribution-3)}.github-contribution-cell[data-level="4"]{background:var(--contribution-4)}.github-contributions-state{color:var(--github-label);margin:0;font-size:.86rem;font-weight:500;line-height:1.5}.github-contributions[data-github-state=loading] .github-contributions-state{padding-left:.92rem;position:relative}.github-contributions[data-github-state=loading] .github-contributions-state:before{background:var(--github-activity-indicator);content:"";opacity:.52;border-radius:999px;width:.38rem;height:.38rem;position:absolute;top:.58em;left:0}@media (prefers-reduced-motion:no-preference){.github-contributions[data-github-state=loading] .github-contributions-state:before{animation:motion-loading-pulse 1.2s var(--ease-precision) infinite}}.github-contributions-link{width:fit-content;color:var(--github-link);transition:var(--transition-interactive-text);background-color:#0000;border:1px solid #0000;border-radius:3px;align-items:center;gap:.35rem;margin-inline:-.24rem;padding:.12rem .24rem;font-size:.88rem;font-weight:700;line-height:1.2;display:inline-flex}.github-contributions-link:hover{border-color:var(--github-link-border-hover);background-color:var(--github-link-surface-hover);color:var(--github-link-hover)}.github-contributions-link svg{width:1em;height:1em;transition:color var(--focus-duration) var(--ease-out);flex:none}@keyframes page-enter{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:translate(0)}}@keyframes page-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateY(-.22rem)}}@keyframes motion-header-enter{0%{opacity:0;transform:translateY(-.55rem)}to{opacity:1;transform:translate(0)}}@keyframes motion-loading-pulse{0%,to{opacity:.38;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}@keyframes hero-instrument-enter{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translate(0)}}@keyframes photo-develop{0%{opacity:.58}to{opacity:1}}@keyframes timeline-live-ping{0%{opacity:.66;transform:scale(1)}68%,to{opacity:0;transform:scale(2.15)}}@keyframes timeline-live-breathe{0%,to{opacity:.28}50%{opacity:.62}}@keyframes telemetry-status-pulse{0%{opacity:.68}10%,54%,to{opacity:.86}64%{opacity:.72}}.contact-github-preview{display:none}.blog-card-surface>*{transition:color var(--focus-duration) var(--ease-out), opacity var(--focus-duration) var(--ease-out), transform var(--focus-duration) var(--ease-precision)}.photo-log{width:100%}.photo-grid{--photo-row-height:clamp(8.5rem, 17vw, 13rem);gap:var(--space-2);flex-wrap:wrap;align-items:stretch;display:flex}.photo-log-preview .photo-grid{--photo-row-height:clamp(7.5rem, 13vw, 10rem)}.photo-grid:after{content:"";flex:999 1 0;min-width:18rem}.photo-frame{min-width:min(100%, calc(var(--photo-row-height) * var(--aspect) * .78));height:var(--photo-row-height);flex:calc(var(--aspect) * 100) 1 calc(var(--photo-row-height) * var(--aspect));outline-offset:-1px;background:var(--surface);color:inherit;cursor:pointer;transition:var(--transition-interactive-card);border:0;outline:1px solid #0000;padding:0;position:relative;overflow:hidden}.photo-frame img{object-fit:cover;width:100%;height:100%;transition:opacity var(--focus-duration) var(--ease-out)}@media (prefers-reduced-motion:no-preference){.photo-frame img{animation:photo-develop .42s var(--ease-precision) both;animation-delay:calc(var(--photo-index,0) * 45ms)}}@media (hover:hover){.photo-frame:hover{outline-color:var(--interaction-card-border);box-shadow:var(--interaction-hover-shadow)}.photo-frame:hover img{opacity:.92}}.photo-frame:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.photo-lightbox{width:min(100vw - 2rem,68rem);max-width:68rem;max-height:min(100dvh - 2rem,48rem);color:var(--text-primary);background:0 0;border:0;padding:0}.photo-lightbox::backdrop{background:var(--overlay)}.photo-lightbox[open]{gap:var(--space-3);grid-template-columns:3.5rem minmax(0,1fr) 3.5rem;align-items:center;display:grid}.photo-lightbox figure{gap:var(--space-3);margin:0;display:grid}.photo-lightbox img{object-fit:contain;width:100%;max-height:calc(100dvh - 9rem)}.photo-lightbox figcaption{gap:var(--space-1);color:var(--text-secondary);font-size:.9rem;line-height:1.45;display:grid}.photo-lightbox figcaption strong{color:var(--text-primary);font-size:.98rem;line-height:1.2}.photo-lightbox figcaption time{color:var(--structure-muted);font-family:var(--font-code);font-size:.72rem}.photo-lightbox button{border:1px solid var(--border);background:var(--background);min-width:2.75rem;min-height:2.75rem}@supports (color:color-mix(in lab, red, red)){.photo-lightbox button{background:color-mix(in oklch, var(--background) 88%, var(--surface))}}.photo-lightbox button{color:var(--text-secondary);cursor:pointer;padding:var(--space-2);transition:var(--transition-interactive-control);font-size:.68rem;font-weight:700;line-height:1}.photo-lightbox button:hover{border-color:var(--interaction-border-strong);background-color:var(--interaction-surface);color:var(--text-primary)}.photo-lightbox-close{top:max(var(--space-4), env(safe-area-inset-top));right:max(var(--space-4), env(safe-area-inset-right));position:fixed}.photo-lightbox-nav{align-self:center}.photos-empty{gap:var(--space-2);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:var(--editorial-list-row-padding-airy) 0;display:grid}.photos-empty p{max-width:42rem;color:var(--text-primary);font-size:clamp(.92rem,1.08vw,1rem);font-weight:600;line-height:1.42}.photos-empty span{max-width:42rem;color:var(--text-secondary);font-size:.88rem;line-height:1.46}.photos-empty-compact{padding:var(--editorial-list-row-padding) 0}.contact-section{width:var(--layout-width);gap:var(--space-5);border-top:1px solid var(--border);max-width:none;margin:0 auto;padding-inline:0;display:grid}.contact-section h2{max-width:12ch}.contact-directory{gap:0;margin:0;display:grid}.contact-directory-row{gap:var(--space-3);border-top:1px solid var(--border-subtle);grid-template-columns:minmax(6.65rem,.45fr) minmax(0,1fr);display:grid;position:relative}@supports (color:color-mix(in lab, red, red)){.contact-directory-row{border-top:1px solid color-mix(in oklch, var(--border-subtle) 76%, var(--structure-border))}}.contact-directory-row{cursor:pointer;isolation:isolate;min-height:3.25rem;transition:var(--transition-interactive-card);align-items:center;padding:.18rem 0}.contact-directory-row:before{z-index:0;inset:0 calc(var(--interaction-contained-surface-inline-padding) * -1);box-shadow:none;content:"";opacity:0;pointer-events:none;transition:background-color var(--interaction-duration) var(--interaction-ease), box-shadow var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease);background-color:#0000;border-radius:3px;position:absolute}.contact-directory-row>*{z-index:1;position:relative}.contact-directory dt,.contact-directory dd{min-width:0;margin:0}.contact-directory dt{color:var(--structure-muted);font-family:var(--font-code);font-size:.64rem;font-weight:700;line-height:1.32}.contact-directory dd{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.contact-directory dd{color:color-mix(in oklch, var(--text-primary) 52%, var(--structure-muted))}}.contact-directory dd{text-wrap:pretty;font-size:.86rem;font-weight:500;line-height:1.28}.contact-directory-cover{inset:0 calc(var(--interaction-contained-surface-inline-padding) * -1);z-index:2;border-radius:3px;text-decoration:none;display:block;position:absolute}.contact-directory-cover:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-3px}.contact-directory-row:is(:hover,:focus-within):before{background-color:var(--interaction-card-surface);box-shadow:var(--interaction-hover-shadow);opacity:1}.contact-directory-row:is(:hover,:focus-within) dt{color:var(--interaction-text-hover)}.contact-directory-row:is(:hover,:focus-within) dd{color:var(--interaction-muted-hover)}.button svg,.text-link svg,.blog-post-meta svg,.blog-card-meta svg{width:1em;height:1em;transition:color var(--focus-duration) var(--ease-out);flex:none}[data-interaction-root]:focus-within,[data-interaction-surface]:focus-within{color:var(--interaction-text-hover)}[data-interaction-root]:focus-within [data-interaction-surface]:before,[data-interaction-surface]:focus-within:before{background-color:var(--interaction-card-surface);box-shadow:var(--interaction-hover-shadow);opacity:1}@media (hover:hover) and (pointer:fine){[data-interaction-surface]:hover{color:var(--interaction-text-hover)}[data-interaction-surface]:hover:before{background-color:var(--interaction-card-surface);box-shadow:var(--interaction-hover-shadow);opacity:1}}[data-interaction-surface]:active:before{background-color:var(--interaction-surface-pressed)}.experience-record-content:is(:hover,:focus-within) [data-card-title],.project-record-content:is(:hover,:focus-within) [data-card-title],.writing-record-card:is(:hover,:focus-within) [data-card-title],.blog-card-surface:is(:hover,:focus-within) h2,.blog-card-surface:is(:hover,:focus-within) [data-card-title],.archive-list a:is(:hover,:focus-visible,:focus-within) strong{color:var(--interaction-text-hover)}.experience-record-content:is(:hover,:focus-within) :is(.experience-record-date,.experience-record-role),.project-record-content:is(:hover,:focus-within) :is(.project-record-status,.project-record-category),.archive-list a:is(:hover,:focus-visible,:focus-within) :is(time,.archive-entry-category){color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.experience-record-content:is(:hover,:focus-within) :is(.experience-record-date,.experience-record-role),.project-record-content:is(:hover,:focus-within) :is(.project-record-status,.project-record-category),.archive-list a:is(:hover,:focus-visible,:focus-within) :is(time,.archive-entry-category){color:color-mix(in oklch, var(--text-primary) 46%, var(--structure-muted))}}.experience-record-content:is(:hover,:focus-within) .experience-record-summary,.project-record-content:is(:hover,:focus-within) .project-record-summary,.writing-record-card:is(:hover,:focus-within) .writing-record-main>p,.blog-card-surface:is(:hover,:focus-within) p{color:var(--interaction-muted-hover)}.writing-record-card:is(:hover,:focus-within) .writing-record-notes{opacity:1}.writing-tag-row a:hover,.writing-tag-row a:focus-visible{color:var(--interaction-text-hover)}.writing-tag-row a:is(:hover,:focus-visible):before{color:var(--interaction-edge);opacity:.9}.blog-card-surface:is(:hover,:focus-within){color:var(--text-primary)}.blog-card-surface:is(:hover,:focus-within) .blog-card-arrow{color:var(--interaction-text-hover);opacity:.82;transform:translate(.12rem,-.12rem)}.blog-card:is(:hover,:focus-within) .blog-card-meta{color:var(--list-meta-strong)}.blog-card-surface:is(:hover,:focus-within) .blog-card-tags{color:var(--interaction-muted-hover)}@media (width>=760px) and (hover:hover) and (pointer:fine){.contact-github-preview{z-index:20;border:1px solid var(--github-preview-border);background:var(--github-preview-surface);width:min(39rem,100vw - 2rem);box-shadow:var(--github-preview-shadow);color:var(--text-primary);contain:layout paint;opacity:0;padding:var(--space-4);pointer-events:none;transition:opacity var(--focus-duration) var(--ease-out), transform var(--focus-duration) var(--ease-out), visibility var(--focus-duration) var(--ease-out);visibility:hidden;display:block;position:absolute;bottom:calc(100% + .7rem);left:50%;transform:translate(-50%,.35rem)}.contact-directory-row-preview:hover .contact-github-preview,.contact-directory-row-preview:focus-within .contact-github-preview{opacity:1;visibility:visible;transform:translate(-50%)}.contact-github-preview .github-contributions{--github-cell:8px;--github-gap:2px;gap:var(--space-2)}.contact-github-preview .github-contributions-state{font-size:.72rem}}.blog-hero,.blog-post-hero{width:var(--layout-width);margin:0 auto;padding:clamp(3.25rem,7vw,5.25rem) 0 clamp(1.6rem,4vw,2.75rem)}.blog-post-hero{padding:clamp(1.2rem,2.9vw,2rem) 0 0}.blog-hero>div,.blog-post-hero-inner{gap:var(--space-4);margin-inline:auto;display:grid}.blog-hero>div{max-width:var(--reading-width)}.blog-post-hero-inner{gap:clamp(.42rem,.9vw,.72rem);max-width:min(100%,68ch);margin-inline:auto}.blog-hero h1{max-width:16ch;font-size:clamp(2rem,5vw,3.25rem)}.blog-post-hero h1{max-width:100%;font-family:var(--font-reading-ui,var(--font-heading));letter-spacing:0;margin:0;font-size:clamp(1.58rem,3.8vw,2.35rem);line-height:1.08}.blog-hero p,.blog-post-hero p{color:var(--text-prose);font-size:clamp(1rem,1.45vw,1.14rem);font-weight:500;line-height:1.55}.blog-hero p{max-width:42rem}.blog-post-hero p{max-width:100%}body.blog-index-page{--content-width:64rem}body.blog-index-page .blog-hero{padding:clamp(1.3rem,3.2vw,2.1rem) 0 clamp(.35rem,.9vw,.55rem)}body.blog-index-page .blog-hero>.blog-hero-shell{--blog-hero-rhythm:clamp(.34rem, .86vw, .54rem);gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-items:end;max-width:min(100%,64rem);margin-inline:0}.blog-hero-copy{gap:var(--blog-hero-rhythm,var(--space-4));min-width:0;display:grid}body.blog-index-page .blog-hero h1{color:var(--text-primary);letter-spacing:0;font-size:2.18rem;font-weight:700}body.blog-index-page .blog-hero p{max-width:34rem;color:var(--text-prose);font-size:.98rem;font-weight:400;line-height:1.45}.blog-hero-heading-row{gap:var(--space-4);justify-content:space-between;align-items:end;min-width:0;display:flex}.blog-hero-heading-row h1{flex:0 auto}body.blog-index-page .blog-activity{gap:.25rem var(--space-2);max-width:none;color:var(--text-metadata);font-family:var(--font-code);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;margin-top:0;margin-left:auto;font-size:.68rem;font-weight:500;line-height:1.3;display:flex}body.blog-index-page .blog-activity span+span:before{color:var(--divider);content:"•";margin-right:var(--space-2)}@media (width<=900px){body.blog-index-page .blog-hero>.blog-hero-shell{gap:var(--space-4);grid-template-columns:1fr}.blog-hero-heading-row{align-items:end}.blog-card{padding:var(--editorial-list-row-padding-airy) 0;grid-template-columns:1fr;gap:.42rem;margin-inline:0}.blog-card-meta{gap:var(--space-1) var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.blog-card-meta span{align-items:center;display:inline-flex}.blog-card-meta span+span:before{content:none}.blog-card-featured .blog-card-meta:after{margin-left:0}.blog-pagination{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.blog-pagination-pages{grid-area:1/1/auto/-1}.blog-pagination-prev,.blog-pagination-next{grid-row:2}.blog-pagination{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);justify-items:stretch}.blog-pagination-pages{justify-content:center}.blog-pagination-next{justify-self:end}}.blog-hero.compact{gap:var(--space-6);border-bottom:1px solid var(--border);align-items:end;display:grid}.blog-local-nav{border-block:1px solid var(--divider-subtle);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.blog-local-nav a{min-height:2.75rem;color:var(--text-metadata);font-family:var(--font-code);letter-spacing:.02em;white-space:nowrap;transition:var(--transition-interactive-control);border-bottom:2px solid #0000;align-items:center;gap:.42rem;padding:.68rem .78rem .61rem;font-size:.69rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.blog-local-nav a:hover,.blog-local-nav a:focus-visible{border-bottom-color:var(--interaction-edge);background-color:var(--interaction-chip-surface);color:var(--interaction-text-hover)}.blog-local-nav a[aria-current=page]{border-bottom-color:var(--accent);background-color:var(--interaction-chip-surface);color:var(--text-primary)}.blog-local-nav small{color:var(--structure-muted);font:inherit;font-variant-numeric:tabular-nums}.blog-list-section{padding-top:clamp(.65rem,1.25vw,.95rem)}.blog-list{--blog-list-separator:var(--list-rule);background:0 0;gap:0}.blog-list-index{background:0 0;grid-template-columns:1fr;gap:0;display:grid}.blog-card{--blog-entry-inline:var(--editorial-list-inline-padding);--blog-entry-gap:var(--editorial-list-item-gap);column-gap:clamp(var(--space-4), 3vw, var(--space-6));gap:var(--blog-entry-gap);border-top:1px solid var(--blog-list-separator);min-width:0;box-shadow:none;margin-inline:calc(var(--blog-entry-inline) * -1);padding:clamp(.95rem, 1.7vw, 1.25rem) var(--blog-entry-inline);cursor:default;background:0 0;outline:0;grid-template-columns:minmax(7.4rem,.2fr) minmax(0,1fr);display:grid;position:relative;overflow:visible}.blog-list .blog-card:last-child{border-bottom:1px solid var(--blog-list-separator)}.blog-pagination{gap:var(--space-3);color:var(--text-metadata);font-family:var(--font-code);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;padding-top:clamp(.85rem,1.5vw,1.05rem);font-size:.68rem;font-weight:600;line-height:1;display:grid}.blog-pagination-pages{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.blog-pagination-control,.blog-pagination-page{min-height:2.75rem;color:var(--text-metadata);transition:background-color var(--interaction-duration) var(--interaction-ease), border-color var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease);background-color:#0000;border-bottom:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;padding-inline:.24rem;text-decoration:none;display:inline-flex}.blog-pagination-control{min-width:4.5rem}.blog-pagination-page{min-width:2.75rem}.blog-pagination-prev{justify-self:start}.blog-pagination-next{justify-self:end}.blog-pagination-control:is(a:hover,a:focus-visible),.blog-pagination-page:is(a:hover,a:focus-visible){border-color:var(--interaction-edge);background-color:var(--interaction-chip-surface);color:var(--interaction-text-hover)}.blog-pagination-control:focus-visible,.blog-pagination-page:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.blog-pagination-page.is-current{border-color:var(--divider-subtle);color:var(--text-primary)}.blog-pagination-control.is-disabled{color:var(--text-disabled);opacity:.42}.blog-card-meta{color:var(--list-meta);letter-spacing:.02em;align-content:start;gap:.28rem;font-size:clamp(.64rem,.74vw,.7rem);line-height:1.22;display:grid}.blog-card-category{color:var(--list-meta-strong);font-family:var(--font-code);font-size:inherit;font-weight:700;line-height:1}.blog-card-meta span{display:block}.blog-card-surface{--interaction-contained-surface-block-padding:clamp(.54rem, 1vw, .74rem);--interaction-card-surface:var(--list-surface-hover);--interaction-card-border:var(--list-rule-strong);gap:var(--editorial-list-surface-gap);cursor:pointer;border-radius:4px;display:grid}.blog-card-copy{gap:var(--blog-entry-gap);max-width:58rem;display:grid}.blog-card-featured{border-top-color:var(--list-rule-strong);outline:0}.blog-card-featured .blog-card-meta:after{color:var(--list-meta-strong);content:"Latest";font-family:var(--font-code);font-size:inherit;font-weight:700}.blog-card-featured .blog-card-surface{background:var(--list-surface);outline:1px solid var(--list-rule-strong);outline-offset:-1px}.blog-card-featured h2{font-size:clamp(1.05rem,1.55vw,1.24rem)}.blog-card h2{max-width:42ch;color:var(--list-title);letter-spacing:0;transition:color var(--focus-duration) var(--ease-out);margin:0;font-size:clamp(.98rem,1.34vw,1.16rem);font-weight:700;line-height:1.14}.blog-card-footer,.blog-card-tags{z-index:2;position:relative}.blog-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem .65rem;display:flex}.blog-card-tags{color:var(--list-tag);font-family:var(--font-code);transition:color var(--focus-duration) var(--ease-out);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.64rem;font-weight:500;line-height:1.2;display:flex}.blog-card-tags a{min-height:2.75rem;color:inherit;transition:color var(--interaction-duration) var(--interaction-ease);align-items:center;padding-inline:.24rem;text-decoration:none;display:inline-flex}.blog-card-tags a:hover{color:var(--interaction-text-hover)}.blog-card-tags span{color:var(--divider-subtle)}.blog-card-arrow{color:var(--text-muted);opacity:0;transition:color var(--focus-duration) var(--ease-out), opacity var(--focus-duration) var(--ease-out), transform var(--interaction-duration) var(--interaction-ease);transform:translate(-.06rem,.06rem)}.blog-card p{max-width:62ch;color:var(--list-copy);-webkit-line-clamp:2;transition:color var(--focus-duration) var(--ease-out);-webkit-box-orient:vertical;margin:0;font-size:clamp(.88rem,1vw,.94rem);font-weight:400;line-height:1.48;display:-webkit-box;overflow:hidden}.taxonomy-cloud{column-gap:clamp(var(--space-5), 5vw, var(--space-8));border-bottom:1px solid var(--list-rule);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.taxonomy-cloud a{justify-content:space-between;align-items:center;gap:var(--space-4);border-top:1px solid var(--list-rule);min-height:3.5rem;color:var(--list-copy);transition:var(--transition-interactive-control);padding:.75rem .15rem;font-size:clamp(.9rem,1.15vw,1rem);font-weight:650;line-height:1.25;text-decoration:none;display:flex}.taxonomy-cloud strong{color:var(--text-metadata);font-family:var(--font-code);font-variant-numeric:tabular-nums;font-size:.68rem;font-weight:600}.taxonomy-cloud a:hover,.taxonomy-cloud a:focus-visible{background-color:var(--interaction-card-surface);box-shadow:var(--interaction-hover-shadow);color:var(--interaction-text-hover);padding-inline:.7rem}.taxonomy-cloud a:hover strong,.taxonomy-cloud a:focus-visible strong{color:var(--interaction-text-hover)}body.blog-post-page{--font-reading-ui:"IBM Plex Sans", var(--font-body);--font-reading-serif:"IBM Plex Serif", Georgia, "Times New Roman", serif;--font-reading-code:"IBM Plex Mono", var(--font-code);--reading-background:var(--background)}@supports (color:color-mix(in lab, red, red)){body.blog-post-page{--reading-background:color-mix(in oklch, var(--background) 92%, var(--surface))}}body.blog-post-page{--reading-surface:var(--surface)}@supports (color:color-mix(in lab, red, red)){body.blog-post-page{--reading-surface:color-mix(in oklch, var(--surface) 88%, var(--structure-soft))}}body.blog-post-page{--reading-prose:var(--text-prose);--reading-muted:var(--text-secondary)}@supports (color:color-mix(in lab, red, red)){body.blog-post-page{--reading-muted:color-mix(in oklch, var(--text-secondary) 72%, var(--text-metadata))}}body.blog-post-page{--reading-faint:var(--reading-muted)}@supports (color:color-mix(in lab, red, red)){body.blog-post-page{--reading-faint:color-mix(in oklch, var(--reading-muted) 68%, var(--reading-background))}}body.blog-post-page{--reading-rule:var(--divider-subtle);--reading-selection:var(--selection);color:var(--text-primary);min-height:100vh}body.blog-post-page ::selection{background:var(--reading-selection);color:var(--text-primary)}body.blog-post-page .blog-post-hero,body.blog-post-page .blog-post-footer{font-family:var(--font-reading-ui)}body.blog-post-page .site-header{border-bottom-color:var(--header-border);background-color:var(--header-surface)}body.blog-post-page .site-header-shell{opacity:1}.post-hero-topline{display:flex}.post-back-link{width:fit-content;min-height:2.75rem;color:var(--reading-muted);font-family:var(--font-reading-ui,var(--font-code));transition:var(--transition-interactive-text);background-color:#0000;border:1px solid #0000;border-radius:3px;align-items:center;gap:.36rem;margin-inline:-.26rem;padding:.5rem;font-size:.7rem;font-weight:600;line-height:1.2;display:inline-flex}.post-back-link svg{width:1em;height:1em}.post-back-link:hover{border-color:var(--interaction-border);background-color:var(--interaction-surface);color:var(--interaction-text-hover)}.post-category-chip{width:fit-content;color:var(--structure-muted);font-family:var(--font-reading-ui,var(--font-code));letter-spacing:0;margin:0;font-size:.66rem;font-weight:700;line-height:1}.post-summary{font-family:var(--font-reading-ui,var(--font-body));margin:0;color:var(--reading-muted)!important;line-height:1.48!important}.post-reading-separator{background:var(--reading-rule);width:100%;height:1px;margin-top:clamp(.36rem,.95vw,.65rem)}.blog-post-meta{letter-spacing:0;text-transform:none;align-items:center;gap:var(--space-1) 0;color:var(--reading-muted);font-family:var(--font-reading-ui,var(--font-body));flex-wrap:wrap;font-size:.68rem;line-height:1.25;display:flex}.blog-post-meta span{align-items:center;gap:.4rem;display:inline-flex}.blog-post-meta{gap:.2rem 0}.blog-post-meta>span{color:var(--reading-muted)}.blog-post-meta-label{color:var(--structure-muted);font-family:var(--font-reading-code,var(--font-code));font-size:.92em;font-weight:700}.blog-post-meta-label:after{color:var(--reading-faint);content:"/";margin-left:.4rem;font-weight:500}.blog-post-meta>span+span:before{color:var(--text-metadata);content:"•";margin-inline:.42rem}@media (prefers-reduced-motion:no-preference){.blog-post-page .post-hero-topline,.blog-post-page .post-category-chip,.blog-post-page .blog-post-hero h1,.blog-post-page .post-summary,.blog-post-page .blog-post-meta,.blog-post-page .post-reading-separator{animation:hero-instrument-enter .32s var(--ease-expo) both}.blog-post-page .post-category-chip{animation-delay:40ms}.blog-post-page .blog-post-hero h1{animation-delay:80ms}.blog-post-page .post-summary{animation-delay:.12s}.blog-post-page .blog-post-meta{animation-delay:.15s}.blog-post-page .post-reading-separator{animation-delay:.19s}.blog-prose img,.post-cover img{animation:photo-develop .42s var(--ease-precision) both}}.blog-post-layout{width:var(--layout-width);margin:0 auto}.blog-post-toc{display:none}@media (width<=1179px){.blog-post-toc{display:none!important}}.blog-post{z-index:0;max-width:min(100%,68ch);color:var(--reading-prose);font-family:var(--font-reading-serif,var(--font-body));border-top:0;margin-inline:auto;padding:clamp(1.05rem,2.4vw,1.55rem) 0 clamp(3rem,7vw,5rem);position:relative}@media (width>=1180px){.blog-post-layout.has-toc{display:block}.blog-post-layout.has-toc .blog-post{margin-inline:auto}.blog-post-toc{z-index:1;top:50%;right:max(var(--page-gutter), calc((100vw - var(--layout-width)) / 2 - clamp(9rem, 12vw, 13rem)));width:clamp(9rem,12vw,13rem);max-height:min(28rem,100vh - 9rem);padding-block:.2rem;display:block;position:fixed;overflow:auto;transform:translateY(-50%)}.blog-post-toc nav{gap:.72rem;margin-top:.72rem;display:grid}.blog-post-toc-toggle{width:100%;color:var(--note-toc-color);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:.7rem;padding:0;display:flex}.blog-post-toc-toggle:hover{color:var(--note-toc-color-strong)}.blog-post-toc-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.blog-post-toc-toggle-mark{color:inherit;font-family:var(--font-reading-code,var(--font-code));font-size:.82rem;font-weight:700;line-height:1}.blog-post-toc.is-collapsed nav{display:none}.blog-post-toc-title{color:inherit;font-family:var(--font-reading-ui,var(--font-code));letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.64rem;font-weight:700;line-height:1.2}.blog-post-toc ol{--toc-progress:0;gap:.02rem;margin:0;padding:0;list-style:none;display:grid;position:relative}.blog-post-toc ol:before,.blog-post-toc ol:after{content:"";width:1px;position:absolute;top:.52rem;left:0}.blog-post-toc ol:before{background:var(--reading-rule);bottom:.52rem}.blog-post-toc ol:after{background:var(--structure-border);bottom:.52rem}@supports (color:color-mix(in lab, red, red)){.blog-post-toc ol:after{background:color-mix(in oklch, var(--structure-border) 76%, transparent)}}.blog-post-toc ol:after{transform:scaleY(var(--toc-progress));transform-origin:top;transition:transform .16s var(--ease-out)}.blog-post-toc li{position:relative}.blog-post-toc li:before{z-index:1;background:var(--reading-rule);content:"";width:.5rem;height:1px;transition:background-color var(--interaction-duration) var(--interaction-ease), opacity var(--interaction-duration) var(--interaction-ease), transform var(--interaction-duration) var(--interaction-ease);position:absolute;top:.83rem;left:0}.blog-post-toc a{z-index:2;color:var(--note-toc-color-muted);font-family:var(--font-reading-ui,var(--font-body));transition:color var(--interaction-duration) var(--interaction-ease), font-weight var(--interaction-duration) var(--interaction-ease), transform var(--interaction-duration) var(--interaction-ease);padding:.26rem 0 .26rem .86rem;font-size:.78rem;font-weight:500;line-height:1.36;text-decoration:none;display:block;position:relative}.blog-post-toc .is-depth-3 a{color:var(--note-toc-color-muted)}@supports (color:color-mix(in lab, red, red)){.blog-post-toc .is-depth-3 a{color:color-mix(in oklch, var(--note-toc-color-muted) 78%, transparent)}}.blog-post-toc .is-depth-3 a{padding-left:1.35rem;font-size:.72rem}.blog-post-toc .is-depth-3:before{opacity:.72;width:.88rem}.blog-post-toc a:hover,.blog-post-toc a:focus-visible{color:var(--note-toc-color-strong)}.blog-post-toc li:is(:hover,:focus-within):before,.blog-post-toc li.is-active:before{background:var(--note-toc-color-muted)}@supports (color:color-mix(in lab, red, red)){.blog-post-toc li:is(:hover,:focus-within):before,.blog-post-toc li.is-active:before{background:color-mix(in oklch, var(--note-toc-color-muted) 64%, var(--note-toc-color))}}.blog-post-toc li:is(:hover,:focus-within):before,.blog-post-toc li.is-active:before{opacity:1;transform:translate(2px)}.blog-post-toc li.is-active a{color:var(--note-toc-color);font-weight:700;transform:translate(3px)}.blog-post-toc a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}}.post-cover{margin:0 0 var(--space-7)}.post-cover img{object-fit:cover;border:1px solid var(--border);filter:grayscale()contrast(1.1);border-radius:6px;width:100%;max-height:32rem}.blog-prose{--font-code-block:var(--font-reading-code,var(--font-code));max-width:100%;color:var(--reading-prose);margin:0 auto}.blog-prose>*+*{margin-top:1.45rem}.blog-prose h2,.blog-prose h3,.blog-prose h4{margin-top:clamp(2.35rem,5vw,3.5rem);scroll-margin-top:6rem}.blog-prose h2{font-size:clamp(1.36rem,2.2vw,1.72rem)}.blog-prose h3{font-size:clamp(1.16rem,1.6vw,1.3rem)}.blog-prose h4{letter-spacing:0;font-size:1.08rem}.blog-prose h2,.blog-prose h3,.blog-prose h4{color:var(--heading-color)}@supports (color:color-mix(in lab, red, red)){.blog-prose h2,.blog-prose h3,.blog-prose h4{color:color-mix(in oklch, var(--heading-color) 76%, var(--reading-prose))}}.blog-prose h2,.blog-prose h3,.blog-prose h4{font-family:var(--font-reading-ui,var(--font-heading));letter-spacing:0;text-transform:none;font-weight:600;line-height:1.22}.blog-prose h2:before{background:var(--structure-border);content:"";width:clamp(2.25rem,7vw,4rem);height:1px;margin-bottom:var(--space-4);display:block}.heading-anchor{width:2.75rem;min-height:2.75rem;color:var(--text-secondary);opacity:0;vertical-align:middle;transition:var(--transition-interactive-text);justify-content:center;align-items:center;margin:-.65rem -.6rem -.65rem .12rem;font-size:.75em;text-decoration:none;display:inline-flex}.blog-prose h2:is(:hover,:focus-within) .heading-anchor,.blog-prose h3:is(:hover,:focus-within) .heading-anchor,.blog-prose h4:is(:hover,:focus-within) .heading-anchor{opacity:1}.heading-anchor:hover{color:var(--interaction-text-hover)}.heading-anchor:focus-visible{opacity:1;outline:2px solid var(--focus-ring);outline-offset:-4px}@media (hover:none){.heading-anchor{opacity:.58}}.blog-prose p,.blog-prose li{color:var(--reading-prose);font-family:var(--font-reading-serif,var(--font-body));text-wrap:pretty;font-size:1.04rem;font-weight:400;line-height:1.78}.blog-prose>p:first-of-type{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.blog-prose>p:first-of-type{color:color-mix(in oklch, var(--text-primary) 86%, var(--reading-prose))}}.blog-prose>p:first-of-type{font-size:1.08rem;line-height:1.74}.blog-prose a{background-color:var(--accent-soft);border-radius:3px}@supports (color:color-mix(in lab, red, red)){.blog-prose a{background-color:color-mix(in oklch, var(--accent-soft) 18%, transparent)}}.blog-prose a{box-decoration-break:clone;color:var(--reading-prose)}@supports (color:color-mix(in lab, red, red)){.blog-prose a{color:color-mix(in oklch, var(--reading-prose) 92%, var(--accent))}}.blog-prose a{transition:var(--transition-interactive-text);margin-inline:-.08em;padding-inline:.08em;text-decoration:none}.blog-prose a:hover{background-color:var(--accent-soft)}@supports (color:color-mix(in lab, red, red)){.blog-prose a:hover{background-color:color-mix(in oklch, var(--accent-soft) 58%, transparent)}}.blog-prose a:hover{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.blog-prose a:hover{color:color-mix(in oklch, var(--text-primary) 86%, var(--reading-prose))}}.blog-prose ul,.blog-prose ol{gap:.6em;padding-left:1.45em;display:grid}.blog-prose ul{list-style:outside}.blog-prose ol{list-style:decimal}.blog-prose li>ul,.blog-prose li>ol{margin-top:.58em}.blog-prose blockquote{border-left:1px solid var(--structure-border);box-shadow:none;background:var(--reading-surface)}@supports (color:color-mix(in lab, red, red)){.blog-prose blockquote{background:color-mix(in oklch, var(--reading-surface) 54%, transparent)}}.blog-prose blockquote{margin-block:clamp(1.9rem,4vw,2.8rem);padding:clamp(1.08rem,2vw,1.45rem) clamp(1.05rem,2.5vw,1.7rem)}.blog-prose blockquote p{color:var(--reading-prose)}@supports (color:color-mix(in lab, red, red)){.blog-prose blockquote p{color:color-mix(in oklch, var(--reading-prose) 90%, var(--reading-muted))}}.blog-prose blockquote p{font-family:var(--font-reading-serif,var(--font-body));font-size:clamp(1rem,1.35vw,1.12rem);font-weight:400;line-height:1.76}.blog-prose blockquote p:first-child strong:first-child{color:var(--structure-strong);font-family:var(--font-reading-ui,var(--font-code));letter-spacing:0;margin-bottom:var(--space-2);font-size:.72rem;display:block}.blog-prose img{border:1px solid var(--border-subtle);border-radius:6px;width:100%}.blog-prose figure,.blog-prose p:has(>img:only-child){margin-block:var(--space-7)}.blog-prose figcaption{color:var(--reading-muted);font-family:var(--font-reading-ui,var(--font-body));margin-top:var(--space-3);font-size:.72rem;line-height:1.5}.blog-prose table{border-collapse:collapse;table-layout:fixed;width:100%;margin-block:var(--space-6);font-family:var(--font-reading-ui,var(--font-body));border:0;font-size:.92rem;line-height:1.5;display:table;overflow:hidden}.blog-prose th,.blog-prose td{border:0;border-bottom:1px solid var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){.blog-prose th,.blog-prose td{border-bottom:1px solid color-mix(in oklch, var(--border-subtle) 78%, transparent)}}.blog-prose th,.blog-prose td{text-align:left;vertical-align:top;padding:.72rem .75rem}.blog-prose th{background:var(--surface)}@supports (color:color-mix(in lab, red, red)){.blog-prose th{background:color-mix(in oklch, var(--surface) 72%, transparent)}}.blog-prose th{color:var(--text-primary);font-family:var(--font-reading-ui,var(--font-body));text-transform:none;font-weight:700}.blog-prose table p,.blog-prose table li{color:var(--reading-muted);font-family:var(--font-reading-ui,var(--font-body));font-size:.92rem;line-height:1.5}.blog-prose sup{font-family:var(--font-reading-ui,var(--font-body));font-size:.72em;line-height:0}.blog-prose .footnotes{border-top:1px solid var(--reading-rule);padding-top:var(--space-4);margin-top:clamp(2.5rem,6vw,4rem)}.blog-prose .footnotes,.blog-prose .footnotes p,.blog-prose .footnotes li{color:var(--reading-muted);font-family:var(--font-reading-serif,var(--font-body));font-size:1rem;line-height:1.65}.blog-prose .footnotes ol{gap:.45rem}.blog-prose .footnotes a{color:var(--reading-prose)}@supports (color:color-mix(in lab, red, red)){.blog-prose .footnotes a{color:color-mix(in oklch, var(--reading-prose) 82%, var(--accent))}}.code-frame{margin-block:var(--space-6);position:relative}.blog-prose .code-frame pre{border:1px solid var(--code-border);color:var(--code-copy);scrollbar-gutter:stable;tab-size:2;-webkit-overflow-scrolling:touch;border-radius:8px;margin:0;padding:3.4rem 0 1.25rem;overflow-x:auto;background:var(--code-surface)!important}.code-scroll-edge{z-index:1;background:linear-gradient(90deg, transparent, var(--code-surface));opacity:0;pointer-events:none;width:clamp(1.8rem,7vw,3.5rem);transition:opacity var(--interaction-duration) var(--interaction-ease);border-radius:0 0 7px;position:absolute;inset:2.85rem 1px 1px auto}.code-frame[data-overflowing]:not([data-scroll-end]) .code-scroll-edge{opacity:.92}.blog-prose pre:before{max-width:calc(100% - 6rem);color:var(--code-label);content:attr(data-code-label);font-family:var(--font-reading-code,var(--font-code));letter-spacing:0;text-transform:lowercase;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:700;position:absolute;top:.74rem;left:.9rem;overflow:hidden}.blog-prose pre:after{display:none}.blog-prose pre code{width:max-content;min-width:100%;color:var(--shiki-dark,var(--code-copy));background:0 0;border:0;display:block}@supports (color:color-mix(in lab, red, red)){.blog-prose pre code{color:color-mix(in oklch, var(--shiki-dark,var(--code-copy)) 78%, var(--code-copy))}}.blog-prose pre code{counter-reset:code-line;font-family:var(--font-code-block);white-space:normal;padding:0;font-size:.83rem;font-weight:500;line-height:1.48}.blog-prose pre code span{color:var(--shiki-dark,var(--code-copy))}@supports (color:color-mix(in lab, red, red)){.blog-prose pre code span{color:color-mix(in oklch, var(--shiki-dark,var(--code-copy)) 78%, var(--code-copy))}}[data-theme=light] .blog-prose pre code{color:var(--shiki-light,var(--code-copy))}@supports (color:color-mix(in lab, red, red)){[data-theme=light] .blog-prose pre code{color:color-mix(in oklch, var(--shiki-light,var(--code-copy)) 72%, var(--code-copy))}}[data-theme=light] .blog-prose pre code span{color:var(--shiki-light,var(--code-copy))}@supports (color:color-mix(in lab, red, red)){[data-theme=light] .blog-prose pre code span{color:color-mix(in oklch, var(--shiki-light,var(--code-copy)) 72%, var(--code-copy))}}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .blog-prose pre code,:root:not([data-theme=dark]) .blog-prose pre code span{color:var(--shiki-light,var(--code-copy))}@supports (color:color-mix(in lab, red, red)){:root:not([data-theme=dark]) .blog-prose pre code,:root:not([data-theme=dark]) .blog-prose pre code span{color:color-mix(in oklch, var(--shiki-light,var(--code-copy)) 72%, var(--code-copy))}}}.blog-prose :not(pre)>code{border:1px solid var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){.blog-prose :not(pre)>code{border:1px solid color-mix(in oklch, var(--border-subtle) 80%, var(--structure-border))}}.blog-prose :not(pre)>code{background:var(--surface);border-radius:4px}@supports (color:color-mix(in lab, red, red)){.blog-prose :not(pre)>code{background:color-mix(in oklch, var(--surface) 76%, var(--structure-soft))}}.blog-prose :not(pre)>code{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.blog-prose :not(pre)>code{color:color-mix(in oklch, var(--text-primary) 86%, var(--structure-strong))}}.blog-prose :not(pre)>code{font-family:var(--font-reading-code,var(--font-code));padding:.12em .34em;font-size:.88em;font-weight:500}.blog-prose pre code .line{white-space:pre;min-height:1.48em;padding:0 1.1rem 0 .65rem;line-height:1.48;display:block}.blog-prose pre code .line:before{width:1.45rem;color:var(--code-line);content:counter(code-line);counter-increment:code-line;text-align:right;user-select:none;margin-right:.65rem;display:inline-block}.copy-code-button{z-index:2;border:1px solid var(--border-subtle);min-width:3.5rem;min-height:2.75rem;color:var(--code-copy);cursor:pointer;font-family:var(--font-reading-ui,var(--font-code));letter-spacing:0;text-transform:none;transition:var(--transition-interactive-control);background:0 0;border-radius:4px;padding:.5rem .62rem;font-size:.66rem;font-weight:700;position:absolute;top:.25rem;right:.56rem}.copy-code-button:hover{border-color:var(--code-border)}@supports (color:color-mix(in lab, red, red)){.copy-code-button:hover{border-color:color-mix(in oklch, var(--code-border) 72%, var(--interaction-border-strong))}}.copy-code-button:hover{background-color:var(--code-copy)}@supports (color:color-mix(in lab, red, red)){.copy-code-button:hover{background-color:color-mix(in oklch, var(--code-copy) 10%, transparent)}}.copy-code-button:hover{color:var(--code-copy-hover)}.copy-code-button:disabled{cursor:wait;opacity:.74}.blog-post-footer{gap:var(--space-5);color:var(--text-secondary);margin-top:clamp(3rem,8vw,5rem);display:grid}.blog-post-footer-rule{background:var(--border-subtle);height:1px}@supports (color:color-mix(in lab, red, red)){.blog-post-footer-rule{background:color-mix(in oklch, var(--border-subtle) 76%, transparent)}}.blog-post-footer dl{gap:var(--space-3);margin:0;display:grid}.blog-post-footer dl>div{gap:var(--space-4);grid-template-columns:minmax(7rem,.32fr) minmax(0,1fr);display:grid}.blog-post-footer dt,.blog-post-footer dd{margin:0}.blog-post-footer dt{color:var(--structure-muted);font-family:var(--font-reading-ui,var(--font-code));font-size:.7rem;font-weight:700;line-height:1.35}.blog-post-footer dd{color:var(--reading-muted);font-family:var(--font-reading-ui,var(--font-body));font-size:.92rem;font-weight:500;line-height:1.45}.post-footer-tags{flex-wrap:wrap;gap:.45rem .7rem;display:flex}.post-footer-tags a{min-height:2.75rem;color:var(--reading-muted);align-items:center;display:inline-flex}.archive-section{gap:var(--space-6);background:0 0}.archive-group{gap:var(--space-3);display:grid}.archive-group h2{color:var(--list-title);font-size:clamp(1.05rem,1.7vw,1.32rem)}.archive-list{border-top:1px solid var(--list-rule);border-bottom:1px solid var(--list-rule);background:0 0;gap:0;display:grid}.archive-list a{--interaction-card-surface:var(--list-surface-hover);--interaction-card-border:var(--list-rule-strong);--hover-surface-block-inset:0rem;border-top:1px solid var(--list-rule);border-radius:3px;gap:.36rem;text-decoration:none;display:grid}.archive-list a:first-child{border-top:0}.archive-list a:before{inset:0}.archive-list strong{min-width:0;color:var(--list-title);text-transform:none;transition:color var(--focus-duration) var(--ease-out);font-size:clamp(.98rem,1.35vw,1.12rem);line-height:1.12;text-decoration:none;display:block}.archive-list time{color:var(--list-meta)}.archive-entry-category{min-width:0;color:var(--list-meta)}.not-found{width:min(58rem, var(--layout-width));align-content:center;gap:var(--space-5);min-height:72vh;margin:0 auto;display:grid}.not-found p:not(.section-note){max-width:40rem;color:var(--text-secondary);font-size:1.2rem}@media (width>=720px){body{font-size:1.03rem}.hero-shell{grid-template-columns:minmax(0,3fr) minmax(16rem,2fr);align-items:start}.hero-editorial{justify-self:end}.split-header{grid-template-columns:minmax(0,1fr) minmax(16rem,.42fr)}.blog-list-index{grid-template-columns:1fr}.archive-list a{grid-template-columns:11rem minmax(0,1fr) auto;align-items:center}.contact-section{grid-template-columns:minmax(0,1fr) minmax(18rem,auto);align-items:start}.contact-directory{justify-self:end;width:min(100%,24rem)}}@media (width>=1040px){.site-header{min-height:4.8rem}.site-header-shell{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}}@media (width<=1180px){.telemetry-transmission{display:none}}@media (width<=900px){.site-header-shell{gap:var(--space-4)}.site-nav-label-wide{display:none}.site-nav-label-compact{display:inline}.site-nav{gap:clamp(.55rem,1.25vw,.8rem)}.site-nav a{font-size:.68rem}.telemetry-readouts{gap:var(--space-2)}.telemetry-rpm-readout{min-width:4rem}.telemetry-gear-readout{grid-template-rows:auto;min-width:1.5rem}.telemetry-gear-head,.telemetry-gear-window{height:auto;min-height:0}}@media (width<=640px){:root{--page-gutter:clamp(1rem, 5vw, 1.4rem);--site-header-offset:calc(4.5rem + env(safe-area-inset-top));--mobile-nav-surface:var(--background);--mobile-nav-rule:var(--header-border)}@supports (color:color-mix(in lab, red, red)){:root{--mobile-nav-rule:color-mix(in oklch, var(--header-border) 82%, transparent)}}[data-theme=light]{--mobile-nav-surface:oklch(96.1% .012 45);--mobile-nav-rule:oklch(82.5% .024 45/.74)}.site-header{border-bottom-color:var(--mobile-nav-rule);background-color:var(--mobile-nav-surface);padding:calc(.875rem + env(safe-area-inset-top)) max(var(--page-gutter), env(safe-area-inset-right)) .875rem max(var(--page-gutter), env(safe-area-inset-left))}.site-header-shell{gap:var(--space-2);align-items:center;width:100%;display:flex;position:relative}.site-identity{flex:auto;width:auto;overflow:hidden}.site-brand-row{gap:.34rem;max-width:100%}.site-brand{max-width:100%;min-height:2.75rem;font-family:var(--font-code);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(.82rem,3.4vw,.96rem);font-weight:650;overflow:hidden}.site-section-indicator{opacity:.58;text-overflow:ellipsis;flex:0 auto;width:auto;max-width:8.5ch;font-size:.52rem;display:inline-flex}.site-brand-row:hover .site-section-indicator{color:var(--structure-muted);opacity:.7}.site-presence{min-width:1.15rem}.site-header-right{gap:var(--space-2);flex:none;justify-content:flex-end;width:auto}.site-nav-desktop{display:none}.site-mobile-resume{border:1px solid var(--mobile-nav-rule);min-width:2.75rem;min-height:2.75rem;color:var(--text-primary);font-family:var(--font-code);transition:var(--transition-interactive-control);border-radius:3px;justify-content:center;align-items:center;font-size:.68rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.site-mobile-resume:is(:hover,:focus-visible){border-color:var(--header-accent-border);background-color:var(--header-accent-soft);color:var(--interaction-text-hover)}.site-theme-toggle{border-color:var(--mobile-nav-rule);width:2.75rem;height:2.75rem;color:var(--text-primary);opacity:.88;background:0 0;place-items:center;padding:0;display:inline-grid;position:relative;inset:auto;transform:none}.site-theme-toggle:hover,.site-theme-toggle:focus-visible{border-color:var(--mobile-nav-rule);background-color:var(--header-surface)}@supports (color:color-mix(in lab, red, red)){.site-theme-toggle:hover,.site-theme-toggle:focus-visible{background-color:color-mix(in oklch, var(--header-surface) 68%, var(--header-accent-soft))}}.site-theme-toggle:hover,.site-theme-toggle:focus-visible{color:var(--interaction-text-hover);opacity:1}.site-theme-toggle:before{display:none}.theme-icon{width:1rem;height:1rem}.site-nav-menu{display:block;position:static}.site-nav-menu summary{border:1px solid var(--mobile-nav-rule);min-width:3.65rem;min-height:2.75rem;color:var(--text-secondary);cursor:pointer;font-family:var(--font-code);transition:var(--transition-interactive-control);border-radius:3px;justify-content:center;align-items:center;gap:.35rem;padding:.6rem;font-size:.66rem;font-weight:700;line-height:1;list-style:none;display:inline-flex}.site-nav-menu summary::-webkit-details-marker{display:none}.site-nav-menu summary:is(:hover,:focus-visible),.site-nav-menu[open] summary{border-color:var(--header-accent-border);background-color:var(--header-accent-soft);color:var(--interaction-text-hover)}.site-nav-mobile{z-index:2;border:1px solid var(--mobile-nav-rule);background:var(--mobile-nav-surface);padding:var(--space-2);box-shadow:0 6px 8px var(--overlay);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:absolute;top:calc(100% + .875rem);left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-nav-mobile{box-shadow:0 6px 8px color-mix(in oklch, var(--overlay) 22%, transparent)}}.site-nav-mobile a{justify-content:space-between;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--mobile-nav-rule);min-height:2.75rem;color:var(--text-secondary);font-family:var(--font-code);transition:var(--transition-interactive-control);padding:.65rem .75rem;font-size:.72rem;font-weight:650;text-decoration:none;display:flex}.site-nav-mobile a:nth-last-child(-n+2){border-bottom-color:#0000}.site-nav-mobile a:is(:hover,:focus-visible),.site-nav-mobile a[data-active]{background-color:var(--header-accent-soft);color:var(--text-primary)}.site-nav-mobile small{color:var(--text-metadata);font-size:.55rem;font-weight:500}.site-presence-tooltip{left:0;transform:translateY(-.2rem)}.site-presence:is(:hover,:focus-visible) .site-presence-tooltip{transform:translate(0)}.header-instruments{position:static;inset:auto}.telemetry-readouts{gap:.3rem}.telemetry-readout{min-height:2rem}.telemetry-gauge,.telemetry-transmission{display:none}.telemetry-rpm-readout{min-width:3.8rem}.telemetry-rpm-readout output{font-size:.78rem}.telemetry-rpm-unit{font-size:.4rem}.telemetry-gear-readout{min-width:1.2rem;display:block}.telemetry-gear-head,.telemetry-gear-window{height:auto;min-height:0}.telemetry-gear-readout output{font-size:.78rem}.blog-hero-heading-row{justify-content:start;align-items:start;gap:var(--space-3);display:grid}body.blog-index-page .blog-activity{text-align:left;justify-content:flex-start;margin-left:0}@media (width<=420px){.site-nav-menu summary{width:2.75rem;min-width:2.75rem;padding:0}.site-nav-menu summary span{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (width<=400px){.site-brand-name-wide{display:none}.site-brand-name-compact{display:inline}}@media (width<=360px){.site-brand{font-size:.78rem}.telemetry-rpm-unit{display:none}}.hero-section{padding-top:var(--space-6);padding-bottom:var(--space-7)}.hero-shell{gap:var(--space-6)}.hero-copy h1{max-width:18ch;font-size:clamp(1.95rem,9vw,2.75rem);line-height:1.04}.hero-actions{justify-content:flex-start;width:100%}.content-section{padding-block:var(--section-block-spacing)}body.blog-index-page .blog-hero{padding:var(--space-5) 0 var(--space-2)}body.blog-index-page .blog-hero h1{font-size:1.9rem}body.blog-index-page .blog-hero p{font-size:.94rem}.blog-local-nav a,.blog-pagination-control,.blog-pagination-page{min-height:2.75rem}.blog-pagination{gap:var(--space-2)}.blog-pagination-pages{gap:.24rem .5rem}.blog-local-nav{flex-wrap:wrap}.taxonomy-cloud{grid-template-columns:minmax(0,1fr);column-gap:0}body.blog-index-page .blog-list-section{padding-top:var(--space-5);padding-bottom:var(--space-7)}.blog-card{gap:var(--space-2);padding-block:clamp(.9rem,4vw,1.08rem)}.blog-card-meta{gap:.28rem var(--space-2);font-size:.64rem}.blog-card-featured .blog-card-meta:after{margin-left:0}.home-page #blog,.home-page #photos{padding-top:var(--section-block-spacing);padding-bottom:var(--space-7)}.section-header{gap:var(--space-3);margin-bottom:var(--space-6)}.section-header>div{padding-top:var(--space-4)}.blog-post-hero{padding:clamp(1.25rem,5vw,1.85rem) 0 0}.blog-post-hero-inner{gap:clamp(.45rem,2vw,.72rem)}.post-hero-topline{margin-bottom:0}.blog-post-hero h1{font-size:clamp(1.75rem,8vw,2.4rem);line-height:1.06}.post-summary{margin:0}.blog-post-meta{gap:var(--space-1) var(--space-3)}.blog-post{padding:clamp(1.25rem, 4vw, 1.7rem) 0 var(--space-8)}.blog-post-footer dl>div{gap:var(--space-1);grid-template-columns:1fr}.photo-grid{gap:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.photo-grid:after{display:none}.photo-frame{width:100%;min-width:0;height:auto;aspect-ratio:var(--aspect)}.photo-lightbox{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.photo-lightbox[open]{gap:var(--space-3);grid-template-columns:1fr}.photo-lightbox img{max-height:calc(100dvh - 12rem)}.photo-lightbox-nav{width:fit-content}.photo-lightbox-prev{justify-self:start}.photo-lightbox-next{justify-self:end}.button{width:100%}.blog-prose table{table-layout:auto;-webkit-overflow-scrolling:touch;max-width:100%;font-size:.88rem;display:block;overflow-x:auto}.blog-prose th,.blog-prose td{min-width:8rem;padding:.55rem}.blog-prose pre{margin-left:0;margin-right:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}:is([data-interaction-surface],.photo-frame,.button,.github-contributions-link,.blog-pagination-control,.blog-pagination-page),.blog-card-arrow{transform:none!important}::view-transition-old(root),::view-transition-new(root),::view-transition-group(root){animation-duration:.01ms!important;animation-iteration-count:1!important}.timeline-live-ping{opacity:.28;animation:timeline-live-breathe 4.8s var(--ease-out) infinite!important;transform:none!important}}@media print{@page{margin:.6in}.site-header,.skip-link{display:none!important}body{color:#000;background:#fff;padding-top:0;font-size:10pt;line-height:1.35}h1,h2,h3,p,li,a{color:#000!important}a{text-decoration:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}
