@font-face{font-family: 'Inter';font-style: normal;font-weight: 400;font-display: swap;src: url(/assets/fonts/inter-normal-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Inter';font-style: normal;font-weight: 400;font-display: swap;src: url(/assets/fonts/inter-normal-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Inter';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fonts/inter-normal-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Inter';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fonts/inter-normal-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Inter';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/fonts/inter-normal-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Inter';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/fonts/inter-normal-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'JetBrains Mono';font-style: normal;font-weight: 400;font-display: swap;src: url(/assets/fonts/jetbrains-mono-normal-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'JetBrains Mono';font-style: normal;font-weight: 400;font-display: swap;src: url(/assets/fonts/jetbrains-mono-normal-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'JetBrains Mono';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fonts/jetbrains-mono-normal-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'JetBrains Mono';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fonts/jetbrains-mono-normal-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Newsreader';font-style: italic;font-weight: 400;font-display: swap;src: url(/assets/fonts/newsreader-italic-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Newsreader';font-style: italic;font-weight: 400;font-display: swap;src: url(/assets/fonts/newsreader-italic-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Newsreader';font-style: italic;font-weight: 500;font-display: swap;src: url(/assets/fonts/newsreader-italic-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Newsreader';font-style: italic;font-weight: 500;font-display: swap;src: url(/assets/fonts/newsreader-italic-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Newsreader';font-style: normal;font-weight: 400;font-display: swap;src: url(/assets/fonts/newsreader-normal-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Newsreader';font-style: normal;font-weight: 400;font-display: swap;src: url(/assets/fonts/newsreader-normal-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Newsreader';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fonts/newsreader-normal-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Newsreader';font-style: normal;font-weight: 500;font-display: swap;src: url(/assets/fonts/newsreader-normal-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Newsreader';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/fonts/newsreader-normal-latin-ext.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Newsreader';font-style: normal;font-weight: 600;font-display: swap;src: url(/assets/fonts/newsreader-normal-latin.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #FAF9F6;--surface: #FFFFFF;--surface-2: #F3F1EC;--line: #E4E1DA;--line-strong: #CFCAC0;--ink: #16181B;--ink-2: #43474D;--ink-3: #6B6F76;--accent: #0F5C57;--accent-strong: #0A4643;--accent-soft: #E2EEEB;--before: #A3472D;--before-soft: #F5E6E0;--code-bg: #15191D;--code-ink: #E4E7EA;--code-dim: #8D96A1;--font-display: "Newsreader",Georgia,"Times New Roman",serif;--font-body: "Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono: "JetBrains Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;--maxw: 1180px;--gutter: clamp(16px,4vw,40px);--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(22,24,27,.04),0 8px 24px -12px rgba(22,24,27,.12)}*,*::before,*::after{box-sizing: border-box}[hidden]{display: none !important}html{-webkit-text-size-adjust: 100%;scroll-behavior: smooth;scroll-padding-top: 88px}body{margin: 0;background: var(--bg);color: var(--ink-2);font: 400 17px/1.65 var(--font-body);font-feature-settings: "cv11","ss01";-webkit-font-smoothing: antialiased;text-rendering: optimizeLegibility}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto}*,*::before,*::after{transition: none !important;animation: none !important}}img,svg{max-width: 100%;height: auto;display: block}a{color: var(--accent);text-decoration-thickness: 1px;text-underline-offset: 3px}a:hover{color: var(--accent-strong)}:focus-visible{outline: 2px solid var(--accent);outline-offset: 3px;border-radius: 3px}::selection{background: var(--accent);color: #fff}h1,h2,h3,h4{color: var(--ink);margin: 0 0 .5em;line-height: 1.15}h1,h2{font-family: var(--font-display);font-weight: 500;letter-spacing: -.015em}h1{font-size: clamp(2.3rem,5.2vw,3.9rem);line-height: 1.06}h2{font-size: clamp(1.65rem,3vw,2.3rem)}h3{font-family: var(--font-body);font-weight: 600;font-size: 1.12rem;letter-spacing: -.005em}h4{font-family: var(--font-body);font-weight: 600;font-size: 1rem}p{margin: 0 0 1.1em}strong{color: var(--ink);font-weight: 600}code,kbd,samp{font-family: var(--font-mono);font-size: .86em}:not(pre)>code{background: var(--surface-2);border: 1px solid var(--line);border-radius: 4px;padding: .08em .35em;color: var(--ink);overflow-wrap: anywhere}hr{border: 0;border-top: 1px solid var(--line);margin: 48px 0}.wrap{width: 100%;max-width: var(--maxw);margin-inline: auto;padding-inline: var(--gutter)}.skip{position: absolute;left: -999px;top: 8px;background: var(--ink);color: #fff;padding: 8px 14px;border-radius: 6px;z-index: 100}.skip:focus{left: 8px}.visually-hidden{position: absolute !important;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap}.eyebrow{display: inline-flex;align-items: center;gap: 10px;flex-wrap: wrap;font: 500 .78rem/1.4 var(--font-mono);letter-spacing: .04em;text-transform: uppercase;color: var(--ink-3);margin-bottom: 18px}.eyebrow .sep{width: 18px;height: 1px;background: var(--line-strong)}.lead{font-size: clamp(1.08rem,1.6vw,1.22rem);line-height: 1.6;color: var(--ink-2);max-width: 62ch}.muted{color: var(--ink-3)}.mono{font-family: var(--font-mono)}.site-header{position: sticky;top: 0;z-index: 50;background: rgba(250,249,246,.9);backdrop-filter: saturate(1.4) blur(10px);-webkit-backdrop-filter: saturate(1.4) blur(10px);border-bottom: 1px solid var(--line)}.site-header .wrap{display: flex;align-items: center;justify-content: space-between;gap: 20px;min-height: 64px}.brand{display: inline-flex;align-items: baseline;gap: 10px;color: var(--ink);text-decoration: none}.brand__name{font: 500 1.25rem/1 var(--font-display);letter-spacing: -.01em}.brand__role{font: 500 .72rem/1 var(--font-mono);color: var(--ink-3);text-transform: uppercase;letter-spacing: .05em}.brand:hover{color: var(--ink)}.nav{display: flex;align-items: center;gap: 4px}.nav a{color: var(--ink-2);text-decoration: none;font-size: .94rem;font-weight: 500;padding: 8px 12px;border-radius: 999px;transition: background .15s,color .15s}.nav a:hover{background: var(--surface-2);color: var(--ink)}.nav a[aria-current="page"]{color: var(--accent);background: var(--accent-soft)}.nav a.nav__lang{margin-left: 6px;font: 500 .76rem var(--font-mono);letter-spacing: .04em;border: 1px solid var(--line)}.nav-toggle{display: none}@media (max-width: 920px){.brand__role{display: none}.nav-toggle{display: inline-flex;align-items: center;gap: 8px;font: 500 .9rem var(--font-body);color: var(--ink);background: var(--surface);border: 1px solid var(--line);border-radius: 999px;padding: 8px 14px;cursor: pointer}.nav-toggle .bars{width: 14px;height: 10px;position: relative}.nav-toggle .bars::before,.nav-toggle .bars::after,.nav-toggle .bars span{content: "";position: absolute;left: 0;right: 0;height: 1.5px;background: currentColor;border-radius: 2px}.nav-toggle .bars::before{top: 0}.nav-toggle .bars span{top: 4.25px}.nav-toggle .bars::after{bottom: 0}.nav{display: none;position: absolute;top: 100%;left: 0;right: 0;flex-direction: column;align-items: stretch;gap: 2px;background: var(--bg);border-bottom: 1px solid var(--line);padding: 10px var(--gutter) 16px}.nav.is-open{display: flex}.nav a{padding: 12px 14px;border-radius: 8px}}.btn{display: inline-flex;align-items: center;gap: 8px;font: 500 .95rem/1 var(--font-body);text-decoration: none;padding: 13px 20px;border-radius: 999px;border: 1px solid var(--line-strong);color: var(--ink);background: var(--surface);transition: border-color .15s,background .15s,transform .15s}.btn:hover{border-color: var(--ink-3);color: var(--ink);transform: translateY(-1px)}.btn--primary{background: var(--ink);border-color: var(--ink);color: #fff}.btn--primary:hover{background: var(--accent-strong);border-color: var(--accent-strong);color: #fff}.btn .arrow{transition: transform .15s}.btn:hover .arrow{transform: translateX(3px)}.btn-row{display: flex;flex-wrap: wrap;gap: 12px;margin-top: 28px}.section{padding-block: clamp(56px,8vw,104px)}.section + .section{border-top: 1px solid var(--line)}.section-head{display: grid;grid-template-columns: minmax(0,1fr) auto;align-items: end;gap: 24px;margin-bottom: 40px}.section-head p{margin: 0;max-width: 60ch}.section-head .more{font-weight: 500;white-space: nowrap}@media (max-width: 760px){.section-head{grid-template-columns: 1fr}}.hero{padding-block: clamp(56px,9vw,112px) clamp(40px,6vw,72px)}.hero__grid{display: grid;grid-template-columns: minmax(0,1.35fr) minmax(0,1fr);gap: clamp(32px,6vw,80px);align-items: end}.hero h1{max-width: 15ch}.hero h1 em{font-style: italic;color: var(--accent)}.status{display: inline-flex;align-items: baseline;gap: 10px;font-size: .9rem;line-height: 1.45;color: var(--ink-2);background: var(--surface);border: 1px solid var(--line);border-radius: 18px;padding: 7px 16px 7px 13px;margin-bottom: 28px;max-width: 100%}.status .dot{width: 8px;height: 8px;border-radius: 50%;background: var(--accent);box-shadow: 0 0 0 4px var(--accent-soft);flex: none;position: relative;top: -1px}.facts{border-top: 1px solid var(--ink)}.facts dl{margin: 0}.facts .row{display: grid;grid-template-columns: 9.5em minmax(0,1fr);gap: 16px;padding: 14px 0;border-bottom: 1px solid var(--line)}.facts dt{font: 500 .74rem/1.6 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3)}.facts dd{margin: 0;color: var(--ink);font-size: .96rem;line-height: 1.5}@media (max-width: 900px){.hero__grid{grid-template-columns: 1fr;align-items: start}.hero h1{max-width: 18ch}}@media (max-width: 420px){.facts .row{grid-template-columns: 1fr;gap: 2px}}.numbers{display: grid;grid-template-columns: repeat(4,minmax(0,1fr));border-top: 1px solid var(--line);border-bottom: 1px solid var(--line)}.number{padding: 28px 24px 26px;border-left: 1px solid var(--line);text-decoration: none;color: inherit;display: block;transition: background .15s}.number:first-child{border-left: 0;padding-left: 0}a.number:hover{background: var(--surface);color: inherit}.number__value{display: block;font: 500 clamp(2rem,3.6vw,2.8rem)/1 var(--font-display);color: var(--ink);letter-spacing: -.02em;margin-bottom: 10px}.number__label{display: block;font-size: .92rem;color: var(--ink-2);line-height: 1.45}.number__src{display: block;margin-top: 10px;font: 500 .72rem/1.4 var(--font-mono);color: var(--accent);text-transform: uppercase;letter-spacing: .04em}@media (max-width: 900px){.numbers{grid-template-columns: repeat(2,minmax(0,1fr))}.number:nth-child(3){border-left: 0;padding-left: 0}.number:nth-child(n+3){border-top: 1px solid var(--line)}}@media (max-width: 480px){.number{padding: 22px 14px 20px}.number:first-child,.number:nth-child(3){padding-left: 0}}.stages{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 16px;counter-reset: stage}.stage{background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);padding: 26px 24px 24px;position: relative;display: flex;flex-direction: column}.stage__when{font: 500 .76rem/1.4 var(--font-mono);color: var(--ink-3);text-transform: uppercase;letter-spacing: .05em}.stage h3{font: 500 1.45rem/1.2 var(--font-display);margin: 10px 0 4px;letter-spacing: -.01em}.stage__where{font-size: .9rem;color: var(--accent);font-weight: 500;margin-bottom: 14px}.stage p{font-size: .95rem}.stage ul{margin: 0;padding: 0;list-style: none;font-size: .92rem;border-top: 1px solid var(--line)}.stage li{padding: 9px 0;border-bottom: 1px solid var(--line);display: flex;justify-content: space-between;gap: 12px}.stage li:last-child{border-bottom: 0}.stage li span:last-child{color: var(--ink-3);font-family: var(--font-mono);font-size: .78rem;white-space: nowrap;padding-top: 2px}.stage--current{border-color: var(--accent);box-shadow: 0 0 0 1px var(--accent) inset}.stage p.stage__next{margin: 14px 0 0;font-size: .9rem;color: var(--ink-2)}.stage__next strong{color: var(--accent);font-weight: 600}.stage--current .stage__when{color: var(--accent)}@media (max-width: 900px){.stages{grid-template-columns: 1fr}}.threads{display: grid;gap: 14px}.thread{background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);padding: 22px 24px}.thread__head{display: flex;align-items: baseline;justify-content: space-between;gap: 16px;flex-wrap: wrap;margin-bottom: 16px}.thread__head h3{margin: 0;font: 500 1.3rem/1.2 var(--font-display);letter-spacing: -.01em}.thread__head p{margin: 0;font-size: .92rem;color: var(--ink-3)}.thread__steps{list-style: none;margin: 0;padding: 0;display: grid;grid-auto-flow: column;grid-auto-columns: minmax(0,1fr);gap: 0}.thread__step{position: relative;padding: 14px 18px 4px 0}.thread__step::before{content: "";position: absolute;top: 0;left: 0;right: 0;height: 2px;background: var(--line)}.thread__step::after{content: "";position: absolute;top: -4px;left: 0;width: 10px;height: 10px;border-radius: 50%;background: var(--surface);border: 2px solid var(--line-strong)}.thread__step:last-child::after{background: var(--accent);border-color: var(--accent)}.thread__step:last-child::before{background: linear-gradient(90deg,var(--line),var(--accent))}.thread__year{font: 500 .74rem/1.4 var(--font-mono);color: var(--ink-3)}.thread__label{display: block;font-weight: 500;color: var(--ink);line-height: 1.35;margin: 4px 0 2px;font-size: .97rem}.thread__level{display: block;font-size: .85rem;color: var(--ink-3);line-height: 1.4}a.thread__link{text-decoration: none;color: inherit;display: block}a.thread__link:hover .thread__label{color: var(--accent)}@media (max-width: 820px){.thread__steps{grid-auto-flow: row;grid-auto-columns: auto}.thread__step{padding: 2px 0 14px 24px}.thread__step::before{top: 0;bottom: 0;left: 4px;right: auto;width: 2px;height: auto}.thread__step::after{top: 4px;left: 0}.thread__step:last-child::before{background: linear-gradient(180deg,var(--line),var(--accent))}}.skills{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 0;border-top: 1px solid var(--line)}.skill-group{padding: 26px 26px 22px 0;border-bottom: 1px solid var(--line)}.skill-group:not(:nth-child(3n+1)){padding-left: 26px;border-left: 1px solid var(--line)}.skill-group h3{font-size: 1rem;margin-bottom: 14px}.skill-group ul{list-style: none;margin: 0;padding: 0}.skill-group li{display: flex;justify-content: space-between;gap: 12px;padding: 5px 0;font-size: .93rem;color: var(--ink-2)}.lvl{display: inline-flex;gap: 3px;align-items: center;flex: none}.lvl i{width: 7px;height: 7px;border-radius: 50%;background: var(--line)}.lvl[data-l="1"] i:nth-child(-n+1),.lvl[data-l="2"] i:nth-child(-n+2),.lvl[data-l="3"] i:nth-child(-n+3){background: var(--accent)}.legend{display: flex;flex-wrap: wrap;gap: 18px;font-size: .85rem;color: var(--ink-3);margin-top: 18px}.legend span{display: inline-flex;align-items: center;gap: 8px}@media (max-width: 900px){.skills{grid-template-columns: repeat(2,minmax(0,1fr))}.skill-group:not(:nth-child(3n+1)){padding-left: 0;border-left: 0}.skill-group:nth-child(even){padding-left: 22px;border-left: 1px solid var(--line)}}@media (max-width: 560px){.skills{grid-template-columns: 1fr}.skill-group:nth-child(even){padding-left: 0;border-left: 0}.skill-group{padding-right: 0}}.cards{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 22px}.cards--2{grid-template-columns: repeat(2,minmax(0,1fr))}.card{display: flex;flex-direction: column;background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);overflow: hidden;text-decoration: none;color: inherit;transition: border-color .15s,box-shadow .2s,transform .2s}.card:hover{border-color: var(--line-strong);box-shadow: var(--shadow);transform: translateY(-2px);color: inherit}.card__media{aspect-ratio: 16 / 10;background: var(--surface-2);border-bottom: 1px solid var(--line);overflow: hidden;position: relative}.card__media img{width: 100%;height: 100%;object-fit: cover;object-position: top left;transition: transform .4s}.card:hover .card__media img{transform: scale(1.02)}.card__media--empty{display: grid;place-items: center;background:
radial-gradient(circle at 1px 1px,var(--line-strong) 1px,transparent 0) 0 0 / 14px 14px,var(--surface-2)}.card__media--empty span{font: 500 1.6rem/1 var(--font-display);color: var(--ink-3);background: var(--surface-2);padding: 6px 12px;border-radius: 6px}.card__body{padding: 20px 22px 22px;display: flex;flex-direction: column;gap: 10px;flex: 1}.card__meta{display: flex;flex-wrap: wrap;gap: 8px;align-items: center;font: 500 .72rem/1.4 var(--font-mono);text-transform: uppercase;letter-spacing: .04em;color: var(--ink-3)}.card h3{font: 500 1.28rem/1.22 var(--font-display);letter-spacing: -.01em;margin: 0;color: var(--ink)}.card p{margin: 0;font-size: .93rem;line-height: 1.55;color: var(--ink-2)}.card__kpi{margin-top: auto;padding-top: 12px;border-top: 1px solid var(--line);font-size: .86rem;color: var(--ink-3);display: flex;gap: 8px;align-items: baseline}.card__kpi b{font: 600 .95rem var(--font-body);color: var(--accent);white-space: nowrap}@media (max-width: 1000px){.cards{grid-template-columns: repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.cards,.cards--2{grid-template-columns: 1fr}}.badge{display: inline-flex;align-items: center;gap: 6px;font: 500 .7rem/1 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;padding: 5px 8px;border-radius: 4px;border: 1px solid var(--line);color: var(--ink-2);background: var(--bg)}.badge--production{color: var(--accent-strong);background: var(--accent-soft);border-color: transparent}.badge--lab,.badge--homelab{color: #5B4A1F;background: #F4EEDD;border-color: transparent}.badge--ecole,.badge--etude{color: #3F4A63;background: #E8EBF2;border-color: transparent}.badge--equipe{color: var(--ink-2);background: var(--surface-2);border-color: transparent}.filters{display: grid;gap: 14px;margin: 8px 0 36px}.filter-group{display: flex;flex-wrap: wrap;align-items: center;gap: 8px}.filter-group__label{font: 500 .74rem/1 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3);width: 7.5em;flex: none}.chip{font: 500 .88rem/1 var(--font-body);color: var(--ink-2);cursor: pointer;padding: 9px 14px;border-radius: 999px;border: 1px solid var(--line);background: var(--surface);transition: border-color .15s,background .15s,color .15s}.chip:hover{border-color: var(--line-strong);color: var(--ink)}.chip[aria-pressed="true"]{background: var(--ink);border-color: var(--ink);color: #fff}.chip .n{margin-left: 4px;font-variant-numeric: tabular-nums;color: var(--ink-3)}.chip[aria-pressed="true"] .n{color: inherit;opacity: .8}.results-count{font-size: .9rem;color: var(--ink-3);margin: -18px 0 22px}@media (max-width: 560px){.filter-group__label{width: 100%}}.p-hero{padding-block: clamp(36px,6vw,72px) clamp(28px,4vw,44px)}.crumbs{font-size: .88rem;margin-bottom: 28px;color: var(--ink-3)}.crumbs a{color: var(--ink-3);text-decoration: none}.crumbs a:hover{color: var(--accent)}.p-hero h1{font-size: clamp(2.1rem,4.6vw,3.4rem);max-width: 22ch}.p-hero .lead{margin-top: 18px}.p-badges{display: flex;flex-wrap: wrap;gap: 8px;margin-bottom: 20px}.p-read{align-self: center;margin-left: 4px;font: 400 .74rem var(--font-mono);color: var(--ink-3)}.p-meta{display: grid;grid-template-columns: repeat(4,minmax(0,1fr));gap: 0;border-top: 1px solid var(--ink);margin-top: 36px}.p-meta--3{grid-template-columns: repeat(3,minmax(0,1fr))}.p-meta>div{padding: 14px 18px 14px 0;border-bottom: 1px solid var(--line)}.p-meta>div + div{padding-left: 18px;border-left: 1px solid var(--line)}.p-meta dt{font: 500 .72rem/1.6 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3);margin-bottom: 4px}.p-meta dd{margin: 0;font-size: .93rem;color: var(--ink);line-height: 1.45}@media (max-width: 860px){.p-meta{grid-template-columns: repeat(2,minmax(0,1fr))}.p-meta>div:nth-child(3){padding-left: 0;border-left: 0}}@media (max-width: 480px){.p-meta{grid-template-columns: 1fr}.p-meta>div + div{padding-left: 0;border-left: 0}}.brief{margin-top: 32px;background: var(--surface);border: 1px solid var(--line);border-left: 3px solid var(--accent);border-radius: var(--radius);padding: 20px 24px 22px}.brief__title{font: 500 .74rem/1 var(--font-mono);text-transform: uppercase;letter-spacing: .06em;color: var(--accent-strong);margin: 0 0 14px}.brief__grid{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 24px}.brief__k{display: block;font-weight: 600;color: var(--ink);font-size: .92rem;margin-bottom: 4px}.brief__grid p{margin: 0;font-size: .95rem;line-height: 1.55}@media (max-width: 760px){.brief__grid{grid-template-columns: 1fr;gap: 14px}}.brief + .kpis{margin-top: 14px}details.tech{margin: 26px 0;border: 1px solid var(--line);border-radius: var(--radius);background: var(--surface)}details.tech>summary{list-style: none;cursor: pointer;display: flex;align-items: center;justify-content: space-between;gap: 12px;padding: 14px 18px;font-weight: 500;color: var(--ink);font-size: .95rem}details.tech>summary::-webkit-details-marker{display: none}details.tech>summary::after{content: "+";font: 400 1.3rem/1 var(--font-mono);color: var(--accent);transition: transform .15s}details.tech[open]>summary{border-bottom: 1px solid var(--line)}details.tech[open]>summary::after{transform: rotate(45deg)}details.tech>summary:hover{color: var(--accent)}.tech__body{padding: 6px 18px 18px}.tech__body>:first-child{margin-top: 14px}.tech__body .fig,.tech__body pre.code,.tech__body .table-wrap{margin: 16px 0}@media print{details.tech>summary::after{display: none}}.kpis{display: grid;grid-template-columns: repeat(auto-fit,minmax(180px,1fr));gap: 0;background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);margin-top: 32px}.kpi{padding: 20px 22px;border-left: 1px solid var(--line)}.kpi:first-child{border-left: 0}.kpi__value{display: block;font: 500 1.9rem/1.05 var(--font-display);color: var(--ink);letter-spacing: -.02em}.kpi__value small{font-size: .55em;color: var(--ink-3);letter-spacing: 0;margin: 0 .2em}.kpi__label{display: block;font-size: .86rem;color: var(--ink-3);margin-top: 8px;line-height: 1.4}@media (max-width: 640px){.kpi{border-left: 0;border-top: 1px solid var(--line)}.kpi:first-child{border-top: 0}}.p-layout{display: grid;grid-template-columns: minmax(0,1fr) 230px;gap: clamp(32px,6vw,88px);padding-bottom: 72px}.p-body{max-width: 760px;min-width: 0}.p-toc{position: sticky;top: 96px;align-self: start;font-size: .88rem}.p-toc p{font: 500 .72rem/1 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3);margin-bottom: 14px}.p-toc ol{list-style: none;margin: 0;padding: 0;border-left: 1px solid var(--line)}.p-toc a{display: block;padding: 6px 0 6px 16px;margin-left: -1px;border-left: 2px solid transparent;color: var(--ink-3);text-decoration: none;line-height: 1.35}.p-toc a:hover{color: var(--ink)}.p-toc a.is-active{color: var(--accent);border-left-color: var(--accent)}@media (max-width: 1020px){.p-layout{grid-template-columns: minmax(0,1fr)}.p-toc{display: none}}.p-section{padding-top: 44px}.p-section:first-child{padding-top: 8px}.p-section>h2{font-size: clamp(1.5rem,2.6vw,1.95rem);margin-bottom: 18px}.p-section h3{margin-top: 30px}.p-body ul,.p-body ol{padding-left: 1.2em;margin: 0 0 1.2em}.p-body li{margin: .35em 0}.p-body li::marker{color: var(--ink-3)}.steps{list-style: none;padding: 0 !important;counter-reset: step;margin: 22px 0 !important}.steps>li{counter-increment: step;position: relative;padding: 0 0 22px 52px;margin: 0 !important}.steps>li::before{content: counter(step,decimal-leading-zero);position: absolute;left: 0;top: 1px;font: 500 .78rem/1 var(--font-mono);color: var(--accent);border: 1px solid var(--line-strong);border-radius: 999px;padding: 6px 7px;background: var(--surface)}.steps>li::after{content: "";position: absolute;left: 16px;top: 30px;bottom: 4px;width: 1px;background: var(--line)}.steps>li:last-child::after{display: none}.steps>li>strong:first-child{display: block;color: var(--ink);margin-bottom: 2px}.incident{border: 1px solid var(--line);border-radius: var(--radius);background: var(--surface);margin: 24px 0;overflow: hidden}.incident__title{font: 600 1rem/1.35 var(--font-body);color: var(--ink);padding: 16px 20px 0;margin: 0}.incident__row{display: grid;grid-template-columns: 7.5em minmax(0,1fr);gap: 16px;padding: 12px 20px}.incident__row + .incident__row{border-top: 1px dashed var(--line)}.incident__row:last-child{padding-bottom: 16px}.incident__tag{font: 500 .72rem/1.9 var(--font-mono);text-transform: uppercase;letter-spacing: .05em}.incident__tag--problem{color: var(--before)}.incident__tag--cause{color: var(--ink-3)}.incident__tag--fix{color: var(--accent)}.incident__row>:not(.incident__tag){grid-column: 2}.incident__row p{margin: 0;font-size: .95rem}.incident__row p + p{margin-top: -4px}@media (max-width: 560px){.incident__row{grid-template-columns: 1fr;gap: 2px}.incident__row>:not(.incident__tag){grid-column: 1}}.note{border-left: 3px solid var(--accent);background: var(--accent-soft);padding: 16px 20px;border-radius: 0 var(--radius-sm) var(--radius-sm) 0;margin: 24px 0;font-size: .96rem;color: var(--ink)}.note p:last-child{margin-bottom: 0}.note__label{display: block;font: 500 .72rem/1.4 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--accent-strong);margin-bottom: 6px}.retro{list-style: none;padding: 0 !important;margin: 18px 0 0 !important;border-top: 1px solid var(--line)}.retro li{display: grid;grid-template-columns: 1.6em minmax(0,1fr);padding: 12px 0;border-bottom: 1px solid var(--line);margin: 0 !important;font-size: .96rem}.retro li::before{content: "→";color: var(--accent);font-family: var(--font-mono)}.fig{margin: 30px 0}.fig__frame{background: var(--surface-2);border: 1px solid var(--line);border-radius: var(--radius);overflow: hidden}.fig__frame img{width: auto;max-width: 100%;height: auto;margin-inline: auto;cursor: zoom-in}.fig--diagram .fig__frame{background: var(--surface)}.fig--diagram .fig__frame{padding: clamp(14px,3vw,28px)}.fig--diagram svg{width: 100%;height: auto;font-family: var(--font-body)}@media (max-width: 640px){.fig--diagram .fig__frame{overflow-x: auto;overscroll-behavior-x: contain}.fig--diagram svg{min-width: 600px}}.fig figcaption{font-size: .86rem;color: var(--ink-3);margin-top: 10px;line-height: 1.5}.fig figcaption b{font: 500 .74rem var(--font-mono);text-transform: uppercase;letter-spacing: .04em;color: var(--ink-2);margin-right: 6px}.fig--wide{margin-inline: calc(-1 * min(80px,6vw))}@media (max-width: 1020px){.fig--wide{margin-inline: 0}}.fig-pair{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 16px;margin: 30px 0}.fig-pair .fig{margin: 0}@media (max-width: 640px){.fig-pair{grid-template-columns: 1fr}}.fig svg text{font-family: var(--font-body);fill: var(--ink-2);font-size: 13px}.fig svg .ch-label{fill: var(--ink);font-weight: 500}.fig svg .ch-value{font-family: var(--font-mono);font-size: 12px;fill: var(--ink-2)}.ch-before{fill: #E9C9BE}.ch-after{fill: var(--accent)}.ch-track{fill: var(--surface-2)}.fig svg .ch-legend text{font-size: 12px;fill: var(--ink-3)}.dg-box{fill: var(--surface);stroke: var(--line-strong);stroke-width: 1}.dg-box--accent{fill: var(--accent-soft);stroke: var(--accent)}.dg-box--warn{fill: var(--before-soft);stroke: #D9A796}.dg-zone{fill: none;stroke: var(--line-strong);stroke-width: 1;stroke-dasharray: 4 4}.dg-line{stroke: var(--ink-3);stroke-width: 1.4;fill: none}.dg-line--accent{stroke: var(--accent);stroke-width: 1.8}.dg-line--warn{stroke: var(--before);stroke-width: 1.6;stroke-dasharray: 5 4}.fig svg .dg-title{fill: var(--ink);font-weight: 600;font-size: 13px}.fig svg .dg-sub{fill: var(--ink-3);font-size: 12px}.fig svg .dg-tag{font-family: var(--font-mono);font-size: 11px;fill: var(--ink-3);letter-spacing: .04em;text-transform: uppercase}.dg-arrow{fill: var(--ink-3)}.dg-arrow--accent{fill: var(--accent)}pre.code{background: var(--code-bg);color: var(--code-ink);border-radius: var(--radius);padding: 18px 20px;font: 400 .84rem/1.7 var(--font-mono);overflow-x: auto;margin: 22px 0;tab-size: 2}pre.code code{font-size: inherit;background: none;border: 0;padding: 0;color: inherit}pre.code .c{color: var(--code-dim)}pre.code .p{color: #7FD1C2;user-select: none}pre.code .o{color: #C9D2DB}.code-title{font: 500 .74rem/1 var(--font-mono);color: var(--ink-3);text-transform: uppercase;letter-spacing: .05em;margin: 22px 0 -14px}.table-wrap{overflow-x: auto;margin: 24px 0;border: 1px solid var(--line);border-radius: var(--radius);background: var(--surface)}table.data{width: 100%;border-collapse: collapse;font-size: .92rem;min-width: 480px}table.data th{text-align: left;font: 500 .72rem/1.4 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3);padding: 12px 16px;border-bottom: 1px solid var(--line);background: var(--surface-2)}table.data td{padding: 12px 16px;border-bottom: 1px solid var(--line);vertical-align: top;color: var(--ink-2)}table.data tr:last-child td{border-bottom: 0}table.data caption{caption-side: top;text-align: left;padding: 12px 16px 0;font-size: .86rem;color: var(--ink-3)}table.data td:first-child{color: var(--ink);font-weight: 500}table.data td.before{color: var(--before)}table.data td.after{color: var(--accent-strong);font-weight: 500}table.data td.num,table.data th.num{text-align: right;font-variant-numeric: tabular-nums;white-space: nowrap}.tags{display: flex;flex-wrap: wrap;gap: 8px;margin: 14px 0 0;padding: 0;list-style: none}.tags li{margin: 0 !important;font-size: .86rem;padding: 6px 12px;border-radius: 999px;background: var(--surface);border: 1px solid var(--line);color: var(--ink-2)}.competences{list-style: none;padding: 0 !important;margin: 18px 0 0 !important;display: grid;gap: 0;border-top: 1px solid var(--line)}.competences li{margin: 0 !important;padding: 12px 0;border-bottom: 1px solid var(--line);font-size: .95rem}.competences li strong{display: block}.p-next{border-top: 1px solid var(--line);padding-block: 40px 64px}.p-next__grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 16px}.p-next a{display: block;padding: 20px 22px;background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);text-decoration: none;color: inherit;transition: border-color .15s}.p-next a:hover{border-color: var(--line-strong)}.p-next a:last-child{text-align: right}.p-next__grid small{display: block;font: 500 .72rem/1.4 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3);margin-bottom: 6px}.p-next__grid a>span{font: 500 1.15rem/1.3 var(--font-display);color: var(--ink)}.p-thread{margin-top: 28px}.thread__step.is-current .thread__label{color: var(--accent)}.thread__step.is-current::after{background: var(--accent);border-color: var(--accent);box-shadow: 0 0 0 4px var(--accent-soft)}@media (max-width: 640px){.p-next__grid{grid-template-columns: 1fr}.p-next a:last-child{text-align: left}}.prose{max-width: 720px}.timeline{list-style: none;margin: 0;padding: 0;border-left: 1px solid var(--line-strong)}.timeline>li{position: relative;padding: 0 0 48px 32px}.timeline>li::before{content: "";position: absolute;left: -6px;top: 6px;width: 11px;height: 11px;border-radius: 50%;background: var(--bg);border: 2px solid var(--ink-3)}.timeline>li.is-current::before{background: var(--accent);border-color: var(--accent);box-shadow: 0 0 0 4px var(--accent-soft)}.timeline__when{font: 500 .76rem/1.4 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3)}.timeline h3{font: 500 1.6rem/1.2 var(--font-display);margin: 6px 0 4px;letter-spacing: -.01em}.timeline__where{color: var(--accent);font-weight: 500;font-size: .95rem;margin-bottom: 14px}.shift{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 0;border: 1px solid var(--line);border-radius: var(--radius);background: var(--surface);margin: 18px 0;overflow: hidden}.shift>div{padding: 16px 18px}.shift>div + div{border-left: 1px solid var(--line)}.shift h4{font: 500 .72rem/1.4 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3);margin-bottom: 8px}.shift ul{margin: 0;padding-left: 1.1em;font-size: .93rem}.shift li{margin: .25em 0}@media (max-width: 640px){.shift{grid-template-columns: 1fr}.shift>div + div{border-left: 0;border-top: 1px solid var(--line)}}.contact{display: grid;grid-template-columns: minmax(0,1.2fr) minmax(0,1fr);gap: 48px;align-items: end}.contact h2{font-size: clamp(2rem,4vw,3rem);max-width: 16ch}.contact__links{display: grid;gap: 0;border-top: 1px solid var(--ink)}.contact__links a{display: flex;justify-content: space-between;gap: 16px;padding: 16px 0;border-bottom: 1px solid var(--line);text-decoration: none;color: var(--ink);font-weight: 500}.contact__links a span:last-child{color: var(--ink-3);font-family: var(--font-mono);font-size: .85rem}.contact__links a:hover{color: var(--accent)}@media (max-width: 820px){.contact{grid-template-columns: 1fr;gap: 28px}}.site-footer{border-top: 1px solid var(--line);padding-block: 32px 40px;font-size: .86rem;color: var(--ink-3)}.site-footer .wrap{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 12px 24px}.site-footer a{color: var(--ink-3);text-decoration: none}.site-footer a:hover{color: var(--accent)}.site-footer nav{display: flex;gap: 18px;flex-wrap: wrap}.lightbox{position: fixed;inset: 0;z-index: 200;background: rgba(15,17,19,.88);display: none;align-items: center;justify-content: center;padding: 24px;cursor: zoom-out}.lightbox.is-open{display: flex}.lightbox img{max-width: min(1600px,100%);max-height: 100%;border-radius: 6px;box-shadow: 0 20px 60px rgba(0,0,0,.4)}.notfound{min-height: 60vh;display: grid;align-content: center}.notfound .code404{font: 500 .8rem var(--font-mono);color: var(--ink-3);letter-spacing: .06em;text-transform: uppercase}@media print{.site-header,.p-toc,.p-next,.site-footer,.btn-row{display: none !important}body{background: #fff;font-size: 12pt}.p-layout{display: block}}.fig--bars .fig__frame{background: var(--surface);padding: clamp(16px,3vw,28px)}.hbars{display: grid;gap: 18px}.hbars--2{grid-template-columns: repeat(2,minmax(0,1fr));column-gap: 36px}.hbars__group{display: grid;gap: 14px;align-content: start}.hbars__title{margin: 0;font-weight: 600;color: var(--ink);font-size: .95rem}.hbars__head{display: flex;justify-content: space-between;align-items: baseline;gap: 12px;margin: 0 0 6px;font-size: .92rem;color: var(--ink)}.hbars__head span{font-weight: 500}.hbars__head b{font: 400 .8rem var(--font-mono);color: var(--ink-2);white-space: nowrap}.hbars__svg{display: block;width: 100%;height: 22px}.hbars__svg--single{height: 12px}.hbars__legend{margin: 16px 0 0;font-size: .8rem;color: var(--ink-3);display: flex;align-items: center;flex-wrap: wrap;gap: 6px}.hbars__key{display: inline-block;width: 10px;height: 8px;border-radius: 1px}.hbars__key--before{background: #E9C9BE}.hbars__key--after{background: var(--accent);margin-left: 12px}@media (max-width: 640px){.hbars--2{grid-template-columns: 1fr;row-gap: 22px}.hbars__head{flex-wrap: wrap}}.pb-0{padding-bottom: 0}.pb-72{padding-bottom: 72px}.pb-88{padding-bottom: 88px}.cards.cards--fit{grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr))}@media (max-width: 920px){.nav a.nav__lang{margin-left: 0}}@media (max-width: 1100px){.brand__role{display: none}}.certs{display: grid;grid-template-columns: repeat(auto-fill,minmax(min(100%,300px),1fr));gap: 18px}.certs--certification{grid-template-columns: minmax(0,1.75fr) minmax(0,1fr);align-items: start}@media (max-width: 900px){.certs--certification{grid-template-columns: minmax(0,1fr)}}.cert{position: relative;background: var(--surface);border: 1px solid var(--line);border-radius: var(--radius);padding: 22px 22px 20px;display: flex;flex-direction: column;gap: 10px;overflow: hidden;transition: border-color .2s,box-shadow .25s,transform .25s}.cert::before{content: "";position: absolute;left: 0;top: 0;height: 3px;width: 100%;background: var(--accent);transform: scaleX(0);transform-origin: left;transition: transform .45s cubic-bezier(.4,0,.2,1)}.cert:hover{border-color: var(--line-strong);box-shadow: var(--shadow);transform: translateY(-3px)}.cert:hover::before{transform: none}.cert--certification::before{transform: none}.cert__top{display: flex;justify-content: space-between;align-items: center;gap: 12px}.cert__date{font: 500 .74rem/1.4 var(--font-mono);color: var(--ink-3);text-transform: uppercase;letter-spacing: .04em;white-space: nowrap}.cert__main{display: flex;flex-direction: column;gap: 8px;flex: 1}.cert h3{font: 500 1.22rem/1.25 var(--font-display);margin: 2px 0 0;letter-spacing: -.01em}.cert--certification h3{font-size: clamp(1.5rem,2.4vw,1.9rem)}.cert__issuer{margin: 0;font-size: .88rem;font-weight: 500;color: var(--accent)}.cert__desc{margin: 0;font-size: .93rem;line-height: 1.55;color: var(--ink-2)}.certs--compact .cert__desc{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden}.cert__detail{margin: 0;align-self: flex-start;font-size: .82rem;font-weight: 600;color: var(--accent-strong);background: var(--accent-soft);border-radius: 999px;padding: 3px 10px}.cert__topics{display: flex;flex-wrap: wrap;gap: 6px;margin: 4px 0 0;padding: 0;list-style: none}.cert__topics li{font-size: .78rem;line-height: 1.3;padding: 4px 9px;border-radius: 999px;border: 1px solid var(--line);background: var(--bg);color: var(--ink-2);transition: border-color .2s,color .2s}.cert:hover .cert__topics li{border-color: var(--accent-soft);color: var(--ink)}.cert__facts{margin: auto 0 0;padding-top: 10px;border-top: 1px dashed var(--line);font: 500 .74rem/1.5 var(--font-mono);color: var(--ink-3);text-transform: uppercase;letter-spacing: .03em}.cert__link{margin-top: auto;font-size: .88rem;font-weight: 500}.certs__group{font: 500 1.5rem/1.2 var(--font-display);margin: 48px 0 18px}.certs__group:first-child{margin-top: 0}.cert--domains{display: grid;grid-template-columns: minmax(0,1fr) minmax(0,1.15fr);grid-template-rows: auto 1fr;column-gap: 32px;row-gap: 10px}.cert--domains .cert__top{grid-column: 1 / -1}.cert__domains{border-left: 1px solid var(--line);padding-left: 28px}.cert__label{margin: 0 0 10px;font: 500 .72rem/1.4 var(--font-mono);text-transform: uppercase;letter-spacing: .05em;color: var(--ink-3)}.cert__domains ul{list-style: none;margin: 0;padding: 0;display: grid;gap: 11px}.cert__domains li{display: grid;grid-template-columns: minmax(0,1fr) auto;column-gap: 12px;row-gap: 5px;font-size: .84rem;line-height: 1.4;color: var(--ink-2)}.cert__domains b{font: 600 .82rem/1.4 var(--font-mono);color: var(--ink)}.cert__domains svg{grid-column: 1 / -1;width: 100%;height: 5px;display: block;background: var(--surface-2);border-radius: 2px}.cert__domains rect{fill: var(--accent)}@media (max-width: 760px){.cert--domains{grid-template-columns: minmax(0,1fr)}.cert__domains{border-left: 0;padding-left: 0;border-top: 1px solid var(--line);padding-top: 16px;margin-top: 6px}}.fx .cert__domains rect{transform-box: fill-box;transform-origin: left center;transition: transform 1s cubic-bezier(.3,.7,.2,1)}.fx .cert__domains li:nth-child(2) rect{transition-delay: .08s}.fx .cert__domains li:nth-child(3) rect{transition-delay: .16s}.fx .cert__domains li:nth-child(4) rect{transition-delay: .24s}.fx .cert__domains li:nth-child(5) rect{transition-delay: .32s}.fx .cert__domains li:nth-child(6) rect{transition-delay: .4s}.fx .cert__domains:not(.is-seen) rect{transform: scaleX(0)}.upcoming__title{font: 500 1.6rem/1.2 var(--font-display);margin: 64px 0 8px}.upcoming__intro{color: var(--ink-2);margin: 0 0 20px;max-width: 70ch}@view-transition{navigation: auto}.site-header{view-transition-name: site-header}::view-transition-old(root){animation: fx-out .16s ease both}::view-transition-new(root){animation: fx-in .34s cubic-bezier(.2,.7,.2,1) both}@keyframes fx-out{to{opacity: 0}}@keyframes fx-in{from{opacity: 0;transform: translateY(10px)}}@media (prefers-reduced-motion: reduce){@view-transition{navigation: none}}@keyframes fx-up{from{opacity: 0;transform: translateY(16px)}to{opacity: 1;transform: none}}@keyframes fx-mark{to{background-size: 100% .3em}}@keyframes fx-ping{0%{transform: scale(1);opacity: .55}80%,100%{transform: scale(2.6);opacity: 0}}.hero .status,.hero h1,.hero .lead,.hero .btn-row,.hero .facts .row{animation: fx-up .8s cubic-bezier(.2,.7,.2,1) both}.hero h1{animation-delay: .08s}.hero .lead{animation-delay: .18s}.hero .btn-row{animation-delay: .28s}.hero .facts .row:nth-child(1){animation-delay: .32s}.hero .facts .row:nth-child(2){animation-delay: .4s}.hero .facts .row:nth-child(3){animation-delay: .48s}.hero .facts .row:nth-child(4){animation-delay: .56s}.hero h1 em{background: linear-gradient(var(--accent-soft),var(--accent-soft)) no-repeat 0 90% / 0 .3em;animation: fx-mark 1s .75s cubic-bezier(.6,0,.2,1) forwards}.status .dot::after{content: "";position: absolute;inset: 0;border-radius: 50%;background: var(--accent);animation: fx-ping 2.4s cubic-bezier(0,0,.2,1) 1.2s infinite}@media (prefers-reduced-motion: reduce){.hero h1 em{background-size: 100% .3em}}.p-hero>:is(.crumbs,.eyebrow,.p-badges,h1,.lead,.p-meta){animation: fx-up .8s cubic-bezier(.2,.7,.2,1) both}.p-hero>.p-badges{animation-delay: .06s}.p-hero>h1{animation-delay: .1s}.p-hero>.lead{animation-delay: .2s}.p-hero>.p-meta{animation-delay: .3s}.hero,.p-hero{position: relative;isolation: isolate}.hero::before,.hero::after,.p-hero::before,.p-hero::after{content: "";position: absolute;inset: 0;z-index: -1;pointer-events: none;background: radial-gradient(circle at 1px 1px,rgba(22,24,27,.17) 1px,transparent 0) 0 0 / 24px 24px;-webkit-mask-image: radial-gradient(ellipse 50% 70% at 82% 38%,#000 0%,transparent 72%);mask-image: radial-gradient(ellipse 50% 70% at 82% 38%,#000 0%,transparent 72%)}.p-hero::before{-webkit-mask-image: radial-gradient(ellipse 45% 80% at 90% 30%,#000 0%,transparent 70%);mask-image: radial-gradient(ellipse 45% 80% at 90% 30%,#000 0%,transparent 70%)}.hero::after,.p-hero::after{background-image: radial-gradient(circle at 1.5px 1.5px,var(--accent) 1.6px,transparent 0),linear-gradient(rgba(15,92,87,.07),rgba(15,92,87,.07));-webkit-mask-image: radial-gradient(280px circle at var(--mx,-999px) var(--my,-999px),#000 0%,transparent 70%);mask-image: radial-gradient(280px circle at var(--mx,-999px) var(--my,-999px),#000 0%,transparent 70%);opacity: 0;transition: opacity .4s}.hero.is-lit::after,.p-hero.is-lit::after{opacity: .9}.fx-init *,.fx-init *::before,.fx-init *::after{transition: none !important}.fx .reveal{transition: opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay: var(--d,0s)}.fx .reveal:not(.is-seen){opacity: 0;transform: translateY(22px)}.fx .fig.reveal:not(.is-seen){transform: translateY(22px) scale(.985)}.kpi__value,.number__value{font-variant-numeric: tabular-nums}.fx .steps>li::before{transition: background .5s,color .5s,border-color .5s}.fx .steps>li::after{transform-origin: top;transform: scaleY(0);transition: transform .9s cubic-bezier(.4,0,.2,1) .25s}.fx .steps>li.is-seen::before{background: var(--accent);border-color: var(--accent);color: #fff}.fx .steps>li.is-seen::after{transform: none}.fx .thread__step::before{transform-origin: left;transform: scaleX(0);transition: transform .55s cubic-bezier(.4,0,.2,1) var(--d,0s)}.fx .thread__step::after{transform: scale(0);transition: transform .4s cubic-bezier(.3,1.6,.5,1) calc(var(--d,0s) + .2s)}.fx .thread__step>*{opacity: 0;transition: opacity .5s ease calc(var(--d,0s) + .25s)}.fx .thread.is-seen .thread__step::before,.fx .thread.is-seen .thread__step::after{transform: none}.fx .thread.is-seen .thread__step>*{opacity: 1}@media (max-width: 820px){.fx .thread__step::before{transform-origin: top}}.fx .timeline>li::before{transform: scale(0);transition: transform .45s cubic-bezier(.3,1.6,.5,1) .2s}.fx .timeline>li.is-seen::before{transform: none}.fx .hbars rect{transform-box: fill-box;transform-origin: left center;transition: transform 1.1s cubic-bezier(.3,.7,.2,1)}.fx .hbars rect.ch-after{transition-delay: .45s}.fx .hbars:not(.is-seen) rect{transform: scaleX(0)}.fx .fig--diagram svg>:not(title):not(defs){transition: opacity .5s ease var(--d,0s)}.fx .fig--diagram:not(.is-seen) svg>:not(title):not(defs){opacity: 0}.fx .fig--diagram .fx-draw{stroke-dasharray: var(--len);transition: opacity .2s ease var(--d,0s),stroke-dashoffset .8s cubic-bezier(.4,0,.2,1) var(--d,0s)}.fx .fig--diagram:not(.is-seen) .fx-draw{stroke-dashoffset: var(--len)}.fx pre.code.reveal{transition: clip-path 1.2s steps(14,end),opacity .3s}.fx pre.code.reveal:not(.is-seen){clip-path: inset(0 0 100% 0);opacity: 1;transform: none}@keyframes fx-pop{from{opacity: 0;transform: translateY(10px) scale(.98)}}.fx .card.fx-pop{animation: fx-pop .4s cubic-bezier(.2,.7,.2,1) var(--d,0s) both}.read-progress{position: fixed;top: 0;left: 0;right: 0;height: 3px;z-index: 60;background: var(--accent);transform-origin: left;transform: scaleX(0);pointer-events: none}@media print{.read-progress{display: none}}
