:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f6f8f7;--color-surface:#fff;--color-surface-muted:#eaf0ef;--color-ink:#12282f;--color-ink-soft:#496069;--color-line:#cad7d5;--color-accent:#087f8c;--color-accent-strong:#05636d;--color-accent-soft:#d9f0f1;--color-dark:#092b35;--color-dark-soft:#104451;--color-light:#f7fbfb;--color-warning:#785b00;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:clamp(1.75rem, 4vw, 2.5rem);--text-hero:clamp(2.5rem, 7vw, 4rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--radius-sm:.5rem;--radius-md:.9rem;--radius-lg:1.4rem;--shadow-sm:0 .5rem 1.5rem #12282f14;--shadow-md:0 1rem 3rem #12282f21;--container:75rem;--transition:.2s ease;--z-header:30;--z-skip-link:50}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--color-accent) var(--color-surface-muted);scrollbar-width:thin}body{background:var(--color-bg);min-width:20rem;color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);text-rendering:optimizelegibility;margin:0;line-height:1.65}body.navigation-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}img,svg{display:block}img{max-width:100%}h1,h2,h3,p,dl,dd,ol,ul{margin-block:0}ul,ol{padding:0}h1,h2,h3{color:inherit;letter-spacing:-.035em;font-weight:750;line-height:1.12}h1{max-width:18ch;font-size:var(--text-hero)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}a{color:var(--color-accent-strong)}:focus-visible{outline-offset:.2rem;outline:.2rem solid #f2bb35}::selection{background:var(--color-accent-soft);color:var(--color-ink)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--space-3);left:var(--space-3);z-index:var(--z-skip-link);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);transition:transform var(--transition);font-weight:700;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.container{width:min(100% - 2rem, var(--container));margin-inline:auto}.eyebrow{color:var(--color-accent-strong);font-size:var(--text-sm);letter-spacing:.1em;text-transform:uppercase;font-weight:800}.eyebrow--light{color:#8fdae0}.site-header{z-index:var(--z-header);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background:#f6f8f7f0;border-bottom:1px solid #cad7d5cc;position:sticky;top:0}.site-header__content{justify-content:space-between;align-items:center;min-height:4.75rem;display:flex}.brand{align-items:center;gap:var(--space-3);min-height:2.75rem;color:var(--color-ink);font-weight:800;line-height:1.1;text-decoration:none;display:inline-flex}.brand img{border-radius:var(--radius-sm);background:var(--color-dark);width:2.5rem;height:auto;padding:.35rem}.brand span{gap:var(--space-1);display:grid}.brand small{color:var(--color-ink-soft);letter-spacing:.035em;font-size:.75rem;font-weight:600}.menu-button{border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-surface);width:2.75rem;height:2.75rem;color:var(--color-ink);cursor:pointer;place-items:center;padding:0;display:grid}.menu-button svg{width:1.4rem;height:1.4rem}.primary-navigation{width:100%;padding:var(--space-4) 1rem var(--space-5);border-bottom:1px solid var(--color-line);background:var(--color-bg);box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity var(--transition), transform var(--transition), visibility var(--transition);visibility:hidden;position:absolute;top:100%;left:0;transform:translateY(-.75rem)}.primary-navigation--open{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}.primary-navigation ul,.social-links,.technology-list,.project-grid,.check-list{list-style:none}.primary-navigation ul{gap:var(--space-2);display:grid}.primary-navigation__link{min-height:3rem;padding-inline:var(--space-3);border-radius:var(--radius-sm);color:var(--color-ink-soft);transition:background var(--transition), color var(--transition);align-items:center;font-weight:700;text-decoration:none;display:flex}.primary-navigation__link:hover,.primary-navigation__link--active{background:var(--color-accent-soft);color:var(--color-accent-strong)}.hero{background:radial-gradient(circle at 80% 20%, #166a7780, transparent 30rem), linear-gradient(135deg, #071f27 0%, var(--color-dark) 52%, #104954 100%);min-height:calc(100svh - 4.75rem);color:var(--color-light);isolation:isolate;place-items:center;display:grid;position:relative;overflow:hidden}.hero:after{z-index:-1;content:"";border:1px solid #8fdae02e;border-radius:50%;width:30rem;height:30rem;position:absolute;bottom:-14rem;right:-10rem;box-shadow:0 0 0 4rem #8fdae00d,0 0 0 9rem #8fdae008}.hero__content{gap:var(--space-7);padding-block:var(--space-8);display:grid}.hero__copy{gap:var(--space-5);max-width:50rem;display:grid}.hero__copy h1{color:#fff;max-width:20ch;font-size:clamp(2.5rem,7vw,4rem)}.hero__description{color:#d2e2e4;max-width:43rem;font-size:clamp(1.1rem,2vw,1.35rem)}.hero__actions,.inline-actions,.project-card__actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);text-align:center;min-height:3rem;transition:background var(--transition), border-color var(--transition), color var(--transition), transform var(--transition);border:1px solid #0000;padding:.7rem 1.1rem;font-weight:800;line-height:1.2;text-decoration:none;display:inline-flex}button.button{cursor:pointer}.button:hover{transform:translateY(-.125rem)}.button--primary{background:var(--color-accent);color:#fff}.button--primary:hover{background:var(--color-accent-strong)}.button--secondary{color:var(--color-dark);background:#e9f7f7;border-color:#b7e2e5}.button--ghost{color:inherit;background:0 0;border-color:currentColor}.hero__panel{padding:var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);background:#041a209e;border:1px solid #8fdae03d;align-self:end}.hero__panel>p{align-items:center;gap:var(--space-3);color:#d8eaec;font-size:var(--text-sm);font-weight:700;display:flex}.hero__availability-dot{background:#56d694;border-radius:50%;flex:none;width:.65rem;height:.65rem;box-shadow:0 0 0 .3rem #56d69424}.hero__panel dl{gap:var(--space-4);margin-top:var(--space-5);display:grid}.hero__panel dl>div{gap:var(--space-1);padding-top:var(--space-4);border-top:1px solid #8fdae029;display:grid}.hero__panel dt{color:#8fdae0;font-size:var(--text-sm);font-weight:750}.hero__panel dd{color:#fff;font-weight:650}.technology-strip{border-bottom:1px solid var(--color-line);background:var(--color-surface)}.technology-strip .container{gap:var(--space-4);padding-block:var(--space-5);display:grid}.technology-strip .container>p{color:var(--color-ink-soft);font-size:var(--text-sm);font-weight:750}.technology-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.technology-list li{border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink-soft);font-size:var(--text-sm);border-radius:999px;padding:.35rem .7rem;font-weight:700}.section{padding-block:var(--space-8);scroll-margin-top:5rem}.section--muted{border-block:1px solid var(--color-line);background:var(--color-surface-muted)}.section--dark{background:linear-gradient(145deg, var(--color-dark), var(--color-dark-soft));color:var(--color-light)}.section--dark .section-heading__description,.section--dark p{color:#cfdee0}.section--dark .technology-list li{color:#eef8f8;background:#ffffff12;border-color:#8fdae040}.section-heading{gap:var(--space-3);max-width:48rem;margin-bottom:var(--space-7);display:grid}.section-heading--center{text-align:center;margin-inline:auto}.section-heading__description{color:var(--color-ink-soft);font-size:var(--text-lg)}.service-grid{gap:var(--space-4);display:grid}.service-card{align-content:start;gap:var(--space-3);min-height:13rem;padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:border-color var(--transition), transform var(--transition);display:grid}.service-card:hover{border-color:var(--color-accent);transform:translateY(-.2rem)}.service-card__icon{border-radius:var(--radius-sm);background:var(--color-accent-soft);width:2.75rem;height:2.75rem;color:var(--color-accent-strong);place-items:center;display:grid}.service-card__icon svg{width:1.3rem;height:1.3rem}.service-card p,.project-card__content>p,.timeline__item p,.education-card p,.case-content-grid p,.case-intro-grid p{color:var(--color-ink-soft)}.project-grid{gap:var(--space-5);display:grid}.project-card>article{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);height:100%;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition), transform var(--transition);overflow:hidden}.project-card>article:hover{box-shadow:var(--shadow-md);transform:translateY(-.2rem)}.project-card__visual,.case-visual{aspect-ratio:16/9;border-radius:0;width:100%}.project-card__content{gap:var(--space-4);padding:var(--space-5);display:grid}.project-card__content>div:first-child{gap:var(--space-2);display:grid}.project-card__type{color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:800}.image-shell{background:var(--color-surface-muted);display:block;position:relative;overflow:hidden}.image-shell__image{object-fit:cover;opacity:1;width:100%;height:100%;transition:opacity var(--transition)}.image-shell__image--loading{opacity:0}.image-loading{color:var(--color-ink-soft);font-size:var(--text-sm);place-items:center;display:grid;position:absolute;inset:0}.image-fallback{align-content:center;justify-items:center;gap:var(--space-2);padding:var(--space-5);background:linear-gradient(135deg, #ffffff12, transparent), var(--color-dark);color:var(--color-light);text-align:center;display:grid}.image-fallback>span{color:#8fdae0;letter-spacing:-.08em;border:1px solid #8fdae080;border-radius:50%;place-items:center;width:3.5rem;height:3.5rem;font-weight:850;display:grid}.image-fallback small{color:#cfe1e3;font-size:var(--text-sm);font-weight:650}.text-link,.external-link{align-items:center;gap:var(--space-2);min-height:2.75rem;color:var(--color-accent-strong);text-underline-offset:.25rem;font-weight:800;text-decoration-thickness:.12rem;display:inline-flex}.external-link svg{flex:none}.section-cta{width:fit-content;margin-top:var(--space-6)}.about-summary__grid,.contact-cta__content{gap:var(--space-6);display:grid}.about-summary__grid h2,.contact-cta h2{max-width:18ch;margin-top:var(--space-3)}.about-summary__copy{gap:var(--space-4);display:grid}.about-summary .button{width:fit-content;margin-top:var(--space-3)}.contact-cta__content{padding:var(--space-6);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);align-items:end}.contact-cta__content>div{gap:var(--space-3);display:grid}.contact-cta__content>.external-link{border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;width:fit-content;min-height:3rem;padding:.7rem 1rem;text-decoration:none}.page-hero .container h1{color:#fff;max-width:22ch;font-size:clamp(2.5rem,7vw,4rem)}.page-hero,.case-hero{padding-block:var(--space-8);background:radial-gradient(circle at 90% 10%, #18737f59, transparent 28rem), var(--color-dark);color:var(--color-light)}.page-hero .container,.case-hero .container{gap:var(--space-4);display:grid}.page-hero p:not(.eyebrow),.case-hero__summary{color:#d2e2e4;max-width:46rem;font-size:var(--text-lg)}.profile-section__grid{align-items:start;gap:var(--space-7);display:grid}.profile-photo{aspect-ratio:1;width:min(100%,27rem);box-shadow:var(--shadow-md);border-radius:50%}.profile-photo .image-shell__image{object-fit:cover;object-position:center 22%}.profile-section__content{gap:var(--space-4);display:grid}.profile-section__content h2{max-width:40ch}.timeline{border-top:1px solid var(--color-line);display:grid}.timeline__item{gap:var(--space-4);padding-block:var(--space-6);border-bottom:1px solid var(--color-line);display:grid}.timeline__item>div:last-child{gap:var(--space-3);display:grid}.timeline__meta{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.timeline__meta p,.timeline__organization,.education-card__institution,.education-card__period{color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:800}.status-badge{width:fit-content;color:var(--color-warning);font-size:var(--text-sm);background:#fff7d8;border:1px solid #d7bf64;border-radius:999px;padding:.2rem .55rem;font-weight:750;display:inline-flex}.education-grid{gap:var(--space-4);display:grid}.education-card{align-content:start;gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.skill-groups{gap:var(--space-6);display:grid}.skill-group{gap:var(--space-4);display:grid}.workflow-list{border-top:1px solid var(--color-line);list-style:none;display:grid}.workflow-list li{align-items:start;gap:var(--space-4);padding-block:var(--space-5);border-bottom:1px solid var(--color-line);grid-template-columns:auto 1fr;display:grid}.workflow-list span{color:var(--color-accent-strong);font-weight:850}.breadcrumbs{gap:var(--space-2);color:#bdd4d7;font-size:var(--text-sm);flex-wrap:wrap;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{margin-left:var(--space-2);content:"/"}.breadcrumbs a{color:#e8f6f7}.case-hero .technology-list li{color:#eef8f8;background:#ffffff12;border-color:#8fdae040}.case-visual-section{padding-bottom:0}.case-visual{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.case-intro-grid,.case-content-grid{gap:var(--space-6);display:grid}.case-intro-grid article,.case-content-grid article{align-content:start;gap:var(--space-3);display:grid}.case-content-grid article{padding:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface)}.check-list{gap:var(--space-3);display:grid}.check-list li{padding-left:1.4rem;position:relative}.check-list li:before{background:var(--color-accent);content:"";border-radius:50%;width:.45rem;height:.45rem;position:absolute;top:.65em;left:0}.case-actions>.container>div{gap:var(--space-4);display:grid}.case-actions .external-link{color:#b7eef1}.resume-page{padding-block:var(--space-6) var(--space-8)}.resume-toolbar{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);color:var(--color-ink-soft);flex-direction:column;display:flex}.resume-document{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);width:min(100% - 2rem,60rem);box-shadow:var(--shadow-md);color:#171717;margin-inline:auto;padding:clamp(1.25rem,4vw,3.5rem);font-size:.96rem;line-height:1.42}.resume-document>section{margin-top:1.15rem}.resume-header{text-align:center;justify-items:center;gap:.35rem;display:grid}.resume-header h1{color:#1d3551;letter-spacing:.025em;text-transform:uppercase;max-width:27ch;font-size:clamp(1.8rem,5vw,2.45rem);line-height:1.05}.resume-header__role{color:#292929;font-size:clamp(1rem,2.5vw,1.28rem);font-weight:800}.resume-header address{color:#262626;justify-items:center;gap:.2rem;font-style:normal;display:grid}.resume-header__contact-line{flex-wrap:wrap;justify-content:center;gap:.2rem .45rem;display:flex}.resume-section>h2{color:#24537c;letter-spacing:.01em;text-transform:uppercase;border-bottom:1px solid #9eb5ce;margin-bottom:.42rem;padding-bottom:.12rem;font-size:1.18rem;line-height:1.15}.resume-competencies{gap:.24rem;display:grid}.resume-competencies>div,.resume-languages>div{align-items:baseline;gap:.35rem;display:flex}.resume-competencies dt,.resume-languages dt{flex:none;font-weight:800}.resume-competencies dd,.resume-languages dd{margin:0}.resume-entries{gap:.65rem;display:grid}.resume-entry{break-inside:avoid}.resume-entry header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.1rem .55rem;display:flex}.resume-entry h3{font-size:1rem;line-height:1.25}.resume-entry h3 span,.resume-entry header p{color:#4d4d4d}.resume-entry header p{flex:none;font-size:.9rem;font-weight:700}.resume-entry ul,.resume-simple-list{margin:.18rem 0 0;padding-left:1.25rem}.resume-entry li,.resume-simple-list li{padding-left:.1rem}.resume-entry__link{margin-top:.12rem}.resume-education{gap:.32rem;display:grid}.resume-languages{gap:.2rem;display:grid}.resume-document__footer{color:#666;text-align:center;margin-top:2.25rem;font-size:.82rem}.error-page{place-items:center;min-height:65svh;display:grid}.error-page__content{justify-items:start;gap:var(--space-4);padding-block:var(--space-8);display:grid}.route-loading{justify-content:center;align-items:center;gap:var(--space-3);min-height:65svh;color:var(--color-ink-soft);font-weight:700;display:flex}.route-loading__spinner{border:.2rem solid var(--color-line);border-top-color:var(--color-accent);border-radius:50%;width:1.5rem;height:1.5rem;animation:.7s linear infinite spin}.site-footer{padding-block:var(--space-7);color:#d7e6e8;background:#061b22;border-top:1px solid #8fdae033}.site-footer__content{gap:var(--space-6);display:grid}.site-footer__content>div:first-child{gap:var(--space-2);display:grid}.site-footer__title{color:#fff;font-size:var(--text-xl);font-weight:800}.social-links{gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.social-links .external-link{color:#b7eef1}.social-links .external-link>span:first-child{align-items:center;gap:var(--space-2);display:inline-flex}.site-footer__meta{gap:var(--space-1);padding-top:var(--space-5);color:#9fb9bd;font-size:var(--text-sm);border-top:1px solid #8fdae029;display:grid}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=40rem){.container{width:min(100% - 3rem, var(--container))}.service-grid,.education-grid,.project-grid,.case-content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.technology-strip .container{grid-template-columns:auto 1fr;align-items:center}.resume-toolbar{flex-direction:row;align-items:center}}@media (width>=50rem){body.navigation-open{overflow:auto}.menu-button{display:none}.primary-navigation{width:auto;box-shadow:none;opacity:1;pointer-events:auto;visibility:visible;background:0 0;border:0;padding:0;position:static;transform:none}.primary-navigation ul{gap:var(--space-1);display:flex}.primary-navigation__link{min-height:2.75rem;padding-inline:var(--space-3)}.hero__content{grid-template-columns:minmax(0,1.65fr) minmax(16rem,.75fr);align-items:center}.about-summary__grid,.contact-cta__content,.profile-section__grid,.case-intro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-cta__content>.external-link{justify-self:end}.timeline__item{gap:var(--space-7);grid-template-columns:minmax(11rem,.55fr) minmax(0,1.45fr)}.skill-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=68rem){.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-grid,.project-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.education-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{@page{size:letter;margin:11mm 14mm}:root{--color-bg:#fff;--color-surface:#fff;--color-ink:#111;--color-ink-soft:#333}body{font-size:9.5pt;line-height:1.28}.site-header,.site-footer,.resume-toolbar,.skip-link{display:none!important}.resume-page{padding:0}.resume-document{width:100%;box-shadow:none;border:0;border-radius:0;padding:0}.resume-document>section{margin-top:.5rem}.resume-header{gap:.15rem}.resume-header h1{font-size:20pt}.resume-header__role{font-size:11.5pt}.resume-section>h2{margin-bottom:.18rem;font-size:11.5pt}.resume-entries{gap:.3rem}.resume-entry h3{font-size:9.6pt}.resume-entry header p{font-size:8.8pt}.resume-entry ul,.resume-simple-list{margin-top:.05rem}.resume-section--projects{break-before:page;padding-top:0}.resume-document a{color:inherit;text-decoration:none}.resume-document__footer{margin-top:1rem;font-size:8pt}}
