*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:anywhere}a{color:inherit;text-decoration:none}ul[role=list],ol[role=list],ul,ol{list-style:none;padding:0}#root,#__astro{isolation:isolate}:root{--dark-bg: #13161b;--dark-bg-elevated: #23272c;--dark-bg-sunken: #13161b;--dark-text: #f3f5f9;--dark-text-muted: #b4b8be;--dark-text-subtle: #797e85;--dark-border: rgba(72, 77, 85, .4);--dark-border-subtle: rgba(54, 59, 66, .3);--dark-card-bg: #23272c;--dark-card-border: rgba(72, 77, 85, .25);--dark-shadow-low: 0 2px 4px rgba(0, 0, 0, .3);--dark-shadow-mid: 0 4px 8px rgba(0, 0, 0, .35);--dark-shadow-high: 0 8px 16px rgba(0, 0, 0, .4);--light-bg: #ffffff;--light-bg-alt: #f3f5f9;--light-bg-subtle: rgba(229, 232, 237, .5);--light-text: #23272c;--light-text-muted: #5f646b;--light-text-subtle: #797e85;--light-border: #d1d4da;--light-border-subtle: #e5e8ed;--light-card-bg: #ffffff;--light-card-border: #d1d4da;--light-shadow-low: 0 2px 4px rgba(0, 0, 0, .06);--light-shadow-mid: 0 4px 6px rgba(0, 0, 0, .1);--light-shadow-high: 0 8px 16px rgba(0, 0, 0, .12);--brand-bg: #3b82f6;--brand-bg-hover: #2563eb;--on-brand-bg: #ffffff;--brand-border: #1d4ed8;--brand-shadow: 0 4px 8px rgba(30, 64, 175, .25);--interactive: #3b82f6;--interactive-hover: #2563eb;--interactive-active: #1d4ed8;--interactive-press: #1e40af;--on-interactive: #ffffff;--interactive-muted: rgba(59, 130, 246, .15);--interactive-subtle: rgba(59, 130, 246, .05);--interactive-border: #2563eb;--accent: #f97316;--accent-hover: #ea580c;--on-accent: #ffffff;--accent-muted: rgba(249, 115, 22, .15);--accent-subtle: rgba(249, 115, 22, .05);--success: #22c55e;--success-subtle: rgba(34, 197, 94, .15);--warning: #eab308;--warning-subtle: rgba(234, 179, 8, .15);--error: #ef4444;--error-subtle: rgba(239, 68, 68, .15);--scrim-dark: rgba(0, 0, 0, .6);--scrim-light: rgba(255, 255, 255, .8);--font-display: Inter, system-ui, sans-serif;--font-heading: Inter, system-ui, sans-serif;--font-body: Inter, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--font-size-display-lg: 76.29px;--font-size-display-md: 61.04px;--font-size-display-sm: 48.83px;--font-size-heading-lg: 39.06px;--font-size-heading-md: 31.25px;--font-size-heading-sm: 25px;--font-size-body-lg: 20px;--font-size-body-base: 16px;--font-size-body-sm: 12.8px;--font-size-mono: 14px;--line-height-display: 1.1;--line-height-heading: 1.3;--line-height-body: 1.5;--line-height-mono: 1.5;--gap-section: 64px;--gap-content: 16px;--gap-inline: 4px;--pad-container: 32px;--pad-element: 16px;--pad-control: 8px;--pad-inline: 8px;--pad-block: 12px;--radius-control: 8px;--radius-element: 12px;--radius-container: 16px;--radius-full: 9999px;--shadow-low: 0 2px 4px rgba(0, 0, 0, .08);--shadow-mid: 0 4px 8px rgba(0, 0, 0, .1);--shadow-high: 0 8px 16px rgba(0, 0, 0, .12);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--z-dropdown: 1000;--z-modal: 1300;--z-toast: 1500;--content-max: 1200px;--gutter: clamp(1.25rem, 5vw, 4rem);--read-max: 68ch;--z-nav: 100;--surface: var(--light-bg-alt);--surface-elevated: var(--light-bg);--surface-sunken: var(--light-bg-subtle);--on-surface: var(--light-text);--on-surface-muted: var(--light-text-muted);--on-surface-subtle: var(--light-text-subtle);--border: var(--light-border);--border-subtle: var(--light-border-subtle);--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px}:root{--s-bg: var(--light-bg);--s-bg-elevated: var(--light-bg);--s-bg-alt: var(--light-bg-alt);--s-text: var(--light-text);--s-text-muted: var(--light-text-muted);--s-text-subtle: var(--light-text-subtle);--s-border: var(--light-border);--s-border-subtle: var(--light-border-subtle);--s-card-bg: var(--light-card-bg);--s-card-border: var(--light-card-border);--s-card-text: var(--light-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--light-shadow-low);--s-shadow-mid: var(--light-shadow-mid);--s-shadow-high: var(--light-shadow-high)}[data-surface=primary]{--s-bg: var(--light-bg);--s-bg-elevated: var(--light-bg);--s-bg-alt: var(--light-bg-alt);--s-text: var(--light-text);--s-text-muted: var(--light-text-muted);--s-text-subtle: var(--light-text-subtle);--s-border: var(--light-border);--s-border-subtle: var(--light-border-subtle);--s-card-bg: var(--light-card-bg);--s-card-border: var(--light-card-border);--s-card-text: var(--light-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--light-shadow-low);--s-shadow-mid: var(--light-shadow-mid);--s-shadow-high: var(--light-shadow-high);background-color:var(--s-bg);color:var(--s-text)}[data-surface=secondary]{--s-bg: var(--light-bg-alt);--s-bg-elevated: var(--light-bg);--s-bg-alt: var(--light-bg);--s-text: var(--light-text);--s-text-muted: var(--light-text-muted);--s-text-subtle: var(--light-text-subtle);--s-border: var(--light-border);--s-border-subtle: var(--light-border-subtle);--s-card-bg: var(--light-card-bg);--s-card-border: var(--light-card-border);--s-card-text: var(--light-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--light-shadow-low);--s-shadow-mid: var(--light-shadow-mid);--s-shadow-high: var(--light-shadow-high);background-color:var(--s-bg);color:var(--s-text)}[data-surface=alt]{--s-bg: var(--light-bg-alt);--s-bg-elevated: var(--light-bg);--s-bg-alt: var(--light-bg);--s-text: var(--light-text);--s-text-muted: var(--light-text-muted);--s-text-subtle: var(--light-text-subtle);--s-border: var(--light-border);--s-border-subtle: var(--light-border-subtle);--s-card-text: var(--light-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);background-color:var(--s-bg);color:var(--s-text)}[data-surface=emphasis]{--s-bg: var(--dark-bg);--s-bg-elevated: var(--dark-bg-elevated);--s-bg-alt: var(--dark-bg-sunken);--s-text: var(--dark-text);--s-text-muted: var(--dark-text-muted);--s-text-subtle: var(--dark-text-subtle);--s-border: var(--dark-border);--s-border-subtle: var(--dark-border-subtle);--s-card-bg: var(--dark-card-bg);--s-card-border: var(--dark-card-border);--s-card-text: var(--dark-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--dark-shadow-low);--s-shadow-mid: var(--dark-shadow-mid);--s-shadow-high: var(--dark-shadow-high);background-color:var(--s-bg);color:var(--s-text)}[data-surface=brand]{--s-bg: var(--brand-bg);--s-bg-elevated: var(--brand-bg-hover);--s-bg-alt: var(--brand-bg);--s-text: var(--on-brand-bg);--s-text-muted: var(--on-brand-bg);--s-text-subtle: var(--on-brand-bg);--s-border: var(--brand-border);--s-border-subtle: var(--brand-border);--s-card-bg: var(--brand-bg-hover);--s-card-border: var(--brand-border);--s-card-text: var(--on-brand-bg, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--brand-shadow);--s-shadow-mid: var(--brand-shadow);--s-shadow-high: var(--brand-shadow);background-color:var(--s-bg);color:var(--s-text)}[data-surface=dark]{--s-bg: var(--dark-bg);--s-bg-elevated: var(--dark-bg-elevated);--s-bg-alt: var(--dark-bg-sunken);--s-text: var(--dark-text);--s-text-muted: var(--dark-text-muted);--s-text-subtle: var(--dark-text-subtle);--s-border: var(--dark-border);--s-border-subtle: var(--dark-border-subtle);--s-card-bg: var(--dark-card-bg);--s-card-border: var(--dark-card-border);--s-card-text: var(--dark-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--dark-shadow-low);--s-shadow-mid: var(--dark-shadow-mid);--s-shadow-high: var(--dark-shadow-high);background-color:var(--s-bg);color:var(--s-text)}[data-surface=page]{--s-bg: var(--light-bg);--s-bg-elevated: var(--light-bg);--s-bg-alt: var(--light-bg-alt);--s-text: var(--light-text);--s-text-muted: var(--light-text-muted);--s-text-subtle: var(--light-text-subtle);--s-border: var(--light-border);--s-border-subtle: var(--light-border-subtle);--s-card-bg: var(--light-card-bg);--s-card-border: var(--light-card-border);--s-card-text: var(--light-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--light-shadow-low);--s-shadow-mid: var(--light-shadow-mid);--s-shadow-high: var(--light-shadow-high);background-color:var(--s-bg);color:var(--s-text)}[data-surface=subtle]{--s-bg: var(--light-bg-alt);--s-bg-elevated: var(--light-bg);--s-bg-alt: var(--light-bg);--s-text: var(--light-text);--s-text-muted: var(--light-text-muted);--s-text-subtle: var(--light-text-subtle);--s-border: var(--light-border);--s-border-subtle: var(--light-border-subtle);--s-card-bg: var(--light-card-bg);--s-card-border: var(--light-card-border);--s-card-text: var(--light-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--light-shadow-low);--s-shadow-mid: var(--light-shadow-mid);--s-shadow-high: var(--light-shadow-high);background-color:var(--s-bg);color:var(--s-text)}[data-surface=inverted]{--s-bg: var(--dark-bg);--s-bg-elevated: var(--dark-bg-elevated);--s-bg-alt: var(--dark-bg-sunken);--s-text: var(--dark-text);--s-text-muted: var(--dark-text-muted);--s-text-subtle: var(--dark-text-subtle);--s-border: var(--dark-border);--s-border-subtle: var(--dark-border-subtle);--s-card-bg: var(--dark-card-bg);--s-card-border: var(--dark-card-border);--s-card-text: var(--dark-text, var(--s-text));--s-interactive: var(--accent, #0066cc);--s-on-interactive: var(--on-accent, #ffffff);--s-shadow-low: var(--dark-shadow-low);--s-shadow-mid: var(--dark-shadow-mid);--s-shadow-high: var(--dark-shadow-high);background-color:var(--s-bg);color:var(--s-text)}[data-surface=overlay]{--s-bg: rgba(0, 0, 0, .7);--s-text: var(--dark-text);--s-text-muted: var(--dark-text-muted);--s-text-subtle: var(--dark-text-subtle);--s-border: var(--dark-border);--s-border-subtle: var(--dark-border-subtle);--s-card-bg: var(--dark-card-bg);--s-card-border: var(--dark-card-border);--s-card-text: var(--dark-text);--s-interactive: var(--accent);--s-on-interactive: var(--on-accent);--s-shadow-low: var(--dark-shadow-low);--s-shadow-mid: var(--dark-shadow-mid);--s-shadow-high: var(--dark-shadow-high);background-color:var(--s-bg);color:var(--s-text)}html[data-theme=dark] [data-surface=primary],html[data-theme=dark] [data-surface=page],html[data-theme=dark]:root{--s-bg: var(--dark-bg);--s-bg-elevated: var(--dark-bg-elevated);--s-bg-alt: var(--dark-bg-sunken);--s-text: var(--dark-text);--s-text-muted: var(--dark-text-muted);--s-text-subtle: var(--dark-text-subtle);--s-border: var(--dark-border);--s-border-subtle: var(--dark-border-subtle);--s-card-bg: var(--dark-card-bg);--s-card-border: var(--dark-card-border);--s-shadow-low: var(--dark-shadow-low);--s-shadow-mid: var(--dark-shadow-mid);--s-shadow-high: var(--dark-shadow-high)}html[data-theme=dark] [data-surface=secondary],html[data-theme=dark] [data-surface=subtle]{--s-bg: var(--dark-bg-elevated);--s-bg-elevated: var(--dark-bg);--s-bg-alt: var(--dark-bg);--s-text: var(--dark-text);--s-text-muted: var(--dark-text-muted);--s-text-subtle: var(--dark-text-subtle);--s-border: var(--dark-border);--s-border-subtle: var(--dark-border-subtle);--s-card-bg: var(--dark-bg);--s-card-border: var(--dark-card-border);--s-shadow-low: var(--dark-shadow-low);--s-shadow-mid: var(--dark-shadow-mid);--s-shadow-high: var(--dark-shadow-high)}html.js-anim [data-animate]{opacity:0}html.js-anim [data-animate=fade-up]{transform:translateY(14px)}html.js-anim [data-animate=fade-down]{transform:translateY(-14px)}html.js-anim [data-animate=fade-left]{transform:translate(-14px)}html.js-anim [data-animate=fade-right]{transform:translate(14px)}html.js-anim [data-animate=slide-up]{transform:translateY(24px);opacity:1}html.js-anim [data-animate=scale-in]{transform:scale(1.04)}html.js-anim [data-animate=scale-up]{transform:scale(.96)}html.js-anim [data-animate=rotate-in]{transform:rotate(-90deg)}html.js-anim [data-animate=blur-reveal]{filter:blur(6px)}html.js-anim [data-animate=split-chars],html.js-anim [data-animate=split-words],html.js-anim [data-animate=split-lines],html.js-anim [data-animate=split-chars-fade],html.js-anim [data-animate=split-words-slide]{opacity:0}html.js-anim main>[data-section]:first-child [data-animate],html.js-anim body>[data-section]:first-child [data-animate]{opacity:1!important;transform:none!important;filter:none!important}html.animations-frozen [data-animate]{opacity:1;transform:none;filter:none}.page-preloader{position:fixed;inset:0;z-index:9999;background:var(--s-bg, #fff);display:flex;align-items:center;justify-content:center;transition:opacity .5s ease,visibility .5s ease}.page-preloader.loaded{opacity:0;visibility:hidden;pointer-events:none}.image-shimmer{background:linear-gradient(90deg,var(--s-bg-alt, #f0f0f0) 25%,var(--s-border-subtle, #e0e0e0) 50%,var(--s-bg-alt, #f0f0f0) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-control, 4px)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}html[data-theme=dark] .image-shimmer{background:linear-gradient(90deg,var(--dark-bg-elevated, #2a2a2a) 25%,var(--dark-bg-sunken, #3a3a3a) 50%,var(--dark-bg-elevated, #2a2a2a) 75%);background-size:200% 100%}@media(prefers-reduced-motion:reduce){.page-preloader{transition:none!important}.preloader-spinner,.preloader-dots span,.preloader-pulse,.preloader-bar,.preloader-text{animation:none!important}[data-animate]{opacity:1!important;transform:none!important;filter:none!important}}:root{color-scheme:light dark;--brd-strong: var(--light-text);--brd-primary: var(--interactive);--brd-accent: var(--accent);--brd-accent-alt: var(--accent-hover);--brd-muted: var(--light-text-muted)}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}html{scroll-behavior:smooth}body{background:var(--s-bg);color:var(--s-text);font-family:var(--font-body);line-height:var(--line-height-body);font-size:var(--font-size-body-base)}h1,h2,h3{line-height:var(--line-height-heading);font-family:var(--font-heading);font-weight:600;color:var(--s-text)}h1{font-size:var(--font-size-heading-lg)}h2{font-size:var(--font-size-heading-md)}h3{font-size:var(--font-size-heading-sm)}p{color:inherit}::selection{background:var(--interactive);color:var(--on-interactive)}:where(a,button,[role=button],input,select,textarea,summary):focus-visible{outline:2px solid var(--focus-ring, var(--interactive, currentColor));outline-offset:var(--focus-ring-offset, 2px);border-radius:inherit}body:not(.edit-mode) [data-array-item][data-status=draft]{display:none!important}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:var(--pad-container);padding-right:var(--pad-container);max-width:90rem}.btn-primary{background:var(--interactive);color:var(--on-interactive);border-radius:var(--radius-control);padding:var(--pad-control) var(--pad-element);box-shadow:var(--shadow-low)}:root{--dark-bg: #0e1110;--dark-bg-elevated: #171c1a;--dark-bg-sunken: #0e1110;--dark-text: #f1f5f2;--dark-text-muted: #a6b1ac;--dark-text-subtle: #7f8d87;--dark-border: #2d3733;--dark-border-subtle: #222b27;--dark-card-bg: #171c1a;--dark-card-border: #2d3733;--dark-shadow-low: 0 2px 4px rgba(0, 0, 0, .3);--dark-shadow-mid: 0 4px 8px rgba(0, 0, 0, .35);--dark-shadow-high: 0 8px 16px rgba(0, 0, 0, .4);--light-bg: #ffffff;--light-bg-alt: #f3f5f9;--light-bg-subtle: rgba(229, 232, 237, .5);--light-text: #23272c;--light-text-muted: #5f646b;--light-text-subtle: #797e85;--light-border: #d1d4da;--light-border-subtle: #e5e8ed;--light-card-bg: #ffffff;--light-card-border: #d1d4da;--light-shadow-low: 0 2px 4px rgba(0, 0, 0, .06);--light-shadow-mid: 0 4px 6px rgba(0, 0, 0, .1);--light-shadow-high: 0 8px 16px rgba(0, 0, 0, .12);--brand-bg: #22352c;--brand-bg-hover: #2b4237;--on-brand-bg: #edf3ee;--brand-border: #33493d;--brand-shadow: 0 4px 8px rgba(34, 53, 44, .3);--interactive: #a9c4b3;--interactive-hover: #bcd2c3;--interactive-active: #93b3a1;--interactive-press: #7d9c8a;--on-interactive: #0e1110;--interactive-muted: rgba(169, 196, 179, .15);--interactive-subtle: rgba(169, 196, 179, .06);--interactive-border: #a9c4b3;--accent: #f97316;--accent-hover: #ea580c;--on-accent: #ffffff;--accent-muted: rgba(249, 115, 22, .15);--accent-subtle: rgba(249, 115, 22, .05);--success: #22c55e;--success-subtle: rgba(34, 197, 94, .15);--warning: #eab308;--warning-subtle: rgba(234, 179, 8, .15);--error: #ef4444;--error-subtle: rgba(239, 68, 68, .15);--scrim-dark: rgba(0, 0, 0, .6);--scrim-light: rgba(255, 255, 255, .8);--font-display: Inter, system-ui, sans-serif;--font-heading: Inter, system-ui, sans-serif;--font-body: Inter, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--shadow-low: 0 2px 4px rgba(0, 0, 0, .08);--shadow-mid: 0 4px 8px rgba(0, 0, 0, .1);--shadow-high: 0 8px 16px rgba(0, 0, 0, .12);--z-dropdown: 1000;--z-modal: 1300;--z-toast: 1500;--surface: var(--light-bg-alt);--surface-elevated: var(--light-bg);--surface-sunken: var(--light-bg-subtle);--on-surface: var(--light-text);--on-surface-muted: var(--light-text-muted);--on-surface-subtle: var(--light-text-subtle);--border: var(--light-border);--border-subtle: var(--light-border-subtle);--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px;--content-max: 90rem;--read-max: 48rem;--gutter: clamp(1.25rem, 4vw, 4rem);--text-size-multiplier: 1;--heading-scale-multiplier: 1;--density-multiplier: 1}:where([data-section=project-card]){min-width:0;height:100%;break-inside:avoid;margin:0 0 calc(1.5rem * var(--density-mult, 1))}:where([data-section=project-card])>a{height:100%;display:flex;flex-direction:column;gap:calc(1rem * var(--density-mult, 1));color:var(--s-text);text-decoration:none}:where([data-section=project-card]) .project-media--summary{aspect-ratio:4 / 3}:where([data-section=project-card].project-card--wide-near-square) .project-media--summary{aspect-ratio:240 / 233}:where([data-section=project-card].project-card--short-portrait) .project-media--summary{aspect-ratio:1200 / 1277}:where([data-section=project-card].project-card--portrait) .project-media--summary{aspect-ratio:300 / 431}:where([data-section=project-card].project-card--tall-portrait) .project-media--summary{aspect-ratio:30 / 59}:where([data-section=project-card]) .project-card__body{flex:1;display:flex;flex-direction:column;gap:calc(1.25rem * var(--density-mult, 1));padding:.25rem}:where([data-section=project-card]) h3{margin:0;color:var(--s-text);font:600 calc(clamp(1.35rem,2vw,2rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/1.1 var(--font-heading)}:where([data-section=project-card]) p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:.6rem 0 0;color:var(--s-text-muted);font:400 calc(clamp(.9rem,1vw,1rem) * var(--text-mult, 1))/1.55 var(--font-body)}:where([data-section=project-card]) .project-card__meta{margin-top:auto;display:flex;flex-wrap:wrap;gap:.5rem 1rem;color:var(--s-text-subtle);font:500 calc(.78rem * var(--text-mult, 1))/1.3 var(--font-mono)}:where([data-section=project-card]) .project-card__meta span:last-child{margin-left:auto;color:var(--interactive)}:where([data-section=project-card]) .project-media--summary{overflow:clip;border-radius:var(--radius-element, .5rem)}:where([data-section=project-card]) .project-media--summary img{transition:transform .6s cubic-bezier(.22,1,.36,1)}@media(hover:hover)and (prefers-reduced-motion:no-preference){:where([data-section=project-card])>a:hover .project-media--summary img{transform:scale(1.03)}:where([data-section=project-card]) .project-card__meta span:last-child{transition:transform .3s cubic-bezier(.22,1,.36,1)}:where([data-section=project-card])>a:hover .project-card__meta span:last-child{transform:translate(.25rem)}}:where([data-section=project-collection]){background:var(--s-bg);color:var(--s-text);padding:calc(clamp(4rem,9vw,8rem) * var(--density-mult, 1)) var(--gutter, clamp(1.25rem, 5vw, 5rem))}:where([data-section=project-collection]) .project-collection__inner{width:min(100%,var(--content-max, 90rem));margin:0 auto}:where([data-section=project-collection]) h2{margin:0 0 calc(clamp(2rem,5vw,4rem) * var(--density-mult, 1));color:var(--s-text);font:600 calc(clamp(2rem,4vw,4.5rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/1 var(--font-display);letter-spacing:-.045em}:where([data-section=project-collection]) .project-collection__items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,23rem),1fr));gap:calc(clamp(1.5rem,4vw,3rem) * var(--density-mult, 1));align-items:stretch}:where([data-section=project-collection].project-collection--gallery) .project-collection__items{display:block;columns:2;column-gap:calc(clamp(1.5rem,4vw,3rem) * var(--density-mult, 1))}:where([data-section=project-collection]) .project-collection__empty{color:var(--s-text-muted)}@media(max-width:48rem){:where([data-section=project-collection].project-collection--gallery) .project-collection__items{columns:1}}:where([data-section=project-detail]){min-height:100svh;background:var(--s-bg);color:var(--s-text);padding:calc(clamp(3rem,8vw,7rem) * var(--density-mult, 1)) var(--gutter, clamp(1.25rem, 5vw, 5rem))}:where([data-section=project-detail])>article{width:min(100%,var(--content-max, 90rem));margin:0 auto}:where([data-section=project-detail]) .project-detail__header{display:grid;gap:calc(1rem * var(--density-mult, 1));margin-bottom:calc(clamp(2rem,5vw,4rem) * var(--density-mult, 1))}:where([data-section=project-detail]) .project-detail__eyebrow{display:flex;flex-wrap:wrap;gap:.6rem;margin:0;color:var(--s-text-subtle);font:500 calc(.8rem * var(--text-mult, 1))/1.3 var(--font-mono)}:where([data-section=project-detail]) h1{max-width:16ch;margin:0;color:var(--s-text);font:600 calc(clamp(3rem,8vw,7.5rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/.94 var(--font-display);letter-spacing:-.055em;text-wrap:balance}:where([data-section=project-detail]) .project-detail__summary{max-width:54ch;margin:0;color:var(--s-text-muted);font:400 calc(clamp(1rem,1.5vw,1.25rem) * var(--text-mult, 1))/1.6 var(--font-body)}:where([data-section=project-detail]) .project-media{max-width:100%;margin:0 auto}:where([data-section=project-detail]) .project-detail__body{width:min(100%,var(--read-max, 48rem));margin:calc(clamp(3rem,7vw,6rem) * var(--density-mult, 1)) auto;color:var(--s-text-muted);font:400 calc(clamp(1rem,1.2vw,1.12rem) * var(--text-mult, 1))/1.75 var(--font-body);overflow-wrap:anywhere}:where([data-section=project-detail]) .project-detail__back{display:inline-flex;min-height:3rem;align-items:center;padding:var(--pad-control) var(--pad-element);border:1px solid var(--s-border);border-radius:var(--radius-control);color:var(--s-text);text-decoration:none}:where([data-section=about-default]){background:var(--s-bg);color:var(--s-text);padding:calc(clamp(4rem,9vw,8rem) * var(--density-mult, 1)) var(--gutter, clamp(1.25rem, 5vw, 5rem))}:where([data-section=about-default]) .biography__inner{width:min(100%,var(--content-max, 90rem));margin:0 auto}:where([data-section=about-default]) h2{margin:0 0 calc(2rem * var(--density-mult, 1));font:600 calc(clamp(1.75rem,3vw,2.5rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/1.1 var(--font-heading)}:where([data-section=about-default]) .biography__panel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr);border:1px solid var(--s-card-border);border-radius:var(--radius-container);overflow:clip;background:var(--s-card-bg)}:where([data-section=about-default]) .biography__media{min-width:0;min-height:clamp(22rem,42vw,38rem);background:var(--s-bg-alt)}:where([data-section=about-default]) .biography__media img{width:100%;height:100%;object-fit:cover}:where([data-section=about-default]) .biography__copy{display:flex;flex-direction:column;gap:calc(clamp(1.5rem,3vw,2.5rem) * var(--density-mult, 1));padding:calc(clamp(1.5rem,4vw,4rem) * var(--density-mult, 1))}:where([data-section=about-default]) h3{margin:0;max-width:22ch;color:var(--s-text);font:600 calc(clamp(1.5rem,3vw,2.75rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/1.1 var(--font-heading)}:where([data-section=about-default]) .biography__text{display:grid;gap:calc(1rem * var(--density-mult, 1))}:where([data-section=about-default]) p,:where([data-section=about-default]) .biography__text>.rich-text-content{margin:0;color:var(--s-text-muted);font:400 calc(clamp(.92rem,1.1vw,1.05rem) * var(--text-mult, 1))/1.65 var(--font-body)}:where([data-section=about-default]) a{margin-top:auto;display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;width:fit-content;min-height:3rem;padding:var(--pad-control) var(--pad-element);border:1px solid var(--s-border);border-radius:var(--radius-control);color:var(--s-text);text-decoration:none;font:600 calc(.9rem * var(--text-mult, 1))/1 var(--font-body)}@media(max-width:52rem){:where([data-section=about-default]) .biography__panel{grid-template-columns:1fr}:where([data-section=about-default]) .biography__media{min-height:0;aspect-ratio:3 / 2}}:where([data-section=cta-bottom]){background:var(--s-bg);color:var(--s-text);padding:calc(clamp(4rem,9vw,8rem) * var(--density-mult, 1)) var(--gutter, clamp(1.25rem, 5vw, 5rem))}:where([data-section=cta-bottom]) .contact__inner{width:min(100%,var(--content-max, 90rem));margin:0 auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);align-items:end;gap:calc(clamp(2rem,6vw,7rem) * var(--density-mult, 1))}:where([data-section=cta-bottom]) h2{max-width:18ch;margin:0;color:var(--s-text);font:600 calc(clamp(2.25rem,5vw,5rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/.98 var(--font-display);letter-spacing:-.045em}:where([data-section=cta-bottom]) p{max-width:52ch;margin:calc(1.5rem * var(--density-mult, 1)) 0 0;color:var(--s-text-muted);font:400 calc(clamp(.95rem,1.2vw,1.1rem) * var(--text-mult, 1))/1.6 var(--font-body)}:where([data-section=cta-bottom]) a{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-width:0;padding:calc(clamp(1.25rem,3vw,2rem) * var(--density-mult, 1));border:1px solid var(--s-border);border-radius:var(--radius-container);background:color-mix(in srgb,var(--s-bg-elevated) 76%,transparent);color:var(--s-text);text-decoration:none;font:600 calc(clamp(1rem,1.5vw,1.25rem) * var(--text-mult, 1))/1.3 var(--font-body);overflow-wrap:anywhere}@media(max-width:48rem){:where([data-section=cta-bottom]) .contact__inner{grid-template-columns:1fr}}:where([data-section=faq-default]){background:var(--s-bg);color:var(--s-text);padding:calc(clamp(4rem,9vw,8rem) * var(--density-mult, 1)) var(--gutter, clamp(1.25rem, 5vw, 5rem))}:where([data-section=faq-default]) .questions__inner{width:min(100%,var(--content-max, 90rem));margin:0 auto;display:grid;grid-template-columns:minmax(12rem,.65fr) minmax(0,1.35fr);gap:calc(clamp(2rem,6vw,7rem) * var(--density-mult, 1))}:where([data-section=faq-default]) h2{margin:0;font:600 calc(clamp(1.75rem,3vw,2.5rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/1.1 var(--font-heading)}:where([data-section=faq-default]) .questions__list{display:grid;gap:calc(.75rem * var(--density-mult, 1))}:where([data-section=faq-default]) .question{border:1px solid var(--s-card-border);border-radius:var(--radius-element);background:var(--s-card-bg);overflow:clip}:where([data-section=faq-default]) summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:calc(clamp(1rem,2vw,1.4rem) * var(--density-mult, 1));cursor:pointer;list-style:none;color:var(--s-text);font:600 calc(clamp(.98rem,1.2vw,1.12rem) * var(--text-mult, 1))/1.4 var(--font-heading)}:where([data-section=faq-default]) summary::-webkit-details-marker{display:none}:where([data-section=faq-default]) details[open] summary span:last-child{transform:rotate(45deg)}:where([data-section=faq-default]) summary span:last-child{color:var(--interactive);transition:transform var(--duration-fast, .15s) var(--ease-standard, ease)}:where([data-section=faq-default]) .question__answer{padding:0 calc(clamp(1rem,2vw,1.4rem) * var(--density-mult, 1)) calc(clamp(1rem,2vw,1.4rem) * var(--density-mult, 1));color:var(--s-text-muted);font:400 calc(clamp(.9rem,1vw,1rem) * var(--text-mult, 1))/1.65 var(--font-body)}@media(max-width:48rem){:where([data-section=faq-default]) .questions__inner{grid-template-columns:1fr}}:where([data-section=feature-experience]){background:var(--s-bg);color:var(--s-text);padding:calc(clamp(4rem,9vw,8rem) * var(--density-mult, 1)) var(--gutter, clamp(1.25rem, 5vw, 5rem))}:where([data-section=feature-experience]) .experience__inner{width:min(100%,var(--content-max, 90rem));margin:0 auto}:where([data-section=feature-experience]) h2{margin:0 0 calc(2rem * var(--density-mult, 1));font:600 calc(clamp(1.75rem,3vw,2.5rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/1.1 var(--font-heading)}:where([data-section=feature-experience]) .experience__list{display:grid;gap:calc(.75rem * var(--density-mult, 1))}:where([data-section=feature-experience]) .role{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:calc(clamp(1rem,2vw,1.5rem) * var(--density-mult, 1));padding:calc(clamp(1rem,2vw,1.4rem) * var(--density-mult, 1));border:1px solid var(--s-card-border);border-radius:var(--radius-element);background:var(--s-card-bg)}:where([data-section=feature-experience]) .role__logo{width:3rem;aspect-ratio:8 / 7;padding:.45rem;border-radius:var(--radius-control);background:var(--s-bg-alt)}:where([data-section=feature-experience]) .role__logo img{width:100%;height:100%;object-fit:contain}:where([data-section=feature-experience]) h3{margin:0;color:var(--s-text);font:600 calc(clamp(1rem,1.3vw,1.15rem) * var(--text-mult, 1))/1.3 var(--font-heading)}:where([data-section=feature-experience]) p{margin:.25rem 0 0;color:var(--s-text-muted);font:400 calc(clamp(.86rem,1vw,.98rem) * var(--text-mult, 1))/1.5 var(--font-body)}:where([data-section=feature-experience]) .role__dates{margin:0;white-space:nowrap;color:var(--s-text-subtle)}@media(max-width:40rem){:where([data-section=feature-experience]) .role{grid-template-columns:auto minmax(0,1fr)}:where([data-section=feature-experience]) .role__dates{grid-column:2;white-space:normal}}:where([data-section=feature-services]){background:var(--s-bg);color:var(--s-text);padding:calc(clamp(4rem,9vw,8rem) * var(--density-mult, 1)) var(--gutter, clamp(1.25rem, 5vw, 5rem))}:where([data-section=feature-services]) .services__inner{width:min(100%,var(--content-max, 90rem));margin:0 auto}:where([data-section=feature-services]) h2{margin:0 0 calc(2rem * var(--density-mult, 1));font:600 calc(clamp(1.75rem,3vw,2.5rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/1.1 var(--font-heading)}:where([data-section=feature-services]) .services__list{display:grid;gap:calc(.75rem * var(--density-mult, 1))}:where([data-section=feature-services]) .service{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:calc(clamp(1rem,2vw,1.5rem) * var(--density-mult, 1));padding:calc(clamp(1rem,2vw,1.4rem) * var(--density-mult, 1));border:1px solid var(--s-card-border);border-radius:var(--radius-element);background:var(--s-card-bg)}:where([data-section=feature-services]) .service__symbol{width:3rem;aspect-ratio:40 / 41;padding:.45rem;border-radius:var(--radius-control);background:var(--s-bg-alt)}:where([data-section=feature-services]) .service__symbol img{width:100%;height:100%;object-fit:contain}:where([data-section=feature-services]) h3{margin:0;color:var(--s-text);font:600 calc(clamp(1rem,1.3vw,1.15rem) * var(--text-mult, 1))/1.3 var(--font-heading)}:where([data-section=feature-services]) p{margin:.25rem 0 0;color:var(--s-text-muted);font:400 calc(clamp(.86rem,1vw,.98rem) * var(--text-mult, 1))/1.5 var(--font-body)}:where([data-section=feature-services]) .service__timeline{margin:0;white-space:nowrap;color:var(--s-text-subtle)}@media(max-width:40rem){:where([data-section=feature-services]) .service{grid-template-columns:auto minmax(0,1fr)}:where([data-section=feature-services]) .service__timeline{grid-column:2;white-space:normal}}:where([data-section=heroe-default]){min-height:min(52rem,100svh);display:flex;flex-direction:column;background:var(--s-bg);color:var(--s-text);padding:calc(clamp(1.25rem,3vw,2.5rem) * var(--density-mult, 1)) var(--gutter, clamp(1.25rem, 5vw, 5rem)) calc(clamp(4rem,9vw,8rem) * var(--density-mult, 1))}:where([data-section=heroe-default]) .introduction__body{width:min(100%,var(--content-max, 90rem));margin-inline:auto;margin-block:auto 0;display:grid;gap:calc(clamp(1.5rem,4vw,3rem) * var(--density-mult, 1))}:where([data-section=heroe-default]) h1{max-width:16ch;margin:0;color:var(--s-text);font:600 calc(clamp(3rem,8vw,7.5rem) * var(--text-mult, 1) * var(--heading-scale-mult, 1))/.94 var(--font-display);letter-spacing:-.055em;text-wrap:balance}:where([data-section=heroe-default]) .introduction__notes{display:flex;flex-wrap:wrap;gap:.35rem 2rem}:where([data-section=heroe-default]) p{margin:0;color:var(--s-text-muted);font:400 calc(clamp(.9rem,1.2vw,1.05rem) * var(--text-mult, 1))/1.5 var(--font-body)}:where([data-section=heroe-default]) .introduction__actions{display:flex;flex-wrap:wrap;gap:calc(.75rem * var(--density-mult, 1))}:where([data-section=heroe-default]) .button{display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:3rem;padding:var(--pad-control) var(--pad-element);border:1px solid var(--s-border);border-radius:var(--radius-control);color:var(--s-text);text-decoration:none;font:600 calc(.9rem * var(--text-mult, 1))/1 var(--font-body);transition:transform var(--duration-fast, .15s) var(--ease-standard, ease),background var(--duration-fast, .15s) var(--ease-standard, ease)}:where([data-section=heroe-default]) .button--primary{background:var(--interactive);color:var(--on-interactive);border-color:var(--interactive-border)}:where([data-section=heroe-default]) .button:hover{transform:translateY(-2px);background:var(--s-bg-elevated)}:where([data-section=heroe-default]) .button--primary:hover{background:var(--interactive-hover)}.tiptap-editor-content .ProseMirror{outline:none!important;border:none!important}.tiptap-editor-content .ProseMirror:focus{outline:none!important;border:none!important;box-shadow:none!important}.tiptap-editor-content .ProseMirror-focused{outline:none!important;border:none!important}.rich-text-content p{margin:0 0 .5em}.rich-text-content p:first-child{margin-top:0}.rich-text-content p:last-child{margin-bottom:0}.rich-text-content p:only-child{margin:0}.rich-text-content h1,.rich-text-content h2,.rich-text-content h3,.rich-text-content h4{margin:1em 0 .4em}.rich-text-content h1:first-child,.rich-text-content h2:first-child,.rich-text-content h3:first-child,.rich-text-content h4:first-child{margin-top:0}.rich-text-content ul{list-style-type:disc;padding-left:1.5em;margin:.5em 0;list-style-position:outside}.rich-text-content ul li{margin:.25em 0;display:list-item}.rich-text-content ol{list-style-type:decimal;padding-left:1.5em;margin:.5em 0;list-style-position:outside}.rich-text-content ol li{margin:.25em 0;display:list-item}.rich-text-content blockquote{border-left:4px solid var(--border);padding-left:1em;margin:.75em 0;font-style:italic}.rich-text-content strong,.rich-text-content b{font-weight:bolder}.rich-text-content em,.rich-text-content i{font-style:italic}.rich-text-content s,.rich-text-content del{text-decoration:line-through}.rich-text-content u{text-decoration:underline}[data-brd-weight=normal]{font-weight:400}.rich-text-content a,[data-editable-body] a{color:var(--dw-link-color, inherit);text-decoration:underline;text-decoration-color:var(--dw-link-color, currentColor);text-underline-offset:.15em}.rich-text-content a:hover,[data-editable-body] a:hover{color:var(--dw-link-color, inherit)}.rich-text-content code{background:var(--surface-sunken);color:var(--s-text);padding:.15em .35em;border-radius:var(--radius-control);border:1px solid var(--border);font-size:.9em;font-family:var(--font-mono);line-height:var(--line-height-mono)}.rich-text-content pre{background:var(--surface-sunken);color:var(--s-text);padding:1em;border-radius:var(--radius-control);border:1px solid var(--border);box-shadow:inset 0 1px 3px #0000001a,inset 0 0 0 1px #0000000a;overflow-x:auto;margin:.75em 0;font-size:.9em;font-family:var(--font-mono);line-height:var(--line-height-mono)}.rich-text-content pre code{background:none;color:inherit;border:none;box-shadow:none;padding:0;font-size:inherit}.rich-text-content hr{border:none;border-top:2px solid var(--border);margin:1.5em 0}[data-brd-color=strong]{color:var(--brd-strong)}[data-brd-color=primary]{color:var(--brd-primary)}[data-brd-color=accent]{color:var(--brd-accent)}[data-brd-color=accent-alt]{color:var(--brd-accent-alt)}[data-brd-color=muted]{color:var(--brd-muted)}#smooth-wrapper[data-astro-cid-3zbxo6iv]{overflow:hidden}#smooth-content[data-astro-cid-3zbxo6iv]{min-height:100vh;display:flex;flex-direction:column}.main-content[data-astro-cid-3zbxo6iv]{flex:1 0 auto}#smooth-content[data-astro-cid-3zbxo6iv]>main[data-astro-cid-3zbxo6iv],#smooth-content[data-astro-cid-3zbxo6iv]>.main-content[data-astro-cid-3zbxo6iv]{flex:1 0 auto}
