:root{--fluid-min-width: 360;--fluid-max-width: 1280;--fluid-screen: 100%;--bp-mobile: 480px;--bp-mobile-lg: 640px;--bp-tablet: 768px;--bp-desktop: 1024px;--bp-desktop-lg: 1280px;--fluid-bp: calc( (var(--fluid-screen) - (var(--fluid-min-width) / 16 * 1rem)) / (var(--fluid-max-width) - var(--fluid-min-width)) );@media screen and (min-width:1280px){--fluid-screen: calc(var(--fluid-max-width) * 1px)}--color-light-cream: #fcfbf7;--color-cream: #f6f5f1;--color-tinted-cream: #e6e3e1;--color-black: #353534;--color-gray-900: #353534;--color-gray-800: #4a4a46;--color-gray-700: #5c5c58;--color-gray-600: #73706d;--color-gray-500: #8e8f94;--color-gray-400: #afb0b6;--color-gray-300: #d3d3d1;--color-gray-200: #e3e3e0;--color-gray-100: #e9e9e7;--color-hero-bg: #edebe8;--color-cyan-50: #ecfeff;--color-cyan-100: #cffafe;--color-cyan-200: #a5f3fc;--color-cyan-300: #67e8f9;--color-cyan-400: #22d3ee;--color-cyan-500: #06b6d4;--color-cyan-600: #0891b2;--color-cyan-700: #0e7490;--color-cyan-800: #155e75;--color-cyan-900: #164e63;--color-cyan-950: #083344;--color-primary: var(--color-cyan-600);--color-primary-hover: var(--color-cyan-700);--color-primary-dark: var(--color-cyan-800);--color-primary-light: var(--color-cyan-500);--color-brand-accent: var(--color-cyan-600);--color-brand-accent-dark: var(--color-cyan-800);--color-success: #4a7c59;--color-success-light: #6b9c7d;--color-success-dark: #3a6347;--color-success-bg: rgba(74, 124, 89, .08);--color-success-border: rgba(74, 124, 89, .2);--color-warning: #b8874f;--color-warning-light: #c9a373;--color-warning-dark: #9a6d3d;--color-warning-bg: rgba(184, 135, 79, .08);--color-warning-border: rgba(184, 135, 79, .2);--color-error: #b87070;--color-error-light: #c99090;--color-error-dark: #9a5a5a;--color-error-bg: rgba(184, 112, 112, .08);--color-error-border: rgba(184, 112, 112, .2);--color-info: var(--color-cyan-600);--color-info-light: var(--color-cyan-500);--color-info-dark: var(--color-cyan-700);--color-info-bg: rgba(8, 145, 178, .08);--color-info-border: rgba(8, 145, 178, .2);--color-selection-bg: rgba(8, 145, 178, .2);--color-selection-bg-dark: rgba(8, 145, 178, .15);--section-bg-tint: rgba(246, 245, 241, .4);--post-gridline-color: rgba(53, 53, 52, .08);--post-surface: var(--color-light-cream);--post-surface-alt: var(--color-cream);--post-border-radius: 28px;--reading-color-surface: var(--color-light-cream);--reading-color-card: var(--color-light-cream);--reading-color-text: var(--color-black);--reading-color-muted: var(--color-gray-700);--reading-color-subtle: var(--color-gray-600);--reading-color-link: var(--color-cyan-700);--reading-color-link-hover: var(--color-cyan-600);--reading-color-border: var(--color-tinted-cream);--reading-color-strong-border: var(--color-cyan-600);--reading-color-outline: var(--color-cyan-600);--reading-color-code-bg: #0b1220;--reading-color-code-border: rgba(8, 145, 178, .3);--reading-color-inline-code-bg: color-mix(in srgb, var(--color-cyan-600) 8%, transparent);--reading-color-inline-code-border: rgba(8, 145, 178, .15);--reading-color-callout-bg: color-mix(in srgb, var(--color-cyan-600) 6%, transparent);--reading-color-callout-border: color-mix(in srgb, var(--color-cyan-600) 15%, transparent);--font-serif: "Canela Deck", serif;--font-body: "Canela Text", serif;--font-sans: "Lato", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--fw-x-light: 100;--fw-light: 300;--fw-normal: 400;--fw-medium: 600;--fw-bold: 700;--root-font-size: 17px;--fs-xs-min: 14;--fs-xs-max: 14;--fs-sm-min: 15;--fs-sm-max: 16;--fs-base-min: 17;--fs-base-max: 17;--fs-code-min: 15;--fs-code-max: 17;--fs-lg-min: 20;--fs-lg-max: 28;--fs-xl-min: 40;--fs-xl-max: 54;--fs-2xl-min: 46;--fs-2xl-max: 60;--fs-3xl-min: 72;--fs-3xl-max: 88;--fs-4xl-min: 64;--fs-4xl-max: 80;--fs-5xl-min: 80;--fs-5xl-max: 96;--fs-6xl-min: 96;--fs-6xl-max: 128;--fs-xs: calc( ((var(--fs-xs-min) / 16) * 1rem) + (var(--fs-xs-max) - var(--fs-xs-min)) * var(--fluid-bp) );--fs-sm: calc( ((var(--fs-sm-min) / 16) * 1rem) + (var(--fs-sm-max) - var(--fs-sm-min)) * var(--fluid-bp) );--fs-base: calc( ((var(--fs-base-min) / 16) * 1rem) + (var(--fs-base-max) - var(--fs-base-min)) * var(--fluid-bp) );--fs-code: calc( ((var(--fs-code-min) / 16) * 1rem) + (var(--fs-code-max) - var(--fs-code-min)) * var(--fluid-bp) );--fs-lg: calc( ((var(--fs-lg-min) / 16) * 1rem) + (var(--fs-lg-max) - var(--fs-lg-min)) * var(--fluid-bp) );--fs-xl: calc( ((var(--fs-xl-min) / 16) * 1rem) + (var(--fs-xl-max) - var(--fs-xl-min)) * var(--fluid-bp) );--fs-2xl: calc( ((var(--fs-2xl-min) / 16) * 1rem) + (var(--fs-2xl-max) - var(--fs-2xl-min)) * var(--fluid-bp) );--fs-3xl: calc( ((var(--fs-3xl-min) / 16) * 1rem) + (var(--fs-3xl-max) - var(--fs-3xl-min)) * var(--fluid-bp) );--fs-4xl: calc( ((var(--fs-4xl-min) / 16) * 1rem) + (var(--fs-4xl-max) - var(--fs-4xl-min)) * var(--fluid-bp) );--fs-5xl: calc( ((var(--fs-5xl-min) / 16) * 1rem) + (var(--fs-5xl-max) - var(--fs-5xl-min)) * var(--fluid-bp) );--fs-6xl: calc( ((var(--fs-6xl-min) / 16) * 1rem) + (var(--fs-6xl-max) - var(--fs-6xl-min)) * var(--fluid-bp) );--lh-tightest: 1;--lh-tight: 1.2;--lh-snug: 1.35;--lh-normal: 1.5;--lh-relaxed: 1.65;--lh-loose: 1.8;--lh-comfortable: 1.75;--lh-reading: 1.72;--lh-code: 1.55;--ls-tighter: -.02em;--ls-tight: -.01em;--ls-normal: 0;--ls-slight: .005em;--ls-wide: .01em;--ls-wider: .02em;--ls-widest: .05em;--reading-body-size: clamp(1.0625rem, .4vw + 1rem, 1.125rem);--reading-h1-size: clamp(2.625rem, 2.2vw + 2rem, 3.75rem);--hero-heading-size: clamp(3rem, 3vw + 2.25rem, 4.25rem);--reading-h2-size: clamp(2rem, 1.6vw + 1.5rem, 2.75rem);--reading-h3-size: clamp(1.625rem, 1.1vw + 1.25rem, 2.125rem);--reading-h4-size: clamp(1.375rem, .85vw + 1.125rem, 1.75rem);--reading-line-height: 1.72;--reading-heading-line-height-h1: 1.22;--reading-heading-line-height-h2: 1.3;--reading-heading-line-height-h3: 1.35;--reading-spacing-unit: .8rem;--heading-letter-spacing-tight: -.015em;--heading-letter-spacing-snug: -.008em;--reading-content-max: 68.8235rem;--reading-column-padding: clamp(1.5rem, 4vw, 4rem);--reading-progress-height: 3px;--reading-outline-width: 18rem;--rhythm-paragraph-comfortable: 1.5rem;--rhythm-paragraph-standard: 1rem;--rhythm-heading-h1-above: 3rem;--rhythm-heading-h1-below: 1.25rem;--rhythm-heading-h2-above: 2.5rem;--rhythm-heading-h2-below: 1rem;--rhythm-heading-h3-above: 2rem;--rhythm-heading-h3-below: .875rem;--rhythm-heading-h4-above: 1.5rem;--rhythm-heading-h4-below: .75rem;--rhythm-list-above: 1rem;--rhythm-list-below: 1rem;--rhythm-list-item: .5rem;--rhythm-blockquote-above: 2rem;--rhythm-blockquote-below: 2rem;--rhythm-code-above: 2rem;--rhythm-code-below: 2rem;--rhythm-image-above: 2.5rem;--rhythm-image-below: .75rem;--rhythm-caption-below: 1.5rem;--sp-micro-min: 4;--sp-micro-max: 6;--sp-tight-min: 8;--sp-tight-max: 10;--sp-standard-min: 12;--sp-standard-max: 16;--sp-comfortable-min: 20;--sp-comfortable-max: 24;--sp-section-min: 32;--sp-section-max: 40;--sp-large-min: 48;--sp-large-max: 56;--sp-xl-min: 64;--sp-xl-max: 80;--sp-max-min: 96;--sp-max-max: 128;--sp-xxs-min: var(--sp-micro-min);--sp-xxs-max: var(--sp-micro-max);--sp-xs-min: var(--sp-tight-min);--sp-xs-max: var(--sp-tight-max);--sp-sm-min: var(--sp-standard-min);--sp-sm-max: var(--sp-standard-max);--sp-md-min: var(--sp-comfortable-min);--sp-md-max: var(--sp-comfortable-max);--sp-lg-min: var(--sp-section-min);--sp-lg-max: var(--sp-section-max);--sp-2xl-min: var(--sp-large-min);--sp-2xl-max: var(--sp-large-max);--sp-3xl-min: var(--sp-xl-min);--sp-3xl-max: var(--sp-xl-max);--sp-4xl-min: var(--sp-max-min);--sp-4xl-max: var(--sp-max-max);--sp-xxs: calc( ((var(--sp-xxs-min) / 17) * 1rem) + (var(--sp-xxs-max) - var(--sp-xxs-min)) * var(--fluid-bp) );--sp-xs: calc( ((var(--sp-xs-min) / 17) * 1rem) + (var(--sp-xs-max) - var(--sp-xs-min)) * var(--fluid-bp) );--sp-sm: calc( ((var(--sp-sm-min) / 17) * 1rem) + (var(--sp-sm-max) - var(--sp-sm-min)) * var(--fluid-bp) );--sp-md: calc( ((var(--sp-md-min) / 17) * 1rem) + (var(--sp-md-max) - var(--sp-md-min)) * var(--fluid-bp) );--sp-lg: calc( ((var(--sp-lg-min) / 17) * 1rem) + (var(--sp-lg-max) - var(--sp-lg-min)) * var(--fluid-bp) );--sp-xl: calc( ((var(--sp-xl-min) / 17) * 1rem) + (var(--sp-xl-max) - var(--sp-xl-min)) * var(--fluid-bp) );--sp-2xl: calc( ((var(--sp-2xl-min) / 17) * 1rem) + (var(--sp-2xl-max) - var(--sp-2xl-min)) * var(--fluid-bp) );--sp-3xl: calc( ((var(--sp-3xl-min) / 17) * 1rem) + (var(--sp-3xl-max) - var(--sp-3xl-min)) * var(--fluid-bp) );--sp-4xl: calc( ((var(--sp-4xl-min) / 17) * 1rem) + (var(--sp-4xl-max) - var(--sp-4xl-min)) * var(--fluid-bp) );--sp-micro: var(--sp-xxs);--sp-tight: var(--sp-xs);--sp-standard: var(--sp-sm);--sp-comfortable: var(--sp-md);--sp-section: var(--sp-lg);--sp-large: var(--sp-2xl);--layout-container-max-width: 1420px;--layout-reading-shell-max-width: 1200px;--layout-topics-shell-max-width: var(--layout-container-max-width);--layout-container-padding-inline: var(--sp-lg);--layout-container-padding-inline-mobile: var(--sp-comfortable);--header-gap: clamp(.6rem, 2vw, .9rem);--header-divider-gap: clamp(.8rem, 2.5vw, 1.2rem);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--box-shadow-sm: .2px .2px .8px -10px rgba(40, 10, 0, .014), .4px .4px 2px -10px rgba(40, 10, 0, .02), .8px .8px 3.8px -10px rgba(40, 10, 0, .025), 1.3px 1.3px 6.7px -10px rgba(40, 10, 0, .03), 2.5px 2.5px 12.5px -10px rgba(40, 10, 0, .036), 6px 6px 30px -10px rgba(40, 10, 0, .05);--box-shadow: .2px .2px .8px -10px rgba(40, 10, 0, .014), .4px .4px 2px -10px rgba(40, 10, 0, .02), .8px .8px 3.8px -10px rgba(40, 10, 0, .025), 1.3px 1.3px 6.7px -10px rgba(40, 10, 0, .03), 2.5px 2.5px 12.5px -10px rgba(40, 10, 0, .036), 6px 6px 30px -10px rgba(40, 10, 0, .05);--box-shadow-lg: .2px .4px .8px -10px rgba(40, 10, 0, .02), .4px .9px 2px -10px rgba(40, 10, 0, .03), .8px 1.8px 3.8px -10px rgba(40, 10, 0, .04), 1.3px 3.1px 6.7px -10px rgba(40, 10, 0, .05), 2.5px 5.8px 12.5px -10px rgba(40, 10, 0, .06), 6px 14px 30px -10px rgba(40, 10, 0, .08)}@media(prefers-color-scheme:dark){:root{--color-dark-bg: #e8e6e0;--color-dark-surface: #e0ddd6;--color-dark-surface-alt: #d8d5cd;--color-dark-border: #c9c6be;--color-dark-border-subtle: rgba(53, 53, 52, .12);--color-dark-text: #2a2a29;--color-dark-text-muted: #3d3d3b;--color-dark-text-subtle: #4f4f4d;--color-light-cream: var(--color-dark-bg);--color-cream: var(--color-dark-surface);--color-tinted-cream: var(--color-dark-border);--color-black: var(--color-dark-text);--color-gray-900: var(--color-dark-text);--color-gray-800: var(--color-dark-text-muted);--color-gray-700: var(--color-dark-text-subtle);--color-gray-600: #5c5c58;--color-gray-500: #6b6b67;--color-gray-400: #7a7a76;--color-gray-300: #9a9a96;--color-gray-200: #b8b8b4;--color-gray-100: #d0d0cc;--color-hero-bg: var(--color-dark-surface);--color-primary: var(--color-cyan-500);--color-primary-hover: var(--color-cyan-400);--color-primary-dark: var(--color-cyan-600);--color-primary-light: var(--color-cyan-400);--color-brand-accent: var(--color-cyan-500);--color-brand-accent-dark: var(--color-cyan-600);--color-success: #5a8c69;--color-success-light: #6b9c7d;--color-success-dark: #4a7c59;--color-success-bg: rgba(90, 140, 105, .12);--color-success-border: rgba(90, 140, 105, .3);--color-warning: #c8975f;--color-warning-light: #d9a873;--color-warning-dark: #b8874f;--color-warning-bg: rgba(200, 151, 95, .12);--color-warning-border: rgba(200, 151, 95, .3);--color-error: #c88080;--color-error-light: #d99090;--color-error-dark: #b87070;--color-error-bg: rgba(200, 128, 128, .12);--color-error-border: rgba(200, 128, 128, .3);--color-info: var(--color-cyan-500);--color-info-light: var(--color-cyan-400);--color-info-dark: var(--color-cyan-600);--color-info-bg: rgba(6, 182, 212, .12);--color-info-border: rgba(6, 182, 212, .3);--post-gridline-color: rgba(53, 53, 52, .12);--post-surface: var(--color-dark-surface);--post-surface-alt: var(--color-dark-surface-alt);--reading-color-surface: var(--color-dark-bg);--reading-color-card: var(--color-dark-surface);--reading-color-text: var(--color-dark-text);--reading-color-muted: var(--color-dark-text-muted);--reading-color-subtle: var(--color-dark-text-subtle);--reading-color-link: var(--color-cyan-500);--reading-color-link-hover: var(--color-cyan-400);--reading-color-border: var(--color-dark-border);--reading-color-strong-border: var(--color-cyan-600);--reading-color-outline: var(--color-cyan-500);--reading-color-code-bg: #1a1f2e;--reading-color-code-border: rgba(8, 145, 178, .4);--reading-color-inline-code-bg: rgba(8, 145, 178, .12);--reading-color-inline-code-border: rgba(8, 145, 178, .2);--reading-color-callout-bg: rgba(8, 145, 178, .08);--reading-color-callout-border: rgba(8, 145, 178, .25);--box-shadow-sm: .2px .2px .8px -10px rgba(40, 10, 0, .02), .4px .4px 2px -10px rgba(40, 10, 0, .025), .8px .8px 3.8px -10px rgba(40, 10, 0, .03), 1.3px 1.3px 6.7px -10px rgba(40, 10, 0, .04), 2.5px 2.5px 12.5px -10px rgba(40, 10, 0, .05), 6px 6px 30px -10px rgba(40, 10, 0, .06);--box-shadow: .2px .2px .8px -10px rgba(40, 10, 0, .02), .4px .4px 2px -10px rgba(40, 10, 0, .025), .8px .8px 3.8px -10px rgba(40, 10, 0, .03), 1.3px 1.3px 6.7px -10px rgba(40, 10, 0, .04), 2.5px 2.5px 12.5px -10px rgba(40, 10, 0, .05), 6px 6px 30px -10px rgba(40, 10, 0, .06);--box-shadow-lg: .2px .4px .8px -10px rgba(40, 10, 0, .025), .4px .9px 2px -10px rgba(40, 10, 0, .035), .8px 1.8px 3.8px -10px rgba(40, 10, 0, .045), 1.3px 3.1px 6.7px -10px rgba(40, 10, 0, .055), 2.5px 5.8px 12.5px -10px rgba(40, 10, 0, .065), 6px 14px 30px -10px rgba(40, 10, 0, .08)}}@font-face{font-family:Canela Deck;src:local("CanelaDeck-Regular"),url(/assets/fonts/CanelaDeck-Regular.woff2) format("woff2"),url(/assets/fonts/CanelaDeck-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Canela Deck;src:local("CanelaDeck-Bold"),url(/assets/fonts/CanelaDeck-Bold.woff2) format("woff2"),url(/assets/fonts/CanelaDeck-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Canela Deck;src:local("CanelaDeck-Light"),url(/assets/fonts/CanelaDeck-Light.woff2) format("woff2"),url(/assets/fonts/CanelaDeck-Light.woff) format("woff");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Canela Text;src:local("CanelaText-Medium"),url(/assets/fonts/CanelaText-Medium.woff2) format("woff2"),url(/assets/fonts/CanelaText-Medium.woff) format("woff");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Canela Text;src:local("CanelaText-Light"),url(/assets/fonts/CanelaText-Light.woff2) format("woff2"),url(/assets/fonts/CanelaText-Light.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Canela Text;src:local("CanelaText-LightItalic"),url(/assets/fonts/CanelaText-LightItalic.woff2) format("woff2"),url(/assets/fonts/CanelaText-LightItalic.woff) format("woff");font-weight:300;font-style:italic;font-display:swap}::selection{background-color:var(--color-selection-bg);color:var(--color-black)}::-moz-selection{background-color:var(--color-selection-bg);color:var(--color-black)}@media(prefers-color-scheme:dark){::selection{background-color:var(--color-selection-bg-dark);color:var(--color-dark-text)}::-moz-selection{background-color:var(--color-selection-bg-dark);color:var(--color-dark-text)}}*,*:before,*:after{box-sizing:border-box}html{font-size:var(--root-font-size);scrollbar-gutter:stable both-edges;overflow-y:scroll}body{margin:0;font-size:var(--fs-base);line-height:var(--lh-reading);font-family:var(--font-body);font-weight:var(--fw-light);color:var(--color-black);background-color:var(--color-cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1,"liga" 1,"onum" 1,"calt" 1;font-variant-numeric:oldstyle-nums;font-kerning:normal;-webkit-animation:fadeIn 3s;-moz-animation:fadeIn 3s;animation:fadeIn 3s}p,ul,ol{font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-reading);font-weight:var(--fw-light);width:100%;text-wrap:pretty;letter-spacing:var(--ls-normal);orphans:2;widows:2;hyphens:auto;-webkit-hyphens:auto;-moz-hyphens:auto;font-feature-settings:"kern" 1,"liga" 1,"onum" 1,"calt" 1}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);color:var(--color-black);font-feature-settings:"kern" 1,"liga" 1,"calt" 1,"swsh" 1;text-rendering:optimizeLegibility;font-kerning:normal;letter-spacing:var(--heading-letter-spacing-tight)}h1{font-size:var(--fs-4xl);text-wrap:balance;font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h1);margin-top:0;margin-bottom:var(--rhythm-heading-h1-below)}h2{font-size:var(--fs-3xl);text-wrap:balance;font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h2);margin-top:var(--rhythm-heading-h2-above);margin-bottom:var(--rhythm-heading-h2-below)}h3{font-size:var(--fs-2xl);font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h3);margin-top:var(--rhythm-heading-h3-above);margin-bottom:var(--rhythm-heading-h3-below)}h4{font-size:var(--fs-xl);font-weight:var(--fw-x-light);line-height:var(--lh-snug);margin-top:var(--rhythm-heading-h4-above);margin-bottom:var(--rhythm-heading-h4-below)}h5{font-size:var(--fs-lg);font-weight:var(--fw-x-light);line-height:var(--lh-snug);margin-top:var(--rhythm-heading-h4-above);margin-bottom:var(--rhythm-heading-h4-below)}h6{font-size:var(--fs-sm);font-weight:var(--fw-x-light);line-height:var(--lh-snug);margin-top:var(--rhythm-heading-h4-above);margin-bottom:var(--rhythm-heading-h4-below)}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-moz-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}img{max-width:100%;height:auto;display:block}hr{border:none;height:4px;width:clamp(64px,12vw,140px);border-radius:999px;background:linear-gradient(90deg,color-mix(in oklab,var(--color-cyan-600) 85%,white 15%) 0%,color-mix(in oklab,var(--color-cyan-700) 85%,white 15%) 40%,transparent 100%);margin:var(--sp-xl) auto;opacity:.9}a{text-decoration:none;color:inherit;outline:none}a:visited{text-decoration:none;color:inherit}a:focus-visible{outline:2px solid var(--color-cyan-700);outline-offset:4px}.skip-link{position:fixed;top:.5rem;left:.5rem;background:var(--reading-color-card);color:var(--reading-color-link);border:1px solid var(--reading-color-border);border-radius:var(--radius-md);padding:var(--sp-xs) var(--sp-sm);box-shadow:var(--box-shadow);transform:translateY(-180%);transition:transform .14s ease;z-index:999}.skip-link:focus-visible{transform:translateY(0)}.container{width:100%;max-width:var(--layout-container-max-width);margin-left:auto;margin-right:auto;padding:0 var(--layout-container-padding-inline)}@media(max-width:640px){.container{padding:0 var(--layout-container-padding-inline-mobile)}html{font-size:16px}}@media(max-width:480px){.container{padding:0 var(--sp-comfortable)}html{font-size:15px}}.intro-section{padding:var(--sp-xl) 0 var(--sp-lg)}@media(min-width:768px){.intro-section{padding:var(--sp-2xl) 0 var(--sp-xl)}}.hero-section{padding:clamp(var(--sp-large),6vw,var(--sp-xl)) 0 clamp(var(--sp-comfortable),4vw,var(--sp-section))}@media(max-width:640px){.hero-section{padding:clamp(var(--sp-section),5vw,var(--sp-large)) 0 clamp(var(--sp-comfortable),3vw,var(--sp-section))}}.hero-section__intro{margin-bottom:var(--sp-section);max-width:var(--reading-content-max)}.hero-section__title{font-family:var(--font-serif);font-weight:var(--fw-normal);font-size:var(--hero-heading-size);line-height:var(--reading-heading-line-height-h1);letter-spacing:var(--heading-letter-spacing-tight);color:var(--color-black);margin-top:0;margin-bottom:calc(var(--rhythm-heading-h1-below) * 1.2);text-wrap:balance}.hero-section__name{font-weight:var(--fw-bold)}.hero-section__subtitle{font-family:var(--font-body);font-size:var(--fs-lg);color:var(--color-gray-700);font-weight:var(--fw-light);line-height:var(--lh-relaxed);letter-spacing:var(--ls-normal);margin-top:0;margin-bottom:var(--rhythm-paragraph-comfortable)}.hero-section__text{font-family:var(--font-body);font-size:var(--reading-body-size);line-height:var(--lh-reading);font-weight:var(--fw-light);color:var(--color-black);margin-top:0;margin-bottom:0;max-width:var(--reading-content-max)}.hero-section img{width:100%;object-fit:cover;background:var(--color-hero-bg)}.intro-section__title{font-family:var(--font-serif);font-weight:var(--fw-normal);font-size:var(--fs-4xl);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--color-black);margin-bottom:var(--sp-lg)}.intro-section__title b{font-weight:var(--fw-bold)}.intro-section__divider{width:clamp(6.25rem,8vw,9.375rem);height:.625rem;background-color:var(--color-cyan-600);margin:var(--sp-md) 0 var(--sp-md)}.intro-section__subtitle{font-family:var(--font-sans);font-size:var(--fs-lg);color:var(--color-gray-800);font-weight:var(--fw-light);line-height:var(--lh-relaxed);letter-spacing:var(--ls-normal);margin-top:0;margin-bottom:0}.intro-section__description{font-family:var(--font-sans);font-size:var(--fs-lg);color:var(--color-gray-800);font-weight:var(--fw-light);line-height:var(--lh-relaxed);letter-spacing:var(--ls-normal);margin-top:var(--sp-xs);margin-bottom:0}.featured-work-section{padding:clamp(var(--sp-section),4vw,var(--sp-large)) 0 clamp(var(--sp-section),4vw,var(--sp-large));background-color:var(--color-cream)}@media(min-width:768px){.featured-work-section{padding:clamp(var(--sp-large),6vw,var(--sp-xl)) 0 clamp(var(--sp-large),6vw,var(--sp-xl))}}.featured-work-section__title{font-family:var(--font-serif);font-size:var(--reading-h2-size);font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h2);letter-spacing:var(--heading-letter-spacing-tight);color:var(--color-black);margin-top:0;margin-bottom:var(--rhythm-heading-h2-below)}.featured-work-section__grid{display:grid;grid-template-columns:1fr;gap:var(--sp-comfortable);margin-bottom:var(--sp-comfortable)}@media(min-width:640px){.featured-work-section__grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-section)}}@media(min-width:768px){.featured-work-section__grid{gap:var(--sp-section)}}@media(min-width:1024px){.featured-work-section__grid{grid-template-columns:repeat(4,1fr);gap:var(--sp-section)}}.featured-work-section__link{margin-top:var(--sp-section);margin-bottom:0}.featured-work-section__link a{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--color-cyan-600);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;font-weight:var(--fw-medium);letter-spacing:var(--ls-normal);transition:color .2s ease-in-out,text-decoration-thickness .2s ease-in-out;display:inline-block;padding:var(--sp-tight) 0;margin:calc(var(--sp-tight) * -1) 0}@media(max-width:640px){.featured-work-section__link a{padding:var(--sp-standard) 0;margin:calc(var(--sp-standard) * -1) 0;font-size:var(--fs-sm)}}.featured-work-section__link a:hover{color:var(--color-cyan-700);text-decoration-thickness:2px}.projects-section{padding:0 0 var(--sp-2xl)}@media(min-width:768px){.projects-section{padding:0 0 var(--sp-3xl)}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--sp-lg)}@media(min-width:768px){.projects-grid{gap:var(--sp-xl)}}.project-card{display:flex;flex-direction:column;border:1px solid var(--color-tinted-cream);border-radius:var(--radius-md);box-shadow:var(--box-shadow-sm);background:var(--color-light-cream);transition:all .3s ease-in-out,border-radius .3s ease-in-out;will-change:transform,box-shadow;color:var(--color-gray-800);cursor:pointer;position:relative}.project-card:before{content:"";transform-origin:50% 100%;background:var(--color-cyan-600);transition:clip-path .3s,transform .3s cubic-bezier(.2,1,.8,1);position:absolute;width:100%;height:2px;bottom:0;left:0;pointer-events:none;clip-path:polygon(0% 0%,0% 100%,0 100%,0 0,100% 0,100% 100%,0 100%,0 100%,100% 100%,100% 0%)}.project-card:hover:before{transform:translateZ(0) scale3d(1,2,1);clip-path:polygon(0% 0%,0% 100%,100% 100%,50% 0,50% 0,50% 100%,50% 100%,0 100%,100% 100%,100% 0%)}.project-card picture{border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:hidden}.project-card img{width:100%;display:block;object-fit:cover;background:var(--color-cream);border-radius:var(--radius-md) var(--radius-md) 0 0}.project-card:hover{box-shadow:var(--box-shadow-lg);transform:scale3d(1.02,1.02,1.02);border-radius:var(--radius-md) var(--radius-md) 0 0}.project-card:hover h2{color:var(--color-cyan-700)}.featured-work-section .project-card{display:flex;flex-direction:column;border:1px solid var(--color-tinted-cream);border-radius:var(--radius-md);box-shadow:var(--box-shadow-sm);background:var(--color-light-cream);transition:all .3s ease-in-out,border-radius .3s ease-in-out;will-change:transform,box-shadow;color:var(--color-gray-800);cursor:pointer;position:relative}.featured-work-section .project-card:before{content:"";transform-origin:50% 100%;background:var(--color-cyan-600);transition:clip-path .3s,transform .3s cubic-bezier(.2,1,.8,1);position:absolute;width:100%;height:2px;bottom:0;left:0;pointer-events:none;clip-path:polygon(0% 0%,0% 100%,0 100%,0 0,100% 0,100% 100%,0 100%,0 100%,100% 100%,100% 0%)}.featured-work-section .project-card:hover:before{transform:translateZ(0) scale3d(1,2,1);clip-path:polygon(0% 0%,0% 100%,100% 100%,50% 0,50% 0,50% 100%,50% 100%,0 100%,100% 100%,100% 0%)}.featured-work-section .project-card picture{border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:hidden;max-height:8.75rem}.featured-work-section .project-card img{width:100%;display:block;object-fit:cover;background:var(--color-cream);border-radius:var(--radius-md) var(--radius-md) 0 0}.featured-work-section .project-card:hover{box-shadow:var(--box-shadow-lg);transform:scale3d(1.02,1.02,1.02);border-radius:var(--radius-md) var(--radius-md) 0 0}.project-card h2,.project-card h3{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h3);letter-spacing:var(--heading-letter-spacing-snug);margin:var(--sp-comfortable) var(--sp-comfortable) var(--sp-section)!important;text-align:center;transition:all .3s ease-in-out;color:var(--color-black)}.featured-work-section .project-card h2,.featured-work-section .project-card h3{font-family:var(--font-serif);font-size:var(--fs-base);font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h3);letter-spacing:var(--heading-letter-spacing-snug);margin:var(--sp-comfortable) var(--sp-comfortable) var(--sp-section)!important;text-align:center;transition:all .3s ease-in-out;color:var(--color-black)}.project-card:hover h2,.project-card:hover h3,.featured-work-section .project-card:hover h2,.featured-work-section .project-card:hover h3{color:var(--color-cyan-700)}footer{border-top:1px solid var(--color-gray-300);padding:var(--sp-comfortable) 0;margin-top:var(--sp-xl);text-align:center;font-size:var(--fs-xs);color:var(--color-gray-800)}@media(min-width:768px){footer{margin-top:var(--sp-2xl)}}footer p{color:var(--color-gray-800);font-family:var(--font-sans);font-weight:var(--fw-normal);letter-spacing:var(--ls-normal);line-height:var(--lh-normal)}.recent-notes-section{padding:clamp(var(--sp-section),4vw,var(--sp-large)) 0 clamp(var(--sp-section),4vw,var(--sp-large));background-color:var(--color-cream)}@media(min-width:640px){.recent-notes-section{padding:clamp(var(--sp-large),5vw,var(--sp-xl)) 0 clamp(var(--sp-large),5vw,var(--sp-xl))}}@media(min-width:768px){.recent-notes-section{padding:clamp(var(--sp-large),6vw,var(--sp-xl)) 0 clamp(var(--sp-large),6vw,var(--sp-xl))}}.recent-notes-section__title{font-family:var(--font-serif);font-size:var(--reading-h2-size);font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h2);letter-spacing:var(--heading-letter-spacing-tight);color:var(--color-black);margin-top:0;margin-bottom:var(--rhythm-heading-h2-below)}.recent-notes-section__list{list-style:none;padding:0;margin:var(--rhythm-list-above) 0 var(--sp-comfortable);display:flex;flex-direction:column;gap:var(--sp-comfortable)}.recent-notes-section__item{padding-bottom:0}.recent-notes-section__item-title{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h3);letter-spacing:var(--heading-letter-spacing-snug);margin-top:0;margin-bottom:var(--sp-tight);text-wrap:balance}@media(max-width:640px){.recent-notes-section__item-title{font-size:var(--fs-base)}.recent-notes-section__item-description{font-size:var(--fs-sm)}}.recent-notes-section__item-title a{color:var(--color-black);text-decoration:none;transition:color .2s ease-in-out;display:block;padding:var(--sp-tight) 0;margin:calc(var(--sp-tight) * -1) 0}@media(max-width:640px){.recent-notes-section__item-title a{padding:var(--sp-standard) 0;margin:calc(var(--sp-standard) * -1) 0}}.recent-notes-section__item-title a:hover{color:var(--color-cyan-600)}.recent-notes-section__item-description{font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--reading-line-height);font-weight:var(--fw-light);color:var(--color-gray-800);margin-top:0;margin-bottom:0;max-width:var(--reading-content-max)}.recent-notes-section__link{margin-top:var(--sp-section);margin-bottom:0}.recent-notes-section__link a{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--color-cyan-600);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;font-weight:var(--fw-medium);letter-spacing:var(--ls-normal);transition:color .2s ease-in-out,text-decoration-thickness .2s ease-in-out;display:inline-block;padding:var(--sp-tight) 0;margin:calc(var(--sp-tight) * -1) 0}@media(max-width:640px){.recent-notes-section__link a{padding:var(--sp-standard) 0;margin:calc(var(--sp-standard) * -1) 0;font-size:var(--fs-sm)}}.recent-notes-section__link a:hover{color:var(--color-cyan-700);text-decoration-thickness:2px}.bread-butter-section{padding:clamp(var(--sp-section),4vw,var(--sp-large)) 0 clamp(var(--sp-section),4vw,var(--sp-large));background-color:var(--color-cream)}@media(min-width:768px){.bread-butter-section{padding:clamp(var(--sp-large),6vw,var(--sp-xl)) 0 clamp(var(--sp-large),6vw,var(--sp-xl))}}.bread-butter-section__title{font-family:var(--font-serif);font-size:var(--reading-h2-size);font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h2);letter-spacing:var(--heading-letter-spacing-tight);color:var(--color-black);margin-top:0;margin-bottom:var(--rhythm-heading-h2-below)}.bread-butter-section__text{font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--reading-line-height);font-weight:var(--fw-light);color:var(--color-gray-800);margin-top:0;margin-bottom:0;max-width:var(--reading-content-max)}.bread-butter-section__text a{color:var(--color-cyan-600);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;transition:color .2s ease-in-out,text-decoration-thickness .2s ease-in-out}.bread-butter-section__text a:hover{color:var(--color-cyan-700);text-decoration-thickness:2px}.bread-butter-section__link{margin-top:var(--sp-section);margin-bottom:0}.bread-butter-section__link a{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--color-cyan-600);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;font-weight:var(--fw-medium);letter-spacing:var(--ls-normal);transition:color .2s ease-in-out,text-decoration-thickness .2s ease-in-out;display:inline-block;padding:var(--sp-tight) 0;margin:calc(var(--sp-tight) * -1) 0}@media(max-width:640px){.bread-butter-section__link a{padding:var(--sp-standard) 0;margin:calc(var(--sp-standard) * -1) 0;font-size:var(--fs-sm)}}.bread-butter-section__link a:hover{color:var(--color-cyan-700);text-decoration-thickness:2px}.work-with-me-section{padding:clamp(var(--sp-section),4vw,var(--sp-large)) 0 clamp(var(--sp-section),4vw,var(--sp-large))}@media(min-width:768px){.work-with-me-section{padding:clamp(var(--sp-large),6vw,var(--sp-xl)) 0 clamp(var(--sp-large),6vw,var(--sp-xl))}}.work-with-me-section__title{font-family:var(--font-serif);font-size:var(--reading-h2-size);font-weight:var(--fw-normal);line-height:var(--reading-heading-line-height-h2);letter-spacing:var(--heading-letter-spacing-tight);color:var(--color-black);margin-top:0;margin-bottom:var(--rhythm-heading-h2-below)}.work-with-me-section__text{font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--reading-line-height);font-weight:var(--fw-light);color:var(--color-gray-800);margin-top:0;margin-bottom:0;max-width:var(--reading-content-max)}.work-with-me-section__form{margin-top:var(--sp-section);max-width:var(--reading-content-max)}.form-group{margin-bottom:var(--sp-tight)}.form-group:last-of-type{margin-bottom:var(--sp-standard)}.form-label{display:block;font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--color-gray-800);margin-bottom:calc(var(--sp-micro) * .5);margin-top:0;letter-spacing:var(--ls-normal);line-height:var(--lh-normal);transition:color .2s ease-in-out}.form-group:focus-within .form-label{color:var(--color-cyan-700)}.form-group:has(.form-input--error) .form-label,.form-group:has(.form-textarea--error) .form-label{color:var(--color-error)}.form-input,.form-textarea{width:100%;padding:calc(var(--sp-tight) * .75) var(--sp-standard);font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--reading-line-height);font-weight:var(--fw-light);color:var(--color-gray-800);background-color:var(--color-cream);border:1px solid var(--post-gridline-color);border-radius:var(--radius-sm);transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out,background-color .2s ease-in-out;box-sizing:border-box;appearance:none;-webkit-appearance:none;min-height:36px}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-gray-600);opacity:.6}.form-input:hover:not(:focus):not(:disabled),.form-textarea:hover:not(:focus):not(:disabled){border-color:var(--color-gray-300);background-color:var(--color-light-cream)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-cyan-600);background-color:var(--color-light-cream);box-shadow:0 0 0 3px var(--color-info-bg)}.form-input--error,.form-textarea--error{border-color:var(--color-error);background-color:var(--color-error-bg)}.form-input--error:hover:not(:focus),.form-textarea--error:hover:not(:focus){border-color:var(--color-error);background-color:var(--color-error-bg)}.form-input--error:focus,.form-textarea--error:focus{border-color:var(--color-error);background-color:var(--color-error-bg);box-shadow:0 0 0 3px var(--color-error-border)}.form-textarea{resize:vertical;min-height:80px;max-height:200px}.form-actions{margin-top:0;margin-bottom:0}.form-button{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:#fff;background-color:var(--color-cyan-600);border:1px solid var(--color-cyan-600);border-radius:var(--radius-sm);padding:calc(var(--sp-tight) * .75) var(--sp-standard);margin:0;cursor:pointer;letter-spacing:var(--ls-normal);line-height:var(--lh-normal);transition:background-color .2s ease-in-out,border-color .2s ease-in-out;display:inline-block;outline:2px solid transparent;outline-offset:2px;box-shadow:var(--box-shadow-sm);min-height:36px;text-align:center}.form-button:hover:not(:disabled){background-color:var(--color-cyan-700);border-color:var(--color-cyan-700)}.form-button:active{background-color:var(--color-cyan-700);border-color:var(--color-cyan-700)}.form-button:focus-visible{outline:2px solid var(--color-cyan-600);outline-offset:2px;border-radius:var(--radius-sm)}.form-button:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-cyan-600);border-color:var(--color-cyan-600);transform:none;box-shadow:var(--box-shadow-sm)}.form-button:disabled:hover{background-color:var(--color-cyan-600);border-color:var(--color-cyan-600);transform:none;box-shadow:var(--box-shadow-sm)}.form-message{margin-top:var(--sp-standard);font-family:var(--font-sans);font-size:var(--fs-xs);line-height:var(--lh-normal);min-height:1.5em;color:var(--color-gray-800);padding:0;border:none;background:transparent}.form-message.success{color:var(--color-success);background-color:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:var(--radius-sm);padding:var(--sp-tight) var(--sp-standard)}.form-message.error{color:var(--color-error);background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-sm);padding:var(--sp-tight) var(--sp-standard)}.form-error{display:block;font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--color-error);margin-top:var(--sp-micro);min-height:1.2em;opacity:0;transform:translateY(-4px);transition:opacity .2s ease-in-out,transform .2s ease-in-out;line-height:var(--lh-snug)}.form-error--visible{opacity:1;transform:translateY(0)}@media(max-width:640px){.form-group{margin-bottom:var(--sp-tight)}.form-group:last-of-type{margin-bottom:var(--sp-standard)}.form-input,.form-textarea{font-size:var(--fs-sm);padding:calc(var(--sp-tight) * .75) var(--sp-standard);min-height:44px}.form-button{font-size:var(--fs-sm);padding:calc(var(--sp-tight) * .75) var(--sp-standard);width:100%;min-height:44px}.form-error{font-size:var(--fs-xs)}.form-message{margin-top:var(--sp-tight)}}@media(max-width:768px){.hero-section__intro{margin-bottom:var(--sp-comfortable)}.hero-section__title{font-size:var(--fs-2xl);text-align:left;margin-bottom:var(--rhythm-heading-h1-below)}.hero-section__subtitle{text-align:left;font-size:var(--fs-sm);line-height:var(--reading-line-height)}.hero-section__text{text-align:left;font-size:var(--fs-base)}}@media(max-width:640px){.hero-section__title{font-size:clamp(var(--fs-xl),5vw,var(--fs-2xl))}.hero-section__subtitle{font-size:var(--fs-xs)}.hero-section__text{font-size:var(--fs-sm)}}@media(max-width:768px){.featured-work-section__title,.recent-notes-section__title,.bread-butter-section__title,.work-with-me-section__title{font-size:var(--fs-xl);margin-bottom:var(--rhythm-heading-h2-below);font-weight:var(--fw-normal)}.bread-butter-section__text,.work-with-me-section__text{font-size:var(--fs-sm)}.recent-notes-section__item-title{font-size:var(--fs-base);margin-bottom:var(--sp-tight)}.recent-notes-section__item-description{font-size:var(--fs-sm);margin-bottom:var(--sp-tight)}.featured-work-section__grid{grid-template-columns:1fr;gap:var(--sp-comfortable)}.featured-work-section .project-card h2,.featured-work-section .project-card h3{font-size:var(--fs-sm);margin:var(--sp-standard) var(--sp-standard) var(--sp-comfortable)!important}.recent-notes-section__list{gap:var(--sp-comfortable)}.intro-section__title{font-size:var(--fs-xl);text-align:center}.intro-section__subtitle,.intro-section__description{text-align:center;font-size:var(--fs-base)}.intro-section__divider{margin-left:auto;margin-right:auto}.projects-grid{grid-template-columns:1fr;gap:var(--sp-lg)}}.header-container{display:flex;justify-content:space-between;align-items:center;margin:var(--sp-xl) auto var(--sp-2xl)}@media(min-width:768px){.header-container{margin:var(--sp-xl) auto var(--sp-3xl)}}.logo{display:inline-flex;transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.logo svg{width:2rem;height:2rem;fill:var(--color-cyan-600)}.logo svg:hover{fill:var(--color-cyan-700);transition:fill .3s ease-in-out}.logo:hover svg{transform:scale(1.05)}.nav-right{display:flex;align-items:center;position:relative;gap:clamp(var(--sp-sm-min),3vw,var(--sp-sm-max))}.nav-links-group{display:inline-flex;align-items:center;gap:calc(var(--header-gap) * .5);padding-right:var(--header-divider-gap)}.nav-link{font-family:var(--font-sans);font-weight:var(--fw-normal);font-size:var(--fs-sm);color:var(--color-gray-800);text-decoration:none;letter-spacing:var(--ls-normal);line-height:var(--lh-normal);padding:var(--sp-tight) var(--sp-xs);margin:calc(var(--sp-tight) * -1) calc(var(--sp-xs) * -1);display:inline-block}@media(max-width:640px){.nav-link{padding:var(--sp-standard) var(--sp-sm);margin:calc(var(--sp-standard) * -1) calc(var(--sp-sm) * -1)}}.nav-link:hover{color:var(--color-cyan-700);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}.nav-link:not(:last-child):after{content:"·";margin-left:calc(var(--header-gap) * .5);color:var(--color-gray-400);font-weight:var(--fw-normal);opacity:.6}.header-links{display:flex;align-items:center;gap:0}.header-links .popover-button{margin-left:0}.header-links .link-container{position:relative;padding-left:var(--header-divider-gap);margin-left:0}.header-links .link-container:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:1.2em;background:linear-gradient(to bottom,transparent,var(--post-gridline-color),transparent);opacity:.8}@media(max-width:640px){.nav-link,.nav-user{font-size:var(--fs-xs)}.header-links .link-container:before{display:none}.nav-links-group{display:none}}.nav-user{font-weight:var(--fw-normal);text-decoration:none;color:var(--color-gray-800);font-size:var(--fs-sm);font-family:var(--font-sans);letter-spacing:var(--ls-normal);line-height:var(--lh-normal)}.link-container{display:inline-flex;align-items:center;justify-content:center;gap:0;position:relative}.styled-link{cursor:pointer;position:relative;white-space:nowrap;text-decoration:none;outline:2px solid transparent;outline-offset:2px;padding-bottom:.25rem;color:var(--color-cyan-700);letter-spacing:var(--ls-normal);line-height:var(--lh-normal);transition:color .2s ease}.styled-link:focus-visible{outline:2px solid var(--color-cyan-600);outline-offset:2px;border-radius:2px}.styled-link:before{content:"";transform-origin:50% 100%;background:var(--color-cyan-600);transition:clip-path .3s,transform .3s cubic-bezier(.2,1,.8,1);position:absolute;width:100%;height:1px;top:95%;left:0;pointer-events:none;clip-path:polygon(0% 0%,0% 100%,0 100%,0 0,100% 0,100% 100%,0 100%,0 100%,100% 100%,100% 0%)}.styled-link:hover:before{transform:translate3d(0,2px,0) scale3d(1,2,1);clip-path:polygon(0% 0%,0% 100%,100% 100%,50% 0,50% 0,50% 100%,50% 100%,0 100%,100% 100%,100% 0%)}.styled-link span{display:inline-block;transition:all .5s cubic-bezier(.2,1,.8,1);color:var(--color-gray-800)}.styled-link:hover span{transform:translate3d(0,-2px,0);color:var(--color-cyan-700)}.popover-button{padding:0}.chevron-icon{vertical-align:middle;transition:color .3s ease-in-out,background-color .3s ease-in-out,transform .8s ease-in-out;color:var(--color-gray-600);margin-left:0;position:relative;top:0}.popover-button:hover .chevron-icon,.popover-button.hover-persist .chevron-icon{color:var(--color-cyan-600);transform:rotateY(180deg);cursor:pointer;background-color:var(--color-gray-100);border-radius:4px}.popover-button{background:none;border:none;cursor:pointer;padding:var(--sp-xxs)}.wrapper{position:absolute;top:100%;right:0;margin-top:var(--sp-xs);background:var(--color-cream);border:1px solid var(--color-tinted-cream);border-radius:var(--radius-md);padding:var(--sp-xs);z-index:1;transform-origin:top;animation:fadeInDown .3s ease-in-out;box-shadow:var(--box-shadow)}.wrapper.close{display:none}.social{list-style:none;text-align:center;padding:0;margin:0 auto;width:140px}.social li{display:inline-block;margin:var(--sp-xxs) var(--sp-xs)}.social li a{font-size:var(--fs-xs);font-weight:var(--fw-normal);text-decoration:none;color:var(--color-black);transition:color .3s ease}.social li a svg{color:var(--color-gray-300);fill:var(--color-gray-300);transition:fill .3s ease}.social li a svg:hover{fill:var(--color-cyan-600)}.social li a:hover{color:var(--color-cyan-600)}.project-details__title{font-size:var(--fs-2xl);font-family:var(--font-serif);font-weight:var(--fw-normal);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);max-width:100%;margin-bottom:var(--sp-lg)}.project-details__title .muted{color:var(--color-gray-500);font-weight:var(--fw-normal)}.project-details__title .sep{color:var(--color-gray-300);margin:0 var(--sp-xs)}.project-details__title .bright{color:var(--color-cyan-600);font-weight:var(--fw-medium)}.title-block{margin-bottom:0}.title-eyebrow{color:var(--color-cyan-600);font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:var(--fs-sm);letter-spacing:var(--ls-wide);text-transform:uppercase;margin-bottom:var(--sp-tight)}.project-title-muted{color:var(--color-gray-900);font-weight:var(--fw-normal)}.at-a-glance{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--color-gray-600);letter-spacing:var(--ls-normal);margin-bottom:0}.at-a-glance span+span:before{content:" • ";color:var(--color-gray-300);margin:0 var(--sp-xxs)}.project-details__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--sp-lg)}@media(max-width:480px){.project-details__grid{gap:var(--sp-comfortable)}}.project-details__column h5{font-size:var(--fs-lg);margin:var(--sp-sm) 0;color:var(--color-gray-800);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);font-family:var(--font-body);font-weight:var(--fw-medium);text-rendering:optimizeLegibility}.project-details__column p{font-size:var(--fs-base);line-height:var(--lh-comfortable);letter-spacing:var(--ls-slight);margin-bottom:var(--sp-md);font-family:var(--font-sans);orphans:2;widows:2;max-width:var(--reading-content-max);text-wrap:pretty;font-feature-settings:"kern" 1,"liga" 1,"calt" 1}.project-details__column ul{font-size:var(--fs-base);line-height:var(--lh-comfortable);letter-spacing:var(--ls-slight);margin-bottom:var(--sp-md);margin-top:var(--sp-sm);padding-left:var(--sp-lg);list-style-type:disc;font-family:var(--font-sans);max-width:var(--reading-content-max);font-feature-settings:"kern" 1,"liga" 1,"calt" 1}.project-details__column ul li{margin-bottom:var(--sp-xs)}.project-details a,.project-details__footer a{color:var(--color-gray-800);font-family:var(--font-sans)}.project-details__footer{margin-top:var(--sp-xl);text-align:left}@media(min-width:768px){.project-details__footer{margin-top:var(--sp-2xl)}}.project-details__footer .styled-link{font-size:var(--fs-sm)}.readmore-link{display:inline-flex;align-items:center;font-weight:var(--fw-normal);font-family:var(--font-sans);letter-spacing:var(--ls-normal);line-height:var(--lh-normal);color:var(--color-cyan-700);margin-bottom:var(--sp-comfortable)}.readmore-link [data-icon="heroicons:arrow-right"]{transition:all .3s ease-in-out;position:relative;top:.125rem;margin-left:calc(.3125rem + 0*(100vw - 20rem))}.readmore-link:hover{color:var(--color-cyan-600);cursor:pointer}.readmore-link:hover [data-icon="heroicons:arrow-right"]{margin-left:calc(((10 / 16) * 1rem) + ((11 - 10) * ((100vw - 20rem) / (1200 - 320))));color:var(--color-cyan-600)}.readmore-link [data-icon="heroicons:arrow-left"]{transition:all .3s ease-in-out;position:relative;top:.125rem;margin-right:calc(.3125rem + 0*(100vw - 20rem));transform:translate(0)}.readmore-link:hover [data-icon="heroicons:arrow-left"]{transform:translate(-6px);color:var(--color-cyan-700)}.project-details .readmore-link{margin-bottom:var(--sp-xxs)}.project-details__column p:has(>.readmore-link){margin-bottom:var(--sp-xxs)}.about__content{display:grid;grid-template-columns:4fr 3fr;gap:var(--sp-2xl);align-items:start}.about__image{display:flex;justify-content:center;align-items:start}.about__image img{width:100%;max-width:25rem;height:auto;object-fit:cover}.about__header{margin-bottom:var(--sp-xl);text-align:left}.about__header .small-caps{margin-bottom:var(--sp-xxs);font-size:var(--fs-xs);font-family:var(--font-sans);font-weight:var(--fw-bold);color:var(--color-gray-800);text-transform:uppercase;letter-spacing:var(--ls-wide);line-height:var(--lh-normal)}.title1{font-size:clamp(4.5rem,5.5rem,6.5rem);font-family:var(--font-serif);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);font-weight:var(--fw-normal);color:var(--color-black);margin:var(--sp-xs) 0 var(--sp-sm) 0;max-width:1200px}.title2{font-size:clamp(2rem,2.25rem,2.5rem);font-family:var(--font-serif);color:var(--color-gray-800);font-weight:var(--fw-x-light);line-height:var(--lh-snug);letter-spacing:var(--ls-tight);margin:0}.about__text{display:flex;flex-direction:column;gap:var(--sp-xl)}.about__intro,.about__timeline,.about__philosophy,.about__skillset,.about__approach{max-width:700px;margin-bottom:0}.about__philosophy{margin-bottom:var(--sp-xl)}.about__intro p,.about__philosophy p,.about__approach p{font-size:var(--fs-base);color:var(--color-black);margin-top:0;margin-bottom:0;line-height:var(--lh-comfortable);letter-spacing:var(--ls-slight);max-width:65ch;font-family:var(--font-body);font-weight:var(--fw-normal);width:100%;text-wrap:pretty;font-feature-settings:"kern" 1,"liga" 1,"onum" 1,"calt" 1}.about__approach p+ul{margin-top:var(--sp-md)}.about__intro h5,.about__timeline h5,.about__approach h5,.about__philosophy h5,.about__skillset h5{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--ls-wider);text-transform:uppercase;margin:0 0 var(--sp-sm) 0;color:var(--color-black)}.about__intro b,.about__approach b{font-weight:var(--fw-medium);font-family:var(--font-body)}.about__intro p+p{margin-top:var(--sp-md)}.about__intro li,.about__approach li{list-style:none;text-indent:-1.7rem;font-size:var(--fs-base);color:var(--color-black);margin-top:0;margin-bottom:var(--sp-xs);font-family:var(--font-body);font-weight:var(--fw-normal);line-height:var(--lh-comfortable);letter-spacing:var(--ls-slight);max-width:65ch;font-feature-settings:"kern" 1,"liga" 1,"onum" 1,"calt" 1}.about__intro li:last-child,.about__approach li:last-child{margin-bottom:0}.about__intro li:before,.about__approach li:before{content:"";display:inline-block;width:1rem;height:1rem;margin-right:.5rem;background-repeat:no-repeat;background-size:contain;background-position:center;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><polygon fill='%2301a4ba' points='0,5 5,0 10,5 5,10'/></svg>")}.about__intro li strong,.about__approach li strong{font-size:inherit;color:inherit;margin:0;font-family:inherit;font-weight:var(--fw-medium)}.skillset-container{display:flex;gap:var(--sp-md);margin-top:0;align-items:flex-start}.skillset-column{display:flex;flex-direction:column;flex:1;gap:var(--sp-md)}.skillset-category{padding:0;margin:0}.skillset-category h6{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--color-gray-800);margin-bottom:var(--sp-xs);margin-top:0;line-height:var(--lh-tight);letter-spacing:var(--ls-normal);text-transform:uppercase}.skillset-category p{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--color-black);font-weight:var(--fw-normal);line-height:var(--lh-snug);letter-spacing:var(--ls-normal);margin:0;max-width:100%}.timeline{position:relative;max-width:40rem;margin:var(--sp-lg) var(--sp-sm) var(--sp-2xl);padding-left:var(--sp-sm);--timeline-center-x: clamp(18px, calc(18px + 4.5 * ((100vw - 360px) / 920)), 22.5px)}.about__timeline .timeline{margin:0}.timeline:before{content:"";position:absolute;left:var(--timeline-center-x);top:8px;bottom:0;width:2px;background:linear-gradient(to bottom,var(--color-cyan-600) 0%,var(--color-cyan-700) 50%,transparent 100%);transform:translate(-50%)}.timeline-item{position:relative;margin-bottom:var(--sp-lg);padding-left:var(--sp-xl)}.timeline-item:last-child{margin-bottom:0}.timeline-marker{position:absolute;left:calc(var(--timeline-center-x) - var(--sp-sm));top:0;width:16px;height:16px;z-index:1;transform:translate(-50%);display:flex;align-items:center;justify-content:center}.timeline-marker-icon{display:block;width:100%;height:100%;fill:var(--color-cyan-600)}.timeline-year{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:var(--fw-normal);line-height:var(--lh-tight);letter-spacing:var(--ls-wide);color:var(--color-gray-600);text-transform:uppercase;margin-top:0;margin-bottom:var(--sp-xs)}.timeline-role-company{font-family:var(--font-serif);font-size:var(--fs-base);font-weight:var(--fw-normal);line-height:var(--lh-snug);letter-spacing:var(--ls-tight);color:var(--color-black);margin-top:0;margin-bottom:var(--sp-sm)}.timeline-role-company .styled-link{color:var(--color-cyan-700);font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:none;padding-bottom:0;font-style:inherit;transition:color .2s ease}.timeline-role-company .styled-link:hover{color:var(--color-cyan-600)}.timeline-role-company .styled-link:before{display:none}.timeline-description{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-normal);line-height:var(--lh-loose);letter-spacing:var(--ls-normal);color:var(--color-black);margin-top:var(--sp-md);margin-bottom:0}.timeline-description ul{list-style:none;padding:0;margin:0}.timeline-description li{position:relative;padding-left:var(--sp-md);margin-bottom:var(--sp-xs);font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-normal);line-height:var(--lh-loose);letter-spacing:var(--ls-normal);color:var(--color-black);text-wrap:pretty}.timeline-description li:last-child{margin-bottom:0}.timeline-description li:before{content:"—";position:absolute;left:var(--sp-xs);color:var(--color-gray-800);font-weight:var(--fw-light)}@media(max-width:768px){.about{padding:var(--sp-sm) 0}.about__header{margin-bottom:var(--sp-lg)}.about__header .small-caps{font-size:var(--fs-xs)}.title1{font-size:clamp(2.25rem,2.75rem,3rem);line-height:1.1;margin:var(--sp-xxs) 0 var(--sp-xs) 0}.title2{font-size:clamp(1.5rem,1.75rem,2rem);line-height:1.4;margin:0}.about__content{grid-template-columns:1fr;gap:var(--sp-xl)}.about__text{gap:var(--sp-lg)}.about__image{display:none}.about__intro p,.about__philosophy p,.about__approach p{font-size:var(--fs-base);max-width:100%;line-height:var(--lh-loose)}.about__intro h5,.about__timeline h5,.about__approach h5,.about__philosophy h5,.about__skillset h5{font-size:var(--fs-xs);margin-bottom:var(--sp-xs)}.about__intro li,.about__approach li{font-size:var(--fs-base);line-height:var(--lh-loose)}.skillset-container{flex-direction:column;gap:var(--sp-md)}.skillset-column{gap:var(--sp-md)}.skillset-category h6{font-size:var(--fs-xs)}.skillset-category p{font-size:var(--fs-xs);line-height:var(--lh-normal)}.timeline{padding-left:var(--sp-sm);margin-left:var(--sp-xs)}.timeline-item{padding-left:var(--sp-lg);margin-bottom:var(--sp-lg)}.timeline-marker{width:20px;height:20px;transform:translate(-50%)}.timeline:before{top:10px}.timeline-description li:before{left:var(--sp-xs)}}@media(max-width:480px){.about__header{margin-bottom:var(--sp-md)}.title1{font-size:clamp(2rem,2.25rem,2.5rem);line-height:1.1;margin:var(--sp-xxs) 0 var(--sp-xs) 0}.title2{font-size:clamp(1.25rem,1.5rem,1.75rem);line-height:1.4;margin:0}.about__text{gap:var(--sp-lg)}.about__intro p,.about__philosophy p,.about__approach p{font-size:var(--fs-sm);line-height:var(--lh-loose)}.about__intro h5,.about__timeline h5,.about__approach h5,.about__philosophy h5,.about__skillset h5{font-size:var(--fs-xs);letter-spacing:var(--ls-wide);margin-bottom:var(--sp-xs)}.about__intro li,.about__approach li{font-size:var(--fs-sm);line-height:var(--lh-loose)}.timeline{padding-left:var(--sp-xs)}.timeline-description li:before{left:var(--sp-xs)}.skillset-category h6{font-size:var(--fs-xs)}.skillset-category p{font-size:var(--fs-xs);line-height:var(--lh-normal)}}.copyright{font-size:var(--fs-xs);font-family:var(--font-sans);font-weight:var(--fw-normal);color:var(--color-gray-600)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.uses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18.75rem,1fr));gap:var(--sp-lg);margin-top:var(--sp-xl)}.uses-section{padding-bottom:var(--sp-xl)}.uses-section__title{color:var(--color-black);font-family:var(--font-serif);font-size:var(--fs-4xl);font-weight:var(--fw-normal);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);margin-bottom:var(--sp-lg)}.uses-section__subtitle{color:var(--color-gray-800);font-family:var(--font-sans);font-size:var(--fs-lg);font-weight:var(--fw-light);line-height:var(--lh-relaxed);letter-spacing:var(--ls-normal)}.use-section{background:var(--color-light-cream);border:1px solid var(--color-tinted-cream);border-radius:var(--radius-md);padding:var(--sp-md);display:flex;flex-direction:column;justify-content:flex-start;box-shadow:var(--box-shadow)}.use-title{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--color-gray-800);letter-spacing:var(--ls-normal);line-height:var(--lh-tight);margin-bottom:var(--sp-sm)}.use-section ul{list-style-type:none;padding:0;margin:0}.use-section ul li{margin-bottom:var(--sp-sm);font-size:var(--fs-base);color:var(--color-gray-800);line-height:var(--lh-comfortable);letter-spacing:var(--ls-slight);font-feature-settings:"kern" 1,"liga" 1,"calt" 1}.use-section ul li span:first-child{margin-right:var(--sp-xs);font-size:var(--fs-lg);color:var(--color-gray-600)}.use-section ul li small{display:block;margin-top:.25rem;margin-left:0;font-size:var(--fs-sm);color:var(--color-gray-600);opacity:.8;font-weight:var(--fw-normal)}.use-section a{color:var(--color-cyan-700);text-decoration:none;transition:color .3s ease}.use-section a:hover{text-decoration:underline}.intro-section__subtitle{color:var(--color-gray-800);font-family:var(--font-sans);font-size:var(--fs-lg);font-weight:var(--fw-light);line-height:var(--lh-relaxed);letter-spacing:var(--ls-normal)}.use-section:hover{box-shadow:none;background:var(--color-light-cream)}@media(max-width:768px){.uses-grid{grid-template-columns:1fr}.use-section{padding:var(--sp-sm)}.use-title{font-size:var(--fs-md)}}
