@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.woff2)format("woff2-variations");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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.woff2)format("woff2-variations");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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-vietnamese-400-normal.BNOj0Qhp.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-400-normal.B0PMp_xB.woff)format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-ext-400-normal.DTLbW2xa.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-400-normal.D4cJI_B-.woff)format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/space-mono-latin-400-normal.Rg4St2Dn.woff2)format("woff2"),url(/_astro/space-mono-latin-400-normal._3DlpgIW.woff)format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-vietnamese-700-normal.DWQgDHuA.woff2)format("woff2"),url(/_astro/space-mono-vietnamese-700-normal.D-KrLuLr.woff)format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-ext-700-normal.B2s3bDs2.woff2)format("woff2"),url(/_astro/space-mono-latin-ext-700-normal.B_E7P90g.woff)format("woff");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:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/space-mono-latin-700-normal.mWgeinG7.woff2)format("woff2"),url(/_astro/space-mono-latin-700-normal.D7A851RN.woff)format("woff");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}@property --eva-fluid-unit{syntax:"<length>";inherits:true;initial-value:1vw}:root{--4__:clamp(.5rem, calc(.4 * var(--eva-fluid-unit,1vw) - .14rem), .28rem);--4_:clamp(.09rem, calc(.21 * var(--eva-fluid-unit,1vw) + .06rem), .28rem);--4:clamp(.14rem, calc(.14 * var(--eva-fluid-unit,1vw) + .13rem), .28rem);--4-:clamp(.23rem, calc(.07 * var(--eva-fluid-unit,1vw) + .19rem), .28rem);--8__:clamp(.5rem, calc(.79 * var(--eva-fluid-unit,1vw) - .28rem), .56rem);--8_:clamp(.17rem, calc(.42 * var(--eva-fluid-unit,1vw) + .13rem), .56rem);--8:clamp(.28rem, calc(.28 * var(--eva-fluid-unit,1vw) + .25rem), .56rem);--8-:clamp(.45rem, calc(.14 * var(--eva-fluid-unit,1vw) + .38rem), .56rem);--10__:clamp(.5rem, calc(.99 * var(--eva-fluid-unit,1vw) - .35rem), .69rem);--10_:clamp(.22rem, calc(.52 * var(--eva-fluid-unit,1vw) + .16rem), .69rem);--10:clamp(.35rem, calc(.35 * var(--eva-fluid-unit,1vw) + .31rem), .69rem);--10-:clamp(.57rem, calc(.17 * var(--eva-fluid-unit,1vw) + .47rem), .69rem);--12__:clamp(.5rem, calc(1.19 * var(--eva-fluid-unit,1vw) - .42rem), .83rem);--12_:clamp(.26rem, calc(.62 * var(--eva-fluid-unit,1vw) + .19rem), .83rem);--12:clamp(.42rem, calc(.42 * var(--eva-fluid-unit,1vw) + .38rem), .83rem);--12-:clamp(.68rem, calc(.21 * var(--eva-fluid-unit,1vw) + .56rem), .83rem);--14__:clamp(.5rem, calc(1.38 * var(--eva-fluid-unit,1vw) - .49rem), .97rem);--14_:clamp(.3rem, calc(.73 * var(--eva-fluid-unit,1vw) + .22rem), .97rem);--14:clamp(.49rem, calc(.49 * var(--eva-fluid-unit,1vw) + .44rem), .97rem);--14-:clamp(.79rem, calc(.24 * var(--eva-fluid-unit,1vw) + .66rem), .97rem);--16__:clamp(.5rem, calc(1.58 * var(--eva-fluid-unit,1vw) - .56rem), 1.11rem);--16_:clamp(.35rem, calc(.83 * var(--eva-fluid-unit,1vw) + .25rem), 1.11rem);--16:clamp(.56rem, calc(.56 * var(--eva-fluid-unit,1vw) + .5rem), 1.11rem);--16-:clamp(.91rem, calc(.28 * var(--eva-fluid-unit,1vw) + .75rem), 1.11rem);--18__:clamp(.5rem, calc(1.78 * var(--eva-fluid-unit,1vw) - .63rem), 1.25rem);--18_:clamp(.39rem, calc(.94 * var(--eva-fluid-unit,1vw) + .28rem), 1.25rem);--18:clamp(.63rem, calc(.63 * var(--eva-fluid-unit,1vw) + .56rem), 1.25rem);--18-:clamp(1.02rem, calc(.31 * var(--eva-fluid-unit,1vw) + .85rem), 1.25rem);--20__:clamp(.5rem, calc(1.98 * var(--eva-fluid-unit,1vw) - .7rem), 1.39rem);--20_:clamp(.43rem, calc(1.05 * var(--eva-fluid-unit,1vw) + .31rem), 1.39rem);--20:clamp(.7rem, calc(.7 * var(--eva-fluid-unit,1vw) + .63rem), 1.39rem);--20-:clamp(1.13rem, calc(.35 * var(--eva-fluid-unit,1vw) + .94rem), 1.39rem);--22__:clamp(.5rem, calc(2.18 * var(--eva-fluid-unit,1vw) - .77rem), 1.53rem);--22_:clamp(.48rem, calc(1.15 * var(--eva-fluid-unit,1vw) + .34rem), 1.53rem);--22:clamp(.77rem, calc(.77 * var(--eva-fluid-unit,1vw) + .69rem), 1.53rem);--22-:clamp(1.25rem, calc(.38 * var(--eva-fluid-unit,1vw) + 1.03rem), 1.53rem);--26__:clamp(.5rem, calc(2.57 * var(--eva-fluid-unit,1vw) - .91rem), 1.81rem);--26_:clamp(.56rem, calc(1.36 * var(--eva-fluid-unit,1vw) + .41rem), 1.81rem);--26:clamp(.91rem, calc(.91 * var(--eva-fluid-unit,1vw) + .81rem), 1.81rem);--26-:clamp(1.47rem, calc(.45 * var(--eva-fluid-unit,1vw) + 1.22rem), 1.81rem);--34__:clamp(.5rem, calc(3.36 * var(--eva-fluid-unit,1vw) - 1.18rem), 2.36rem);--34_:clamp(.73rem, calc(1.77 * var(--eva-fluid-unit,1vw) + .53rem), 2.36rem);--34:clamp(1.18rem, calc(1.18 * var(--eva-fluid-unit,1vw) + 1.06rem), 2.36rem);--34-:clamp(1.91rem, calc(.59 * var(--eva-fluid-unit,1vw) + 1.6rem), 2.36rem);--38__:clamp(.5rem, calc(3.76 * var(--eva-fluid-unit,1vw) - 1.32rem), 2.64rem);--38_:clamp(.82rem, calc(1.98 * var(--eva-fluid-unit,1vw) + .59rem), 2.64rem);--38:clamp(1.32rem, calc(1.32 * var(--eva-fluid-unit,1vw) + 1.19rem), 2.64rem);--38-:clamp(2.14rem, calc(.66 * var(--eva-fluid-unit,1vw) + 1.79rem), 2.64rem);--40__:clamp(.5rem, calc(3.96 * var(--eva-fluid-unit,1vw) - 1.39rem), 2.78rem);--40_:clamp(.86rem, calc(2.09 * var(--eva-fluid-unit,1vw) + .63rem), 2.78rem);--40:clamp(1.39rem, calc(1.39 * var(--eva-fluid-unit,1vw) + 1.25rem), 2.78rem);--40-:clamp(2.25rem, calc(.7 * var(--eva-fluid-unit,1vw) + 1.88rem), 2.78rem);--42__:clamp(.5rem, calc(4.15 * var(--eva-fluid-unit,1vw) - 1.46rem), 2.92rem);--42_:clamp(.9rem, calc(2.2 * var(--eva-fluid-unit,1vw) + .66rem), 2.92rem);--42:clamp(1.46rem, calc(1.46 * var(--eva-fluid-unit,1vw) + 1.31rem), 2.92rem);--42-:clamp(2.36rem, calc(.73 * var(--eva-fluid-unit,1vw) + 1.97rem), 2.92rem);--48__:clamp(.5rem, calc(4.75 * var(--eva-fluid-unit,1vw) - 1.67rem), 3.33rem);--48_:clamp(1.03rem, calc(2.5 * var(--eva-fluid-unit,1vw) + .75rem), 3.33rem);--48:clamp(1.67rem, calc(1.67 * var(--eva-fluid-unit,1vw) + 1.5rem), 3.33rem);--48-:clamp(2.7rem, calc(.83 * var(--eva-fluid-unit,1vw) + 2.26rem), 3.33rem);--64__:clamp(.5rem, calc(6.33 * var(--eva-fluid-unit,1vw) - 2.22rem), 4.44rem);--64_:clamp(1.37rem, calc(3.34 * var(--eva-fluid-unit,1vw) + 1rem), 4.44rem);--64:clamp(2.22rem, calc(2.22 * var(--eva-fluid-unit,1vw) + 2rem), 4.44rem);--64-:clamp(3.59rem, calc(1.11 * var(--eva-fluid-unit,1vw) + 3.01rem), 4.44rem);--72__:clamp(.5rem, calc(7.12 * var(--eva-fluid-unit,1vw) - 2.5rem), 5rem);--72_:clamp(1.55rem, calc(3.76 * var(--eva-fluid-unit,1vw) + 1.13rem), 5rem);--72:clamp(2.5rem, calc(2.5 * var(--eva-fluid-unit,1vw) + 2.25rem), 5rem);--72-:clamp(4.05rem, calc(1.25 * var(--eva-fluid-unit,1vw) + 3.38rem), 5rem);--84__:clamp(.5rem, calc(8.31 * var(--eva-fluid-unit,1vw) - 2.92rem), 5.83rem);--84_:clamp(1.8rem, calc(4.38 * var(--eva-fluid-unit,1vw) + 1.31rem), 5.83rem);--84:clamp(2.92rem, calc(2.92 * var(--eva-fluid-unit,1vw) + 2.63rem), 5.83rem);--84-:clamp(4.72rem, calc(1.46 * var(--eva-fluid-unit,1vw) + 3.95rem), 5.83rem);--90__:clamp(.5rem, calc(8.9 * var(--eva-fluid-unit,1vw) - 3.13rem), 6.25rem);--90_:clamp(1.93rem, calc(4.7 * var(--eva-fluid-unit,1vw) + 1.41rem), 6.25rem);--90:clamp(3.13rem, calc(3.13 * var(--eva-fluid-unit,1vw) + 2.81rem), 6.25rem);--90-:clamp(5.06rem, calc(1.56 * var(--eva-fluid-unit,1vw) + 4.23rem), 6.25rem);--110__:clamp(.5rem, calc(10.88 * var(--eva-fluid-unit,1vw) - 3.82rem), 7.64rem);--110_:clamp(2.36rem, calc(5.74 * var(--eva-fluid-unit,1vw) + 1.72rem), 7.64rem);--110:clamp(3.82rem, calc(3.82 * var(--eva-fluid-unit,1vw) + 3.44rem), 7.64rem);--110-:clamp(6.18rem, calc(1.91 * var(--eva-fluid-unit,1vw) + 5.17rem), 7.64rem);--120__:clamp(.5rem, calc(11.87 * var(--eva-fluid-unit,1vw) - 4.17rem), 8.33rem);--120_:clamp(2.58rem, calc(6.26 * var(--eva-fluid-unit,1vw) + 1.88rem), 8.33rem);--120:clamp(4.17rem, calc(4.17 * var(--eva-fluid-unit,1vw) + 3.75rem), 8.33rem);--120-:clamp(6.75rem, calc(2.08 * var(--eva-fluid-unit,1vw) + 5.64rem), 8.33rem);--150__:clamp(.5rem, calc(14.83 * var(--eva-fluid-unit,1vw) - 5.21rem), 10.42rem);--150_:clamp(3.22rem, calc(7.83 * var(--eva-fluid-unit,1vw) + 2.34rem), 10.42rem);--150:clamp(5.21rem, calc(5.21 * var(--eva-fluid-unit,1vw) + 4.69rem), 10.42rem);--150-:clamp(8.43rem, calc(2.61 * var(--eva-fluid-unit,1vw) + 7.05rem), 10.42rem);--fs-9__:clamp(.625rem, calc(.47 * var(--eva-fluid-unit,1vw) + .14rem), .63rem);--fs-9_:clamp(.625rem, calc(.32 * var(--eva-fluid-unit,1vw) + .28rem), .63rem);--fs-9:clamp(.625rem, calc(.16 * var(--eva-fluid-unit,1vw) + .42rem), .63rem);--fs-10__:clamp(.625rem, calc(.52 * var(--eva-fluid-unit,1vw) + .16rem), .69rem);--fs-10_:clamp(.625rem, calc(.35 * var(--eva-fluid-unit,1vw) + .31rem), .69rem);--fs-10:clamp(.625rem, calc(.17 * var(--eva-fluid-unit,1vw) + .47rem), .69rem);--fs-11__:clamp(.625rem, calc(.57 * var(--eva-fluid-unit,1vw) + .17rem), .76rem);--fs-11_:clamp(.625rem, calc(.38 * var(--eva-fluid-unit,1vw) + .34rem), .76rem);--fs-11:clamp(.625rem, calc(.19 * var(--eva-fluid-unit,1vw) + .52rem), .76rem);--fs-12__:clamp(.625rem, calc(.62 * var(--eva-fluid-unit,1vw) + .19rem), .83rem);--fs-12_:clamp(.625rem, calc(.42 * var(--eva-fluid-unit,1vw) + .38rem), .83rem);--fs-12:clamp(.625rem, calc(.21 * var(--eva-fluid-unit,1vw) + .56rem), .83rem);--fs-13__:clamp(.625rem, calc(.68 * var(--eva-fluid-unit,1vw) + .2rem), .9rem);--fs-13_:clamp(.625rem, calc(.45 * var(--eva-fluid-unit,1vw) + .41rem), .9rem);--fs-13:clamp(.625rem, calc(.23 * var(--eva-fluid-unit,1vw) + .61rem), .9rem);--fs-14__:clamp(.625rem, calc(.73 * var(--eva-fluid-unit,1vw) + .22rem), .97rem);--fs-14_:clamp(.625rem, calc(.49 * var(--eva-fluid-unit,1vw) + .44rem), .97rem);--fs-14:clamp(.64rem, calc(.24 * var(--eva-fluid-unit,1vw) + .66rem), .97rem);--fs-15__:clamp(.625rem, calc(.78 * var(--eva-fluid-unit,1vw) + .23rem), 1.04rem);--fs-15_:clamp(.625rem, calc(.52 * var(--eva-fluid-unit,1vw) + .47rem), 1.04rem);--fs-15:clamp(.68rem, calc(.26 * var(--eva-fluid-unit,1vw) + .7rem), 1.04rem);--fs-16__:clamp(.625rem, calc(.83 * var(--eva-fluid-unit,1vw) + .25rem), 1.11rem);--fs-16_:clamp(.625rem, calc(.56 * var(--eva-fluid-unit,1vw) + .5rem), 1.11rem);--fs-16:clamp(.73rem, calc(.28 * var(--eva-fluid-unit,1vw) + .75rem), 1.11rem);--fs-18__:clamp(.625rem, calc(.94 * var(--eva-fluid-unit,1vw) + .28rem), 1.25rem);--fs-18_:clamp(.63rem, calc(.63 * var(--eva-fluid-unit,1vw) + .56rem), 1.25rem);--fs-18:clamp(.82rem, calc(.31 * var(--eva-fluid-unit,1vw) + .85rem), 1.25rem);--fs-22__:clamp(.625rem, calc(1.15 * var(--eva-fluid-unit,1vw) + .34rem), 1.53rem);--fs-22_:clamp(.77rem, calc(.77 * var(--eva-fluid-unit,1vw) + .69rem), 1.53rem);--fs-22:clamp(1rem, calc(.38 * var(--eva-fluid-unit,1vw) + 1.03rem), 1.53rem);--fs-24__:clamp(.65rem, calc(1.26 * var(--eva-fluid-unit,1vw) + .38rem), 1.67rem);--fs-24_:clamp(.84rem, calc(.84 * var(--eva-fluid-unit,1vw) + .75rem), 1.67rem);--fs-24:clamp(1.09rem, calc(.42 * var(--eva-fluid-unit,1vw) + 1.13rem), 1.67rem);--fs-28__:clamp(.75rem, calc(1.46 * var(--eva-fluid-unit,1vw) + .44rem), 1.94rem);--fs-28_:clamp(.97rem, calc(.97 * var(--eva-fluid-unit,1vw) + .88rem), 1.94rem);--fs-28:clamp(1.26rem, calc(.49 * var(--eva-fluid-unit,1vw) + 1.32rem), 1.94rem);--fs-34__:clamp(.91rem, calc(1.77 * var(--eva-fluid-unit,1vw) + .53rem), 2.36rem);--fs-34_:clamp(1.18rem, calc(1.18 * var(--eva-fluid-unit,1vw) + 1.06rem), 2.36rem);--fs-34:clamp(1.53rem, calc(.59 * var(--eva-fluid-unit,1vw) + 1.6rem), 2.36rem);--fs-38__:clamp(1.02rem, calc(1.98 * var(--eva-fluid-unit,1vw) + .59rem), 2.64rem);--fs-38_:clamp(1.32rem, calc(1.32 * var(--eva-fluid-unit,1vw) + 1.19rem), 2.64rem);--fs-38:clamp(1.72rem, calc(.66 * var(--eva-fluid-unit,1vw) + 1.79rem), 2.64rem);--fs-40__:clamp(1.07rem, calc(2.09 * var(--eva-fluid-unit,1vw) + .63rem), 2.78rem);--fs-40_:clamp(1.39rem, calc(1.39 * var(--eva-fluid-unit,1vw) + 1.25rem), 2.78rem);--fs-40:clamp(1.81rem, calc(.7 * var(--eva-fluid-unit,1vw) + 1.88rem), 2.78rem);--fs-58__:clamp(1.55rem, calc(3.03 * var(--eva-fluid-unit,1vw) + .91rem), 4.03rem);--fs-58_:clamp(2.02rem, calc(2.02 * var(--eva-fluid-unit,1vw) + 1.81rem), 4.03rem);--fs-58:clamp(2.63rem, calc(1.01 * var(--eva-fluid-unit,1vw) + 2.73rem), 4.03rem);--fs-68__:clamp(1.82rem, calc(3.55 * var(--eva-fluid-unit,1vw) + 1.06rem), 4.72rem);--fs-68_:clamp(2.36rem, calc(2.36 * var(--eva-fluid-unit,1vw) + 2.13rem), 4.72rem);--fs-68:clamp(3.07rem, calc(1.18 * var(--eva-fluid-unit,1vw) + 3.2rem), 4.72rem);--fs-84__:clamp(2.25rem, calc(4.38 * var(--eva-fluid-unit,1vw) + 1.31rem), 5.83rem);--fs-84_:clamp(2.92rem, calc(2.92 * var(--eva-fluid-unit,1vw) + 2.63rem), 5.83rem);--fs-84:clamp(3.8rem, calc(1.46 * var(--eva-fluid-unit,1vw) + 3.95rem), 5.83rem);--current-lightness:96.4%;--current-darkness:6.4%;--brand-lightness:80%;--brand-chroma:0;--brand-hue:0;--accent-lightness:70%;--accent-chroma:0;--accent-hue:0;--extra-lightness:60%;--extra-chroma:0;--extra-hue:0;--dark-lightness:var(--current-darkness);--dark-chroma:.05;--dark-hue:var(--brand-hue);--light-lightness:var(--current-lightness);--light-chroma:.1;--light-hue:var(--brand-hue);--darker:-5%;--brighter:10%;--darker_:-15%;--brighter_:30%}.current-theme{--root-brand:var(--brand-lightness) var(--brand-chroma) var(--brand-hue);--brand:oklch(var(--root-brand));--brand_:oklch(var(--root-brand) / 65%);--brand__:oklch(var(--root-brand) / 35%);--brand___:oklch(var(--root-brand) / 15%);--brand-d:oklch(calc(var(--brand-lightness) + var(--darker)) var(--brand-chroma) var(--brand-hue));--brand-b:oklch(calc(var(--brand-lightness) + var(--brighter)) var(--brand-chroma) var(--brand-hue));--brand-d_:oklch(calc(var(--brand-lightness) + var(--darker_)) var(--brand-chroma) var(--brand-hue));--brand-b_:oklch(calc(var(--brand-lightness) + var(--brighter_)) var(--brand-chroma) var(--brand-hue));--root-accent:var(--accent-lightness) var(--accent-chroma) var(--accent-hue);--accent:oklch(var(--root-accent));--accent_:oklch(var(--root-accent) / 65%);--accent__:oklch(var(--root-accent) / 35%);--accent___:oklch(var(--root-accent) / 15%);--accent-d:oklch(calc(var(--accent-lightness) + var(--darker)) var(--accent-chroma) var(--accent-hue));--accent-b:oklch(calc(var(--accent-lightness) + var(--brighter)) var(--accent-chroma) var(--accent-hue));--accent-d_:oklch(calc(var(--accent-lightness) + var(--darker_)) var(--accent-chroma) var(--accent-hue));--accent-b_:oklch(calc(var(--accent-lightness) + var(--brighter_)) var(--accent-chroma) var(--accent-hue));--root-extra:var(--extra-lightness) var(--extra-chroma) var(--extra-hue);--extra:oklch(var(--root-extra));--extra_:oklch(var(--root-extra) / 65%);--extra__:oklch(var(--root-extra) / 35%);--extra___:oklch(var(--root-extra) / 15%);--extra-d:oklch(calc(var(--extra-lightness) + var(--darker)) var(--extra-chroma) var(--extra-hue));--extra-b:oklch(calc(var(--extra-lightness) + var(--brighter)) var(--extra-chroma) var(--extra-hue));--extra-d_:oklch(calc(var(--extra-lightness) + var(--darker_)) var(--extra-chroma) var(--extra-hue));--extra-b_:oklch(calc(var(--extra-lightness) + var(--brighter_)) var(--extra-chroma) var(--extra-hue));--root-dark:var(--dark-lightness) var(--dark-chroma) var(--dark-hue);--dark:oklch(var(--root-dark));--dark_:oklch(var(--root-dark) / 65%);--dark__:oklch(var(--root-dark) / 35%);--dark___:oklch(var(--root-dark) / 15%);--dark-d:oklch(calc(var(--dark-lightness) + var(--darker)) var(--dark-chroma) var(--dark-hue));--dark-b:oklch(calc(var(--dark-lightness) + var(--brighter)) var(--dark-chroma) var(--dark-hue));--dark-d_:oklch(calc(var(--dark-lightness) + var(--darker_)) var(--dark-chroma) var(--dark-hue));--dark-b_:oklch(calc(var(--dark-lightness) + var(--brighter_)) var(--dark-chroma) var(--dark-hue));--root-light:var(--light-lightness) var(--light-chroma) var(--light-hue);--light:oklch(var(--root-light));--light_:oklch(var(--root-light) / 65%);--light__:oklch(var(--root-light) / 35%);--light___:oklch(var(--root-light) / 15%);--light-d:oklch(calc(var(--light-lightness) + var(--darker)) var(--light-chroma) var(--light-hue));--light-b:oklch(calc(var(--light-lightness) + var(--brighter)) var(--light-chroma) var(--light-hue));--light-d_:oklch(calc(var(--light-lightness) + var(--darker_)) var(--light-chroma) var(--light-hue));--light-b_:oklch(calc(var(--light-lightness) + var(--brighter_)) var(--light-chroma) var(--light-hue))}.current-theme.toggle-theme{--darker:10%;--brighter:-5%;--darker_:30%;--brighter_:-15%;--current-lightness:5%;--current-darkness:95%;--dark-lightness:var(--current-darkness)!important;--light-lightness:var(--current-lightness)!important}:root,[data-theme=light]{--accent-lightness:58.5%;--accent-chroma:.17;--accent-hue:33;--brand-lightness:58.5%;--brand-chroma:.17;--brand-hue:33;--accent-ink:oklch(99% .01 60);--bg:oklch(96.8% .006 85);--bg2:oklch(94.5% .007 85);--surface:oklch(99.5% .003 85);--fg:oklch(20.5% .012 60);--muted:oklch(52% .012 60);--faint:oklch(70% .01 70);--line:oklch(87% .008 75);--line2:oklch(80% .01 75);--dot:oklch(20.5% .012 60)}[data-theme=dark]{--accent-lightness:66%;--accent-chroma:.185;--accent-hue:30;--brand-lightness:66%;--brand-chroma:.185;--brand-hue:30;--accent-ink:oklch(15% .02 60);--bg:oklch(15.5% .012 65);--bg2:oklch(19.5% .014 65);--surface:oklch(22.5% .016 65);--fg:oklch(95.5% .006 85);--muted:oklch(70% .012 70);--faint:oklch(46% .012 65);--line:oklch(31% .016 65);--line2:oklch(40% .016 65);--dot:oklch(95.5% .006 85)}:root{--disp:"Space Grotesk Variable", "Space Grotesk", system-ui, sans-serif;--mono:"Space Mono", ui-monospace, monospace;--iris:linear-gradient(105deg, #c07cff, #57d6ea, #ff78c8, #9db0ff)}html,body{margin:0}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--disp);-webkit-font-smoothing:antialiased;transition:background .6s,color .6s;position:relative;overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent__)}.h-hero{font-family:var(--disp);font-weight:600;font-size:var(--fs-58_);letter-spacing:-.025em;margin:0;line-height:1}.h-sec{font-family:var(--disp);font-weight:600;font-size:var(--fs-38_);letter-spacing:-.02em;margin:0;line-height:1.04}.mono{font-family:var(--mono);font-size:var(--fs-12);color:var(--muted);letter-spacing:.02em}.tiny{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.eyebrow{font-family:var(--mono);font-size:var(--fs-11);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);align-items:center;gap:var(--10-);display:flex}.iris{background:var(--iris);color:#0000;-webkit-text-fill-color:transparent;background-clip:text}.col{z-index:3;width:50%;min-height:100vh;padding:0 var(--110_);position:relative}.block{padding:var(--150_) 0}.wrap{padding-left:var(--110_);padding-right:var(--110_)}.wrap--max{max-width:1400px}.projets-list{padding-top:0}.pt{padding:var(--38) 0;border-top:1px solid var(--line)}.pt:first-of-type{border-top:none}.dot{background:var(--dot);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.stage{z-index:0;pointer-events:none;width:100%;height:100vh;position:fixed;inset:0}.stage>*{width:100%;height:100%;display:block}.scrim{z-index:1;pointer-events:none;background:linear-gradient(to right, var(--bg) 26%, color-mix(in oklch, var(--bg) 50%, transparent) 44%, transparent 62%);position:fixed;inset:0}.laboVeil{z-index:2;pointer-events:none;background:var(--accent);opacity:0;position:fixed;inset:0}.noise{z-index:9;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:128px 128px;position:fixed;inset:0}.btn{font-family:var(--disp);font-weight:600;font-size:var(--fs-13);padding:var(--12-) var(--22_);cursor:pointer;border:1px solid var(--line2);color:var(--fg);align-items:center;gap:var(--8-);background:0 0;border-radius:999px;transition:all .2s;display:inline-flex}.btn:hover{border-color:var(--fg)}.btn.pri{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn.pri:hover{background:var(--iris);color:#151515;border-color:#0000}.btn.lg{font-size:var(--fs-15);padding:var(--14-) var(--34_)}.btn.sm{font-size:var(--fs-12);padding:var(--8-) var(--16)}.cbtn{margin-top:var(--34);font-family:var(--disp);font-weight:600;font-size:var(--fs-15);padding:var(--14-) var(--34_);border:1px solid var(--line2);color:var(--faint);cursor:not-allowed;background:0 0;border-radius:999px;transition:all .35s}.cbtn.on{background:var(--fg);color:var(--bg);border-color:var(--fg);cursor:pointer;box-shadow:0 10px 30px -12px #0006}.cbtn.on:hover{background:var(--iris);color:#151515;border-color:#0000}.toggles{z-index:5;pointer-events:none;position:absolute;inset:0}.tog{font-family:var(--mono);font-size:var(--fs-11);letter-spacing:.03em;padding:var(--8-) var(--14-);border:1px solid var(--line2);background:color-mix(in oklch, var(--surface) 66%, transparent);backdrop-filter:blur(5px);color:var(--muted);cursor:pointer;pointer-events:auto;white-space:nowrap;will-change:top, left;border-radius:999px;transition:all .2s;position:absolute;transform:translate(-50%,-50%)}.tog:hover{border-color:var(--fg);color:var(--fg)}.tog.active,.tog.active:hover{background:var(--fg);color:var(--bg);border-color:#0000}.card{background:color-mix(in oklch, var(--surface) 72%, transparent);border:1px solid var(--line);border-radius:var(--16-);backdrop-filter:blur(5px)}.ph{background:var(--bg2);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.placeholder{justify-content:center;align-items:center;width:100%;margin:0;display:flex}.client{width:var(--84_);aspect-ratio:1;color:#111;text-align:center;font-family:var(--mono);font-size:var(--fs-9);letter-spacing:.06em;text-transform:uppercase;background:#fff;border-radius:50%;justify-content:center;align-items:center;padding:6px;display:flex;box-shadow:0 8px 22px -10px #0006}.plist{flex-direction:column;display:flex}.prow{justify-content:space-between;align-items:baseline;gap:var(--16);padding:var(--18) 0;border-top:1px solid var(--line);transition:all .2s;display:flex}.prow:hover{padding-left:var(--8-)}.prow-main{align-items:baseline;gap:var(--42_);min-width:0;display:flex}.prow-idx{font-family:var(--mono);font-size:var(--fs-12);color:var(--faint);flex:none}.prow-title-col{gap:var(--4);flex-direction:column;min-width:0;display:flex}.prow-name{font-family:var(--disp);font-weight:600;font-size:var(--fs-34_);letter-spacing:-.02em}.prow-name--sm{font-size:var(--fs-28_)}.prow-tags{font-family:var(--mono);font-size:var(--fs-11);color:var(--muted)}.prow-side{align-items:center;gap:var(--26-);flex:none;display:flex}.prow-year{font-family:var(--mono);font-size:var(--fs-12);color:var(--faint)}.prow-arrow{font-size:var(--fs-18)}.list-head{justify-content:space-between;align-items:baseline;gap:var(--16);margin-bottom:var(--8-);flex-wrap:wrap;display:flex}.list-cta{margin-top:var(--40)}.marquee{z-index:3;pointer-events:none;opacity:0;width:100%;position:fixed;top:60%;left:0;overflow:hidden}.mqrow{gap:var(--90_);white-space:nowrap;will-change:transform;width:max-content;display:flex}.mqrow span{font-family:var(--disp);font-weight:600;font-size:var(--fs-68_);letter-spacing:-.02em;color:var(--fg);opacity:.92}.nav{z-index:10;justify-content:space-between;align-items:center;gap:var(--22-);width:100%;height:70px;padding:0 var(--40_);background:0 0;transition:background .4s,backdrop-filter .4s;display:flex;position:fixed;top:0;left:0}.nav.scrolled{background:color-mix(in oklch, var(--bg) 72%, transparent);backdrop-filter:blur(10px)}.nav-home{align-items:center;display:flex}.nav-links{align-items:center;gap:var(--22-);display:flex}.navlink{font-size:var(--fs-13);color:var(--muted);transition:all .2s}.navlink:hover,.navlink[aria-current=page]{color:var(--fg)}.logo{width:70px;height:26px;color:var(--fg);display:inline-block}.logo svg{fill:currentColor;width:100%;height:100%;display:block}.logo--sm{width:60px;height:22px}.burger{width:var(--42-);height:var(--42-);border:1px solid var(--line2);background:color-mix(in oklch, var(--surface) 66%, transparent);backdrop-filter:blur(5px);cursor:pointer;border-radius:50%;flex-direction:column;justify-content:center;gap:7px;padding:0 10px;display:none}.burger span{background:var(--fg);border-radius:2px;width:100%;height:2px;transition:transform .3s cubic-bezier(.16,1,.3,1);display:block}.burger[aria-expanded=true] span:first-child{transform:translateY(4.5px)rotate(45deg)}.burger[aria-expanded=true] span:last-child{transform:translateY(-4.5px)rotate(-45deg)}.nav-menu{z-index:8;padding:90px var(--40_) var(--40_);background:color-mix(in oklch, var(--bg) 88%, transparent);backdrop-filter:blur(22px);opacity:0;pointer-events:none;flex-direction:column;justify-content:center;transition:opacity .4s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0}.menu-open .nav-menu{opacity:1;pointer-events:auto}.nav-menu-links{flex-direction:column;display:flex}.nav-menu-link{align-items:baseline;gap:var(--14-);font-family:var(--disp);font-weight:600;font-size:var(--fs-34_);letter-spacing:-.02em;color:var(--fg);padding:var(--14-) 0;border-top:1px solid var(--line);opacity:0;transition:padding-left .2s,opacity .4s,transform .4s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(14px)}.menu-open .nav-menu-link{opacity:1;transform:none}.nav-menu-link:first-child{transition-delay:30ms}.nav-menu-link:nth-child(2){transition-delay:60ms}.nav-menu-link:nth-child(3){transition-delay:90ms}.nav-menu-link:nth-child(4){transition-delay:.12s}.nav-menu-link:nth-child(5){transition-delay:.15s}.nav-menu-link:nth-child(6){transition-delay:.18s}.nav-menu-link:first-child{border-top:none}.nav-menu-link:hover,.nav-menu-link[aria-current=page]{padding-left:var(--8-)}.nav-menu-num{flex:none}.nav-menu-foot{margin-top:var(--38);color:var(--faint)}.foot{z-index:6;width:100%;padding:var(--14-) var(--40_);justify-content:space-between;gap:var(--12);background:color-mix(in oklch, var(--bg) 78%, transparent);backdrop-filter:blur(10px);flex-wrap:wrap;align-items:center;display:flex;position:fixed;bottom:0;left:0}.foot a{color:var(--muted)}.foot--static{backdrop-filter:none;margin-top:var(--40);border-top:1px solid var(--line);background:0 0;position:static}.foot-logo{align-items:center;display:flex}.themebtn{right:var(--22-);bottom:var(--22-);z-index:20;width:var(--42-);height:var(--42-);border:1px solid var(--line2);background:var(--surface);color:var(--fg);font-size:var(--fs-16);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;line-height:1;display:flex;position:fixed;box-shadow:0 6px 18px -8px #0000004d}.contact-cta{text-align:center;min-height:78vh;padding:var(--64_) var(--26_);border-top:1px solid var(--line);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.contact-cta .h-sec{margin-top:var(--12);max-width:16ch}.contact-cta sphere-focus{width:min(60vw,420px);height:min(46vh,380px);margin:var(--8-) 0;display:block}.cmodal{z-index:60;opacity:0;pointer-events:none;justify-content:center;align-items:stretch;transition:opacity .5s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0;overflow-y:auto}.cmodal.open{opacity:1;pointer-events:auto}.cmodal [hidden]{display:none!important}.cmodal-veil{background:color-mix(in oklch, var(--bg) 86%, transparent);backdrop-filter:blur(22px);position:absolute;inset:0}.cmodal-panel{width:100%;max-width:760px;padding:var(--72_) var(--48_);gap:var(--42_);flex-direction:column;margin:auto;display:flex;position:relative}.cmodal-head{justify-content:space-between;align-items:flex-start;display:flex}.cmodal-eyebrow{font-family:var(--mono);font-size:var(--fs-11);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}.cmodal-dot{background:var(--accent);width:7px;height:7px;margin-right:var(--8-);border-radius:50%;display:inline-block}.cmodal-title{font-family:var(--disp);font-weight:600;font-size:var(--fs-58_);letter-spacing:-.025em;margin:var(--16) 0 0;white-space:pre-line;line-height:1}.cmodal-x{width:var(--42-);height:var(--42-);border:1px solid var(--line2);color:var(--fg);font-size:var(--fs-18);cursor:pointer;background:0 0;border-radius:50%;flex:none;margin-left:auto;line-height:1}.cmodal-form{gap:var(--34_);flex-direction:column;display:flex}.cmodal-form input{border:none;border-bottom:1px solid var(--line2);width:100%;padding:var(--10-) 0 var(--14-);font-family:var(--disp);font-weight:500;font-size:var(--fs-28_);color:var(--fg);letter-spacing:-.01em;background:0 0;outline:none}.cmodal-form input:focus-visible{border-bottom-color:var(--accent)}.cmodal-label{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:var(--10-);display:block}.cmodal-submit{margin-top:var(--8-);align-self:flex-start}.cmodal-chips{gap:var(--8-);flex-wrap:wrap;display:flex}.cmodal-chip{font-family:var(--mono);font-size:var(--fs-11);letter-spacing:.08em;padding:var(--8-) var(--12-);border:1px solid var(--line2);color:var(--fg);border-radius:999px}.cmodal-sent{gap:var(--16);flex-direction:column;display:flex}.cmodal-sent .cmodal-eyebrow{background:var(--iris);color:#0000;-webkit-text-fill-color:transparent;background-clip:text}.cmodal-sent .cmodal-dot{background:var(--iris)}.cmodal-sent-body{font-family:var(--disp);font-size:var(--fs-18);color:var(--faint);margin:0}.cmodal-foot{color:var(--faint)}.page-hero{padding:var(--120-) var(--110_) var(--64_);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.page-hero--projets{min-height:82vh}.page-hero--journal{min-height:88vh;padding-top:110px;padding-bottom:var(--40_)}.page-hero--labo{padding-top:130px;padding-bottom:var(--42_);justify-content:flex-start;max-width:1400px}.page-hero--apropos{min-height:100vh;padding-top:110px;padding-bottom:var(--40_)}.page-hero-scene{z-index:0;pointer-events:none;position:absolute;inset:0 -18% 0 34%}.page-hero-scene>*{width:100%;height:100%;display:block}.page-hero--journal .page-hero-scene{inset:0 0 0 38%}.page-hero--apropos .page-hero-scene{inset:0;overflow:hidden}.page-hero-content{z-index:1;max-width:min(50vw,640px);position:relative}.page-hero--journal .page-hero-content{max-width:min(60vw,760px)}.page-hero--labo .page-hero-content{max-width:min(50vw,720px)}.page-hero--apropos .page-hero-content{max-width:min(52vw,720px)}.page-hero-content .h-hero{margin-top:var(--22-)}.page-hero-intro{font-family:var(--mono);font-size:var(--fs-13);color:var(--muted);letter-spacing:.02em;margin:var(--22-) 0 0;max-width:46ch;line-height:1.8}.labo-grid-wrap{padding:0 var(--110_) var(--110_);max-width:1400px}.labo-grid{gap:var(--20-);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.lab-card{flex-direction:column;transition:transform .25s,border-color .25s;display:flex;overflow:hidden}.lab-card:hover{border-color:var(--fg);transform:translateY(-4px)}.lab-card-visual{aspect-ratio:16/10;border-bottom:1px solid var(--line);background:var(--bg2);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.lab-card-img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.lab-card-body{padding:var(--22-) var(--22-) var(--26-);gap:var(--12);flex-direction:column;flex:1;display:flex}.lab-card-meta{justify-content:space-between;align-items:center;gap:var(--12);display:flex}.lab-card-meta .tiny{color:var(--accent)}.lab-card-idx{font-family:var(--mono);font-size:var(--fs-11);color:var(--faint)}.lab-card-name{font-family:var(--disp);font-weight:600;font-size:var(--fs-24);letter-spacing:-.02em}.lab-card-text{font-size:var(--fs-14);color:var(--muted);flex:1;margin:0;line-height:1.6}.lab-card-tags{gap:var(--8-);margin-top:var(--4);flex-wrap:wrap;display:flex}.lab-card-tag{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.06em;padding:5px var(--10-);border:1px solid var(--line);color:var(--muted);border-radius:999px}.lab-card-more{margin-top:var(--6);font-size:var(--fs-12);opacity:0;transition:opacity .25s,transform .25s;transform:translate(-4px)}.lab-card:hover .lab-card-more{opacity:1;transform:none}.labo-detail-body{max-width:68ch}.labo-detail-body h2{font-family:var(--disp);font-weight:600;font-size:var(--fs-22);letter-spacing:-.01em;margin:var(--32-) 0 var(--12)}.labo-detail-body code{font-family:var(--mono);background:var(--bg2);border-radius:4px;padding:2px 5px;font-size:.9em}.labo-detail-body pre{margin:var(--22-) 0;padding:var(--18-) var(--20-);background:var(--bg2);border:1px solid var(--line);border-radius:var(--10-);font-family:var(--mono);font-size:var(--fs-13);color:var(--fg);line-height:1.75;overflow-x:auto}.labo-detail-body pre code{font-size:inherit;color:inherit;background:0 0;border-radius:0;padding:0}.labo-detail-body strong{color:var(--fg);font-weight:600}.labo-link{text-decoration:none}.labo-further{margin-top:var(--64_)}.labo-further .eyebrow{margin-bottom:var(--20-)}.further-list{gap:var(--16);grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));display:grid}.further-item{gap:var(--10-);padding:var(--22-);border:1px solid var(--line);border-radius:var(--12);background:var(--surface);flex-direction:column;text-decoration:none;transition:transform .25s,border-color .25s;display:flex}.further-item:hover{border-color:var(--fg);transform:translateY(-4px)}.further-title{font-family:var(--disp);font-weight:600;font-size:var(--fs-18);letter-spacing:-.01em}.further-excerpt{font-size:var(--fs-14);color:var(--muted);flex:1;line-height:1.6}.further-more{font-size:var(--fs-12);opacity:.75}.further-item:hover .further-more{opacity:1}.further-kicker{font-size:var(--fs-11);letter-spacing:.06em;text-transform:uppercase}.further-empty{margin-top:var(--16);color:var(--faint)}.tag-cloud{gap:var(--8-);margin-top:var(--26-);flex-wrap:wrap;max-width:44ch;display:flex}.tag-pill{font-family:var(--mono);font-size:var(--fs-11);letter-spacing:.04em;color:var(--muted);padding:7px var(--14-);border:1px solid var(--line);border-radius:999px}.article-hero{padding-top:var(--72_,72px)}.article-meta{margin:var(--24,24px) 0 var(--16,16px)}.article-title{max-width:24ch}.article-body{margin-top:var(--24,24px)}.journal-grid{gap:var(--84_);grid-template-columns:1fr 240px;align-items:start;display:grid}.journal-post{padding:var(--42_) 0;border-top:1px solid var(--line)}.post-meta{align-items:center;gap:var(--14-);margin-bottom:var(--16);flex-wrap:wrap;display:flex}.post-date{font-family:var(--mono);font-size:var(--fs-11);color:var(--faint)}.post-sep{background:var(--line2);border-radius:50%;width:4px;height:4px}.post-tag{font-family:var(--mono);font-size:var(--fs-10);letter-spacing:.08em}.post-title{font-family:var(--disp);font-weight:600;font-size:var(--fs-40_);letter-spacing:-.025em;margin:0;line-height:1.05}.post-cover-link{margin-top:var(--18-);display:block}.post-cover{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--line);border-radius:var(--12-);width:100%;max-width:60ch;display:block}.post-excerpt{margin:var(--16) 0 0;font-size:var(--fs-16);color:var(--muted);max-width:60ch;line-height:1.7}.post-more{margin-top:var(--18-);font-family:var(--mono);font-size:var(--fs-12);color:var(--fg);display:inline-block}.journal-aside{position:sticky;top:100px}.journal-aside .tiny{margin-bottom:var(--18-);display:block}.journal-aside nav{flex-direction:column;gap:2px;display:flex}.aside-link{color:var(--muted);padding:var(--12-) 0;border-top:1px solid var(--line);font-size:var(--fs-14);gap:var(--10-);line-height:1.35;transition:color .2s;display:flex}.aside-link:hover{color:var(--fg)}.aside-num{font-family:var(--mono);font-size:var(--fs-11);flex:none}.projet-hero{padding:var(--120-) var(--110_) var(--20-);max-width:1400px;position:relative;overflow:hidden}.projet-hero-scene{pointer-events:none;width:46%;height:72%;position:absolute;top:70px;right:0}.projet-hero-scene>*{width:100%;height:100%;display:block}.projet-back{color:var(--muted);font-size:var(--fs-12);position:relative}.projet-eyebrow{margin-top:var(--26-)}.projet-title{margin-top:var(--18-);font-size:var(--fs-84_)}.projet-tagline{font-family:var(--disp);font-weight:500;font-size:var(--fs-24_);color:var(--muted);margin:var(--22-) 0 0;max-width:40ch;line-height:1.45}.projet-facts{gap:var(--64_);margin-top:var(--40);flex-wrap:wrap;display:flex}.projet-fact{margin-top:var(--8-);font-weight:600;font-size:var(--fs-16)}.browser{border:1px solid var(--line);border-radius:var(--16-);background:var(--surface);overflow:hidden}.browser-bar{align-items:center;gap:var(--8-);padding:var(--12-) var(--16);border-bottom:1px solid var(--line);display:flex}.browser-dot{background:var(--line2);border-radius:50%;width:11px;height:11px}.browser-url{margin-left:var(--12-);font-family:var(--mono);font-size:var(--fs-11);color:var(--faint)}.browser-view{aspect-ratio:16/9;position:relative}.browser-img{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.mission-grid{gap:var(--72_);grid-template-columns:1fr 1fr;display:grid}.mission-title{margin-top:var(--18-);max-width:20ch;font-weight:500}.mission-text{font-size:var(--fs-15);color:var(--muted);margin-top:var(--18-);max-width:52ch;line-height:1.7}.mission-text p{margin:0 0 1em}.mission-text p:last-child{margin-bottom:0}.skills{margin-top:var(--18-)}.skill-row{justify-content:space-between;align-items:baseline;gap:var(--16);padding:var(--16) 0;border-top:1px solid var(--line);display:flex}.skill-name{font-weight:600;font-size:var(--fs-16)}.skill-note{font-family:var(--mono);font-size:var(--fs-11);color:var(--faint)}.projet-media{padding-bottom:var(--90_)}.projet-media .eyebrow{margin-bottom:var(--26-)}.media-grid{gap:var(--20-);grid-template-columns:1.4fr 1fr;align-items:stretch;display:grid}.media-video{border-radius:var(--16-);border:1px solid var(--line);min-height:280px;position:relative;overflow:hidden}.media-play{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.media-play span{background:color-mix(in oklch, var(--surface) 80%, transparent);backdrop-filter:blur(6px);border:1px solid var(--line2);width:66px;height:66px;font-size:var(--fs-18);color:var(--fg);border-radius:50%;justify-content:center;align-items:center;display:flex}.media-caption{left:var(--16);bottom:var(--14-);pointer-events:none;position:absolute}.media-caption .tiny{color:#fff;text-shadow:0 1px 8px #00000080}.media-phones{gap:var(--16);justify-content:center;display:flex}.phone{aspect-ratio:9/19;border:6px solid var(--fg);border-radius:26px;width:clamp(120px,17vw,190px);position:relative;overflow:hidden;box-shadow:0 20px 50px -20px #00000073}.phone--offset{align-self:flex-end}.projet-others{padding-bottom:var(--110_)}.apropos-lead{font-family:var(--disp);font-weight:500;font-size:var(--fs-22_);color:var(--muted);margin:var(--26-) 0 0;max-width:38ch;line-height:1.5}.stats{gap:var(--38-);margin-top:var(--38);display:flex}.stat-num{font-family:var(--disp);font-weight:600;font-size:var(--fs-34);letter-spacing:-.02em;line-height:1}.stat-label{margin-top:var(--8-)}.portrait-grid{gap:var(--48_);grid-template-columns:.75fr 1.25fr;align-items:center;display:grid}.portrait-frame{aspect-ratio:4/5;border:1px solid var(--line);border-radius:18px;position:relative;overflow:hidden}.portrait-quote{max-width:20ch;margin:0;font-weight:500}.surf-frame{aspect-ratio:16/7;border:1px solid var(--line);border-radius:20px;width:100%;position:relative;overflow:hidden}.parcours-title{margin-top:var(--18-);max-width:18ch}.timeline{margin-top:var(--42_);max-width:64ch}.milestone{gap:var(--40_);padding:var(--26-) 0;border-top:1px solid var(--line);grid-template-columns:120px 1fr;align-items:baseline;display:grid}.milestone-year{font-family:var(--mono);font-size:var(--fs-15);font-weight:700}.milestone-title{font-family:var(--disp);font-weight:600;font-size:var(--fs-22_)}.milestone-body{margin:var(--8-) 0 0;font-size:var(--fs-15);color:var(--muted);max-width:52ch;line-height:1.6}.apropos-cta{margin-top:var(--42_);gap:var(--12);flex-wrap:wrap;display:flex}.methode-step{flex-direction:column;justify-content:center;min-height:100vh;display:flex}.methode-step--intro{padding-top:70px}.methode-step .h-sec{margin-top:var(--14-)}.step-text{font-size:var(--fs-15);color:var(--muted);max-width:44ch;margin:var(--16) 0 0;line-height:1.7}.step-hint{margin-top:var(--18-)}.methode-legend{gap:var(--10-);margin-top:var(--20-);flex-direction:column;max-width:34ch;display:flex}.legend-row{align-items:center;gap:var(--12-);display:flex}.legend-row .mono{font-size:var(--fs-12);color:var(--fg)}.legend-swatch{border:1.5px solid var(--fg);flex:none;width:12px;height:12px}.legend-swatch--ia{border-color:var(--accent);border-radius:50%}.step-cta{margin-top:var(--26-);gap:var(--12);flex-wrap:wrap;display:flex}.home-hero{min-height:100vh;padding-top:70px;padding-bottom:var(--48_);flex-direction:column;justify-content:center;display:flex}.home-hero .h-hero{margin-top:var(--22-);max-width:14ch}.home-tag{font-family:var(--disp);font-weight:500;font-size:var(--fs-22_);margin:var(--20-) 0 0;color:var(--muted)}.home-cta{margin-top:var(--38)}.home-chapter--tall{flex-direction:column;justify-content:center;min-height:100vh;display:flex}.manifesto{margin-top:var(--38);max-width:46ch}.manifesto-title{margin-top:var(--20-);max-width:16ch;font-weight:500}.geste{gap:var(--16);display:flex}.geste .tiny{padding-top:3px}.geste-title{font-weight:600;font-size:var(--fs-18)}.geste-body{margin:var(--10-) 0 0;font-size:var(--fs-15);color:var(--muted);line-height:1.6}.geste-hint{margin-top:var(--12-)}.home-note{margin-top:var(--14-);font-size:var(--fs-12);color:var(--faint);max-width:36ch}.chapter-text{font-size:var(--fs-15);color:var(--muted);max-width:40ch;margin:var(--14-) 0 0;line-height:1.6}.layout-btns{gap:var(--8-);margin-top:var(--22-);display:flex}.home-link{margin-top:var(--22-);display:inline-block}.dot--iris{background:var(--iris)}.home-labo,.home-labo .eyebrow{color:var(--accent-ink)}.home-labo .dot{background:var(--accent-ink)}.home-labo .h-sec{margin-top:var(--18-);color:var(--accent-ink)}.home-labo .chapter-text{color:var(--accent-ink);opacity:.85;max-width:42ch}.labo-inner{opacity:0}.labo-code{border-radius:var(--16-);padding:var(--22-);margin-top:var(--26-);background:#00000024;border:1px solid #ffffff40;max-width:42ch}.labo-code .mono{font-size:var(--fs-11);color:var(--accent-ink);line-height:1.9}.home-contact{text-align:center;min-height:100vh;padding:var(--40_) var(--26_);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.home-contact-inner{z-index:4;flex-direction:column;align-items:center;display:flex;position:relative}.home-contact-title{font-family:var(--disp);font-weight:600;font-size:var(--fs-40_);margin-top:var(--10-);letter-spacing:-.02em}.contact-arrow{font-size:var(--fs-24);margin-top:2px;line-height:1}.contact-spacer{height:min(46vh,420px)}.contact-hint{margin-top:var(--14-)}@media (width<=860px){.col{width:100%}.scrim{background:color-mix(in oklch, var(--bg) 84%, transparent)}.nav-links{display:none}.burger{display:flex}.page-hero-content,.page-hero--journal .page-hero-content,.page-hero--labo .page-hero-content,.page-hero--apropos .page-hero-content{max-width:100%}.journal-grid,.mission-grid,.media-grid,.portrait-grid{grid-template-columns:1fr}.journal-aside{position:static}.projet-hero-scene{opacity:.5;width:70%}}
