@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/af21ab248943f479-s.3gj6ciom31zjc.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/4ae66b896b591e96-s.0_kz_z3o_slvt.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../media/21ca8f3f56c22ca2-s.p.1cp9-4nby68jc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo Fallback;src:local(Arial);ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.0%;size-adjust:98.7%}.archivo_db9691e5-module__y_R7fW__className{font-family:Archivo,Archivo Fallback;font-style:normal}.archivo_db9691e5-module__y_R7fW__variable{--font-archivo:"Archivo", "Archivo Fallback"}
:root{--ink:#14213d;--ink-soft:#4a5670;--paper:#fff;--mist:#eef3fa;--sky:#a9c4e8;--sun:#ff6b1a;--sun-soft:#ffc43d;--line:#d8e1ee;--wrap:1160px;--gutter:clamp(16px, 4vw, 40px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--paper);color:var(--ink);font-family:var(--font-archivo), system-ui, sans-serif;-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:inherit}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:800;font-stretch:125%;line-height:1.05}h2{max-width:18ch;margin-bottom:1.25rem;font-size:clamp(2rem,4.5vw,3.25rem)}h3{font-size:1.2rem}p{max-width:62ch;margin:0 0 1rem}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:4px}.wrap{max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(4rem,9vw,7rem)}.kicker{margin-bottom:1.25rem}.small-head{margin:2rem 0 1rem;font-size:1rem;font-stretch:100%}.sub{color:var(--ink-soft);margin-top:-.5rem}.skip{background:var(--ink);color:#fff;z-index:100;padding:8px 14px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.btn{border:2px solid var(--sun);background:var(--sun);color:var(--ink);border-radius:999px;align-items:center;gap:.6rem;padding:.9rem 1.5rem;font-weight:800;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--sun-soft);border-color:var(--sun-soft)}.btn-ghost{border-color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--ink);border-color:var(--ink);color:#fff}.btn-small{padding:.5rem 1.1rem;font-size:.95rem}.invert{filter:brightness(0)invert()}.btn .invert{filter:brightness(0)}.nav{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#ffffffeb;position:sticky;top:0}.nav-inner{align-items:center;gap:2rem;height:68px;display:flex}.brand{align-items:center;gap:.6rem;font-size:1.1rem;font-weight:800;font-stretch:125%;text-decoration:none;display:flex}.brand-mark{background:var(--ink);width:34px;height:34px;color:var(--sun);border-radius:10px;place-items:center;font-weight:900;display:grid}.nav nav{margin-left:auto}.nav-links{gap:1.75rem;font-size:.975rem;font-weight:600;display:flex}.nav-links a{color:var(--ink-soft);text-decoration:none}.nav-links a:hover{color:var(--ink)}.hero{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);align-items:center;gap:clamp(2rem,5vw,4rem);padding-block:clamp(3rem,7vw,6rem) clamp(2rem,4vw,3rem);display:grid}.hero-text{container-type:inline-size}.hero-role,.kicker{background:var(--mist);border:1px solid var(--sky);border-radius:999px;align-items:center;gap:.55rem;margin-bottom:1.5rem;padding:.45rem 1rem .45rem .8rem;font-size:.95rem;font-weight:700;display:inline-flex}.hero-role:before,.kicker:before{content:"";background:var(--sun);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #ff6b1a2e}.hero h1{letter-spacing:-.03em;margin-bottom:1.75rem;font-size:clamp(2rem,12cqi,6.25rem);font-weight:900;line-height:.92}.lead{color:var(--ink-soft);max-width:46ch;margin-bottom:2rem;font-size:clamp(1.1rem,1.6vw,1.3rem)}.actions{flex-wrap:wrap;gap:.75rem;display:flex}.hero-photo{justify-self:end;width:100%;max-width:440px;position:relative}.hero-photo:before{content:"";background:var(--sun);border-radius:32px;position:absolute;inset:8% -6% -6% 8%}.hero-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;border-radius:32px;position:relative}@media (prefers-reduced-motion:no-preference){.hero h1,.hero-role,.lead,.actions{animation:.7s cubic-bezier(.2,.7,.2,1) both rise}.hero-role{animation-delay:50ms}.lead{animation-delay:.2s}.actions{animation-delay:.3s}.hero-photo:before{animation:.9s cubic-bezier(.2,.7,.2,1) .15s both slide}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes slide{0%{transform:translate(-6%,-8%)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.facts dl{border-top:2px solid var(--ink);grid-template-columns:repeat(4,1fr);margin:0;display:grid}.facts dl>div{padding:1.25rem 1rem 0 0}.facts dt{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:900;font-stretch:125%;line-height:1.1}.facts dd{color:var(--ink-soft);margin:.25rem 0 0}.about{grid-template-columns:1.4fr 1fr;gap:clamp(2rem,6vw,5rem);display:grid}.path{margin:2.5rem 0 0;padding:0;list-style:none}.path li:not(:last-child):after{content:"";background:var(--line);width:2px;position:absolute;top:.9rem;bottom:-.3rem;left:-1px}.path li{padding:0 0 1.5rem 1.75rem;position:relative}.path li:last-child{padding-bottom:0}.path li:before{content:"";z-index:1;background:var(--paper);border:3px solid var(--sky);border-radius:50%;width:14px;height:14px;position:absolute;top:.3rem;left:-8px}.path li:last-child:before{background:var(--sun);border-color:var(--sun)}.path strong{font-size:1.05rem;font-weight:800;line-height:1.3;display:block}.path span{color:var(--ink-soft);font-size:.95rem}.skills{align-content:start;gap:1.25rem;display:grid}.skill-panel{border-radius:24px;padding:clamp(1.5rem,3vw,2rem)}.tone-sky{background:var(--mist)}.tone-sun{background:#fff1e8}.skill-head{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.skill-head p{color:var(--ink-soft);margin:.2rem 0 0;font-size:.95rem}.skill-head h3{font-size:1.4rem}.skill-icon{background:var(--ink);width:52px;height:52px;color:var(--paper);border-radius:16px;flex:none;place-items:center;display:grid}.tone-sky .skill-icon{background:var(--ink);color:var(--sky)}.tone-sun .skill-icon{background:var(--sun);color:var(--ink)}.tags{flex-wrap:wrap;gap:.5rem;display:flex}.tags li{background:var(--paper);border-radius:999px;padding:.45rem .95rem;font-size:.95rem;font-weight:600}.tone-sky .tags li{border:1px solid var(--sky)}.tone-sun .tags li{border:1px solid #ffc3a0}.academic{background:var(--mist)}.split{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,6vw,5rem);display:grid}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chips li{background:var(--paper);border:1px solid var(--sky);border-radius:999px;padding:.4rem .9rem;font-size:.95rem;font-weight:600}.profiles{gap:.75rem;display:grid}.profile{background:var(--paper);border:2px solid #0000;border-radius:16px;grid-template-columns:44px 1fr auto;align-items:center;gap:1rem;padding:1.1rem 1.25rem;text-decoration:none;transition:border-color .15s;display:grid}.profile:hover{border-color:var(--ink)}.profile img{object-fit:contain;width:44px;height:44px}.profile strong{font-size:1.1rem;display:block}.profile span span{color:var(--ink-soft);font-size:.95rem}.freelance{background:var(--ink);color:#fff}.academic .kicker{background:var(--paper)}.freelance .kicker{color:#fff;background:#ffffff14;border-color:#ffffff40}.freelance-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:3rem;display:flex}.freelance-head h2{margin:0}.services{grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem);display:grid}.service-card{background:#ffffff0a;border:1px solid #ffffff1f;border-radius:24px;padding:clamp(1.5rem,2.5vw,2rem);transition:transform .25s cubic-bezier(.2,.7,.2,1),background-color .25s,border-color .25s,box-shadow .25s}.service-card:hover{border-color:var(--sun);background:#ffffff14;transform:translateY(-6px);box-shadow:0 20px 40px -16px #00000080}.service-icon{background:var(--sun);width:52px;height:52px;color:var(--ink);border-radius:16px;place-items:center;margin-bottom:1.5rem;transition:transform .25s;display:grid}.service-card:hover .service-icon{transform:rotate(-6deg)scale(1.06)}.services h3{margin-bottom:.75rem;font-size:clamp(1.05rem,1.4vw,1.15rem)}.services p{color:#c9d3e6;margin:0}.freelance .small-head{color:#c9d3e6;margin-top:3.5rem;font-weight:600}.tech{grid-template-columns:repeat(4,1fr);gap:.6rem;display:grid}.tech li{border:1px solid #fff3;border-radius:12px;align-items:center;gap:.55rem;padding:.6rem 1rem;font-weight:600;transition:transform .2s,background-color .2s,border-color .2s;display:flex}.tech li img{transition:transform .2s}.tech li:hover{border-color:var(--sun);background:#ff6b1a1f;transform:translateY(-3px)}.tech li:hover img{transform:scale(1.15)}@media (prefers-reduced-motion:reduce){.service-card:hover,.tech li:hover,.service-card:hover .service-icon,.tech li:hover img{transform:none}}.testimonials{background:var(--mist)}.quotes-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.5rem;display:flex}.quotes-head .sub{margin-bottom:0}.quotes{grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem);margin-top:3rem;display:grid}.quote-card{background:var(--paper);border:2px solid #0000;border-radius:24px;flex-direction:column;gap:1.25rem;margin:0;padding:clamp(1.5rem,2.5vw,2rem);transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s,border-color .25s;display:flex;box-shadow:0 1px 2px #14213d0f}.quote-card:hover{border-color:var(--sun);transform:translateY(-6px);box-shadow:0 18px 40px -12px #14213d38}.stars{color:var(--sun);gap:2px;display:flex}.quote-card blockquote{flex:1;margin:0;font-size:1.1rem;font-weight:500;line-height:1.55}.quote-card figcaption{border-top:1px solid var(--line);align-items:center;gap:.8rem;padding-top:1.25rem;font-size:.95rem;display:flex}.quote-card figcaption strong{font-weight:800;line-height:1.2;display:block}.quote-card figcaption span span{color:var(--ink-soft)}.avatar{background:var(--ink);width:44px;height:44px;color:var(--sun-soft);border-radius:50%;flex:none;place-items:center;font-size:1.1rem;font-weight:900;font-stretch:125%;display:grid}.quote-card:nth-child(3n+2) .avatar{background:var(--sun);color:var(--ink)}.quote-card:nth-child(3n) .avatar{background:var(--sky);color:var(--ink)}.quote-src{width:22px;height:22px;margin-left:auto}@media (prefers-reduced-motion:reduce){.quote-card:hover{transform:none}}.contact{background:var(--sun);padding-block:clamp(4rem,9vw,7rem)}.contact h2{max-width:none;font-size:clamp(2.5rem,7vw,5.5rem);font-weight:900}.contact p{font-size:1.15rem}.emails{flex-wrap:wrap;gap:.5rem 2rem;margin:2rem 0 2.5rem;display:flex}.emails a{text-underline-offset:5px;word-break:break-all;font-size:clamp(1.15rem,2.4vw,1.6rem);font-weight:800;font-stretch:112%;text-decoration-thickness:3px}.emails a:hover{-webkit-text-decoration-color:var(--paper);text-decoration-color:var(--paper)}.social{flex-wrap:wrap;gap:.6rem;display:flex}.social a{background:var(--paper);border-radius:999px;align-items:center;gap:.5rem;padding:.55rem 1rem;font-weight:700;text-decoration:none;display:flex}.social a:hover{background:var(--ink);color:#fff}.social a:hover img{filter:brightness(0)invert()}.social img{object-fit:contain;width:20px;height:20px}.footer{color:var(--ink-soft);justify-content:space-between;padding-block:2rem;font-size:.95rem;display:flex}.footer p{margin:0}@media (max-width:960px){.services,.quotes{grid-template-columns:1fr 1fr}}@media (max-width:860px){.hero,.about,.split{grid-template-columns:1fr}.hero-photo{justify-self:start;max-width:360px;margin-right:6%}.facts dl{grid-template-columns:1fr 1fr}.nav-links{display:none}.nav .btn-small{margin-left:auto}}@media (max-width:600px){.tech{grid-template-columns:1fr 1fr}.services,.quotes{grid-template-columns:1fr}.footer{flex-direction:column;gap:.5rem}}
