.nav[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-4) 0}.brand[data-astro-cid-dmqpwcec]{color:var(--color-text);padding:0;border-radius:0}.brand[data-astro-cid-dmqpwcec]:hover{background:transparent;color:var(--color-text)}.brand-logo[data-astro-cid-dmqpwcec]{display:block;width:clamp(5.75rem,9vw,7.5rem);aspect-ratio:1205 / 413;background:currentColor;mask:url(/katiemacoylogo.svg) center / contain no-repeat;-webkit-mask:url(/katiemacoylogo.svg) center / contain no-repeat;transition:background var(--transition-fast)}:root[data-theme=dark] .brand[data-astro-cid-dmqpwcec]{color:var(--color-text)}:root[data-theme=dark] .brand[data-astro-cid-dmqpwcec]:hover{color:var(--color-text)}ul[data-astro-cid-dmqpwcec]{display:flex;align-items:center;gap:var(--space-2);list-style:none;margin:0;padding:0}.nav-menu[data-astro-cid-dmqpwcec]{position:relative}.nav-menu-toggle[data-astro-cid-dmqpwcec],.theme-toggle-label[data-astro-cid-dmqpwcec]{display:none}.nav-menu-icon[data-astro-cid-dmqpwcec]{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round}.nav-menu-icon--close[data-astro-cid-dmqpwcec],.nav-menu[data-astro-cid-dmqpwcec].is-open .nav-menu-icon--open[data-astro-cid-dmqpwcec]{display:none}.nav-menu[data-astro-cid-dmqpwcec].is-open .nav-menu-icon--close[data-astro-cid-dmqpwcec]{display:block}.nav-link[data-astro-cid-dmqpwcec]{position:relative;display:inline-flex;align-items:center;min-height:var(--target-min);padding:.45rem .9rem;color:var(--color-text);text-decoration:none;white-space:nowrap;transition:color var(--transition-fast)}.nav-link[data-astro-cid-dmqpwcec]:after{content:"";position:absolute;inset-inline:.9rem;bottom:calc(-1 * var(--space-4));height:2px;border-radius:var(--radius-pill);background:currentColor;opacity:0;transform:scaleX(.55);transform-origin:center;transition:opacity var(--transition-fast),transform var(--transition-fast)}.nav-link[data-astro-cid-dmqpwcec]:hover:after{opacity:.45;transform:scaleX(1)}.nav-link[data-astro-cid-dmqpwcec][data-current]{font-weight:700}.nav-link[data-astro-cid-dmqpwcec][data-current]:after{opacity:1;transform:scaleX(1)}.icon-sun[data-astro-cid-dmqpwcec]{display:none}:root[data-theme=dark] .icon-sun[data-astro-cid-dmqpwcec]{display:block}:root[data-theme=dark] .icon-moon[data-astro-cid-dmqpwcec]{display:none}@media(max-width:48rem){.nav[data-astro-cid-dmqpwcec]{gap:var(--space-3)}.nav-menu-toggle[data-astro-cid-dmqpwcec]{display:inline-flex}.nav-menu[data-astro-cid-dmqpwcec]>ul[data-astro-cid-dmqpwcec]{position:fixed;top:calc(var(--target-min) + var(--space-6));left:0;display:none;width:100vw;max-height:calc(100dvh - var(--target-min) - var(--space-6));overflow-y:auto;padding:var(--space-3) var(--page-gutter) var(--space-4);background:var(--color-surface)}.nav-menu[data-astro-cid-dmqpwcec].is-open>ul[data-astro-cid-dmqpwcec]{display:grid;gap:var(--space-1)}.nav-menu[data-astro-cid-dmqpwcec] li[data-astro-cid-dmqpwcec],.nav-link[data-astro-cid-dmqpwcec]{width:100%}.nav-link[data-astro-cid-dmqpwcec]{justify-content:flex-start;padding-inline:var(--space-3);transition:background var(--transition-fast)}.nav-link[data-astro-cid-dmqpwcec]:after{display:none}.nav-link[data-astro-cid-dmqpwcec]:hover{background:color-mix(in srgb,currentColor 8%,transparent)}.nav-theme[data-astro-cid-dmqpwcec]{display:flex;align-items:center;justify-content:space-between;width:100%;padding-inline:var(--space-3)}.theme-toggle-label[data-astro-cid-dmqpwcec]{display:inline}.brand[data-astro-cid-dmqpwcec]{padding-inline:0}.brand-logo[data-astro-cid-dmqpwcec]{width:clamp(4.85rem,20vw,5.75rem)}}.site-footer[data-astro-cid-sz7xmlte]{width:100dvw;margin-left:calc(50% - 50dvw);background:var(--color-surface-brand);color:var(--color-text-on-brand)}.footer-inner[data-astro-cid-sz7xmlte]{width:min(100%,var(--page-max));margin:0 auto;padding:clamp(2rem,4vw,3.5rem) var(--page-gutter)}.footer-grid[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:clamp(3rem,10vw,9rem)}.footer-contact[data-astro-cid-sz7xmlte]>p[data-astro-cid-sz7xmlte],.footer-link-group[data-astro-cid-sz7xmlte]>p[data-astro-cid-sz7xmlte]{margin:0 0 var(--space-3)}.email-row[data-astro-cid-sz7xmlte]{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.footer-email[data-astro-cid-sz7xmlte],.footer-link-group[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:.24em;transition:background var(--transition-fast),text-decoration-color var(--transition-fast)}.footer-email[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;min-height:var(--target-min);padding-block:.2rem}.footer-link-group[data-astro-cid-sz7xmlte] svg[data-astro-cid-sz7xmlte]{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.footer-email[data-astro-cid-sz7xmlte]:hover{background:color-mix(in srgb,currentColor 8%,transparent);text-decoration-color:currentColor}.footer-links[data-astro-cid-sz7xmlte]{display:grid;grid-template-columns:repeat(2,minmax(8rem,1fr));gap:clamp(2.5rem,6vw,5rem)}.footer-link-group[data-astro-cid-sz7xmlte] ul[data-astro-cid-sz7xmlte]{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.footer-link-group[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;min-height:var(--target-min);gap:.35rem;padding-block:.15rem}.footer-link-group[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{background:color-mix(in srgb,currentColor 8%,transparent);text-decoration-color:currentColor}@media(max-width:48rem){.footer-grid[data-astro-cid-sz7xmlte]{grid-template-columns:1fr;gap:var(--space-6)}}@media(max-width:34rem){.footer-links[data-astro-cid-sz7xmlte]{gap:var(--space-5)}}@media(max-width:24rem){.footer-links[data-astro-cid-sz7xmlte]{grid-template-columns:1fr}}.access-dialog-actions[data-astro-cid-gsprqfdm]{display:flex;align-items:center;gap:var(--space-3);position:sticky;bottom:0;padding-top:var(--space-2);background:var(--color-surface)}.access-dialog-actions[data-astro-cid-gsprqfdm] .button[data-astro-cid-gsprqfdm]{width:100%}.access-dialog[data-astro-cid-gsprqfdm]{width:min(calc(100vw - (var(--page-gutter) * 2)),34rem);max-height:min(42rem,calc(100dvh - 2rem));margin:auto;padding:0;overflow:hidden;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.access-dialog[data-astro-cid-gsprqfdm]::backdrop{background:color-mix(in srgb,var(--color-text) 36%,transparent)}.access-dialog-content[data-astro-cid-gsprqfdm]{max-height:min(42rem,calc(100dvh - 2rem));margin:0;padding:var(--space-5);overflow-y:auto;overscroll-behavior:contain}.access-dialog-header[data-astro-cid-gsprqfdm]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.access-dialog-header[data-astro-cid-gsprqfdm] h2[data-astro-cid-gsprqfdm],.access-dialog-content[data-astro-cid-gsprqfdm] p[data-astro-cid-gsprqfdm]{margin:0}.access-dialog-header[data-astro-cid-gsprqfdm] .icon-button[data-astro-cid-gsprqfdm]{flex:0 0 auto}.access-dialog-honeypot[data-astro-cid-gsprqfdm]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.access-dialog-status[data-astro-cid-gsprqfdm]{margin:0}.access-help[data-astro-cid-gsprqfdm]{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2)}.access-dialog[data-astro-cid-gsprqfdm] .form-field[data-astro-cid-gsprqfdm] textarea[data-astro-cid-gsprqfdm]{resize:none}@media(max-width:40rem){.access-dialog[data-astro-cid-gsprqfdm]{width:calc(100dvw - (var(--space-4) * 2));max-height:calc(100dvh - (var(--space-4) * 2))}.access-dialog-content[data-astro-cid-gsprqfdm]{max-height:calc(100dvh - (var(--space-4) * 2));padding:var(--space-4)}}.resume-dialog[data-astro-cid-5lt55k7o]{width:min(72rem,calc(100dvw - (var(--page-gutter) * 2)));height:min(52rem,calc(100dvh - var(--space-6)));max-width:none;max-height:none;margin:auto;padding:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text);box-shadow:var(--shadow-card)}.resume-dialog[data-astro-cid-5lt55k7o]::backdrop{background:color-mix(in srgb,var(--color-text) 44%,transparent)}.resume-dialog__bar[data-astro-cid-5lt55k7o]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:4rem;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.resume-dialog__bar[data-astro-cid-5lt55k7o] h2[data-astro-cid-5lt55k7o]{margin:0}.resume-dialog__frame[data-astro-cid-5lt55k7o]{display:block;width:100%;height:calc(100% - 4rem);border:0;background:var(--color-surface)}@media(max-width:40rem){.resume-dialog[data-astro-cid-5lt55k7o]{width:100dvw;height:100dvh;border-radius:0;border-inline:0}}:root{color-scheme:light;--palette-white: #ffffff;--palette-ink: #17131f;--palette-canvas: #f5f3ef;--palette-muted: #625d68;--palette-prose: #2d2832;--palette-lavender-soft: #eeeaff;--palette-blue-vibrant: #695fc8;--palette-blue-illustration-dark: #5962ad;--palette-blue-action-dark: #695fc8;--palette-lavender-light: #ded5f0;--palette-peach-light: #ffe0d7;--palette-butter-light: #fff0a8;--palette-night: #29282d;--palette-night-inset: #211f25;--palette-night-strong: #242329;--palette-night-surface: #333138;--palette-night-surface-soft: #39363e;--palette-night-surface-raised: #3d3a42;--palette-night-border: #5b5661;--palette-night-border-strong: #7e7786;--palette-night-control-border: #8b8593;--palette-night-text: #fbf9fc;--palette-night-muted: #d8d3dc;--palette-night-prose: #ebe7ef;--palette-brand-dark: #1f1e24;--palette-eggplant: oklch(27.999% .05845 296.859);--palette-lavender-dark: #b9a5d8;--palette-peach-dark: #dca396;--palette-butter-dark: #d9c45f;--color-bg: var(--palette-canvas);--color-surface: var(--palette-white);--color-surface-soft: var(--palette-lavender-soft);--color-surface-illustration: var(--palette-blue-vibrant);--color-surface-raised: var(--palette-white);--color-surface-inset: var(--palette-canvas);--color-surface-strong: var(--palette-eggplant);--color-surface-brand: var(--palette-brand-dark);--color-action-primary: var(--palette-blue-vibrant);--color-text: var(--palette-ink);--color-text-subtle: var(--palette-muted);--color-text-on-strong: var(--palette-white);--color-text-on-brand: var(--palette-white);--color-text-on-primary: var(--palette-white);--color-muted: var(--color-text-subtle);--color-border: rgba(23, 19, 31, .14);--color-border-strong: rgba(23, 19, 31, .28);--color-control-border: var(--palette-muted);--color-accent: var(--palette-ink);--color-accent-contrast: var(--palette-white);--color-prose: var(--palette-prose);--color-code-bg: var(--palette-lavender-soft);--color-code-block-bg: var(--palette-ink);--color-code-block-text: #fdfbff;--color-header: var(--palette-white);--color-focus: #7c5cff;--color-danger: #b4233d;--color-selection-bg: var(--color-surface-brand);--color-selection-text: var(--color-text-on-brand);--color-accent-lavender: var(--palette-lavender-light);--color-accent-peach: var(--palette-peach-light);--color-accent-butter: var(--palette-butter-light);--color-laptop-frame: var(--palette-white);--font-sans: "Host Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display-host: var(--font-sans);--font-display-bricolage: "Bricolage Grotesque", var(--font-sans);--font-display: var(--font-display-host);--font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--weight-body: 400;--weight-h3: 600;--weight-h2: 700;--weight-h1: 800;--weight-heading: var(--weight-h3);--text-body: 1.0625rem;--text-h3: clamp(1.25rem, .3vw + 1.18rem, 1.5rem);--text-h2: clamp(1.875rem, .8vw + 1.7rem, 2.5rem);--text-h1: clamp(2.75rem, 4vw + 1.25rem, 4rem);--leading-display: 1.02;--leading-heading: 1.08;--leading-subheading: 1.2;--leading-body: 1.65;--leading-prose: 1.72;--leading-code: 1.5;--tracking-h1: -.025em;--tracking-h2: -.012em;--tracking-h3: -.005em;--page-max: 80rem;--reading-max: 65ch;--media-max: 68rem;--page-gutter: clamp(1rem, 4vw, 3rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4.5rem;--space-9: 7rem;--section-gap: clamp(4.5rem, 9vw, 7rem);--hero-block: clamp(3.5rem, 8vw, 7rem);--grid-gap: clamp(2rem, 4vw, 4rem);--split-gap: clamp(3rem, 7vw, 6rem);--stack-gap: var(--space-5);--target-min: 2.75rem;--z-sticky: 10;--z-skip-link: 20;--radius-sm: .75rem;--radius-md: 1.25rem;--radius-lg: clamp(1.5rem, 3vw, 2.5rem);--radius-pill: 999px;--shadow-card: 0 1.25rem 3rem rgba(23, 19, 31, .08);--shadow-device: 0 1.25rem 2.5rem rgba(23, 19, 31, .14);--filter-illustration: drop-shadow( 0 .45rem .45rem oklch(24% .025 255 / .18) );--transition-fast: .16s cubic-bezier(.2, 0, 0, 1);--transition-smooth: .28s cubic-bezier(.2, 0, 0, 1)}:root[data-display-typeface=bricolage]{--font-display: var(--font-display-bricolage)}:root[data-theme=dark]{color-scheme:dark;--color-bg: var(--palette-night);--color-surface: var(--palette-night-surface);--color-surface-soft: var(--palette-night-surface-soft);--color-surface-illustration: var(--palette-blue-illustration-dark);--color-surface-raised: var(--palette-night-surface-raised);--color-surface-inset: var(--palette-night-inset);--color-surface-strong: var(--palette-night-strong);--color-surface-brand: var(--palette-brand-dark);--color-action-primary: var(--palette-blue-action-dark);--color-text: var(--palette-night-text);--color-text-subtle: var(--palette-night-muted);--color-text-on-strong: var(--palette-night-text);--color-text-on-brand: var(--palette-night-text);--color-text-on-primary: var(--palette-night-text);--color-muted: var(--color-text-subtle);--color-border: var(--palette-night-border);--color-border-strong: var(--palette-night-border-strong);--color-control-border: var(--palette-night-control-border);--color-accent: var(--palette-night-text);--color-accent-contrast: var(--palette-ink);--color-prose: var(--palette-night-prose);--color-code-bg: var(--palette-night-surface-raised);--color-code-block-bg: var(--palette-night-inset);--color-code-block-text: var(--palette-night-text);--color-header: rgba(41, 40, 45, .8);--color-focus: #b8a7ff;--color-danger: #ff9b73;--color-selection-bg: var(--palette-lavender-dark);--color-selection-text: var(--palette-ink);--color-accent-lavender: var(--palette-lavender-dark);--color-accent-peach: var(--palette-peach-dark);--color-accent-butter: var(--palette-butter-dark);--color-laptop-frame: var(--palette-night-surface-raised);--shadow-card: 0 1rem 2.25rem rgba(17, 11, 22, .22);--shadow-device: 0 1rem 2.25rem rgba(17, 11, 22, .26);--filter-illustration: none}@media(max-width:42rem){:root{--space-8: 3.5rem;--space-9: 5rem;--section-gap: var(--space-9);--hero-block: var(--space-7);--grid-gap: var(--space-5);--split-gap: var(--space-6)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--color-bg)}html.is-at-page-bottom{background:var(--color-surface-brand)}body{margin:0;overflow-x:clip;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body);font-weight:var(--weight-body);line-height:var(--leading-body);font-kerning:normal;font-optical-sizing:auto;font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--color-selection-bg);color:var(--color-selection-text)}a{color:inherit}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.skip-link{position:fixed;top:var(--space-3);left:var(--space-3);z-index:var(--z-skip-link);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-action-primary);color:var(--color-text-on-primary);box-shadow:inset 0 0 0 1px var(--color-control-border);transform:translateY(calc(-100% - var(--space-5)));transition:transform var(--transition-fast)}.skip-link:focus-visible{transform:translateY(0)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}img{display:block;max-width:100%;height:auto}h1,h2,.type-h1,.type-h2{font-family:var(--font-display);text-wrap:balance}h3,.type-h3{font-family:var(--font-sans);text-wrap:balance}h1,.type-h1{font-weight:var(--weight-h1);letter-spacing:var(--tracking-h1)}h2,.type-h2{font-weight:var(--weight-h2);letter-spacing:var(--tracking-h2)}h3,.type-h3{font-weight:var(--weight-h3);letter-spacing:var(--tracking-h3)}h1{font-size:var(--text-h1);line-height:var(--leading-display)}h2{font-size:var(--text-h2);line-height:var(--leading-heading)}h3{font-size:var(--text-h3);line-height:var(--leading-subheading)}p{text-wrap:pretty}.type-h1{font-size:var(--text-h1);line-height:var(--leading-display)}.type-h2{font-size:var(--text-h2);line-height:var(--leading-heading)}.type-h3{font-size:var(--text-h3);line-height:var(--leading-subheading)}.type-body{font-size:var(--text-body);line-height:var(--leading-body)}.stack{display:grid;gap:var(--stack-gap)}.cluster{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.section{margin-top:var(--section-gap)}.section-pad{padding-block:var(--section-gap)}.split{display:grid;grid-template-columns:minmax(12rem,.72fr) minmax(0,1.28fr);gap:var(--split-gap);align-items:start}.split--resume{grid-template-columns:minmax(10rem,.52fr) minmax(0,1.48fr)}.auto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:var(--grid-gap)}.plain-list{margin:0;padding:0;list-style:none}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-pill);line-height:1;text-decoration:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),text-decoration-color var(--transition-fast)}.button{gap:var(--space-2);min-height:var(--target-min);padding:.5rem .9rem}.button--compact{min-height:var(--target-min);padding:.35rem .7rem}.button--primary{background:var(--color-action-primary);color:var(--color-text-on-primary);box-shadow:inset 0 0 0 1px var(--color-control-border)}.button--secondary{background:var(--color-surface);color:var(--color-text);box-shadow:inset 0 0 0 1px var(--color-control-border)}.button--ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1px currentColor}.button--tertiary{min-height:var(--target-min);padding:0;background:transparent;color:inherit;border-radius:0;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;transition:background var(--transition-fast),text-decoration-color var(--transition-fast)}.button--primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-action-primary) 90%,var(--color-text-on-primary));color:var(--color-text-on-primary)}.button--secondary:hover:not(:disabled){background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;box-shadow:inset 0 0 0 1px var(--color-control-border)}.button--ghost:hover:not(:disabled),.button--ghost.is-active{background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;box-shadow:inset 0 0 0 1px currentColor}.button--tertiary:hover:not(:disabled){background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;text-decoration-color:currentColor;box-shadow:none}.button svg{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.icon-button{width:var(--target-min);height:var(--target-min);padding:0;background:var(--color-surface-raised);color:var(--color-text);box-shadow:inset 0 0 0 1px var(--color-control-border)}.icon-button:hover:not(:disabled){background:color-mix(in srgb,currentColor 8%,transparent);color:var(--color-text);box-shadow:inset 0 0 0 1px var(--color-control-border)}.form-field{display:grid;gap:var(--space-2)}.form-field input,.form-field textarea,.form-field select{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface-inset);color:var(--color-text);border:1px solid var(--color-control-border);border-radius:var(--radius-sm)}.form-field textarea{resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--color-text-subtle);opacity:1}.form-field input[aria-invalid=true],.form-field textarea[aria-invalid=true],.form-field select[aria-invalid=true]{border-color:var(--color-danger)}.form-error{color:var(--color-danger)}.button:disabled,.icon-button:disabled{cursor:default}.icon-button__stroke{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.prose{max-width:var(--reading-max);margin:0 auto;color:var(--color-text);font-size:var(--text-body);line-height:var(--leading-prose)}.prose h1,.prose h2{margin:var(--space-8) 0 var(--space-5)}.prose h1{font-size:var(--text-h2);font-weight:var(--weight-h2);line-height:var(--leading-subheading);letter-spacing:var(--tracking-h2)}.prose h3{margin:var(--space-7) 0 var(--space-4);line-height:var(--leading-subheading)}.prose p,.prose ul,.prose ol{margin:0 0 var(--space-6)}.prose a{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:currentColor;text-underline-offset:4px}.prose img{border-radius:var(--radius-md);margin:var(--space-8) 0}.prose figure.image-caption{display:grid;gap:var(--space-4);margin:var(--space-8) 0}.prose figure.image-caption img{display:block;width:100%;margin:0;border-radius:var(--radius-md)}.prose figure.image-caption figcaption{display:grid;gap:var(--space-2);color:var(--color-text);font:inherit;text-wrap:pretty}.prose figure.image-caption .image-caption__title,.prose figure.image-caption .image-caption__description{display:block}.prose figure.image-caption .image-caption__title{font-weight:var(--weight-heading)}.prose .image-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:var(--space-5);margin:var(--space-8) 0}.prose .image-pair figure.image-caption{min-width:0;margin:0}@media(max-width:42rem){.prose .image-pair{grid-template-columns:1fr;gap:var(--space-6);margin:var(--space-8) 0}}.prose .insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:var(--space-5);margin:var(--space-8) 0}.prose .insight-card{display:flex;flex-direction:column;gap:var(--space-3);width:100%;padding:var(--space-5);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-md);border:1px solid var(--color-border)}.prose .insight-card__value{font-family:var(--font-sans);font-size:var(--text-h3);font-weight:var(--weight-h3);line-height:var(--leading-subheading);letter-spacing:var(--tracking-h3);font-variant-numeric:tabular-nums}.prose .insight-card__text{font:inherit;color:inherit;text-wrap:pretty}.prose .insight-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:var(--space-6);width:100%;margin:var(--space-8) 0}.prose .insight-list__item{display:flex;min-width:0;flex-direction:column;gap:var(--space-2)}.prose .insight-list__item h3,.prose .insight-list__item p{margin:0}.prose .insight-list__item h3{text-wrap:pretty}@media(max-width:42rem){.prose .insight-list{grid-template-columns:1fr;gap:var(--space-5);margin:var(--space-8) 0}}.prose blockquote{margin:var(--space-8) 0;padding:var(--space-2) 0 var(--space-2) var(--space-5);border-left:1px solid var(--color-border-strong);color:var(--color-text);font:inherit;text-wrap:pretty}.prose blockquote p{margin:0}.prose blockquote p+p{margin-top:var(--space-4)}.prose ul,.prose ol{padding-left:1.5rem}.prose li{margin-bottom:var(--space-2)}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--color-code-bg);padding:.15em .35em;border-radius:.4rem}.prose pre{background:var(--color-code-block-bg);color:var(--color-code-block-text);padding:var(--space-5);border-radius:var(--radius-md);overflow-x:auto;margin:var(--space-8) 0;font-size:.95rem;line-height:var(--leading-code)}.prose pre code{background:transparent;padding:0;color:inherit}.prose hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-8) 0}.page{width:min(100%,var(--page-max));min-height:100vh;margin:0 auto;padding:0 var(--page-gutter);display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:var(--z-sticky);isolation:isolate;background:transparent}.site-header:before{content:"";position:absolute;z-index:-1;inset:0 auto 0 50%;width:100vw;background:var(--color-header);transform:translate(-50%);backdrop-filter:saturate(140%) blur(20px);-webkit-backdrop-filter:saturate(140%) blur(20px)}.site-header:after{content:"";position:absolute;inset:auto auto 0 50%;width:100vw;height:1px;background:var(--color-border);transform:translate(-50%);pointer-events:none}main{flex:1;padding:var(--space-6) 0 var(--space-9)}@media(max-width:58rem){.split--resume{grid-template-columns:minmax(8rem,.52fr) minmax(0,1.48fr);gap:clamp(1.5rem,5vw,3rem)}}@media(max-width:46rem){.split{grid-template-columns:1fr}}@media(max-width:38rem){.split--resume{grid-template-columns:1fr;gap:var(--space-3)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.card[data-astro-cid-o4tn2z2v]{position:relative;height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-content:start;gap:var(--space-5);color:var(--color-text);text-decoration:none;isolation:isolate;container-type:inline-size}.card[data-astro-cid-o4tn2z2v]:focus-visible{outline-offset:var(--space-2)}.copy[data-astro-cid-o4tn2z2v]{display:grid;min-width:0;gap:var(--space-2);align-content:start}h2[data-astro-cid-o4tn2z2v],h3[data-astro-cid-o4tn2z2v]{margin:0}.title-link[data-astro-cid-o4tn2z2v]{display:inline-flex;align-items:center;justify-self:start;gap:var(--space-2);color:inherit;text-decoration:none}.protected-lock[data-astro-cid-o4tn2z2v]{flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}:root[data-access-unlocked=true] .protected-lock[data-astro-cid-o4tn2z2v]{display:none}.card[data-astro-cid-o4tn2z2v]:hover h2[data-astro-cid-o4tn2z2v],.card[data-astro-cid-o4tn2z2v]:hover h3[data-astro-cid-o4tn2z2v],.title-link[data-astro-cid-o4tn2z2v]:hover h2[data-astro-cid-o4tn2z2v],.title-link[data-astro-cid-o4tn2z2v]:hover h3[data-astro-cid-o4tn2z2v]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}p[data-astro-cid-o4tn2z2v]{margin:0}.copy[data-astro-cid-o4tn2z2v] p[data-astro-cid-o4tn2z2v]{max-width:46ch;line-height:var(--leading-body)}[data-access-unlocked=true] [data-astro-cid-o4tn2z2v][data-protected-card],[data-astro-cid-o4tn2z2v][data-protected-card][data-access-unlocked=true]{cursor:pointer}.visual[data-astro-cid-o4tn2z2v]{--media-inset: var(--space-4);position:relative;aspect-ratio:16 / 9;background:var(--color-surface-illustration);border:0;border-radius:var(--radius-sm);overflow:hidden}.screen-image[data-astro-cid-o4tn2z2v]{--image-scale: .9;position:absolute;top:50%;left:50%;width:auto;height:auto;max-width:calc(100% - var(--media-inset) - var(--media-inset));max-height:calc(100% - var(--media-inset) - var(--media-inset));object-position:center;border-radius:calc(var(--radius-sm) - .25rem);filter:var(--filter-illustration);transform:translate(-50%,-50%) scale(var(--image-scale));transition:transform var(--transition-smooth)}[data-astro-cid-o4tn2z2v][data-protected-card] .screen-image[data-astro-cid-o4tn2z2v]{filter:blur(8px)}:root[data-access-unlocked=true] [data-astro-cid-o4tn2z2v][data-protected-card] .screen-image[data-astro-cid-o4tn2z2v]{filter:var(--filter-illustration)}.card[data-astro-cid-o4tn2z2v]:focus-within .screen-image[data-astro-cid-o4tn2z2v]{transform:translate(-50%,-50%) scale(calc(var(--image-scale) * 1.035))}@media(hover:hover){.card[data-astro-cid-o4tn2z2v]:hover .screen-image[data-astro-cid-o4tn2z2v]{transform:translate(-50%,-50%) scale(calc(var(--image-scale) * 1.035))}}.screen-image--dark[data-astro-cid-o4tn2z2v]{display:none}:root[data-theme=dark] .screen-image--light[data-astro-cid-o4tn2z2v]{display:none}:root[data-theme=dark] .screen-image--dark[data-astro-cid-o4tn2z2v]{display:block}@media(prefers-reduced-motion:reduce){.screen-image[data-astro-cid-o4tn2z2v]{transition:none}.card[data-astro-cid-o4tn2z2v]:focus-within .screen-image[data-astro-cid-o4tn2z2v],.card[data-astro-cid-o4tn2z2v]:hover .screen-image[data-astro-cid-o4tn2z2v]{transform:translate(-50%,-50%) scale(var(--image-scale))}}@media(max-width:46rem){.visual[data-astro-cid-o4tn2z2v]{--media-inset: var(--space-3)}}
