@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/jetbrains-mono-800-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/jetbrains-mono-800-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sora-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/sora-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/sora-500-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/sora-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/sora-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/sora-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/sora-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/sora-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/sora-800-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/sora-800-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.skip-link{z-index:999;background:var(--accent);color:#0b0c10;font-family:var(--font-mono);border-radius:var(--radius-sm);padding:10px 18px;font-size:14px;font-weight:700;text-decoration:none;position:absolute;top:-100%;left:16px}.skip-link:focus{top:16px}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}.container{width:min(var(--container-max), 100% - 80px);z-index:2;margin:0 auto;position:relative}:root{--bg:#0b0c10;--surface:#101218;--surface-2:#13151d;--text:#f3f4f8;--text-muted:#a9adbd;--text-subtle:#868b99;--border:#ffffff1a;--border-subtle:#ffffff0d;--error:#f87171;--error-rgb:248, 113, 113;--success:#4ade80;--success-rgb:74, 222, 128;--accent:#f0c63c;--accent-hover:#ffe27a;--accent-rgb:240, 198, 60;--accent-glow:0 0 0 1px rgba(var(--accent-rgb), .4), 0 0 24px rgba(var(--accent-rgb), .28);--font-sans:"Sora", sans-serif;--font-mono:"JetBrains Mono", monospace;--radius:18px;--radius-sm:12px;--radius-pill:999px;--transition:.18s;--container-max:1180px;--header-height:62px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.02em;margin:0;font-weight:700;line-height:1}p{margin:0}a{color:inherit}::selection{background:var(--accent);color:#0b0c10}.header{z-index:90;height:var(--header-height);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:#0b0c10b3;position:fixed;top:0;left:0;right:0}.header .container{align-items:center;gap:16px;height:100%;display:flex}.header__brand{font-family:var(--font-sans);letter-spacing:-.02em;align-items:center;gap:18px;font-weight:800;text-decoration:none;display:flex}.header__brand-cc{font-size:26px}.header__brand-role{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text);font-size:12px;font-weight:400}.header__nav{align-items:center;gap:6px;margin-left:auto;display:flex}.header__nav-link{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text);border-radius:var(--radius-pill);transition:color var(--transition);padding:8px 13px;font-size:12px;text-decoration:none}.header__nav-link:hover{color:var(--accent)}.header__nav-link--active{color:var(--accent);font-weight:800}.header__nav-link--cv{white-space:nowrap;border:1px solid var(--accent);color:var(--accent);box-shadow:0 0 0 1px rgba(var(--accent-rgb), .18), 0 0 16px rgba(var(--accent-rgb), .18);align-items:center;gap:.5em;display:inline-flex}.header__nav-link--cv svg{width:14px;height:14px}.header__nav-link--cv:hover{color:var(--accent);background:rgba(var(--accent-rgb), .1);box-shadow:var(--accent-glow)}.header__burger{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);cursor:pointer;width:42px;height:42px;transition:border-color var(--transition);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;margin-left:auto;display:none}.header__burger:hover{border-color:var(--accent)}.header__burger--open .header__burger-line{background:var(--accent)}.header__burger--open .header__burger-line:first-child{transform:translateY(7px)rotate(45deg)}.header__burger--open .header__burger-line:nth-child(2){opacity:0}.header__burger--open .header__burger-line:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.header__burger-line{background:var(--text);border-radius:2px;width:18px;height:2px;transition:transform .25s,background-color .25s}@media (width<=992px){.header__nav{display:none}.header__burger{display:flex}}.footer{border-top:1px solid var(--border);background:var(--surface);z-index:2;padding:14px 0;position:relative}.footer .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}@media (width<=860px){.footer .container{flex-direction:column;align-items:flex-start}}.footer__left{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:20px;font-size:12.5px;display:flex}.footer__copyright{color:var(--text-subtle);letter-spacing:.04em}.footer__right{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.footer__legal{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:20px;font-size:12.5px;display:flex}.footer__legal-link{color:var(--text-muted);transition:color var(--transition);text-decoration:none}.footer__legal-link:hover{color:var(--accent)}.footer__social{align-items:center;gap:8px;display:flex}.footer__social-link{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);width:40px;height:40px;color:var(--text);font-family:var(--font-mono);transition:color var(--transition), background-color var(--transition), border-color var(--transition);justify-content:center;align-items:center;font-size:14px;font-weight:700;text-decoration:none;display:flex}.footer__social-link svg{width:17px;height:17px}.footer__social-link:hover{background:var(--accent);color:#0b0c10;border-color:var(--accent)}html{scroll-padding-top:var(--header-height)}@media (width>=993px){html:has(.home){scroll-snap-type:y mandatory}}@media (prefers-reduced-motion:reduce){html:has(.home){scroll-snap-type:none}}@media (width>=993px){:is(.home section,html:has(.home) .footer){scroll-snap-align:start}.home section{min-height:calc(100vh - var(--header-height))}}.btn{font-family:var(--font-sans);border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text);background:var(--surface-2);transition:color var(--transition), background-color var(--transition), border-color var(--transition), transform var(--transition);cursor:pointer;align-items:center;gap:.5em;padding:13px 22px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn svg{width:16px;height:16px}.btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.btn--solid{background:var(--accent);border-color:var(--accent);color:#0b0c10;box-shadow:var(--accent-glow);font-weight:700}.btn--solid:hover{background:var(--accent-hover);color:#0b0c10}.btn--full{justify-content:center;width:100%;margin-top:2px}.chip{flex-wrap:wrap;gap:9px;margin-top:6px;padding:0;list-style:none;display:flex}.chip__item{font-family:var(--font-mono);letter-spacing:.03em;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);padding:7px 13px;font-size:12px}.menu-overlay{z-index:88;-webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;background:#0a0b0ff7;flex-direction:column;padding:84px 0 36px;transition:opacity .3s;display:flex;position:fixed;inset:0}.menu-overlay:before{content:"";pointer-events:none;background-image:linear-gradient(var(--border-subtle) 1px, transparent 1px), linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,#0000 100%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,#0000 100%)}.menu-overlay .container{flex-direction:column;flex:1;height:100%;display:flex}.menu-overlay--open{opacity:1;visibility:visible}.menu-overlay__links{flex-direction:column;gap:2px;margin-top:10px;display:flex;position:relative}.menu-overlay__link{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--text);border-bottom:1px solid var(--border-subtle);transition:color var(--transition);justify-content:space-between;align-items:center;padding:12px 0;font-size:clamp(30px,8vw,42px);font-weight:700;text-decoration:none;display:flex}.menu-overlay__link:hover{color:var(--accent)}.menu-overlay__link-index{font-family:var(--font-mono);color:var(--accent);font-size:14px;font-weight:700}.menu-overlay__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:auto;display:flex;position:relative}.menu-overlay__cv{min-width:160px;font-family:var(--font-sans);border-radius:var(--radius-pill);background:var(--accent);color:#0b0c10;box-shadow:var(--accent-glow);flex:1;justify-content:center;align-items:center;gap:.5em;padding:15px 22px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.menu-overlay__cv svg{width:16px;height:16px}.menu-overlay__social{gap:9px;display:flex}.menu-overlay__social-link{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);width:48px;height:48px;color:var(--text);font-family:var(--font-mono);transition:color var(--transition), background-color var(--transition), border-color var(--transition);justify-content:center;align-items:center;font-size:15px;font-weight:700;text-decoration:none;display:flex}.menu-overlay__social-link svg{width:19px;height:19px}.menu-overlay__social-link:hover{background:var(--accent);color:#0b0c10;border-color:var(--accent)}.sticky-socials{z-index:85;-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);background:#0b0c1099;border-left:none;border-radius:0 16px 16px 0;flex-direction:column;align-items:center;gap:18px;padding:18px 13px;display:flex;position:fixed;top:50%;left:0;transform:translateY(-50%)}.sticky-socials:after{content:"";background:var(--border);width:1px;height:36px}.sticky-socials__link{color:var(--text-muted);transition:color var(--transition), transform var(--transition), filter var(--transition);display:flex}.sticky-socials__link svg{width:20px;height:20px}.sticky-socials__link:hover{color:var(--accent);filter:drop-shadow(0 0 8px rgba(var(--accent-rgb), .5));transform:translateY(-2px)}@media (width<=992px){.sticky-socials{display:none}}.social-links,.social-links__item{display:contents}@keyframes reveal{0%{opacity:0;transform:translateY(60px)}to{opacity:1;filter:none;transform:none}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){[data-animation=fade]{animation:linear both reveal;animation-timeline:view();animation-range:entry entry 60%}}}#tarteaucitronRoot{font-family:var(--font-sans)}#tarteaucitronRoot *,#tarteaucitronRoot :before,#tarteaucitronRoot :after{box-sizing:border-box}#tarteaucitronRoot button{cursor:pointer;font-family:inherit}#tarteaucitronRoot ul{margin:0;padding:0;list-style:none}.tarteaucitron-modal-open-noscroll{overflow:hidden}.tac_visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#tarteaucitronPremium,#tarteaucitronPercentage,#tarteaucitronAlertSmall{display:none}#tarteaucitronBack{z-index:1000;-webkit-backdrop-filter:blur(6px);background:#0b0c10cc;border:0;width:100%;height:100%;display:none;position:fixed;inset:0}#tarteaucitronAlertBig{z-index:1002;text-align:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);width:min(560px,100% - 32px);max-height:calc(100vh - 32px);padding:60px 28px 28px;display:none;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 24px 64px #0000008c}#tarteaucitronAlertBig:focus{outline:0}.tarteaucitronBeforeVisible:before{content:"";z-index:1000;-webkit-backdrop-filter:blur(6px);background:#0b0c10cc;position:fixed;inset:0}#tarteaucitronDisclaimerAlert{color:var(--text);margin-bottom:24px;font-size:15px;line-height:1.6;display:block}#tarteaucitronDisclaimerAlert strong{font-weight:700}#tarteaucitronDisclaimerAlert a{color:var(--accent)}#tarteaucitronDisclaimerAlert .tarteaucitronPartnersList{color:var(--text-subtle);margin-top:8px;font-size:13px;display:block}#tarteaucitronRoot .tarteaucitronCTAButton,#tarteaucitronRoot #tarteaucitronCloseAlert,#tarteaucitronRoot #tarteaucitronPrivacyUrl,#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog,#tarteaucitronRoot .tarteaucitronAllow,#tarteaucitronRoot .tarteaucitronDeny{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);transition:color var(--transition), background-color var(--transition), border-color var(--transition), transform var(--transition);justify-content:center;align-items:center;gap:.5em;margin:0 4px 8px;padding:12px 20px;font-size:15px;font-weight:600;display:inline-flex}#tarteaucitronRoot .tarteaucitronCTAButton:hover,#tarteaucitronRoot #tarteaucitronCloseAlert:hover,#tarteaucitronRoot #tarteaucitronPrivacyUrl:hover,#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog:hover,#tarteaucitronRoot .tarteaucitronAllow:hover,#tarteaucitronRoot .tarteaucitronDeny:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}#tarteaucitronRoot #tarteaucitronCloseAlert,#tarteaucitronRoot #tarteaucitronPrivacyUrl{color:var(--text-muted);background:0 0;border-color:#0000;padding:10px 16px;font-size:14px;font-weight:500;text-decoration:underline}#tarteaucitronRoot #tarteaucitronCloseAlert:hover,#tarteaucitronRoot #tarteaucitronPrivacyUrl:hover{color:var(--accent);border-color:#0000}#tarteaucitronRoot #tarteaucitronCloseCross{width:32px;height:32px;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-pill);transition:color var(--transition), border-color var(--transition);background:0 0;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:12px;right:12px}#tarteaucitronRoot #tarteaucitronCloseCross:hover{color:var(--accent);border-color:var(--accent)}#tarteaucitronRoot a:focus-visible,#tarteaucitronRoot button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#tarteaucitronRoot .tarteaucitronCheck:before{content:"✓"}#tarteaucitronRoot .tarteaucitronCross:before{content:"✗"}#tarteaucitronRoot .tarteaucitronCheck:before,#tarteaucitronRoot .tarteaucitronCross:before{font-size:13px;line-height:1;display:inline-block}@keyframes tac-icon-reveal{0%{opacity:0;visibility:hidden;transform:translateY(10px)}to{opacity:1;visibility:visible;transform:none}}#tarteaucitronIcon{z-index:1000;background:0 0;width:auto;position:fixed;display:none!important}#tarteaucitronIcon #tarteaucitronManager{color:#0000;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);transition:border-color var(--transition), transform var(--transition);justify-content:center;align-items:center;padding:8px;display:flex}#tarteaucitronIcon #tarteaucitronManager:hover{border-color:var(--accent);transform:translateY(-2px)}#tarteaucitronIcon #tarteaucitronManager:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#tarteaucitronIcon #tarteaucitronManager img{width:28px;height:28px;display:block}#tarteaucitron{z-index:1003;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:min(860px,100% - 32px);max-height:min(80vh,720px);padding:0;display:none;position:fixed;top:0;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 24px 64px #0000008c}#tarteaucitron:focus{outline:0}#tarteaucitron .clear{display:none}#tarteaucitronClosePanel{width:fit-content;color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);transition:color var(--transition), border-color var(--transition);margin:16px 16px 0 auto;padding:8px 14px;font-size:14px;display:block}#tarteaucitronClosePanel:hover{color:var(--accent);border-color:var(--accent)}#tarteaucitronServices{padding:16px 28px 28px;overflow-y:auto}.tarteaucitronMainLine{border-bottom:1px solid var(--border);flex-direction:column;margin-bottom:8px;padding-bottom:24px}.tarteaucitronMainLine .tarteaucitronH1{color:var(--text);margin-bottom:16px;font-size:22px;font-weight:700;display:block}.tarteaucitronMainLine .tarteaucitronName{flex:initial!important}#tarteaucitronInfo,.tarteaucitronDetails{color:var(--text-muted);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin:0 0 16px;padding:14px 16px;font-size:14px;line-height:1.6;display:none}.tarteaucitronTitle{margin-top:16px}.tarteaucitronTitle button,.tarteaucitronTitle .asCatToggleBtn{text-align:left;width:100%;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:color var(--transition), border-color var(--transition);padding:12px 14px;font-size:13px;font-weight:600;display:block}.tarteaucitronTitle button:hover,.tarteaucitronTitle .asCatToggleBtn:hover{color:var(--accent);border-color:var(--accent)}.tarteaucitronPlus:before{content:"+";color:var(--accent);margin-right:8px}[aria-expanded=true] .tarteaucitronPlus:before{content:"−"}.tarteaucitronLine{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 14px;display:flex}.tarteaucitronLine:last-child{border-bottom:0}.tarteaucitronLine .tarteaucitronName{flex:260px;min-width:0}.tarteaucitronLine .tarteaucitronAsk{flex-wrap:wrap;flex:0 auto;min-width:0;display:flex}.tarteaucitronLine .tarteaucitronH3{color:var(--text);font-size:16px;font-weight:600;display:block}.tarteaucitronLine .tarteaucitronServiceDescription,.tarteaucitronLine .tarteaucitronStatusInfo,.tarteaucitronLine .tarteaucitronListCookies{color:var(--text-subtle);margin-top:4px;font-size:13px;line-height:1.5;display:block}.tarteaucitronLine a{color:var(--text-muted);font-size:13px}#tarteaucitronServices_mandatory .tarteaucitronAsk{display:none}#tarteaucitronNoServicesTitle{color:var(--text-subtle);font-size:14px}#tarteaucitronRoot .tarteaucitronIsAllowed .tarteaucitronAllow{color:#0b0c10;background:var(--success);border-color:var(--success)}#tarteaucitronRoot .tarteaucitronIsDenied .tarteaucitronDeny{color:#0b0c10;background:var(--error);border-color:var(--error)}#tarteaucitronRoot .tarteaucitronIsAllowed .tarteaucitronAllow:hover,#tarteaucitronRoot .tarteaucitronIsDenied .tarteaucitronDeny:hover{color:#0b0c10}#tarteaucitronRoot [aria-pressed=true]{font-weight:700}#tarteaucitronRoot .tarteaucitron-toggle-group{font-family:var(--font-mono);color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);transition:color var(--transition), border-color var(--transition);margin-top:8px;padding:4px 12px;font-size:12px;display:inline-block}#tarteaucitronRoot .tarteaucitron-toggle-group:hover{color:var(--accent);border-color:var(--accent)}#tarteaucitronSave{margin-top:20px}#tarteaucitronRoot #tarteaucitronSaveButton{color:#0b0c10;background:var(--accent);border-color:var(--accent);font-weight:700}#tarteaucitronRoot #tarteaucitronSaveButton:hover{color:#0b0c10;background:var(--accent-hover)}.tarteaucitronSelfLink{text-align:center;opacity:.55;transition:opacity var(--transition);margin-top:20px;display:block}.tarteaucitronSelfLink:hover{opacity:1}.tarteaucitronSelfLink img{width:auto;height:18px;display:inline-block}.tarteaucitron-spacer-20{height:20px}#tarteaucitronServices .tarteaucitronHidden{display:none}@media (width<=600px){#tarteaucitronRoot .tarteaucitronCTAButton{width:100%;margin:0 0 8px}#tarteaucitronRoot .tarteaucitronAsk{flex:100%;margin-top:4px}#tarteaucitronRoot .tarteaucitronAllow,#tarteaucitronRoot .tarteaucitronDeny{flex:auto;margin-left:0;margin-right:8px}#tarteaucitronServices{padding:16px}}.legal{padding:130px 0 90px;display:block}@media (width<=992px){.legal{padding:100px 0 60px}}.legal .container{max-width:760px}.legal__back{font-family:var(--font-mono);letter-spacing:.05em;color:var(--text-muted);transition:color var(--transition);align-items:center;font-size:12px;text-decoration:none;display:inline-flex}.legal__back:hover{color:var(--accent)}.legal__title{margin:22px 0 10px;font-size:clamp(32px,5vw,56px)}.legal__updated{font-family:var(--font-mono);color:var(--text-subtle);margin-bottom:46px;font-size:12px}.legal__content{color:var(--text-muted);font-size:16px;line-height:1.7}.legal__content h2{color:var(--text);margin:40px 0 14px;font-size:20px}.legal__content h3{color:var(--text);margin:26px 0 10px;font-size:16px}.legal__content p{margin:0 0 14px}.legal__content ul{margin:0 0 14px;padding-left:18px}.legal__content li{margin-bottom:8px}.legal__content strong{color:var(--text)}.legal__content a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.legal__content code{font-family:var(--font-mono);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.1em .4em;font-size:.9em}.legal__content mark{background:rgba(var(--accent-rgb), .12);border:1px dashed rgba(var(--accent-rgb), .5);border-radius:var(--radius-sm);color:var(--accent);font-family:var(--font-mono);padding:.4em .7em;font-size:12.5px;line-height:1.5;display:inline-block}section{flex-direction:column;justify-content:center;padding:90px 0;display:flex;position:relative;overflow-x:clip}@media (width<=992px){section{padding:45px 0}}section h2{margin-bottom:38px;font-size:clamp(34px,6vw,72px)}section:focus-visible{outline:2px solid var(--accent);outline-offset:-6px;border-radius:var(--radius)}.glow-orb{z-index:0;pointer-events:none;background:radial-gradient(circle, rgba(var(--accent-rgb), .16), transparent 65%);filter:blur(8px);border-radius:50%;width:520px;height:520px;position:absolute}.hero{min-height:100vh}.hero__subtitle{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);align-items:center;gap:9px;font-size:12px;display:inline-flex}.hero__subtitle:before{content:"";background:var(--accent);width:24px;height:1px;box-shadow:0 0 8px var(--accent)}.hero__name{letter-spacing:-.04em;margin-top:22px;font-size:clamp(60px,13vw,180px);font-weight:800;line-height:.86}.hero__name-outline{color:#0000;-webkit-text-stroke:1.5px var(--accent);text-stroke:1.5px var(--accent);filter:drop-shadow(0 0 18px rgba(var(--accent-rgb), .35));display:block}.hero__desc{color:var(--text-muted);max-width:40ch;margin-top:26px;font-size:clamp(17px,2vw,22px);line-height:1.55}.hero__desc b{color:var(--text);font-weight:600}.hero__cta{flex-wrap:wrap;gap:13px;margin-top:30px;display:flex}.hero__social{flex-wrap:wrap;gap:26px;margin-top:22px;display:flex}.hero__social-link{color:var(--text-muted);transition:color var(--transition);align-items:center;gap:9px;font-size:15px;font-weight:500;text-decoration:none;display:inline-flex}.hero__social-link svg{width:17px;height:17px}.hero__social-link:hover{color:var(--accent)}.about__columns{grid-template-columns:1fr 1.4fr;align-items:start;gap:48px;display:grid}@media (width<=860px){.about__columns{grid-template-columns:1fr;gap:24px}}.about__lead{font-family:var(--font-sans);font-size:clamp(22px,2.8vw,32px);font-weight:600;line-height:1.2}.about__lead em{color:var(--accent);font-style:normal}.about__text{color:var(--text-muted);margin-bottom:16px;font-size:17px;line-height:1.6}.project{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;align-items:center;gap:48px;padding:46px 0;display:grid}.project:first-of-type{border-top:none}.project:nth-of-type(2n) .project__media{order:2}.project__media{position:relative}.project__figure{margin:0}.project__img{aspect-ratio:16/11;object-fit:contain;width:100%;height:auto;display:block}.project__number{font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;font-size:13px;font-weight:700}.project__title{margin-top:10px;font-size:clamp(26px,3.4vw,40px)}.project__tags{margin:16px 0}.project__description{color:var(--text-muted);max-width:46ch;font-size:17px;line-height:1.6}.project__description+.project__description{margin-top:14px}.project__link{font-family:var(--font-mono);letter-spacing:.05em;color:var(--accent);align-items:center;gap:.45em;margin-top:18px;font-size:12px;font-weight:700;text-decoration:none;transition:gap .2s;display:inline-flex}.project__link:hover{gap:.8em}@media (width<=860px){.project{grid-template-columns:1fr;gap:22px;padding:34px 0}.project:nth-of-type(2n) .project__media{order:0}}.skills-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}@media (width<=860px){.skills-grid{grid-template-columns:1fr}}.skill-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:24px 22px}.skill-card__category{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;font-size:12px}.skill-card__list{margin:0;padding:0;list-style:none}.skill-card__item{border-top:1px solid var(--border-subtle);align-items:center;gap:11px;padding:9px 0;font-size:17px;font-weight:500;display:flex}.skill-card__item:first-child{border-top:none}.skill-card__item:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;flex-shrink:0}.skill-card--wide{grid-column:1/-1}.skill-card--wide .skill-card__item{align-items:flex-start}.skill-card--wide .skill-card__item:before{margin-top:9px}@media (width>=861px){.skill-card--wide .skill-card__list{grid-template-columns:repeat(2,1fr);column-gap:34px;display:grid}.skill-card--wide .skill-card__item:nth-child(2){border-top:none}}.contact{overflow:hidden}.contact .container{grid-template-columns:1fr 1fr;align-items:center;gap:64px;max-width:1080px;margin:0 auto;display:grid}@media (width<=860px){.contact .container{grid-template-columns:1fr;gap:30px}}.contact__title{margin-top:16px;font-size:clamp(40px,5.4vw,72px)}.contact__title em{color:#0000;-webkit-text-stroke:1.5px var(--accent);font-style:normal}.contact__subtitle{color:var(--accent)}.contact__text{color:var(--text-muted);max-width:34ch;margin:20px 0 0;font-size:18px;line-height:1.55}.contact__direct{flex-direction:column;gap:14px;margin-top:30px;font-style:normal;display:flex}.contact__direct-link{font-family:var(--font-mono);color:var(--text-muted);transition:color var(--transition);align-items:center;gap:11px;font-size:14px;text-decoration:none;display:inline-flex}.contact__direct-link svg{width:17px;height:17px}.contact__direct-link:hover{color:var(--accent)}.contact__direct-icon{color:var(--accent);font-weight:700;font-family:var(--font-mono);justify-content:center;width:22px;display:inline-flex}.contact__direct-icon svg{width:17px;height:17px}.contact-form{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);text-align:left;flex-direction:column;gap:16px;padding:30px;display:flex}.contact-form__row{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=860px){.contact-form__row{grid-template-columns:1fr}}.contact-form__label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:8px;font-size:11.5px;display:block}.contact-form__input,.contact-form__textarea{width:100%;font-family:var(--font-sans);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--transition), box-shadow var(--transition);padding:13px 15px;font-size:16px}.contact-form__input::placeholder,.contact-form__textarea::placeholder{color:var(--text-subtle)}.contact-form__input:focus,.contact-form__textarea:focus{border-color:var(--accent);box-shadow:var(--accent-glow);outline:none}.contact-form__textarea{resize:vertical;min-height:108px}.contact-form__input[aria-invalid=true],.contact-form__textarea[aria-invalid=true]{border-color:var(--error)}.contact-form__input[aria-invalid=true]:focus,.contact-form__textarea[aria-invalid=true]:focus{border-color:var(--error);box-shadow:0 0 0 1px rgba(var(--error-rgb), .4)}.contact-form__error,.contact-form__hint{font-family:var(--font-mono);margin-top:7px;font-size:11.5px;line-height:1.4}.contact-form__error{color:var(--error)}.contact-form__hint{color:var(--text-subtle);text-align:right}.contact-form__notice{color:var(--text-subtle);margin:0;font-size:13px;line-height:1.5}.contact-form__notice a{color:inherit;text-underline-offset:3px;transition:color var(--transition);text-decoration:underline}.contact-form__notice a:hover{color:var(--accent)}.contact-form__feedback{border-radius:var(--radius-sm);border:1px solid;margin:2px 0 0;padding:12px 14px;font-size:14.5px;line-height:1.5}.contact-form__feedback--success{color:var(--success);border-color:rgba(var(--success-rgb), .4);background:rgba(var(--success-rgb), .08)}.contact-form__feedback--error{color:var(--error);border-color:rgba(var(--error-rgb), .4);background:rgba(var(--error-rgb), .08)}.contact-form__honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.contact-form .btn[disabled]{opacity:.6;cursor:not-allowed}
