@font-face{font-family: Inter;font-style: normal;font-display: swap;font-weight: 100 900;src: url(/assets/fonts/inter-latin-ext-wght-normal.woff2) format("woff2");unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: Inter;font-style: normal;font-display: swap;font-weight: 100 900;src: url(/assets/fonts/inter-latin-wght-normal.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: Inter;font-style: normal;font-display: swap;font-weight: 100 900;src: url(/assets/fonts/inter-tr-wght-normal.woff2) format("woff2");unicode-range: U+0000-00FF,U+011E-011F,U+0130-0131,U+015E-015F,U+2000-206F,U+2190-2193,U+20AC,U+20BA,U+2122,U+2212}@font-face{font-family: "Inter Fallback";font-weight: 100 500;src: local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Arimo");size-adjust: 104.87%;ascent-override: 92.38%;descent-override: 23.03%;line-gap-override: 0%}@font-face{font-family: "Inter Fallback";font-weight: 600 900;src: local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("Arimo Bold");size-adjust: 103.16%;ascent-override: 93.91%;descent-override: 23.41%;line-gap-override: 0%}@font-face{font-family: "Inter Fallback Roboto";font-weight: 100 500;src: local("Roboto"),local("Roboto-Regular");size-adjust: 106.80%;ascent-override: 90.71%;descent-override: 22.61%;line-gap-override: 0%}@font-face{font-family: "Inter Fallback Roboto";font-weight: 600 900;src: local("Roboto Bold"),local("Roboto-Bold");size-adjust: 109.51%;ascent-override: 88.46%;descent-override: 22.05%;line-gap-override: 0%}:root{--bg: #f7f8fb;--bg-alt: #eef1f7;--surface: #ffffff;--text: #0e1525;--muted: #5a6478;--border: #dfe3ec;--accent: #3b5bfd;--accent-2: #00b3a4;--accent-ink: #ffffff;--shadow: 0 10px 30px -12px rgba(14,21,37,.18);--radius: 18px;--max: 1160px;color-scheme: light}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg: #0b1020;--bg-alt: #0f162b;--surface: #131b33;--text: #e8ecf6;--muted: #97a1b8;--border: #232d4a;--accent: #6d8bff;--accent-2: #2fd6c4;--shadow: 0 10px 40px -12px rgba(0,0,0,.6);color-scheme: dark}}:root[data-theme="dark"]{--bg: #0b1020;--bg-alt: #0f162b;--surface: #131b33;--text: #e8ecf6;--muted: #97a1b8;--border: #232d4a;--accent: #6d8bff;--accent-2: #2fd6c4;--shadow: 0 10px 40px -12px rgba(0,0,0,.6);color-scheme: dark}*,*::before,*::after{box-sizing: border-box}html{scroll-behavior: smooth;scroll-padding-top: 80px;-webkit-text-size-adjust: 100%;text-size-adjust: 100%;overflow-x: hidden}@supports (overflow: clip){html{overflow-x: clip}}body{margin: 0;background: var(--bg);color: var(--text);font: 400 17px/1.65 Inter,"Inter Fallback","Inter Fallback Roboto",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing: antialiased;-webkit-tap-highlight-color: transparent}@media (max-width: 480px){body{font-size: 16px}}h1,h2,h3,p,li,dd{overflow-wrap: break-word}img{max-width: 100%;height: auto;display: block}picture{display: contents}a{color: inherit}h1,h2,h3{line-height: 1.15;letter-spacing: -.02em;margin: 0 0 .5em}h1{font-size: clamp(2.3rem,5.5vw,4rem);font-weight: 800}h2{font-size: clamp(1.8rem,3.6vw,2.6rem);font-weight: 800}h3{font-size: 1.15rem;font-weight: 700}p{margin: 0 0 1em}.container{width: 100%;max-width: var(--max);margin: 0 auto;padding: 0 16px}@media (min-width: 700px){.container{padding: 0 32px}}.muted{color: var(--muted)}.skip{position: absolute;left: -999px}.skip:focus{left: 16px;top: 16px;z-index: 100;background: var(--surface);padding: 8px 12px;border-radius: 8px}:focus-visible{outline: 2px solid var(--accent);outline-offset: 3px;border-radius: 6px}.eyebrow{display: inline-flex;align-items: center;gap: 8px;margin-bottom: 14px;font-size: .8rem;font-weight: 600;letter-spacing: .12em;text-transform: uppercase;color: var(--accent)}.dot{width: 8px;height: 8px;border-radius: 50%;background: var(--accent-2);box-shadow: 0 0 0 4px color-mix(in srgb,var(--accent-2) 25%,transparent)}.grad{background: linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip: text;background-clip: text;color: transparent}.btn{display: inline-flex;align-items: center;justify-content: center;gap: 8px;padding: 13px 22px;border-radius: 999px;border: 1px solid transparent;background: var(--accent);color: var(--accent-ink);font: inherit;font-weight: 600;font-size: .95rem;text-decoration: none;cursor: pointer;transition: transform .2s,box-shadow .2s,background .2s}.btn:hover{transform: translateY(-2px);box-shadow: 0 10px 24px -10px var(--accent)}.btn--ghost{background: transparent;color: var(--text);border-color: var(--border)}.btn--ghost:hover{border-color: var(--accent);box-shadow: none}.btn--sm{padding: 8px 16px;font-size: .88rem}.nav{position: -webkit-sticky;position: sticky;top: 0;z-index: 50;background: var(--bg);background: color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter: saturate(160%) blur(14px);-webkit-backdrop-filter: saturate(160%) blur(14px);border-bottom: 1px solid transparent;transition: border-color .3s}.nav.is-scrolled{border-bottom-color: var(--border);box-shadow: 0 6px 20px -12px rgba(14,21,37,.25)}.nav__links a[aria-current="page"]{color: var(--text);font-weight: 600}.nav__inner{display: flex;align-items: center;justify-content: space-between;height: 68px;gap: 16px}.brand{display: flex;align-items: center;gap: 10px;text-decoration: none;font-weight: 700}.brand__mark{width: 36px;height: 36px;border-radius: 50%;object-fit: cover;flex: none}.page-home .nav .brand{visibility: hidden}.nav__links{display: flex;align-items: center;gap: 26px}.nav__links a:not(.btn){text-decoration: none;color: var(--muted);font-size: .95rem;font-weight: 500}.nav__links a:not(.btn):hover{color: var(--text)}.nav__actions{display: flex;gap: 6px}.icon-btn{display: grid;place-items: center;width: 40px;height: 40px;border-radius: 10px;border: 1px solid var(--border);background: var(--surface);color: var(--text);cursor: pointer}.i-moon{display: none}:root[data-theme="dark"] .i-sun{display: none}:root[data-theme="dark"] .i-moon{display: block}.nav__burger{display: none}@media (max-width: 1180px){.nav__burger{display: grid}.nav__links{position: absolute;top: 68px;left: 0;right: 0;flex-direction: column;align-items: stretch;gap: 0;padding: 8px 16px 20px;background: var(--bg);border-bottom: 1px solid var(--border);display: none}.nav__links.is-open{display: flex}.nav__links a:not(.btn){padding: 12px 0;border-bottom: 1px solid var(--border)}.nav__links .btn{margin-top: 14px}}.hero{position: relative;padding: 72px 0 40px;overflow: hidden}.hero__glow{position: absolute;top: -30%;right: -10%;width: 720px;max-width: 100vw;height: 720px;pointer-events: none;background: radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent),transparent 65%);filter: blur(20px)}.hero__grid{position: relative;display: grid;gap: 48px;align-items: center;grid-template-columns: 1.25fr .75fr}.lead{font-size: 1.15rem;color: var(--muted);max-width: 40ch}.hero__cta{display: flex;flex-wrap: wrap;gap: 12px;margin: 28px 0}.hero__stack{margin: -8px 0 0;font-size: .9rem;font-weight: 500;color: var(--muted);max-width: 52ch}.chips{display: flex;flex-wrap: wrap;gap: 8px;list-style: none;padding: 0;margin: 0}.chips li{padding: 6px 12px;border-radius: 999px;border: 1px solid var(--border);background: var(--surface);font-size: .85rem;color: var(--muted)}.profile{position: relative;max-width: 380px;margin-left: auto}.profile img{border-radius: 50%;aspect-ratio: 1 / 1;object-fit: cover;width: 100%;box-shadow: var(--shadow);border: 6px solid var(--surface)}.profile::before{content: "";position: absolute;top: -14px;right: -14px;bottom: -14px;left: -14px;z-index: -1;border-radius: 50%;background: conic-gradient(from 200deg,var(--accent),var(--accent-2),transparent 70%);opacity: .45}.profile__badge{position: absolute;left: -24px;bottom: 28px;padding: 14px 18px;border-radius: 14px;background: var(--surface);border: 1px solid var(--border);box-shadow: var(--shadow);display: flex;flex-direction: column;font-size: .9rem}.profile__badge span{color: var(--muted);font-size: .82rem}.stats{display: grid;grid-template-columns: repeat(4,1fr);margin: 64px 0 0;border: 1px solid var(--border);border-radius: var(--radius);background: var(--surface);overflow: hidden}.stats div{padding: 22px 24px;border-right: 1px solid var(--border)}.stats div:last-child{border-right: 0}.stats dt{color: var(--muted);font-size: .85rem}.stats dd{margin: 4px 0 0;font-size: 1.6rem;font-weight: 800;letter-spacing: -.02em}.stats div:last-child dd{font-size: 1.05rem;line-height: 1.3;padding-top: 6px}@media (max-width: 900px){.hero{padding-top: 40px}.hero__grid{grid-template-columns: 1fr}.profile{margin: 0 auto;max-width: 300px}.profile__badge{left: -8px}.stats{grid-template-columns: repeat(2,1fr)}.stats div:nth-child(2){border-right: 0}.stats div:nth-child(-n+2){border-bottom: 1px solid var(--border)}}.section{padding: 96px 0}.section--alt{background: var(--bg-alt)}.section__head{max-width: 640px;margin-bottom: 48px}.section__head--row{max-width: none;display: flex;justify-content: space-between;align-items: end;gap: 20px;flex-wrap: wrap}@media (max-width: 700px){.section{padding: 64px 0}}.cards{display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,320px),1fr));gap: 20px}.card{padding: 28px;border-radius: var(--radius);background: var(--surface);border: 1px solid var(--border);transition: transform .25s,border-color .25s,box-shadow .25s}.card:hover{transform: translateY(-4px);border-color: color-mix(in srgb,var(--accent) 50%,var(--border));box-shadow: var(--shadow)}.card p{color: var(--muted);font-size: .97rem}.card__icon{width: 46px;height: 46px;border-radius: 12px;display: grid;place-items: center;margin-bottom: 18px;background: var(--bg-alt);background: color-mix(in srgb,var(--accent) 12%,transparent);color: var(--accent)}.card__icon svg{width: 24px;height: 24px;fill: none;stroke: currentColor;stroke-width: 1.8;stroke-linecap: round;stroke-linejoin: round}.tags{display: flex;flex-wrap: wrap;gap: 6px;list-style: none;padding: 0;margin: 0}.tags li{font-size: .78rem;padding: 4px 10px;border-radius: 6px;background: var(--bg-alt);color: var(--muted)}.tags a{color: var(--accent);font-weight: 600;text-decoration: none}.tags a:hover{text-decoration: underline}.platforms{margin: 40px 0 0;padding: 22px 24px 18px;border-radius: var(--radius);background: #efe7e0;border: 1px solid var(--border)}.platforms figcaption{font-size: .78rem;font-weight: 600;letter-spacing: .1em;text-transform: uppercase;color: #6b5547;margin-bottom: 12px}.platforms img{width: 100%;height: auto}@media (max-width: 560px){.platforms{padding: 14px 12px 12px}}.ai-grid{display: grid;grid-template-columns: repeat(4,1fr);gap: 20px}.ai-card{position: relative;padding: 26px;border-radius: var(--radius);background: var(--surface);border: 1px solid var(--border);overflow: hidden}.ai-card::before{content: "";position: absolute;left: 0;right: 0;top: 0;height: 3px;background: var(--brand)}.ai-card__mark{width: 46px;height: 46px;border-radius: 12px;display: grid;place-items: center;margin-bottom: 16px;color: var(--brand);background: var(--bg-alt);background: color-mix(in srgb,var(--brand) 12%,transparent)}.ai-card__mark--logo img{width: 38px;height: 38px;border-radius: 50%;display: block}.ai-card__mark svg{width: 24px;height: 24px;fill: none;stroke: currentColor;stroke-width: 1.8;stroke-linecap: round;stroke-linejoin: round}.ai-card h3{margin-bottom: 0}.ai-card__kind{font-size: .82rem;font-weight: 600;color: var(--brand);margin-bottom: 10px}.ai-card p:last-child{color: var(--muted);font-size: .95rem;margin: 0}.topics{margin-top: 32px}.topics h3{font-size: 1rem;margin-bottom: 12px}@media (max-width: 1000px){.ai-grid{grid-template-columns: 1fr 1fr}}@media (max-width: 560px){.ai-grid{grid-template-columns: 1fr}}.social{display: flex;gap: 10px;list-style: none;padding: 0;margin: 0}.social__btn{display: grid;place-items: center;width: 40px;height: 40px;border-radius: 12px;color: var(--muted);background: var(--surface);border: 1px solid var(--border);transition: color .2s,background .2s,border-color .2s,transform .2s}.social__btn svg{width: 20px;height: 20px;fill: none;stroke: currentColor;stroke-width: 1.8;stroke-linecap: round;stroke-linejoin: round}.social__btn:hover,.social__btn:focus-visible{color: #fff;background: var(--brand);border-color: var(--brand)}.social--lg{margin-top: 24px;gap: 12px}.social--lg .social__btn{width: 52px;height: 52px;border-radius: 16px;color: var(--brand)}.social--lg .social__btn svg{width: 24px;height: 24px}.social--lg .social__btn:hover{color: #fff}.contact__direct{margin: 20px 0 0;font-weight: 600;line-height: 1.9}.contact__direct a{text-decoration: none;border-bottom: 1px solid var(--border)}.contact__direct a:hover{color: var(--accent);border-color: var(--accent)}.steps{list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: repeat(4,1fr);gap: 20px;counter-reset: s}.steps li{padding: 26px;border-radius: var(--radius);background: var(--surface);border: 1px solid var(--border)}.steps span{display: block;font-weight: 800;font-size: 2rem;margin-bottom: 10px}.steps span{background: linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip: text;background-clip: text;color: transparent}.steps p{color: var(--muted);font-size: .95rem;margin: 0}@media (max-width: 900px){.steps{grid-template-columns: 1fr 1fr}}@media (max-width: 560px){.steps{grid-template-columns: 1fr}}.two-col{display: grid;grid-template-columns: .8fr 1.2fr;gap: 64px;align-items: start}.sticky{position: sticky;top: 110px}@media (max-width: 900px){.two-col{grid-template-columns: 1fr;gap: 16px}.sticky{position: static}}.timeline{list-style: none;padding: 0;margin: 0;position: relative}.timeline::before{content: "";position: absolute;left: 7px;top: 8px;bottom: 8px;width: 2px;background: var(--border)}.timeline li{position: relative;padding: 0 0 36px 40px;display: grid;grid-template-columns: 88px 1fr;gap: 18px;align-items: start}.timeline li > div:last-child{min-width: 0}.logo-tile{width: 88px;height: 56px;padding: 6px;border-radius: 12px;background: #fff;border: 1px solid var(--border);display: flex;align-items: center;justify-content: center;overflow: hidden}.logo-tile img{width: 100%;height: 100%;object-fit: contain}.logo-tile--icon{background: var(--bg-alt);color: var(--accent)}@media (max-width: 480px){.timeline li{grid-template-columns: 1fr;gap: 10px;padding-left: 32px}.logo-tile{width: 76px;height: 48px}}.timeline li::before{content: "";position: absolute;left: 0;top: 6px;width: 16px;height: 16px;border-radius: 50%;background: var(--bg);border: 3px solid var(--accent)}.timeline li:first-child::before{background: var(--accent);box-shadow: 0 0 0 5px color-mix(in srgb,var(--accent) 22%,transparent)}.timeline time{font-size: .82rem;font-weight: 600;color: var(--accent);letter-spacing: .04em}.timeline h3{margin: 4px 0 2px}.timeline .org{font-weight: 500;margin-bottom: 8px}.timeline p:not(.org){color: var(--muted);font-size: .97rem;margin: 0}.timeline + .section__title{margin-top: 12px}.roles{list-style: none;padding: 0;margin: 18px 0 0;display: grid;gap: 14px}.roles li{padding: 0 0 0 16px;border-left: 2px solid var(--border);display: block}.roles li::before{content: none}.roles li:first-child{border-left-color: var(--accent)}.roles h4{margin: 2px 0 4px;font-size: 1rem}.tribute{display: flex;gap: 16px;align-items: center;margin-top: 18px;padding: 12px;border-radius: 14px;border: 1px solid var(--border);background: var(--surface);color: var(--text);text-decoration: none;transition: border-color .2s,box-shadow .2s}.tribute:hover{border-color: var(--accent);box-shadow: var(--shadow)}.tribute img{width: 84px;height: 150px;object-fit: cover;border-radius: 10px;flex: none}.tribute > span{display: flex;flex-direction: column;gap: 4px;min-width: 0}.tribute--doc img{height: 116px;object-position: top;border: 1px solid var(--border);background: #fff}.tribute__kind{font-size: .75rem;font-weight: 700;color: var(--accent);letter-spacing: .08em}.tribute__quote{color: var(--muted);font-size: .92rem;font-style: italic}.tribute__more{font-size: .88rem;font-weight: 600;color: var(--accent)}.exp-facts{display: flex;flex-wrap: wrap;gap: 10px;margin: 0 0 22px}.exp-facts div{padding: 10px 14px;border: 1px solid var(--border);border-radius: 12px;background: var(--surface)}.exp-facts dt{color: var(--muted);font-size: .78rem}.exp-facts dd{margin: 2px 0 0;font-size: 1.15rem;font-weight: 800}.skills{display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,320px),1fr));gap: 28px 36px}.skills h3{font-size: 1rem;margin-bottom: 12px}.chips a{color: inherit;text-decoration: none}.chips li:has(a):hover{border-color: var(--accent);color: var(--accent)}.certs{list-style: none;padding: 0;margin: 0;display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,250px),1fr));gap: 14px}.certs li[hidden]{display: none}.certs li{position: relative;display: flex;flex-direction: column;padding: 18px 20px;border-radius: 14px;cursor: pointer;color: var(--text);background: var(--surface);border: 1px solid var(--border);transition: transform .2s,border-color .2s,box-shadow .2s}.certs li:hover{transform: translateY(-3px);border-color: var(--accent);box-shadow: var(--shadow)}.certs li:has(.cert:focus-visible){outline: 2px solid var(--accent);outline-offset: 2px}.cert{display: flex;flex-direction: column;gap: 4px;padding: 0;text-align: left;cursor: pointer;font: inherit;color: inherit;background: none;border: 0}.cert:focus-visible{outline: none}.cert .year{font-size: .75rem;font-weight: 700;color: var(--accent);letter-spacing: .08em}.cert strong{font-size: .98rem;line-height: 1.35;padding-right: 26px}.cert__issuer{align-self: flex-start;margin-top: 4px;font-size: .83rem;color: var(--muted);text-decoration: none}.cert__issuer:hover,.cert__issuer:focus-visible{color: var(--accent);text-decoration: underline}.cert::after{content: "";position: absolute;top: 16px;right: 16px;width: 18px;height: 18px;opacity: .45;background: currentColor;-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat}.certs li:hover .cert::after{opacity: 1;color: var(--accent)}.badge{align-self: flex-start;margin-top: 8px;padding: 2px 9px;border-radius: 999px;font-size: .72rem;font-weight: 600;background: var(--bg-alt);color: var(--text);background: color-mix(in srgb,var(--accent-2) 16%,transparent);color: color-mix(in srgb,var(--accent-2) 70%,var(--text))}.certs li.featured{background: linear-gradient(135deg,var(--accent),var(--accent-2));border-color: transparent;color: #fff}.featured .cert .year,.featured .cert__issuer{color: rgba(255,255,255,.85)}.featured .cert__issuer:hover,.featured .cert__issuer:focus-visible{color: #fff}.certs li.featured:hover .cert::after{color: #fff}.filters{display: flex;flex-wrap: wrap;gap: 8px;margin: -24px 0 24px}.filter{flex: none;font: inherit;font-size: .88rem;font-weight: 500;padding: 7px 16px;border-radius: 999px;cursor: pointer;background: var(--surface);color: var(--muted);border: 1px solid var(--border);font-variant-numeric: tabular-nums}@media (max-width: 700px){.filters{flex-wrap: nowrap;overflow-x: auto;margin: -24px -16px 20px;padding: 2px 16px 6px;scrollbar-width: none;-webkit-overflow-scrolling: touch;scroll-snap-type: x proximity}.filters::-webkit-scrollbar{display: none}.filter{scroll-snap-align: start;padding: 8px 16px}}.filter:hover{color: var(--text)}.filter.is-active{background: var(--text);color: var(--bg);border-color: var(--text)}.viewer{width: 960px;max-width: calc(100vw - 32px);max-height: calc(100vh - 32px);max-height: calc(100dvh - 32px);margin: auto;padding: 0;border-radius: 20px;background: var(--surface);color: var(--text);border: 1px solid var(--border);box-shadow: var(--shadow)}.viewer[open]{display: flex;flex-direction: column}.viewer::backdrop{background: rgba(5,8,18,.72);backdrop-filter: blur(4px)}.viewer.is-fallback{position: fixed;inset: 0;z-index: 200}.viewer-backdrop{position: fixed;top: 0;right: 0;bottom: 0;left: 0;z-index: 199;background: rgba(5,8,18,.72)}.viewer__head{display: flex;justify-content: space-between;align-items: flex-start;gap: 16px;padding: 18px 20px;border-bottom: 1px solid var(--border)}.viewer__head h3{margin: 0 0 2px;overflow-wrap: anywhere}.viewer__meta{margin: 0;color: var(--muted);font-size: .88rem;overflow-wrap: anywhere}.viewer__head .icon-btn{flex: none}.viewer__body{flex: 1;min-height: 0;overflow: auto;background: var(--bg-alt);display: flex;align-items: center;justify-content: center;touch-action: pan-y pinch-zoom}.viewer__body img{width: 100%;height: auto;max-height: calc(100vh - 220px);max-height: calc(100dvh - 220px);object-fit: contain;background: #fff}.viewer__body iframe{width: 100%;height: calc(100vh - 220px);height: calc(100dvh - 220px);border: 0;background: #fff}.viewer__empty{padding: 56px 24px;text-align: center;color: var(--muted)}.viewer__foot{display: flex;justify-content: space-between;align-items: center;gap: 8px;padding: 14px 20px;border-top: 1px solid var(--border)}.viewer__foot [hidden]{visibility: hidden;display: inline-flex}.viewer__count{font-size: .85rem;color: var(--muted);font-variant-numeric: tabular-nums}@media (max-width: 600px){.viewer{max-width: calc(100vw - 16px);border-radius: 16px}.viewer__head{padding: 14px 14px 12px}.viewer__head h3{font-size: 1rem}.viewer__meta{font-size: .8rem}.viewer__foot{padding: 10px 14px}}@media (max-height: 500px){.viewer__body img{max-height: calc(100vh - 150px);max-height: calc(100dvh - 150px)}.viewer__body iframe{height: calc(100vh - 150px);height: calc(100dvh - 150px)}.viewer__head{padding: 8px 14px}.viewer__foot{padding: 6px 14px}}.quotes{display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,320px),1fr));gap: 20px;align-items: stretch;margin-bottom: 20px}.quote{display: flex;flex-direction: column;gap: 18px;margin: 0;padding: 28px;border-radius: var(--radius);background: var(--surface);border: 1px solid var(--border)}.quote__toggle,.quote__spacer{margin-top: auto}@supports (grid-template-rows: subgrid){.quote{display: grid;grid-row: span 3;grid-template-rows: subgrid;row-gap: 14px}.quote figcaption{align-self: stretch}.quote__toggle{justify-self: start;align-self: start;margin-top: 0}}.quote blockquote{position: relative;margin: 0;font-size: 1rem;line-height: 1.7}.quote blockquote::before{content: "“";display: block;height: 28px;font-size: 3.2rem;line-height: 1;font-weight: 800;color: var(--accent);opacity: .35}.quote blockquote p{margin: 0}.quote blockquote p + p{margin-top: .8em}.js .quote.is-clamped blockquote{max-height: 15.5em;overflow: hidden}.js .quote.is-clamped blockquote::after{content: "";position: absolute;left: 0;right: 0;bottom: 0;height: 4em;background: linear-gradient(to bottom,transparent,var(--surface))}.quote__toggle{display: none;align-self: flex-start;padding: 0;border: 0;background: none;font: inherit;font-size: .9rem;font-weight: 600;color: var(--accent);cursor: pointer}.js .quote__toggle{display: inline}.quote figcaption{display: flex;align-items: flex-start;gap: 14px;border-bottom: 1px solid var(--border);padding-bottom: 16px}.quote figcaption div{display: flex;flex-direction: column;min-width: 0;line-height: 1.4}.quote figcaption span{color: var(--muted);font-size: .88rem}.quote__company{color: var(--accent);font-weight: 600;text-decoration: none}.quote__company:hover{text-decoration: underline}.quote figcaption small{color: var(--muted);font-size: .78rem;opacity: .85;margin-top: 2px}.quote__avatar{flex: none;width: 48px;height: 48px;border-radius: 50%;object-fit: cover;border: 1px solid var(--border)}.quote figcaption .quote__avatar--initials{display: grid;place-items: center;font-weight: 700;font-size: .95rem;color: #fff;border: 0;letter-spacing: .02em;background: var(--c);background: linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 60%,#000))}.quotes__more{margin: 8px 0 0}.quotes__more a{color: var(--accent);font-weight: 600;text-decoration: none}.posts{display: grid;grid-template-columns: repeat(3,1fr);gap: 20px}.post{display: block;padding: 24px;border-radius: var(--radius);background: var(--surface);border: 1px solid var(--border);text-decoration: none;transition: transform .25s,border-color .25s}.post:hover{transform: translateY(-3px);border-color: var(--accent)}.post__meta{font-size: .8rem;color: var(--accent);font-weight: 600}.post h3{margin: 10px 0 0;font-size: 1.05rem;line-height: 1.4}@media (max-width: 900px){.posts{grid-template-columns: 1fr 1fr}}@media (max-width: 560px){.posts{grid-template-columns: 1fr}}.contact{display: grid;grid-template-columns: 1fr 1fr;gap: 48px;padding: 48px;border-radius: 28px;background: var(--surface);border: 1px solid var(--border);box-shadow: var(--shadow)}.form{display: grid;gap: 14px}.form label{display: grid;gap: 6px;font-size: .88rem;font-weight: 500}.form input,.form select,.form textarea{font: inherit;font-size: 1rem;padding: 12px 14px;border-radius: 12px;color: var(--text);background: var(--bg);border: 1px solid var(--border);width: 100%}.form input:focus,.form select:focus,.form textarea:focus{outline: none;border-color: var(--accent);box-shadow: 0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.form__note{margin: 0;font-size: .9rem;color: var(--muted);min-height: 1.4em}.form select:invalid{color: var(--muted)}.form select option{color: var(--text)}.form__note[data-state="ok"]{color: #16a34a}.form__note[data-state="error"]{color: #e5484d}.form .btn:disabled{opacity: .6;cursor: progress}.form__legal{margin: 0;font-size: .75rem;line-height: 1.5;color: var(--muted)}.form__legal a{color: inherit;text-decoration: underline}.form .hp{position: absolute;width: 1px;height: 1px;overflow: hidden;clip-path: inset(50%);white-space: nowrap;opacity: 0}.grecaptcha-badge{visibility: hidden}@media (max-width: 900px){.contact{grid-template-columns: 1fr;padding: 28px 20px;gap: 28px}}.footer{padding: 48px 0 32px;border-top: 1px solid var(--border);color: var(--muted);font-size: .9rem}.footer__inner{display: flex;justify-content: space-between;align-items: center;gap: 16px;flex-wrap: wrap}.footer p{margin: 0}.footer .social{margin-left: auto}.post--card{padding: 0;overflow: hidden;display: flex;flex-direction: column}.post--card[hidden]{display: none}.post__thumb{width: 100%;height: auto;aspect-ratio: 72 / 34;object-fit: cover;background: var(--bg-alt);border-bottom: 1px solid var(--border)}.post__thumb--empty{background: linear-gradient(135deg,color-mix(in srgb,var(--accent) 25%,var(--bg-alt)),var(--bg-alt))}.post__body{padding: 18px 20px 22px}.post--card p{margin: 8px 0 0;color: var(--muted);font-size: .9rem;line-height: 1.55;display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;overflow: hidden}.sr-only{position: absolute;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap}.section--tight{padding: 56px 0}.section--first{padding-top: 40px}.section--first h1{font-size: clamp(2rem,4.6vw,3.2rem)}@media (max-width: 700px){.section--first{padding-top: 24px}}.cta-band{padding: 48px 0;background: var(--bg-alt);border-top: 1px solid var(--border)}.cta-band__inner{display: flex;align-items: center;justify-content: space-between;gap: 20px 32px;flex-wrap: wrap}.cta-band p{margin: 0;font-size: 1.1rem;max-width: 52ch}.cta-band .hero__cta{margin: 0}@media (max-width: 560px){.cta-band .hero__cta .btn{flex: 1}}.section__title{font-size: clamp(1.35rem,2.6vw,1.8rem);margin-bottom: 24px}.page-head{padding: 40px 0 8px}.page-head h1{font-size: clamp(2rem,4.6vw,3.2rem)}.page-head .lead{max-width: 62ch}.page-head .lead a{color: var(--accent);font-weight: 600;text-decoration: none}.page-head--center{text-align: center;padding: 96px 0}.page-head--center .lead{margin: 0 auto}.page-head--center .hero__cta{justify-content: center}.page-head--exp{position: relative;padding-bottom: 32px}.page-head--exp::before{content: "";position: absolute;left: 0;right: 0;top: 0;height: 100%;z-index: -1;pointer-events: none;background: radial-gradient(60% 80% at 85% 0%,color-mix(in srgb,var(--brand) 16%,transparent),transparent 70%)}.page-head--exp .eyebrow{color: var(--brand)}.aliases{font-size: .85rem;color: var(--muted);margin: 0}.crumbs ol{display: flex;flex-wrap: wrap;gap: 6px;list-style: none;padding: 0;margin: 0 0 20px;font-size: .85rem;color: var(--muted)}.crumbs li + li::before{content: "›";margin-right: 6px;opacity: .6}.crumbs a{text-decoration: none}.crumbs a:hover{color: var(--accent)}.crumbs [aria-current]{color: var(--text);max-width: 40ch;overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.blog-tools{display: grid;gap: 16px;margin-top: 24px}.search{display: flex;align-items: center;gap: 10px;max-width: 520px;padding: 0 16px;border-radius: 14px;background: var(--surface);border: 1px solid var(--border);color: var(--muted)}.search:focus-within{border-color: var(--accent)}.search input{flex: 1;min-width: 0;border: 0;background: transparent;color: var(--text);font: inherit;font-size: 1rem;padding: 13px 0;outline: none}.cat-chips{display: flex;flex-wrap: wrap;gap: 8px;list-style: none;padding: 0;margin: 0}.cat-chips a{display: inline-flex;gap: 6px;align-items: center;padding: 6px 14px;border-radius: 999px;text-decoration: none;font-size: .88rem;font-weight: 500;background: var(--surface);border: 1px solid var(--border);color: var(--text)}.cat-chips a:hover{border-color: var(--accent);color: var(--accent)}.cat-chips span{font-size: .75rem;color: var(--muted)}.empty{color: var(--muted);text-align: center;padding: 40px 0}.expertise{margin-top: 32px}.expertise h3{font-size: 1rem;margin-bottom: 12px}.expertise__list{display: flex;flex-wrap: wrap;gap: 10px;list-style: none;padding: 0;margin: 0}.expertise__list a{display: inline-flex;align-items: center;gap: 8px;padding: 9px 16px;border-radius: 12px;text-decoration: none;font-weight: 600;font-size: .92rem;background: var(--surface);border: 1px solid var(--border)}.expertise__list a::before{content: "";width: 8px;height: 8px;border-radius: 50%;background: var(--brand)}.expertise__list a:hover{border-color: var(--brand)}.exp-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,300px),1fr));gap: 20px}.exp-card{position: relative;display: flex;flex-direction: column;padding: 26px;border-radius: var(--radius);text-decoration: none;background: var(--surface);border: 1px solid var(--border);overflow: hidden;transition: border-color .2s,transform .2s}.exp-card::before{content: "";position: absolute;left: 0;right: 0;top: 0;height: 3px;background: var(--brand)}.exp-card h2{font-size: 1.25rem;margin-bottom: 8px}.exp-card p{color: var(--muted);font-size: .95rem;flex: 1}.exp-card__more{font-weight: 600;font-size: .9rem;color: var(--brand)}.exp-card:hover{border-color: var(--brand);transform: translateY(-3px)}.exp-certs{margin-top: 40px;padding: 24px 28px;border-radius: var(--radius);background: var(--bg-alt);border: 1px solid var(--border)}.exp-certs .section__title{font-size: 1.15rem;margin-bottom: 10px}.exp-certs ul{margin: 0 0 12px;padding-left: 20px}.exp-certs a{color: var(--accent);font-weight: 600;text-decoration: none}.container--narrow{max-width: 820px}.article{padding: 40px 0 56px}.article__cats{display: flex;flex-wrap: wrap;gap: 8px;margin-bottom: 14px}.article__cats a{font-size: .78rem;font-weight: 700;letter-spacing: .06em;text-transform: uppercase;text-decoration: none;color: var(--accent);padding: 4px 10px;border-radius: 999px;background: var(--bg-alt)}.article h1{font-size: clamp(1.8rem,4.2vw,2.7rem)}.article__meta{display: flex;flex-wrap: wrap;gap: 6px 18px;color: var(--muted);font-size: .9rem}.article__hero{margin: 28px auto 8px;max-width: 1040px}.article__hero img{width: auto;margin: 0 auto;border-radius: var(--radius);border: 1px solid var(--border)}.prose{font-size: 1.05rem;line-height: 1.75;margin-top: 28px}.prose > * + *{margin-top: 1.1em}.prose p{margin: 0}.prose h2{font-size: 1.5rem;margin: 1.8em 0 .5em}.prose h3,.prose h4{font-size: 1.2rem;margin: 1.6em 0 .4em}.prose h5{font-size: 1rem;margin: 1.4em 0 .3em}.prose a{color: var(--accent);text-underline-offset: 3px;overflow-wrap: anywhere}.prose img{border-radius: 12px;border: 1px solid var(--border);margin: 1.2em 0;background: #fff}.prose img.ui-icon{display: inline-block;vertical-align: middle;margin: 0 .2em;border-radius: 4px}.prose .ui-flow{display: flex;flex-wrap: wrap;align-items: center;gap: .4em .8em;margin: 1.2em 0}.prose .ui-flow img{margin: 0;border-radius: 8px}.prose .ui-flow span{font-size: 1.4em;color: var(--muted)}.prose .ui-pair{display: grid;grid-template-columns: repeat(2,minmax(0,280px));justify-content: center;gap: 16px;margin: 1.2em 0}.prose .ui-pair > picture{display: block}.prose .ui-pair img{margin: 0}img.is-zoomable{cursor: zoom-in}img.is-zoomable:focus-visible{outline: 2px solid var(--accent);outline-offset: 3px}.prose ul,.prose ol{padding-left: 1.4em}.prose li + li{margin-top: .35em}.prose blockquote{margin: 1.4em 0;padding: 4px 0 4px 20px;border-left: 3px solid var(--accent);color: var(--muted)}.prose hr{border: 0;border-top: 1px solid var(--border);margin: 2em 0}.prose code{font-family: ui-monospace,"Cascadia Code",Consolas,monospace;font-size: .88em;padding: 2px 6px;border-radius: 6px;background: var(--bg-alt);overflow-wrap: anywhere}.code{margin: 1.4em 0;border-radius: 12px;overflow: hidden;background: #0f1629;border: 1px solid #222c45}.code__bar{display: flex;align-items: center;justify-content: space-between;gap: 12px;min-height: 40px;padding: 0 8px 0 16px;background: #161f36;border-bottom: 1px solid #222c45;color: #9aa6c4;font-size: .78rem;font-weight: 600;letter-spacing: .02em}.code__lang{text-transform: none}.code__copy{display: inline-flex;align-items: center;gap: 6px;padding: 5px 10px;border-radius: 7px;cursor: pointer;font: inherit;color: #c3cbe0;background: transparent;border: 1px solid transparent;transition: background .15s,color .15s}.code__copy[hidden]{display: none}.code__copy:hover{background: #222c45;color: #fff}.code__copy:focus-visible{outline: 2px solid #7aa2ff;outline-offset: 1px}.code__copy svg{fill: none;stroke: currentColor;stroke-width: 2;stroke-linecap: round;stroke-linejoin: round}.code__copy.is-done{color: #7ee2a8}.code__tabs{display: flex;gap: 2px;align-self: stretch;margin-left: -8px}.code__tab{font: inherit;color: #9aa6c4;background: none;border: 0;border-bottom: 2px solid transparent;padding: 0 10px;cursor: pointer}.code__tab[aria-selected="true"]{color: #fff;border-bottom-color: #7aa2ff}.code__tab:focus-visible{outline: 2px solid #7aa2ff;outline-offset: -2px}.js .code--tabs [data-inactive]{display: none}.prose .code pre{margin: 0;padding: 16px 18px;color: #e6eaf5;font-size: .86rem;line-height: 1.65;tab-size: 4}.prose .code pre + pre{border-top: 1px solid #222c45}.prose .code pre code{padding: 0;background: none;color: inherit;font-size: inherit;white-space: pre-wrap;overflow-wrap: break-word}.tk-c{color: #8b97b5;font-style: italic}.tk-s{color: #a5d6ff}.tk-k{color: #ff9b8f}.tk-n{color: #79c0ff}.tk-f{color: #d2a8ff}.tk-v{color: #ffb86b}.tk-a,.tk-t{color: #7ee787}.prose .howto{list-style: none;padding: 0;counter-reset: step}.prose .howto > li{position: relative;padding: 2px 0 0 44px;counter-increment: step;min-height: 30px}.prose .howto > li + li{margin-top: .8em}.prose .howto > li::before{content: counter(step);position: absolute;left: 0;top: 0;width: 30px;height: 30px;border-radius: 50%;display: grid;place-items: center;font-size: .85rem;font-weight: 700;color: var(--accent);background: var(--bg-alt);border: 1px solid var(--border)}.prose .howto .code{margin: .8em 0 0}.table-wrap{margin: 1.2em 0;border: 1px solid var(--border);border-radius: 12px;overflow: hidden}.prose table{border-collapse: collapse;width: 100%;font-size: .88rem;line-height: 1.45}.prose th,.prose td{padding: 8px 12px;border-bottom: 1px solid var(--border);text-align: left;vertical-align: top;overflow-wrap: anywhere}.prose tbody tr:last-child td{border-bottom: 0}.prose th{background: var(--bg-alt);font-weight: 600}@media (max-width: 640px){.table-wrap:has(.table--stack){border: 0;border-radius: 0;overflow: visible}.prose .table--stack thead{position: absolute;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0)}.prose .table--stack tr{display: block;border: 1px solid var(--border);border-radius: 12px;padding: 6px 0}.prose .table--stack tr + tr{margin-top: 10px}.prose .table--stack td{display: grid;grid-template-columns: minmax(84px,32%) 1fr;gap: 12px;padding: 5px 14px;border: 0}.prose .table--stack td::before{content: attr(data-label);font-weight: 600;color: var(--muted)}.prose .table--stack td:empty{display: none}}.prose .video{margin: 1.4em 0}.prose video{width: 100%;height: auto;border-radius: 12px;background: #000;aspect-ratio: 16 / 9}.prose figcaption{font-size: .85rem;color: var(--muted);margin-top: 8px;text-align: center}.author{display: grid;grid-template-columns: 72px 1fr auto;gap: 18px;align-items: center;margin-top: 48px;padding: 22px;border-radius: var(--radius);background: var(--surface);border: 1px solid var(--border)}.author img{border-radius: 50%;width: 72px;height: 72px;object-fit: cover}.author__name{font-weight: 700;margin: 0}.author__bio{margin: 2px 0 0;color: var(--muted);font-size: .92rem}.author__bio a{color: var(--accent);font-weight: 600;text-decoration: none}@media (max-width: 640px){.author{grid-template-columns: 56px 1fr}.author img{width: 56px;height: 56px}.author .btn{grid-column: 1 / -1}.prose{font-size: 1rem}.prose > .code{margin-left: -16px;margin-right: -16px;border-radius: 0;border-left: 0;border-right: 0}.prose .code pre{padding: 14px 16px;font-size: .82rem}}.footer__top{display: grid;grid-template-columns: 1.3fr 1fr 1fr;gap: 32px;padding-bottom: 28px;margin-bottom: 24px;border-bottom: 1px solid var(--border)}.footer__about p{margin: 12px 0 0;max-width: 36ch}.footer__col h2{font-size: .8rem;letter-spacing: .1em;text-transform: uppercase;color: var(--text);margin-bottom: 12px}.footer__col ul{list-style: none;padding: 0;margin: 0;display: grid;gap: 6px}.footer__col a,.footer__about .brand{text-decoration: none}.footer__col a:hover{color: var(--accent)}.footer__about .brand{color: var(--text)}@media (max-width: 760px){.footer__top{grid-template-columns: 1fr 1fr}.footer__about{grid-column: 1 / -1}}body.page-home{height: 100vh;height: 100dvh;overflow: hidden;display: flex;flex-direction: column}.page-home main{flex: 1;min-height: 0;display: flex}.page-home .hero{flex: 1;min-height: 0;display: flex;flex-direction: column;padding: clamp(12px,3vh,40px) 0}.page-home .hero__fit{margin: auto 0;width: 100%;transform-origin: top center}.page-home .hero__grid{gap: clamp(16px,4vh,48px)}.page-home h1{font-size: clamp(1.55rem,min(5.2vw,6.6vh),4rem);margin-bottom: clamp(8px,1.6vh,16px)}.page-home .lead{font-size: clamp(.92rem,2.1vh,1.15rem);margin-bottom: clamp(8px,1.6vh,16px)}.page-home .hero__stack{margin: 0}.page-home .hero__cta{margin: clamp(14px,3vh,28px) 0 0}.page-home .profile{max-width: min(380px,46vh)}.page-home .stats{margin-top: clamp(14px,4vh,56px)}.page-home .stats div{padding: clamp(10px,2vh,22px) clamp(14px,2vw,24px)}.page-home .stats dd{font-size: clamp(1.15rem,3vh,1.6rem)}.page-home .stats div:last-child dd{font-size: clamp(.9rem,2vh,1.05rem)}@media (max-width: 900px){.page-home .hero__card{order: -1}.page-home .profile{display: flex;align-items: center;gap: 14px;max-width: none;margin: 0}.page-home .profile::before{display: none}.page-home .profile img{width: clamp(64px,13vh,140px);flex: none;border-width: 3px;box-shadow: 0 0 0 3px color-mix(in srgb,var(--accent-2) 55%,transparent)}.page-home .profile__badge{position: static;padding: 0;background: none;border: 0;box-shadow: none}.page-home .hero__stack{display: none}.page-home .hero__cta{flex-wrap: nowrap;gap: 10px}.page-home .hero__cta .btn{flex: 1 1 0;min-width: 0;padding: clamp(10px,1.6vh,13px) 10px;font-size: .9rem;white-space: nowrap}}.lbl-short{display: none}@media (max-width: 480px){.lbl-long{display: none}.lbl-short{display: inline}.page-home .stats{margin-top: clamp(12px,2.6vh,28px)}.page-home .stats dt{font-size: .78rem}}@media (max-height: 540px) and (orientation: landscape){.page-home .hero__card,.page-home .stats,.page-home .hero__stack{display: none}.page-home .hero__grid{grid-template-columns: 1fr}}@media (hover: none){.btn:hover,.card:hover,.post:hover,.cert:hover,.exp-card:hover{transform: none;box-shadow: none}.card:hover{border-color: var(--border)}}.cert:active,.post:active,.btn:active{transform: scale(.98)}.js .reveal{opacity: 0;transform: translateY(18px);transition: opacity .7s ease,transform .7s ease}.js .reveal.is-visible{opacity: 1;transform: none}.page-home .hero__text,.page-home .hero__card{animation: rise .7s ease both}@keyframes rise{from{opacity: 0;transform: translateY(18px)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto}.js .reveal{opacity: 1;transform: none;transition: none}.page-home .hero__text,.page-home .hero__card{animation: none}*{transition: none !important}}