/* José Moya — tipografía contemporánea, azul vivo y acentos lima. */
:root{--paper:#f8f9fc;--white:#fff;--ink:#172238;--muted:#586378;--blue:#3159db;--lime:#d8ef9e;--pale:#eff2f8;--line:#dce2ed;--display:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;--sans:'Space Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;--body:system-ui,-apple-system,'Segoe UI',sans-serif;--max:1240px;--gutter:clamp(24px,5vw,72px)}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('../fonts/spacegrotesk-ecea81d5.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}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p,figure,blockquote{margin:0}h1,h2{font-family:var(--display);font-weight:600;letter-spacing:-.055em;line-height:1.08}h2{font-size:clamp(36px,4.1vw,58px)}h1 em,h2 em{font-weight:600;font-style:normal;color:var(--blue)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;max-width:100%}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #5b87e8;outline-offset:6px}button:disabled{cursor:default}[hidden]{display:none!important}::selection{background:var(--lime);color:var(--ink)}.wrap{width:min(100% - var(--gutter)*2,var(--max));margin-inline:auto}.section{padding-block:104px}.eyebrow{font:500 12px/1.6 var(--sans);letter-spacing:.15em}.skip-link{position:fixed;top:10px;left:16px;z-index:100;background:var(--ink);color:white;padding:12px 20px;transform:translateY(-160%)}.skip-link:focus{transform:none}.text-link{display:inline-flex;align-items:center;gap:18px;font:500 14px/1.6 var(--sans);padding-block:10px;border-bottom:1px solid currentColor;width:fit-content;transition:color .2s,gap .2s}.text-link:hover{gap:25px;color:var(--blue)}.text-link>span:last-child{font-size:20px;line-height:1}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;padding:17px 23px;border-radius:999px;font:500 15px/1.4 var(--sans);transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button--dark{background:var(--ink);color:white;box-shadow:0 6px 14px #17223810}.button--dark:hover{background:var(--blue)}.button>span:last-child{font-size:21px}
/* Navigation */
.header{position:sticky;top:0;z-index:30;background:rgba(248,249,252,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.header__inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:13px;font:500 17px/1 var(--sans);white-space:nowrap}.brand__mark{font:32px/.9 var(--display);letter-spacing:-.09em;background:var(--ink);color:var(--paper);width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0 5px 4px 0}.brand__mark>span{color:#d8ef9e}.nav{display:flex;align-items:center;gap:30px;margin-left:auto;margin-right:30px}.nav a{font:400 14px/1.6 var(--sans);padding:12px 0}.nav a:hover{color:var(--blue)}.header__actions{display:flex;gap:24px;align-items:center}.languages{display:flex;align-items:center;gap:7px;font:12px/1 var(--sans);color:#626978}.languages button{padding:10px 0;border:0;background:none;font:inherit;min-height:44px}.languages button[aria-pressed=true]{color:var(--ink);font-weight:700}.header__contact{display:flex;align-items:center;gap:24px;border:1px solid var(--ink);border-radius:4px;padding:11px 16px;font:500 14px/1.6 var(--sans)}.header__contact:hover{background:var(--ink);color:var(--paper)}.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:4px;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:6px}.menu-toggle span{width:18px;height:1px;background:currentColor;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-menu{padding:12px var(--gutter) 24px;background:var(--paper);border-top:1px solid var(--line);box-shadow:0 18px 20px #1722380a;max-height:calc(100dvh - 72px);overflow:auto}.mobile-menu a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--sans)}
.languages a{display:inline-flex;align-items:center;padding:10px 0;min-height:44px;font:inherit}.languages a[aria-current=page]{color:var(--ink);font-weight:700}
/* A personal first impression */
.hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:clamp(48px,7.1vw,104px);padding-top:74px;padding-bottom:66px;align-items:center}.hero__copy>.eyebrow{display:flex;align-items:center;gap:13px;margin-bottom:26px;color:var(--blue)}.eyebrow__line{width:26px;height:1px;background:currentColor}.hero h1{font-size:clamp(56px,6.1vw,86px);line-height:1.04;letter-spacing:-.055em;margin-bottom:27px}.hero__intro{font-size:18px;line-height:1.65;max-width:540px}.hero__detail{font-size:16px;color:var(--muted);line-height:1.8;margin-top:15px;max-width:470px}.hero__actions{display:flex;align-items:center;gap:28px;margin-top:31px;flex-wrap:wrap}.hero__actions .text-link{border:0}.hero__signature{display:flex;gap:12px;align-items:center;margin-top:38px;font-size:12px;color:var(--muted)}.signature-line{width:27px;height:1px;background:var(--muted);flex-shrink:0}.hero__portrait{position:relative;align-self:center;max-width:425px;width:100%;justify-self:end;margin-bottom:22px}.portrait__image{height:428px;overflow:hidden;border-radius:3px 3px 0 0;background:#e0e0de}.portrait__image img{width:100%;height:100%;object-fit:cover;object-position:center 74%}.hero__portrait figcaption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:20px 24px;background:var(--ink);color:var(--paper);border-radius:0 0 3px 3px}.hero__portrait figcaption strong{font:500 17px/1.5 var(--sans);display:block}.hero__portrait figcaption div>span{font-size:12px;color:#c3ccdb;display:block;margin-top:4px}.hero__portrait figcaption>a{font-size:26px;border:1px solid #657189;border-radius:50%;width:44px;height:44px;text-align:center;line-height:40px;flex-shrink:0}.hero__portrait figcaption>a:hover{background:var(--blue)}.portrait__note{position:absolute;bottom:-31px;right:0;font:italic 13px/1.5 var(--display);color:var(--muted)}.experience{border-top:1px solid var(--line);padding-block:28px 36px;display:grid;grid-template-columns:1.1fr 1fr 1.2fr 1fr;gap:26px;align-items:center}.experience>p{font-size:13px;line-height:1.5;color:var(--muted)}.experience>div{border-left:1px solid var(--line);padding-left:28px}.experience strong{display:block;font:500 18px/1.6 var(--sans)}.experience div>span{display:block;font-size:12px;color:var(--muted);margin-top:1px}
/* Capabilities */
.approach{background:var(--ink);color:var(--paper)}.section-heading>.eyebrow{margin-bottom:28px;color:var(--blue)}.section-heading>div{display:flex;align-items:flex-end;justify-content:space-between;gap:64px}.section-heading>div>p{max-width:355px;font-size:16px;color:var(--muted);padding-bottom:4px}.section-heading--light>.eyebrow{color:#d8ef9e}.section-heading--light h2 em{color:#d8ef9e}.section-heading--light>div>p{color:#c6ceda}.capabilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:55px;border-top:1px solid #566177}.capability{position:relative;padding:36px 30px 0 0;display:flex;flex-direction:column}.capability+.capability{border-left:1px solid #566177;padding-left:32px}.capability:last-child{padding-right:0}.capability__number{color:#aebbd3;font:500 24px/1 var(--display);margin-bottom:36px}.capability>.eyebrow{color:#d8ef9e;font-size:12px;letter-spacing:.1em}.capability h3{font:500 27px/1.2 var(--display);letter-spacing:-.025em;margin-top:14px;min-height:70px}.capability>p:not(.eyebrow){font-size:16px;line-height:1.75;color:#cbd2df;margin-top:20px}.capability ul{list-style:none;margin:22px 0 30px;padding:0;font-size:14px;color:#d5dcea}.capability li{position:relative;padding-left:15px;margin:10px 0}.capability li::before{content:'—';position:absolute;left:0;color:#96b2ea}.capability .text-link{margin-top:auto;border-bottom-color:#718098;font-size:14px}.capability .text-link:hover{color:#d8ef9e}
/* Training */
.formation{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}.formation__copy>.eyebrow{color:var(--blue);margin-bottom:25px}.formation__copy>p:not(.eyebrow){color:var(--muted);margin-top:26px;max-width:435px}.formation__copy .text-link{margin-top:25px}.learning{padding-top:8px}.learning__item{display:flex;gap:23px;padding:25px 0;border-top:1px solid var(--line)}.learning__item>span{font:13px/1.6 var(--sans);color:var(--blue);padding-top:4px}.learning__item h3{font:500 21px/1.4 var(--sans);letter-spacing:-.035em}.learning__item p{font-size:16px;line-height:1.7;color:var(--muted);margin-top:7px}.learning__note{background:#eef2ff;border-left:2px solid var(--blue);margin-top:18px;padding:20px 24px;font-size:14px;color:#506078}.learning__note strong{color:var(--ink);font-weight:500}
/* Selected work */
.projects{background:#eff2f8}.project-list{margin-top:54px;border-top:1px solid #b9c2cf}.project{display:grid;grid-template-columns:1fr 1.52fr auto;gap:40px;padding-block:34px;border-bottom:1px solid #b9c2cf;align-items:start}.project__index{font:12px/1.4 var(--sans);color:#596a84}.project__identity h3{font:600 36px/1.2 var(--display);letter-spacing:-.03em;margin-top:12px}.project__category{display:block;font-size:13px;color:var(--muted);margin-top:8px}.project__body h4{font:500 18px/1.5 var(--sans);letter-spacing:-.025em}.project__body>p{font-size:16px;color:var(--muted);margin-top:10px}.project__type{font:12px/1.5 var(--sans);letter-spacing:.025em;border:1px solid #bcc7d6;border-radius:20px;padding:5px 10px;white-space:nowrap;margin-top:4px;color:#465a77}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.project summary{display:flex;gap:20px;align-items:center;width:fit-content;margin-top:17px;padding:10px 0;font:500 14px/1.5 var(--sans);min-height:44px}.details-icon{display:block;width:12px;height:12px;position:relative;flex-shrink:0}.details-icon::before,.details-icon::after{content:'';position:absolute;background:currentColor;left:0;top:5px;width:12px;height:1px}.details-icon::after{transform:rotate(90deg);transition:transform .2s}details[open]>summary .details-icon::after{transform:rotate(0)}.project__detail{padding-top:15px;font-size:16px;color:var(--muted)}.tech{margin-top:16px;font:12px/1.7 var(--sans);color:#495b78}.workshop{margin-top:30px;border:1px solid #c6cfdb;border-radius:4px;padding:0 27px}.workshop>summary{display:flex;align-items:center;gap:20px;padding:24px 0}.workshop>summary>span:first-child{flex:1}.workshop .eyebrow{font-size:12px;color:#536581;display:block;margin-bottom:5px}.workshop strong{font:500 18px/1.5 var(--sans)}.workshop__more{font-size:14px}.workshop__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-top:1px solid #c6cfdb;padding:25px 0 30px}.workshop__grid h3{font:500 25px/1.4 var(--display);margin-bottom:10px}.workshop__grid p{font-size:16px;color:var(--muted)}
/* Method & background */
.method__heading{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:40px;align-items:start}.method__heading>.eyebrow{color:var(--blue);padding-top:8px}.method__heading h2{font-size:clamp(36px,3.7vw,50px)}.method__heading>p:last-child{font-size:16px;color:var(--muted);padding-top:5px}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:51px 0 0;gap:32px}.steps li{border-top:1px solid #aab6c8;padding-top:24px}.step__number{font:500 18px/1.2 var(--display);color:var(--blue)}.steps h3{font:500 17px/1.5 var(--sans);margin-top:21px;letter-spacing:-.03em}.steps p{font-size:16px;color:var(--muted);margin-top:11px}.about{background:#eff2f8}.about__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:110px}.about__statement>.eyebrow{color:var(--blue);margin-bottom:25px}.about__statement h2{font-size:clamp(45px,4.4vw,62px)}.about__statement .text-link{font-size:14px;margin-top:30px}.about__body{padding-top:38px}.about__lead{font-size:21px;line-height:1.55;color:var(--ink)}.about__body>p:not(.about__lead){font-size:16px;color:#505d71;line-height:1.8;margin-top:22px}.about blockquote{font:500 26px/1.4 var(--display);letter-spacing:-.015em;color:var(--blue);border-left:2px solid var(--blue);padding-left:24px;margin-top:33px}
/* Conversation */
.contact{background:var(--blue);color:white;padding-block:83px 91px}.contact>.wrap>.eyebrow{color:#d3dffb;margin-bottom:30px}.contact__grid{display:grid;grid-template-columns:1.5fr 1fr;gap:110px;align-items:center}.contact h2{font-size:clamp(40px,4.5vw,64px);letter-spacing:-.04em}.contact h2 em{color:#c9d9ff}.contact__grid>div>p{font-size:16px;line-height:1.8;color:#e0e9ff;max-width:470px;margin-top:25px}.contact__email{display:inline-flex;align-items:center;gap:37px;font:400 clamp(22px,2.5vw,34px)/1.6 var(--sans);letter-spacing:-.04em;border-bottom:1px solid #a4bef5;margin-top:25px;padding-bottom:5px}.contact__email:hover{color:#d1e0ff}.contact__topics>p{font:500 14px/1.6 var(--sans);margin-top:0!important;margin-bottom:13px}.contact__topics>a{display:flex;gap:18px;align-items:center;justify-content:space-between;border-bottom:1px solid #8facdf;padding:18px 0;font-size:14px}.contact__topics>a:hover{color:#cadcff}.contact__topics>a>span:last-child{font-size:20px}.contact__topics>small{display:block;font-size:12px;color:#d0defb;margin-top:24px}.footer{padding-block:32px}.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:25px}.footer .brand{font-size:15px}.footer .brand__mark{width:35px;height:35px;font-size:25px}.footer__inner>span{font-size:12px;color:var(--muted)}.footer__top{font:14px/1.5 var(--sans);display:flex;align-items:center;gap:14px}.footer__top>span:last-child{font-size:19px}
/* Entry motion never hides content or delays its use. */
@media(prefers-reduced-motion:no-preference){.hero__copy{animation:arrive .65s both}.hero__portrait{animation:arrive .8s .08s both}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}
@media(min-width:1500px){.hero{padding-top:90px;padding-bottom:80px}.portrait__image{height:465px}}
@media(max-width:1100px){.nav{gap:20px;margin-right:8px}.header__actions{gap:17px}.header__inner{gap:20px}.hero{gap:48px}.hero h1{font-size:clamp(54px,6.1vw,74px)}.hero__intro{font-size:17px}.hero__actions{gap:18px}.portrait__image{height:400px}.experience{gap:18px}.experience>div{padding-left:18px}.experience strong{font-size:16px}.formation{gap:60px}.project{grid-template-columns:1fr 1.6fr;gap:35px}.project__type{grid-column:1;grid-row:2;justify-self:start;margin-top:-24px}.project__body{grid-column:2;grid-row:1 / span 2}.method__heading{grid-template-columns:.7fr 1.2fr 1fr;gap:30px}.about__grid{gap:65px}.contact__grid{gap:65px}.capability h3{font-size:26px}.capability+.capability{padding-left:24px}.capability{padding-right:24px}}
@media(max-width:900px){.nav{display:none}.header__inner{min-height:76px}.header__actions{margin-left:auto}.menu-toggle{display:flex}.hero{gap:36px;padding-top:52px;padding-bottom:54px;grid-template-columns:1.25fr 1fr}.hero h1{font-size:clamp(49px,6.4vw,58px)}.hero__copy>.eyebrow{letter-spacing:.06em;gap:9px}.hero__intro{font-size:16px}.hero__actions{gap:12px;margin-top:23px}.hero__actions .text-link{font-size:14px}.button{font-size:14px;padding:15px 18px;gap:20px}.hero__signature{margin-top:24px}.portrait__image{height:355px}.hero__portrait figcaption{padding:17px}.hero__portrait figcaption strong{font-size:16px}.portrait__note{font-size:12px}.experience{grid-template-columns:1fr 1fr 1fr}.experience>p{display:none}.experience>div:first-of-type{border:0;padding-left:0}.experience strong{font-size:15px}.section{padding-block:76px}.section-heading>div{gap:40px}.section-heading>div>p{max-width:290px}.capability h3{font-size:24px}.capability>.eyebrow{letter-spacing:.02em}.capability .text-link{gap:10px}.formation{gap:45px}.learning__item{gap:17px;padding:20px 0}.method__heading{grid-template-columns:1fr 1fr}.method__heading>.eyebrow{grid-column:1/-1}.steps{gap:25px;grid-template-columns:repeat(2,1fr)}.about__grid{gap:45px}.about__lead{font-size:19px}.contact__grid{gap:40px;grid-template-columns:1.2fr 1fr}.contact__email{gap:22px}}
@media(max-width:680px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 48px)}.header__inner{min-height:72px;gap:12px}.brand{font-size:15px;gap:9px}.brand__mark{width:37px;height:37px;font-size:27px}.header__actions{gap:15px}.header__contact{display:none}.hero{grid-template-columns:1fr;gap:35px;padding-top:43px;padding-bottom:55px}.hero__copy>.eyebrow{margin-bottom:23px;font-size:12px;letter-spacing:.035em}.hero h1{font-size:clamp(49px,11vw,72px);margin-bottom:23px}.hero__intro{font-size:17px;max-width:none}.hero__detail{max-width:none;margin-top:13px}.hero__actions{gap:20px;margin-top:25px}.hero__signature{margin-top:23px}.hero__portrait{max-width:none;margin:0;justify-self:stretch}.portrait__image{height:350px}.portrait__image img{object-position:center 68%}.hero__portrait figcaption{padding:17px 21px}.hero__portrait figcaption strong{font-size:17px}.portrait__note{bottom:-29px}.experience{grid-template-columns:1fr;gap:0;padding-block:8px 24px}.experience>div,.experience>div:first-of-type{padding:15px 0;border:0;display:flex;align-items:baseline;justify-content:space-between;gap:18px}.experience>div+div{border-top:1px solid var(--line)}.experience strong{font-size:15px;flex-shrink:0}.experience div>span{font-size:12px;text-align:right;max-width:170px}.section{padding-block:64px}h2{font-size:40px}.section-heading>.eyebrow{margin-bottom:23px}.section-heading>div{display:block}.section-heading>div>p{margin-top:22px;max-width:none}.capabilities{grid-template-columns:1fr;margin-top:34px}.capability,.capability+.capability{border-left:0;padding:31px 0 33px;border-bottom:1px solid #566177;display:block}.capability:last-child{border-bottom:0;padding-bottom:0}.capability__number{float:right;font-size:28px;margin:0}.capability>.eyebrow{padding-top:7px}.capability h3{font-size:32px;min-height:auto;margin-top:19px}.capability>p:not(.eyebrow){margin-top:17px}.capability ul{margin:20px 0 15px}.formation{grid-template-columns:1fr;gap:32px}.learning__item{padding:23px 0}.project-list{margin-top:32px}.project{grid-template-columns:1fr;gap:20px;padding-block:27px}.project__identity{grid-column:1}.project__identity h3{font-size:36px}.project__type{grid-column:1;grid-row:2;margin:0;font-size:12px;justify-self:start}.project__body{grid-column:1;grid-row:3}.project__body h4{font-size:18px}.workshop{padding-inline:20px;margin-top:24px}.workshop>summary{gap:20px;padding-block:21px}.workshop strong{font-size:17px}.workshop__more{display:none}.workshop__grid{grid-template-columns:1fr;gap:22px}.workshop__grid h3{font-size:25px;margin-bottom:5px}.method__heading{grid-template-columns:1fr;gap:21px}.method__heading h2{font-size:40px}.steps{gap:29px 22px;margin-top:34px}.steps h3{font-size:17px;line-height:1.4}.about__grid{grid-template-columns:1fr;gap:20px}.about__statement h2{font-size:49px}.about__statement .text-link{margin-top:22px}.about__body{padding-top:8px}.about__lead{font-size:21px}.about blockquote{font-size:27px}.contact__grid{grid-template-columns:1fr;gap:39px}.contact h2{font-size:43px}.contact>.wrap>.eyebrow{font-size:12px;letter-spacing:.04em;margin-bottom:25px}.contact__email{font-size:27px;gap:25px;margin-top:24px}.footer{padding-block:27px}.footer__inner{flex-wrap:wrap;gap:23px}.footer__inner>.brand{flex:1}.footer__inner>span{order:3;flex-basis:100%;padding-top:19px;border-top:1px solid var(--line)}}
@media(max-width:360px){.wrap{width:calc(100% - 36px)}.header__actions{gap:10px}.hero h1{font-size:46px}.hero__actions{gap:10px}.hero__actions .button{padding:14px;gap:13px}.portrait__image{height:310px}.steps{grid-template-columns:1fr}.contact__email{font-size:24px}.contact h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* Contact form — a readable writing surface within the blue contact section. */
.contact__grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(40px,6vw,85px);align-items:start}
.contact__intro{min-width:0;padding-top:8px}
.contact__intro .contact__email{font-size:clamp(20px,2.05vw,28px);gap:18px;max-width:100%}
.contact__email>span:first-child{min-width:0;overflow-wrap:anywhere}
.contact__email>span:last-child{flex-shrink:0}
.contact__intro>p.contact__alternative{font-size:14px;max-width:350px;color:#d4e1ff}
.contact-form{background:var(--paper);color:var(--ink);border:1px solid #ffffff30;border-radius:6px;padding:30px;min-width:0;position:relative}
.contact-form h3{font:500 27px/1.2 var(--display);letter-spacing:-.025em}
.contact-form__intro{font-size:14px;color:var(--muted);margin-top:10px;margin-bottom:25px}
.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.form-field{margin-bottom:18px;min-width:0}
.form-field label{display:block;font:500 14px/1.5 var(--sans);margin-bottom:7px}
.form-field input,.form-field select,.form-field textarea{display:block;min-width:0;width:100%;border:1px solid #aeb8c7;border-radius:3px;background:#fff;color:var(--ink);padding:11px 12px;font:16px/1.5 var(--body);box-shadow:none}
.form-field input,.form-field select{min-height:48px}
.form-field textarea{resize:vertical;min-height:130px}
.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-color:var(--blue)}
.form-field small{display:block;font-size:12px;line-height:1.6;color:var(--muted);margin-top:7px}
.contact-form__privacy{font-size:12px;line-height:1.65;color:var(--muted);margin-top:2px;margin-bottom:20px}
.contact-form__submit{width:100%;min-height:52px}
.contact-form__submit:disabled{opacity:.7;transform:none;cursor:wait}
.form-status{font-size:14px;line-height:1.6;margin-top:16px;overflow-wrap:anywhere}
.form-status:empty{margin-top:0;min-height:0}
.form-status[data-state=success]{color:#1d6449}
.form-status[data-state=error]{color:#9e2a28}
.form-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.contact-page{min-height:100vh;padding:50px 24px;background:var(--pale)}
.contact-page__inner{width:min(100%,620px);margin:0 auto}
.contact-page .brand{margin-bottom:30px}
.contact-page h1{font-size:44px;margin-bottom:16px}
.contact-page .contact-form{border-color:var(--line);margin-top:25px}
.contact-page__back{margin-top:24px;font-size:15px;display:block;color:var(--blue)}
.contact-page__status{padding:18px;background:white;border-left:3px solid var(--blue);margin-block:24px}
@media(max-width:1000px){.form-row{grid-template-columns:1fr;gap:0}.contact-form{padding:25px}.contact__grid{gap:35px}.contact h2{font-size:clamp(37px,4.8vw,50px)}}
@media(max-width:680px){.contact__grid{grid-template-columns:1fr;gap:35px}.contact__intro .contact__email{font-size:clamp(20px,5.8vw,29px)}.contact-form{padding:24px 20px}.contact-form h3{font-size:28px}.contact h2{font-size:43px}}
@media(max-width:360px){.contact h2{font-size:38px}.contact-form{padding:22px 16px}.contact-page{padding:32px 18px}.contact-page h1{font-size:38px}}

/* Contemporary visual rhythm: rounded surfaces, clear hierarchy, restrained colour. */
.header { border-bottom-color: #e5e9f2; }
.header__inner { min-height: 84px; }
.brand { font-weight: 600; letter-spacing: -.035em; }
.brand__mark { font-family: var(--sans); font-size: 26px; font-weight: 600; letter-spacing: -.08em; border-radius: 15px; padding: 0 4px 3px 0; }
.nav { gap: 12px; margin-right: 22px; }
.nav a { padding: 9px 13px; border-radius: 999px; transition: background .2s, color .2s; }
.nav a:hover { background: #eaf0ff; }
.header__contact { border-radius: 999px; border-color: transparent; background: var(--ink); color: white; gap: 20px; }
.header__contact:hover { background: var(--blue); color: white; }
.languages { gap: 5px; }
.languages button, .languages a { min-width: 28px; text-align: center; }
.menu-toggle { border-radius: 12px; }
.mobile-menu { border-radius: 0 0 22px 22px; }

.hero { gap: clamp(45px, 6.5vw, 92px); padding-top: 76px; padding-bottom: 68px; }
.hero h1 { font-size: clamp(52px, 5.8vw, 80px); line-height: 1.04; letter-spacing: -.065em; font-weight: 600; }
.hero h1 em { background: linear-gradient(transparent 88%, #d8ef9e 88%, #d8ef9e 98%, transparent 98%); }
.hero__copy > .eyebrow { width: fit-content; max-width: 100%; padding: 8px 13px; background: #ebf0fe; border: 1px solid #dbe4ff; border-radius: 999px; font-size: 11px; letter-spacing: .055em; margin-bottom: 25px; }
.eyebrow__line { width: 16px; flex-shrink: 0; }
.hero__intro { font-size: 18px; line-height: 1.75; }
.hero__detail { max-width: 475px; }
.hero__signature { margin-top: 30px; }
.signature-line { background: var(--blue); }
.hero__portrait { isolation: isolate; padding: 10px; background: white; border: 1px solid #e6eaf2; border-radius: 28px; box-shadow: 0 22px 70px #25365312; margin-bottom: 0; }
.hero__portrait::before { content: ''; position: absolute; z-index: -1; inset: 16px -13px 20px 15px; border-radius: 28px; background: var(--lime); transform: rotate(4deg); }
.portrait__image { height: 428px; border-radius: 20px; }
.hero__portrait figcaption { padding: 19px 13px 11px; background: white; color: var(--ink); border-radius: 0 0 20px 20px; }
.hero__portrait figcaption strong { font-weight: 600; }
.hero__portrait figcaption div > span { color: var(--muted); }
.hero__portrait figcaption > a { background: var(--blue); color: white; border: 0; line-height: 42px; }
.hero__portrait figcaption > a:hover { background: var(--ink); }
.portrait__note { top: 24px; bottom: auto; left: -24px; right: auto; max-width: calc(100% - 8px); padding: 10px 16px; background: var(--lime); color: var(--ink); border-radius: 999px; font: 500 12px/1.5 var(--sans); box-shadow: 0 4px 16px #17223808; }
.experience { background: white; border: 1px solid var(--line); border-radius: 20px; padding: 24px 28px; margin-bottom: 68px; gap: 22px; }
.experience strong { font-size: 18px; font-weight: 600; letter-spacing: -.035em; }
.experience > div { padding-left: 24px; }

.section-heading h2 { font-size: clamp(36px, 3.8vw, 53px); }
.section-heading > .eyebrow, .formation__copy > .eyebrow, .method__heading > .eyebrow, .about__statement > .eyebrow { letter-spacing: .1em; }
.approach { padding-block: 88px; }
.section-heading--light > .eyebrow { color: var(--lime); }
.capabilities { gap: 18px; border-top: 0; margin-top: 44px; }
.capability, .capability + .capability, .capability:last-child { background: #212e44; border: 1px solid #35435a; border-radius: 20px; padding: 28px 25px; }
.capability__number { width: 37px; height: 37px; display: flex; align-items: center; justify-content: center; border: 1px solid #586985; border-radius: 11px; color: var(--lime); font: 500 13px/1 var(--sans); margin-bottom: 28px; }
.capability > .eyebrow { font-size: 11px; letter-spacing: .05em; }
.capability h3 { font-size: 26px; font-weight: 500; letter-spacing: -.045em; line-height: 1.2; min-height: 64px; }
.capability > p:not(.eyebrow) { color: #d0d9e8; }
.capability ul { color: #d0d9e8; font-size: 13px; }
.capability li::before { color: var(--lime); }
.capability .text-link { font-size: 13px; gap: 12px; border-bottom-color: #73819a; }
.capability .text-link:hover { color: var(--lime); }

.formation { gap: 85px; }
.formation h2 { font-size: clamp(36px, 3.8vw, 52px); }
.learning { padding-top: 0; }
.learning__item { border: 1px solid #e1e6f0; background: white; border-radius: 17px; padding: 23px; gap: 18px; }
.learning__item + .learning__item { margin-top: 12px; }
.learning__item > span { display: flex; align-items: center; justify-content: center; padding: 0; width: 32px; height: 32px; flex-shrink: 0; background: #edf1fe; border-radius: 9px; color: var(--blue); font-size: 12px; }
.learning__item h3 { font-size: 20px; font-weight: 600; }
.learning__note { background: #e9f0db; color: #4c5b3d; border: 0; border-radius: 14px; padding: 19px 23px; }
.learning__note strong { color: #263923; }

.projects { background: white; }
.project-list { border-top-color: var(--line); }
.project { border-bottom-color: var(--line); padding-block: 36px; }
.project__index { display: inline-flex; padding: 6px 9px; background: #edf1fe; border-radius: 8px; color: var(--blue); }
.project__identity h3 { font-size: 35px; font-weight: 600; letter-spacing: -.055em; margin-top: 16px; }
.project__category { font-size: 13px; }
.project__type { background: #f1f4f9; border-color: #e1e6ef; font-size: 11px; padding: 6px 11px; }
.project__body h4 { font-weight: 600; }
.project summary:hover { color: var(--blue); }
.project__detail { background: #f5f7fc; border-radius: 13px; padding: 18px; margin-top: 10px; }
.workshop { background: var(--paper); border-color: var(--line); border-radius: 18px; }
.workshop .eyebrow { font-size: 11px; letter-spacing: .05em; }
.workshop__grid { border-top-color: var(--line); }

.method__heading h2 { font-size: clamp(34px, 3.6vw, 48px); }
.steps { gap: 24px; }
.steps li { border-top: 1px solid #cbd4e6; }
.step__number { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; font: 500 13px/1 var(--sans); border-radius: 11px; background: var(--ink); color: var(--lime); }
.steps h3 { font-weight: 600; }
.about { background: #eff2f8; }
.about__statement h2 { font-size: clamp(42px, 4.2vw, 58px); font-weight: 600; letter-spacing: -.055em; }
.about__lead { font: 500 22px/1.5 var(--sans); letter-spacing: -.03em; }
.about blockquote { background: white; border: 1px solid #dde4f0; border-left: 3px solid var(--blue); border-radius: 0 17px 17px 0; padding: 23px; font-style: normal; font-size: 25px; line-height: 1.4; }

.contact { background: var(--ink); }
.contact > .wrap > .eyebrow { color: var(--lime); }
.contact h2 { font-size: clamp(38px, 4.1vw, 58px); font-weight: 600; letter-spacing: -.055em; }
.contact h2 em { color: var(--lime); }
.contact__grid > div > p { color: #d0d9e8; }
.contact__intro > p.contact__alternative { color: #c0ccdd; }
.contact__email { border-bottom-color: #6e809c; }
.contact__email:hover { color: var(--lime); }
.contact-form { padding: 31px; border-radius: 24px; background: white; border-color: #e1e7f0; box-shadow: 0 20px 55px #090e181a; }
.contact-form h3 { font-weight: 600; font-size: 27px; letter-spacing: -.045em; }
.form-field input, .form-field select, .form-field textarea { background: #f7f9fc; border: 1px solid #7f8faa; border-radius: 10px; padding: 12px 13px; }
.form-field input:focus-visible, .form-field select:focus-visible, .form-field textarea:focus-visible { background: white; }
.contact-form__submit { background: var(--blue); }
.contact-form__submit:hover { background: #2448c0; }
.contact-page .contact-form { box-shadow: 0 12px 50px #17223808; }
.contact-page__status { border-radius: 0 12px 12px 0; }
.footer .brand__mark { border-radius: 12px; font-size: 21px; }
.footer__top:hover { color: var(--blue); }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .capability { transition: border-color .25s; }
  .capability:hover { border-color: #7a8bab; }
  .hero__portrait figcaption > a { transition: background .2s, transform .2s; }
  .hero__portrait figcaption > a:hover { transform: rotate(5deg); }
}
@media (min-width: 1500px) {
  .hero { padding-top: 90px; padding-bottom: 82px; }
  .portrait__image { height: 456px; }
}
@media (max-width: 1100px) {
  .nav { gap: 1px; margin-right: 8px; }
  .nav a { padding-inline: 10px; }
  .hero { gap: 48px; }
  .hero h1 { font-size: clamp(48px, 5.7vw, 66px); }
  .portrait__image { height: 390px; }
  .experience { gap: 18px; padding-inline: 23px; }
  .experience strong { font-size: 16px; }
  .capability, .capability + .capability, .capability:last-child { padding: 25px 20px; }
  .capability h3 { font-size: 24px; }
  .capabilities { gap: 13px; }
  .formation { gap: 50px; }
  .contact-form { padding: 25px; }
}
@media (max-width: 900px) {
  .header__inner { min-height: 76px; }
  .hero { gap: 35px; padding-top: 53px; padding-bottom: 48px; }
  .hero h1 { font-size: clamp(44px, 6vw, 54px); }
  .hero__copy > .eyebrow { font-size: 10px; letter-spacing: .02em; padding-inline: 10px; gap: 7px; }
  .hero__intro { font-size: 16px; }
  .portrait__image { height: 350px; }
  .portrait__note { font-size: 11px; padding: 9px 12px; left: -14px; }
  .hero__portrait figcaption { padding-inline: 7px; }
  .hero__portrait figcaption div > span { font-size: 12px; }
  .experience { margin-bottom: 52px; }
  .experience > div { padding-left: 18px; }
  .experience strong { font-size: 15px; }
  .approach { padding-block: 70px; }
  .capabilities { grid-template-columns: 1fr; gap: 17px; }
  .capability, .capability + .capability, .capability:last-child { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; padding: 28px; }
  .capability__number { grid-column: 1; grid-row: 1; margin-bottom: 20px; }
  .capability > .eyebrow { grid-column: 1; grid-row: 2; }
  .capability h3 { grid-column: 1; grid-row: 3 / span 2; font-size: 28px; margin-top: 14px; }
  .capability > p:not(.eyebrow) { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; }
  .capability ul { grid-column: 2; grid-row: 4; margin: 15px 0 18px; }
  .capability .text-link { grid-column: 2; grid-row: 5; }
  .formation { gap: 35px; }
  .learning__item { padding: 20px; gap: 14px; }
}
@media (max-width: 680px) {
  .header__inner { min-height: 72px; }
  .brand__mark { font-size: 23px; border-radius: 12px; }
  .hero { gap: 39px; padding-top: 37px; padding-bottom: 36px; }
  .hero h1 { font-size: clamp(43px, 10.9vw, 66px); letter-spacing: -.06em; line-height: 1.08; }
  .hero__copy > .eyebrow { font-size: 10px; padding: 8px 11px; letter-spacing: .025em; }
  .hero__intro { font-size: 17px; }
  .hero__portrait { border-radius: 24px; }
  .hero__portrait::before { inset: 15px -7px 20px 10px; transform: rotate(2.5deg); border-radius: 24px; }
  .portrait__image { height: 355px; border-radius: 17px; }
  .portrait__note { left: -8px; top: 22px; font-size: 11px; max-width: calc(100% - 3px); }
  .hero__portrait figcaption { padding: 17px 11px 9px; }
  .experience { margin-bottom: 42px; border-radius: 17px; padding: 6px 20px; }
  .experience > div, .experience > div:first-of-type { padding: 16px 0; }
  .experience strong { font-size: 15px; }
  .experience div > span { max-width: 145px; font-size: 12px; }
  .section-heading h2, .formation h2, .method__heading h2 { font-size: clamp(33px, 8.4vw, 43px); line-height: 1.13; }
  .approach { padding-block: 61px; }
  .capabilities { gap: 16px; margin-top: 32px; }
  .capability, .capability + .capability, .capability:last-child { display: flex; flex-direction: column; padding: 25px 23px; border: 1px solid #35435a; border-radius: 18px; }
  .capability__number { float: none; margin-bottom: 24px; }
  .capability > .eyebrow { font-size: 11px; padding-top: 0; }
  .capability h3 { font-size: 28px; min-height: 0; }
  .capability > p:not(.eyebrow) { margin-top: 17px; }
  .capability ul { font-size: 13px; margin: 20px 0 16px; }
  .capability .text-link { margin-top: auto; font-size: 13px; }
  .formation { gap: 33px; }
  .learning__item { padding: 22px 20px; }
  .project { padding-block: 30px; gap: 18px; }
  .project__identity h3 { font-size: 33px; }
  .workshop { border-radius: 16px; }
  .workshop .eyebrow { font-size: 10px; }
  .steps { gap: 29px 23px; }
  .about__statement h2 { font-size: 45px; }
  .about__lead { font-size: 21px; }
  .about blockquote { font-size: 23px; padding: 21px; }
  .contact h2 { font-size: clamp(36px, 9vw, 46px); }
  .contact-form { border-radius: 20px; padding: 25px 21px; }
  .contact-form h3 { font-size: 26px; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 40px; }
  .portrait__image { height: 315px; }
  .experience { padding-inline: 15px; }
  .experience strong { font-size: 14px; }
  .experience div > span { max-width: 128px; }
  .contact-form { padding: 22px 17px; }
  .about__statement h2 { font-size: 42px; }
}


/* Professional experience: current responsibilities and future work are distinct. */
.professional__current {
  display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.5fr); gap: 62px;
  margin-top: 42px; padding: 38px; background: var(--ink); color: white; border-radius: 22px;
}
.professional__status {
  display: inline-flex; align-items: center; width: fit-content; max-width: 100%;
  padding: 7px 11px; border: 1px solid #607052; border-radius: 999px;
  color: var(--lime); background: #263c35; font: 500 11px/1.5 var(--sans); letter-spacing: .06em;
}
.professional__role h3 { font: 600 26px/1.25 var(--sans); letter-spacing: -.04em; margin-top: 24px; }
.professional__role p { font-size: 14px; color: #c6d1e2; line-height: 1.7; margin-top: 12px; max-width: 235px; }
.professional__intro { padding-left: 36px; border-left: 1px solid #4e5d75; }
.professional__intro h3 { font: 500 25px/1.3 var(--sans); letter-spacing: -.04em; }
.professional__intro p { font-size: 16px; line-height: 1.8; color: #d5deeb; margin-top: 17px; }
.professional__intro p:last-child { color: #e8f1d8; }
.professional__areas { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 20px; }
.professional__areas article { padding: 27px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); }
.professional__number { display: inline-flex; justify-content: center; align-items: center; width: 32px; height: 32px; border-radius: 9px; background: #e9efff; color: var(--blue); font: 500 12px/1 var(--sans); }
.professional__areas h3 { font: 600 20px/1.35 var(--sans); letter-spacing: -.035em; margin-top: 19px; }
.professional__areas p { font-size: 16px; line-height: 1.75; color: var(--muted); margin-top: 12px; }
.professional__next { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); gap: 65px; padding: 34px 38px; margin-top: 34px; border: 1px solid #ced9f2; border-radius: 22px; background: #eff3ff; }
.professional__status--planned { color: #2c4ead; background: #e5ecff; border-color: #b5c6ed; }
.professional__next h3 { font: 600 30px/1.15 var(--sans); letter-spacing: -.045em; margin-top: 22px; }
.professional__next p { font-size: 16px; line-height: 1.8; color: #455371; }
.professional__next p + p { margin-top: 13px; }
.professional__next .professional__next-note { font-size: 13px; padding-top: 14px; margin-top: 20px; border-top: 1px solid #cbd6ed; color: #4a5f8d; }
@media(max-width:1000px) {
  .professional__current { gap: 30px; padding: 30px; }
  .professional__intro { padding-left: 27px; }
  .professional__areas { gap: 14px; }
  .professional__areas article { padding: 23px; }
  .professional__next { gap: 35px; padding: 30px; }
}
@media(max-width:680px) {
  .professional__current { grid-template-columns: 1fr; gap: 24px; margin-top: 30px; padding: 27px 24px; border-radius: 19px; }
  .professional__role h3 { margin-top: 18px; font-size: 25px; }
  .professional__role p { max-width: none; }
  .professional__intro { border-left: 0; border-top: 1px solid #4e5d75; padding: 23px 0 0; }
  .professional__intro h3 { font-size: 24px; }
  .professional__areas { grid-template-columns: 1fr; gap: 13px; margin-top: 15px; }
  .professional__areas article { padding: 24px; }
  .professional__areas h3 { margin-top: 16px; }
  .professional__next { grid-template-columns: 1fr; gap: 24px; padding: 27px 24px; border-radius: 19px; margin-top: 27px; }
  .professional__next h3 { font-size: 30px; margin-top: 20px; }
}
