@charset "UTF-8";@layer vendor,tokens,reset,base,atoms,molecules,organisms,pages,utilities;@layer tokens{:root{--p-color-primary-100: hsl(304, 72%, 80%);--p-color-primary-300: hsl(304, 72%, 64%);--p-color-primary-500: hsl(304, 72%, 54%);--p-color-primary-darker: hsl(304, 72%, 34%);--p-color-primary-dark: hsl(304, 72%, 15%);--p-color-primary-100-vivid: hsl(304, 80%, 82%);--p-color-primary-300-vivid: hsl(304, 80%, 68%);--p-color-primary-500-vivid: hsl(304, 80%, 60%);--p-color-primary-darker-vivid: hsl(304, 75%, 38%);--p-color-primary-dark-vivid: hsl(304, 60%, 18%);--p-color-secondary: #ffeadb;--p-color-secondary-dark: #1e0a28;--p-color-tertiary: #e0ca3c;--p-color-tertiary-dark: #4d4331;--p-color-support: hsl(172, 71%, 25%);--p-color-support-bright: hsl(172, 80%, 35%);--p-color-white: #fff;--p-color-black: #000;--p-color-rss-1: hsl(142, 69%, 50%);--p-color-rss-2: hsl(142, 66%, 30%);--p-color-warm-lightest: #faf7f2;--p-color-warm-darkest: #2a2622;--p-color-warm-text: #4b443d;--p-color-warm-text-light: #645d56;--p-color-warm-text-muted: #6b645d;--p-color-gray-warm-100: rgb(58 52 42 / .08);--p-color-gray-warm-200: rgb(58 52 42 / .15);--p-color-gray-warm-300: rgb(58 52 42 / .25);--p-color-gray-warm-400: rgb(58 52 42 / .35);--p-color-gray-warm-500: rgb(58 52 42 / .48);--p-color-gray-warm-600: rgb(58 52 42 / .6);--p-color-gray-warm-700: rgb(58 52 42 / .7);--p-color-gray-warm-800: rgb(58 52 42 / .8);--p-color-gray-warm-900: rgb(58 52 42 / .9);--p-color-gray-warm-1000: rgb(58 52 42);--p-color-cool-lightest: #161420;--p-color-cool-darkest: #f5f0eb;--p-color-cool-text: #e8e4df;--p-color-cool-text-light: #c8c3bc;--p-color-cool-text-muted: #f5f0eb;--p-color-gray-cool-100: rgb(232 228 223 / .08);--p-color-gray-cool-200: rgb(232 228 223 / .15);--p-color-gray-cool-300: rgb(232 228 223 / .25);--p-color-gray-cool-400: rgb(232 228 223 / .35);--p-color-gray-cool-500: rgb(232 228 223 / .48);--p-color-gray-cool-600: rgb(232 228 223 / .6);--p-color-gray-cool-700: rgb(232 228 223 / .7);--p-color-gray-cool-800: rgb(232 228 223 / .8);--p-color-gray-cool-900: rgb(232 228 223 / .9);--p-color-gray-cool-1000: rgb(232 228 223);--p-surface-warm-0: oklch(96.5% .012 75);--p-surface-warm-1: oklch(94.3% .014 72);--p-surface-warm-2: oklch(97.8% .01 78);--p-surface-warm-border: oklch(82% .02 68);--p-surface-warm-header: oklch(95% .012 32);--p-accent-warm: oklch(65% .03 320 / .28);--p-glass-warm: rgb(58 52 42 / .05);--p-glass-warm-border: rgb(58 52 42 / .07);--p-glass-warm-hover: rgb(58 52 42 / .1);--p-highlight-warm: rgb(146 38 139 / .1);--p-highlight-warm-strong: rgb(146 38 139 / .15);--p-gradient-warm: rgb(250 247 242 / .7);--p-surface-cool-0: #161420;--p-surface-cool-1: oklch(24% .03 304);--p-surface-cool-2: oklch(28% .04 304);--p-surface-cool-border: oklch(42% .02 304 / .6);--p-surface-cool-header: #211e30;--p-accent-cool: oklch(73% .08 304 / .45);--p-glass-cool: rgb(255 255 255 / .06);--p-glass-cool-border: rgb(255 255 255 / .08);--p-glass-cool-hover: rgb(255 255 255 / .12);--p-highlight-cool: rgb(192 108 171 / .15);--p-highlight-cool-strong: rgb(192 108 171 / .22);--p-gradient-cool: rgb(22 20 32 / .7);--p-color-link-warm: hsl(304, 44%, 31%);--p-color-link-warm-hover: rebeccapurple;--p-color-link-warm-visited: hsl(304, 35%, 27%);--p-color-link-cool: hsl(304, 50%, 68%);--p-color-link-cool-hover: hsl(304, 55%, 76%);--p-color-link-cool-visited: hsl(304, 40%, 64%);--p-shadow-warm-subtle: 0 1px 3px rgb(58 52 42 / .04);--p-shadow-warm-medium: 0 2px 8px rgb(58 52 42 / .06), 0 4px 16px rgb(58 52 42 / .04);--p-shadow-warm-elevated: 0 4px 12px rgb(58 52 42 / .08), 0 8px 32px rgb(58 52 42 / .06);--p-shadow-cool-subtle: 0 1px 3px rgb(0 0 0 / .15);--p-shadow-cool-medium: 0 2px 8px rgb(0 0 0 / .2), 0 4px 16px rgb(0 0 0 / .12);--p-shadow-cool-elevated: 0 4px 12px rgb(0 0 0 / .25), 0 8px 32px rgb(0 0 0 / .18)}}@layer tokens{:root{--s-color-text: var(--p-color-warm-text);--s-color-text-light: var(--p-color-warm-text-light);--s-color-text-lightest: var(--p-color-warm-text-muted);--s-color-text-on-dark: var(--p-color-white);--s-color-text-inverse: var(--p-color-warm-darkest);--s-color-brand-primary: var(--p-color-primary-500);--s-color-brand-primary-light: var(--p-color-primary-100);--s-color-brand-primary-muted: var(--p-color-primary-300);--s-color-brand-primary-dark: var(--p-color-primary-darker);--s-color-brand-primary-darkest: var(--p-color-primary-dark);--s-color-secondary: var(--p-color-secondary);--s-color-support: var(--p-color-support);--s-color-rss-1: var(--p-color-rss-1);--s-color-rss-2: var(--p-color-rss-2);--s-surface-0: var(--p-surface-warm-0);--s-surface-1: var(--p-surface-warm-1);--s-surface-2: var(--p-surface-warm-2);--s-surface-contrast: var(--p-color-warm-lightest);--s-surface-border: var(--p-surface-warm-border);--s-accent-subtle: var(--p-accent-warm);--s-color-surface-glass: var(--p-glass-warm);--s-color-surface-glass-border: var(--p-glass-warm-border);--s-color-surface-glass-hover: var(--p-glass-warm-hover);--s-color-highlight: var(--p-highlight-warm);--s-color-highlight-strong: var(--p-highlight-warm-strong);--s-color-gray-100: var(--p-color-gray-warm-100);--s-color-gray-200: var(--p-color-gray-warm-200);--s-color-gray-300: var(--p-color-gray-warm-300);--s-color-gray-400: var(--p-color-gray-warm-400);--s-color-gray-500: var(--p-color-gray-warm-500);--s-color-gray-600: var(--p-color-gray-warm-600);--s-color-gray-700: var(--p-color-gray-warm-700);--s-color-gray-800: var(--p-color-gray-warm-800);--s-color-gray-900: var(--p-color-gray-warm-900);--s-color-link: var(--p-color-link-warm);--s-color-link-hover: var(--p-color-link-warm-hover);--s-color-link-visited: var(--p-color-link-warm-visited);--s-color-bg: var(--s-surface-0);--s-color-divider: var(--s-surface-border);--s-color-header-bg: var(--p-surface-warm-header);--s-color-logo: var(--p-color-warm-darkest);--s-color-logo-bg: var(--p-color-primary-500);--s-color-image-gradient: var(--p-gradient-warm);--s-color-overlay-bg: var(--s-surface-0);--s-color-overlay-text: var(--p-color-primary-darker);--s-color-overlay-text-hover: var(--p-color-primary-500);--s-color-overlay-text-active: var(--s-color-text);--s-color-overlay-divider: var(--p-color-gray-warm-300);--s-color-overlay-btn-bg: var(--p-glass-warm);--s-color-overlay-btn-border: var(--p-glass-warm-border);--s-color-overlay-btn-hover: var(--p-glass-warm-hover);--s-color-overlay-btn-color: var(--p-color-warm-darkest);--s-shadow-subtle: var(--p-shadow-warm-subtle);--s-shadow-medium: var(--p-shadow-warm-medium);--s-shadow-elevated: var(--p-shadow-warm-elevated);--s-accent-weight: 3px;--s-scrollbar-thumb: color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary) 65% );--s-scrollbar-track: var(--s-color-gray-100);--s-scrollbar-thumb-root: color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary-muted) 78% );--s-scrollbar-track-root: var(--s-color-gray-100)}}@layer tokens{.dark{--s-color-brand-primary: var(--p-color-primary-500-vivid);--s-color-brand-primary-light: var(--p-color-primary-100-vivid);--s-color-brand-primary-muted: var(--p-color-primary-300-vivid);--s-color-brand-primary-dark: var(--p-color-primary-darker-vivid);--s-color-brand-primary-darkest: var(--p-color-primary-dark-vivid);--s-color-secondary: var(--p-color-secondary-dark);--s-color-support: var(--p-color-support-bright);--s-color-text: var(--p-color-cool-text);--s-color-text-light: var(--p-color-cool-text-light);--s-color-text-lightest: var(--p-color-cool-text-muted);--s-color-text-inverse: var(--p-color-cool-darkest);--s-surface-0: var(--p-surface-cool-0);--s-surface-1: var(--p-surface-cool-1);--s-surface-2: var(--p-surface-cool-2);--s-surface-contrast: var(--p-color-cool-lightest);--s-surface-border: var(--p-surface-cool-border);--s-accent-subtle: var(--p-accent-cool);--s-color-surface-glass: var(--p-glass-cool);--s-color-surface-glass-border: var(--p-glass-cool-border);--s-color-surface-glass-hover: var(--p-glass-cool-hover);--s-color-highlight: var(--p-highlight-cool);--s-color-highlight-strong: var(--p-highlight-cool-strong);--s-color-gray-100: var(--p-color-gray-cool-100);--s-color-gray-200: var(--p-color-gray-cool-200);--s-color-gray-300: var(--p-color-gray-cool-300);--s-color-gray-400: var(--p-color-gray-cool-400);--s-color-gray-500: var(--p-color-gray-cool-500);--s-color-gray-600: var(--p-color-gray-cool-600);--s-color-gray-700: var(--p-color-gray-cool-700);--s-color-gray-800: var(--p-color-gray-cool-800);--s-color-gray-900: var(--p-color-gray-cool-900);--s-color-link: var(--p-color-link-cool);--s-color-link-hover: var(--p-color-link-cool-hover);--s-color-link-visited: var(--p-color-link-cool-visited);--s-color-bg: var(--s-surface-0);--s-color-divider: var(--p-color-gray-cool-200);--s-color-header-bg: var(--p-surface-cool-header);--s-color-logo: var(--p-color-cool-darkest);--s-color-logo-bg: var(--p-color-primary-500-vivid);--s-color-image-gradient: var(--p-gradient-cool);--s-color-overlay-bg: var(--p-color-primary-dark-vivid);--s-color-overlay-text: var(--p-color-white);--s-color-overlay-text-hover: var(--p-color-primary-300-vivid);--s-color-overlay-text-active: var(--p-color-primary-100-vivid);--s-color-overlay-divider: rgb(255 255 255 / .25);--s-color-overlay-btn-bg: var(--p-glass-cool-border);--s-color-overlay-btn-border: rgb(255 255 255 / .15);--s-color-overlay-btn-hover: rgb(255 255 255 / .16);--s-color-overlay-btn-color: var(--p-color-white);--s-shadow-subtle: var(--p-shadow-cool-subtle);--s-shadow-medium: var(--p-shadow-cool-medium);--s-shadow-elevated: var(--p-shadow-cool-elevated);--c-btn-color: var(--s-color-text-inverse);--c-btn-border: rgb(255 255 255 / .22);--c-btn-stop-1: color-mix( in oklab, var(--s-surface-1), var(--s-color-brand-primary) 13% );--c-btn-stop-2: color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary) 38% );--c-btn-hover-stop-1: color-mix( in oklab, var(--s-surface-1), var(--s-color-brand-primary) 22% );--c-btn-hover-stop-2: color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary) 55% );--c-btn-hover-angle: 196deg;--c-btn-hover-color: var(--s-color-text-on-dark);--c-btn-hover-border: color-mix( in oklab, rgb(255 255 255 / .34), var(--s-color-brand-primary-muted) 20% );--c-btn-secondary-border: rgb(255 255 255 / .18);--c-btn-secondary-color: var(--s-color-text-light);--c-btn-secondary-bg: rgb(255 255 255 / .02);--c-header-border-color: rgb(255 255 255 / .12);--c-header-shadow-stuck: 0 2px 12px rgb(0 0 0 / .3), 0 8px 32px rgb(0 0 0 / .2);--c-theme-sun-display: none;--c-theme-moon-display: inline-block;--c-nav-desktop-link-color: var(--s-color-brand-primary-light);--c-nav-desktop-link-hover-color: var(--s-color-brand-primary-muted);--c-breadcrumb-link-color: var(--s-color-brand-primary);--c-breadcrumb-link-hover: var(--s-color-brand-primary-muted);--c-breadcrumb-icon-color: var(--s-color-gray-800);--c-nav-page-link-color: var(--s-color-brand-primary-light);--c-nav-page-link-hover: var(--s-color-brand-primary-muted);--c-io-logo-color: white;--c-io-bg-color: black;--c-badge-general-active-bg: var(--s-color-brand-primary);--c-badge-general-active-border: var(--s-color-brand-primary);--c-footer-social-hover-color: var(--s-color-brand-primary-light);--c-footer-color: #fff;--c-footer-bg: var(--s-color-brand-primary-darkest);--c-footer-bg-image: linear-gradient( 135deg, var(--s-color-brand-primary-darkest), hsl(280 30% 8%) );--c-lightbox-bg: rgb(22 20 32 / .96);--c-article-image-filter: contrast(.99);--c-nav-category-bg: transparent;--c-nav-category-border: transparent;--c-article-share-bg: transparent;--c-article-share-border: transparent;--c-article-share-link-bg: var(--s-color-surface-glass);--c-sidebar-search-bg: transparent;--c-sidebar-search-border: transparent;--c-rte-figcaption-color: var(--s-color-text-on-dark);--c-article-by-border: color-mix( in oklab, var(--s-surface-border), var(--s-color-brand-primary) 25% );--c-blockquote-shadow: 0 2px 12px rgb(0 0 0 / .4);--c-blockquote-border-color: var(--s-color-brand-primary-muted);--c-grain-blend-mode: soft-light;--c-grain-opacity: .06;--c-code-block-shadow: 0 2px 8px rgb(0 0 0 / .2), 0 8px 24px rgb(0 0 0 / .15);--s-scrollbar-thumb: var(--s-color-brand-primary-dark);--s-scrollbar-track: transparent;--s-scrollbar-thumb-root: color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary) 78% );--s-scrollbar-track-root: var(--s-color-gray-100);--c-home-latest-bg: rgb(255 255 255 / .05);--c-home-latest-card-bg: rgb(22 20 32 / .7);--c-home-latest-card-border: var(--s-color-gray-200);--c-about-card-bg: rgb(22 20 32 / .5);--c-about-card-border: var(--s-color-gray-200);--c-home-categories-dot-color: rgb(232 228 223 / .04);--c-home-categories-gradient-start: rgb(40 8 38 / .7);--c-home-categories-gradient-end: rgb(40 8 38);--c-carousel-arrow-bg: var(--s-surface-1);--c-carousel-arrow-border: var(--s-color-gray-300);--c-carousel-fade: rgb(22 20 32 / .75);--c-photo-reel-bg: rgb(22 20 32 / .75);--c-photo-cta-bg: rgb(255 255 255 / .06);--c-photo-cta-border: var(--s-color-gray-300);--c-photo-cta-color: var(--s-color-gray-600);--c-photo-cta-hover-bg: rgb(255 255 255 / .12)}}@layer tokens{:root{--p-spacing-0: 0;--p-spacing-1: 4px;--p-spacing-2: 8px;--p-spacing-3: 12px;--p-spacing-4: 16px;--p-spacing-5: 24px;--p-spacing-6: 32px;--p-spacing-7: 48px;--p-spacing-8: 64px;--p-spacing-9: 96px;--p-spacing-10: 144px;--s-spacing-0: var(--p-spacing-0);--s-spacing-1: var(--p-spacing-1);--s-spacing-2: var(--p-spacing-2);--s-spacing-3: var(--p-spacing-3);--s-spacing-4: var(--p-spacing-4);--s-spacing-5: var(--p-spacing-5);--s-spacing-6: var(--p-spacing-6);--s-spacing-7: var(--p-spacing-7);--s-spacing-8: var(--p-spacing-8);--s-spacing-9: var(--p-spacing-9);--s-spacing-10: var(--p-spacing-10);--p-radius-xs: 2px;--p-radius-sm: 3px;--p-radius-md: 10px;--p-radius-lg: 12px;--p-radius-xl: 14px;--p-radius-2xl: 18px;--p-radius-3xl: 20px;--p-radius-full: 100vw;--s-radius-card: var(--p-radius-2xl) var(--p-radius-2xl) var(--p-radius-2xl) var(--p-radius-sm);--s-radius-card-mirror: var(--p-radius-sm) var(--p-radius-2xl) var(--p-radius-2xl) var(--p-radius-2xl);--s-radius-badge: var(--p-radius-lg) var(--p-radius-lg) var(--p-radius-lg) var(--p-radius-sm);--s-radius-btn: var(--p-radius-full) var(--p-radius-full) var(--p-radius-full) 0;--s-radius-code: var(--p-radius-lg) var(--p-radius-lg) var(--p-radius-lg) var(--p-radius-xs);--s-radius-surface: var(--p-radius-3xl);--s-radius-pill: var(--p-radius-full);--s-divider-gradient: linear-gradient( 90deg, transparent, var(--s-color-gray-300) 20%, var(--s-color-gray-500) 50%, var(--s-color-gray-300) 80%, transparent );--s-divider-diamond: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)}}@layer tokens{:root{--12px: .75rem;--13px: .813rem;--14px: .875rem;--15px: .9375rem;--16px: 1rem;--17px: 1.0625rem;--18px: 1.125rem;--19px: 1.1875rem;--20px: 1.25rem;--21px: 1.3125rem;--22px: 1.375rem;--23px: 1.438rem;--24px: 1.5rem;--25px: 1.563rem;--26px: 1.625rem;--27px: 1.688rem;--28px: 1.75rem;--29px: 1.813rem;--30px: 1.875rem;--31px: 1.938rem;--32px: 2rem;--33px: 2.063rem;--34px: 2.125rem}}@layer tokens{:root{--p-font-family-base: "Inter", system-ui, sans-serif;--p-font-family-heading: "Young Serif", Georgia, serif;--p-font-weight-regular: 400;--p-font-weight-medium: 500;--p-font-weight-semibold: 600;--p-font-weight-bold: 700;--s-font-family-base: var(--p-font-family-base);--s-font-family-heading: var(--p-font-family-heading);--s-font-weight-regular: var(--p-font-weight-regular);--s-font-weight-medium: var(--p-font-weight-medium);--s-font-weight-semibold: var(--p-font-weight-semibold);--s-font-weight-bold: var(--p-font-weight-bold);--s-font-size-base: clamp(1rem, .46vw + .91rem, 1.31rem);--s-line-height-base: clamp(1.625rem, .74vw + 1.48rem, 2.13rem);--s-font-size-h1: clamp(1.3125rem, 3.15vw + .68rem, 3.44rem);--s-line-height-h1: clamp(1.625rem, 3.61vw + .9rem, 4.06rem);--s-font-size-h2: clamp(1.375rem, 1.11vw + 1.16rem, 2rem);--s-line-height-h2: clamp(1.6875rem, 1.39vw + 1.41rem, 2.5rem);--s-font-size-h3: clamp(1.125rem, .93vw + .94rem, 1.75rem);--s-line-height-h3: clamp(1.4375rem, 1.48vw + 1.14rem, 2.44rem);--s-font-size-h4: clamp(1.0625rem, .56vw + .94rem, 1.5rem);--s-line-height-h4: clamp(1.4375rem, .56vw + 1.28rem, 2rem);--s-font-size-h5: clamp(1rem, .09vw + .98rem, 1.06rem);--s-line-height-h5: clamp(1.375rem, .19vw + 1.34rem, 1.5rem);--s-font-size-lead: clamp(1.125rem, .74vw + .98rem, 1.63rem);--s-line-height-lead: clamp(1.75rem, 1.11vw + 1.53rem, 2.5rem);--s-font-size-sm: clamp(.75rem, .19vw + .71rem, .88rem);--s-line-height-sm: clamp(1.25rem, .19vw + 1.21rem, 1.38rem);--s-font-size-xs: clamp(.6875rem, .09vw + .67rem, .75rem);--s-line-height-xs: clamp(.9375rem, .09vw + .92rem, 1rem);--s-line-height-default: 1.65}}@layer base{@font-face{font-style:normal;font-weight:400;src:url(/assets/fonts/young-serif-latin-400.woff2) format("woff2");font-family:"Young Serif";font-display:swap}@font-face{font-style:normal;font-weight:400 700;src:url(/assets/fonts/inter-latin-variable.woff2) format("woff2");font-family:Inter;font-display:swap}@font-face{font-style:normal;font-weight:400;src:local(""),url(/assets/fonts/source-code-pro-v22-latin-regular.woff2) format("woff2"),url(/assets/fonts/source-code-pro-v22-latin-regular.woff) format("woff");font-family:Source Code Pro;font-display:swap}}@layer reset{*,*:before,*:after{box-sizing:border-box}body,:is(h1,h2,h3,h4),p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none}html:focus-within{scroll-behavior:smooth}body{display:flex;flex-direction:column;min-height:100dvh;background-color:var(--s-color-bg);color:var(--s-color-text);line-height:var(--s-line-height-default);text-rendering:optimizeSpeed}a:not([class]){-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto}img,picture{display:block;width:100%;max-inline-size:100%;block-size:auto;border-radius:8px}.article-preview img,.article-preview picture,.article-overview img,.article-overview picture{border-radius:8px;filter:var(--c-article-image-filter, none)}.article-preview img,.article-body>figure:first-of-type img{@supports (corner-shape: squircle){border-radius:75vw;corner-shape:squircle}}.article-latest img,.article-latest picture,.article-body>figure:first-of-type img{@supports (corner-shape: squircle){border-radius:80px;corner-shape:squircle}}video{aspect-ratio:16 / 9;width:100%;height:auto;max-inline-size:100%;-o-object-fit:contain;object-fit:contain}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}*{scrollbar-color:var(--s-scrollbar-thumb) var(--s-scrollbar-track);scrollbar-width:thin}html,body{scrollbar-color:var(--s-scrollbar-thumb-root) var(--s-scrollbar-track-root);scrollbar-width:auto}.photo-reel-carousel::-webkit-scrollbar,.bluesky-feed::-webkit-scrollbar{height:8px}.photo-reel-carousel::-webkit-scrollbar-track,.bluesky-feed::-webkit-scrollbar-track{background:var(--s-scrollbar-track)}.photo-reel-carousel::-webkit-scrollbar-thumb,.bluesky-feed::-webkit-scrollbar-thumb{border-radius:4px;background:var(--s-scrollbar-thumb)}.photo-reel-carousel::-webkit-scrollbar-thumb:hover,.bluesky-feed::-webkit-scrollbar-thumb:hover{background:var(--s-color-brand-primary-muted)}}@layer utilities{.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:clip;border:0;white-space:nowrap;clip:rect(0,0,0,0);clip-path:inset(50%)}.sr-only-focusable{transform:translateY(-100%);transition:transform .24s ease-out}.sr-only-focusable:is(:active,:focus,:focus-visible){position:fixed;width:100%;height:auto;inset-block-start:0;padding:var(--s-spacing-3) var(--s-spacing-4);overflow:visible;color:#fff;font-weight:600;font-size:var(--s-font-size-base);font-family:var(--s-font-family-heading);text-align:center;text-decoration:none;white-space:normal;clip:auto;z-index:1000000;transform:translateY(0);outline:2px solid #fff;outline-offset:-4px;background:#000;clip-path:none}@media (forced-colors: active){.btn,.badge,.article-preview,.article-latest{border:1px solid ButtonText}.btn:is(:hover,:focus-visible){border-color:Highlight}.lightbox-btn{border:1px solid ButtonText}}}@layer atoms{.container{width:min(1600px,100%);margin-inline:auto;padding-inline:clamp(var(--s-spacing-4),5.45vw + -.09rem,var(--s-spacing-8))}.page-main{z-index:1;position:relative}}@layer atoms{body{font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-base);line-height:var(--s-line-height-base);font-family:var(--s-font-family-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:is(h1,h2,h3,h4,h5,h6),p{margin:0}:is(h1,.h1){font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-h1);line-height:var(--s-line-height-h1);font-family:var(--s-font-family-heading);letter-spacing:-.02em;text-wrap:balance;&.medium{--s-font-size-h1: clamp(1.625rem, 1.3vw + 1.37rem, 2.5rem);--s-line-height-h1: clamp(1.875rem, 2.31vw + 1.41rem, 3.44rem)}}:is(h2,.h2){font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-h2);line-height:var(--s-line-height-h2);font-family:var(--s-font-family-heading);letter-spacing:-.01em;text-wrap:balance}:is(h3,.h3){font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-h3);line-height:var(--s-line-height-h3);font-family:var(--s-font-family-heading);letter-spacing:-.01em;text-wrap:balance}:is(h4,.h4){font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-h4);line-height:var(--s-line-height-h4);font-family:var(--s-font-family-heading)}:is(h5,.h5){font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-h5);line-height:var(--s-line-height-h5);font-family:var(--s-font-family-heading)}p{margin-block-end:clamp(22px,.56vw + 1.26rem,1.75rem);text-wrap:pretty}.text-reset{font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-base);line-height:var(--s-line-height-base);font-family:var(--s-font-family-base)}.lead{color:var(--s-color-text-light);font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-lead);line-height:var(--s-line-height-lead)}small,.small,label{font-weight:var(--s-font-weight-regular);font-size:var(--s-font-size-sm);line-height:var(--s-line-height-sm);font-family:var(--s-font-family-base)}strong{font-weight:var(--s-font-weight-semibold)}kbd{display:inline-block;padding:.15em .4em;border:1px solid var(--s-surface-border);border-radius:.25rem;background-color:var(--s-surface-1);box-shadow:inset 0 -1px #3a342a29,0 1px 1px #3a342a14;color:var(--s-color-text);font-weight:var(--s-font-weight-medium);font-size:.85em;line-height:1;font-family:Source Code Pro,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;vertical-align:baseline;white-space:nowrap}blockquote{display:block;position:relative;margin-block-end:1.25rem;padding-inline:2.75rem 1.5rem;padding-block:1.5rem;border-radius:8px;border-inline-start:var(--s-accent-weight) solid var(--c-blockquote-border-color, var(--s-color-brand-primary));background:var(--s-surface-contrast);box-shadow:var(--c-blockquote-shadow, var(--s-shadow-subtle));color:var(--s-color-text);line-height:1.6;p{margin:0}}blockquote:before{position:absolute;inset-block-start:.25rem;inset-inline-start:.6rem;content:"“";color:var(--s-color-brand-primary-muted);font-weight:700;font-size:3.5rem;line-height:1;font-family:"Young Serif",Georgia,serif}blockquote:after{content:""}blockquote a{padding:0 3px;border-radius:3px;background:var(--s-color-gray-100);color:var(--s-color-brand-primary);text-decoration:none;cursor:pointer}blockquote a:hover{color:var(--s-color-brand-primary-dark)}blockquote cite{font-style:italic}}@layer atoms{.nav-list,.list-unstyled{margin:0;padding:0;list-style:none}}@layer atoms{.alert{--alert-background: var(--background, var(--s-color-gray-200));--alert-color: var(--color, var(--s-color-text-inverse));position:relative;padding:var(--s-spacing-3);border-radius:8px;background:var(--alert-background);color:var(--alert-color);p{margin:0}}.alert-success{--background: #88dc9b;--color: #024910}.alert-warning{--background: #ffeeba;--color: #5b4500}.alert-error{--background: #f8d7da;--color: #721c24}.rte .alert{ul li::marker,a{color:var(--alert-color)}a:is(:hover,:active){opacity:.9}}}@layer atoms{@property --btn-stop-1{syntax: "<color>"; inherits: false; initial-value: transparent;}@property --btn-stop-2{syntax: "<color>"; inherits: false; initial-value: transparent;}@property --btn-angle{syntax: "<angle>"; inherits: false; initial-value: 180deg;}@keyframes backgroundMove{0%{background-position:0% 0%}to{background-position:100% 0%}}@keyframes backgroundMoveOut{0%{background-position:100% 0%}to{background-position:0% 0%}}.btn{--btn-padding-x: var(--s-spacing-4);--btn-padding-y: var(--s-spacing-3);--btn-icon-gap: var(--s-spacing-3);--btn-font-size: var(--14px);--btn-font-line-height: var(--20px);--btn-bg: color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary-light) 12% );--btn-border: color-mix( in oklab, var(--s-surface-border), var(--s-color-brand-primary-muted) 27% );--btn-color: var(--c-btn-color, var(--s-color-brand-primary-dark));--btn-accent: var(--s-accent-subtle);--btn-stop-1: var( --c-btn-stop-1, color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary-muted) 16% ) );--btn-stop-2: var( --c-btn-stop-2, color-mix( in oklab, var(--s-surface-1), var(--s-color-brand-primary-muted) 12% ) );--btn-angle: 180deg;display:inline-flex;position:relative;align-items:center;padding:var(--btn-padding-y) var(--btn-padding-x);border:1px solid var(--btn-border);border-radius:var(--s-radius-btn);background:linear-gradient(var(--btn-angle),var(--btn-stop-1),var(--btn-stop-2));box-shadow:none;isolation:isolate;color:var(--btn-color);font-weight:var(--s-font-weight-semibold);font-size:var(--btn-font-size);line-height:var(--btn-font-line-height);font-family:var(--s-font-family-base);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:border-color .22s ease,color .2s ease,--btn-stop-1 .3s ease,--btn-stop-2 .3s ease,--btn-angle .24s ease;@media (min-width: 1400px){--btn-font-size: var(--15px);--btn-font-line-height: var(--24px);--btn-padding-x: var(--s-spacing-5);--btn-padding-y: var(--s-spacing-3);--btn-icon-gap: var(--s-spacing-4)}>span{display:flex;z-index:1;position:relative;width:100%;height:100%}&:hover,&:focus-visible{--btn-stop-1: var( --c-btn-hover-stop-1, color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary-muted) 26% ) );--btn-stop-2: var( --c-btn-hover-stop-2, color-mix( in oklab, var(--s-surface-1), var(--s-color-brand-primary-muted) 22% ) );--btn-angle: var(--c-btn-hover-angle, 192deg);border-color:var( --c-btn-hover-border, color-mix( in oklab, var(--btn-border), var(--s-color-brand-primary-muted) 28% ) );color:var( --c-btn-hover-color, color-mix(in oklab, var(--s-color-brand-primary-dark), black 6%) )}&:focus-visible{outline:none;box-shadow:0 0 0 2px var(--s-surface-0),0 0 0 4px var(--s-accent-subtle)}&.has-icon>span{align-items:center;gap:var(--btn-icon-gap)}&:is(:link,:visited,:active){color:var(--btn-color)}em{margin-inline-start:4px}}.btn-secondary{--btn-border: var( --c-btn-secondary-border, color-mix( in oklab, var(--s-surface-border), var(--s-color-brand-primary-muted) 20% ) );--btn-color: var( --c-btn-secondary-color, color-mix( in oklab, var(--s-color-brand-primary-dark), var(--s-color-text) 35% ) );--btn-accent: color-mix( in oklab, var(--s-color-brand-primary-muted), var(--s-surface-border) 55% );background:var( --c-btn-secondary-bg, color-mix(in oklab, var(--s-surface-1), var(--s-surface-0) 50%) );box-shadow:none}.btn-rss{--btn-color: var(--s-color-text);justify-content:center;width:100%;padding-inline:0;border:0;border-radius:0;background:transparent;box-shadow:none;font-weight:var(--s-font-weight-regular);font-size:var(--16px);font-family:var(--s-font-family-heading);letter-spacing:0;text-decoration-line:underline;text-decoration-color:color-mix(in oklab,currentcolor,transparent 40%);text-decoration-thickness:1px;text-underline-offset:.3em;text-transform:none;transition:color .2s ease,text-decoration-color .2s ease;&:hover,&:focus-visible{color:var(--s-color-link-hover);text-decoration-color:currentcolor}&:focus-visible{outline:2px solid var(--s-accent-subtle);outline-offset:2px}&:-moz-any-link{color:var(--s-color-text)}&:any-link{color:var(--s-color-text)}span{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--s-spacing-3)}}.btn-menu-toggle{display:flex;align-items:center;justify-content:center;order:1;aspect-ratio:1;width:2.25rem;padding:0;border:1px solid var(--s-color-surface-glass-border);border-radius:50%;background:var(--s-color-surface-glass);color:var(--s-color-text-inverse);cursor:pointer;transition:background-color .2s ease;&:is(:hover,:focus-visible){background-color:var(--s-color-surface-glass-hover)}&:focus-visible{outline:2px solid var(--s-accent-subtle);outline-offset:2px}@media (min-width: 768px){display:none}}.btn-link{border:none;border-radius:0;background:none;color:var(--s-color-text);text-decoration:underline;cursor:pointer}}@layer atoms{/*! purgecss start ignore */.badge{display:inline-flex;align-items:center;padding:var(--s-spacing-1) var(--s-spacing-2);border:1px solid var(--s-color-gray-600);border-radius:var(--s-radius-pill);background-color:var(--s-surface-contrast);color:var(--s-color-gray-800);font-family:var(--s-font-family-base);text-decoration:none;transition:background-color .2s ease,color .2s ease,border-color .2s ease,scale .2s ease;&:-moz-any-link{color:var(--s-color-gray-800)}&:any-link{color:var(--s-color-gray-800)}&:is(:hover,:focus-visible){scale:1.05;background-color:var(--s-color-brand-primary-light);color:var(--s-color-gray-900)}&.active{border:1px solid var(--s-color-brand-primary-dark);background-color:var(--s-color-brand-primary-dark);color:#fff}}.badge-usp{display:flex;position:relative;justify-content:center;aspect-ratio:4 / 3;width:100%;border:none;background:var(--s-surface-contrast);box-shadow:#0000000d 0 6px 24px,#00000014 0 0 0 1px;font-weight:var(--s-font-weight-bold);font-family:var(--s-font-family-base);&:-moz-any-link{color:var(--s-color-gray-800)}&:any-link{color:var(--s-color-gray-800)}&:is(:hover,:focus-visible),&.active{background-image:radial-gradient(closest-side at 50% 50%,rgb(255 255 255 / .1),transparent);color:var(--s-surface-contrast)}}.badge-html{&:is(:hover,:focus-visible),&.active{border-color:#e34c26;background-color:#e34c26;color:#fff}}.badge-css{&:is(:hover,:focus-visible,:active),&.active{border-color:#6a3bc2;background-color:#6a3bc2;color:#fff}}.badge-ux,.badge-ui{&:is(:hover,:focus-visible,:active),&.active{border-color:#0fa5a5;background-color:#0fa5a5;color:#fff}}.badge-javascript{&:is(:hover,:focus-visible,:active),&.active{border-color:#f0c800;background-color:#f0c800;color:#2a2622}}.badge-general{&:is(:hover,:focus-visible,:active),&.active{border-color:var( --c-badge-general-active-border, var(--s-color-brand-primary-dark) );background-color:var( --c-badge-general-active-bg, var(--s-color-brand-primary-dark) );color:#fff}}.badge-design,.badge-accessibility{&:is(:hover,:focus-visible,:active),&.active{border-color:#7b61ff;background-color:#7b61ff;color:#fff}}.badge-life{&:is(:hover,:focus-visible,:active),&.active{border-color:#3aaa6d;background-color:#3aaa6d;color:#fff}}.badge-photography{&:is(:hover,:focus-visible,:active),&.active{border-color:#2e7d32;background-color:#2e7d32;color:#fff}}/*! purgecss end ignore */}@layer atoms{.blur-container{-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);box-shadow:#0000000f 0 10px 36px,#0000000f 0 0 0 1px}}@layer atoms{a{text-underline-offset:.3em;transition:background-color .4s ease,color .4s ease;&:link{color:var(--s-color-link)}&:visited{color:var(--s-color-link-visited)}&:is(:hover,:focus){color:var(--s-color-link-hover)}}a.nav-link:visited{color:var(--s-color-link)}a:focus-within,.btn:focus-within{outline-color:var(--s-color-brand-primary-muted)}}@layer atoms{.icon{display:inline-block;width:var(--24px);min-width:var(--24px);height:var(--24px)}}@layer atoms{.lds-ripple{display:inline-block;position:relative;width:80px;height:80px}.lds-ripple div{position:absolute;border:4px solid var(--s-color-gray-500);border-radius:50%;animation:lds-ripple 1s cubic-bezier(0,.2,.8,1) infinite;opacity:1}.lds-ripple div:nth-child(2){animation-delay:-.5s}@keyframes lds-ripple{0%{top:36px;left:36px;width:0;height:0;opacity:1}to{top:0;left:0;width:72px;height:72px;opacity:0}}}@layer atoms{/*! purgecss start ignore */.embed{width:100%;>*{aspect-ratio:4 / 3;width:100%;height:100%;border:0}p{aspect-ratio:auto}@media (min-width: 768px){>*{aspect-ratio:16 / 9}p{aspect-ratio:auto}}}/*! purgecss end ignore */}@layer atoms{.card-clickable{position:relative;cursor:pointer;&:is(:hover,:active){.card-action{--btn-bg: var(--s-color-brand-primary);animation:backgroundMove .8s ease forwards;&:before{height:100%}span:before{height:100%}span:after{width:100%}}}.card-action{position:static;&:before{display:none}}.card-action:after{z-index:1;position:absolute;inset:0;background:none;box-shadow:none;content:""}}body:has(.cookie-manage-wrap[open]){overflow:hidden}.cookie-manage-wrap{max-width:800px;padding:0;border:none;border-radius:12px;background:transparent;&::backdrop{background-color:#000c}}.cookie-manage{padding:var(--s-spacing-5);border-radius:12px;background-color:#fff;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;color:#333;.cookie-title{color:inherit!important}.btn-link{color:#333}.button-group{display:flex;align-items:center;justify-content:space-between}}}@layer atoms{@supports (corner-shape: squircle){:root{--p-radius-xs: 3px;--p-radius-sm: 4px;--p-radius-md: 10px;--p-radius-lg: 14px;--p-radius-xl: 16px;--p-radius-2xl: 22px;--p-radius-3xl: 24px}.intro-text,.home-latest .article-preview,pre[class*=language-],.nav-category,.related,.comments{corner-shape:squircle}.comments-avatar,.comments-avatar img{corner-shape:squircle;border-radius:30%}.article-share,.sidebar .search{corner-shape:squircle}.btn:not(.btn-link){corner-shape:round;transition:border-color .22s ease,color .2s ease,--btn-stop-1 .3s ease,--btn-stop-2 .3s ease,--btn-angle .24s ease,corner-shape .24s ease,border-radius .24s ease;&:is(:hover,:focus-visible){corner-shape:round round round scoop;--s-radius-btn: var(--p-radius-full) var(--p-radius-full) var(--p-radius-full) 50vw}}}}@layer atoms{blockquote:after{z-index:-1;position:absolute;inline-size:clamp(2.5rem,2rem + 1.5vi,4rem);block-size:clamp(2.5rem,2rem + 1.5vi,4rem);inset-block-start:calc(-1 * var(--s-spacing-2));inset-inline-start:calc(-1 * var(--s-spacing-1));transform:rotate(-12deg);border-radius:62% 38% 46% 54%/60% 44% 56% 40%;background:var(--s-color-brand-primary-light);opacity:.12;pointer-events:none}}@layer atoms{@supports (view-transition-name: navigation){@view-transition{navigation: auto;}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}.header-container{view-transition-name:site-header}.page-main{view-transition-name:page-content}.footer-primary{view-transition-name:site-footer}.article-overview .sidebar{@media (min-width: 1024px){view-transition-name:article-sidebar}}::view-transition-old(site-header),::view-transition-new(site-header),::view-transition-old(site-footer),::view-transition-new(site-footer){animation:none}::view-transition-group(*){animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-old(page-content){animation:.15s ease-out both vt-fade-out}::view-transition-new(page-content){animation:.2s .1s ease-out both vt-fade-in}[data-vt]{view-transition-name:attr(data-vt type(<custom-ident>))}.related [data-vt]{view-transition-name:none}.article-preview-image,.article-latest .article-preview-image{view-transition-class:post-image}.article-preview-header h2,.article-latest .article-preview-header h2,.article-header h1{view-transition-class:post-title}.article-body>figure:first-child{view-transition-class:post-image}.article-preview-description p,.article-latest .article-preview-description p{view-transition-class:post-lead}.article-body>.lead{view-transition-class:post-lead}.article-preview-description .btn,.article-latest .article-preview-description .btn{view-transition-class:post-btn}.article-preview-date,.article-header .article-preview-date{view-transition-class:post-date}::view-transition-group(.post-image){overflow:clip;animation-duration:.35s;animation-timing-function:cubic-bezier(.4,0,.15,1);@supports (corner-shape: squircle){::view-transition-group(.post-image){border-radius:40%;corner-shape:squircle}}}::view-transition-old(.post-image),::view-transition-new(.post-image){width:100%;height:100%;-o-object-fit:cover;object-fit:cover;mix-blend-mode:normal}:active-view-transition-type(forward){&::view-transition-old(page-content){animation:.25s cubic-bezier(.4,0,1,1) both vt-slide-out-left}&::view-transition-new(page-content){animation:.3s .05s cubic-bezier(0,0,.2,1) both vt-slide-in-right}}:active-view-transition-type(back){&::view-transition-old(page-content){animation:.25s cubic-bezier(.4,0,1,1) both vt-slide-out-right}&::view-transition-new(page-content){animation:.3s .05s cubic-bezier(0,0,.2,1) both vt-slide-in-left}}:active-view-transition-type(same-level){&::view-transition-old(page-content){animation:.1s ease-out both vt-fade-out}&::view-transition-new(page-content){animation:.15s .05s ease-out both vt-fade-in}}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0}}@keyframes vt-slide-out-left{to{transform:translate(-8%);opacity:0}}@keyframes vt-slide-in-right{0%{transform:translate(8%);opacity:0}}@keyframes vt-slide-out-right{to{transform:translate(8%);opacity:0}}@keyframes vt-slide-in-left{0%{transform:translate(-8%);opacity:0}}@media (prefers-reduced-motion: reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.01ms!important;animation-delay:0ms!important}}}}@layer molecules{.nav-primary .nav-link{display:block;padding:var(--s-spacing-5);font-weight:var(--s-font-weight-semibold);font-size:var(--14px);line-height:1;font-family:var(--s-font-family-base);letter-spacing:.06em;text-align:center;text-decoration:none;text-transform:uppercase}.nav-desktop{display:none;@media (min-width: 768px){display:flex;justify-content:flex-end}.nav-list{display:flex;align-items:center;justify-content:flex-end;gap:.25rem}.nav-link{padding-inline:1rem;padding-block:.5rem;border-radius:100vw;color:var( --c-nav-desktop-link-color, var(--s-color-brand-primary-dark) );text-align:start;transition:color .2s ease,background-color .2s ease;&:is(:hover,:focus-visible){background-color:var( --c-nav-desktop-link-hover-bg, var(--s-color-surface-glass) );color:var( --c-nav-desktop-link-hover-color, var(--s-color-brand-primary-dark) )}&.active{background-color:var(--s-color-highlight);color:var(--s-color-text)}}}.header .nav-desktop .nav-list{position:relative;padding:.25rem;border:1px solid var(--s-color-surface-glass-border);border-radius:100vw;background:var(--s-color-surface-glass)}@supports (anchor-name: --a){.nav-desktop .nav-link{z-index:1;position:relative;&:not(:has(.nav-link:hover)).active{anchor-name:--nav-pill;background-color:transparent}&:is(:hover,:focus-visible){anchor-name:--nav-pill;background-color:transparent}&.active:is(:hover,:focus-visible){background-color:transparent}}.nav-desktop .nav-list:has(.nav-link:hover) .nav-link.active:not(:hover){anchor-name:none}.nav-desktop .nav-list:before{position:absolute;position-anchor:--nav-pill;inset:anchor(top) anchor(right) anchor(bottom) anchor(left);border-radius:100vw;background:var(--s-color-highlight);content:"";transition:.2s}.nav-desktop .nav-list:not(:has(.nav-link:hover)):before{background:var(--s-color-highlight-strong)}}.nav-mobile{position:fixed;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:none;height:100%;max-height:none;margin:0;inset:0;padding:0;transform:translate(100%);border:0;background-color:var(--s-color-overlay-bg);opacity:1;transition:opacity .35s ease,transform .35s ease,overlay .35s allow-discrete,display .35s allow-discrete;.nav-list{display:flex;flex-direction:column;align-items:center}.nav-item{position:relative;&:not(:first-child):before{position:absolute;top:0;left:50%;width:12px;height:1px;translate:-50% 0;background-color:var(--s-color-overlay-divider);content:""}}.nav-link{padding:var(--s-spacing-5) var(--s-spacing-8);color:var(--s-color-overlay-text);font-size:var(--18px);&:visited{color:var(--s-color-overlay-text)}&:is(:hover,:focus-visible){color:var(--s-color-overlay-text-hover)}&.active{color:var(--s-color-overlay-text-active)}}@media (min-width: 768px){display:none}}.nav-mobile:popover-open{display:flex;transform:translate(0)}.btn-menu-close{display:flex;position:absolute;align-items:center;justify-content:center;aspect-ratio:1;width:2.5rem;inset-block-start:var(--s-spacing-5);inset-inline-end:var(--s-spacing-5);padding:0;border:1px solid var(--s-color-overlay-btn-border);border-radius:50%;background:var(--s-color-overlay-btn-bg);color:var(--s-color-overlay-btn-color);cursor:pointer;transition:background-color .2s ease;&:is(:hover,:focus-visible){background-color:var(--s-color-overlay-btn-hover)}&:focus-visible{outline:2px solid var(--s-accent-subtle);outline-offset:2px}}@starting-style{.nav-mobile:popover-open{transform:translate(100%);opacity:0}}@media (prefers-reduced-motion: reduce){.nav-mobile:popover-open{transition-duration:.01ms}}}@layer molecules{.nav-category{position:relative;width:100%;padding:0;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;.nav-list{display:flex;flex-wrap:wrap;gap:var(--s-spacing-2)}.badge{padding:var(--s-spacing-2) var(--s-spacing-3);font-size:var(--14px);line-height:1;text-transform:uppercase}}}@layer molecules{.nav-page{display:flex;justify-content:space-between;margin-block-start:var(--article-spacing);padding-block-start:var(--article-spacing);border-block-start:1px solid var(--s-color-divider);a{display:flex;align-items:center;gap:var(--s-spacing-2);color:var(--c-nav-page-link-color, inherit);font-family:var(--s-font-family-heading);text-decoration:none;.icon{transition:transform .5s ease}&:is(:hover,:focus-visible){color:var(--c-nav-page-link-hover, inherit);.icon{transform:translate(8px)}}&.previous{&:is(:hover,:focus-visible){.icon{transform:translate(-8px)}}}}.next{margin-inline-start:auto}.nav-page-label{display:none;@media (min-width: 768px){display:inline}}}}@layer molecules{.breadcrumb{padding-block:var(--s-spacing-3);border-block-end:1px solid var(--s-color-divider);font-weight:var(--s-font-weight-semibold);letter-spacing:.03em;.nav-list{display:inline-flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item{display:flex;align-items:center;&:last-child{display:inline;min-width:0;overflow:hidden;color:var(--s-color-gray-800);text-overflow:ellipsis;white-space:nowrap}}.nav-link{text-decoration:none;transition:color .2s ease;&:-moz-any-link{color:var( --c-breadcrumb-link-color, var(--s-color-brand-primary-dark) )}&:any-link{color:var( --c-breadcrumb-link-color, var(--s-color-brand-primary-dark) )}&:is(:hover,:focus){color:var( --c-breadcrumb-link-hover, var(--s-color-brand-primary) );text-decoration:none}}.icon{width:8px;height:8px;margin-inline:var(--s-spacing-2);color:var(--c-breadcrumb-icon-color, inherit)}}}@layer molecules{.form-group{position:relative;label{font-size:var(--s-font-size-base)}input,textarea{width:100%;padding:var(--s-spacing-3);border:1px solid var(--s-color-gray-500);border-radius:4px;outline-color:var(--s-color-brand-primary-dark);background-color:var(--s-surface-contrast);color:var(--s-color-gray-700);caret-color:var(--s-color-brand-primary);font-size:var(--16px);line-height:var(--24px);font-family:var(--s-font-family-base);&:focus-visible{transform:scale(1.004);border:1px solid var(--s-color-gray-900)}}textarea{min-height:160px;resize:vertical}}.icon-search{display:flex;position:absolute;bottom:0;align-items:center;justify-content:center;width:40px;inset-block-start:13px;inset-inline-end:0;padding:0;gap:0;border-radius:0 3px 3px 0;>span{align-items:center;justify-content:center}}}@layer molecules{.buy-coffee{padding-block-start:var(--s-spacing-4)}.buy-coffee:before{display:block;height:6px;margin-block-end:var(--s-spacing-4);background-color:var(--s-surface-border);content:"";-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 6'%3E%3Cpath d='M0 3Q5 0 10 3Q15 6 20 3' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 6'%3E%3Cpath d='M0 3Q5 0 10 3Q15 6 20 3' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E");-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:20px 6px;mask-size:20px 6px}}.buy-coffee .btn-container{width:100%!important}.buy-coffee .kofi-button{width:100%!important;border-radius:3px;background-color:#af1da6!important;transition:filter .3s ease-out}.buy-coffee .kofi-button .kofitext{color:#fff!important}.buy-coffee .kofi-button:hover{filter:brightness(1.15)}.kofitext img.kofiimg{animation:none!important}@layer molecules{.io-trigger{position:absolute;inset:30% 0;timeline-trigger:--io-trigger view() contain / cover}.io{--logo-color: var(--c-io-logo-color, black);--background-color: var(--c-io-bg-color, white);display:grid;grid-template-columns:auto auto;justify-content:start;gap:8px;transform:translate(50%);transform-origin:center center;animation:moveCanvas .15s both;animation-delay:1.5s;cursor:pointer;animation-trigger:--io-trigger play-forwards none;.path{background:var(--s-color-logo);background-image:var(--background-image, none);background-size:var(--background-size, auto)}.path-1{width:27px;height:35px;margin-inline-start:6px;transform:translate(-78%) translateY(96.95%) rotate(-24deg);transform-origin:bottom right;animation:top-i 2s both;clip-path:path("M2.38.154c-5.96 13.4.06 29.09 13.46 35.06l10.8-24.26L2.38.154Z");opacity:0;animation-trigger:--io-trigger play-forwards none}.path-2{width:38px;height:60px;transform:translate(calc(100vw + 100%)) rotate(-24deg);transform-origin:bottom right;animation:bottom-i 2s both;clip-path:path("M 21.648 0.1 L 0.108 48.48 L 24.368 59.28 L 35.108 35.15 C 41.068 21.76 35.038 6.06 21.648 0.1 Z");animation-trigger:--io-trigger play-forwards none}.path-3{width:92px;height:93px;margin-block-start:3px;transform:translate(calc(100vw + 100%)) scaleX(1);animation:right-o 2s both;clip-path:path("M 46.404 23.66 C 59.014 23.66 69.264 33.92 69.264 46.52 C 69.264 59.12 59.004 69.38 46.404 69.38 C 33.804 69.38 23.544 59.12 23.544 46.52 C 23.544 33.92 33.804 23.66 46.404 23.66 M 46.404 0.8 C 21.154 0.8 0.684 21.27 0.684 46.52 C 0.684 71.77 21.154 92.24 46.404 92.24 C 71.654 92.24 92.124 71.77 92.124 46.52 C 92.134 21.27 71.664 0.8 46.404 0.8 Z");animation-trigger:--io-trigger play-forwards none}@media (prefers-reduced-motion: reduce){transform:translate(0);animation:none;.path-1{transform:translate(0) translateY(0) rotate(0);animation:none;opacity:1}.path-2{transform:translate(0) translateY(0) rotate(0);animation:none}.path-3{transform:translate(0) scaleX(1);animation:none}}}@supports not (animation-trigger: none){.io{transform:translate(0);animation:none;.path-1{transform:translate(0) translateY(0) rotate(0);animation:none;opacity:1}.path-2{transform:translate(0) translateY(0) rotate(0);animation:none}.path-3{transform:translate(0) scaleX(1);animation:none}}}@keyframes moveCanvas{0%{transform:translate(50%)}to{transform:translate(0)}}@keyframes top-i{0%,47%{transform:translate(-100%) translateY(96.95%) rotate(-24deg);opacity:0}48%,56%{transform:translate(-100%) translateY(96.95%) rotate(-24deg);opacity:1}60%,71%{transform:translate(-78%) translateY(96.95%) rotate(-24deg);opacity:1}84%{transform:translate(-78%) translateY(0) rotate(-24deg);opacity:1}88%{transform:translate(-78%) translateY(0) rotate(-24deg);opacity:1}to{transform:translate(0) translateY(0) rotate(0);opacity:1}}@keyframes bottom-i{0%{transform:translate(calc(100vw + 100%)) rotate(-24deg)}20%{transform:translate(0) rotate(-24deg)}34%{transform:translate(0) rotate(-24deg)}43%{transform:translate(0) translateY(-4%) rotate(-24deg)}50%,90%{transform:translate(0) translateY(0) rotate(-24deg)}to{transform:translate(0) translateY(0) rotate(0)}}@keyframes right-o{0%,67%{transform:translate(calc(100vw + 100%)) scaleX(1)}78%{transform:translate(-35%) scaleX(.95)}82%{transform:translate(-24%) scaleX(1)}to{transform:translate(0) scaleX(1)}}}@layer molecules{@supports selector(::details-content){::details-content{height:0;overflow:clip;transition:padding-block .3s,height .3s ease,content-visibility .3s ease allow-discrete}}details[open]{summary{border-block-end:1px dashed var(--accent-color);&:after{transform:rotate(-180deg)}}@supports selector(::details-content){&::details-content{height:auto}}}details{--accent-color: var(--s-color-brand-primary-dark);--padding: 1rem;border:1px solid var(--accent-color);background:var(--s-color-gray-100);&:has(+details){border-block-end-color:transparent}&:first-child{border-radius:5px 5px 0 0}&:last-child{border-radius:0 0 5px 5px}}summary{display:grid;grid-template-columns:1fr auto;align-items:center;padding:var(--padding);font-style:normal;font-weight:400;font-size:1.1rem;font-family:Lilita One,sans-serif;letter-spacing:.03em;cursor:pointer;&::marker{content:""}&::-webkit-details-marker{display:none}&:after{width:1.5rem;height:1.5rem;background:var(--s-color-text);content:"";-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='black' class='size-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E%0A");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='black' class='size-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E%0A");transition:transform .3s ease-out}}.content-wrapper{--padding: 1.5rem;padding:var(--padding)}}@layer molecules{.section-header{position:relative;margin-block-end:var(--s-spacing-5);padding-block-end:var(--s-spacing-4);border-block-end:1px solid;-o-border-image:var(--s-divider-gradient) 1;border-image:var(--s-divider-gradient) 1;&:after{position:absolute;bottom:-6px;left:50%;width:12px;height:12px;translate:-50% 0;background:var(--s-color-text);content:"";clip-path:var(--s-divider-diamond)}}}@layer molecules{@supports (scroll-marker-group: after){.bluesky-feed,.photo-reel-carousel{&::scroll-button(inline-start),&::scroll-button(inline-end){z-index:2;position:absolute;aspect-ratio:1;width:40px;margin-top:10px;border:1px solid var(--c-carousel-arrow-border, var(--s-color-gray-300));border-radius:50%;background-position:center;background-size:14px;background-repeat:no-repeat;background-color:var( --c-carousel-arrow-bg, var(--s-surface-0) );box-shadow:var(--s-shadow-subtle);content:"";cursor:pointer;transition:background-color .22s ease,border-color .22s ease,box-shadow .2s ease}&::scroll-button(inline-start){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E")}&::scroll-button(inline-end){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E")}.dark &::scroll-button(inline-start){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8e4df' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E")}.dark &::scroll-button(inline-end){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8e4df' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E")}&::scroll-button(inline-start):not(:disabled):hover,&::scroll-button(inline-end):not(:disabled):hover{border-color:var( --c-btn-hover-border, color-mix( in oklab, var(--s-color-gray-300), var(--s-color-brand-primary-muted) 28% ) );background-color:var( --c-btn-hover-stop-1, color-mix( in oklab, var(--s-surface-2), var(--s-color-brand-primary-muted) 26% ) );box-shadow:var(--s-shadow-medium)}&::scroll-button(inline-start):disabled,&::scroll-button(inline-end):disabled{box-shadow:none;cursor:default;opacity:.35}}.bluesky-feed{anchor-name:--bluesky-carousel;&::scroll-button(inline-start),&::scroll-button(inline-end){position-anchor:--bluesky-carousel;top:anchor(end);inset-inline:auto anchor(end)}&::scroll-button(inline-end){translate:calc(-1 * var(--s-spacing-3)) calc(-100% - var(--s-spacing-5))}&::scroll-button(inline-start){translate:calc(-1 * var(--s-spacing-3) - 48px) calc(-100% - var(--s-spacing-5))}}.photo-reel-carousel{anchor-name:--photo-carousel;&::scroll-button(inline-start),&::scroll-button(inline-end){position-anchor:--photo-carousel;top:anchor(end);inset-inline:auto anchor(end)}&::scroll-button(inline-end){translate:calc(-1 * var(--s-spacing-3)) calc(-100% - var(--s-spacing-5))}&::scroll-button(inline-start){translate:calc(-1 * var(--s-spacing-3) - 48px) calc(-100% - var(--s-spacing-5))}}}.scroll-fade{display:none}@supports (container-type: scroll-state){.bluesky-feed,.photo-reel-carousel{container-type:scroll-state}.scroll-fade{display:block;z-index:1;position:sticky;flex:0 0 20px;align-self:stretch;width:20px;opacity:0;pointer-events:none;transition:opacity .3s ease}.scroll-fade-start{order:-1;margin-inline-end:-20px;inset-inline-start:0;background:linear-gradient(to right,color-mix(in oklab,var(--c-carousel-fade, var(--s-surface-0)) 50%,transparent),transparent)}.scroll-fade-end{order:999;margin-inline-start:-20px;inset-inline-end:0;background:linear-gradient(to left,color-mix(in oklab,var(--c-carousel-fade, var(--s-surface-0)) 50%,transparent),transparent)}.home-photo-reel .scroll-fade{--c-carousel-fade: var(--c-photo-reel-bg, rgb(250 247 242 / .65))}@container scroll-state(scrollable: left){.scroll-fade-start{opacity:1}}@container scroll-state(scrollable: right){.scroll-fade-end{opacity:1}}}}@layer organisms{.social-icons{.facebook{--social-brand-color: #1877f2}.linkedin{--social-brand-color: #0a66c2}.bluesky{--social-brand-color: #1185fe}.mastodon{--social-brand-color: #595aff}.instagram{--social-brand-color: #e4405f}.codepen,.eyeem{--social-brand-color: var( --c-footer-social-hover-color, var(--s-color-brand-primary-darkest) )}.spotify{--social-brand-color: #1db954}.sessionize{--social-brand-color: #1ab394}.rss{--social-brand-color: #f26522}.reddit{--social-brand-color: #ff4500}:is(a):is(:hover,:focus,:active){color:var(--social-brand-color)}.social-card-title{color:var(--social-brand-color)}}}@layer organisms{:root{--header-height: clamp(80px, 3.98vw + 52.27px, 108px);--s-progress-height: 6px}.header-container{z-index:11;position:sticky;inset-block-start:0;@supports (container-type: scroll-state){container-type:scroll-state}}.header{position:relative;height:var(--header-height);border-block-end:1px solid var( --c-header-border-color, color-mix( in oklab, var(--s-surface-border), var(--s-surface-0) 40% ) );background-color:var(--s-color-header-bg);box-shadow:var(--s-shadow-subtle);.container{display:grid;grid-template-columns:170px auto;align-items:center;height:var(--header-height);gap:var(--s-spacing-5);@media (min-width: 1024px){grid-template-columns:1fr auto}}.logo{transform:scale(.6);transform-origin:left;color:var(--s-color-logo);@media (min-width: 1024px){transform:scale(.8)}}}@supports (container-type: scroll-state){.header{border-block-end-color:var( --c-header-border-color, color-mix( in oklab, var(--s-surface-border), var(--s-surface-0) 40% ) );box-shadow:none;transition:box-shadow .3s ease,border-block-end-color .3s ease}@container scroll-state(stuck: top){.header{box-shadow:var( --c-header-shadow-stuck, 0 2px 12px rgb(58 52 42 / .1), 0 4px 24px rgb(58 52 42 / .06) )}}}@supports (container-type: scroll-state){html{container-type:scroll-state}.header-container{transition:translate .3s ease}@container scroll-state(scrolled: top){.header-container{translate:0 0}}@container scroll-state(scrolled: bottom){.header-container{translate:0 calc(-100% + var(--s-progress-height))}}}@supports (animation-timeline: scroll()){body:has(.article-body) .header:after{position:absolute;left:0;width:100%;height:var(--s-progress-height);inset-block-end:0;transform-origin:left;scale:0 1;background:linear-gradient(90deg,var(--s-color-brand-primary),var(--s-color-brand-primary-muted));content:"";animation:progress-grow linear both;animation-timeline:scroll(root)}@keyframes progress-grow{to{scale:1 1}}}.nav-wrapper{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-spacing-4)}.switch-theme{display:flex;align-items:center;justify-content:center;aspect-ratio:1;width:2.25rem;padding:0;border:1px solid var(--s-color-surface-glass-border);border-radius:50%;background:var(--s-color-surface-glass);box-shadow:none;cursor:pointer;transition:background-color .2s ease;&:is(:hover,:focus-visible){background-color:var(--s-color-surface-glass-hover)}.sun{display:var(--c-theme-sun-display, inline-block);color:#f2960d}.moon{display:var(--c-theme-moon-display, none);color:#b9eaf2}}}@layer organisms{:root{--article-spacing: var(--s-spacing-4)}.article-list{container-type:inline-size}.rss-image{display:none}.article-preview{display:grid;gap:var(--s-spacing-3);@container (min-width: 680px){grid-template-rows:auto 1fr;grid-template-columns:180px 1fr;-moz-column-gap:var(--s-spacing-5);column-gap:var(--s-spacing-5);row-gap:var(--s-spacing-3)}@container (min-width: 700px){grid-template-columns:280px 1fr}.article-preview-header{h2{text-wrap:pretty}@container (min-width: 680px){grid-column:1 / span 2;order:1}@container (min-width: 700px){grid-column:auto;order:2}}.article-preview-image{margin-block-end:var(--s-spacing-2);@container (min-width: 680px){grid-row:span 2 / span 2;order:1;margin-block-end:0}}.article-preview-description{@container (min-width: 680px){grid-row:span 2 / span 2;order:2;p.default{display:-webkit-box;-webkit-line-clamp:3;overflow:hidden;-webkit-box-orient:vertical;line-height:1.55}}}+.article-preview{--article-spacing: clamp( var(--s-spacing-4), 1.82vw + .64rem, var(--s-spacing-6) );margin-block-start:var(--article-spacing);padding-block-start:var(--article-spacing);border-block-start:1px solid var(--s-color-divider)}}.article-preview-date{color:var(--s-color-gray-700);font-size:clamp(var(--14px),.28vw + .8rem,var(--16px));line-height:clamp(var(--21px),.56vw + 1.19rem,var(--25px));font-family:var(--s-font-family-heading)}.article-latest{--article-spacing: clamp( var(--s-spacing-4), 1.82vw + .64rem, var(--s-spacing-6) );display:flex;flex-direction:column;margin-block-end:var(--article-spacing);padding-block-end:var(--article-spacing);gap:var(--s-spacing-2);border-block-end:1px solid var(--s-color-divider);h2{font-size:var(--s-font-size-h1);line-height:var(--s-line-height-h1)}.article-preview-image picture,.article-preview-image picture img{aspect-ratio:16 / 9;margin-block-end:var(--s-spacing-2);-o-object-fit:cover;object-fit:cover}@media (min-width: 768px){gap:var(--s-spacing-3)}.lead{--s-font-size-lead: clamp(1.125rem, .74vw + .98rem, 1.63rem);--s-line-height-lead: clamp(1.9375rem, .74vw + 1.79rem, 2.44rem)}}.icon.external{margin-inline-start:var(--s-spacing-2);opacity:.8}}@layer organisms{.footer-primary{--footer-color: var(--c-footer-color, var(--s-color-text));z-index:5;position:relative;padding-block:var(--s-spacing-5);border-radius:0;background-image:var( --c-footer-bg-image, linear-gradient(135deg, hsl(304 30% 93%), hsl(280 25% 88%)) );background-color:var(--c-footer-bg, hsl(304 30% 93%));color:var(--footer-color);font-size:clamp(var(--16px),.28vw + .93rem,var(--18px));line-height:clamp(var(--24px),.42vw + 1.38rem,var(--27px));font-family:var(--s-font-family-heading);@media (min-width: 1024px){padding-block:var(--s-spacing-6)}.container{text-align:center;@media (min-width: 768px){display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-spacing-6);text-align:start}}p{margin-block-end:var(--s-spacing-4)}.social-icons{a{display:inline-block;margin-inline-end:1rem}a.footer-home-link{margin:0}}.footer-separator{display:none;@media (min-width: 576px){display:inline}}.footer-rights{display:block;@media (min-width: 576px){display:inline}}}.footer-nav{a,button{padding:0;border-block-end:.1rem solid transparent;background:none;color:var(--footer-color);font:inherit;text-decoration:none;cursor:pointer;transition:border-color .3s ease,color .3s ease}:is(a,button):is(:hover,:focus,:active){border-block-end-color:currentColor}.social-icons{margin-block-end:var(--s-spacing-6);text-align:center;@media (min-width: 768px){grid-column:span 2 / span 2;margin-block-end:0;text-align:start}@media (min-width: 1024px){grid-column:span 1 / span 1}}}.social-icons{a{color:var(--footer-color);text-decoration:none;transition:color .3s ease-out}}.footer-nav{margin-block-start:1.2rem;@media (min-width: 768px){margin-block-start:0;text-align:end}}}@layer organisms{.sidebar{--sidebar-border: color-mix( in oklab, var(--s-surface-border), transparent 30% );margin-block:var(--s-spacing-4);padding-block:var(--s-spacing-4);border-block-start:1px solid var(--sidebar-border);@media (min-width: 1024px){margin-block:0;padding-block:var(--s-spacing-3) 0;border:none}:is(h3,h4,.h4){display:flex;align-items:center;justify-content:flex-start;margin:0 0 var(--s-spacing-3);gap:var(--s-spacing-2);color:var(--s-color-text-lightest);font-weight:var(--s-font-weight-semibold);font-size:var(--s-font-size-sm);line-height:var(--s-line-height-sm);font-family:var(--s-font-family-base);letter-spacing:.05em;text-transform:uppercase}.search{padding:0;border:0;background:transparent}.nav-aside{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;.buy-coffee{flex-shrink:0}>div:not(.buy-coffee){display:flex;flex:1 1 auto;flex-direction:column;min-height:0;gap:0;>*{padding-block:var(--s-spacing-4);&:first-child{padding-block-start:0}&:last-child{padding-block-end:0}+*{padding-block-start:var(--s-spacing-4);border-block-start:1px solid var(--sidebar-border)}}>.article-toc{padding-block-end:0}>h3{padding-block:0;+.nav-category{margin-block-start:0;padding-block-start:0;border-block-start:0}}}}.sidebar-categories{display:none;@media (min-width: 1024px){display:block}}.sticky{display:flex;flex-direction:column;@media (min-width: 1024px){position:sticky;max-height:calc(100dvh - var(--header-height) - var(--s-spacing-4) * 2);inset-block-start:calc(var(--header-height) + var(--s-spacing-4));padding-block:var(--s-spacing-4)}@media screen and (max-height: 700px){position:static;max-height:none}}}}@layer organisms{.article-toc{display:none;@media (min-width: 1024px){display:flex;flex-direction:column;min-height:0;padding-block-start:var(--s-spacing-2)}.toc-scroll{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}ol{flex:1 1 auto;min-height:0;margin:0;padding:0;overflow-y:auto;list-style:none;scrollbar-color:var(--s-scrollbar-thumb) var(--s-scrollbar-track);scrollbar-width:thin}li+li{margin-block-start:var(--s-spacing-1)}a{display:block;padding-inline:var(--s-spacing-3);padding-block:var(--s-spacing-1);border-inline-start:var(--s-accent-weight) solid transparent;color:var(--s-color-text-light);font-size:.9rem;line-height:1.5;text-decoration:none;transition:color .2s ease,border-color .2s ease;&:hover{color:var(--s-color-brand-primary)}}}.nav-aside>div:not(.buy-coffee)>.article-toc+*{padding-block-start:0;border-block-start:0;@media (min-width: 1024px){padding-block-start:var(--s-spacing-4);border-block-start:1px solid var(--sidebar-border)}}@supports (scroll-target-group: auto){.article-toc ol{scroll-target-group:auto}.article-toc a:target-current{border-inline-start-color:var(--s-color-brand-primary);color:var(--s-color-brand-primary);font-weight:var(--s-font-weight-medium)}@supports (anchor-name: --a){.article-toc .toc-scroll{position:relative;overflow:clip}.article-toc a:target-current{anchor-name:--toc-active;border-inline-start-color:transparent}.article-toc .toc-scroll:before{position:absolute;position-anchor:--toc-active;width:var(--s-accent-weight);inset-block-end:anchor(bottom);inset-block-start:anchor(top);inset-inline-start:anchor(left);border-radius:var(--p-radius-full);background:var(--s-color-brand-primary);content:"";transition:inset-block-start .2s ease,inset-block-end .2s ease}}}@supports (container-type: scroll-state){.article-toc ol{container-type:scroll-state}.article-toc ol:before,.article-toc ol:after{display:block;z-index:1;position:sticky;height:24px;content:"";opacity:0;pointer-events:none;transition:opacity .3s ease}.article-toc ol:before{margin-block-end:-24px;inset-block-start:0;background:linear-gradient(to bottom,var(--s-color-bg),transparent)}.article-toc ol:after{margin-block-start:-24px;inset-block-end:0;background:linear-gradient(to top,var(--s-color-bg),transparent)}@container scroll-state(scrollable: top){.article-toc ol:before{opacity:1}}@container scroll-state(scrollable: bottom){.article-toc ol:after{opacity:1}}}}@layer organisms{.photography-header .rte{max-width:900px;padding-block-start:clamp(var(--s-spacing-6),5vw,var(--s-spacing-8));p{margin:0}}.photo-grid{-moz-column-gap:var(--s-spacing-3);column-gap:var(--s-spacing-3);margin-block:var(--s-spacing-5);-moz-columns:1;columns:1;@media (min-width: 768px){-moz-columns:2;columns:2}@media (min-width: 1024px){-moz-columns:3;columns:3}img{display:block;width:100%;height:auto;border-radius:0}}.photo-grid-item{display:block;width:100%;margin-block-end:var(--s-spacing-3);padding:0;overflow:clip;border:0;background:none;-moz-column-break-inside:avoid;break-inside:avoid;cursor:zoom-in;transition:opacity .2s ease;&:is(:hover,:focus-visible){opacity:.88}&:focus-visible{outline:2px solid var(--s-accent-subtle);outline-offset:2px}}.photo-grid-sentinel{height:1px}.photo-grid-actions{display:flex;justify-content:center;padding-block:var(--s-spacing-5) var(--s-spacing-7)}.photo-grid-actions[hidden],.photo-grid-actions.is-all-loaded{display:none!important}.lightbox{width:100%;max-width:100vw;height:100%;max-height:100vh;padding:0;overflow:hidden;border:0;background:var(--c-lightbox-bg, rgb(42 38 34 / .94));color:var(--s-color-text-on-dark);opacity:0;transition:opacity .2s ease,overlay .2s ease allow-discrete,display .2s ease allow-discrete;&::backdrop{background:transparent}&[open]{display:flex;align-items:center;justify-content:center;opacity:1}@starting-style{&[open]{opacity:0}}}.lightbox-content{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:var(--s-spacing-7);@media (max-width: 767px){padding:var(--s-spacing-4)}}.lightbox-img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;border-radius:0;transition:opacity .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;&.lightbox-transitioning{opacity:0}}.lightbox-controls{z-index:1;position:fixed;inset:0;pointer-events:none}.lightbox-btn{display:flex;position:absolute;align-items:center;justify-content:center;width:3rem;height:3rem;border:0;border-radius:50%;background:#ffffff1a;color:#fff;cursor:pointer;pointer-events:auto;transition:background-color .2s ease,scale .2s ease;&:is(:hover,:focus-visible){scale:1.06;background:#ffffff38}&:focus-visible{outline:2px solid var(--s-accent-subtle);outline-offset:2px}}.lightbox-prev{top:50%;inset-inline-start:var(--s-spacing-4);translate:0 -50%}.lightbox-next{top:50%;inset-inline-end:var(--s-spacing-4);translate:0 -50%}.lightbox-close{inset-block-start:var(--s-spacing-4);inset-inline-end:var(--s-spacing-4)}}@layer organisms{.comments{margin-block-end:var(--s-spacing-8);padding:var(--s-spacing-4);overflow-x:hidden;border:1px solid var(--s-surface-border);border-radius:var(--s-radius-card);background:var(--c-home-latest-card-bg, rgb(250 247 242 / .6));box-shadow:var(--s-shadow-subtle);@media (min-width: 768px){padding:var(--s-spacing-5)}h3{margin-block-end:var(--s-spacing-4);padding-block-end:var(--s-spacing-4);border-block-end:1px solid var(--s-surface-border)}h4{display:flex;align-items:center;margin-block-end:var(--s-spacing-3);gap:.4rem}.like{color:#ff0d4a}.boost{color:#ff1ad6}.globe{color:var(--s-color-brand-primary-muted)}small{display:flex;align-items:flex-end;justify-content:flex-end;font-size:.9rem;svg{display:inline-block;width:1.5rem;height:1.5rem}}}.comments-avatars{display:flex;flex-wrap:wrap;margin:0 0 var(--s-spacing-5);padding:0;gap:4px;list-style:none}.comments-avatar{display:flex;position:relative;place-content:center;align-items:center;aspect-ratio:1;width:2.25rem;transform-origin:center;border-radius:50%;background:var(--s-color-gray-200);transition:transform .3s ease-out;&.placeholder{display:flex;align-items:center;justify-content:center;background:var(--s-color-text);.icon{color:var(--s-color-bg)}}@media (hover: hover){&:hover{transform:scale(1.3)}}img{width:100%;border-radius:50%}}}@layer organisms{.rte{.code-block{width:100%;overflow:clip}>*{margin-block-end:clamp(24px,.74vw + 1.35rem,2rem)}:is(h1,.h1){margin-block-end:0}:is(h2,.h2){margin-block-end:clamp(12px,.65vw + .56rem,1rem)}:is(h3,.h3){margin-block-end:clamp(8px,.56vw + .38rem,.88rem)}:is(h4,.h4){margin-block-end:clamp(6px,.37vw + .28rem,.75rem)}.lead{margin-block-end:clamp(35px,1.39vw + 1.91rem,3.13rem)}p+.code-block{margin-block-start:-12px}.code-block+p{margin-block-start:-12px}:is(p,li) code{max-width:100%;padding:.1em .25em;border:1px solid var(--s-surface-border);border-radius:.3rem;background-color:var(--s-surface-1);font-size:87%;font-family:Source Code Pro,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}figcaption{padding:var(--s-spacing-2);border-radius:0 0 8px 8px;border-block-start:2px solid var(--s-color-brand-primary-muted);background-color:var(--s-color-brand-primary-darkest);color:var(--c-rte-figcaption-color, var(--s-surface-contrast));font-style:italic;font-size:var(--18px);line-height:var(--25px);font-family:var(--s-font-family-heading);a,a:is(:hover,:active,:focus){color:#fff}}figure:has(figcaption) img{border-end-start-radius:0;border-end-end-radius:0}.image{margin-inline:auto;&.quarter{width:25%}&.half{@media (min-width: 768px){width:50%}}&.thirds{@media (min-width: 768px){width:75%}}}ul li::marker{color:var(--s-color-brand-primary)}.small-image{max-width:270px}p>code{text-wrap:nowrap}}baseline-status{max-width:100%}}@layer organisms{.bluesky-feed{--_bluesky-accent: #0085ff;display:flex;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-block-end:var(--s-spacing-3);scrollbar-color:var(--s-scrollbar-thumb) var(--s-scrollbar-track);scrollbar-width:thin;@supports (scroll-marker-group: after){padding-block-end:calc(40px + var(--s-spacing-6));scrollbar-width:none;&::-webkit-scrollbar{display:none}}}.bluesky-section-header{display:flex;align-items:center;justify-content:space-between;h2{display:flex;align-items:center;gap:var(--s-spacing-2)}}.bluesky-icon{flex-shrink:0;width:1.1em;height:1.1em;color:var(--_bluesky-accent, #0085ff)}.bluesky-follow-link{margin-inline-start:auto;color:var(--s-color-gray-600);font-size:.8rem;text-decoration:none;transition:color .2s ease;&:hover,&:focus-visible{color:var(--_bluesky-accent, #0085ff)}}.bluesky-posts{display:flex;flex:0 0 auto;margin:0;padding:0;gap:var(--s-spacing-4);list-style:none}.bluesky-post{position:relative;flex:0 0 auto;width:clamp(280px,28vw,340px);height:360px;overflow:hidden;border:1px solid var(--c-about-card-border, var(--s-color-gray-200));border-radius:12px;background:var(--c-about-card-bg, rgb(250 247 242 / .7));box-shadow:var(--s-shadow-subtle);cursor:pointer;scroll-snap-align:start;scroll-snap-stop:always;transition:box-shadow .3s ease,translate .3s ease;&:hover{box-shadow:var(--s-shadow-medium)}}.bluesky-post-inner{display:flex;flex-direction:column;height:100%;padding:var(--s-spacing-3);color:inherit}.bluesky-post-body{flex:1 1 0;min-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,black 0%,black calc(100% - 2.5rem),transparent 100%);mask-image:linear-gradient(to bottom,black 0%,black calc(100% - 2.5rem),transparent 100%)}.bluesky-post-text{color:var(--s-color-gray-800);font-size:.94rem;line-height:1.5;overflow-wrap:break-word;a{z-index:1;position:relative}}.bluesky-post-thumb{display:block;width:100%;max-height:200px;margin-block-start:var(--s-spacing-2);-o-object-fit:cover;object-fit:cover;border-radius:6px}.bluesky-post-card{display:grid;grid-template-columns:48px 1fr;align-items:center;margin-block-start:var(--s-spacing-2);overflow:hidden;gap:0;border:1px solid var(--c-about-card-border, var(--s-color-gray-200));border-radius:6px;background:color-mix(in oklab,var(--s-surface-1),transparent 50%);&.no-thumb{grid-template-columns:1fr}img{display:block;width:48px;height:48px;-o-object-fit:cover;object-fit:cover}.bluesky-post-card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:var(--s-spacing-1) var(--s-spacing-2);overflow:hidden;color:var(--s-color-gray-800);font-weight:600;font-size:.75rem;line-height:1.3}}.bluesky-post-meta{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;margin-block-start:auto;padding-block-start:var(--s-spacing-2);border-block-start:1px solid color-mix(in oklab,var(--s-surface-border),transparent 40%);color:var(--s-color-gray-600);font-size:.75rem}.bluesky-post-permalink{color:inherit;text-decoration:none;&:after{z-index:0;position:absolute;inset:0;border-radius:inherit;content:""}&:focus-visible:after{outline:2px solid var(--s-color-brand-primary, var(--_bluesky-accent, #0085ff));outline-offset:2px}time{opacity:.8}}.bluesky-post-stats{display:flex;z-index:1;position:relative;gap:var(--s-spacing-3)}.bluesky-stat{display:inline-flex;align-items:center;gap:3px;svg{width:.85em;height:.85em;opacity:.6}}}@layer organisms{.photo-reel-carousel{display:flex;overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-block-end:var(--s-spacing-3);scrollbar-color:var(--s-scrollbar-thumb) var(--s-scrollbar-track);scrollbar-width:thin;@supports (scroll-marker-group: after){padding-block-end:calc(40px + var(--s-spacing-6));scrollbar-width:none;&::-webkit-scrollbar{display:none}}}.photo-reel-scroll{display:flex;flex:0 0 auto;gap:var(--s-spacing-4)}.photo-reel-item{flex:0 0 auto;width:-moz-max-content;width:max-content;height:clamp(200px,28vw,320px);scroll-snap-align:start;scroll-snap-stop:always;picture{display:block;width:-moz-max-content;width:max-content;height:100%}img{display:block;width:auto;height:100%;border-radius:0;box-shadow:var(--s-shadow-medium)}}.photo-reel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-spacing-4);.btn{white-space:nowrap}}.photo-reel-cta{flex:0 0 auto;aspect-ratio:3 / 2;width:clamp(140px,18vw,200px);scroll-snap-align:end}.photo-reel-cta-link{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:var(--s-spacing-2);border:1px dashed var(--c-photo-cta-border, var(--s-color-gray-400));border-radius:8px;background:var(--c-photo-cta-bg, rgb(0 0 0 / .06));color:var(--c-photo-cta-color, var(--s-color-gray-700));font-weight:600;font-size:.85rem;text-decoration:none;transition:background-color .2s ease,color .2s ease,border-color .2s ease;svg{width:1.5em;height:1.5em;opacity:.7;transition:opacity .2s ease}&:hover,&:focus-visible{border-color:var(--s-color-gray-600);background:var(--c-photo-cta-hover-bg, rgb(0 0 0 / .1));color:var(--s-color-text);svg{opacity:1}}}}@layer organisms{.sidebar-about{padding:var(--s-spacing-4);border:1px solid var(--c-about-card-border, var(--s-color-gray-200));border-radius:16px;background:var(--c-about-card-bg, rgb(250 247 242 / .7));box-shadow:var(--s-shadow-subtle);text-align:center;@media (min-width: 1024px){position:sticky;top:calc(var(--header-height) + var(--s-spacing-4));grid-row:2;grid-column:2;align-self:start}.img-holder{position:relative;width:80px;margin-inline:auto;margin-block-end:var(--s-spacing-3);&:after{z-index:-1;position:absolute;inset:-24px;background-image:radial-gradient(closest-side at 50% 50%,var(--s-color-image-gradient),transparent);content:""}}img{width:80px;height:80px;-o-object-fit:cover;object-fit:cover;border-radius:28%}.p-name-intro{margin-block-end:var(--s-spacing-1);color:var(--s-color-text-inverse);font-size:clamp(1rem,1vw + .8rem,1.15rem);line-height:var(--s-line-height-lead);font-family:var(--s-font-family-heading);letter-spacing:normal}.p-note{color:var(--s-color-gray-800);font-size:1rem;line-height:1.55}}}@layer pages{html,body{scroll-padding-block-start:var(--header-height);@media (prefers-reduced-motion: no-preference){scroll-behavior:smooth}}body{display:flex;flex-direction:column;color-scheme:light only;&.dark{color-scheme:dark only}}::-moz-selection{background:var(--s-color-brand-primary-light);color:var(--s-color-text)}::selection{background:var(--s-color-brand-primary-light);color:var(--s-color-text)}.page-main{flex:1;&:has(.page-contact){display:flex;justify-content:stretch}}.page-header{position:relative;margin-block-end:var(--s-spacing-5);padding-block:var(--s-spacing-5);border-block-end:1px solid;-o-border-image:var(--s-divider-gradient) 1;border-image:var(--s-divider-gradient) 1;&.centered .container{width:min(700px,100%);margin-inline:auto;text-align:center;.search{margin-block-start:var(--s-spacing-4)}}&:after{position:absolute;bottom:-6px;left:50%;width:12px;height:12px;translate:-50% 0;background:var(--s-color-text);content:"";clip-path:var(--s-divider-diamond)}}body.overflow-hidden{overflow:hidden}body:has(#mobile-nav:popover-open){overflow:hidden}.grain{z-index:9999;position:fixed;width:100%;height:100%;inset:0;mix-blend-mode:var(--c-grain-blend-mode, multiply);opacity:var(--c-grain-opacity, .035);pointer-events:none}}@layer pages{@property --atm-hue-1{syntax: "<number>"; inherits: false; initial-value: 30;}@property --atm-hue-2{syntax: "<number>"; inherits: false; initial-value: 280;}@property --atm-opacity-1{syntax: "<number>"; inherits: false; initial-value: .28;}@property --atm-opacity-2{syntax: "<number>"; inherits: false; initial-value: .06;}@property --atm-opacity-3{syntax: "<number>"; inherits: false; initial-value: 0;}.homepage-sections{position:relative;overflow:clip;>*{z-index:2;position:relative}&:before,&:after{z-index:0;position:fixed;content:"";filter:blur(clamp(60px,8vw,120px));pointer-events:none;will-change:transform,opacity}&:before{top:-10%;right:-15%;width:50vw;height:50vw;transform:translate(60%,-15%);border-radius:62% 38% 46% 54%/60% 44% 56% 40%;background:oklch(85% .08 var(--atm-hue-1));opacity:var(--atm-opacity-1)}&:after{bottom:-10%;left:-15%;width:45vw;height:45vw;transform:translate(-30%,35%);border-radius:44% 56% 38% 62%/52% 48% 60% 40%;background:oklch(82% .1 var(--atm-hue-2));mix-blend-mode:multiply;opacity:var(--atm-opacity-2)}@supports (animation-timeline: scroll()){&:before{--atm-hue-1: 30;--atm-opacity-1: .28;animation:atm-light-1 linear forwards;animation-timeline:scroll(root);animation-range:0% 100%}&:after{--atm-hue-2: 290;--atm-opacity-2: .06;animation:atm-light-2 linear forwards;animation-timeline:scroll(root);animation-range:5% 95%}@media (prefers-reduced-motion: reduce){&:before,&:after{animation:none}}}}.atmosphere-glow{z-index:0;position:fixed;top:40%;left:30%;width:40vw;height:40vw;border-radius:52% 48% 44% 56%/46% 54% 38% 62%;background:#cfb2d6;filter:blur(clamp(60px,8vw,120px));opacity:var(--atm-opacity-3);pointer-events:none;will-change:transform,opacity;@supports (animation-timeline: scroll()){--atm-opacity-3: 0;animation:atm-light-3 linear forwards;animation-timeline:scroll(root);animation-range:15% 85%;@media (prefers-reduced-motion: reduce){animation:none}}}@keyframes atm-light-1{0%{--atm-hue-1: 30;--atm-opacity-1: .28;transform:translate(60%,-15%);border-radius:62% 38% 46% 54%/60% 44% 56% 40%}33%{--atm-hue-1: 25;--atm-opacity-1: .24;transform:translateY(-10%);border-radius:56% 44% 50% 50%/54% 46% 52% 48%}66%{--atm-hue-1: 340;--atm-opacity-1: .1;transform:translate(-25%,-80%)}to{--atm-hue-1: 320;--atm-opacity-1: .1;transform:translate(-105%,-90%);border-radius:48% 52% 42% 58%/56% 44% 50% 50%}}@keyframes atm-light-2{0%{--atm-hue-2: 290;--atm-opacity-2: .06;transform:translate(-30%,35%);border-radius:44% 56% 38% 62%/52% 48% 60% 40%}33%{--atm-hue-2: 295;--atm-opacity-2: .2;transform:translate(-55%,40%);border-radius:50% 50% 44% 56%/48% 52% 54% 46%}66%{--atm-hue-2: 305;--atm-opacity-2: .08;transform:translate(-20%,30%)}to{--atm-hue-2: 300;--atm-opacity-2: .25;transform:translate(-50%,38%);border-radius:52% 48% 46% 54%/42% 58% 48% 52%}}@keyframes atm-light-3{0%{--atm-opacity-3: 0;transform:translate(-50%,-50%) scale(.9)}33%{--atm-opacity-3: .12;transform:translate(-40%,-48%) scale(1)}66%{--atm-opacity-3: .04;transform:translate(-60%,-52%) scale(.95)}to{--atm-opacity-3: .16;transform:translate(-35%,-46%) scale(1.05)}}.home-hero{padding-block:clamp(var(--s-spacing-6),5vw,var(--s-spacing-8))}.home-hero-grid{display:grid;gap:var(--s-spacing-4);@media (min-width: 1024px){grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) 320px}@media (min-width: 1400px){grid-template-columns:minmax(0,1fr) 360px}}.home-hero-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:calc(var(--s-spacing-5) / 2);@media (min-width: 1024px){grid-row:1;grid-column:1 / -1}.home-hero-btn-label{display:none;@media (min-width: 768px){display:inline}}}.home-hero-articles{min-width:0;@media (min-width: 1024px){grid-row:2;grid-column:1}.home-articles{container-type:inline-size;display:grid;gap:var(--s-spacing-4)}.article-preview,.article-latest{padding:var(--s-spacing-4);border:1px solid var(--c-home-latest-card-border, var(--s-color-gray-200));border-radius:12px;background-color:var( --c-home-latest-card-bg, rgb(250 247 242 / .6) );box-shadow:var(--s-shadow-subtle);transition:box-shadow .3s ease;&:hover,&:focus-within{box-shadow:var(--s-shadow-medium);h2 a{color:var(--s-color-link)}}h2 a{color:inherit;text-decoration:none;transition:color .2s ease;&:focus-visible{color:var(--s-color-link)}}.article-preview-image{order:-1;img{aspect-ratio:16 / 9;-o-object-fit:cover;object-fit:cover;border-radius:8px}}@container (min-width: 630px){display:grid;grid-template-rows:auto;grid-template-columns:110px 1fr;align-items:center;gap:var(--s-spacing-4);.article-preview-image{grid-row:1;grid-column:1;order:0;margin-block-end:0;img{aspect-ratio:1;border-radius:18%;@supports (corner-shape: squircle){border-radius:40%;corner-shape:squircle}}}.article-preview-header{grid-row:1;grid-column:2;order:0}}@container (min-width: 800px){grid-template-columns:130px 1fr}}.article-preview+.article-preview,.article-latest+.article-preview,.article-preview+.article-latest{--article-spacing: 0;margin-block-start:0}}.home-bluesky{position:relative;padding-block:clamp(var(--s-spacing-5),4vw,var(--s-spacing-7))}.home-photo-reel{padding-block:clamp(var(--s-spacing-5),4vw,var(--s-spacing-7));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:var(--c-photo-reel-bg, rgb(250 247 242 / .65));-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 24'%3E%3Ccircle cx='9' cy='2' r='1'/%3E%3Ccircle cx='34' cy='3' r='.8'/%3E%3Ccircle cx='61' cy='1' r='1'/%3E%3Ccircle cx='88' cy='3' r='.7'/%3E%3Ccircle cx='4' cy='6' r='1'/%3E%3Ccircle cx='19' cy='7' r='1.2'/%3E%3Ccircle cx='34' cy='5' r='1'/%3E%3Ccircle cx='49' cy='7' r='1'/%3E%3Ccircle cx='64' cy='6' r='1.1'/%3E%3Ccircle cx='79' cy='5' r='1.2'/%3E%3Ccircle cx='94' cy='7' r='1'/%3E%3Ccircle cx='2' cy='10' r='1.3'/%3E%3Ccircle cx='13' cy='11' r='1.2'/%3E%3Ccircle cx='25' cy='10' r='1.4'/%3E%3Ccircle cx='37' cy='11' r='1.3'/%3E%3Ccircle cx='49' cy='10' r='1.2'/%3E%3Ccircle cx='61' cy='11' r='1.4'/%3E%3Ccircle cx='73' cy='10' r='1.3'/%3E%3Ccircle cx='85' cy='11' r='1.2'/%3E%3Ccircle cx='97' cy='10' r='1.4'/%3E%3Ccircle cx='3' cy='15' r='1.7'/%3E%3Ccircle cx='13' cy='14' r='1.5'/%3E%3Ccircle cx='23' cy='16' r='1.8'/%3E%3Ccircle cx='33' cy='14' r='1.6'/%3E%3Ccircle cx='43' cy='15' r='1.7'/%3E%3Ccircle cx='53' cy='14' r='1.8'/%3E%3Ccircle cx='63' cy='16' r='1.6'/%3E%3Ccircle cx='73' cy='14' r='1.7'/%3E%3Ccircle cx='83' cy='15' r='1.8'/%3E%3Ccircle cx='93' cy='14' r='1.6'/%3E%3Ccircle cx='2' cy='20' r='2.2'/%3E%3Ccircle cx='11' cy='21' r='2'/%3E%3Ccircle cx='21' cy='19' r='2.3'/%3E%3Ccircle cx='31' cy='21' r='2.1'/%3E%3Ccircle cx='40' cy='20' r='2.2'/%3E%3Ccircle cx='50' cy='19' r='2.3'/%3E%3Ccircle cx='59' cy='21' r='2.1'/%3E%3Ccircle cx='69' cy='20' r='2.2'/%3E%3Ccircle cx='78' cy='21' r='2.3'/%3E%3Ccircle cx='88' cy='19' r='2.1'/%3E%3Ccircle cx='97' cy='20' r='2.2'/%3E%3C/svg%3E"),linear-gradient(black,black);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 24'%3E%3Ccircle cx='9' cy='2' r='1'/%3E%3Ccircle cx='34' cy='3' r='.8'/%3E%3Ccircle cx='61' cy='1' r='1'/%3E%3Ccircle cx='88' cy='3' r='.7'/%3E%3Ccircle cx='4' cy='6' r='1'/%3E%3Ccircle cx='19' cy='7' r='1.2'/%3E%3Ccircle cx='34' cy='5' r='1'/%3E%3Ccircle cx='49' cy='7' r='1'/%3E%3Ccircle cx='64' cy='6' r='1.1'/%3E%3Ccircle cx='79' cy='5' r='1.2'/%3E%3Ccircle cx='94' cy='7' r='1'/%3E%3Ccircle cx='2' cy='10' r='1.3'/%3E%3Ccircle cx='13' cy='11' r='1.2'/%3E%3Ccircle cx='25' cy='10' r='1.4'/%3E%3Ccircle cx='37' cy='11' r='1.3'/%3E%3Ccircle cx='49' cy='10' r='1.2'/%3E%3Ccircle cx='61' cy='11' r='1.4'/%3E%3Ccircle cx='73' cy='10' r='1.3'/%3E%3Ccircle cx='85' cy='11' r='1.2'/%3E%3Ccircle cx='97' cy='10' r='1.4'/%3E%3Ccircle cx='3' cy='15' r='1.7'/%3E%3Ccircle cx='13' cy='14' r='1.5'/%3E%3Ccircle cx='23' cy='16' r='1.8'/%3E%3Ccircle cx='33' cy='14' r='1.6'/%3E%3Ccircle cx='43' cy='15' r='1.7'/%3E%3Ccircle cx='53' cy='14' r='1.8'/%3E%3Ccircle cx='63' cy='16' r='1.6'/%3E%3Ccircle cx='73' cy='14' r='1.7'/%3E%3Ccircle cx='83' cy='15' r='1.8'/%3E%3Ccircle cx='93' cy='14' r='1.6'/%3E%3Ccircle cx='2' cy='20' r='2.2'/%3E%3Ccircle cx='11' cy='21' r='2'/%3E%3Ccircle cx='21' cy='19' r='2.3'/%3E%3Ccircle cx='31' cy='21' r='2.1'/%3E%3Ccircle cx='40' cy='20' r='2.2'/%3E%3Ccircle cx='50' cy='19' r='2.3'/%3E%3Ccircle cx='59' cy='21' r='2.1'/%3E%3Ccircle cx='69' cy='20' r='2.2'/%3E%3Ccircle cx='78' cy='21' r='2.3'/%3E%3Ccircle cx='88' cy='19' r='2.1'/%3E%3Ccircle cx='97' cy='20' r='2.2'/%3E%3C/svg%3E"),linear-gradient(#000,#000);-webkit-mask-position:top center,0 20px;mask-position:top center,0 20px;-webkit-mask-repeat:repeat-x,no-repeat;mask-repeat:repeat-x,no-repeat;-webkit-mask-size:100px 24px,100% 100%;mask-size:100px 24px,100% 100%}.home-categories{padding-block:clamp(var(--s-spacing-6),2.22vw + 1.51rem,var(--s-spacing-7));border-block-start:1px solid var(--s-color-gray-300);background-image:radial-gradient(circle,var(--c-home-categories-dot-color, rgb(58 52 42 / .03)) .5px,transparent .5px),linear-gradient(var(--c-home-categories-gradient-start, rgb(255 234 219 / .25)) 0,var(--c-home-categories-gradient-end, rgb(255 234 219 / .4)) 90px);background-size:14px 14px,100% 100%;.nav-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:var(--s-spacing-5)}}}@layer pages{.article-overview{container-type:inline-size;padding-block-start:clamp(var(--s-spacing-6),5vw,var(--s-spacing-8));padding-block-end:clamp(var(--s-spacing-6),2.96vw + 1.05rem,var(--s-spacing-8));@media (min-width: 1024px){display:grid;grid-template-columns:minmax(200px,1fr) 240px;gap:var(--s-spacing-7)}@media (min-width: 1200px){grid-template-columns:minmax(200px,1fr) 320px}@media (min-width: 1400px){grid-template-columns:72ch auto;gap:var(--s-spacing-9)}.article-preview .article-preview-image img{@container (min-width: 680px){aspect-ratio:1;-o-object-fit:cover;object-fit:cover}}}.article-header{position:relative;margin-block-end:clamp(var(--s-spacing-5),4vw,var(--s-spacing-7));padding-block-end:var(--s-spacing-4);border-block-end:1px solid;-o-border-image:var(--s-divider-gradient) 1;border-image:var(--s-divider-gradient) 1;&:after{position:absolute;bottom:-6px;left:50%;width:12px;height:12px;translate:-50% 0;background:var(--s-color-text);content:"";clip-path:var(--s-divider-diamond)}h1{text-wrap:pretty}.article-preview-date{font-size:var(--16px);@media (min-width: 768px){font-size:var(--20px)}}}.return-to-overview{display:flex;position:relative;justify-content:center;margin-block:var(--s-spacing-4) 0;padding-block:var(--s-spacing-7) 0;border-block-start:1px solid;-o-border-image:var(--s-divider-gradient) 1;border-image:var(--s-divider-gradient) 1;@media (min-width: 1024px){margin-block:var(--s-spacing-8) 0;padding-block:var(--s-spacing-8)}&:after{position:absolute;top:-6px;left:50%;width:12px;height:12px;translate:-50% 0;background:var(--s-color-text);content:"";clip-path:var(--s-divider-diamond)}}.article-by{margin-block:var(--s-spacing-8);padding-block:var(--s-spacing-4);border-block-start:1px solid var(--c-article-by-border, var(--s-color-divider));border-block-end:1px solid var(--c-article-by-border, var(--s-color-divider))}.related{container-type:inline-size;padding:var(--s-spacing-4);border:1px solid var(--s-surface-border);border-radius:var(--s-radius-card);background:var(--c-home-latest-card-bg, rgb(250 247 242 / .6));box-shadow:var(--s-shadow-subtle);@media (min-width: 768px){padding:var(--s-spacing-5)}h3{margin-block-end:var(--s-spacing-4);padding-block-end:var(--s-spacing-4);border-block-end:1px solid var(--s-surface-border)}}.article-share{padding:0;padding-block:var(--s-spacing-4);border:0;border-radius:0;border-block-start:1px solid var(--sidebar-border);background:transparent;box-shadow:none;h4{margin-block-end:var(--s-spacing-3)}a{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;margin-inline-end:var(--s-spacing-1);border:1px solid color-mix(in oklab,var(--s-surface-border),transparent 35%);border-radius:50%;background:var( --c-article-share-link-bg, color-mix(in oklab, var(--s-surface-2), var(--s-surface-0) 60%) );color:var(--s-color-text-inverse);transition:background-color .2s ease,color .2s ease,scale .2s ease,border-color .2s ease;&:hover,&:focus-visible{scale:1.04;border-color:color-mix(in oklab,var(--s-accent-subtle),transparent 28%);color:var(--social-brand-color, var(--s-color-text-inverse))}}}.article-share+.btn-rss{padding-block:var(--s-spacing-4) 0;border-block-start:1px solid var(--sidebar-border)}}@layer pages{.search-list-item:not(:first-child){--article-spacing: clamp( var(--s-spacing-4), 1.82vw + .64rem, var(--s-spacing-6) );margin-block-start:var(--article-spacing);padding-block-start:var(--article-spacing);border-block-start:1px solid var(--s-color-divider)}.search{position:relative}.search-results{z-index:3;position:absolute;right:0;bottom:100%;left:0;max-height:40vh;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--s-surface-border);border-radius:8px;background-color:var(--s-color-bg);box-shadow:var(--s-shadow-elevated);@media (min-width: 1024px){top:100%;bottom:auto;margin-block-start:var(--s-spacing-2)}}.search-results-heading{margin:0;padding:var(--s-spacing-2) var(--s-spacing-3);border-block-end:1px solid var(--s-surface-border);outline:none;color:var(--s-color-text-lightest);font-weight:600;font-size:var(--13px, .8125rem);font-family:var(--s-font-family-base);letter-spacing:.04em;text-transform:uppercase;&:focus-visible{color:var(--s-color-brand-primary)}}.search-results-list{margin:0;padding:0;list-style:none;li{padding:var(--s-spacing-2) var(--s-spacing-3);transition:background-color .15s ease;&:not(:last-child){border-block-end:1px solid color-mix(in oklab,var(--s-surface-border),transparent 50%)}&:hover,&.is-active{background-color:var(--s-surface-1)}&.is-active a{color:var(--s-color-brand-primary);text-decoration:underline}a{display:block;margin-block-end:2px;color:var(--s-color-link);font-size:var(--16px);line-height:var(--22px, 1.375rem);font-family:var(--s-font-family-heading);text-decoration:none;&:hover{text-decoration:underline}&:focus{outline:none}}}}.search-summary{display:-webkit-box;-webkit-line-clamp:2;color:var(--s-color-text-lightest);font-size:var(--14px);line-height:var(--20px);-webkit-box-orient:vertical;margin:0;overflow:hidden}}@layer pages{.about-page{padding-block-start:clamp(var(--s-spacing-5),3.7vw + .52rem,var(--s-spacing-8));padding-block-end:clamp(var(--s-spacing-6),2.96vw + 1.05rem,var(--s-spacing-8));background-color:var(--s-color-secondary);.about-intro{display:grid;gap:var(--s-spacing-6);@media (min-width: 1200px){grid-template-columns:repeat(2,1fr);align-items:center;gap:var(--s-spacing-7)}@media (min-width: 1200px){gap:var(--s-spacing-8)}}}.about-content .container{width:min(900px,100%);padding-block-start:clamp(var(--s-spacing-4),4.44vw + .11rem,var(--s-spacing-8));padding-block-end:clamp(var(--s-spacing-6),2.96vw + 1.05rem,var(--s-spacing-8))}.side-projects{list-style:none;padding-inline-start:0;li+li{margin-block-start:var(--s-spacing-2)}a{font-weight:600}}.spoken-at-scroll{container-type:inline-size;max-block-size:20rem;overflow-y:auto;border:1px solid var(--s-color-divider);border-radius:.5rem;padding:var(--s-spacing-2) var(--s-spacing-3)}.spoken-at-list{list-style:none;padding-inline-start:0;margin:0;li{display:flex;flex-wrap:wrap;align-items:baseline;-moz-column-gap:var(--s-spacing-3);column-gap:var(--s-spacing-3);padding-block:var(--s-spacing-2)}li+li{border-block-start:1px solid var(--s-color-divider)}.spoken-at-name{flex-basis:100%;font-weight:600}.spoken-at-location{opacity:.7}time{font-size:var(--14px, .875rem);opacity:.55;margin-inline-start:auto}@container (min-inline-size: 460px){display:grid;grid-template-columns:auto 1fr auto;.spoken-at-name{flex-basis:auto}li{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;align-items:baseline;-moz-column-gap:var(--s-spacing-4);column-gap:var(--s-spacing-4)}time{text-align:end;white-space:nowrap}}}.about-io{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;padding-block:var(--s-spacing-8);overflow:clip;border-block-start:1px solid var(--s-color-divider);text-align:center;h2{margin-block-end:var(--s-spacing-5)}}}@layer pages{.error-page{padding-block-start:clamp(var(--s-spacing-4),4.44vw + .11rem,var(--s-spacing-8));padding-block-end:clamp(var(--s-spacing-6),2.96vw + 1.05rem,var(--s-spacing-8));text-align:center}}@layer pages{.page-contact{width:100%;padding-block:0;.lead{max-width:650px}.contact-grid{display:grid;gap:var(--s-spacing-6);@media (min-width: 1024px){grid-template-columns:2fr 1fr;padding-block-end:0;>*:first-child{order:2}}}h1{margin-block-end:0}}.contact-form .container{width:min(900px,100%);padding-block-start:clamp(var(--s-spacing-6),2.96vw + 1.05rem,var(--s-spacing-8));padding-block-end:clamp(var(--s-spacing-6),2.96vw + 1.05rem,var(--s-spacing-8));.contact-form-header{text-align:center}.form-group{margin-block-end:var(--s-spacing-5)}.alert{margin-block-start:var(--s-spacing-5)}}.social-contact{padding-block:clamp(var(--s-spacing-6),5vw,var(--s-spacing-8));background-color:var(--s-color-secondary)}.contact-form{padding-block-start:clamp(var(--s-spacing-4),4.44vw + .11rem,var(--s-spacing-8));padding-block-end:clamp(var(--s-spacing-6),2.96vw + 1.05rem,var(--s-spacing-8));h2{display:grid;grid-template-columns:1fr auto 1fr;-moz-column-gap:20px;column-gap:20px;align-items:center;margin-block:var(--s-spacing-5);color:var(--s-color-text);line-height:1.2;letter-spacing:.05em;text-align:center;text-transform:uppercase;&:before,&:after{height:1px;background:var(--s-color-text);content:""}}}.social-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));padding-block-end:var(--s-spacing-5);gap:var(--s-spacing-5)}.social-card-title{display:block;text-align:center;opacity:0;transition:opacity .4s ease}.social-card{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:4 / 3;border-radius:4px;background:var(--s-color-bg);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;font-weight:700;font-size:var(--20px);font-family:var(--s-font-family-heading);text-align:center;text-decoration:none;@supports (corner-shape: squircle){border-radius:75vw;corner-shape:squircle}@media (min-width: 576px) and (max-width: 767px){aspect-ratio:4 / 2}@media (min-width: 1024px) and (max-width: 1199px){aspect-ratio:4 / 3}svg{display:inline-block;transform:translateY(18px);transition:transform .3s ease-out}&:is(:hover,:focus,:active){svg{transform:translateY(5px)}.social-card-title{margin-block-start:8px;opacity:1;transition-delay:0}}}}@layer vendor{/*! purgecss start ignore */:root{--prism-text: #222;--prism-bg: #f6f3ec;--prism-punctuation: #bc0376;--prism-blue: #05618f;--prism-pink: #eb007d;--prism-purple-light: #7b5296;--prism-css-color: #f93d04;--prism-purple: #691b7a;--prism-purple-on-dark: #ff00d6;--prism-green: #5d8a1c;--prism-yellow: #a24c05;--prism-comment: #616161;--prism-regex: #6d3a00;--prism-border-color: var(--s-surface-border);--prism-accent-line: var(--s-accent-subtle);--prism-chrome-bg: var(--s-surface-2);--prism-chrome-divider: rgba(58, 52, 42, .12)}.dark{--prism-text: #eee;--prism-bg: #0e0c16;--prism-punctuation: linen;--prism-blue: #80cbc4;--prism-pink: #ff1493;--prism-purple-light: #c792ea;--prism-css-color: #fd9170;--prism-purple: #e599f7;--prism-purple-on-dark: #ff00d6;--prism-green: #a5e844;--prism-yellow: #ffcb6b;--prism-comment: #888;--prism-regex: #f2ff00;--prism-border-color: var(--prism-bg);--prism-accent-line: var(--s-accent-subtle);--prism-chrome-bg: rgba(255, 255, 255, .04);--prism-chrome-divider: rgba(255, 255, 255, .12);@media (dynamic-range: high){@supports (color: color(display-p3 0 0 0)){--prism-blue: color(display-p3 61% 99% 100%);--prism-purple-light: color(display-p3 .79 .56 1);--prism-css-color: color(display-p3 .99 .62 .49);--prism-pink: color(display-p3 1 0 1);--prism-purple: color(display-p3 .5 0 1);--prism-purple-on-dark: color(display-p3 98% 0% 83%);--prism-green: color(display-p3 .65 .98 .1);--prism-yellow: color(display-p3 1 .77 .3)}}}code[class*=language-],pre[class*=language-]{background:none;text-align:left;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;border-radius:10px;background:var(--prism-bg);color:var(--prism-text);font-size:var(--14px);line-height:1.5em;font-family:Source Code Pro,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;-webkit-hyphens:none;hyphens:none;-moz-tab-size:4;-o-tab-size:4;tab-size:4;@media screen and (min-width: 768px){font-size:var(--16px)}}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.2em;white-space:normal}pre[class*=language-]{position:relative;padding:2.35em 0 0;overflow:clip;border:0;border-radius:var(--s-radius-code);box-shadow:var(--s-shadow-medium);&:before{position:absolute;top:0;right:0;left:0;height:1.7em;border-bottom:1px solid var(--prism-chrome-divider);background:radial-gradient(circle at 1em 50%,#ff5f57 .22em,transparent .24em),radial-gradient(circle at 1.9em 50%,#febc2e .22em,transparent .24em),radial-gradient(circle at 2.8em 50%,#28c840 .22em,transparent .24em),linear-gradient(180deg,#ffffff8c,#ffffff2e),var(--prism-chrome-bg);content:"";pointer-events:none}}pre[class*=language-]>code{display:block;overflow-x:auto;padding:0 1em 1.1em}.dark pre[class*=language-]:before{background:radial-gradient(circle at 1em 50%,#ff5f57 .22em,transparent .24em),radial-gradient(circle at 1.9em 50%,#febc2e .22em,transparent .24em),radial-gradient(circle at 2.8em 50%,#28c840 .22em,transparent .24em),linear-gradient(180deg,#ffffff1a,#0000003d),var(--prism-chrome-bg)}.language-css>code,.language-sass>code,.language-scss>code,.language-javascript>code{color:var(--prism-css-color)}[class*=language-] .namespace{opacity:.7}.token.atrule{color:var(--prism-css-color);.rule{color:var(--prism-purple-light)}}.token.attr-name{color:var(--prism-yellow)}.token.attr-value,.token.attribute{color:var(--prism-green)}.token.boolean{color:var(--prism-purple-light)}.token.builtin{color:var(--prism-yellow)}.token.cdata,.token.char{color:var(--prism-blue)}.token.class{color:var(--prism-yellow)}.token.class-name{color:var(--prism-regex)}.token.comment{color:var(--prism-comment)}.token.constant{color:var(--prism-purple-light)}.token.deleted{color:#f66}.token.doctype{color:#616161}.token.entity{color:#f66}.token.function{color:var(--prism-purple-light)}.token.hexcode{color:var(--prism-regex)}.token.id,.token.important{color:var(--prism-purple-light);font-weight:700}.token.inserted{color:var(--prism-blue)}.token.keyword{color:var(--prism-purple-light)}.token.number{color:#fd9170}.token.operator{color:var(--prism-blue)}.token.prolog{color:#616161}.token.property{color:var(--prism-blue)}.token.pseudo-class,.token.pseudo-element{color:var(--prism-green)}.token.punctuation{color:var(--prism-punctuation)}.token.regex{color:var(--prism-regex)}.token.selector{color:var(--prism-purple-on-dark)}.token.string{color:var(--prism-green)}.token.symbol{color:var(--prism-purple-light)}.token.tag{color:var(--prism-pink)}.token.unit{color:#fd9170}.token.url,.token.variable{color:#f66}/*! purgecss end ignore */}
