/*! 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-\[var\(--experience-marker-border\)\]{border-color:var(--experience-marker-border)}.border-\[var\(--experience-rule\)\]{border-color:var(--experience-rule)}.border-\[var\(--project-rule\)\]{border-color:var(--project-rule)}.bg-\[var\(--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)}.font-\[\'Fira_Code\'\,ui-monospace\,SFMono-Regular\,Menlo\,monospace\]{font-family:Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace}.font-\[\'Inter\'\,ui-sans-serif\,system-ui\,sans-serif\]{font-family:Inter,ui-sans-serif,system-ui,sans-serif}.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-label\){color:var(--experience-label)}.text-\[var\(--experience-company\)\]{color:var(--experience-company)}.text-\[var\(--experience-copy\)\]{color:var(--experience-copy)}.text-\[var\(--experience-date\)\]{color:var(--experience-date)}.text-\[var\(--experience-heading\)\]{color:var(--experience-heading)}.text-\[var\(--experience-role\)\]{color:var(--experience-role)}.text-\[var\(--project-category\)\]{color:var(--project-category)}.text-\[var\(--project-copy\)\]{color:var(--project-copy)}.text-\[var\(--project-heading\)\]{color:var(--project-heading)}.text-\[var\(--project-label\)\]{color:var(--project-label)}.text-\[var\(--project-name\)\]{color:var(--project-name)}.text-\[var\(--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-\[var\(--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);--surface-backdrop-filter:blur(24px) saturate(.94);--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);--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-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);--background-grid-line:oklch(88% .06 276/.026);--background-grid-size:40px;--background-grid-pattern:linear-gradient(to right, var(--background-grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--background-grid-line) 1px, transparent 1px);--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.7% .004 78);--surface:oklch(99.4% .002 78);--surface-raised:oklch(100% 0 0);--surface-hover:oklch(95.6% .008 78);--surface-muted:oklch(96.2% .006 78);--surface-muted-strong:oklch(94% .01 78);--surface-readable:oklch(99.2% .003 78/.74);--surface-card-readable:oklch(100% 0 0/.86);--surface-backdrop-filter:blur(22px) saturate(.98);--header-surface:oklch(93.8% .01 78/.99);--header-border:oklch(33% .065 286/.12);--panel-surface:oklch(99.5% .002 78/.82);--panel-border:oklch(80% .018 74/.58);--text-primary:oklch(23% .032 286);--text-secondary:oklch(36% .03 286);--text-muted:oklch(43% .024 286);--text-metadata:oklch(46% .022 286);--text-disabled:oklch(63% .016 286);--text-prose:oklch(30% .03 286);--heading-color:oklch(33% .065 286);--hero-heading-emphasis:oklch(43% .16 272);--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% .012 76);--border-subtle:oklch(88% .009 76/.74);--border-strong:oklch(71% .022 74);--divider:oklch(84% .012 76/.68);--divider-subtle:oklch(88% .009 76/.46);--structure:oklch(66% .05 286);--structure-strong:oklch(58% .052 286);--structure-muted:oklch(44% .038 286);--structure-soft:oklch(66% .05 286/.08);--structure-border:oklch(66% .05 286/.22);--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);--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(48% .13 46);--accent-hover:oklch(43% .135 42);--accent-pressed:oklch(38% .12 38);--accent-focus:oklch(55% .115 48);--accent-soft:oklch(48% .13 46/.12);--accent-border:oklch(48% .13 46/.34);--accent-glow:oklch(48% .13 46/.18);--success:oklch(45% .105 158);--warning:oklch(50% .105 78);--danger:oklch(50% .145 30);--selection:oklch(48% .13 46/.18);--overlay:oklch(13% .03 286/.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(42% .04 52);--contribution-0:oklch(91% .014 276);--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);--background-grid-line:oklch(27% .018 76/.022);--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-stagger-step:44ms;--motion-enter-distance:.7rem;--motion-press-distance:.04rem;--motion-press-scale:.994;--hero-identity-transition-duration:.24s;--hero-identity-shift:5px;--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}html body.editorial-background{background-color:var(--background)}.editorial-background-layer{z-index:0;pointer-events:none;background-color:var(--background);background-image:var(--background-grid-pattern);background-position:0 0;background-size:var(--background-grid-size) var(--background-grid-size);display:block;position:fixed;inset:0;overflow:hidden}html body.editorial-background main,html body.editorial-background footer{z-index:1;position:relative}html body.editorial-background .hero-section{background:0 0}body.editorial-background :is(.profile-card,.profile-info,.profile-panel,.info-panel,.contact-card,.contact-directory,.contact-table,.contact-github-preview,.github-preview,.github-contributions,.archive-list a,.skill-grid article,.education-list article,.achievement-list li){backdrop-filter:var(--surface-backdrop-filter)}::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 .editorial-background-layer,html.theme-changing .site-header,html.theme-changing .ist-clock,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}.home-page .hero-copy>:is(h1,p,nav),.home-page .hero-editorial,.blog-hero>div>*,.blog-post-hero-inner>*,.blog-filter-section,.blog-list-section,.blog-post,.blog-post-footer,.archive-section,.content-section>:is(.section-header,.photos-empty,.contact-directory){animation:motion-rise-in var(--motion-duration-page) var(--ease-expo) both;animation-delay:calc(var(--motion-order,0) * var(--motion-stagger-step))}.content-section>.editorial-section-grid,#experience>.editorial-section-grid,#projects>.editorial-section-grid{animation:motion-fade-in var(--motion-duration-page) var(--ease-out) both;animation-delay:calc(var(--motion-order,0) * var(--motion-stagger-step))}.home-page .hero-copy>h1,.blog-hero>div>:first-child,.blog-post-hero-inner>:first-child{--motion-order:0}.home-page .hero-copy>.hero-summary:first-of-type,.blog-hero>div>:nth-child(2),.blog-post-hero-inner>:nth-child(2){--motion-order:1}.home-page .hero-copy>.hero-summary+.hero-summary,.blog-hero>div>:nth-child(3),.blog-post-hero-inner>:nth-child(3){--motion-order:2}.home-page .hero-reference-links,.blog-hero>div>:nth-child(4),.blog-post-hero-inner>:nth-child(4){--motion-order:3}.home-page .hero-editorial,.blog-hero>div>:nth-child(5),.blog-post-hero-inner>:nth-child(5){--motion-order:4}.home-page #experience{--motion-order:5}.home-page #projects{--motion-order:6}.home-page #blog{--motion-order:7}.home-page #photos{--motion-order:8}.home-page #contact{--motion-order:9}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){:is(#experience li,#projects li,.writing-record,.blog-card,.photo-frame,.archive-list a,.contact-directory-row){animation:both motion-view-rise view();animation-range:entry 4% cover 24%}}}:is([data-interaction-surface],.photo-frame,.site-nav a,.button,.blog-card-link,.github-contributions-link,.blog-filter-toolbar .taxonomy-filter,.taxonomy-select,.blog-pagination-control,.blog-pagination-page){transform:translate(0)}[data-interaction-surface],.photo-frame{transition:var(--transition-interactive-card)}.site-nav a,.button,.blog-card-link,.github-contributions-link,.blog-filter-toolbar .taxonomy-filter,.taxonomy-select,.blog-pagination-control,.blog-pagination-page{transition:var(--transition-interactive-control)}:is([data-interaction-surface],.photo-frame,.site-nav a,.button,.blog-card-link,.github-contributions-link,.blog-filter-toolbar .taxonomy-filter,.taxonomy-select,.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(1.1rem, 1.6vw, 1.35rem), env(safe-area-inset-top)) max(var(--space-4), env(safe-area-inset-right)) clamp(1rem, 1.3vw, 1.18rem) 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-5), 2.6vw, var(--space-7));grid-template-columns:minmax(13rem,.17fr) minmax(0,1fr);align-items:center;margin-inline:auto;display:grid}.site-identity{flex:0 auto;align-content:center;gap:clamp(.32rem,.5vw,.42rem);min-width:0;display:grid;position:relative}.site-identity:before{background:var(--structure-muted);content:"";opacity:.48;transform-origin:0;width:4.2rem;max-width:100%;height:1px;transition:opacity var(--interaction-duration) var(--interaction-ease), background-color var(--interaction-duration) var(--interaction-ease), transform .42s var(--ease-out);display:block;transform:scaleX(.52)}.site-brand-row{white-space:nowrap;align-items:center;gap:.52rem;width:fit-content;min-width:0;display:inline-flex}.site-section-indicator{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);font-size:clamp(.52rem,.48rem + .1vw,.58rem);font-weight:500;line-height:1;transform:translateY(.05rem)}.site-brand{letter-spacing:.025em;text-transform:uppercase;width:fit-content;color:var(--text-primary);transition:color var(--interaction-duration) var(--interaction-ease);flex:none;font-size:clamp(1.02rem,.92rem + .36vw,1.18rem);font-weight:700;line-height:1;text-decoration:none;display:block;position:relative}.site-brand:hover{color:var(--text-primary)}.site-identity:has(.site-brand:hover):before{background:var(--structure);opacity:.72;transform:scaleX(1)}.site-brand-row:hover .site-section-indicator{color:var(--structure-muted);opacity:.66}.site-subtitle{width:fit-content;color:var(--text-muted);letter-spacing:.08em;text-transform:lowercase;font-size:clamp(.69rem,.66rem + .08vw,.75rem);font-weight:500;line-height:1;display:block;position:relative}.site-subtitle-text{opacity:1;align-items:center;gap:.42rem;display:inline-flex}.site-subtitle-item{color:inherit;align-items:center;display:inline-flex}.site-subtitle-separator{color:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){.site-subtitle-separator{color:color-mix(in oklch, var(--text-muted) 62%, transparent)}}.site-subtitle-separator{user-select:none}.site-header-right{justify-content:stretch;align-items:center;gap:clamp(var(--space-2), .8vw, var(--space-3));grid-template-columns:minmax(0,1fr) max-content;width:100%;min-width:0;display:grid}.site-controls{justify-content:flex-end;align-items:center;gap:clamp(.55rem,1vw,.75rem);min-width:max-content;display:flex}.ist-clock{column-gap:clamp(var(--space-3), 1.12vw, var(--space-4));border:1px solid var(--panel-border);grid-template-columns:minmax(0,1fr) clamp(11rem,24vw,18rem) minmax(0,1fr);grid-template-areas:"panel ambient readouts";align-items:center;width:100%;min-width:0;min-height:3.22rem;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.ist-clock{border:1px solid color-mix(in oklch, var(--panel-border) 54%, transparent)}}.ist-clock{background-color:var(--panel-surface);border-radius:5px}@supports (color:color-mix(in lab, red, red)){.ist-clock{background-color:color-mix(in oklch, var(--panel-surface) 58%, var(--header-surface))}}.ist-clock{color:var(--text-secondary);font-family:var(--font-code);font-variant-numeric:tabular-nums;box-shadow:none;white-space:nowrap;padding:.42rem .68rem;font-size:.7rem;font-weight:500;line-height:1}.ist-clock svg{color:var(--header-accent)}.telemetry-status-panel{grid-area:panel;align-content:center;justify-self:start;gap:.26rem;min-width:0;display:grid}.telemetry-ambient-panel{width:100%;min-width:0;padding-inline:clamp(var(--space-2), .8vw, var(--space-3));grid-area:ambient;justify-content:center;justify-self:center;align-items:center;display:flex}.telemetry-gauge{z-index:0;width:4.05rem;height:2.85rem;color:var(--header-accent);opacity:.24;pointer-events:none;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-needle,.telemetry-gauge-pivot{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.telemetry-gauge-arc{opacity:1;stroke:var(--border);stroke-width:1.45px}.telemetry-gauge-needle{filter:none;stroke:var(--header-accent);stroke-width:1.6px;will-change:transform}.telemetry-gauge-pivot{fill:var(--header-accent);stroke:none}.telemetry-status-line{align-items:center;gap:.42rem;min-width:0;display:flex;overflow:hidden}.telemetry-status-dot{background:var(--header-accent-muted);opacity:.68;border-radius:999px;flex:none;width:.38rem;height:.38rem;display:inline-block}.telemetry-time-line{flex:none;align-items:center;gap:.28rem;min-width:0;display:inline-flex}.telemetry-status-separator{color:var(--text-metadata);flex:none}@supports (color:color-mix(in lab, red, red)){.telemetry-status-separator{color:color-mix(in oklch, var(--text-metadata) 58%, transparent)}}.telemetry-status-separator{user-select:none;font-size:.62rem;line-height:1;transform:translateY(-.01rem)}.telemetry-time-label{color:var(--header-accent)}@supports (color:color-mix(in lab, red, red)){.telemetry-time-label{color:color-mix(in oklch, var(--header-accent) 48%, var(--text-metadata))}}.telemetry-time-label{letter-spacing:.08em;font-size:.54rem;font-weight:700}.telemetry-status-time{min-width:8ch;color:var(--structure-muted);font-variant-numeric:tabular-nums;letter-spacing:0;text-align:center;font-size:.64rem;font-weight:650;line-height:1;display:inline-block}.telemetry-context-line{align-items:center;gap:var(--space-2);min-width:0;display:flex}.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));grid-area:readouts;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}.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;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:opacity var(--focus-duration) var(--ease-out)}.ist-clock-status{min-width:0;color:var(--text-secondary);flex:0 auto;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.ist-clock-status{color:color-mix(in oklch, var(--text-secondary) 76%, var(--text-primary))}}.ist-clock-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-status-dot{animation:telemetry-status-pulse 4.8s var(--ease-precision) infinite}.telemetry-music-line[data-music-telemetry-state=live] .telemetry-music-icon{animation:telemetry-status-pulse 5.2s var(--ease-precision) infinite}}.site-nav{white-space:nowrap;flex-wrap:nowrap;flex:none;justify-content:flex-end;gap:.28rem;min-width:max-content;margin-left:-.18rem;display:flex;position:relative}.site-nav a{min-height:2.08rem;color:var(--text-primary);background-color:#0000;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.site-nav a{color:color-mix(in oklch, var(--text-primary) 46%, var(--text-secondary))}}.site-nav a{letter-spacing:0;text-transform:none;white-space:nowrap;isolation:isolate;transition:var(--transition-interactive-text);padding:.38rem .5rem;font-size:.82rem;font-weight:600;line-height:1}.site-nav a:after{content:"";opacity:0;transform-origin:50%;height:1px;transition:var(--transition-interactive-line);background-color:currentColor;position:absolute;bottom:.28rem;left:.5rem;right:.5rem;transform:scaleX(.36)}.site-nav a:hover,.site-nav a:focus-visible{border-color:var(--interaction-chip-border);background-color:var(--interaction-chip-surface);color:var(--interaction-text-hover)}.site-nav a:hover:after,.site-nav a:focus-visible:after,.site-nav a[aria-current=page]:after{opacity:.64;transform:scaleX(1)}.site-nav a[aria-current=page]{color:var(--interaction-text-hover)}.site-theme-toggle{width:1.58rem;height:1.58rem;color:var(--text-metadata);cursor:pointer;opacity:.78;transition:var(--transition-interactive-control);background-color:#0000;border:1px solid #0000;border-radius:3px;place-items:center;padding:0;display:inline-grid;position:absolute;inset-block-start:50%;inset-inline-start:calc(100% + .62rem);transform:translateY(-47%)}.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:-.32rem}.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}.button,.blog-card-link{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),.blog-card-link: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,.blog-card-link:active{border-color:var(--accent-pressed);background-color:var(--interaction-surface-pressed);color:var(--accent-pressed)}.text-link,.hero-reference-links a{width:fit-content;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:.12rem .24rem;font-weight:700;line-height:1.2;display:inline-flex}.text-link:is(:hover,:focus-visible),.hero-reference-links a: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(--border);color:var(--text-primary);background:0 0}.button-secondary{background:0 0}.button-compact{min-height:3rem;padding:.72rem .9rem;font-size:.9rem}.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:18ch;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-copy h1>span{display:block}.hero-heading-emphasis{color:var(--hero-heading-emphasis)}.hero-copy h1 [data-hero-identity]{min-height:1.08em;color:var(--heading-color)}@supports (color:color-mix(in lab, red, red)){.hero-copy h1 [data-hero-identity]{color:color-mix(in oklch, var(--heading-color) 78%, var(--text-muted))}}.hero-copy h1 [data-hero-identity]{font-size:.74em;font-weight:560;line-height:1.08}.hero-role{border:1px solid var(--structure-border);background:var(--structure-soft);width:fit-content;max-width:54rem;color:var(--text-primary);text-transform:none;padding:.7rem .9rem;font-size:clamp(.98rem,1.35vw,1.1rem);font-weight:700;line-height:1.18}.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-reference-links{border-top:1px solid var(--divider);align-items:center;gap:clamp(.68rem,1.4vw,1rem);width:fit-content;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.hero-reference-links{border-top:1px solid color-mix(in oklch, var(--divider) 76%, transparent)}}.hero-reference-links{color:var(--text-metadata);font-family:var(--font-code);margin-top:clamp(.28rem,.75vw,.55rem);padding-top:.72rem;font-size:clamp(.68rem,.9vw,.76rem);font-weight:650;line-height:1}.hero-reference-links>span{color:var(--structure-muted);letter-spacing:.04em;text-transform:uppercase}.hero-reference-links a{color:var(--text-secondary)}@supports (color:color-mix(in lab, red, red)){.hero-reference-links a{color:color-mix(in oklch, var(--text-secondary) 78%, var(--text-primary))}}.hero-reference-links a{font-size:inherit;font-weight:700}.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{gap:var(--space-5);width:min(100%,21rem);max-width:21rem;padding-block:var(--space-5) var(--space-4);place-self:end start;display:grid}.hero-portrait{gap:var(--space-4);align-items:flex-end;width:100%;margin:0;display:flex}.hero-portrait-frame{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-muted-strong);width:clamp(8rem,11vw,9rem);transition:border-color var(--focus-duration) var(--ease-out), transform .52s var(--ease-out);border-radius:8px;flex:none;position:relative;overflow:hidden;transform:translate(0)}.hero-portrait-frame:after{background:var(--structure);content:"";opacity:.62;transform-origin:0;height:1px;transition:opacity var(--focus-duration) var(--ease-out), transform var(--focus-duration) var(--ease-precision);position:absolute;bottom:.55rem;left:.55rem;right:.55rem;transform:scaleX(.42)}.hero-portrait-frame img{object-fit:cover;width:100%;height:100%;transition:filter .62s var(--ease-out), transform .62s var(--ease-out);transform:scale(1)}.hero-portrait:hover .hero-portrait-frame{border-color:var(--structure)}@supports (color:color-mix(in lab, red, red)){.hero-portrait:hover .hero-portrait-frame{border-color:color-mix(in oklch, var(--structure) 58%, var(--border))}}.hero-portrait:hover .hero-portrait-frame{transform:translateY(-.12rem)}.hero-portrait:hover .hero-portrait-frame:after{opacity:.86;transform:scaleX(1)}.hero-portrait:hover .hero-portrait-frame img{filter:saturate(1.05)contrast(1.03);transform:scale(1.035)}.hero-portrait figcaption{min-width:0;color:var(--text-muted);gap:.32rem;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.02rem,1.45vw,1.18rem);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{gap:0;margin:0;display:grid}.profile-observation-list div{gap:var(--space-3);border-top:1px solid var(--profile-rule);grid-template-columns:minmax(6.65rem,.45fr) minmax(0,1fr);padding:.62rem 0;display:grid}.profile-observation-list dt,.profile-observation-list dd{min-width:0;margin:0}.profile-observation-list dt{color:var(--structure-muted);font-family:var(--font-code);font-size:.64rem;font-weight:700;line-height:1.32}.profile-observation-list dd{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.profile-observation-list dd{color:color-mix(in oklch, var(--text-primary) 40%, var(--structure-muted))}}.profile-observation-list dd{text-wrap:pretty;transition:color var(--focus-duration) var(--ease-out);font-size:.86rem;font-weight:600;line-height:1.28}.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-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){.hero-copy h1 [data-hero-identity][data-hero-identity-change=true]{animation:hero-identity-settle var(--hero-identity-transition-duration) var(--ease-out) both;will-change:opacity, transform}.home-page .hero-copy h1,.home-page .hero-summary,.home-page .hero-reference-links,.home-page .hero-editorial{animation:hero-instrument-enter .36s var(--ease-expo) both}.home-page .hero-copy h1{animation-delay:40ms}.home-page .hero-summary{animation-delay:.115s}.home-page .hero-reference-links{animation-delay:.17s}.home-page .hero-editorial{animation-delay:.23s}}.content-section{z-index:0;width:var(--layout-width);padding:var(--section-block-spacing) 0;margin:0 auto;position:relative}.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}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.section-header>div:before{animation:linear both section-divider-reveal view();animation-range:entry 12% cover 34%}}}.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}.writing-meta,.blog-card-meta,.blog-post-meta,.entry-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}.section-kicker{max-width:32rem;color:var(--text-secondary);font-size:clamp(.98rem,1.35vw,1.12rem);font-weight:500;line-height:1.45}.timeline-live-ping{background-color:var(--experience-active-dot);animation:timeline-live-ping 1.6s 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,.resume-stack,.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,.focus-item,.skill-grid article,.education-list article,.achievement-list li,.archive-group,.archive-list a{background:var(--surface-card-readable,var(--surface));backdrop-filter:var(--surface-backdrop-filter);color:var(--text-primary);transition:var(--transition-interactive-card);border:0}.blog-card,.achievement-list li,.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}.company-logo{border:1px solid var(--border);background:var(--surface-raised);width:3rem;height:3rem;color:var(--text-primary);font-family:var(--font-code);place-items:center;font-size:.78rem;font-weight:700;line-height:1;display:grid;overflow:hidden}.company-logo img{object-fit:contain;width:100%;height:100%;padding:.45rem}.company-logo span{place-items:center;display:grid}.resume-entry a,.education-list a,.blog-prose a{color:var(--text-primary);font-weight:700}.resume-entry .entry-meta-detail a{color:inherit;font-weight:inherit;transition:color var(--focus-duration) var(--ease-out);text-decoration:none}.resume-entry .entry-meta-detail a:hover{color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.resume-entry .entry-meta-detail a:hover{color:color-mix(in oklch, var(--accent) 68%, var(--text-primary))}}.blog-card p,.resume-section p,.resume-entry ul,.skill-grid p,.education-list p{color:var(--text-secondary);font-weight:500;line-height:1.58}.tag-row{margin-top:var(--space-4);flex-wrap:wrap;gap:.4rem;display:flex}.tag-row span,.tag-row a,.taxonomy-cloud a{border:1px solid var(--list-rule-strong);background:var(--list-surface);min-height:1.65rem;color:var(--list-copy);font-family:var(--font-code);letter-spacing:0;text-transform:none;transition:var(--transition-interactive-control);align-items:center;padding:.22rem .42rem;font-size:.68rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.blog-post-hero .tag-row a,.blog-card .tag-row a{text-transform:lowercase}.tag-row a:hover,.taxonomy-cloud a:hover{background-color:var(--interaction-card-surface);box-shadow:var(--interaction-hover-shadow);color:var(--interaction-text-hover);border-color:#0000}.taxonomy-cloud a:hover strong{color:var(--interaction-text-hover);background-color:#0000}.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}.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:.34rem;display:flex}.writing-tag-row a{border:1px solid var(--structure);align-items:center;min-height:1.28rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.writing-tag-row a{border:1px solid color-mix(in oklch, var(--structure) 32%, var(--border))}}.writing-tag-row a{color:var(--text-primary);background:0 0}@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:.16rem .34rem;font-size:.62rem;font-weight:500;line-height:1;text-decoration:none}@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-rise-in{0%{opacity:0;transform:translate3d(0, var(--motion-enter-distance), 0) scale(.996)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes motion-fade-in{0%{opacity:0}to{opacity:1}}@keyframes motion-view-rise{0%{opacity:.48;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(10px)}to{opacity:1;transform:translate(0)}}@keyframes hero-identity-settle{0%{opacity:0;transform:translate3d(0, var(--hero-identity-shift), 0)}to{opacity:1;transform:translate(0)}}@keyframes photo-develop{0%{opacity:.58}to{opacity:1}}@keyframes section-divider-reveal{0%{opacity:.46;transform:scaleX(.35)}to{opacity:1;transform:scaleX(1)}}@keyframes timeline-live-ping{0%{opacity:.72;transform:scale(1)}72%,to{opacity:0;transform:scale(2.45)}}@keyframes timeline-live-ping-reduced{0%,to{opacity:.28;transform:scale(1.45)}50%{opacity:.58;transform:scale(1.82)}}@keyframes telemetry-status-pulse{0%{opacity:.68}10%,54%,to{opacity:.86}64%{opacity:.72}}.contact-preview-link{align-items:flex-start;display:inline-flex;position:relative}.contact-github-preview{display:none}.skill-grid,.education-list,.blog-list.compact{background:var(--border-subtle);gap:1px;display:grid}.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)}.blog-list.compact{background:0 0;grid-template-columns:1fr;gap:0}.blog-list.compact .blog-card{--blog-entry-inline:0rem;padding-block:var(--editorial-list-row-padding-airy)}.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(100vh - 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(100vh - 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)}@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:var(--space-4);right:var(--space-4);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}.achievement-list{background:var(--border-subtle);gap:1px;margin:0;padding:0;list-style:none;display:grid}.achievement-list li{color:var(--text-primary);font-size:clamp(.92rem,1.18vw,1rem);font-weight:700;line-height:1.28}.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{isolation:isolate;transition:var(--transition-interactive-card);padding:.62rem 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 a{color:inherit;text-decoration:none}.contact-directory a:hover,.contact-directory a:focus-visible{color:var(--interaction-text-hover)}.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-card-link svg,.blog-post-meta svg,.blog-card-meta svg,.resume-entry a svg{width:1em;height:1em;transition:color var(--focus-duration) var(--ease-out);flex:none}.contact-preview-link{width:fit-content;display:inline-flex;position:relative}[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) h3,.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{border-color:var(--interaction-chip-border);background-color:var(--interaction-chip-surface);color:var(--interaction-text-hover)}.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-preview-link:hover .contact-github-preview,.contact-preview-link: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}body.blog-index-page .blog-hero-meta-row{--blog-meta-row-gap:clamp(.34rem, .72vw, .5rem);gap:var(--blog-meta-row-gap);flex-wrap:nowrap;justify-content:space-between;align-items:baseline;display:flex}body.blog-index-page .blog-activity{color:var(--text-metadata);font-family:var(--font-code);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:.25rem 0;margin-top:0;font-size:.68rem;font-weight:500;line-height:1.3;display:flex}.blog-filter-inline{align-items:baseline;width:fit-content;margin-left:auto;display:inline-flex}.blog-filter-toolbar.blog-filter-toolbar-inline{--filter-control-height:1.38rem;--blog-filter-label-width:4.7rem;gap:var(--space-2);white-space:nowrap;border-top:0;border-bottom:0;flex-wrap:nowrap;justify-content:flex-end;align-items:center;width:fit-content;padding:0;display:flex}.blog-filter-toolbar.blog-filter-toolbar-inline .blog-filter-group-inline{white-space:nowrap;grid-template-columns:var(--blog-filter-label-width) minmax(0, 1fr);flex:none;align-content:center;place-items:center start;column-gap:.35rem;width:clamp(10.8rem,20vw,13.8rem);min-width:0;max-width:13.8rem;display:grid}.blog-filter-label{color:var(--text-metadata);font-family:var(--font-body);text-transform:none;margin:0;font-size:.68rem;font-weight:500;line-height:1.05;display:inline-block}.taxonomy-select{width:100%;min-height:var(--filter-control-height);appearance:none;border:1px solid var(--border-subtle);background-color:var(--surface-muted);color:var(--text-primary);cursor:pointer;font-family:var(--font-code);transition:var(--transition-interactive-control);text-overflow:ellipsis;white-space:nowrap;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - .72rem) 52%,calc(100% - .54rem) 52%;background-repeat:no-repeat;background-size:.22rem .22rem,.22rem .22rem;border-radius:4px;padding:.08rem 1.35rem .08rem .45rem;font-size:.66rem;font-weight:600;line-height:1.1}.taxonomy-select:hover,.taxonomy-select:focus-visible{border-color:var(--interaction-chip-border);background-color:var(--interaction-chip-surface);color:var(--interaction-text-hover);outline:2px solid var(--focus-ring);outline-offset:2px}@media (width<=720px){body.blog-index-page .blog-hero>.blog-hero-shell{gap:var(--space-4);grid-template-columns:1fr}body.blog-index-page .blog-hero-copy .blog-activity,body.blog-index-page .blog-hero-copy .blog-filter-inline{width:100%}body.blog-index-page .blog-hero-meta-row{gap:var(--space-2);flex-flow:column wrap;align-items:flex-start}.blog-filter-toolbar-inline,.blog-filter-toolbar.blog-filter-toolbar-inline{gap:var(--space-2);flex-flow:column wrap;justify-content:flex-start;align-items:flex-start;width:100%;display:flex}.blog-filter-toolbar.blog-filter-toolbar-inline .blog-filter-group-inline{flex-wrap:nowrap;justify-content:flex-start;width:100%;max-width:min(100%,26rem)}.blog-filter-toolbar.blog-filter-toolbar-inline .taxonomy-select{width:100%}.blog-card{padding:var(--editorial-list-row-padding-airy) 0;grid-template-columns:1fr;gap:.42rem;margin-inline:0}.blog-card-meta{flex-wrap:wrap;align-items:center;gap:.2rem 0;display:flex}.blog-card-meta span{align-items:center;display:inline-flex}.blog-card-meta span+span:before{color:var(--list-rule-strong);content:"•";margin-inline:.42rem}.blog-card-featured .blog-card-meta:after{margin-left:.42rem}.blog-pagination{grid-template-columns:1fr;justify-items:start}.blog-pagination-pages{justify-content:flex-start}.blog-pagination-next{justify-self:start}}body.blog-index-page .blog-activity time:before,body.blog-index-page .blog-page-count:before{color:var(--divider-subtle);content:"•";margin-inline:.58rem}.blog-hero.compact{gap:var(--space-6);border-bottom:1px solid var(--border);align-items:end;display:grid}.blog-local-nav{flex-wrap:wrap;gap:.4rem;display:flex}.blog-local-nav a{border:1px solid var(--border);letter-spacing:0;text-transform:none;min-height:2.75rem;transition:var(--transition-interactive-control);align-items:center;padding:.6rem .8rem;font-size:.85rem;font-weight:700;text-decoration:none;display:inline-flex}.blog-local-nav a:hover{border-color:var(--interaction-border-strong);background-color:var(--interaction-surface-accent);color:var(--text-primary)}.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:.15rem .42rem;margin:0;padding:0;list-style:none;display:flex}.blog-pagination-control,.blog-pagination-page{min-height:1.65rem;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:1.35rem}.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 h3{font-size:clamp(1.05rem,1.55vw,1.24rem)}.blog-card h3{max-width:42ch;color:var(--list-title);letter-spacing:-.018em;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:.2rem;font-size:.64rem;font-weight:500;line-height:1.2;display:flex}.blog-card-tags a{color:inherit;transition:color var(--interaction-duration) var(--interaction-ease);text-decoration:none}.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{flex-wrap:wrap;gap:.4rem;display:flex}.taxonomy-cloud a{gap:.45rem}.taxonomy-cloud strong{background:var(--structure-soft);min-width:1.4rem;color:var(--list-meta-strong);font-family:var(--font-code);place-items:center;padding:.15rem;font-size:.68rem;display:inline-grid}.blog-filter-section{width:var(--layout-width);margin:0 auto;padding:0 0 clamp(.78rem,1.4vw,1.05rem)}.blog-filter-toolbar{--filter-control-height:1.55rem;gap:var(--space-3);border-top:1px solid var(--border-subtle);display:grid}@supports (color:color-mix(in lab, red, red)){.blog-filter-toolbar{border-top:1px solid color-mix(in oklch, var(--border-subtle) 68%, transparent)}}.blog-filter-toolbar{border-bottom:1px solid var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){.blog-filter-toolbar{border-bottom:1px solid color-mix(in oklch, var(--border-subtle) 68%, transparent)}}.blog-filter-toolbar{padding:.72rem 0}.blog-filter-group{align-items:start;gap:var(--space-4);grid-template-columns:6.5rem minmax(0,1fr);min-width:0;display:grid}.blog-filter-group h2{color:var(--text-primary);margin:0}@supports (color:color-mix(in lab, red, red)){.blog-filter-group h2{color:color-mix(in oklch, var(--text-primary) 34%, var(--text-secondary))}}.blog-filter-group h2{font-family:var(--font-body);letter-spacing:0;font-size:.78rem;font-weight:600;line-height:var(--filter-control-height);text-transform:none}.blog-filter-toolbar .taxonomy-cloud{flex-wrap:wrap;gap:.38rem .48rem;min-width:0}.blog-filter-toolbar .taxonomy-filter{appearance:none;min-height:var(--filter-control-height);border:1px solid;border-color:var(--list-rule);background-color:var(--list-surface);color:var(--list-copy);cursor:pointer;font-family:var(--font-code);text-transform:none;transition:var(--transition-interactive-control);border-radius:4px;align-items:center;gap:.18rem;padding:.18rem .42rem;font-size:.66rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.blog-filter-group:first-child .taxonomy-filter{border-color:var(--list-rule-strong);color:var(--list-copy)}.blog-filter-toolbar .taxonomy-filter strong{min-width:auto;color:var(--list-meta);font-size:inherit;font-variant-numeric:tabular-nums;font-weight:500;line-height:inherit;background:0 0;padding:0;display:inline}.blog-filter-toolbar .taxonomy-filter strong:before{content:"("}.blog-filter-toolbar .taxonomy-filter strong:after{content:")"}.blog-filter-toolbar .taxonomy-filter:is(:hover,:focus-visible){border-color:var(--interaction-chip-border);background-color:var(--interaction-chip-surface);color:var(--interaction-text-hover)}.blog-filter-toolbar .taxonomy-filter:is(:hover,:focus-visible) strong{color:var(--interaction-text-hover)}.blog-filter-toolbar .taxonomy-filter:focus-visible,.blog-filter-empty button:focus-visible{outline:1px solid var(--focus-ring);outline-offset:2px}.blog-filter-toolbar .taxonomy-filter.is-active{border-color:var(--interaction-border-strong);background-color:var(--interaction-surface-accent)}@supports (color:color-mix(in lab, red, red)){.blog-filter-toolbar .taxonomy-filter.is-active{background-color:color-mix(in oklch, var(--interaction-surface-accent) 84%, var(--interaction-card-surface))}}.blog-filter-toolbar .taxonomy-filter.is-active{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.blog-filter-toolbar .taxonomy-filter.is-active{color:color-mix(in oklch, var(--text-primary) 88%, var(--interaction-text-active))}}.blog-filter-toolbar .taxonomy-filter.is-active strong{color:var(--text-primary)}@supports (color:color-mix(in lab, red, red)){.blog-filter-toolbar .taxonomy-filter.is-active strong{color:color-mix(in oklch, var(--text-primary) 58%, var(--structure-muted))}}.blog-card[data-logbook-entry]{transition:var(--transition-interactive-card)}.blog-card[data-logbook-entry].is-filter-hidden{opacity:0;pointer-events:none;transform:translateY(.35rem)}.blog-filter-empty{gap:var(--space-3);border-top:1px solid var(--border-subtle);display:grid}@supports (color:color-mix(in lab, red, red)){.blog-filter-empty{border-top:1px solid color-mix(in oklch, var(--border-subtle) 64%, transparent)}}.blog-filter-empty{border-bottom:1px solid var(--border-subtle)}@supports (color:color-mix(in lab, red, red)){.blog-filter-empty{border-bottom:1px solid color-mix(in oklch, var(--border-subtle) 64%, transparent)}}.blog-filter-empty{margin-top:var(--space-3);padding:var(--editorial-list-row-padding-airy) 0}.blog-filter-empty[hidden]{display:none}.blog-filter-empty p{color:var(--text-secondary);margin:0;font-size:.95rem}.blog-filter-empty button{width:fit-content;color:var(--structure-muted);cursor:pointer;font-family:var(--font-code);transition:var(--transition-interactive-control);background-color:#0000;border:1px solid #0000;border-radius:3px;padding:.14rem .28rem;font-size:.68rem;font-weight:600}.blog-filter-empty button:hover{border-color:var(--interaction-border);background-color:var(--interaction-surface);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}body.blog-post-page .ist-clock{background-color:var(--panel-surface)}.post-hero-topline{display:flex}.post-back-link{width:fit-content;color:var(--reading-faint);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:.14rem .26rem;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}}.writing-meta{letter-spacing:0;text-transform:none}.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{height:var(--toc-progress);background:var(--structure-border);max-height:calc(100% - 1.04rem)}@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{transition:height .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{color:var(--text-secondary);opacity:0;margin-left:.35rem;font-size:.75em;text-decoration:none}.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}.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))}}.blog-prose pre{border:1px solid var(--code-border);color:var(--code-copy);margin-block:var(--space-6);tab-size:2;-webkit-overflow-scrolling:touch;border-radius:8px;padding:2.7rem 0 1.25rem;position:relative;overflow-x:auto;background:var(--code-surface)!important}.blog-prose pre:before{color:var(--code-label);content:attr(data-code-label);font-family:var(--font-reading-code,var(--font-code));letter-spacing:0;text-transform:lowercase;font-size:.68rem;font-weight:700;position:absolute;top:.74rem;left:.9rem}.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{border:1px solid var(--border-subtle);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:.24rem .42rem;font-size:.66rem;font-weight:700;position:absolute;top:.56rem;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)}.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{color:var(--reading-muted)}.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)}body.resume-page{--resume-page-width:59.375rem;--resume-measure:70ch;--resume-section-label:8rem;--resume-date-column:12.5rem;--resume-section-flow:var(--space-7);--resume-entry-flow:var(--space-6);--resume-content-flow:var(--space-4);background:var(--background);line-height:1.5}body.resume-page .site-header{border-bottom-color:var(--header-border);background-color:var(--header-surface)}body.resume-page .resume-entry a,body.resume-page .education-list a{color:var(--text-primary)}body.resume-page .resume-entry a:hover,body.resume-page .education-list a:hover{color:var(--interaction-text-hover)}.resume-layout,.resume-canvas{justify-items:center;width:100%;margin:0;padding-block:clamp(1.6rem,4vw,2.8rem) clamp(3rem,7vw,5.5rem);display:grid}.resume-document,.resume-container{width:min(calc(100% - var(--page-gutter) - var(--page-gutter)), var(--resume-page-width));max-width:var(--resume-page-width);gap:var(--resume-section-flow);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.resume-hero{gap:var(--space-3);border-bottom:0;padding-bottom:0;display:grid}.resume-identity{gap:var(--space-4);align-items:center;display:flex}.resume-photo{aspect-ratio:1;border:1px solid var(--border);background:var(--surface-muted-strong);object-fit:cover;flex:none;width:clamp(4rem,8vw,5.25rem)}.resume-hero h1{letter-spacing:-.025em;text-transform:none;max-width:18ch;font-size:clamp(1.75rem,3.6vw,2.4rem)}.resume-role{margin-top:.25rem;line-height:1.35;color:var(--text-secondary)!important;font-weight:500!important}.resume-summary{margin-top:.65rem}.resume-hero p{max-width:46rem;color:var(--text-secondary);font-size:clamp(.96rem,1.4vw,1.08rem);font-weight:500;line-height:1.4}.resume-contact{flex-wrap:wrap;gap:.35rem;display:flex}.resume-contact a,.resume-contact span{border:1px solid var(--border);min-height:2.15rem;color:var(--text-primary);letter-spacing:0;text-transform:none;transition:var(--transition-interactive-control);background-color:#0000;align-items:center;padding:.35rem .52rem;font-size:.78rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.resume-contact a:hover{border-color:var(--interaction-border-strong);background-color:var(--interaction-surface-accent);color:var(--text-primary)}.resume-section{gap:var(--resume-content-flow);border-top:0;grid-template-columns:minmax(0,1fr);padding-top:0;display:grid}.resume-section h2{color:var(--text-primary);letter-spacing:-.015em;text-transform:none;font-size:clamp(1.02rem,1.6vw,1.18rem);line-height:1.1}.resume-section p{max-width:var(--resume-measure)}.resume-stack{background:0 0;gap:0}.resume-entry{background:0 0;padding:0}.resume-entry+.resume-entry{border-top:1px solid var(--border-subtle);margin-top:var(--resume-entry-flow);padding-top:var(--resume-entry-flow)}.resume-entry-body{min-width:0;max-width:100%}.resume-entry h3{letter-spacing:-.02em;text-transform:none;margin-bottom:0;font-size:clamp(.98rem,1.25vw,1.08rem);line-height:1.08}.resume-entry .resume-company{letter-spacing:-.015em;font-size:clamp(1.02rem,1.4vw,1.16rem);line-height:1.1}.resume-entry .experience-role{color:var(--text-primary);margin-top:.3rem;margin-bottom:0}@supports (color:color-mix(in lab, red, red)){.resume-entry .experience-role{color:color-mix(in oklch, var(--text-primary) 30%, var(--text-secondary))}}.resume-entry .experience-role{font-family:var(--font-body);font-size:.86rem;font-weight:500;line-height:1.42}.resume-entry .experience-context{color:var(--text-primary);margin:.3rem 0 0}@supports (color:color-mix(in lab, red, red)){.resume-entry .experience-context{color:color-mix(in oklch, var(--text-primary) 34%, var(--text-secondary))}}.resume-entry .experience-context{font-size:.8rem;line-height:1.42}.resume-company-row{gap:var(--space-3);align-items:flex-start;display:flex}.resume-company-logo{width:2.35rem;height:2.35rem;font-size:.66rem}.resume-entry .entry-meta{color:var(--structure-muted);gap:.28rem;margin-top:.56rem;font-size:.74rem;line-height:1.32;display:grid}.resume-entry .entry-meta span{align-items:center;gap:.35rem;display:inline-flex}.resume-entry .entry-meta-detail{gap:.28rem}.resume-entry .entry-meta-detail strong{color:var(--structure-strong)}@supports (color:color-mix(in lab, red, red)){.resume-entry .entry-meta-detail strong{color:color-mix(in oklch, var(--structure-strong) 82%, var(--text-secondary))}}.resume-entry .entry-meta-detail strong{font-weight:700}.resume-duration{font-variant-numeric:tabular-nums}.resume-entry-summary{margin-top:var(--space-3);font-size:clamp(.98rem,1.1vw,1rem);max-width:var(--resume-measure)!important;color:var(--text-secondary)!important;font-weight:500!important;line-height:1.56!important}.resume-achievements{max-width:var(--resume-measure);gap:var(--space-2);margin:var(--space-3) 0 0;color:var(--text-primary);padding:0;list-style:none;display:grid}.resume-achievements li{color:var(--text-primary);padding-left:.95rem;font-size:clamp(.96rem,1vw,1rem);font-weight:400;line-height:1.54;position:relative}.resume-achievements li:before{aspect-ratio:1;background:var(--text-secondary);content:"";border-radius:999px;width:.28rem;position:absolute;top:.66em;left:0}.resume-tags{margin-top:var(--space-3);gap:.35rem}.resume-tags span{border-color:var(--border-subtle);min-height:1.45rem;color:var(--text-secondary);background:0 0;border-radius:999px;padding:.2rem .44rem;font-size:.7rem;font-weight:600}.resume-list li::marker{color:var(--text-secondary)}.skill-grid,.education-list{gap:var(--space-4);background:0 0}.skill-grid article,.education-list article{border-top:1px solid var(--border-subtle);padding-top:var(--space-3);background:0 0;gap:.25rem;display:grid}.skill-grid h3,.education-list h3{letter-spacing:-.015em;text-transform:none;font-size:clamp(.92rem,1.2vw,1rem);line-height:1.15}.resume-list{max-width:var(--resume-measure);background:0 0;padding-left:1.1rem;list-style:outside}.resume-list li{color:var(--text-secondary);background:0 0;border:0;padding:0;font-size:.92rem;font-weight:500;line-height:1.48;display:list-item}.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}.skill-grid,.education-list{grid-template-columns:repeat(2,minmax(0,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)}.resume-section{grid-template-columns:var(--resume-section-label) minmax(0, 1fr);column-gap:var(--space-6);align-items:start}.resume-section>h2{grid-column:1}.resume-section>:not(h2){grid-column:2;min-width:0}.experience-entry .resume-entry-body{grid-template-columns:minmax(0, 1fr) var(--resume-date-column);column-gap:var(--space-6);align-items:start;max-width:none;display:grid}.experience-entry .resume-entry-body>h3,.experience-entry .resume-entry-body>.resume-company-row,.experience-entry .resume-entry-body>.experience-role,.experience-entry .resume-entry-body>.experience-context,.experience-entry .resume-entry-body>.resume-entry-summary,.experience-entry .resume-entry-body>.resume-achievements,.experience-entry .resume-entry-body>.resume-tags{grid-column:1}.experience-entry .entry-meta{text-align:right;grid-area:1/2/span 5;justify-items:end;margin-top:0}.resume-hero{grid-template-columns:minmax(0, 1fr) var(--resume-date-column);column-gap:var(--space-6);align-items:start}.resume-contact{justify-content:flex-end;justify-items:end;padding-top:.25rem;display:grid}}@media (width>=1040px){.site-header{min-height:5.25rem}.site-header-shell{grid-template-columns:minmax(13rem,.17fr) minmax(0,1fr)}.site-header-right{grid-template-columns:minmax(0,1fr) max-content}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1180px){.site-header-right{grid-template-columns:minmax(0,1fr) max-content}}@media (width<=1180px){.site-header-right{grid-template-columns:minmax(0,1fr);justify-items:end}.ist-clock{max-width:min(100%,52rem)}.site-controls{justify-self:end}}@media (width<=1040px){.telemetry-context-line:has(.telemetry-current[data-current-telemetry-kind=experiment]),.telemetry-context-line:has(.telemetry-current[data-current-telemetry-kind=observation]){display:none}}@media (width<=820px){.telemetry-context-line:has(.telemetry-current[data-current-telemetry-kind=focus]){display:none}}@media (width<=900px){:root{--site-header-offset:8.1rem}.site-header .telemetry-module{display:none}.site-header-shell{gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-items:start}.site-header-right{justify-items:start}.site-controls{justify-self:start}}@media (width<=640px){:root{--page-gutter:clamp(1.25rem, 6vw, 1.5rem);--site-header-offset:7.65rem}.site-header{padding:max(1rem, env(safe-area-inset-top)) max(var(--page-gutter), env(safe-area-inset-right)) .95rem max(var(--page-gutter), env(safe-area-inset-left))}.site-header-shell{gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-items:start;width:100%}.site-identity{gap:.32rem}.site-identity:before{width:3.8rem;height:1px}.site-brand{min-height:0;font-size:clamp(1.02rem,4.8vw,1.2rem)}.site-brand-row{gap:.4rem}.site-section-indicator{font-size:clamp(.5rem,2.25vw,.56rem)}.site-subtitle{font-size:clamp(.69rem,3vw,.75rem)}.site-header-right{justify-items:start;gap:var(--space-2);grid-template-columns:minmax(0,1fr);width:100%}.site-controls{gap:var(--space-3);order:2;grid-template-columns:minmax(0,1fr);align-items:center;width:100%;display:grid}.site-nav{justify-content:space-between;gap:var(--space-4);order:0;width:100%;margin-left:0}.site-theme-toggle{width:1.52rem;height:1.52rem}.site-nav a{min-height:2rem;padding:.32rem .45rem;font-size:.75rem}.site-nav a:before{inset:calc(var(--space-2) * -1) calc(var(--space-1) * -1);content:"";position:absolute}.hero-section{padding-top:var(--space-6);padding-bottom:var(--space-7)}.hero-shell{gap:var(--space-6)}.hero-copy h1{max-width:14ch;font-size:clamp(2.05rem,11vw,3rem);line-height:1.04}.hero-reference-links{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,.taxonomy-select,.blog-pagination-control,.blog-pagination-page{min-height:2.75rem}.taxonomy-select{padding:.54rem 2rem .54rem .72rem;font-size:.8rem}.blog-pagination{gap:var(--space-2)}.blog-pagination-pages{gap:.24rem .5rem}.blog-filter-section{padding-bottom:var(--space-3)}.blog-filter-toolbar{gap:var(--space-3);margin-inline:calc(var(--page-gutter) * -1);padding:var(--space-2) var(--page-gutter)}.blog-filter-group{gap:var(--space-1);grid-template-columns:1fr}.blog-filter-group h2{line-height:1.1}.blog-filter-toolbar .taxonomy-cloud{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:.05rem;overflow-x:auto}.blog-filter-toolbar .taxonomy-cloud::-webkit-scrollbar{display:none}body.blog-index-page .blog-list-section{padding-top:var(--space-4);padding-bottom:var(--space-7)}.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(100vh - 1rem)}.photo-lightbox[open]{gap:var(--space-3);grid-template-columns:1fr}.photo-lightbox img{max-height:calc(100vh - 12rem)}.photo-lightbox-nav{width:fit-content}.photo-lightbox-prev{justify-self:start}.photo-lightbox-next{justify-self:end}.button,.blog-card-link{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,.site-nav a,.button,.blog-card-link,.github-contributions-link,.blog-filter-toolbar .taxonomy-filter,.taxonomy-select,.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{animation:timeline-live-ping-reduced 1.8s var(--ease-precision) infinite!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,.resume-hero p,.resume-section p,.resume-entry ul,.entry-meta{color:#000!important}.resume-layout{width:100%;padding:0;display:block}.resume-document,.resume-container,.resume-section{gap:.6rem}.resume-document,.resume-container{width:100%;max-width:none}.resume-hero,.resume-entry,.skill-grid article,.education-list article,.achievement-list li{background:#fff;border-color:#000;padding:0}.resume-section h2{border-bottom:1px solid #000;padding-bottom:.2rem}.resume-entry{break-inside:avoid;padding-bottom:.6rem}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:""}
