@font-face{font-family:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b.138s14ivx2xer.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892.3b2emle-7szv-.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7.p.13rul5q9jl2r0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b.138s14ivx2xer.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892.3b2emle-7szv-.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7.p.13rul5q9jl2r0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b.138s14ivx2xer.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892.3b2emle-7szv-.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:800;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7.p.13rul5q9jl2r0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(../media/a2947afc6a06879b.138s14ivx2xer.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(../media/651aaf1801011892.3b2emle-7szv-.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:900;font-stretch:100%;font-display:swap;src:url(../media/75affa71d1e2f6a7.p.13rul5q9jl2r0.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}.archivo_44928e11-module__wtOfwW__className{font-family:Archivo,Arial,sans-serif;font-style:normal}.archivo_44928e11-module__wtOfwW__variable{--font-display:"Archivo", Arial, sans-serif}
@font-face{font-family:Spectral;font-style:italic;font-weight:300;font-display:swap;src:url(../media/3cb9d30c4f3230bf.0-tzgyjgwpcl5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:italic;font-weight:300;font-display:swap;src:url(../media/acf529a6a807a6cf.3m0cpgfs11isr.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Spectral;font-style:italic;font-weight:300;font-display:swap;src:url(../media/b72f5696dffb2ca0.0zvs8eazz2aod.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:italic;font-weight:300;font-display:swap;src:url(../media/ad2eb9f870181c8c.0fik2s85za3ry.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:italic;font-weight:300;font-display:swap;src:url(../media/af3268daf073e866.2a-ao7sae-z4-.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:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(../media/899d417cf51b4db5.19vb09ob5doxh.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(../media/232a56b5f5369ff7.0yfi29l1u9bd0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(../media/3ff90e1fb2350a24.0a1hm_xb2c74s.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(../media/d24da8e3a5721bc2.3i1nhidd5eq56.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(../media/c77846bcb3371a93.0z1_zqzal59bw.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:Spectral;font-style:italic;font-weight:500;font-display:swap;src:url(../media/e91c9d3333f55cb6.25ma7cg-sahs2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:italic;font-weight:500;font-display:swap;src:url(../media/2fd7a91ea9e80c63.2l73m_n0_ena8.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Spectral;font-style:italic;font-weight:500;font-display:swap;src:url(../media/74cdd852f516c0aa.3za_bzd_y9w0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:italic;font-weight:500;font-display:swap;src:url(../media/751b79a01b9ab64a.0x5-8ya7e072i.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:italic;font-weight:500;font-display:swap;src:url(../media/ef598559186306ee.3246k2d1y3v33.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:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(../media/2d3ef8fce7cfa268.37lje8yqb7zb1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(../media/75a6d87aade94654.0evyg_ztyl20f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(../media/494a33f8b0edf1d9.08ak517d9fzgd.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(../media/e5049345b2fe4357.15o24yzq5eav5.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(../media/f577e48814abc562.23nl9g_nwa3oy.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:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bf40d83aa9c72fb.0eiiypsnsyqsy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3846cd278554cc73.3vsmwt5f90wci.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9a23b5cef6e04c73.3j251-ess-mn2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c057f24894f01f05.3ivaoevkvmhhp.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(../media/98f992443ccb276f.3g0gucm_m7uet.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:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(../media/61b0fa473c495204.2lldiiucvp5ql.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ba9e5337ec18f7ed.15rg1gnquejws.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(../media/52a3cc83f9028e85.00w5se4dszvo-.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(../media/512edca1ee5836a2.1u_tr3w8_n006.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:500;font-display:swap;src:url(../media/23d3c9ac01cd973c.0ypjxwhkw76ry.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}.spectral_816d187a-module__rpwARa__className{font-family:Spectral,Georgia,serif}.spectral_816d187a-module__rpwARa__variable{--font-serif:"Spectral", Georgia, serif}
@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fef07dbb0973bf53.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8a480f0b521d4e75.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53b9e256198e5412.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7178b3e590c64307.0i3h3th1vs4m7.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/caa3a2e1cccd8315.0zr6hhvz-h9nw.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:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fef07dbb0973bf53.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/8a480f0b521d4e75.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/53b9e256198e5412.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7178b3e590c64307.0i3h3th1vs4m7.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/caa3a2e1cccd8315.0zr6hhvz-h9nw.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:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fef07dbb0973bf53.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8a480f0b521d4e75.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/53b9e256198e5412.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7178b3e590c64307.0i3h3th1vs4m7.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/caa3a2e1cccd8315.0zr6hhvz-h9nw.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}.geist_89bc4b32-module__shFyqq__className{font-family:Geist,system-ui,sans-serif;font-style:normal}.geist_89bc4b32-module__shFyqq__variable{--font-body:"Geist", system-ui, sans-serif}
:root{--paper:#f2f0ec;--paper-2:#e7e4dd;--ink:#141414;--ink-2:#33322e;--stone:#7c776c;--stone-2:#615d53;--line:#cfc9bc;--accent:#f0512a;--accent-2:#d23f1b;--on-ink:#f2f0ec;--on-ink-mut:#b4aea2;--font-display:var(--font-display), "Archivo", -apple-system, sans-serif;--font-serif:var(--font-serif), "Spectral", Georgia, serif;--font-body:var(--font-body), "Geist", -apple-system, system-ui, sans-serif;--container:1360px;--gutter:clamp(20px, 5vw, 72px);--radius:2px;--e-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55;overflow-x:hidden}img,svg,picture{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0}p{text-wrap:pretty;margin:0}h1,h2,h3,h4{text-wrap:balance;margin:0}::selection{background:var(--accent);color:var(--on-ink)}.wrap{max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:clamp(48px,7.5vw,110px);position:relative}.section:not([class*=band-]):has(+.section:not([class*=band-])){padding-bottom:clamp(26px,3.4vw,52px)}.section:not([class*=band-])+.section:not([class*=band-]){padding-top:clamp(26px,3.4vw,52px)}.band-paper2{background:var(--paper-2)}.band-ink{background:var(--ink);color:var(--on-ink)}.ed-head{border-top:3px solid var(--ink);grid-template-columns:auto 1fr;align-items:center;gap:clamp(18px,3vw,44px);margin-bottom:clamp(36px,5vw,72px);padding-top:20px;display:grid;position:relative}.ed-head.reveal{opacity:1;transform:none}.ed-head{border-top-color:#0000}.ed-head:before{content:"";background:var(--ink);transform-origin:0;height:3px;transition:transform .5s var(--e-out);position:absolute;top:-3px;left:0;right:0;transform:scaleX(0)}.ed-head.in:before{transform:scaleX(1)}.band-ink .ed-head:before{background:var(--on-ink)}.ed-head .ed-title{clip-path:inset(0 0 100%);transition:clip-path .55s var(--e-out), transform .55s var(--e-out);transition-delay:.1s;transform:translateY(.1em)}.ed-head.in .ed-title{clip-path:inset(-30% -6%);transform:none}.ed-head .ed-index,.ed-head .ed-lead{opacity:0;transition:opacity .5s var(--e-out) .18s, color .4s var(--e-out)}.ed-head.in .ed-index,.ed-head.in .ed-lead{opacity:1}.band-ink .ed-head{border-top-color:var(--on-ink)}.ed-index{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--stone-2);transition:color .4s var(--e-out);margin:0;font-size:clamp(40px,7vw,96px);font-weight:800;line-height:.8}.section-active .ed-index{color:var(--accent)}.band-ink .ed-index{color:var(--on-ink-mut)}.band-ink.section-active .ed-index{color:var(--accent)}.ed-title{font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase;font-size:clamp(30px,5vw,64px);font-weight:800;line-height:.94}.ed-lead{font-family:var(--font-body);color:var(--ink-2);max-width:48ch;margin-top:12px;font-size:clamp(16px,1.8vw,20px);line-height:1.5}.band-ink .ed-lead{color:var(--on-ink-mut)}@media (max-width:720px){.ed-head{grid-template-columns:1fr;gap:6px}}.small-label{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--stone-2);font-size:12px;font-weight:600}.mut{color:var(--stone-2)}.topnav{z-index:60;background:var(--paper);border-bottom:2px solid var(--ink);position:sticky;top:0}.topnav.scrolled{box-shadow:0 1px 0 var(--ink)}.topnav-inner{justify-content:space-between;align-items:center;gap:clamp(20px,4vw,56px);height:64px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:10px;font-size:18px;font-weight:800;display:inline-flex}.brand .brand-mark{color:var(--accent)}.nav-links{align-items:center;gap:26px;display:flex}.nav-links a{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink);transition:color .2s var(--e-out), transform 80ms var(--e-out);padding-block:6px;font-size:13px;font-weight:600;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;width:100%;height:3px;transition:transform .25s var(--e-out);position:absolute;bottom:0;left:0;transform:scaleX(0)}.nav-links a.active{color:var(--accent)}@media (hover:hover){.nav-links a:hover{color:var(--accent)}}.nav-links a.active:after{transform:scaleX(1)}@media (hover:hover){.nav-links a:hover:after{transform:scaleX(1)}}.menu-toggle{border:2px solid var(--ink);border-radius:2px;justify-content:center;align-items:center;width:46px;height:46px;display:none}.menu-barres{width:20px;height:14px;display:block;position:relative}.menu-barres span{background:var(--ink);width:100%;height:2px;transition:transform .32s var(--e-out), opacity .2s var(--e-out);border-radius:1px;position:absolute;left:0}.menu-barres span:first-child{top:0}.menu-barres span:nth-child(2){top:6px}.menu-barres span:nth-child(3){top:12px}.menu-toggle[aria-expanded=true] .menu-barres span:first-child{transform:translateY(6px)rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-barres span:nth-child(2){opacity:0;transform:scaleX(.4)}.menu-toggle[aria-expanded=true] .menu-barres span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}@media (prefers-reduced-motion:reduce){.menu-barres span{transition:none}}.topnav-inner .lang-toggle{margin-left:auto}@media (max-width:860px){.nav-links{display:none}.menu-toggle{display:inline-flex}}@media (max-width:560px){.topnav-inner{gap:10px;height:58px}.brand{font-size:14px}.menu-toggle{width:40px;height:40px}.menu-barres{width:18px;height:13px}.menu-barres span:nth-child(2){top:5.5px}.menu-barres span:nth-child(3){top:11px}.menu-toggle[aria-expanded=true] .menu-barres span:first-child{transform:translateY(5.5px)rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-barres span:nth-child(3){transform:translateY(-5.5px)rotate(-45deg)}}@media (max-width:380px){.topnav-inner{gap:8px}.brand{font-size:12px}}.overlay-menu{z-index:80;background:var(--paper);color:var(--ink);border-bottom:2px solid var(--ink);clip-path:inset(0 0 100%);transition:clip-path .38s var(--e-out);pointer-events:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 18px 28px -22px #14141480}.overlay-menu.open{clip-path:inset(0);pointer-events:auto}.overlay-inner{max-height:calc(100dvh - 140px);padding-block:6px 16px;overflow-y:auto}.overlay-nav{flex-direction:column;display:flex}.overlay-nav a{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;color:var(--ink);border-bottom:1px solid var(--line);opacity:0;transition:opacity .25s var(--e-out), transform .25s var(--e-out), color .2s var(--e-out);align-items:baseline;gap:12px;padding:15px 2px;font-size:clamp(15px,4vw,18px);font-weight:700;line-height:1;display:flex;transform:translateY(6px)}.overlay-menu.open .overlay-nav a{opacity:1;transform:none}.overlay-menu.open .overlay-nav a:first-child{transition-delay:50ms}.overlay-menu.open .overlay-nav a:nth-child(2){transition-delay:90ms}.overlay-menu.open .overlay-nav a:nth-child(3){transition-delay:.13s}.overlay-menu.open .overlay-nav a:nth-child(4){transition-delay:.17s}.overlay-menu.open .overlay-nav a:nth-child(5){transition-delay:.21s}.overlay-menu.open .overlay-nav a:nth-child(6){transition-delay:.25s}.overlay-nav a .on{font-family:var(--font-body);color:var(--stone-2);letter-spacing:.08em;font-size:11px;font-weight:600}@media (hover:hover){.overlay-nav a:hover{color:var(--accent)}}.overlay-nav a:active{color:var(--accent)}.overlay-foot{color:var(--stone-2);flex-wrap:wrap;align-items:baseline;gap:8px 18px;padding-top:14px;font-size:13px;display:flex}.overlay-foot a{color:var(--ink);font-weight:500}@media (prefers-reduced-motion:reduce){.overlay-menu,.overlay-nav a{transition:none}}.btn{min-height:50px;font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;transition:transform 80ms var(--e-out), background .2s var(--e-out), color .2s var(--e-out), border-color .2s var(--e-out);border:2px solid #0000;border-radius:2px;align-items:center;gap:10px;padding:14px 28px;font-size:14px;font-weight:700;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.btn-primary{background:var(--accent);color:var(--on-ink);border-color:var(--accent)}@media (hover:hover){.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2)}}.btn-ink{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}@media (hover:hover){.btn-ink:hover{background:var(--accent);border-color:var(--accent)}}.btn-outline{border-color:var(--ink);color:var(--ink);background:0 0}@media (hover:hover){.btn-outline:hover{background:var(--ink);color:var(--on-ink)}}.band-ink .btn-outline{border-color:var(--on-ink);color:var(--on-ink)}@media (hover:hover){.band-ink .btn-outline:hover{background:var(--on-ink);color:var(--ink)}}.arrow:after{content:"→";transition:transform .2s var(--e-out)}@media (hover:hover){.arrow:hover:after{transform:translate(4px)}}.link{background-image:linear-gradient(var(--accent), var(--accent));min-height:24px;transition:background-size .28s var(--e-out), color .2s var(--e-out), transform 80ms var(--e-out);background-position:0 100%;background-repeat:no-repeat;background-size:0% 2px;align-items:center;padding-bottom:2px;font-weight:600;display:inline-flex;position:relative}@media (hover:hover){.link:hover{color:var(--accent);background-size:100% 2px}}.link:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.hero{padding-top:clamp(12px,1.8vw,20px);padding-bottom:clamp(24px,3vw,40px);position:relative}.hero-grid{gap:clamp(12px,1.8vw,20px);display:grid}.hero-top{display:block}.hero-folio{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;margin:0 0 14px;font-size:13px;font-weight:600;display:flex}.hero-name{font-family:var(--font-display);letter-spacing:-.04em;text-transform:uppercase;margin:0;font-size:clamp(48px,min(10.45vw,14.3vh),209px);font-weight:900;line-height:.88}.hero-name .accent{color:var(--accent)}.hero-sub{font-family:var(--font-body);color:var(--ink-2);max-width:42ch;margin-top:clamp(14px,1.8vw,20px);font-size:clamp(16px,1.7vw,20px);font-weight:500;line-height:1.4}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:clamp(16px,2vw,24px);display:flex}.hero-media{margin-top:clamp(28px,4vw,44px);position:relative}.hero-media .frame{border-radius:var(--radius);aspect-ratio:21/9;background:var(--paper-2);border:2px solid var(--ink);position:relative;overflow:hidden}.hero-media .frame picture{display:block;position:absolute;inset:0}.hero-media .frame img{object-fit:cover;width:100%;height:100%}.hero-media .cap{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--stone-2);justify-content:space-between;gap:12px;margin-top:10px;font-size:12px;font-weight:600;display:flex}.hero-strip{background:var(--ink);color:var(--on-ink);border-radius:2px;grid-template-columns:1fr 1fr;gap:clamp(10px,1.4vw,16px) clamp(20px,3vw,44px);margin-top:clamp(16px,2vw,24px);padding:14px clamp(18px,3vw,28px);display:grid}.hero-strip .item:first-child{grid-column:1/-1}@media (max-width:640px){.hero-strip{grid-template-columns:1fr}.hero-strip .item:first-child{grid-column:auto}}.hero-strip .item{flex-direction:column;gap:3px;display:flex}.hero-strip .item .k{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--on-ink-mut);font-size:11px;font-weight:600}.hero-strip .item .v{font-size:15px;font-weight:500}.avail{align-items:center;gap:9px;font-weight:600;display:inline-flex}.avail .dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 60%, transparent);border-radius:50%;animation:2.4s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.avail .dot{animation:none}}.about-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:clamp(32px,6vw,80px);display:grid}@media (max-width:900px){.about-grid{grid-template-columns:1fr}}.about-body{color:var(--ink-2);max-width:60ch;margin-top:22px;font-size:17px;line-height:1.65}.about-body+.about-body{margin-top:16px}.about-stat{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.01em;color:var(--ink);max-width:30ch;margin-top:clamp(26px,4vw,38px);font-size:clamp(20px,2.4vw,30px);font-weight:700;line-height:1.3}.about-stat span,.about-stat .u{color:var(--accent)}.about-stat em{font-family:var(--font-body);text-transform:none;color:var(--stone-2);margin-top:6px;font-size:15px;font-style:normal;font-weight:500;display:block}.about-portrait{position:relative}.about-portrait .frame{border-radius:var(--radius);aspect-ratio:4/5;background:var(--paper-2);border:2px solid var(--ink);position:relative;overflow:hidden}.about-portrait .frame picture{display:block;position:absolute;inset:0}.about-portrait .frame img{object-fit:cover;width:100%;height:100%}.about-portrait .cap{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--stone-2);margin-top:10px;font-size:12px;font-weight:600}.metrics{display:none}.facts{margin-top:clamp(24px,4vw,36px)}.facts .row{border-top:1px solid var(--line);grid-template-columns:38% 1fr;gap:16px;padding:13px 0;display:grid}.facts .row:last-child{border-bottom:1px solid var(--line)}.facts .k{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--stone-2);font-size:11px;font-weight:600}.facts .v{font-size:15px}.xp{border-top:3px solid var(--ink)}.xp-row{border-bottom:1px solid var(--line);grid-template-columns:230px 1fr;gap:clamp(20px,4vw,52px);padding:clamp(26px,4vw,44px) 0;display:grid}@media (max-width:720px){.xp-row{grid-template-columns:1fr;gap:10px}}.xp-when{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:13px;font-weight:700}.xp-role{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;font-size:clamp(21px,2.6vw,32px);font-weight:800;line-height:1.04}.xp-org{color:var(--stone-2);margin-top:4px;font-size:15px;font-weight:500}.xp-points{color:var(--ink-2);max-width:62ch;margin:16px 0 0;padding-left:18px;font-size:15.5px}.xp-group{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin:0;padding:clamp(30px,4.5vw,50px) 0 0;font-size:11px;font-weight:700}.xp-group:first-child{padding-top:clamp(16px,2vw,22px)}.xp-points li{margin-bottom:7px}.xp-points li::marker{color:var(--accent)}.pub{grid-template-columns:1.5fr 1fr;align-items:center;gap:clamp(32px,5vw,72px);display:grid}@media (max-width:860px){.pub{grid-template-columns:1fr}}.pub:not(:has(.pub-side)){grid-template-columns:1fr}.pub-title{font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase;color:var(--on-ink);font-size:clamp(30px,4.6vw,60px);font-weight:800;line-height:.98}.pub-sub{font-family:var(--font-body);color:var(--on-ink-mut);margin-top:16px;font-size:clamp(17px,2vw,21px);font-weight:500}.pub-points{color:var(--on-ink-mut);max-width:60ch;margin:24px 0 30px;padding-left:18px;font-size:15.5px}.pub-points li{margin-bottom:10px}.pub-points li::marker{color:var(--accent)}.pub-actions{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.pub-doi{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--on-ink-mut);font-size:12px;font-weight:600}.pub-side{border-left:3px solid var(--accent);padding-left:clamp(20px,3vw,36px)}@media (max-width:860px){.pub-side{border-left:0;border-top:3px solid var(--accent);padding-top:26px;padding-left:0}}.pub-side .k{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--on-ink-mut);font-size:11px;font-weight:600}.pub-side .v{font-family:var(--font-display);text-transform:uppercase;margin-top:6px;font-size:26px;font-weight:800}.pub-side .v.accent{color:var(--accent)}.pub-side .row+.row{margin-top:22px}.free{grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,40px);display:grid}@media (max-width:720px){.free{grid-template-columns:1fr}}.free-item{border-top:3px solid var(--ink);padding-top:22px}.free-when{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:13px;font-weight:700}.free-item h3{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;margin:12px 0;font-size:clamp(20px,2.4vw,30px);font-weight:800;line-height:1.02}.free-item p{color:var(--ink-2);font-size:15.5px}.subhead{font-family:var(--font-display);letter-spacing:0;text-transform:uppercase;margin-bottom:18px;font-size:20px;font-weight:800}.softskills{flex-wrap:wrap;gap:8px;margin-top:26px;display:flex}.softskills .s{font-family:var(--font-body);border:1px solid var(--line);color:var(--stone-2);border-radius:2px;padding:8px 14px;font-size:14px}.edu{border-top:3px solid var(--ink)}.edu-row{border-bottom:1px solid var(--line);grid-template-columns:170px 1fr;gap:clamp(20px,4vw,44px);padding:22px 0;display:grid}@media (max-width:620px){.edu-row{grid-template-columns:1fr;gap:6px}}.edu-when{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:14px;font-weight:700}.edu-title{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;font-size:20px;font-weight:800}.edu-org{color:var(--stone-2);margin-top:4px;font-size:15px}.lang-toggle{border:2px solid var(--accent);height:34px;font-family:var(--font-display);letter-spacing:.08em;border-radius:2px;justify-content:center;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.lang-part{align-items:center;display:inline-flex}.lang-sep{color:color-mix(in srgb, var(--accent) 45%, transparent);padding:0 5px;font-weight:500}.lang-code{color:color-mix(in srgb, var(--accent) 62%, transparent);transition:color .2s var(--e-out), transform 80ms var(--e-out);padding:2px 1px;font-weight:500;display:inline-block}.lang-code-actif{color:var(--accent);font-weight:800}@media (hover:hover){a.lang-code:hover{color:var(--accent)}}a.lang-code:active{transform:translateY(1px)}.lang-toggle:focus-within{outline:3px solid var(--accent);outline-offset:3px}.lang-toggle-overlay{border-color:var(--accent)}.contact{grid-template-columns:1fr 1.15fr;align-items:start;gap:clamp(32px,4.5vw,64px);display:grid}.contact-intro{grid-column:1/-1}.contact-coords{grid-area:2/1}.contact .cform{grid-area:2/2;margin-top:0}.contact-intro{margin-bottom:clamp(6px,1vw,12px)}.contact-intro .hero-actions{margin-top:clamp(18px,2.4vw,24px)!important}@media (max-width:860px){.contact{grid-template-columns:1fr;gap:40px}.contact-intro,.contact-coords,.contact .cform{grid-area:auto}}.contact-title{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;font-size:clamp(15px,1.9vw,22px);font-weight:800;line-height:1.2}.contact-lead{font-family:var(--font-body);color:var(--ink-2);max-width:46ch;margin-top:16px;font-size:clamp(15.5px,1.6vw,17.5px);font-weight:400;line-height:1.6}.contact-coords .row{border-top:1px solid var(--line);padding:16px 0}.contact-coords .row:last-child{border-bottom:1px solid var(--line)}.contact-coords .k{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--stone-2);margin-bottom:6px;font-size:11px;font-weight:600}.contact-coords .v{font-size:17px}.foot{border-top:3px solid var(--ink);padding-block:36px}.foot-inner{color:var(--stone-2);font-size:13px;font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;font-weight:600;display:flex}.foot-links{flex-wrap:wrap;align-items:center;gap:20px;display:flex}@media (prefers-reduced-motion:no-preference){.hero-top>div>*,.hero-media,.hero-strip .item{animation:hero-entree .6s var(--e-out) both}.hero-top>div>:first-child{animation-delay:40ms}.hero-top>div>:nth-child(2){animation-delay:.1s}.hero-top>div>:nth-child(3){animation-delay:.16s}.hero-top>div>:nth-child(4){animation-delay:.22s}.hero-top>div>:nth-child(5){animation-delay:.28s}.hero-top>div>:nth-child(6){animation-delay:.34s}.hero-media{animation-delay:.16s}.hero-strip .item:first-child{animation-delay:.4s}.hero-strip .item:nth-child(2){animation-delay:.46s}.hero-strip .item:nth-child(3){animation-delay:.52s}}@keyframes hero-entree{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (hover:hover){.xp-row,.edu-row{position:relative}.xp-row:before,.edu-row:before{content:"";background:var(--accent);transform-origin:top;width:3px;transition:transform .3s var(--e-out);position:absolute;top:0;bottom:0;left:-12px;transform:scaleY(0)}.xp-row:hover:before,.edu-row:hover:before{transform:scaleY(1)}.xp-row>*,.edu-row>*{transition:transform .25s var(--e-out)}.xp-row:hover>*,.edu-row:hover>*{transform:translate(3px)}.skills-table tbody tr{transition:background .25s var(--e-out)}.skills-table tbody tr:hover{background:color-mix(in srgb, var(--accent) 5%, transparent)}.skills-table tbody tr:hover .skills-domain{color:var(--accent)}}.skills-domain{transition:color .25s var(--e-out)}.reveal{opacity:0;transform:translateY(var(--dy,24px));transition:opacity .5s var(--e-out), transform .5s var(--e-out)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{transition:none;opacity:1!important;transform:none!important}html{scroll-behavior:auto}.ed-head:before{transition:none;transform:scaleX(1)!important}.ed-head .ed-title{transition:none;clip-path:none!important;transform:none!important}.ed-head .ed-index,.ed-head .ed-lead{transition:none;opacity:1!important}.xp-row>*,.edu-row>*,.xp-row:before,.edu-row:before,.skills-table tbody tr{transition:none}}.proj-index{border-top:3px solid var(--ink)}.proj-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,56px);padding:clamp(28px,4vw,60px) 0;display:grid}.proj-row:nth-child(2n) .proj-media{order:-1}@media (max-width:820px){.proj-row,.proj-row:nth-child(2n){grid-template-columns:1fr;gap:18px}.proj-row:nth-child(2n) .proj-media{order:0}}.proj-head,.pub-head,.art-head{align-items:baseline;gap:16px;display:flex}.pub-head,.art-head{margin:0 0 clamp(12px,1.6vw,18px)}.proj-num,.pub-num,.art-num{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--accent);font-size:clamp(30px,4vw,56px);font-weight:900;line-height:.86}.proj-kind{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--stone-2);font-size:12px;font-weight:600}.proj-title-btn{text-align:left;margin:12px 0 0;display:block}.proj-title-btn h3{font-family:var(--font-display);letter-spacing:-.035em;text-transform:uppercase;transition:color .2s var(--e-out);font-size:clamp(30px,5vw,68px);font-weight:900;line-height:.92}@media (hover:hover){.proj-title-btn:hover h3{color:var(--accent)}}.proj-title-btn:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.proj-specs{flex-wrap:wrap;gap:10px 20px;margin:18px 0 14px;display:flex}.proj-specs .spec{align-items:center;gap:8px;font-size:14px;display:flex}.proj-specs .sk{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--stone-2);font-size:11px;font-weight:600}.proj-specs .sv{font-family:var(--font-display);letter-spacing:.02em;border:1px solid var(--line);color:var(--ink);border-radius:2px;padding:5px 11px;font-size:12px;font-weight:600;line-height:1.3}.proj-desc{color:var(--ink-2);max-width:46ch;font-size:16px;line-height:1.55}.proj-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;display:flex}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.tag{font-family:var(--font-display);border:1px solid var(--line);letter-spacing:.04em;text-transform:uppercase;color:var(--stone-2);border-radius:2px;padding:6px 12px;font-size:12px;font-weight:600}.proj-open{min-height:32px;color:var(--accent);font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.proj-open:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.proj-media{position:relative}.proj-media-btn{text-align:left;width:100%;display:block}.proj-media-btn:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.proj-frame{border-radius:var(--radius);aspect-ratio:16/10;background:var(--paper-2);border:2px solid var(--ink);position:relative;overflow:hidden}.proj-frame picture{display:block;position:absolute;inset:0}.proj-frame img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--e-out)}@media (hover:hover){.proj-media-btn:hover .proj-frame img{transform:scale(1.05)}}.proj-frame .badge{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--on-ink);background:var(--accent);padding:7px 13px;font-size:12px;font-weight:700;position:absolute;top:0;right:0}.proj-frame .caption{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--on-ink);background:var(--ink);padding:7px 12px;font-size:11px;font-weight:600;position:absolute;bottom:0;left:0}.proj-frame.blueprint-field{background:var(--paper-2);place-items:center;display:grid}.proj-frame.blueprint-field:before{content:"";background-image:linear-gradient(to right, color-mix(in srgb, var(--stone) 24%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--stone) 24%, transparent) 1px, transparent 1px);opacity:.5;background-size:26px 26px;position:absolute;inset:0}.proj-frame .blueprint{z-index:1;width:60%;height:60%;color:var(--accent);position:relative}.proj-frame .blueprint .stroke{fill:none;stroke:currentColor;stroke-width:1.4px}.proj-frame .blueprint .thin{fill:none;stroke:color-mix(in srgb, var(--accent) 50%, transparent);stroke-width:.8px}.proj-frame .blueprint .fillc{fill:color-mix(in srgb, var(--accent) 12%, transparent);stroke:currentColor;stroke-width:1.4px}.proj-frame .blueprint .bar{fill:var(--accent)}.proj-frame .blueprint .dim{stroke:color-mix(in srgb, var(--stone-2) 80%, transparent);stroke-width:.7px}.proj-frame .blueprint text{font-family:var(--font-body);letter-spacing:.05em;fill:var(--stone-2);text-transform:uppercase;font-size:5.4px}@media (prefers-reduced-motion:no-preference){.proj-media-btn .proj-frame:has(img){clip-path:inset(0 100% 0 0);transition:clip-path .75s var(--e-out)}:is(.proj-row.in .proj-media-btn .proj-frame:has(img),.proj-card.in .proj-media-btn .proj-frame:has(img)){clip-path:inset(0)}}.proj-group{margin-top:clamp(48px,7vw,96px)}.proj-group-head{border-top:3px solid var(--ink);margin-bottom:clamp(20px,3vw,32px);padding-top:18px}.proj-group-title{font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase;font-size:clamp(22px,3vw,34px);font-weight:900;line-height:1}.proj-group-lead{color:var(--ink-2);max-width:52ch;margin-top:8px;font-size:16px;line-height:1.5}.proj-group-tight{margin-top:clamp(28px,4vw,48px)}.proj-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,36px);display:grid}.proj-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:900px){.proj-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.proj-grid{grid-template-columns:1fr}}@media (min-width:901px){.proj-grid-3>.proj-card:not(:nth-child(3n+1)),.proj-grid-2>.proj-card:nth-child(2n){border-left:1px solid var(--line);padding-left:clamp(20px,3vw,36px)}}@media (min-width:561px) and (max-width:900px){.proj-grid>.proj-card:nth-child(2n){border-left:1px solid var(--line);padding-left:clamp(20px,3vw,36px)}}.proj-card{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.proj-card .proj-media{width:100%;margin-bottom:4px}.proj-card .proj-title-btn{margin:0}.proj-head-title{align-items:center}.proj-card .proj-title-btn h4{font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase;transition:color .2s var(--e-out);font-size:clamp(20px,2.2vw,26px);font-weight:900;line-height:1}@media (hover:hover){.proj-card .proj-title-btn:hover h4{color:var(--accent)}}.proj-dialog{background:0 0;border:0;width:100%;max-width:min(1160px,100%);max-height:calc(100dvh - clamp(24px,6vw,88px));margin:auto;padding:0;position:fixed;inset:0;overflow:visible}.proj-dialog::backdrop{background:color-mix(in srgb, var(--ink) 80%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.proj-detail{z-index:1;overscroll-behavior:contain;background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius);transform-origin:0 0;width:100%;max-height:calc(100dvh - clamp(24px,6vw,88px));padding:clamp(20px,3vw,44px);position:relative;overflow-y:auto}.proj-detail:focus{outline:none}.detail-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.detail-num{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--accent);font-size:clamp(28px,4vw,48px);font-weight:900;line-height:.86}.detail-kind{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--stone-2);font-size:12px;font-weight:600}.detail-title{font-family:var(--font-display);letter-spacing:-.03em;text-transform:uppercase;margin-top:6px;font-size:clamp(28px,4.4vw,52px);font-weight:900;line-height:.94}.detail-close{border:2px solid var(--ink);width:48px;height:48px;transition:background .2s var(--e-out), color .2s var(--e-out);border-radius:2px;flex:none;place-items:center;display:grid}@media (hover:hover){.detail-close:hover{background:var(--accent);border-color:var(--accent);color:var(--on-ink)}}.detail-close:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.detail-close svg{width:22px;height:22px}.stage{aspect-ratio:16/10;background:var(--paper-2);border:2px solid var(--ink);border-radius:var(--radius);margin-bottom:12px;position:relative;overflow:hidden}.stage img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.stage-count{font-family:var(--font-display);letter-spacing:.04em;color:var(--on-ink);background:var(--ink);padding:7px 12px;font-size:13px;font-weight:700;position:absolute;bottom:0;left:0}.stage-arrow{background:var(--paper);border:2px solid var(--ink);width:50px;height:50px;color:var(--ink);transition:background .2s var(--e-out), color .2s var(--e-out);place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}@media (hover:hover){.stage-arrow:hover{background:var(--accent);border-color:var(--accent);color:var(--on-ink)}}.stage-arrow:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.stage-arrow.prev{left:12px}.stage-arrow.next{right:12px}.stage-arrow svg{width:22px;height:22px}.stage-arrow[disabled]{opacity:.3;pointer-events:none}.stage-blueprint{place-items:center;display:grid}.stage-note{font-family:var(--font-display);text-transform:uppercase;color:var(--stone-2);font-size:12px;font-weight:600;position:absolute;bottom:12px;left:12px}.thumbs{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-bottom:26px;display:grid}.thumb{aspect-ratio:16/10;border:2px solid var(--line);background:var(--paper-2);opacity:.7;transition:opacity .2s var(--e-out), border-color .2s var(--e-out);position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}@media (hover:hover){.thumb:hover{opacity:1}}.thumb.active{opacity:1;border-color:var(--accent)}.thumb:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.detail-body{grid-template-columns:1.4fr 1fr;align-items:start;gap:clamp(28px,5vw,60px);display:grid}@media (max-width:720px){.detail-body{grid-template-columns:1fr;gap:26px}}.detail-desc{color:var(--ink-2);max-width:52ch;font-size:clamp(17px,2vw,21px);font-weight:500;line-height:1.55}.detail-specs{margin-bottom:20px}.detail-specs .dspec{border-top:1px solid var(--line);grid-template-columns:42% 1fr;gap:14px;padding:11px 0;display:grid}.detail-specs .dspec:last-child{border-bottom:1px solid var(--line)}.detail-specs .dk{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--stone-2);font-size:11px;font-weight:600}.detail-specs .dv{font-size:14.5px}.detail-cta{margin-top:22px}@media (prefers-reduced-motion:no-preference){.proj-detail{animation:detail-in .45s var(--e-out)}@keyframes detail-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}.tally{border-top:3px solid var(--ink);grid-template-columns:repeat(3,1fr);margin:clamp(30px,4vw,44px) 0 0;display:grid}.tally-item{padding:clamp(18px,2.2vw,26px) clamp(16px,1.8vw,22px) 0 0;position:relative}.tally-item+.tally-item{border-left:1px solid var(--line);padding-left:clamp(16px,1.8vw,22px)}.tally-num{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.045em;color:var(--ink);align-items:flex-start;font-size:clamp(46px,6.4vw,82px);font-weight:800;line-height:.86;display:flex}.tally-suffix{color:var(--accent);margin-left:.04em;font-size:.62em;line-height:1}.tally-label{font-family:var(--font-body);color:var(--ink-2);text-wrap:pretty;max-width:22ch;margin:12px 0 0;font-size:clamp(13px,1.3vw,15px);line-height:1.4}@media (max-width:620px){.tally-item{padding:14px 10px 0 0}.tally-item+.tally-item{padding-left:10px}.tally-num{font-size:clamp(32px,10vw,46px)}.tally-label{margin-top:8px;font-size:12px;line-height:1.35}}.pub-list{border-top:3px solid var(--on-ink);flex-direction:column;padding-top:clamp(36px,4.5vw,70px);display:flex}.pub-item+.pub-item{border-top:1px solid #ffffff2e;margin-top:clamp(36px,4.5vw,70px);padding-top:clamp(36px,4.5vw,70px)}@media (max-height:800px){.hero{padding-top:clamp(8px,1.2vw,14px);padding-bottom:clamp(14px,2vw,24px)}.hero-grid{gap:clamp(8px,1.2vw,14px)}.hero-sub{margin-top:clamp(10px,1.4vw,14px)}.hero-actions{margin-top:clamp(12px,1.6vw,16px)}.hero-strip{margin-top:clamp(12px,1.6vw,16px);padding-block:11px}}.hero-role{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);margin:clamp(14px,2vw,20px) 0 0;font-size:clamp(19px,2.4vw,30px);font-weight:800;line-height:1.1}.hero-disciplines{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--stone-2);border-top:1px solid var(--line);max-width:46ch;margin:12px 0 0;padding-top:12px;font-size:clamp(11px,1.2vw,13px);font-weight:600}@media (max-width:720px){.pub-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.expertise-grid{border-top:3px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,26px);margin-top:clamp(28px,4vw,48px);padding-top:clamp(28px,4vw,48px);display:grid}.expertise-card{border:1px solid var(--line);border-radius:var(--radius);background:0 0;flex-direction:column;padding:clamp(24px,3vw,34px);display:flex}.expertise-head{align-items:baseline;gap:14px;margin:0;display:flex}.expertise-n{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:.08em;color:var(--accent);font-size:13px;font-weight:900}.expertise-title{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);font-size:clamp(15px,1.5vw,18px);font-weight:800;line-height:1.15}.expertise-desc{font-family:var(--font-body);color:var(--ink-2);margin:clamp(16px,2vw,22px) 0 0;font-size:clamp(14px,1.4vw,15px);line-height:1.55}.expertise-tools{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--stone-2);margin:auto 0 0;padding-top:clamp(18px,2.4vw,26px);font-size:11px;font-weight:600;line-height:1.6}@media (max-width:720px){.expertise-grid{grid-template-columns:1fr}}.skills-table{border-collapse:collapse;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);width:100%;margin-top:clamp(28px,4vw,48px)}.skills-table thead th{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--stone);text-align:left;border-bottom:1px solid var(--line);padding:clamp(14px,1.6vw,18px) clamp(18px,2.4vw,34px) clamp(14px,1.6vw,18px) 0;font-size:10px;font-weight:700}.skills-table tbody tr+tr{border-top:1px solid var(--line)}.skills-table td,.skills-table tbody th{vertical-align:top;text-align:left;padding:clamp(18px,2.2vw,26px) clamp(18px,2.4vw,34px) clamp(18px,2.2vw,26px) 0}.skills-table tr>:last-child{padding-right:0}.skills-domain{width:30%;font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:clamp(14px,1.4vw,16px);font-weight:800;line-height:1.25}.skills-items{font-family:var(--font-body);color:var(--ink-2);font-size:clamp(13.5px,1.35vw,15px);line-height:1.7}.skills-tags{margin-top:clamp(16px,2vw,22px)}.skills-tools,.skills-personal{margin-top:clamp(34px,4vw,52px)}@media (max-width:760px){.skills-table thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skills-table,.skills-table tbody,.skills-table tr,.skills-table td,.skills-table th{width:auto;display:block}.skills-table tr{padding:clamp(20px,4vw,26px) 0}.skills-table td,.skills-table tbody th{padding:0}.skills-items{margin-top:8px}}.pub-metrics{border-top:1px solid #f2f0ec38;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,26px);margin:clamp(22px,3vw,32px) 0 0;padding-top:clamp(18px,2.4vw,26px);display:grid}.pub-metric{flex-direction:column;display:flex}.pub-metric-v{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--accent);font-size:clamp(26px,3.4vw,44px);font-weight:900;line-height:.92}.pub-metric-k{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--on-ink-mut);margin:auto 0 0;padding-top:10px;font-size:10px;font-weight:600;line-height:1.35}.pub-keyresult{border-left:3px solid var(--accent);font-family:var(--font-body);color:var(--on-ink);margin:clamp(20px,2.6vw,28px) 0 0;padding-left:clamp(16px,2vw,24px);font-size:clamp(14px,1.5vw,16px);line-height:1.55;display:block}.pub-keyresult-k{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:11px;font-weight:700;display:block}@media (max-width:720px){.pub-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.proj-row.is-featured .proj-num{color:var(--accent)}.proj-row.is-featured .proj-kind{color:var(--ink);font-weight:700}.proj-row.is-featured .proj-kind:before{content:"";background:var(--accent);vertical-align:middle;width:22px;height:3px;margin-right:10px;display:inline-block}.xp-city{color:var(--stone-2);font-weight:500}.xp-summary{font-family:var(--font-body);color:var(--ink-2);max-width:62ch;margin:12px 0 0;font-size:clamp(14px,1.5vw,16px);line-height:1.55}.xp-keys{border-top:1px solid var(--line);margin-top:clamp(18px,2.2vw,24px);padding-top:14px}.xp-keys-label{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-bottom:12px;font-size:10px;font-weight:700;display:block}.tag-strong{border-color:var(--ink);color:var(--ink);font-weight:700}.art-wrap{border-top:3px solid var(--ink);flex-direction:column;margin-top:clamp(28px,4vw,48px);padding-top:clamp(36px,4.5vw,70px);display:flex}.art-card{width:100%;display:flex}.art-link{border:1px solid var(--line);border-radius:var(--radius);width:100%;transition:border-color .25s var(--e-out), transform 80ms var(--e-out);background:0 0;grid-template-columns:minmax(0,46%) minmax(0,1fr);display:grid;overflow:hidden}@media (max-width:820px){.art-link{grid-template-columns:1fr}}@media (hover:hover){.art-link:hover{border-color:var(--ink)}}.art-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.art-cover{aspect-ratio:16/10;background:var(--paper-2);border-bottom:1px solid var(--line);display:block;position:relative;overflow:hidden}.art-link .art-cover{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line);height:100%;min-height:clamp(260px,28vw,380px)}@media (max-width:820px){.art-link .art-cover{aspect-ratio:16/10;border-right:0;border-bottom:1px solid var(--line);height:auto;min-height:0}}.art-cover img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--e-out)}.art-cover-svg{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.article-cover .art-cover-svg{transition:none}@media (hover:hover){.art-link:hover .art-cover img{transform:scale(1.03)}}.art-cover-empty{background-image:linear-gradient(to right, color-mix(in srgb, var(--stone) 20%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--stone) 20%, transparent) 1px, transparent 1px);opacity:.45;background-size:26px 26px;position:absolute;inset:0}.art-body{flex-direction:column;flex:1;padding:clamp(18px,2vw,26px);display:flex}.art-meta{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;flex-direction:column;align-items:flex-start;gap:4px;font-size:10px;font-weight:700;display:flex}.art-cat{color:var(--accent)}.art-date{color:var(--stone)}.art-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);transition:color .2s var(--e-out);margin-top:12px;font-size:clamp(17px,1.7vw,21px);font-weight:800;line-height:1.18;display:block}@media (hover:hover){.art-link:hover .art-title{color:var(--accent)}}.art-excerpt{font-family:var(--font-body);color:var(--ink-2);margin-top:10px;font-size:clamp(14px,1.4vw,15px);line-height:1.6;display:block}.art-foot{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;margin:auto 0 0;padding-top:clamp(16px,2vw,22px);display:flex}.art-author{font-family:var(--font-body);color:var(--stone-2);font-size:12.5px}.art-more{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}@media (max-width:860px){.topnav-article .lang-toggle{display:inline-flex}.topnav-article .topnav-inner{gap:14px}}.article-page{padding-top:clamp(30px,4vw,60px)}.article-page .wrap{max-width:860px}.article-back{margin:0 0 clamp(22px,3vw,34px)}.article-back-end{border-top:1px solid var(--line);margin:clamp(34px,4vw,52px) 0 0;padding-top:clamp(22px,3vw,30px)}.arrow-back:before{content:"←";margin-right:8px}.article-source .arrow:after{margin-left:7px}.art-more.arrow:after{margin-left:6px}.article-head{border-top:3px solid var(--ink);padding-top:clamp(18px,2.4vw,26px)}.article-meta{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:12px;margin:0;font-size:10px;font-weight:700;display:flex}.article-title{font-family:var(--font-display);letter-spacing:-.02em;text-transform:uppercase;margin:clamp(14px,2vw,20px) 0 0;font-size:clamp(30px,5vw,56px);font-weight:800;line-height:1.02}.article-lead{font-family:var(--font-serif);color:var(--ink-2);max-width:60ch;margin:clamp(16px,2vw,22px) 0 0;font-size:clamp(17px,2vw,21px);line-height:1.5}.article-byline{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--stone-2);margin:clamp(16px,2vw,22px) 0 0;font-size:12px;font-weight:600}.article-cover{aspect-ratio:16/9;border:2px solid var(--ink);border-radius:var(--radius);background:var(--paper-2);margin:clamp(28px,4vw,46px) 0 0;position:relative;overflow:hidden}.article-body{font-family:var(--font-body);color:var(--ink-2);margin-top:clamp(30px,4vw,48px);font-size:clamp(16px,1.7vw,17.5px);line-height:1.7}.article-body>*+*{margin-top:1.15em}.article-body h2{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin-top:1.9em;font-size:clamp(22px,2.6vw,30px);font-weight:800;line-height:1.12}.article-body h3{font-family:var(--font-display);color:var(--ink);margin-top:1.6em;font-size:clamp(18px,2vw,22px);font-weight:800;line-height:1.2}.article-body h4{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:var(--stone-2);margin-top:1.5em;font-size:16px;font-weight:700}.article-body h2+*,.article-body h3+*,.article-body h4+*{margin-top:.55em}.article-body strong{color:var(--ink);font-weight:700}.article-body a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}@media (hover:hover){.article-body a:hover{color:var(--accent-2)}}.article-body ul,.article-body ol{margin-left:0;padding-left:1.35em}.article-body li+li{margin-top:.5em}.article-body ul li::marker{color:var(--accent)}.article-body ol li::marker{font-family:var(--font-display);color:var(--accent);font-weight:700}.article-body blockquote{border-left:3px solid var(--accent);font-family:var(--font-serif);color:var(--ink);margin-left:0;padding:2px 0 2px clamp(16px,2vw,24px);font-size:clamp(17px,1.9vw,20px);font-style:italic;line-height:1.5}.article-body img{border:1px solid var(--line);border-radius:var(--radius);width:100%;height:auto;margin-block:1.6em}.article-body hr{border:0;border-top:1px solid var(--line);margin-block:2em}.article-body table{border-collapse:collapse;width:100%;font-size:15px}.article-body th,.article-body td{text-align:left;border-top:1px solid var(--line);vertical-align:top;padding:10px 14px 10px 0}.article-body th{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--stone);font-size:11px;font-weight:700}@media (max-width:560px){.article-body table{max-width:100%;display:block;overflow-x:auto}}.bandeau-apercu{background:var(--ink);color:var(--paper);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;margin:0;padding:11px clamp(16px,4vw,40px);font-size:12px;font-weight:700;display:flex}.bandeau-apercu a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.article-duree{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--stone-2);align-items:center;gap:7px;margin:clamp(14px,1.8vw,20px) 0 0;font-size:12px;font-weight:600;display:inline-flex}.article-duree svg{flex:none;width:15px;height:15px}.art-fin{background:var(--paper-2);border:1px solid var(--line);border-top:2px solid var(--ink);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:clamp(34px,4.5vw,52px);padding:clamp(16px,2.2vw,22px) clamp(16px,2.4vw,26px);display:flex;position:relative}.art-fin-gestes{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.art-geste{background:var(--paper);border:1px solid var(--line);cursor:pointer;min-height:42px;color:var(--ink-2);font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;transition:color .2s var(--e-out), border-color .2s var(--e-out), transform 80ms var(--e-out);border-radius:2px;align-items:center;gap:9px;padding:0 16px;font-size:12.5px;font-weight:700;display:inline-flex}@media (hover:hover){.art-geste:hover{border-color:var(--ink);color:var(--ink)}}.art-geste:active{transform:translateY(1px)}.art-geste.est-actif{color:var(--accent);border-color:var(--accent)}.art-geste-icone{display:inline-flex;position:relative}.art-geste-icone svg{width:18px;height:18px}.art-geste-nombre{font-variant-numeric:tabular-nums;border-left:1px solid var(--line);min-width:1ch;animation:nombre-monte .34s var(--e-out);margin-left:2px;padding-left:9px}@keyframes nombre-monte{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.art-geste-jaime.bat .art-geste-icone svg{animation:coeur-bat .55s var(--e-out)}@keyframes coeur-bat{0%{transform:scale(1)}30%{transform:scale(1.35)}55%{transform:scale(.92)}75%{transform:scale(1.08)}to{transform:scale(1)}}.art-onde{border:2px solid var(--accent);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-6px;transform:scale(.4)}.art-geste-jaime.bat .art-onde{animation:onde-jaime .7s var(--e-out)}@keyframes onde-jaime{0%{opacity:.75;transform:scale(.4)}to{opacity:0;transform:scale(2.1)}}@media (prefers-reduced-motion:reduce){.art-geste-jaime.bat .art-geste-icone svg,.art-geste-jaime.bat .art-onde,.art-geste-nombre{animation:none}}.art-fin-partage{align-items:center;gap:4px;display:flex}.art-fin-vues{font-family:var(--font-display);letter-spacing:.06em;color:var(--stone-2);font-variant-numeric:tabular-nums;align-items:center;gap:7px;margin-right:6px;font-size:12px;font-weight:600;display:inline-flex}.art-fin-vues svg{width:15px;height:15px}.art-fin-separateur{background:var(--line);width:1px;height:18px;margin:0 6px}.art-partage{cursor:pointer;width:38px;height:38px;color:var(--stone-2);transition:color .2s var(--e-out), background .2s var(--e-out);background:0 0;border:0;border-radius:2px;justify-content:center;align-items:center;display:inline-flex}.art-partage svg{width:18px;height:18px}@media (hover:hover){.art-partage:hover{color:var(--ink);background:var(--paper)}}.art-partage:active{transform:translateY(1px)}@media (max-width:560px){.art-fin{gap:14px;padding:16px}.art-fin-gestes{width:100%}.art-geste{flex:1;justify-content:center;padding:0 12px}.art-fin-partage{justify-content:flex-end;width:100%}}.art-copie{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);opacity:0;transition:opacity .3s var(--e-out);pointer-events:none;font-size:11px;font-weight:600;position:absolute;bottom:-26px;right:0}.art-copie.vu{opacity:1}.art-copie-flottant{z-index:90;background:var(--ink);color:var(--paper);border-radius:2px;padding:9px 16px;position:fixed;bottom:28px;left:50%;right:auto;transform:translate(-50%)}.lecture-progres{z-index:70;pointer-events:none;background:0 0;height:2px;position:fixed;top:0;left:0;right:0}.lecture-progres span{background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform .12s linear;display:block;transform:scaleX(0)}.citation-partage{z-index:95;cursor:pointer;background:var(--ink);color:var(--paper);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;animation:citation-entree .18s var(--e-out);border:0;border-radius:2px;align-items:center;gap:8px;padding:9px 14px;font-size:11px;font-weight:700;display:inline-flex;position:fixed;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 10px 22px -14px #141414cc}.citation-partage svg{width:14px;height:14px}@keyframes citation-entree{0%{opacity:0;transform:translate(-50%,calc(-100% - 4px))}}@media (prefers-reduced-motion:reduce){.citation-partage{animation:none}}.article-suite{border-top:2px solid var(--ink);margin-top:clamp(40px,5vw,60px);padding-top:clamp(24px,3vw,32px)}.article-suite-titre{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--stone-2);margin:0 0 clamp(18px,2.4vw,26px);font-size:clamp(15px,1.6vw,17px);font-weight:800}.article-suite-grille{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:clamp(16px,2.2vw,26px);display:grid}.article-suite .art-link{grid-template-columns:1fr}.article-suite .art-cover{aspect-ratio:16/10;border-right:0;border-bottom:1px solid var(--line);height:auto;min-height:0}@media (min-width:821px){.article-suite .art-card:only-child .art-link{grid-template-columns:minmax(0,46%) minmax(0,1fr)}.article-suite .art-card:only-child .art-cover{aspect-ratio:auto;border-right:1px solid var(--line);border-bottom:0;height:100%;min-height:clamp(200px,22vw,250px)}}.visuellement-cache{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.article-source{border-top:1px solid var(--line);font-family:var(--font-display);letter-spacing:.04em;margin:clamp(30px,4vw,44px) 0 0;padding-top:clamp(18px,2.4vw,24px);font-size:13px;font-weight:600}.btn,.nav-links a,.overlay-nav a,.menu-toggle,.art-link,.proj-title-btn,.proj-media-btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.proj-title-btn,.proj-media-btn{transition:transform 80ms var(--e-out)}.btn:active,.nav-links a:active,.menu-toggle:active,.foot-links a:active,.proj-title-btn:active{transform:translateY(1px)}.art-link:active,.proj-media-btn:active{transform:scale(.99)}.overlay-nav a:active{transition:transform 80ms var(--e-out);transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.btn:active,.nav-links a:active,.menu-toggle:active,.foot-links a:active,.proj-title-btn:active,.art-link:active,.proj-media-btn:active,.overlay-nav a:active{transform:none}}.proj-open,.art-more{border:2px solid var(--accent);border-radius:var(--radius);transition:background .2s var(--e-out), color .2s var(--e-out), transform 80ms var(--e-out);align-items:center;padding:9px 15px;display:inline-flex}@media (hover:hover){.proj-open:hover,.art-link:hover .art-more,.pub-more:hover{background:var(--accent);color:var(--on-ink)}}.pub-more:active,.proj-open:active,.art-link:active .art-more{background:var(--accent);color:var(--on-ink)}.expertise-card{transition:border-color .25s var(--e-out)}.expertise-title{transition:color .2s var(--e-out)}@media (hover:hover){.expertise-card:hover{border-color:var(--ink)}.expertise-card:hover .expertise-title{color:var(--accent)}}.cform{border-top:3px solid var(--ink);margin-top:clamp(34px,4vw,52px);padding-top:clamp(18px,2.2vw,24px)}.cform-title{font-family:var(--font-display);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);margin:0 0 clamp(18px,2.4vw,24px);font-size:clamp(15px,1.9vw,20px);font-weight:800}.cform-field+.cform-field{margin-top:clamp(12px,1.5vw,16px)}.cform-label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--stone-2);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.cform input,.cform textarea{width:100%;font-family:var(--font-body);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .2s var(--e-out);background:0 0;padding:12px 14px;font-size:16px;line-height:1.5;display:block}.cform textarea{resize:vertical;min-height:118px}.cform input:focus,.cform textarea:focus{border-color:var(--ink);outline:none}.cform input:focus-visible,.cform textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.cform-actions{flex-wrap:wrap;align-items:center;gap:18px;margin-top:clamp(20px,2.6vw,26px);display:flex}.cform-note{font-family:var(--font-body);max-width:46ch;margin:0;font-size:14.5px;line-height:1.5}.cform-note.ok{color:var(--ink)}.cform-note.ko{color:var(--accent-2)}.cform-piege{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.detail-features{color:var(--ink-2);max-width:52ch;margin:18px 0 0;padding-left:18px;font-size:15px;line-height:1.55}.detail-features li+li{margin-top:6px}@media (min-width:821px){#programmes .proj-row .proj-media{order:-1}}.proj-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.proj-git{border:2px solid var(--ink);border-radius:var(--radius);min-height:32px;color:var(--ink);font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;transition:background .2s var(--e-out), color .2s var(--e-out);align-items:center;gap:8px;padding:9px 15px;font-size:14px;font-weight:700;display:inline-flex}@media (hover:hover){.proj-git:hover{background:var(--ink);color:var(--paper)}}.proj-git:active{background:var(--ink);color:var(--paper)}.proj-git:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.proj-git-detail{align-items:center;gap:8px;display:inline-flex}.proj-row{padding:clamp(22px,3vw,40px) 0}.proj-row .proj-frame{aspect-ratio:16/9}.proj-card.is-program .proj-media{order:1;margin:auto 0 0;padding-top:6px}.proj-card.is-program .proj-actions{order:2;margin-top:6px}.proj-media-col{flex-direction:column;gap:16px;display:flex}.proj-media-col .proj-media-btn{text-align:left;width:100%;display:block}.proj-card-desc{color:var(--ink-2);font-size:15px;line-height:1.5}.proj-card .proj-actions{flex-wrap:wrap;align-items:center;gap:10px 6px;display:flex}.proj-card .proj-open,.proj-card .proj-demo,.proj-card .proj-git{box-sizing:border-box;letter-spacing:.01em;gap:5px;height:34px;min-height:0;padding:0 9px;font-size:12px;line-height:1}.proj-card .proj-demo svg,.proj-card .proj-git svg{width:12px;height:12px}.pub-rest{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,56px);display:grid}@media (max-width:1000px){.pub-rest{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.pub-rest{grid-template-columns:1fr}}.pub-item.pub-card+.pub-item.pub-card{border-top:0;margin-top:0;padding-top:0}.pub-card .pub-title{font-size:clamp(22px,2.4vw,30px);line-height:1.04}.pub-card .pub-sub{margin-top:10px;font-size:15px}.pub-card .pub-actions{margin-top:clamp(20px,2.6vw,28px)}@media (min-width:1001px){.pub-rest>.pub-card+.pub-card{border-left:1px solid #ffffff2e;padding-left:clamp(28px,4vw,56px)}}@media (min-width:761px) and (max-width:1000px){.pub-rest>.pub-card:nth-child(2n){border-left:1px solid #ffffff2e;padding-left:clamp(28px,4vw,56px)}}.art-wrap{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.6vw,32px);display:grid}@media (max-width:900px){.art-wrap{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.art-wrap{grid-template-columns:1fr}}.art-item{flex-direction:column;display:flex}.art-item+.art-item{border-top:0;margin-top:0;padding-top:0}.art-item .art-card{flex:1}.art-wrap .art-link{grid-template-rows:auto 1fr;grid-template-columns:1fr}.art-wrap .art-link .art-cover{aspect-ratio:16/10;border-right:0;border-bottom:1px solid var(--line);height:auto;min-height:0}.xp-block+.xp-block{margin-top:clamp(40px,5.5vw,72px)}.xp-block-title{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;margin-bottom:clamp(14px,2vw,20px);font-size:clamp(20px,2.6vw,30px);font-weight:900;line-height:1}.xp-block .xp-row{grid-template-columns:200px 1fr;gap:clamp(16px,3vw,40px);padding:clamp(20px,2.8vw,32px) 0}@media (max-width:720px){.xp-block .xp-row{grid-template-columns:1fr;gap:10px}}.xp-body{border-left:2px solid var(--ink);padding-left:clamp(16px,2vw,24px)}.xp-block .xp-role{font-size:clamp(19px,2vw,25px)}.skills-table thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skills-domain{width:32%}.soft{margin-top:clamp(40px,5vw,64px)}.soft-head{border-bottom:2px solid var(--ink);flex-wrap:wrap;align-items:baseline;gap:6px clamp(20px,4vw,48px);padding-bottom:14px;display:flex}.soft-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(24px,3vw,36px);font-weight:800;line-height:1}.soft-box{border:1px solid var(--line);margin-top:clamp(18px,2.4vw,26px)}.soft-group{grid-template-columns:minmax(150px,.5fr) minmax(0,2fr);gap:clamp(14px,2.4vw,32px);padding:clamp(12px,1.6vw,18px) clamp(18px,2.6vw,30px);display:grid}.soft-group+.soft-group{border-top:1px solid var(--line)}.soft-group-label{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);padding-top:10px;font-size:12px;font-weight:700}.soft-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));column-gap:clamp(16px,2.4vw,32px);margin:0;padding:0;list-style:none;display:grid}.soft-item{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-width:0;padding:8px 0;display:flex}.soft-logo{flex:none;place-items:center;width:32px;height:32px;display:grid}.soft-logo svg,.soft-logo img{width:100%;height:100%}.soft-name{font-family:var(--font-display);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:clamp(14px,1.3vw,16px);font-weight:700;line-height:1.2;overflow:hidden}@media (max-width:760px){.soft-group{grid-template-columns:1fr;gap:10px;padding:14px}.soft-group-label{padding-top:0;font-size:11px}.soft-grid{flex-wrap:wrap;gap:8px;display:flex}.soft-item{border:1px solid var(--line);background:var(--paper);border-radius:2px;gap:7px;padding:4px 10px 4px 4px}.soft-logo{width:24px;height:24px}.soft-name{font-size:13px}}.pub-panel{background:var(--ink);color:var(--on-ink);border-radius:var(--radius);padding:clamp(24px,4vw,56px)}.pub-panel .pub-list{border-top:0;padding-top:0}.pub-panel .btn-outline{border-color:var(--on-ink);color:var(--on-ink)}.proj-group-head+.proj-index{border-top:0}.skills-domain-in{align-items:center;gap:12px;display:flex}.skills-ic{border:1.5px solid var(--ink);background:var(--paper);flex:none;place-items:center;width:34px;height:34px;display:grid}.skills-ic svg *{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:120;stroke-dashoffset:120px;transition:stroke-dashoffset 1.4s var(--e-out)}.skills-table.in .skills-ic svg *{stroke-dashoffset:0}.skills-table tbody tr:nth-child(2) .skills-ic svg *{transition-delay:.15s}.skills-table tbody tr:nth-child(3) .skills-ic svg *{transition-delay:.3s}.skills-table tbody tr:nth-child(4) .skills-ic svg *{transition-delay:.45s}.skills-table tbody tr:nth-child(5) .skills-ic svg *{transition-delay:.6s}.skills-table tbody tr:nth-child(6) .skills-ic svg *{transition-delay:.75s}@media (prefers-reduced-motion:reduce){.skills-ic svg *{stroke-dashoffset:0;transition:none}}.soft .soft-item{opacity:0;transition:opacity .45s var(--e-out), transform .45s var(--e-out);transition-delay:calc(var(--i,0) * 45ms + .12s);transform:translateY(10px)}.soft .soft-logo{transition:transform .5s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--i,0) * 45ms + .22s);transform:scale(.6)rotate(-8deg)}.soft.in .soft-item{opacity:1;transform:none}.soft.in .soft-logo{transform:none}.soft-group-label{transition:color .3s var(--e-out)}@media (hover:hover){.soft.in .soft-item:hover .soft-logo{transition-duration:.2s;transition-delay:0s;transform:translateY(-3px)scale(1.08)}}@media (prefers-reduced-motion:reduce){.soft .soft-item,.soft .soft-logo{opacity:1;transition:none;transform:none}}@media (max-width:760px){.skills-table .skills-domain{width:auto;font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:700}.skills-table tr{padding:12px 0}.skills-table .skills-items{color:var(--ink);margin-top:8px;padding-left:46px;font-size:14.5px;line-height:1.5}}.monogram{transition:transform .35s var(--e-out);flex:none;display:block}.monogram-bg{fill:var(--ink)}.monogram-bar{fill:var(--accent)}.monogram-txt{font-family:var(--font-display);letter-spacing:-1.5px;fill:var(--paper);font-size:30px;font-weight:900}.monogram-s{fill:var(--accent)}@media (hover:hover){.brand:hover .monogram{transform:rotate(-6deg)scale(1.06)}}.osc-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(20px,2.4vw,28px);font-weight:900;line-height:1.05}.osc-lead{color:var(--ink-2);max-width:62ch;margin-top:8px;font-size:15.5px;line-height:1.55}.osc-body{grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:center;gap:clamp(16px,3vw,36px);margin-top:clamp(16px,2.4vw,26px);display:grid}@media (max-width:700px){.osc-body{grid-template-columns:1fr}.osc-frame{max-width:200px;margin:0 auto}}.osc-frame,.osc-plot{width:100%;height:auto;display:block}.osc-plot{background:var(--paper-2);border:1px solid var(--line)}.osc-ground{stroke:var(--ink);stroke-width:3px}.osc-col{stroke:var(--ink);stroke-width:3px;stroke-linecap:round}.osc-beam{stroke:var(--ink);stroke-width:5px;stroke-linecap:round}.osc-arrow{stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round}.osc-axis{stroke:var(--stone);stroke-width:1px;stroke-dasharray:4 4}.osc-env{fill:none;stroke:var(--stone);stroke-width:1px;stroke-dasharray:3 3}.osc-curve{fill:none;stroke:var(--accent);stroke-width:2px}.osc-dot{fill:var(--ink)}.osc-controls{flex-wrap:wrap;align-items:flex-end;gap:16px 28px;margin-top:clamp(16px,2.4vw,24px);display:flex}.osc-ctrl{min-width:200px;font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--stone-2);flex-direction:column;flex:1;gap:8px;font-size:12px;font-weight:600;display:flex}.osc-ctrl b{color:var(--accent);font-weight:800}.osc-sym{text-transform:none;font-style:italic;font-family:var(--font-body);font-size:14px}.osc-ctrl input[type=range]{accent-color:var(--accent);width:100%}.osc-readout{color:var(--stone-2);margin-top:14px;font-size:13.5px;line-height:1.5}.proj-demo{border:2px solid var(--accent);border-radius:var(--radius);min-height:32px;color:var(--accent);font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;transition:background .2s var(--e-out), color .2s var(--e-out);align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-flex}@media (hover:hover){.proj-demo:hover{background:var(--accent);color:var(--on-ink)}}.proj-demo:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.video-demo{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(16px,3vw,40px);margin-top:clamp(14px,2vw,22px);display:grid}.video-demo-lead{color:var(--stone-2);max-width:42ch;margin:0;font-size:15px;line-height:1.6}.video-demo-player{aspect-ratio:390/844;border:1px solid var(--line);background:var(--paper-2);border-radius:22px;width:auto;height:min(70dvh,640px);display:block}@media (max-width:640px){.video-demo{grid-template-columns:1fr;justify-items:center}.video-demo-player{height:min(62dvh,560px)}}.tmd-panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,24px);margin-top:clamp(14px,2vw,22px);display:grid}@media (max-width:640px){.tmd-panels{grid-template-columns:1fr}}.tmd-panel{border:1px solid var(--line);background:var(--paper-2);margin:0;padding:12px}.tmd-panel svg{width:100%;height:auto;display:block}.tmd-label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.tmd-panel.is-tmd .tmd-label{color:var(--ink)}.tmd-abut{fill:var(--line)}.tmd-deck{fill:none;stroke:var(--ink);stroke-width:4px;stroke-linecap:round}.tmd-support{fill:var(--ink)}.tmd-car polygon{fill:var(--paper);stroke:var(--ink);stroke-width:1.5px}.tmd-car circle{fill:var(--ink)}.tmd-ama polyline{fill:none;stroke:var(--ink);stroke-width:1.5px}.tmd-ama rect{fill:var(--ink)}.tmd-ama text{fill:var(--paper);font-family:var(--font-display);font-size:9px;font-weight:800}.tmd-meter{background:var(--paper);border:1px solid var(--line);height:6px;margin-top:8px}.tmd-meter span{background:var(--accent);height:100%;display:block}.tmd-panel.is-tmd .tmd-meter span{background:var(--ink)}.tmd-plot{background:var(--paper-2);border:1px solid var(--line);width:100%;height:auto;margin-top:clamp(14px,2vw,22px);display:block}.tmd-trace-bare{fill:none;stroke:var(--accent);stroke-width:2px}.tmd-trace-tmd{fill:none;stroke:var(--ink);stroke-width:2px}.tmd-legend{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:12px;font-size:12px;font-weight:700;display:flex}.tmd-key:before{content:"";vertical-align:middle;width:18px;height:3px;margin-right:8px;display:inline-block}.tmd-key-bare:before{background:var(--accent)}.tmd-key-tmd:before{background:var(--ink)}.tmd-legend .osc-replay{margin-left:auto}.foot-icon{border:2px solid var(--ink);width:40px;height:40px;color:var(--ink);transition:background .2s var(--e-out), color .2s var(--e-out), border-color .2s var(--e-out);border-radius:2px;place-items:center;display:grid}@media (hover:hover){.foot-icon:hover{background:var(--accent);border-color:var(--accent);color:var(--on-ink)}}.foot-icon:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.foot-links{gap:10px}.see-all{margin-top:clamp(24px,3vw,36px)}.subpage-back{margin:0 0 clamp(18px,2.4vw,28px);font-size:14px}.preview .proj-card .tag-list{display:none}.preview .proj-card-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.preview .proj-grid{grid-template-rows:repeat(4,auto);row-gap:0}.preview .proj-grid>.proj-card{grid-row:span 4;grid-template-rows:subgrid;align-content:start;justify-items:start;row-gap:10px;display:grid}.preview .proj-card.is-program .proj-media{align-self:start;width:100%;margin:0}.preview .proj-card.is-program .proj-actions{align-self:start;margin-top:0}@media (max-width:760px){.hscroll .proj-grid,.hscroll .pub-rest,.art-wrap{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scrollbar-width:none;flex-direction:row;align-items:stretch;gap:14px;padding-bottom:6px;display:flex;overflow-x:auto}.hscroll .proj-grid::-webkit-scrollbar{display:none}.hscroll .pub-rest::-webkit-scrollbar{display:none}.art-wrap::-webkit-scrollbar{display:none}.hscroll .pub-rest{margin-inline:0;padding-inline:0;scroll-padding-inline:0}.hscroll .pub-rest>.pub-card{border:1px solid #ffffff38;border-radius:2px;padding:18px 16px}.hscroll .proj-grid>.proj-card{border:1px solid var(--line);border-radius:2px;padding:12px 10px}.hscroll.preview .proj-grid{grid-template-rows:repeat(4,auto);grid-template-columns:none;grid-auto-columns:82%;grid-auto-flow:column;column-gap:14px;display:grid}.hscroll .proj-grid>*,.hscroll .pub-rest>*,.art-wrap>*{scroll-snap-align:start;flex:0 0 82%;min-width:0}.hscroll .reveal,.art-wrap .reveal{opacity:1;transform:none}.hscroll .is-marquee,.art-wrap.is-marquee{scroll-snap-type:none}.section{padding-block:40px}.section:not([class*=band-]):has(+.section:not([class*=band-])){padding-bottom:22px}.section:not([class*=band-])+.section:not([class*=band-]){padding-top:22px}.ed-head{margin-bottom:24px;padding-top:14px}.xp-block+.xp-block{margin-top:30px}.proj-group{margin-top:36px}.proj-group-tight{margin-top:22px}.see-all{margin-top:20px}}.tl{margin:0;padding:0;list-style:none}.tl-item{padding-left:34px;position:relative}.tl-item:before{content:"";background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:11px}.tl-item:first-child:before{top:22px}.tl-item:last-child:before{height:22px;bottom:auto}.tl-item:only-child:before{display:none}.tl-dot{background:var(--accent);width:14px;height:14px;box-shadow:0 0 0 4px var(--paper);border-radius:50%;position:absolute;top:20px;left:5px}.band-paper2 .tl-dot{box-shadow:0 0 0 4px var(--paper-2)}.is-ongoing .tl-dot{background:var(--paper);border:2px solid var(--accent);box-sizing:border-box}.tl-item+.tl-item{margin-top:14px}.tl-card{border:1px solid var(--line);border-radius:var(--radius);align-items:flex-start;gap:clamp(14px,2vw,26px);padding:clamp(14px,1.8vw,20px) clamp(14px,2vw,24px);display:flex}.tl-fig{flex:none;min-width:clamp(64px,8vw,96px);margin:0}.tl-num{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);font-size:clamp(26px,3vw,38px);font-weight:800;line-height:1;display:block}.tl-fig-label{color:var(--stone-2);margin-top:6px;font-size:12px;line-height:1.3;display:block}.tl-body{min-width:0}.tl-when{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 4px;font-size:12px;font-weight:700}.tl-role{font-family:var(--font-display);color:var(--ink);margin:0;font-size:clamp(16px,1.6vw,19px);font-weight:800;line-height:1.2}.tl-org{color:var(--stone-2);margin:4px 0 0;font-size:14px}.tl-desc{max-width:62ch;color:var(--ink-2);margin:8px 0 0;font-size:15px;line-height:1.55}@media (max-width:560px){.tl-item{padding-left:28px}.tl-item:before{left:8px}.tl-dot{left:2px}.tl-card{flex-direction:column;gap:8px;padding:12px 14px}.tl-fig{align-items:baseline;gap:8px;min-width:0;display:flex}.tl-num{font-size:24px}.tl-fig-label{margin-top:0}.tl-desc{font-size:14px}}
