@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-sans-400-latin-ext-KUPCjGsn.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/ibm-plex-sans-400-latin-BD64o3ke.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-sans-400-latin-ext-KUPCjGsn.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/ibm-plex-sans-400-latin-BD64o3ke.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/ibm-plex-sans-400-latin-ext-KUPCjGsn.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/ibm-plex-sans-400-latin-BD64o3ke.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/space-grotesk-500-latin-ext-wJGaI8U0.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/space-grotesk-500-latin-DPT1xrvW.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/space-grotesk-500-latin-ext-wJGaI8U0.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/space-grotesk-500-latin-DPT1xrvW.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/space-grotesk-500-latin-ext-wJGaI8U0.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/space-grotesk-500-latin-DPT1xrvW.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=dark]{color-scheme:dark;--ground: #0c0a09;--ground-raised: rgb(28 25 23 / .95);--ground-sunken: #080605;--overlay-rgb: 255 255 255;--text-strong: #fafaf9;--text-primary: #f5f5f4;--text-secondary: #d6d3d1;--text-muted: #a8a29e;--text-faint: #837c77;--accent-rgb: 249 115 22;--accent-soft-rgb: 254 215 170;--accent: rgb(var(--accent-rgb));--accent-soft: rgb(var(--accent-soft-rgb));--accent-contrast: #0c0a09;--accent-hover: #ea580c;--status-ok: #4ade80;--status-bad: #f87171;--hero-gradient: linear-gradient(135deg, #14100d 0%, #0c0a09 45%, #080605 100%);--hero-wash-warm: rgba(249, 115, 22, .16);--hero-wash-cool: rgba(180, 83, 9, .12);--hero-image-opacity: .3;--hero-image-blend: lighten;--card-shadow: 0 25px 60px rgb(0 0 0 / .45);--scrim: rgb(0 0 0 / .72);--hero-card: rgb(28 25 23 / .72);--cat-devops: #f97316;--cat-cloud: #38bdf8;--cat-fullstack: #a78bfa;--cat-neutral: #a8a29e;--topic-teal: #2dd4bf;--topic-azure: #38bdf8;--topic-indigo: #818cf8;--topic-rose: #fb7185;--topic-gold: #fbbf24;--topic-orange: #f97316;--topic-neutral: #a8a29e}:root[data-theme=light]{color-scheme:light;--ground: #faf8f5;--ground-raised: rgb(255 253 250 / .97);--ground-sunken: #f2efe9;--overlay-rgb: 28 25 23;--text-strong: #1c1917;--text-primary: #292524;--text-secondary: #44403c;--text-muted: #57534e;--text-faint: #6b6560;--accent-rgb: 194 65 12;--accent-soft-rgb: 154 52 18;--accent: rgb(var(--accent-rgb));--accent-soft: rgb(var(--accent-soft-rgb));--accent-contrast: #ffffff;--accent-hover: #9a3412;--status-ok: #15803d;--status-bad: #b91c1c;--hero-gradient: linear-gradient(135deg, #f4efe6 0%, #faf8f5 45%, #efe8dd 100%);--hero-wash-warm: rgba(249, 115, 22, .14);--hero-wash-cool: rgba(120, 113, 108, .1);--hero-image-opacity: .16;--hero-image-blend: multiply;--card-shadow: 0 18px 45px rgb(28 25 23 / .1);--scrim: rgb(28 25 23 / .62);--hero-card: rgb(255 253 250 / .82);--cat-devops: #c2410c;--cat-cloud: #0369a1;--cat-fullstack: #6d28d9;--cat-neutral: #57534e;--topic-teal: #0f766e;--topic-azure: #0369a1;--topic-indigo: #4338ca;--topic-rose: #be123c;--topic-gold: #b45309;--topic-orange: #c2410c;--topic-neutral: #57534e}.site-shell{position:relative;min-height:100dvh;background-color:var(--ground);color:var(--text-primary)}.site-content{position:relative;z-index:10;display:flex;flex-direction:column;gap:0px;background-color:var(--ground)}.skip-link{position:absolute;left:1rem;top:1rem;z-index:50;--tw-translate-y: -200%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;padding:.75rem 1.25rem;font-weight:600;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.skip-link:focus{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.skip-link{background-color:var(--accent);color:var(--accent-contrast)}.skip-link:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-offset-width: 2px;--tw-ring-color: var(--text-strong);--tw-ring-offset-color: var(--ground)}.section-shell{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:2rem;padding:4rem 1rem;--section-width: 72rem}.section-header{display:flex;width:100%;flex-direction:column;gap:.75rem;text-align:left;max-width:var(--section-width)}.eyebrow{font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.3em;color:rgb(var(--accent-soft-rgb) / .8)}.section-title{font-size:2.25rem;line-height:2.5rem;font-weight:700}@media(min-width:768px){.section-title{font-size:3rem;line-height:1}}.section-title{color:var(--text-strong)}.section-blurb{max-width:70ch;font-size:1.125rem;line-height:1.75rem}@media(min-width:768px){.section-blurb{font-size:1.25rem;line-height:1.75rem}}.section-blurb{color:var(--text-secondary)}.social-links{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.social-media-btn{display:inline-flex;min-height:44px;min-width:44px;align-items:center;justify-content:center;padding:.25rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;color:var(--text-secondary)}.social-media-btn svg{height:1.25rem;width:1.25rem}.social-media-btn:hover,.social-media-btn:focus-visible{color:var(--text-strong)}.site-nav{position:fixed;top:0;left:0;right:0;z-index:40;border-bottom-width:1px;--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);border-color:rgb(var(--overlay-rgb) / .05);background-color:color-mix(in srgb,var(--ground) 90%,transparent)}.nav-inner{margin-left:auto;margin-right:auto;display:flex;width:100%;max-width:80rem;align-items:center;justify-content:space-between;gap:1.5rem;padding:.75rem 1rem}.nav-logo{display:flex;flex-shrink:0;align-items:center;gap:.5rem;text-decoration-line:none;color:var(--text-strong)}.nav-logo-mark{height:2rem;width:2rem}@media(min-width:768px){.nav-logo-mark{height:2.25rem;width:2.25rem}}.nav-name{font-size:1.125rem;line-height:1.75rem;font-weight:700;letter-spacing:-.025em}@media(min-width:768px){.nav-name{font-size:1.25rem;line-height:1.75rem}}.nav-links{display:none;flex:1 1 0%;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500}@media(min-width:1024px){.nav-links{display:flex}}.nav-links{color:var(--text-secondary)}.nav-link{position:relative;white-space:nowrap;border-radius:9999px;padding:.5rem .75rem;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.nav-link:hover{color:var(--text-strong)}.nav-link{color:var(--text-secondary)}.nav-link:after{content:"";position:absolute;left:.75rem;right:.75rem;bottom:.25rem;height:.125rem;transform-origin:center;--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);background-color:rgb(var(--overlay-rgb) / .7)}.nav-link:hover:after,.nav-link:focus-visible:after{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.nav-name-large{font-size:1.125rem;line-height:1.75rem;font-weight:700}@media(min-width:768px){.nav-name-large{font-size:1.25rem;line-height:1.75rem}}.nav-hamburger{display:inline-flex;height:3rem;width:3rem;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;border-radius:1rem;border-width:1px;--tw-shadow: 0 12px 35px rgba(2,6,23,.55);--tw-shadow-colored: 0 12px 35px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.nav-hamburger:hover{border-color:rgb(var(--accent-rgb) / .5);background-color:rgb(var(--overlay-rgb)/.1)}.nav-hamburger{border-color:rgb(var(--overlay-rgb) / .15);background-color:rgb(var(--overlay-rgb) / .05);color:var(--text-strong)}.nav-hamburger span{display:block;height:.125rem;width:1.5rem;border-radius:9999px;background-color:rgb(var(--overlay-rgb));transition:transform .3s ease,opacity .3s ease,width .3s ease}.nav-hamburger span:nth-child(2){width:22px;opacity:.85}.nav-hamburger-open{border-color:rgb(var(--accent-rgb) / .6);background-color:rgb(var(--overlay-rgb) / .1)}.nav-hamburger-open span:nth-child(1){transform:translateY(6px) rotate(45deg);width:24px}.nav-hamburger-open span:nth-child(2){opacity:0;transform:translate(8px)}.nav-hamburger-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);width:24px}.nav-social-links{display:none;flex-shrink:0;align-items:center;gap:.5rem}@media(min-width:1024px){.nav-social-links{display:flex}}.nav-social-links .social-media-btn,.mobile-social-links .social-media-btn{position:relative;padding:.25rem .5rem;opacity:.8;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.nav-social-links .social-media-btn:after,.mobile-social-links .social-media-btn:after{content:"";position:absolute;left:50%;bottom:0;height:.125rem;width:0px;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);background-color:rgb(var(--overlay-rgb) / .7)}.nav-social-links .social-media-btn:hover,.nav-social-links .social-media-btn:focus-visible,.mobile-social-links .social-media-btn:hover,.mobile-social-links .social-media-btn:focus-visible{opacity:1}.nav-social-links .social-media-btn:hover:after,.nav-social-links .social-media-btn:focus-visible:after,.mobile-social-links .social-media-btn:hover:after,.mobile-social-links .social-media-btn:focus-visible:after{width:50%}.nav-social-links .social-media-btn svg,.mobile-social-links .social-media-btn svg{height:1.25rem;width:1.25rem;-o-object-fit:contain;object-fit:contain;opacity:.8;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;filter:none}.nav-social-links .social-media-btn:hover img,.nav-social-links .social-media-btn:focus-visible img,.mobile-social-links .social-media-btn:hover img,.mobile-social-links .social-media-btn:focus-visible img{opacity:1}.mobile-menu{pointer-events:none;visibility:hidden;position:fixed;inset:72px 0 0;z-index:30;display:flex;--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));flex-direction:column;overflow-y:auto;padding:1rem 1.5rem 2.5rem;opacity:0;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}@media(min-width:1024px){.mobile-menu{display:none}}.mobile-menu{background-color:var(--ground);color:var(--text-strong);transition-property:opacity,transform,visibility;overscroll-behavior:contain}.mobile-menu-open{pointer-events:auto;visibility:visible;--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:1}.reveal.mobile-menu-open{opacity:1;transform:translateY(0)}.mobile-menu nav{display:flex;flex-direction:column}.mobile-cv{margin-top:1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;border-width:1px;padding:.75rem 1.25rem;font-weight:600;text-decoration-line:none;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent)}.mobile-cv:hover{background-color:var(--accent);color:var(--accent-contrast)}.mobile-link{position:relative;align-self:flex-start;padding-top:.75rem;padding-bottom:.75rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;color:var(--text-secondary)}.mobile-link:after{content:"";position:absolute;left:0;right:0;bottom:.5rem;height:.125rem;transform-origin:left;--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);background-color:rgb(var(--accent-rgb) / .9)}.mobile-link:hover,.mobile-link:focus-visible{color:var(--text-strong)}.mobile-link-active{color:var(--text-strong)}.mobile-link-active:after{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.mobile-divider{margin-top:1.5rem;display:block;height:1px;width:100%;flex-shrink:0;background-color:rgb(var(--overlay-rgb) / .1)}.mobile-social-block{margin-top:1.5rem;display:flex;flex-shrink:0;align-items:center;justify-content:center;gap:.5rem}.mobile-social-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem}.mobile-social-links .social-media-btn{padding:.5rem .75rem;color:var(--text-strong)}.mobile-social-links .social-media-btn svg{height:1.5rem;width:1.5rem}.nav-link-active{color:var(--text-strong)}.nav-link-active:after{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));background-color:rgb(var(--accent-rgb) / .9)}.nav-actions{display:flex;flex-shrink:0;align-items:center;gap:.5rem}.theme-toggle{display:inline-flex;height:2.25rem;width:2.25rem;align-items:center;justify-content:center;border-radius:9999px;border-width:1px;font-size:1rem;line-height:1.5rem;line-height:1;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;border-color:rgb(var(--overlay-rgb) / .15);background-color:rgb(var(--overlay-rgb) / .05);color:var(--text-primary)}.theme-toggle:hover{background-color:rgb(var(--overlay-rgb) / .12);color:var(--text-strong)}.theme-toggle:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: var(--accent)}.theme-toggle-mobile{height:2.5rem;width:2.5rem;font-size:1.125rem;line-height:1.75rem}.language-toggle{display:inline-flex;height:2.25rem;min-width:2.25rem;align-items:center;justify-content:center;border-radius:9999px;border-width:1px;padding-left:.625rem;padding-right:.625rem;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;border-color:rgb(var(--overlay-rgb) / .15);background-color:rgb(var(--overlay-rgb) / .05);color:var(--text-muted)}.language-toggle:hover{background-color:rgb(var(--overlay-rgb) / .12);color:var(--text-strong)}.language-toggle:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: var(--accent)}.language-toggle-mobile{height:2.5rem;padding-left:1rem;padding-right:1rem;font-size:.875rem;line-height:1.25rem}.hero-stage{position:relative;min-height:100dvh;overflow:hidden;color:var(--text-primary);background:radial-gradient(circle at 10% 20%,var(--hero-wash-warm),transparent 45%),radial-gradient(circle at 80% 0%,var(--hero-wash-cool),transparent 55%),var(--hero-gradient)}.hero-stage:before{content:"";position:absolute;inset:0;background-image:linear-gradient(0deg,rgb(var(--overlay-rgb) / .04) 1px,transparent 0);background-size:100% 22px;opacity:.2;pointer-events:none}.hero-background{position:absolute;inset:0;height:100%;width:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;-o-object-fit:cover;object-fit:cover;opacity:var(--hero-image-opacity);mix-blend-mode:var(--hero-image-blend)}.hero-shell{position:relative;z-index:10;display:flex;min-height:100dvh;width:100%;align-items:center;justify-content:center;padding:8rem 1rem 5rem}.hero-inner{position:relative;margin-left:auto;margin-right:auto;display:grid;max-width:72rem;gap:2.5rem;border-radius:40px;border-width:1px;padding:2rem;--tw-shadow: 0 25px 80px rgba(2, 6, 23, .6);--tw-shadow-colored: 0 25px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-backdrop-blur: blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}@media(min-width:1024px){.hero-inner{grid-template-columns:auto 1fr}}.hero-inner{background-color:var(--hero-card);border-color:rgb(var(--overlay-rgb) / .05)}.hero-media{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}@media(min-width:1024px){.hero-media{text-align:left}}.hero-avatar{position:relative;display:flex;height:14rem;width:14rem;align-items:center;justify-content:center;overflow:hidden;border-radius:9999px;border-width:1px;--tw-shadow: 0 0 35px rgb(var(--accent-rgb) / .35);--tw-shadow-colored: 0 0 35px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .05)}.hero-avatar img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover}.hero-location{margin-top:1rem;display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;border-width:1px;padding:.25rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .1);color:var(--text-strong)}.hero-location-icon{height:1rem;width:1rem;color:var(--accent-soft)}.hero-copy{display:flex;max-width:42rem;flex-direction:column;gap:1.25rem;text-align:left}.hero-eyebrow{font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.4em;color:var(--accent-soft)}.hero-heading{font-size:3rem;line-height:1;font-weight:700}@media(min-width:768px){.hero-heading{font-size:3.75rem;line-height:1}}.hero-heading{color:var(--text-strong)}.hero-role{font-size:1.875rem;line-height:2.25rem;font-weight:600}@media(min-width:768px){.hero-role{font-size:2.25rem;line-height:2.5rem}}.hero-role{color:var(--text-primary)}.hero-role-cursor{color:var(--text-strong)}.hero-summary{font-size:1.125rem;line-height:1.75rem;line-height:1.625;color:var(--text-secondary)}.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}.hero-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;padding:.75rem 1.5rem;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.hero-btn:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hero-btn{background-color:var(--accent);box-shadow:0 18px 45px color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent-contrast)}.hero-btn-secondary{border-width:1px;background-color:transparent}.hero-btn-secondary:hover{background-color:rgb(var(--overlay-rgb)/.1)}.hero-btn-secondary{border-color:rgb(var(--overlay-rgb) / .3);color:var(--text-strong)}.hero-btn-ghost{border-width:1px;background-color:transparent}.hero-btn-ghost:hover{background-color:rgb(var(--overlay-rgb)/.15)}.hero-btn-ghost{border-color:rgb(var(--overlay-rgb) / .2);color:var(--text-strong)}.hero-social-links{margin-top:.5rem;gap:.25rem}.hero-social-links .social-media-btn{position:relative;padding:.25rem;opacity:.8;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.hero-social-links .social-media-btn:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:1}.hero-social-links .social-media-btn svg{height:1.5rem;width:1.5rem;-o-object-fit:contain;object-fit:contain}.quick-facts-grid{display:grid;width:100%;max-width:72rem;gap:1.5rem}@media(min-width:768px){.quick-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.quick-facts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.quick-fact-card{position:relative;overflow:hidden;border-radius:1.5rem;border-width:1px;padding:1.5rem;text-align:left;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(0 0 0 / .5);--tw-shadow: var(--tw-shadow-colored);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1)}.quick-fact-card:hover{border-color:rgb(var(--accent-rgb) / .6)}.quick-fact-card{border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .05)}.quick-fact-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgb(var(--accent-rgb) / .25),transparent 45%);opacity:0;transition:opacity .3s ease}.quick-fact-card:hover:after{opacity:1}.quick-fact-title{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:rgb(var(--accent-soft-rgb) / .9)}.quick-fact-body{margin-top:.5rem;font-size:1.5rem;line-height:2rem;font-weight:600;color:var(--text-strong)}.quick-fact-meta{margin-top:1rem;font-size:.875rem;line-height:1.25rem;color:var(--text-muted)}.skill-grid{display:grid;width:100%;max-width:72rem;gap:1.5rem}@media(min-width:768px){.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.skill-card{border-radius:1.5rem;border-width:1px;background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: var(--ground-sunken) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: color-mix(in srgb,var(--ground-sunken) 40%,transparent) var(--tw-gradient-to-position);padding:1.5rem;text-align:left;--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(0 0 0 / .4);--tw-shadow: var(--tw-shadow-colored);border-color:rgb(var(--overlay-rgb) / .1)}.skill-title{margin-bottom:.75rem;font-size:1.5rem;line-height:2rem;font-weight:600;color:var(--text-strong)}.skill-pill-container{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.5rem}.skill-pill{border-radius:9999px;border-width:1px;padding:.25rem .75rem;font-size:.875rem;line-height:1.25rem;color:rgb(var(--accent-soft-rgb) / .9);border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .1)}.tech-stack-grid{display:grid;width:100%;max-width:72rem;gap:1.5rem}@media(min-width:768px){.tech-stack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.tech-stack-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.tech-stack-card{border-radius:1.5rem;border-width:1px;padding:1.5rem;text-align:left;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .05)}.tech-stack-title{margin-bottom:1rem;font-size:1.25rem;line-height:1.75rem;font-weight:600;color:var(--text-strong)}.tech-pill{margin-right:.5rem;margin-bottom:.5rem;display:inline-flex;border-radius:9999px;border-width:1px;padding:.25rem .75rem;font-size:.875rem;line-height:1.25rem;border-color:rgb(var(--overlay-rgb) / .1);background-color:color-mix(in srgb,var(--ground-raised) 70%,transparent);color:var(--text-primary)}.tech-icon-grid{display:grid;width:100%;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.tech-icon-chip{display:flex;width:100%;align-items:center;gap:.75rem;border-radius:1rem;border-width:1px;padding:.5rem .75rem;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(0 0 0 / .2);--tw-shadow: var(--tw-shadow-colored);--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}.tech-icon-chip:hover{--tw-translate-y: -.25rem;--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-color:rgb(var(--accent-rgb) / .6);background-color:rgb(var(--overlay-rgb)/.1)}.tech-icon-chip{border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .05)}.tech-icon-chip img{height:2rem;width:2rem;-o-object-fit:contain;object-fit:contain}.tech-icon-chip span{font-size:.875rem;line-height:1.25rem;font-weight:500;color:var(--text-strong)}.certificate-grid{display:grid;width:100%;max-width:64rem;gap:1.5rem}@media(min-width:768px){.certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.certificate-card{display:flex;height:100%;flex-direction:column;justify-content:space-between;gap:1rem;border-radius:1.5rem;border-width:1px;padding:1.5rem;text-align:left;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1)}.certificate-card:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-color:rgb(var(--accent-rgb) / .6)}.certificate-card{border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .05)}.certificate-title{font-size:1.25rem;line-height:1.75rem;font-weight:600;color:var(--text-strong)}.certificate-issuer{font-size:.875rem;line-height:1.25rem;text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted)}.certificate-meta{font-size:.875rem;line-height:1.25rem;color:var(--text-secondary)}.certificate-link{display:inline-flex;min-height:44px;align-items:center;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.3em;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.certificate-link:hover{color:var(--text-strong)}.certificate-link{color:var(--accent-soft)}.certificate-card-row{display:flex;align-items:flex-start;gap:1rem}.certificate-card-text{display:flex;flex-direction:column;gap:.25rem}.certificate-badge{height:4rem;width:auto;flex-shrink:0;-o-object-fit:contain;object-fit:contain}#certificates{--section-width: 64rem}.timeline{position:relative;width:100%;max-width:64rem}.timeline:before{content:"";position:absolute;left:20px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,rgb(var(--overlay-rgb) / 0),rgb(var(--accent-rgb) / .8))}.timeline-item{position:relative;padding-bottom:3rem;padding-left:4rem}.timeline-node{position:absolute;left:9px;top:.25rem;display:flex;height:1.5rem;width:1.5rem;align-items:center;justify-content:center;border-radius:9999px;border-width:2px;--tw-border-opacity: 1;border-color:rgb(var(--accent-rgb) / var(--tw-border-opacity, 1));--tw-shadow: 0 0 35px rgb(var(--accent-rgb) / .35);--tw-shadow-colored: 0 0 35px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:var(--ground)}.timeline-node:after{content:"";display:block;height:.5rem;width:.5rem;border-radius:9999px;background-color:var(--accent)}.timeline-body{border-radius:1rem;border-width:1px;padding:1.5rem;text-align:left;--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .05)}.timeline-title{font-size:1.5rem;line-height:2rem;font-weight:600;color:var(--text-strong)}.timeline-meta{margin-top:.5rem;font-size:.875rem;line-height:1.25rem;text-transform:uppercase;letter-spacing:.2em;color:var(--text-muted)}.timeline-header{display:flex;align-items:flex-start;gap:1rem}.timeline-logo{height:3rem;width:3rem;flex-shrink:0;border-radius:.75rem;-o-object-fit:contain;object-fit:contain;padding:.375rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--overlay-rgb) / .95)}.timeline-logo--dark{background-color:var(--ground-sunken)}.timeline-list{margin-top:1rem;list-style-type:disc}.timeline-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.timeline-list{padding-left:1.25rem;text-align:left;color:var(--text-secondary)}@media(max-width:767px){.timeline:before,.timeline-node{display:none}.timeline-item{padding-bottom:1.5rem;padding-left:0}}#experience,#education{--section-width: 64rem}.project-card-grid{display:grid;width:100%;max-width:72rem;gap:1.5rem}@media(min-width:768px){.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1280px){.project-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.project-card{display:flex;height:100%;flex-direction:column;overflow:hidden;border-radius:36px;border-width:1px;background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from: rgb(var(--overlay-rgb)/.05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(var(--overlay-rgb) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(var(--overlay-rgb)/0) var(--tw-gradient-to-position);text-align:left;--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);border-color:rgb(var(--overlay-rgb) / .1);box-shadow:var(--card-shadow)}.project-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--project-accent, rgb(var(--overlay-rgb) / .25)) 70%,transparent);box-shadow:0 35px 90px color-mix(in srgb,var(--project-accent, #3b82f6) 35%,transparent)}.project-card-media{position:relative;display:block;height:12rem;width:100%;cursor:pointer;overflow:hidden;border-width:0px;background-color:transparent;padding:0;text-align:left}.project-card-media:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-inset: inset;--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--accent-rgb) / var(--tw-ring-opacity, 1))}.project-card-media img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.5s;transition-timing-function:cubic-bezier(0,0,.2,1)}.project-card:hover .project-card-media img{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.project-card-media:after{content:"";position:absolute;inset:0;background-image:linear-gradient(to top,var(--tw-gradient-stops));--tw-gradient-from: var(--scrim) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0/.1) var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: transparent var(--tw-gradient-to-position)}.project-card-pill{margin-bottom:-.5rem;font-size:11px;font-weight:600;text-transform:uppercase;--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);letter-spacing:.2em;color:var(--text-muted)}.project-card-body{display:flex;flex:1 1 0%;flex-direction:column;gap:1rem;padding:1.5rem;color:var(--text-secondary)}.project-card-title{font-size:1.5rem;line-height:2rem;font-weight:600;color:var(--text-strong)}.project-card-summary{font-size:1rem;line-height:1.5rem;line-height:1.625;color:var(--text-secondary)}.project-card-tags{display:flex;flex-wrap:wrap;gap:.5rem}.project-card-tags span{border-radius:9999px;border-width:1px;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .1);color:var(--text-secondary)}.project-card-actions{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.project-card-action{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:9999px;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent)}.project-card-action:hover{background-color:color-mix(in srgb,var(--accent) 24%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--text-strong)}.project-card-action-secondary,.project-card-action-study{background-color:transparent;border-color:rgb(var(--overlay-rgb) / .18);color:var(--text-secondary)}.project-card-action-secondary:hover,.project-card-action-study:hover{background-color:rgb(var(--overlay-rgb) / .07);border-color:rgb(var(--overlay-rgb) / .32);color:var(--text-strong)}.project-card-action:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: var(--accent)}.filter-bar{display:flex;flex-wrap:wrap;gap:.625rem;justify-content:center;margin-bottom:.5rem}.filter-pill{cursor:pointer;border-radius:9999px;border-width:1px;padding:.5rem 1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.filter-pill:hover{border-color:rgb(var(--accent-rgb) / .6);color:var(--text-strong)}.filter-pill{border-color:rgb(var(--overlay-rgb) / .2);background-color:rgb(var(--overlay-rgb) / .05);color:var(--text-secondary)}.filter-pill-active{--tw-border-opacity: 1;border-color:rgb(var(--accent-rgb) / var(--tw-border-opacity, 1));background-color:rgb(var(--accent-rgb) / .2);color:var(--text-strong)}.blog-card-grid{display:grid;width:100%;max-width:72rem;gap:1.5rem}@media(min-width:768px){.blog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.blog-card{position:relative;display:flex;height:100%;flex-direction:column;overflow:hidden;border-radius:32px;border-width:1px;background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from: rgb(var(--overlay-rgb)/.05) var(--tw-gradient-from-position);--tw-gradient-to: rgb(var(--overlay-rgb) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(var(--overlay-rgb)/0) var(--tw-gradient-to-position);text-align:left;--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1);border-color:rgb(var(--overlay-rgb) / .1);box-shadow:var(--card-shadow)}.blog-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--card-accent, rgb(var(--overlay-rgb) / .2)) 70%,transparent);box-shadow:0 35px 90px color-mix(in srgb,var(--card-accent, #3b82f6) 35%,transparent)}.blog-card-media{position:relative;height:14rem;width:100%;overflow:hidden}.blog-card-media-placeholder{height:100%;width:100%;background:linear-gradient(135deg,rgb(var(--overlay-rgb) / .12),rgb(var(--overlay-rgb) / .04))}.blog-card-media img{height:100%;width:100%;-o-object-fit:cover;object-fit:cover;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.5s;transition-timing-function:cubic-bezier(0,0,.2,1)}.blog-card:hover .blog-card-media img{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.blog-card-media:after{content:"";position:absolute;inset:0;background-image:linear-gradient(to top,var(--tw-gradient-stops));--tw-gradient-from: var(--scrim) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0/.2) var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: transparent var(--tw-gradient-to-position)}.blog-card-pill{position:absolute;left:1rem;top:1rem;display:inline-flex;align-items:center;border-radius:9999px;border-width:1px;padding:.25rem 1rem;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.3em;--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);border-color:rgb(var(--overlay-rgb) / .3);background-color:rgb(var(--overlay-rgb) / .1);color:var(--text-strong)}.blog-card-body{display:flex;flex:1 1 0%;flex-direction:column;gap:1rem;padding:1.5rem}.blog-card-date{font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.4em;color:var(--text-muted)}.blog-card-title{font-size:1.5rem;line-height:2rem;font-weight:600;color:var(--text-strong)}.blog-card-summary{font-size:1rem;line-height:1.5rem;color:var(--text-secondary)}.blog-card-tags{display:flex;flex-wrap:wrap;gap:.5rem}.blog-card-tags span{border-radius:9999px;border-width:1px;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .1);color:var(--text-secondary)}.blog-card-link{margin-top:auto;font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.4em;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.blog-card-link:hover{color:var(--text-strong)}.blog-card-link{color:var(--accent-soft)}.connect-section{margin-left:auto;margin-right:auto;display:flex;width:100%;max-width:620px;flex-direction:column;gap:1.5rem}.contact-form{display:flex;flex-direction:column;gap:1.25rem;text-align:left}.contact-row{display:grid;gap:1.25rem}@media(min-width:640px){.contact-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-group{display:flex;flex-direction:column;gap:.5rem}.contact-label{font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--text-muted)}.contact-hint{margin-top:-.25rem;font-size:.875rem;line-height:1.25rem;color:var(--text-faint)}.contact-field{width:100%;border-radius:1rem;border-width:1px;background-color:transparent;padding:.75rem 1rem;outline:2px solid transparent;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border-color:rgb(var(--overlay-rgb) / .2);color:var(--text-strong)}.contact-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgb(var(--overlay-rgb) / .08)}.contact-textarea{min-height:150px;resize:vertical}.contact-field:disabled{cursor:not-allowed;opacity:.6}.connect-button{position:relative;display:inline-flex;width:100%;align-items:center;justify-content:center;overflow:hidden;border-radius:1rem;padding:.75rem 1.5rem;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;background-color:var(--accent);color:var(--accent-contrast)}.connect-button:hover:not(:disabled){background-color:var(--accent-hover)}.connect-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.connect-button[data-state=delivered]{background-color:var(--status-ok);color:var(--ground)}.connect-button:disabled{cursor:not-allowed;opacity:.6}.connect-button-rail{pointer-events:none;position:absolute;bottom:0;left:0;height:3px;width:100%;transform-origin:left;--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));background-color:#00000040}.connect-button[data-state=sending] .connect-button-rail{animation:connect-rail 1.1s ease-in-out infinite}@keyframes connect-rail{0%{transform:scaleX(0);transform-origin:left}55%{transform:scaleX(1);transform-origin:left}56%{transform:scaleX(1);transform-origin:right}to{transform:scaleX(0);transform-origin:right}}@media(prefers-reduced-motion:reduce){.connect-button[data-state=sending] .connect-button-rail{animation:none;transform:scaleX(.4)}}.form-status:empty{display:none}.form-status{font-size:.875rem;line-height:1.25rem;font-weight:600;color:var(--status-ok)}.form-status-error{font-size:.875rem;line-height:1.25rem;font-weight:600;color:var(--status-bad)}.form-status-error a{text-decoration-line:underline;text-underline-offset:2px}.form-status-error a:hover{color:var(--text-strong)}.contact-info{display:grid;-moz-column-gap:1.5rem;column-gap:1.5rem;row-gap:1.25rem;border-top-width:1px;padding-top:1.25rem}@media(min-width:640px){.contact-info{grid-template-columns:repeat(2,minmax(0,1fr))}}.contact-info{border-color:rgb(var(--overlay-rgb) / .12)}.contact-chip{display:flex;min-width:0px;flex-direction:column;gap:.25rem;text-align:left}.contact-chip span{font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.18em;color:var(--text-faint)}.contact-chip a{overflow-wrap:break-word;font-size:15px;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.contact-chip a:hover{--tw-text-opacity: 1;color:rgb(var(--accent-rgb) / var(--tw-text-opacity, 1))}.contact-chip a{color:var(--text-strong)}.contact-chip .copy-email-btn{flex-wrap:wrap;justify-content:flex-start;-moz-column-gap:.5rem;column-gap:.5rem;row-gap:.25rem;font-size:15px;overflow-wrap:anywhere}.contact-chip p{font-size:15px;color:var(--text-secondary)}#contact{--section-width: 620px}.site-footer{margin-top:4rem;border-top-width:1px;background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-gradient-from: color-mix(in srgb,var(--ground) 80%,transparent) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(0 0 0/.9) var(--tw-gradient-to-position);border-color:rgb(var(--overlay-rgb) / .05);color:var(--text-strong)}.footer-inner{margin-left:auto;margin-right:auto;display:flex;width:100%;max-width:72rem;flex-direction:column;gap:2.5rem;padding:3rem 1rem}@media(min-width:768px){.footer-inner{flex-direction:row;align-items:flex-start;justify-content:space-between}}.footer-bio{max-width:42rem}.footer-bio>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.footer-name{font-size:1.5rem;line-height:2rem;font-weight:700}.footer-tagline{font-size:1.125rem;line-height:1.75rem;color:var(--accent-soft)}.footer-summary{font-size:1rem;line-height:1.5rem;color:var(--text-secondary)}.footer-location{font-size:.875rem;line-height:1.25rem;color:var(--text-muted)}.footer-contact{margin-top:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.footer-email{display:inline-flex;align-items:center;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.footer-email:hover{--tw-text-opacity: 1;color:rgb(var(--accent-rgb) / var(--tw-text-opacity, 1))}.footer-email{color:var(--text-strong)}.footer-coffee{display:inline-flex;align-items:center;font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.3em;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.footer-coffee:hover{color:var(--text-strong)}.footer-coffee{color:var(--text-muted)}.footer-socials{display:flex;gap:1.5rem;padding-top:1rem;font-size:.875rem;line-height:1.25rem;text-transform:uppercase;letter-spacing:.3em;color:var(--text-muted)}.footer-socials a{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.footer-socials a:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));color:var(--text-strong)}.footer-pills{display:flex;flex-wrap:wrap;gap:.75rem}@media(min-width:768px){.footer-pills{max-width:24rem}}.footer-pills span{border-radius:9999px;border-width:1px;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(0 0 0 / .3);--tw-shadow: var(--tw-shadow-colored);border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .1);color:var(--text-primary)}.footer-bottom{border-top-width:1px;padding:1rem;text-align:center;font-size:.75rem;line-height:1rem;text-transform:uppercase;letter-spacing:.3em;border-color:rgb(var(--overlay-rgb) / .05);color:var(--text-faint)}.copy-email-btn{display:inline-flex;min-height:44px;cursor:pointer;align-items:center;gap:.5rem;border-width:0px;background-color:transparent;padding:0;text-align:left;font-weight:600;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;color:var(--text-strong);font-size:inherit;font-family:inherit}.copy-email-btn:hover{color:var(--accent)}.copy-badge{display:inline-flex;align-items:center;border-radius:9999px;border-width:1px;padding:.1rem .55rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.25s;border-color:rgb(var(--overlay-rgb) / .15);background-color:rgb(var(--overlay-rgb) / .1);color:var(--text-muted)}.copy-email-btn:hover .copy-badge{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background-color:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.copy-email-btn:focus-visible .copy-badge{outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:color-mix(in srgb,var(--accent) 50%,transparent)}.project-lightbox{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem}@media(min-width:768px){.project-lightbox{gap:1.5rem;padding:2rem}}.project-lightbox{background-color:var(--scrim)}.project-lightbox-panel{display:flex;min-height:0px;flex-direction:column;overflow:hidden;border-radius:28px;border-width:1px}@media(min-width:768px){.project-lightbox-panel{border-radius:36px}}.project-lightbox-panel{max-width:min(92vw,1400px);max-height:90vh;border-color:rgb(var(--overlay-rgb) / .12);background-color:var(--ground);box-shadow:0 35px 90px #00000080}.project-lightbox-frame{display:flex;min-height:0px;justify-content:center;background-color:var(--ground-sunken)}.project-lightbox-img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;-o-object-fit:contain;object-fit:contain}.project-lightbox-caption{display:flex;flex-shrink:0;flex-direction:column;gap:.75rem;border-top-width:1px;padding:1.25rem}@media(min-width:768px){.project-lightbox-caption{padding:1.5rem}}.project-lightbox-caption{border-color:rgb(var(--overlay-rgb) / .1);color:var(--text-secondary)}.project-lightbox-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;-moz-column-gap:1rem;column-gap:1rem;row-gap:.25rem}.project-lightbox-title{font-size:1.25rem;line-height:1.75rem;font-weight:600}@media(min-width:768px){.project-lightbox-title{font-size:1.5rem;line-height:2rem}}.project-lightbox-title{color:var(--text-strong)}.project-lightbox-meta{font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.3em;color:var(--text-muted)}.project-lightbox-actions{display:flex;flex-direction:column;gap:.5rem}@media(min-width:768px){.project-lightbox-actions{flex-direction:row;flex-wrap:wrap;gap:.75rem}}.project-lightbox-counter{text-align:center;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.3em}@media(min-width:768px){.project-lightbox-counter{text-align:right}}.project-lightbox-counter{color:var(--text-muted)}.project-lightbox-arrow{display:none;height:3rem;width:3rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;font-size:1.875rem;line-height:2.25rem;line-height:1;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media(min-width:768px){.project-lightbox-arrow{display:flex}}.project-lightbox-arrow{background-color:#ffffff1f;color:#fff}.project-lightbox-arrow:hover{background-color:#ffffff38}.project-lightbox-close{position:absolute;right:1rem;top:1rem;display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:9999px;font-size:1.5rem;line-height:2rem;line-height:1;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media(min-width:768px){.project-lightbox-close{right:2rem;top:2rem;height:3rem;width:3rem;font-size:1.875rem;line-height:2.25rem}}.project-lightbox-close{background-color:#ffffff1f;color:#fff}.project-lightbox-close:hover{background-color:#ffffff38}.project-lightbox-arrow:focus-visible,.project-lightbox-close:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: var(--accent)}@media(max-width:767px){.project-lightbox{align-items:flex-end;padding:0;background-color:color-mix(in srgb,var(--ground) 93%,transparent)}.project-lightbox-panel{width:100%;border-bottom-right-radius:0;border-bottom-left-radius:0;max-width:100%;max-height:92vh}}.case-study{margin-left:auto;margin-right:auto;width:100%;max-width:48rem;padding:8rem 1.25rem 6rem}.case-study-inner{display:flex;flex-direction:column;gap:2.5rem;text-align:left}.case-study-back{font-size:.875rem;line-height:1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.3em;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:var(--accent-soft)}.case-study-back:hover{color:var(--text-strong)}.case-study-header{display:flex;flex-direction:column;gap:1rem}.case-study-title{font-size:2.25rem;line-height:2.5rem;font-weight:700}@media(min-width:768px){.case-study-title{font-size:3rem;line-height:1}}.case-study-title{color:var(--text-strong)}.case-study-summary{font-size:1.125rem;line-height:1.75rem;line-height:1.625;color:var(--text-secondary)}.case-study-facts{margin-top:1rem;display:grid;gap:1rem;border-radius:1.5rem;border-width:1px;padding:1.25rem}@media(min-width:640px){.case-study-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}.case-study-facts{border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .05)}.case-study-facts dt{font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.3em;color:var(--text-muted)}.case-study-facts dd{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500;color:var(--text-primary)}.case-study-section{display:flex;flex-direction:column;gap:1rem}.case-study-section-title{font-size:1.5rem;line-height:2rem;font-weight:600;color:var(--text-strong)}.case-study-section p{font-size:1rem;line-height:1.5rem;line-height:1.625;color:var(--text-secondary)}.case-study-list{display:flex;list-style-type:disc;flex-direction:column;gap:.5rem;padding-left:1.25rem;font-size:1rem;line-height:1.5rem;line-height:1.625;color:var(--text-secondary)}.case-study-decisions{display:flex;flex-direction:column;gap:1.25rem}.case-study-decision{border-radius:1.5rem;border-width:1px;padding:1.25rem;border-color:rgb(var(--overlay-rgb) / .1);background-color:rgb(var(--overlay-rgb) / .05)}.case-study-decision h3{margin-bottom:.75rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;color:var(--text-strong)}.case-study-decision p{font-size:.875rem;line-height:1.25rem;line-height:1.625;color:var(--text-secondary)}.case-study-tradeoff{margin-top:.5rem;color:var(--text-muted)}.case-study-footer{margin-top:1rem;display:flex}.project-card-action-study{color:var(--text-strong)}.not-found{margin-left:auto;margin-right:auto;display:flex;min-height:100dvh;width:100%;max-width:36rem;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding-left:1.25rem;padding-right:1.25rem;text-align:center}.not-found-title{font-size:1.875rem;line-height:2.25rem;font-weight:700}@media(min-width:768px){.not-found-title{font-size:2.25rem;line-height:2.5rem}}.not-found-title{color:var(--text-strong)}.not-found-body{margin-bottom:1rem;font-size:1rem;line-height:1.5rem;color:var(--text-secondary)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .55s ease,transform .55s ease}.reveal.visible{opacity:1;transform:translateY(0)}.reveal:nth-child(2){transition-delay:.08s}.reveal:nth-child(3){transition-delay:.16s}.reveal:nth-child(4){transition-delay:.24s}.reveal:nth-child(5){transition-delay:.32s}.reveal:nth-child(6){transition-delay:.4s}.reveal:nth-child(7){transition-delay:.48s}.reveal:nth-child(8){transition-delay:.56s}.reveal:nth-child(9){transition-delay:.64s}.reveal:nth-child(10){transition-delay:.72s}.back-to-top-sentinel{position:absolute;top:400px;left:0;width:1px;height:1px;pointer-events:none;visibility:hidden}.back-to-top{position:fixed;bottom:2rem;right:2rem;z-index:50;width:2.75rem;height:2.75rem;border-radius:9999px;background:linear-gradient(135deg,rgb(var(--accent-rgb) / .85),rgb(var(--accent-rgb) / .95));color:#fff;font-size:1.25rem;font-weight:700;border:1px solid rgb(var(--overlay-rgb) / .2);box-shadow:0 8px 32px rgb(var(--accent-rgb) / .4);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .3s ease,transform .3s ease,box-shadow .2s ease;display:flex;align-items:center;justify-content:center}.back-to-top-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{box-shadow:0 12px 40px rgb(var(--accent-rgb) / .6);transform:translateY(-3px)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:IBM Plex Sans,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{font-family:IBM Plex Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--ground);color:var(--text-primary);transition:background-color .25s ease,color .25s ease}h1,h2,h3,h4,h5{font-family:Space Grotesk,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.01em;text-wrap:balance}p{text-wrap:pretty}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important;transition-delay:0ms!important}}.container{width:100%}@media(min-width:340px){.container{max-width:340px}}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.mt-4{margin-top:1rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-col{flex-direction:column}.gap-1{gap:.25rem}.text-left{text-align:left}.text-sm{font-size:.875rem;line-height:1.25rem}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-relaxed{line-height:1.625}.tracking-\[0\.3em\]{letter-spacing:.3em}.text-accent-soft\/90{color:rgb(var(--accent-soft-rgb) / .9)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[color\:var\(--text-secondary\)\]{color:var(--text-secondary)}@media(min-width:1024px){.lg\:hidden{display:none}}
