html{scrollbar-gutter:stable}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@font-face{font-family:Helvetica Neue;src:url(/fonts/Helvetica%20Neue/Helvetica%20Neue.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/Helvetica%20Neue/Helvetica%20Neue%20Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Helvetica Neue;src:url(/fonts/Helvetica%20Neue/Helvetica%20Neue%20Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{color-scheme:light dark;interpolate-size:allow-keywords;transition:background-color .4s,color .4s;--gutter: min( calc(1rem + 1vw) , 2rem);--gap: min( calc(.5rem + 1vw) , 1.5rem);--header-height: 6.5rem;--radius: 0rem;--font-sans: "Helvetica Neue", system-ui, sans-serif;--font-display: "Helvetica Neue", system-ui, sans-serif;--radius-xxs: calc(var(--radius) - 12px);--radius-xs: calc(var(--radius) - 8px);--radius-sm: calc(var(--radius) - 4px);--radius-md: var(--radius);--radius-lg: calc(var(--radius) + 4px);--radius-xl: calc(var(--radius) + 8px);--radius-xxl: calc(var(--radius) + 16px);--radius-full: 100vw;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: clamp(1.063rem, 1.045rem + .09vw, 1.125rem);--text-xl: clamp(1.125rem, 1.089rem + .18vw, 1.25rem);--text-2xl: clamp(1.25rem, 1.179rem + .36vw, 1.5rem);--text-3xl: clamp(1.5rem, 1.393rem + .54vw, 1.875rem);--text-4xl: clamp(1.75rem, 1.607rem + .71vw, 2.25rem);--text-5xl: clamp(2rem, 1.714rem + 1.43vw, 3rem);--text-6xl: clamp(2.25rem, 1.893rem + 1.79vw, 3.5rem);--text-7xl: clamp(2.5rem, 2.071rem + 2.14vw, 4rem);--text-8xl: clamp(2.75rem, 2.25rem + 2.5vw, 4.5rem);--text-9xl: clamp(3rem, 2.313rem + 3.13vw, 5.25rem);--leading-tighter: 1;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.5;--leading-relaxed: 1.6;--leading-very-relaxed: 1.7;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .05em;--tracking-wider: .1em;--background-light: oklch(1 0 0);--foreground-light: oklch(.15 0 0);--foreground-dim-light: oklch(.15 0 0 / .65);--accent-light: oklch(.93 0 0);--border-light: oklch(.85 0 0);--destructive-light: oklch(57.7% .245 27.325);--background-dark: oklch(.15 0 0);--foreground-dark: oklch(1 0 0);--foreground-dim-dark: oklch(1 0 0 / .65);--accent-dark: oklch(.3 0 0);--border-dark: oklch(.4 0 0);--destructive-dark: oklch(70.4% .191 22.216);--site-container: min( calc(100% - 3rem) , 82rem );--glide: linear( 0, .012 .9%, .05 2%, .411 9.2%, .517 11.8%, .611 14.6%, .694 17.7%, .765 21.1%, .824 24.8%, .872 28.9%, .91 33.4%, .939 38.4%, .977 50.9%, .994 68.4%, 1 );--ease-out: cubic-bezier(.25, .46, .45, .94);--ease-smooth: cubic-bezier(.76, 0, .24, 1)}@layer base,components,utilities;@layer base{*{&:focus-visible{outline-style:solid;outline-color:light-dark(var(--foreground-light),var(--foreground-dark));outline-offset:2px;outline-width:2px}}html,body{overflow-x:clip;background-color:light-dark(var(--background-light),var(--background-dark))}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-sans, system-ui, sans-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}button,input,select,textarea{font-family:inherit}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3,h4,h5,h6{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}p{margin:0}img{max-inline-size:100%;block-size:auto;object-fit:contain}::selection{background:light-dark(var(--foreground-dim-light),var(--foreground-dim-dark));color:light-dark(var(--background-light),var(--background-dark))}.section-anchor{scroll-margin-top:var(--nav-height, 6rem)}}@layer utilities{.site-container{width:var(--site-container);margin-inline:auto}.full-bleed{width:100vw;margin-inline:calc(50% - 50vw)}.line-clamp-1{overflow:clip;line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-3{overflow:clip;line-clamp:3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none}}.no-spin-buttons{appearance:textfield;-moz-appearance:textfield;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}}@keyframes fade-in{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes fade-out{to{opacity:0;transform:translateY(-1rem)}}@keyframes project-card-reveal{0%{transform:translateY(40px)}to{transform:translateY(0)}}}.switch[data-astro-cid-hoajrqla]{--switch-track-width: 1rem;--switch-track-height: 1rem;--switch-track-padding: 0rem;--switch-border-width: .0625rem;--switch-thumb-size: calc( var(--switch-track-height) - (var(--switch-track-padding)) );--switch-thumb-offset: calc( (var(--switch-track-height) - var(--switch-thumb-size)) / 2 + var(--switch-border-width) );--switch-thumb-offset-checked: calc(var(--switch-track-width) * 1);display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;user-select:none}.switch[data-astro-cid-hoajrqla]:has(.switch-input:disabled){cursor:not-allowed;opacity:.5}.switch-control[data-astro-cid-hoajrqla]{display:inline-flex}.switch-input[data-astro-cid-hoajrqla]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);white-space:nowrap;border:0}.switch-track[data-astro-cid-hoajrqla]{display:inline-block;width:var(--switch-track-width);height:var(--switch-track-height);border-radius:var(--radius-full);border:var(--switch-border-width) solid var(--foreground-dark);position:relative;overflow:clip;outline:8px solid transparent;transition:background-color .4s ease,border-color .4s ease,box-shadow .4s ease,outline .4s ease}.switch-thumb[data-astro-cid-hoajrqla]{position:absolute;top:var(--switch-track-padding);left:calc(-1 * (var(--switch-track-width) * .5));width:var(--switch-thumb-size);height:var(--switch-thumb-size);background-color:var(--foreground-dark);transition:transform .4s ease-in-out}.switch-input[data-astro-cid-hoajrqla]:hover+.switch-track[data-astro-cid-hoajrqla]{outline:8px solid var(--accent-dark)}.switch-input[data-astro-cid-hoajrqla]:focus-visible+.switch-track[data-astro-cid-hoajrqla]{outline:2px solid var(--foreground-dark);outline-offset:6px}.switch-input[data-astro-cid-hoajrqla]:checked+.switch-track[data-astro-cid-hoajrqla] .switch-thumb[data-astro-cid-hoajrqla]{transform:translate(var(--switch-thumb-offset-checked))}.switch-label[data-astro-cid-hoajrqla]{display:inline-block;font-size:.875rem;font-weight:500}@property --nav-link-index{syntax: "<integer>"; inherits: true; initial-value: 0;}:root{--nav-ease: cubic-bezier(.76, 0, .24, 1);--nav-duration: .7s;--nav-link-stagger: .07s;--nav-link-count: 5;--nav-bar-exit-delay: .2s;--nav-panel-open-delay: .2s;--nav-panel-close-delay: calc( var(--nav-link-count) * var(--nav-link-stagger) + .1s );--nav-bar-enter-delay: calc( var(--nav-panel-close-delay) + var(--nav-duration) * .7 )}.header-bar .social{margin-inline-start:auto}.header-bar{position:fixed;top:0;left:0;right:0;z-index:8;padding:var(--gutter);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--gap);mix-blend-mode:difference;opacity:0;transition:opacity .7s ease,transform var(--nav-duration) var(--nav-ease) var(--nav-bar-enter-delay);&.visible{opacity:1}&.open{transform:translateY(-100%);transition-delay:var(--nav-bar-exit-delay)}}.menu-open,.menu-close{background:unset;border:unset;width:fit-content;display:flex;flex-direction:column;cursor:pointer;position:relative;overflow:clip;padding:unset;user-select:none;&:focus-visible{outline:2px solid var(--foreground-dark);outline-offset:2px}>*{transition:transform .3s ease}span{font-size:var(--text-lg);text-transform:uppercase;color:var(--background-light);line-height:1;&:last-child{position:absolute;top:100%}}&:hover>*,&:focus-visible>*{transform:translateY(-100%)}}.menu-close span{color:var(--foreground-dark)}.logo{display:flex;justify-content:center;a{display:flex;color:var(--background-light);&:focus-visible{outline:2px solid var(--background-light);outline-offset:2px}}svg{height:calc(2rem + 1vw)}}.social{font-size:var(--text-lg);color:var(--background-light);text-decoration:none;transition:opacity .3s ease;&:hover{opacity:.8}&:focus-visible{outline:2px solid var(--foreground-dark);outline-offset:2px}.social-icon{display:none}}.locale-switch{display:flex;align-items:center;gap:.5rem;color:var(--foreground-dark);text-decoration:none;font-size:var(--text-base);width:fit-content;margin-inline-start:auto;&:focus-visible{outline:1px solid var(--foreground-dark);outline-offset:2px}.locale-icons{position:relative;width:16px;height:16px;flex-shrink:0}.icon-globe,.icon-switch{position:absolute;inset:0;transition:scale .25s var(--ease-smooth, ease),opacity .25s ease}.icon-globe{scale:1;opacity:1}.icon-switch{scale:0;opacity:0}&:hover .icon-globe,&:focus-visible .icon-globe{scale:0;opacity:0}&:hover .icon-switch,&:focus-visible .icon-switch{scale:1;opacity:1}}.nav-content-header{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;gap:var(--gap);user-select:none;.theme-switch{place-self:center center}}.nav-menu{position:fixed;top:0;left:0;right:0;z-index:7;background:var(--foreground-light);padding:var(--gutter);display:flex;flex-direction:column;transform:translateY(-100%);pointer-events:none;transition:transform var(--nav-duration) var(--nav-ease) var(--nav-panel-close-delay);&.open{transform:translateY(0);pointer-events:auto;transition-delay:var(--nav-panel-open-delay)}.nav-menu-content{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);align-items:start;padding-block:var(--gutter);transition:box-shadow var(--nav-duration) var(--nav-ease);transition-delay:0;@media(max-width:1024px){grid-template-columns:1fr;gap:calc(var(--gap) * 2);padding-block-start:calc(var(--gutter) * 2);.nav-menu-links{order:1}.contact-info{order:2}}}ul.nav-menu-links{display:flex;flex-direction:column;gap:.25rem;user-select:none;& li{overflow:clip;width:fit-content;--nav-link-index: sibling-index();font-size:var(--text-3xl);text-transform:uppercase}& a{display:flex;flex-direction:column;overflow:clip;position:relative;text-decoration:none;letter-spacing:var(--tracking-tight);color:var(--foreground-dark);line-height:1.1;transform:translateY(-100%);transition:transform var(--nav-duration) var(--nav-ease) calc(var(--nav-link-index) * var(--nav-link-stagger)),opacity .3s ease 0s;span{transition:transform .3s ease;padding:2px;&:last-child{position:absolute;top:100%}}&:hover span,&:focus-visible span{transform:translateY(-100%)}&:focus-visible span{outline:2px solid var(--foreground-dark);outline-offset:-2px}&[aria-current=page]{opacity:.4;pointer-events:none;span{transform:translateY(-100%)}}}}ul.contact-info{display:flex;flex-direction:column;gap:.5rem;margin-block-start:auto;& li a{font-size:var(--text-lg);color:var(--foreground-dark);text-underline-offset:5px;text-decoration-thickness:1px;transition:opacity .3s ease;&:hover{opacity:.8}&:focus-visible{outline:1px solid var(--foreground-dark);outline-offset:1px}}}&.open .nav-menu-content ul.nav-menu-links a{transform:translateY(0);transition:transform var(--nav-duration) var(--nav-ease) calc(var(--nav-panel-open-delay) + var(--nav-duration) * .3 + var(--nav-link-index) * var(--nav-link-stagger)),opacity .3s ease 0s}}header~*{transition:transform var(--nav-duration) var(--nav-ease) var(--nav-panel-close-delay)}header:has(.nav-menu.open)~*{transform:translateY(clamp(4rem,10vh,10rem));transition-delay:var(--nav-panel-open-delay)}.nav-menu:after{content:"";position:absolute;inset:0;pointer-events:none;transition:box-shadow var(--nav-duration) var(--nav-ease) var(--nav-panel-open-delay)}.nav-menu.open:after{box-shadow:#00000040 0 54px 55px,#0000001f 0 -12px 30px,#0000001f 0 4px 6px,#0000002b 0 12px 13px,#00000017 0 -3px 5px}@media(max-width:767px){.nav-menu .social{margin-block-end:auto}.social{.social-text{display:none}.social-icon{display:block}}}@media(prefers-reduced-motion:reduce){.header-bar{transition:none}.menu-open>*,.menu-close>*,.nav-menu .nav-menu-content ul.nav-menu-links a span{transition:none}.nav-menu,.nav-menu .nav-menu-content ul.nav-menu-links a,.nav-menu.open .nav-menu-content ul.nav-menu-links a{transition:none}header~*{transition:none}}
