@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.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:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.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:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.390ncx5urfkfu.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:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.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 Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_dadf0a02-module__OqvJ7W__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_dadf0a02-module__OqvJ7W__variable{--font-body:"Geist", "Geist Fallback"}
@font-face{font-family:DM Serif Display;font-style:italic;font-weight:400;font-display:swap;src:url(../media/26a0a19eb96a029d-s.2ajvp03xtic_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Serif Display;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fad69795a077455b-s.p.0t285orp4l5or.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:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8dd8a3188b79fd8f-s.2o9_j983y90g0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Serif Display;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c8f209abc35ee02-s.p.0c0g8ifvh7k7-.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:DM Serif Display Fallback;src:local(Times New Roman);ascent-override:94.37%;descent-override:30.51%;line-gap-override:0.0%;size-adjust:109.78%}.dm_serif_display_933a782e-module__yxjx1W__className{font-family:DM Serif Display,DM Serif Display Fallback;font-weight:400}.dm_serif_display_933a782e-module__yxjx1W__variable{--font-serif:"DM Serif Display", "DM Serif Display Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_74b4137b-module__1widkq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_74b4137b-module__1widkq__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(../media/KaTeX_AMS-Regular.25ieegmnh38ts.woff2)format("woff2"),url(../media/KaTeX_AMS-Regular.10y3kupq4t663.woff)format("woff"),url(../media/KaTeX_AMS-Regular.418dr7cz3fo2x.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(../media/KaTeX_Caligraphic-Bold.06b-ya9t43ioz.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Bold.2vmk2hva4ctha.woff)format("woff"),url(../media/KaTeX_Caligraphic-Bold.40ltxhe834pns.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(../media/KaTeX_Caligraphic-Regular.2eph4dlhid_m9.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Regular.3gxeetazf831f.woff)format("woff"),url(../media/KaTeX_Caligraphic-Regular.07-7u27-nhn_r.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(../media/KaTeX_Fraktur-Bold.2sasz-d-jtw8y.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Bold.1alcy76__wdj2.woff)format("woff"),url(../media/KaTeX_Fraktur-Bold.19yqa_tc9d_gx.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(../media/KaTeX_Fraktur-Regular.2d10y4xmjvzlf.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Regular.110oo81prr9n5.woff)format("woff"),url(../media/KaTeX_Fraktur-Regular.2qhy34r6a05dn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(../media/KaTeX_Main-Bold.3-rowy8o6_4ky.woff2)format("woff2"),url(../media/KaTeX_Main-Bold.0v1esh257kqpe.woff)format("woff"),url(../media/KaTeX_Main-Bold.0us_n0tnxlxu7.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(../media/KaTeX_Main-BoldItalic.14r2naom8mrec.woff2)format("woff2"),url(../media/KaTeX_Main-BoldItalic.13355ck5zr48q.woff)format("woff"),url(../media/KaTeX_Main-BoldItalic.3x_u9cepaced0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(../media/KaTeX_Main-Italic.0lig0v9j0700p.woff2)format("woff2"),url(../media/KaTeX_Main-Italic.0afv392dj4w59.woff)format("woff"),url(../media/KaTeX_Main-Italic.2hkw3230mfwcv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(../media/KaTeX_Main-Regular.1ryvsdzh2w1_e.woff2)format("woff2"),url(../media/KaTeX_Main-Regular.15u8r3b2y7fv4.woff)format("woff"),url(../media/KaTeX_Main-Regular.0symfa7dqj6jd.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(../media/KaTeX_Math-BoldItalic.1oopuu636h4il.woff2)format("woff2"),url(../media/KaTeX_Math-BoldItalic.12pl58orkw9rg.woff)format("woff"),url(../media/KaTeX_Math-BoldItalic.0y5w36a5aq__2.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(../media/KaTeX_Math-Italic.32405s1aq8vas.woff2)format("woff2"),url(../media/KaTeX_Math-Italic.0w0b1ugh62cfr.woff)format("woff"),url(../media/KaTeX_Math-Italic.2vkekfblmz5nb.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(../media/KaTeX_SansSerif-Bold.0h3wi2z_eouyg.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Bold.1ovw5p-yjp56g.woff)format("woff"),url(../media/KaTeX_SansSerif-Bold.2d03q85pwxpti.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(../media/KaTeX_SansSerif-Italic.0wkjc4dm2kcit.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Italic.1qavw__2zz8gk.woff)format("woff"),url(../media/KaTeX_SansSerif-Italic.3i-q087b23-m8.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(../media/KaTeX_SansSerif-Regular.2peiewu59z3d-.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Regular.1i4afx8nk8n4r.woff)format("woff"),url(../media/KaTeX_SansSerif-Regular.31pbu25feko_c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(../media/KaTeX_Script-Regular.11h14300o9pd0.woff2)format("woff2"),url(../media/KaTeX_Script-Regular.3110jb9c-bxna.woff)format("woff"),url(../media/KaTeX_Script-Regular.28p_x7iz71ofe.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size1-Regular.03lhvx36ekcou.woff2)format("woff2"),url(../media/KaTeX_Size1-Regular.1slf4bh0hc6vm.woff)format("woff"),url(../media/KaTeX_Size1-Regular.1y57-ck23ey8c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size2-Regular.14s5gg-puz6h-.woff2)format("woff2"),url(../media/KaTeX_Size2-Regular.0-kwyvx03omo8.woff)format("woff"),url(../media/KaTeX_Size2-Regular.2u0s-b07k2o9m.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size3-Regular.1n1rgzz84z8r9.woff2)format("woff2"),url(../media/KaTeX_Size3-Regular.04o9a_02gu_e8.woff)format("woff"),url(../media/KaTeX_Size3-Regular.1pkn-dge4q0fv.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size4-Regular.2sgotkdv3dcyv.woff2)format("woff2"),url(../media/KaTeX_Size4-Regular.3p2r1l7xmebxv.woff)format("woff"),url(../media/KaTeX_Size4-Regular.2uelkfk2yna5e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(../media/KaTeX_Typewriter-Regular.11gr2d2wuwz77.woff2)format("woff2"),url(../media/KaTeX_Typewriter-Regular.12f8myjij3617.woff)format("woff"),url(../media/KaTeX_Typewriter-Regular.3nee9kjfy6nm8.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}}:root{--bg:#111714;--bg-2:#171e1a;--bg-3:#1d2520;--surface:#242d27;--border:#303b34;--teal:#00bfac;--teal-dim:#007a6e;--teal-glow:#00bfac26;--text:#e8ede9;--text-2:#8a9e96;--text-3:#6c847a;--radius:4px;--ease:cubic-bezier(.16, 1, .3, 1);--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:5rem;--max-width:960px;--content-width:680px;--nav-height:56px;--color-bg:var(--bg);--color-bg-subtle:var(--bg-2);--color-text:var(--text);--color-text-secondary:var(--text-2);--color-text-tertiary:var(--text-3);--color-accent:var(--teal);--color-accent-hover:var(--teal);--color-border:var(--border);--color-border-subtle:var(--border);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:lab(0% 0 0)){:root{--teal:lab(69.2345% -48.9839 -3.08988);--teal-dim:lab(45.5447% -34.9727 -2.20817);--teal-glow:lab(69.2345% -48.9839 -3.08988/.15)}}:root[data-theme=light]{--bg:#e9efeb;--bg-2:#e0e8e3;--bg-3:#d6e0da;--surface:#f1f5f2;--border:#c3d0c8;--teal:#005f54;--teal-dim:#004b43;--teal-glow:#008e8029;--text:#1b2b23;--text-2:#4c6257;--text-3:#586c62;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@supports (color:lab(0% 0 0)){:root[data-theme=light]{--teal:lab(35.1043% -35.2844 -2.1875);--teal-dim:lab(27.8384% -26.288 -1.65208);--teal-glow:lab(52.6272% -38.4483 -2.43052/.16)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background:var(--bg)}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-body), system-ui, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:9999;pointer-events:none;opacity:.6;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");position:fixed;inset:0}:root[data-theme=light] body:before{opacity:.24}::selection{background:var(--teal);color:var(--bg)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--teal-dim);border-radius:2px}a{color:inherit;text-decoration:none;transition:color .2s}a:hover{color:var(--teal)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--teal);outline-offset:3px}img{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{color:var(--text);font-family:var(--font-serif), Georgia, serif;letter-spacing:0;font-weight:400;line-height:1.1}p{color:var(--text-2)}main{min-height:100dvh}.state-page{min-height:100svh;padding:calc(var(--nav-height) + 56px) 24px 72px;background:radial-gradient(circle at 78% 28%, var(--teal-glow), transparent 34%), linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);background-color:var(--bg);background-size:auto,48px 48px,48px 48px;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}body:has(.loading-screen){overflow:hidden}.loading-screen{height:100svh;min-height:100svh;color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;gap:10px;font-size:11px;display:flex}.loading-spinner{border:1.5px solid var(--border);border-top-color:var(--teal);border-radius:50%;width:14px;height:14px;animation:.75s linear infinite state-spin}.state-page>*{z-index:1;max-width:680px;position:relative}.state-kicker{width:fit-content;color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:12px;margin-bottom:20px;font-size:11px;display:inline-flex}.state-kicker:before{content:"";background:var(--teal);width:32px;height:1px;display:block}.state-page h1{max-width:760px;margin-bottom:20px;font-size:clamp(28px,5vw,44px)}.state-page p{max-width:620px;font-size:clamp(15px,2vw,18px);line-height:1.8}.state-actions{flex-wrap:wrap;gap:16px;margin-top:40px;display:flex}@keyframes state-spin{to{transform:rotate(360deg)}}.page-shell{padding-top:var(--nav-height)}.section-spacer{margin-top:48px}.mono,.tech-tag,.tech-chip,.eyebrow{font-family:var(--font-mono), "Cascadia Code", monospace}.site-nav{z-index:100;height:var(--nav-height);background:linear-gradient(to bottom, var(--bg) 0%, transparent 100%);justify-content:space-between;align-items:center;padding:0 24px;transition:background .3s,border-color .3s;display:flex;position:fixed;inset:0 0 auto}.site-nav.is-scrolled{background:var(--bg)}@supports (color:color-mix(in lab, red, red)){.site-nav.is-scrolled{background:color-mix(in srgb, var(--bg) 92%, transparent)}}.site-nav.is-scrolled{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.site-nav.menu-open{z-index:120;background:var(--bg)}.nav-logo{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.05em;align-items:center;gap:8px;font-size:13px;display:inline-flex}.nav-logo-mark{object-fit:contain;width:22px;height:22px}.nav-links{align-items:center;gap:24px;list-style:none;display:flex}.nav-link{min-height:var(--nav-height);color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;align-items:center;font-size:11px;line-height:1;display:inline-flex}.nav-link:hover,.nav-link[aria-current=page],.nav-link[data-active=true]{color:var(--teal)}.nav-menu{position:relative}.nav-menu:after{content:"";width:calc(100% + 32px);height:14px;position:absolute;top:100%;left:-16px}.nav-menu-summary{cursor:pointer;background:0 0;border:0;padding:0}.nav-submenu{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);gap:2px;min-width:168px;padding:8px;display:grid;position:absolute;top:calc(100% + 14px);left:50%}@supports (color:color-mix(in lab, red, red)){.nav-submenu{background:color-mix(in srgb, var(--bg) 96%, transparent)}}.nav-submenu{box-shadow:0 18px 42px var(--text)}@supports (color:color-mix(in lab, red, red)){.nav-submenu{box-shadow:0 18px 42px color-mix(in srgb, var(--text) 18%, transparent)}}.nav-submenu{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);list-style:none;transform:translate(-50%)}.nav-submenu a{border-radius:var(--radius);min-height:38px;color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;align-items:center;padding:0 10px;font-size:11px;display:flex}.nav-submenu a:hover,.nav-submenu a[aria-current=page]{background:var(--teal-glow);color:var(--teal)}.nav-toggle{cursor:pointer;background:0 0;border:0;flex-direction:column;gap:5px;padding:8px;display:none}.nav-toggle span{background:var(--text);transform-origin:50%;width:22px;height:1.5px;transition:opacity .2s,transform .2s;display:block}.theme-toggle{border:1px solid var(--border);background:var(--bg-2);width:32px;height:32px;color:var(--text-2);border-radius:999px;justify-content:center;align-items:center;padding:0;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.theme-toggle svg{width:13px;height:13px}.theme-toggle:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.nav-toggle.open span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:last-child{transform:translateY(-6.5px)rotate(-45deg)}.mobile-menu{z-index:110;padding:calc(var(--nav-height) + 28px) 24px 32px;background:var(--bg);flex-direction:column;justify-content:flex-start;align-items:stretch;gap:24px;display:none;position:fixed;inset:0;overflow-y:auto}.mobile-menu.open{display:flex}body:has(.mobile-menu.open){overflow:hidden}.mobile-menu-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(100%,420px);margin:0 auto;display:grid}.mobile-menu-section{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.mobile-menu-section a{margin-left:0}.mobile-menu-links a{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);min-height:48px;color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:.07em;text-transform:uppercase;align-items:center;padding:0 14px;font-size:11px;line-height:1.2;display:flex}.mobile-menu-links a[aria-current=page],.mobile-menu-links a:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.mobile-menu .theme-toggle{width:100%;height:48px}@media (max-width:640px){.nav-links{display:none}.nav-logo{gap:6px;font-size:11px}.nav-logo-mark{width:18px;height:18px}.nav-toggle{display:flex}}.hero-section{width:100%;max-width:none;min-height:100svh;padding:calc(var(--nav-height) + 32px) 24px 56px;flex-direction:column;justify-content:flex-end;margin:0;display:flex;position:relative;overflow:hidden}.hero-bg-grid{opacity:.3;background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 30%,#000 0%,#0000 70%);mask-image:radial-gradient(80% 60% at 50% 30%,#000 0%,#0000 70%)}:root[data-theme=light] .hero-bg-grid{opacity:.5;background-image:linear-gradient(var(--text-3) 1px, transparent 1px), linear-gradient(90deg, var(--text-3) 1px, transparent 1px)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light] .hero-bg-grid{background-image:linear-gradient(color-mix(in srgb, var(--text-3) 48%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--text-3) 48%, transparent) 1px, transparent 1px)}}.hero-teal-blob{pointer-events:none;background:radial-gradient(#00bfac12 0%,#0000 70%);background:radial-gradient(lab(69.2345% -48.9839 -3.08988/.07) 0%,#0000 70%);width:min(600px,80vw);height:min(600px,80vw);position:absolute;top:-10%;right:-15%}.hero-content{z-index:1;max-width:960px;position:relative}.hero-label,.section-label,.eyebrow{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:12px;margin-bottom:20px;font-size:11px;display:flex}.hero-label:before{content:"";background:var(--teal);width:32px;height:1px;display:block}.section-label{margin-bottom:40px}.section-label:after{content:"";background:var(--border);flex:1;height:1px}.hero-name{color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-bottom:8px;font-size:clamp(32px,5vw,56px);line-height:1.08}.hero-name em,.contact-headline em{color:var(--teal);font-style:italic}.hero-handle{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.04em;margin-bottom:32px;font-size:clamp(13px,2.5vw,18px)}.hero-tagline{max-width:640px;color:var(--text-2);margin-bottom:44px;font-size:clamp(14px,2.2vw,18px);line-height:1.7}.hero-tagline strong{color:var(--text);font-weight:500}.hero-actions{flex-wrap:wrap;gap:16px;display:flex}.btn-primary,.btn-ghost,.btn-projects-all,.btn-resume,.resume-btn{border-radius:var(--radius);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;transition:transform .2s var(--ease), border-color .2s, color .2s, box-shadow .2s;align-items:center;gap:8px;padding:12px 24px;font-size:12px;display:inline-flex}.btn-primary{background:var(--teal);color:var(--bg);border:0;font-weight:700}.btn-primary:hover{color:var(--bg);transform:translateY(-2px);box-shadow:0 8px 24px #00bfac3d;box-shadow:0 8px 24px lab(69.2345% -48.9839 -3.08988/.24)}.btn-resume{border:1px solid var(--teal-dim);background:var(--teal-glow);color:var(--teal);font-weight:700}.btn-resume:hover{border-color:var(--teal);color:var(--teal);transform:translateY(-2px);box-shadow:0 8px 24px #00bfac24;box-shadow:0 8px 24px lab(69.2345% -48.9839 -3.08988/.14)}.btn-resume svg{width:15px;height:15px}.btn-ghost,.resume-btn{border:1px solid var(--border);color:var(--text-2);background:0 0}.btn-ghost:hover,.resume-btn:hover{border-color:var(--teal);color:var(--teal)}.btn-projects-all{background:var(--teal);min-width:220px;color:var(--bg);white-space:nowrap;border:1px solid #00ead4;border:1px solid lab(83.2772% -52.3082 -3.32309);justify-content:center;padding:15px 28px;font-weight:800}.btn-projects-all:hover{color:var(--bg);transform:translateY(-2px);box-shadow:0 12px 28px #00bfac47;box-shadow:0 12px 28px lab(69.2345% -48.9839 -3.08988/.28)}.btn-projects-all svg{width:15px;height:15px}.hero-scroll-hint{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-orientation:mixed;writing-mode:vertical-rl;align-items:center;gap:8px;font-size:10px;display:flex;position:absolute;bottom:28px;right:24px}.hero-scroll-hint:after{content:"";background:linear-gradient(to bottom, var(--text-3), transparent);width:1px;height:40px;animation:2s ease-in-out infinite scrollLine;display:block}.cursor{background:var(--teal);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:1.2s step-end infinite blink;display:inline-block}section{max-width:var(--max-width);margin:0 auto;padding:96px 24px}.page-shell>section:first-child{padding-top:56px}.section-grid{grid-template-columns:1fr;gap:56px;display:grid}.section-title{margin-bottom:24px;font-size:clamp(24px,3vw,34px);line-height:1.2}#writing .section-title{font-size:clamp(22px,2.6vw,30px);line-height:1.22}.section-action{margin-top:var(--space-xl);justify-content:center;display:flex}.section-action--left{justify-content:flex-start}.route-link-grid{grid-template-columns:1fr;gap:2px;display:grid}.route-link-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;transition:border-color .2s var(--ease), background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);grid-template-columns:20px 1fr 16px;align-items:center;gap:14px;padding:18px 20px;font-size:12px;display:grid}.route-link-card:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal);transform:translateY(-1px)}.route-link-card svg{width:16px;height:16px}.home-index{grid-template-columns:1fr;gap:2px;display:grid}.home-index-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);min-height:220px;transition:border-color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);flex-direction:column;justify-content:space-between;gap:20px;padding:24px;display:flex;position:relative;overflow:hidden}.home-index-panel:before{content:"";pointer-events:none;opacity:0;transition:opacity .2s var(--ease);background:linear-gradient(135deg,#00bfac14,#0000 48%);background:linear-gradient(135deg,lab(69.2345% -48.9839 -3.08988/.08),#0000 48%);position:absolute;inset:0}.home-index-panel:hover{border-color:var(--teal-dim);background:var(--bg-3);transform:translateY(-1px)}.home-index-panel:hover:before{opacity:1}.home-index-panel>*{z-index:1;position:relative}.home-index-panel h3{max-width:620px;margin:0;font-size:clamp(19px,2vw,24px)}.home-index-panel p{max-width:620px;color:var(--text-2)}.home-index-kicker,.home-index-link{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;display:inline-flex}.home-index-kicker svg,.home-index-link svg{width:14px;height:14px}.home-index-link{color:var(--text-3);transition:color .2s var(--ease)}.home-index-panel:hover .home-index-link{color:var(--teal)}.home-skill-cloud{flex-wrap:wrap;gap:8px;display:flex}.home-stack-groups,.home-stack-group{gap:10px;display:grid}.home-stack-groups{gap:16px}.home-stack-label{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;font-size:9px}.home-skill-cloud span{border:1px solid var(--teal-dim);border-radius:var(--radius);background:var(--bg-2);color:var(--text-2);font-family:var(--font-mono), monospace;padding:6px 9px;font-size:11px}.home-skill-cloud--workflow span{border-color:var(--border);color:var(--text-3);background:0 0}.home-index-panel--compact{min-height:88px;color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;grid-template-columns:18px 1fr 16px;align-items:center;padding:20px 22px;font-size:12px;display:grid}.home-index-panel--compact svg{width:16px;height:16px}@media (min-width:700px){.route-link-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.route-link-card{grid-template-rows:auto auto;grid-template-columns:1fr auto}.route-link-card svg:first-child{grid-column:1/-1}.home-index{grid-template-columns:repeat(2,minmax(0,1fr))}.home-index-panel--wide{grid-column:1/-1}}.full-bleed{max-width:none;padding-left:0;padding-right:0}.alt-band{background:var(--bg-2)}.full-bleed-inner{max-width:var(--max-width);margin:0 auto;padding:0 24px}.about-body{max-width:620px}.about-body p{color:var(--text-2);margin-bottom:16px;font-size:16px;line-height:1.8}.about-body p:first-of-type:not(.section-label){color:var(--text);font-size:18px}.about-stats{border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(3,1fr);gap:2px;display:grid;overflow:hidden}.stat-card{border-right:1px solid var(--border);background:var(--bg-2);text-align:center;padding:24px 20px}.stat-card:last-child{border-right:0}.stat-num{color:var(--teal);font-family:var(--font-serif), Georgia, serif;margin-bottom:8px;font-size:36px;line-height:1}.stat-label{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;font-size:10px}@media (min-width:768px){.section-grid{grid-template-columns:3fr 2fr;align-items:start}.about-stats{grid-template-columns:1fr}.stat-card{border-right:0;border-bottom:1px solid var(--border)}.stat-card:last-child{border-bottom:0}}.projects-grid{grid-template-columns:1fr;gap:2px;display:grid}.project-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);grid-template-rows:auto 1fr auto;gap:16px;padding:32px;transition:border-color .25s,background .25s;display:grid;position:relative;overflow:hidden}.project-card:before{content:"";background:var(--teal);transform-origin:0;height:2px;transition:transform .35s var(--ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-card:after{content:"";z-index:0;opacity:.22;background-image:var(--project-card-visual);background-position:var(--project-card-visual-position,center);background-repeat:no-repeat;background-size:var(--project-card-visual-size,cover);pointer-events:none;transition:opacity .25s,transform .25s;position:absolute;inset:0}.project-card>*{z-index:1;position:relative}.project-card:hover{background-color:var(--bg-3);border-color:#00bfac66;border-color:lab(69.2345% -48.9839 -3.08988/.4)}.project-card:hover:before{transform:scaleX(1)}.project-card:hover:after{opacity:.3;transform:scale(1.02)}.project-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.project-num{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.08em;font-size:11px}.project-links{gap:12px;display:flex}.project-link{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:4px;font-size:10px;display:inline-flex}.project-link svg{width:12px;height:12px}.project-title{color:var(--text);margin-bottom:12px;font-size:clamp(18px,2vw,22px);line-height:1.24}.project-desc{color:var(--text-2);font-size:14px;line-height:1.7}.project-tags,.cert-skill-list,.project-meta{flex-wrap:wrap;gap:8px;display:flex}.tag,.tech-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.06em;border-radius:2px;padding:4px 10px;font-size:10px}.tag.featured,.project-meta .tech-chip{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}@media (min-width:640px){.projects-grid{grid-template-columns:1fr 1fr}}.project-explorer,.project-display-section{gap:16px;display:grid}.project-display-section{width:100%;max-width:none;margin:0;padding:0}.project-archive-section{margin-top:44px}#projects>.section-spacer{margin-top:34px}.project-section-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.project-section-heading h2{color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-top:5px;font-size:clamp(20px,2.3vw,26px);line-height:1.25}.project-section-heading>span{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:10px}.featured-projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;display:grid}.project-featured-card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(100deg, var(--bg-2) 18%, #060f0dd1), var(--bg-2);min-height:275px;transition:border-color .25s var(--ease), transform .25s var(--ease);grid-template-rows:auto 1fr auto;gap:20px;padding:24px;display:grid;position:relative;overflow:hidden}@supports (color:lab(0% 0 0)){.project-featured-card{background:linear-gradient(100deg, var(--bg-2) 18%, lab(3.81366% -2.95578 -.0264704/.82)), var(--bg-2)}}.project-featured-card:first-child{grid-column:1/-1;min-height:305px}:root[data-theme=light] .project-featured-card{background:linear-gradient(100deg, var(--surface) 18%, var(--bg-3)), var(--bg-2)}.project-featured-card:after{z-index:0;background-image:var(--project-card-visual);background-position:var(--project-card-visual-position,center);background-repeat:no-repeat;background-size:var(--project-card-visual-size,cover);content:"";opacity:.34;pointer-events:none;transition:opacity .25s var(--ease), transform .25s var(--ease);position:absolute;inset:0}.project-featured-card:before{z-index:1;background:linear-gradient(90deg, var(--bg-2) 8%, transparent 78%);content:"";pointer-events:none;position:absolute;inset:0}:root[data-theme=light] .project-featured-card:before{background:linear-gradient(90deg, var(--surface) 8%, var(--surface) 78%)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light] .project-featured-card:before{background:linear-gradient(90deg, var(--surface) 8%, color-mix(in srgb, var(--surface) 65%, transparent) 78%)}}.project-featured-card>*{z-index:2;position:relative}.project-featured-card>.project-card-topbar{z-index:3;background:var(--teal);height:2px;box-shadow:0 0 8px var(--teal), 0 0 22px var(--teal-glow);pointer-events:none;transform-origin:0;transition:transform .35s var(--ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-featured-card:hover{border-color:var(--teal-dim);transform:translateY(-2px)}.project-featured-card:hover:after{opacity:.43;transform:scale(1.02)}.project-featured-card:is(:hover,:focus-visible)>.project-card-topbar{transform:scaleX(1)}.project-card-meta,.project-card-footer,.project-archive-meta,.project-archive-categories{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-card-meta span,.project-archive-meta span,.project-archive-categories span{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:10px}.project-card-meta .project-status,.project-archive-meta .project-status{color:var(--teal)}.project-featured-copy{align-self:end;max-width:620px}.project-featured-copy h2{color:var(--text);margin-bottom:8px;font-size:clamp(23px,3vw,34px);line-height:1.15}.project-tagline{max-width:54ch;color:var(--text);font-size:15px;line-height:1.5}.project-impact{max-width:62ch;color:var(--text-2);margin-top:8px;font-size:13px;line-height:1.5}.project-card-footer{justify-content:space-between}.project-view-link{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.07em;text-transform:uppercase;flex:none;align-items:center;gap:7px;margin-top:6px;font-size:10px;display:inline-flex}.project-view-link svg{width:13px;height:13px}.project-toolbar{gap:14px;display:grid}.project-search{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);width:100%;max-width:420px;min-height:42px;color:var(--text-3);transition:border-color .2s var(--ease);align-items:center;gap:10px;padding:0 12px;display:flex}.project-search:focus-within{border-color:var(--teal-dim)}.project-search svg{flex:none;width:14px;height:14px}.project-search input{width:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:0;font-size:14px}.project-search input::placeholder{color:var(--text-3)}.project-filters{border:0;flex-wrap:wrap;gap:7px;padding:0;display:flex}.project-filters button,.project-empty-state button{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.05em;text-transform:uppercase;transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);background:0 0;padding:6px 10px;font-size:10px}.project-filters button:hover,.project-filters button.is-active,.project-empty-state button:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.project-archive-list{border-top:1px solid var(--border);display:grid}.project-archive-item{border-bottom:1px solid var(--border);transition:background .2s var(--ease);grid-template-columns:100px minmax(0,1fr) auto 18px;align-items:center;gap:20px;padding:16px 0;display:grid}.project-archive-item:hover{background:linear-gradient(90deg, transparent, var(--teal-glow), transparent)}.project-archive-copy h3{color:var(--text);margin-bottom:5px;font-size:16px}.project-archive-copy p{color:var(--text-2);font-size:13px;line-height:1.55}.project-archive-copy>span{color:var(--text-3);margin-top:6px;font-size:11px;line-height:1.5;display:block}.project-archive-categories{justify-content:flex-end}.project-archive-categories span{border:1px solid var(--border);border-radius:2px;padding:4px 7px}.project-archive-arrow{width:14px;height:14px;color:var(--text-3);transition:color .2s var(--ease), transform .2s var(--ease)}.project-archive-item:hover .project-archive-arrow{color:var(--teal);transform:translate(2px)}.project-empty-state{border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-2);justify-items:start;gap:12px;padding:28px 0;display:grid}@media (max-width:760px){.featured-projects-grid{grid-template-columns:1fr}.project-featured-card:first-child{grid-column:1}.project-featured-card,.project-featured-card:first-child{min-height:265px;padding:20px}.project-featured-card:after{opacity:.2}.project-archive-item{grid-template-columns:minmax(0,1fr) 18px;gap:10px 14px}.project-archive-meta,.project-archive-copy,.project-archive-categories{grid-column:1}.project-archive-categories{justify-content:flex-start}.project-archive-arrow{grid-area:1/2/span 3;align-self:center}}.timeline{flex-direction:column;display:flex;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--teal), var(--border) 60%, transparent);width:1px;position:absolute;top:8px;bottom:0;left:0}.timeline-item{padding-bottom:48px;padding-left:28px;position:relative}.timeline-item:before{content:"";background:var(--teal);width:7px;height:7px;box-shadow:0 0 0 3px var(--bg-2), 0 0 0 4px var(--teal-dim);border-radius:50%;position:absolute;top:8px;left:-3px}.timeline-item:last-child{padding-bottom:0}.education-signal-grid{grid-template-columns:1fr;gap:2px;display:grid}.education-signal-card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg, #00bfac0f, transparent 46%), var(--bg);min-height:148px;padding:22px}@supports (color:lab(0% 0 0)){.education-signal-card{background:linear-gradient(135deg, lab(69.2345% -48.9839 -3.08988/.06), transparent 46%), var(--bg)}}.education-signal-card span{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px;font-size:11px;display:block}.education-signal-card strong{color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-bottom:10px;font-size:clamp(19px,2vw,23px);font-weight:400;line-height:1.24;display:block}.education-signal-card p{color:var(--text-2);line-height:1.6}.education-timeline{margin-top:56px}@media (min-width:760px){.education-signal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.tl-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.tl-period,.experience-period{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.06em;font-size:11px}.tl-badge{border:1px solid var(--teal-dim);background:var(--teal-glow);color:var(--teal);font-family:var(--font-mono), monospace;border-radius:2px;padding:2px 8px;font-size:10px}.tl-role{color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-bottom:4px;font-size:20px;line-height:1.2}.tl-company{color:var(--text-2);margin-bottom:12px;font-size:14px;font-weight:500}.tl-desc{max-width:620px;color:var(--text-2);font-size:14px;line-height:1.7}.tl-desc li,.project-detail-list li{margin-bottom:6px;padding-left:16px;list-style:none;position:relative}.tl-desc li:before{content:"";background:var(--teal);opacity:.8;border-radius:50%;width:5px;height:5px;position:absolute;top:.82em;left:2px}.project-detail-list li{padding-left:18px}.project-detail-list li:before{content:"";background:var(--teal);border-radius:50%;width:5px;height:5px;position:absolute;top:.78em;left:2px}.skills-grid{grid-template-columns:1fr;gap:32px;display:grid}.skill-group-label,.cert-category-title{border-bottom:1px solid var(--border);color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;padding-bottom:8px;font-size:10px}.skill-pills,.skill-list{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.skill-pill,.skill-item{border:1px solid var(--teal-dim);border-radius:var(--radius);background:var(--bg-2);color:var(--text-2);font-family:var(--font-mono), monospace;align-items:center;gap:8px;padding:8px 14px;font-size:12px;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.skill-pill:hover,.skill-item:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.skill-icon{width:1.25rem;height:1.25rem}@media (min-width:640px){.skills-grid{grid-template-columns:1fr 1fr}}@media (min-width:900px){.skills-grid{grid-template-columns:repeat(3,1fr)}}.oss-list{flex-direction:column;gap:2px;display:flex}.oss-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);align-items:flex-start;gap:20px;padding:24px;transition:border-color .2s;display:flex}.alt-band .oss-item{background:var(--bg)}.oss-item:hover{border-color:#00bfac59;border-color:lab(69.2345% -48.9839 -3.08988/.35)}.oss-icon{border:1px solid var(--teal-dim);border-radius:var(--radius);background:var(--teal-glow);width:40px;height:40px;color:var(--teal);font-family:var(--font-mono), monospace;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.oss-icon svg{width:20px;height:20px}.oss-content{flex:1;min-width:0}.oss-name{color:var(--text);font-family:var(--font-mono), monospace;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;font-size:13px;font-weight:700;display:flex}.oss-repo{color:var(--teal-dim);font-size:11px;font-weight:400}.oss-desc{color:var(--text-2);margin-bottom:10px;font-size:13px;line-height:1.6}.oss-meta{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.oss-stat{color:var(--text-3);font-family:var(--font-mono), monospace;font-size:11px}.oss-evidence-link{color:var(--teal);font-family:var(--font-mono), monospace;align-items:center;gap:6px;font-size:11px;display:inline-flex}.oss-evidence-link svg{width:13px;height:13px}.writing-section{gap:20px;display:grid}.writing-section+.writing-section{margin-top:56px}.writing-section-head h2{color:var(--text);font-family:var(--font-serif), Georgia, serif;font-size:clamp(19px,2vw,23px);line-height:1.28}.featured-writing-card,.series-card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg, #00bfac14, transparent 52%), var(--bg-2);transition:border-color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);gap:18px;padding:22px;display:grid;position:relative;overflow:hidden}@supports (color:lab(0% 0 0)){.featured-writing-card,.series-card{background:linear-gradient(135deg, lab(69.2345% -48.9839 -3.08988/.08), transparent 52%), var(--bg-2)}}.featured-writing-card{margin-bottom:48px}.featured-writing-card:hover,.series-card:hover{border-color:var(--teal-dim);background:linear-gradient(135deg, #00bfac1f, transparent 52%), var(--bg-3);transform:translateY(-1px)}@supports (color:lab(0% 0 0)){.featured-writing-card:hover,.series-card:hover{background:linear-gradient(135deg, lab(69.2345% -48.9839 -3.08988/.12), transparent 52%), var(--bg-3)}}.featured-writing-card h2,.series-card h3{color:var(--text);margin:0}.featured-writing-card h2{max-width:760px;font-size:clamp(21px,2.4vw,28px);line-height:1.24}.featured-writing-card p,.series-card p{max-width:720px;color:var(--text-2);line-height:1.7}.writing-card-meta,.writing-tags{flex-wrap:wrap;gap:8px;display:flex}.writing-card-meta span,.writing-card-meta time,.writing-tags span{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;font-size:11px}.writing-card-primary{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.writing-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.series-grid{grid-template-columns:1fr;gap:2px;display:grid}.series-post-list{gap:8px;padding-top:6px;display:grid}.series-post-list a{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.04em;font-size:12px}@media (min-width:760px){.series-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.publication-list{gap:16px;display:grid}.publication-card{border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg, var(--bg-2), var(--bg));padding:24px}.publication-card h2,.publication-card h3{max-width:840px;color:var(--text);font-family:var(--font-serif), Georgia, serif;margin:12px 0;font-size:clamp(19px,2vw,24px);line-height:1.26}.publication-meta{flex-wrap:wrap;gap:8px;display:flex}.publication-meta span{border:1px solid var(--teal-dim);background:var(--teal-glow);min-height:24px;color:var(--teal);font-family:var(--font-mono), monospace;border-radius:2px;align-items:center;padding:4px 9px;font-size:11px;display:inline-flex}.publication-authors,.publication-venue,.publication-summary,.post-excerpt{color:var(--text-2)}.publication-authors{margin-bottom:6px;font-weight:600}.publication-venue,.publication-summary{max-width:760px;font-size:14px;line-height:1.7}.publication-summary{margin-top:14px}.publication-links{flex-wrap:wrap;gap:18px;margin-top:20px;display:flex}.publication-link{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;display:inline-flex}.publication-link svg{width:14px;height:14px}.posts-list{border-top:1px solid var(--border);flex-direction:column;display:flex}.post-item{border-bottom:1px solid var(--border);grid-template-columns:86px 1fr auto 16px;align-items:center;gap:18px;padding:18px 0;display:grid}.post-date,.post-category,.post-arrow{color:var(--text-3);font-family:var(--font-mono), monospace;font-size:11px}.post-arrow{justify-content:center;align-items:center;display:flex}.post-arrow svg{width:14px;height:14px}.post-title{color:var(--text);font-size:15px}.post-item--blog{grid-template-columns:86px minmax(0,1fr) auto 16px;align-items:start;padding:22px 0}.post-item--blog .post-title{margin-bottom:8px;font-size:17px}.post-excerpt{max-width:720px;font-size:14px;line-height:1.7}.blog-rss-link{border:1px solid var(--border);border-radius:var(--radius);min-height:38px;color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);flex:none;align-items:center;gap:8px;padding:8px 12px;font-size:11px;display:inline-flex}.blog-rss-link:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.blog-rss-link svg{width:14px;height:14px}.blog-stats{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.04em;flex-wrap:wrap;gap:8px 0;font-size:11px;display:flex}.blog-stats span{align-items:center;gap:5px;display:inline-flex}.blog-stats span:not(:last-child):after{background:var(--border);content:"";width:1px;height:12px;margin:0 12px}.blog-stats strong{color:var(--text-2);font-weight:600}.blog-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 28px;margin-top:64px;padding-top:24px;display:flex}.blog-section-title-row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.blog-section-title-row>span{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.05em;text-transform:uppercase;font-size:11px}.blog-archive,.blog-toolbar{gap:18px;display:grid}.blog-search{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);width:100%;max-width:420px;min-height:42px;color:var(--text-3);transition:border-color .2s var(--ease);align-items:center;gap:10px;padding:0 12px;display:flex}.blog-search:focus-within{border-color:var(--teal-dim)}.blog-search svg{flex:none;width:14px;height:14px}.blog-search input{width:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:0;font-size:14px}.blog-search input::placeholder{color:var(--text-3)}.blog-topic-filters{border:0;flex-wrap:wrap;gap:7px;padding:0;display:flex}.blog-topic-filters button,.blog-empty-state button{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.05em;text-transform:uppercase;transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);background:0 0;padding:6px 10px;font-size:10px}.blog-topic-filters button:hover,.blog-topic-filters button.is-active,.blog-empty-state button:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.blog-empty-state{border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-2);justify-items:start;gap:12px;padding:28px 0;display:grid}.post-date{gap:5px;display:grid}.post-date span{color:var(--text-3);opacity:.8}@media (max-width:759px){.post-item--blog{grid-template-columns:minmax(0,1fr) 16px;gap:12px}.post-item--blog .post-date,.post-item--blog .post-category,.post-item--blog>div:nth-child(2){grid-column:1}.post-item--blog .post-arrow{grid-area:1/2/span 3;align-self:center}}.mdx-article{width:min(100% - 48px,820px);padding:calc(var(--nav-height) + 72px) 0 96px;margin:0 auto}.mdx-article h1{color:var(--text);margin-bottom:20px;font-size:clamp(22px,3vw,30px);line-height:1.22}.mdx-article h2{color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-top:52px;margin-bottom:16px;font-size:clamp(19px,2vw,23px);line-height:1.28}.mdx-article p,.mdx-article li{color:var(--text-2);font-size:16px;line-height:1.8}.mdx-article p{margin-top:18px}.mdx-article h2+p{margin-top:0}.mdx-lead{max-width:720px;color:var(--text);font-size:17px}.mdx-meta{flex-wrap:wrap;gap:8px;margin:28px 0 48px;display:flex}.mdx-meta span,.mdx-meta time{border:1px solid var(--teal-dim);background:var(--teal-glow);color:var(--teal);font-family:var(--font-mono), monospace;border-radius:2px;padding:4px 9px;font-size:11px}.mdx-article a{color:var(--teal);text-decoration:underline;-webkit-text-decoration-color:var(--teal-dim);-webkit-text-decoration-color:var(--teal-dim);-webkit-text-decoration-color:var(--teal-dim);text-decoration-color:var(--teal-dim);text-underline-offset:4px}.mdx-article ul,.mdx-article ol{gap:12px;margin:24px 0 28px;padding:0;list-style:none;display:grid}.mdx-article ol{counter-reset:mdx-list}.mdx-article li{padding-left:2rem;position:relative}.mdx-article li:before{color:var(--teal);font-family:var(--font-mono), monospace;font-size:.86em;position:absolute;left:0}.mdx-article ul>li:before{content:"•";top:.05em}.mdx-article ol>li{counter-increment:mdx-list}.mdx-article ol>li:before{content:counter(mdx-list) ".";top:.08em}.mdx-article li>p{margin-top:0}.mdx-article li strong{color:var(--text);font-weight:600}.code-block{margin:22px 0;position:relative}.code-block pre{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);margin:0;padding:18px 92px 18px 18px;overflow-x:auto}.code-block figure[data-rehype-pretty-code-figure]{margin:0}.code-block pre[data-theme]{background:var(--bg-2)}.code-block code[data-theme]{min-width:100%;display:grid}.code-block [data-line]{padding:0 2px}.code-block [data-highlighted-line]{border-left:2px solid var(--teal);background:var(--teal-glow);margin:0 -18px;padding:0 20px}.code-copy-btn{z-index:1;border:1px solid var(--border);background:var(--bg-2);border-radius:4px;min-width:54px;height:26px;padding:0 8px;position:absolute;top:12px;right:8px}@supports (color:color-mix(in lab, red, red)){.code-copy-btn{background:color-mix(in oklch, var(--bg-2) 82%, var(--surface))}}.code-copy-btn{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.04em;text-transform:none;cursor:pointer;transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);font-size:10px;line-height:1}.code-copy-btn:hover{border-color:var(--teal-dim);background:var(--bg-3);color:var(--teal)}.mdx-article code{font-family:var(--font-mono), "Cascadia Code", monospace;font-size:.9em}.mdx-article :not(pre)>code{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:2px;padding:2px 5px}.mdx-article pre code{color:var(--text);line-height:1.7}.mdx-article .katex-display{padding:12px 0;overflow:auto hidden}.youtube-embed{margin:28px 0 36px}.youtube-embed-frame{aspect-ratio:16/9;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);overflow:hidden}.youtube-embed iframe{border:0;width:100%;height:100%;display:block}.youtube-embed figcaption{color:var(--text-3);font-family:var(--font-mono), monospace;margin-top:10px;font-size:11px;line-height:1.5}.post-series-nav{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);gap:8px;margin-top:56px;padding:18px;display:grid}.post-series-nav span{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:11px}.post-series-nav a{font-family:var(--font-serif), Georgia, serif;font-size:22px;text-decoration:none}.reading-progress{z-index:110;pointer-events:none;background:0 0;height:2px;position:fixed;top:0;left:0;right:0}.reading-progress span{background:var(--teal);width:100%;height:100%;box-shadow:0 0 10px var(--teal-glow);transform-origin:0;transition:transform 80ms linear;display:block}.article-topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;margin-bottom:34px;padding-bottom:14px;display:flex}.mdx-article .article-back-link,.article-actions button,.mdx-article .article-rss-link{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;transition:color .2s var(--ease);align-items:center;gap:7px;font-size:10px;text-decoration:none;display:inline-flex}.mdx-article .article-back-link:hover,.article-actions button:hover,.mdx-article .article-rss-link:hover{color:var(--teal)}.article-back-link svg,.article-actions svg,.article-rss-link svg{flex:none;width:13px;height:13px}.article-actions{gap:14px;display:flex}.article-actions button{background:0 0;border:0;padding:0}.article-footer{border-top:1px solid var(--border);gap:28px;margin-top:72px;padding-top:28px;display:grid}.article-footer-tags{flex-wrap:wrap;gap:7px;display:flex}.article-footer-tags span{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.05em;text-transform:uppercase;padding:5px 9px;font-size:10px}.article-author{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;display:grid}.article-author-mark{border:1px solid var(--teal-dim);background:var(--teal-glow);width:42px;height:42px;color:var(--teal);font-family:var(--font-mono), monospace;border-radius:50%;place-items:center;font-size:11px;display:grid}.article-author>div{gap:3px;display:grid}.article-author>div>span{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:9px}.mdx-article .article-author strong{color:var(--text);font-size:14px}.mdx-article .article-author p{color:var(--text-3);margin:0;font-size:11px;line-height:1.5}.article-post-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mdx-article .article-post-nav a{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);min-height:120px;color:var(--text);transition:border-color .2s var(--ease), background .2s var(--ease);gap:7px;padding:16px 38px 16px 16px;text-decoration:none;display:grid;position:relative}.mdx-article .article-post-nav a:hover{border-color:var(--teal-dim);background:var(--bg-3)}.article-post-nav a>span{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:9px}.article-post-nav a>strong{font-family:var(--font-serif), Georgia, serif;font-size:15px;line-height:1.4}.article-post-nav a>svg{width:14px;height:14px;color:var(--teal);position:absolute;bottom:16px;right:16px}.article-post-nav .article-post-nav-next{text-align:right;grid-column:2}@media (max-width:600px){.mdx-article{width:min(100% - 32px,820px);padding-top:calc(var(--nav-height) + 40px)}.article-actions button{font-size:0}.article-actions button svg{width:15px;height:15px}.article-author{grid-template-columns:auto minmax(0,1fr)}.mdx-article .article-rss-link{grid-column:2}.article-post-nav{grid-template-columns:1fr}.article-post-nav .article-post-nav-next{grid-column:1}}.resume-strip{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);justify-content:space-between;align-items:center;gap:20px;margin-top:40px;padding:24px;display:flex}.resume-title{color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;font-size:12px}.resume-sub{color:var(--text-2);font-size:13px}#contact-section{min-height:calc(100svh - var(--nav-height))}.contact-inner{max-width:var(--max-width);grid-template-columns:1fr;gap:56px;margin:0 auto;display:grid}.contact-headline{margin-bottom:20px;font-size:clamp(28px,5vw,42px);line-height:1.16}.contact-availability{width:fit-content;color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;font-size:10px;display:flex}.contact-availability svg{width:12px;height:12px;color:var(--teal)}.contact-subtext{max-width:460px;color:var(--text-2);font-size:16px;line-height:1.7}.contact-primary-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:24px;display:flex}.contact-primary-link,.contact-secondary-link{border:1px solid var(--teal-dim);border-radius:var(--radius);min-height:44px;font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);justify-content:center;align-items:center;gap:9px;padding:10px 14px;font-size:11px;display:inline-flex}.contact-primary-link{background:var(--teal);color:var(--bg)}.contact-primary-link:hover{background:var(--text);border-color:var(--text);color:var(--bg);transform:translateY(-1px)}.contact-primary-link svg{width:14px;height:14px}.contact-secondary-link{border-color:var(--border);color:var(--text-2)}.contact-secondary-link:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.contact-topic-grid{gap:2px;max-width:560px;margin-top:36px;display:grid}.contact-topic-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);transition:border-color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);grid-template-columns:34px 1fr;gap:14px;padding:16px;display:grid}.contact-topic-card:hover{border-color:var(--teal-dim);background:var(--bg-3);transform:translate(2px)}.contact-topic-card svg{width:18px;height:18px;color:var(--teal);margin-top:3px}.contact-topic-card h2{font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:12px}.contact-topic-card p{color:var(--text-2);font-size:13px;line-height:1.6}.contact-links{flex-direction:column;gap:2px;display:flex}.contact-link-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);transition:border-color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);grid-template-columns:44px 1fr auto;align-items:center;gap:16px;padding:16px;display:grid}.contact-link-item:hover{border-color:var(--teal-dim);background:var(--bg-3);color:inherit;transform:translate(3px)}.contact-link-icon{border:1px solid var(--teal-dim);border-radius:var(--radius);background:var(--teal-glow);width:36px;height:36px;color:var(--teal);font-family:var(--font-mono), monospace;justify-content:center;align-items:center;display:flex}.contact-link-icon svg,.contact-link-arrow svg{width:18px;height:18px}.contact-link-name{color:var(--text);font-family:var(--font-mono), monospace;text-transform:uppercase;font-size:12px}.contact-link-val{color:var(--text-2);font-size:13px}.contact-link-arrow{color:var(--text-3);transition:color .2s var(--ease);justify-content:center;align-items:center;display:flex}.contact-link-item:hover .contact-link-arrow{color:var(--teal)}.contact-route-nav{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}.contact-route-heading{color:var(--text);font-family:var(--font-serif), Georgia, serif;font-size:18px;line-height:1.3}.contact-route-copy{color:var(--text-3);margin-top:3px;font-size:13px}.contact-route-links{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;gap:18px;padding-top:14px;font-size:11px;display:flex}.contact-route-links a:after{content:" ↗";color:var(--teal-dim)}@media (min-width:760px){.contact-inner{grid-template-columns:1fr 1fr;align-items:center}}@media (max-width:520px){.contact-primary-actions,.contact-primary-link,.contact-secondary-link{width:100%}.contact-link-item{grid-template-columns:38px minmax(0,1fr) auto;gap:12px;padding:14px}.contact-link-val{overflow-wrap:anywhere}}.site-footer{border-top:1px solid var(--border);background:var(--bg);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:24px;display:flex}body:has(.loading-screen) .site-footer{display:none}.footer-mono{color:var(--text-3);font-family:var(--font-mono), monospace;font-size:11px}.footer-teal{color:var(--teal)}.footer-links{flex-wrap:wrap;place-items:center;gap:10px;display:flex}.footer-link{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;transition:color .2s var(--ease);align-items:center;gap:6px;font-size:11px;display:inline-flex}.footer-link:hover{color:var(--teal)}.footer-link svg{width:14px;height:14px}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 24px}.content-width{max-width:var(--content-width)}.section{padding:96px 0}.section-sm{padding:48px 0}.page-header,.project-detail-header{padding-top:56px;padding-bottom:48px}.page-header h1,.project-detail-header h1{font-size:clamp(26px,4vw,38px);line-height:1.18}.project-detail-title-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.project-detail-title-row h1{margin:0}.project-detail-logo{object-fit:contain;width:52px;height:52px}.page-intro,.project-detail-description{max-width:65ch;color:var(--text-2);font-size:1.1rem;line-height:1.7}.divider,.divider-sm{background:var(--border);height:1px}.divider{width:3rem;margin:32px 0}.divider-sm{width:2rem;margin:24px 0}.achievement{border:1px solid var(--border);background:var(--bg-2);padding:24px;position:relative}.experience-entry{border-bottom:1px solid var(--border);grid-template-columns:1fr;gap:16px;padding:32px 0;display:grid}@media (min-width:768px){.experience-entry{grid-template-columns:12rem 1fr}}.skill-group{margin-bottom:36px}.contact-link{color:var(--text-2);align-items:center;gap:10px;padding:12px 0;display:inline-flex}.bento-grid{grid-template-columns:1fr;gap:2px;display:grid}@media (min-width:640px){.bento-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.bento-grid{grid-template-columns:repeat(4,1fr)}}.bento-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);min-height:240px;transition:border-color .25s, transform .25s var(--ease);flex-direction:column;justify-content:flex-end;padding:28px;display:flex;position:relative;overflow:hidden}.bento-card:hover{border-color:var(--teal-dim);transform:translateY(-2px)}.bento-card-bg{z-index:0;opacity:.16;transition:opacity .25s;position:absolute;inset:0}.bento-card:hover .bento-card-bg{opacity:.28}.bento-card-content{z-index:1;flex-direction:column;gap:8px;display:flex;position:relative}.bento-category,.bento-meta{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:11px}.bento-title{color:var(--text);font-size:1.35rem}.bento-tagline{color:var(--text-2);font-size:.9rem}.bento-impact{color:var(--teal);font-size:.8rem}.bento-meta{color:var(--text-3);text-transform:none;gap:8px;display:flex}.bento-status{background:var(--surface);padding:2px 6px}@media (min-width:640px){.bento-card--hero{grid-column:span 2;min-height:320px}}@media (min-width:1024px){.bento-card--hero{grid-row:span 2;min-height:420px}.bento-card--normal{grid-column:span 2}}.project-detail-meta,.project-detail-links{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.project-back-link{color:var(--text-3);font-family:var(--font-mono), monospace;white-space:nowrap;align-items:center;gap:8px;margin-bottom:16px;font-size:12px;line-height:1;display:inline-flex}.project-back-link svg{flex-shrink:0;width:14px;height:14px}.project-detail-meta{margin-bottom:28px}.project-detail-links{margin-bottom:24px}.project-detail-category,.project-detail-year,.project-detail-status,.cert-provider,.cert-type,.cert-status,.cert-expand-label,.cert-progress-copy,.cert-meta dt,.project-demo-caption{color:var(--text-3);font-family:var(--font-mono), monospace;font-size:12px}.project-detail-category,.project-detail-year,.project-detail-status{background:#121815;border:1px solid #31403b;border-radius:2px;align-items:center;width:fit-content;min-height:24px;padding:4px 9px;line-height:1;display:inline-flex}.project-detail-status{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.project-detail-section{margin-top:40px}.project-detail-section h3{font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;font-size:12px}.project-detail-link,.cert-link{border:1px solid var(--border);border-radius:var(--radius);color:var(--teal);font-family:var(--font-mono), monospace;transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:inline-flex}.project-detail-link:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal);transform:translateY(-1px)}.project-detail-link svg,.cert-link svg{width:14px;height:14px}.project-demo-grid{column-count:1;column-gap:16px;list-style:none}@media (min-width:768px){.project-demo-grid{column-count:2}}.project-demo-card,.cert-item,.cert-course-bundle{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);margin-bottom:16px;overflow:hidden}.cert-item{background:linear-gradient(135deg, var(--bg-2), var(--bg));transition:border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);position:relative}.cert-item:before{content:"";background:var(--teal);opacity:.55;width:3px;position:absolute;inset:0 auto 0 0}.cert-item:hover,.cert-item[open]{border-color:var(--teal-dim);box-shadow:0 14px 34px #0000002e}.cert-item:hover{transform:translateY(-1px)}.project-demo-trigger{cursor:zoom-in;background:0 0;border:0;width:100%}.project-demo-image{width:100%;height:auto}.project-demo-caption,.project-demo-empty{padding:12px}.project-detail-section--flush{margin-top:0}.project-detail-impact{margin-top:var(--space-lg);color:var(--color-accent);font-weight:500}.project-demo-figure{margin-bottom:var(--space-xl)}.project-demo-video{aspect-ratio:16/9;border-radius:var(--radius);object-fit:contain;background-color:#000;width:100%}.project-case-study{padding-bottom:56px}.project-case-hero{padding:calc(var(--nav-height) + 52px) 0 56px;border-bottom:1px solid var(--border);background:radial-gradient(circle at 82% 34%, var(--teal-glow), transparent 30%), linear-gradient(145deg, var(--bg-2), var(--bg) 68%);position:relative;overflow:hidden}.project-case-hero:before{background:var(--teal);height:2px;box-shadow:0 0 18px var(--teal);content:"";position:absolute;top:0;left:0;right:0}.project-case-hero-inner{z-index:1;position:relative}.project-case-study .project-back-link{width:fit-content;transition:color .2s var(--ease), transform .2s var(--ease);margin-bottom:40px}.project-case-study .project-back-link:hover{transform:translate(-2px)}.project-case-hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:center;gap:56px;display:grid}.project-case-intro{max-width:680px}.project-case-eyebrow,.project-case-actions,.project-case-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-case-eyebrow{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;margin-bottom:22px;font-size:10px}.project-case-eyebrow span:not(:last-child):after{color:var(--border);content:"/";margin-left:10px}.project-case-eyebrow .project-status{color:var(--teal)}.project-case-title-row{align-items:center;gap:16px}.project-case-logo{border:1px solid var(--border);object-fit:cover;border-radius:10px;width:52px;height:52px}.project-case-title-row h1{text-wrap:balance;font-size:clamp(42px,7vw,74px);line-height:.98}.project-case-tagline{max-width:29ch;color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-top:24px;font-size:clamp(20px,2.6vw,28px);line-height:1.3}.project-case-summary{max-width:64ch;margin-top:18px;font-size:15px;line-height:1.75}.project-case-actions{margin-top:28px}.project-case-action{border:1px solid var(--border);border-radius:var(--radius);min-height:40px;color:var(--text-2);font-family:var(--font-mono), monospace;letter-spacing:.04em;transition:border-color .2s var(--ease), background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease);align-items:center;gap:8px;padding:8px 13px;font-size:11px;display:inline-flex}.project-case-action--primary,.project-case-action:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.project-case-action:hover{transform:translateY(-1px)}.project-case-action svg{width:14px;height:14px}.project-case-visual{border-radius:var(--radius);background-color:var(--bg-2);background-image:linear-gradient(135deg, transparent, #00000047), var(--project-detail-visual);background-position:50%;background-repeat:no-repeat;background-size:cover, var(--project-detail-visual-size,cover);width:100%;min-height:310px;box-shadow:0 26px 60px #00000052, 0 0 48px var(--teal-glow);border:1px solid #00bfac38;border:1px solid lab(69.2345% -48.9839 -3.08988/.22)}.project-case-content{gap:0;display:grid}.project-case-snapshot,.project-case-engineering,.project-showcase{border-bottom:1px solid var(--border);padding:72px 0}.project-case-section-heading h2,.project-case-rail h2{margin-top:7px;font-size:clamp(28px,4vw,42px)}.project-case-section-heading>p:last-child{max-width:54ch;margin-top:12px;font-size:14px}.project-snapshot-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:32px;display:grid}.project-snapshot-grid>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-2);min-height:120px;padding:20px}.project-snapshot-grid .project-snapshot-outcome{background:linear-gradient(100deg, var(--teal-glow), var(--bg-2) 72%);grid-column:span 3;min-height:0}.project-snapshot-grid dt{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-size:10px}.project-snapshot-grid dd{color:var(--text);font-size:14px;line-height:1.6}.project-snapshot-outcome dd{max-width:72ch;font-family:var(--font-serif), Georgia, serif;font-size:clamp(18px,2.5vw,24px);line-height:1.45}.project-case-engineering{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:72px;display:grid}.project-case-rail{top:calc(var(--nav-height) + 24px);position:sticky}.project-case-tech{flex-wrap:wrap;gap:7px;margin-top:24px;list-style:none;display:flex}.project-case-tech li{border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-family:var(--font-mono), monospace;border-radius:2px;padding:5px 9px;font-size:10px;line-height:1.4}.project-contribution-list{border-top:1px solid var(--border);margin-top:34px;list-style:none}.project-contribution-list li{border-bottom:1px solid var(--border);grid-template-columns:54px minmax(0,1fr);gap:20px;padding:22px 0;display:grid}.project-contribution-list li>span{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.08em;padding-top:2px;font-size:11px}.project-contribution-list p{color:var(--text);font-size:15px;line-height:1.7}.project-showcase-heading{justify-content:space-between;align-items:end;gap:40px;margin-bottom:32px;display:flex}.project-showcase-heading>p{text-align:right;max-width:38ch}.project-showcase .project-demo-grid{column-gap:12px}.project-showcase .project-demo-card{transition:border-color .2s var(--ease), transform .2s var(--ease);margin-bottom:12px}.project-showcase .project-demo-card:hover{border-color:var(--teal-dim);transform:translateY(-2px)}.project-showcase .project-demo-caption{color:var(--text-2);display:block}.project-showcase .project-demo-empty{border:1px solid var(--border);background:var(--bg-2);grid-template-columns:140px minmax(0,1fr);gap:24px;padding:24px;display:grid}.project-showcase .project-demo-empty span{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.project-showcase .project-demo-empty p{padding:0}.project-case-pagination{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding-top:56px;display:grid}.project-case-pagination a{border:1px solid var(--border);background:var(--bg-2);min-height:170px;transition:border-color .2s var(--ease), background .2s var(--ease);align-content:start;padding:22px;display:grid;position:relative;overflow:hidden}.project-case-pagination a:before{background:var(--teal);height:2px;box-shadow:0 0 12px var(--teal);content:"";transform-origin:0;transition:transform .35s var(--ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.project-case-pagination a:hover{border-color:var(--teal-dim);background:var(--bg-3)}.project-case-pagination a:hover:before,.project-case-pagination a:focus-visible:before{transform:scaleX(1)}.project-pagination-label{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:7px;font-size:10px;display:flex}.project-case-pagination strong{color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-top:20px;font-size:22px;font-weight:400}.project-case-pagination small{max-width:42ch;color:var(--text-2);margin-top:8px;font-size:12px;line-height:1.5}.project-case-pagination-next{text-align:right}.project-case-pagination-next .project-pagination-label{justify-content:flex-end}.project-case-pagination-next small{justify-self:end}@media (max-width:820px){.project-case-hero-grid,.project-case-engineering{grid-template-columns:1fr}.project-case-hero-grid{gap:36px}.project-case-visual{min-height:260px}.project-case-engineering{gap:44px}.project-case-rail{position:static}}@media (max-width:640px){.project-case-study{padding-bottom:36px}.project-case-hero{padding:calc(var(--nav-height) + 30px) 20px 44px}.project-case-study .project-back-link{margin-bottom:30px}.project-case-content{padding:0 20px}.project-case-snapshot,.project-case-engineering,.project-showcase{padding:54px 0}.project-case-title-row h1{font-size:clamp(38px,13vw,58px)}.project-case-tagline{font-size:20px}.project-case-visual{min-height:220px}.project-snapshot-grid,.project-case-pagination{grid-template-columns:1fr}.project-snapshot-grid .project-snapshot-outcome{grid-column:1}.project-showcase-heading{align-items:start;display:grid}.project-showcase-heading>p{text-align:left}.project-showcase .project-demo-empty{grid-template-columns:1fr}.project-case-pagination>span:empty{display:none}.project-case-pagination-next{text-align:left}.project-case-pagination-next .project-pagination-label{justify-content:flex-start}.project-case-pagination-next small{justify-self:start}}.cert-categories{gap:48px;margin-top:40px;display:grid}.cert-category{align-items:start;gap:20px;width:100%;max-width:none;margin:0;padding:0;display:grid}@media (min-width:900px){.cert-category{grid-template-columns:14rem 1fr}}.cert-list{align-items:start;gap:12px;display:grid}.cert-item-summary,.cert-item-body,.cert-course-bundle{padding:16px}.cert-item-summary{cursor:pointer;grid-template-columns:1fr;align-items:start;gap:12px;min-height:104px;padding-left:20px;list-style:none;display:grid}.cert-item-summary::-webkit-details-marker{display:none}.cert-summary-main{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;display:grid}.cert-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:220px;display:flex}.cert-status,.cert-type{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;min-height:24px;padding:5px 9px;line-height:1;display:inline-flex}.cert-status{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.cert-expand-label{color:var(--teal);white-space:nowrap;justify-self:start}.cert-item[open] .cert-expand-label{color:var(--teal)}.cert-provider{margin-bottom:8px}.cert-name{color:var(--text);font-family:var(--font-serif), Georgia, serif;font-size:1.24rem;line-height:1.2}.cert-item-body{border-top:1px solid var(--border);background:#ffffff04;gap:18px;padding-left:20px;display:grid}.cert-description,.cert-meta dd{color:var(--text-2)}.cert-description{max-width:68ch;line-height:1.7}.cert-meta{gap:10px;display:grid}.cert-meta div{grid-template-columns:7rem minmax(0,1fr);align-items:baseline;gap:12px;display:grid}.cert-progress-track{background:var(--surface);border-radius:999px;height:7px;overflow:hidden}.cert-progress-copy{justify-content:space-between;margin-bottom:8px;display:flex}.cert-progress-fill{background:var(--teal);height:100%}.cert-course-bundle{background:var(--bg);margin-bottom:0}.cert-course-title{color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-size:11px}.cert-course-list{gap:8px;list-style:none;display:grid}.cert-course-list li{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px;padding-top:8px;display:grid}.cert-course-list li:first-child{border-top:0;padding-top:0}.cert-course-link{color:var(--text)}.cert-course-status{color:var(--teal);font-family:var(--font-mono), monospace;white-space:nowrap;font-size:11px}.credential-header{padding-bottom:32px}.credential-stat-grid{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.credential-stat-grid div{border-right:1px solid var(--border);min-width:0;padding:18px}.credential-stat-grid div:last-child{border-right:0}.credential-stat-grid span,.credential-count,.credential-provider,.credential-course-title p,.credential-course-meta,.credential-row-meta,.credential-pagination,.credential-status{color:var(--text-3);font-family:var(--font-mono), monospace;font-size:11px}.credential-stat-grid span,.credential-count,.credential-status{letter-spacing:.08em;text-transform:uppercase}.credential-stat-grid strong{color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-top:8px;font-size:clamp(22px,3vw,30px);font-weight:400;line-height:1.16;display:block}.credential-stat-grid p{margin-top:8px;font-size:13px}.credential-section{padding-top:56px}.credential-section-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:end;gap:24px;margin-bottom:22px;display:flex}.credential-section-header .section-label{margin-bottom:16px}.credential-section-header .section-title{margin-bottom:18px;font-size:clamp(22px,3vw,30px)}.credential-count{white-space:nowrap;margin-bottom:24px}.credential-compact-list,.credential-course-list{background:var(--border);border:1px solid var(--border);gap:1px;display:grid}.credential-row,.credential-course-row{background:var(--bg);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-height:66px;padding:12px 14px;display:grid}.credential-row:hover,.credential-course-row:hover{background:var(--bg-2)}.credential-row-main,.credential-course-title{min-width:0}.credential-row-main h3,.credential-course-title h3{overflow-wrap:anywhere;color:var(--text);font-family:var(--font-body), system-ui, sans-serif;font-size:14px;font-weight:500;line-height:1.35}.credential-provider,.credential-course-title p{margin-bottom:2px}.credential-row-meta,.credential-course-meta{text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.credential-row-meta a,.credential-course-meta a{border:1px solid var(--border);border-radius:var(--radius);width:24px;height:24px;color:var(--teal);justify-content:center;align-items:center;display:inline-flex}.credential-row-meta a:hover,.credential-course-meta a:hover{border-color:var(--teal-dim);background:var(--teal-glow)}.credential-status{border:1px solid var(--border);background:var(--surface);min-height:22px;color:var(--text-2);border-radius:2px;align-items:center;padding:4px 7px;display:inline-flex}.credential-status.completed,.credential-status.in-progress{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.credential-pagination{justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.credential-pagination a{border:1px solid var(--border);border-radius:var(--radius);min-height:38px;color:var(--text-2);align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.credential-pagination a:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.credential-pagination a.is-disabled{pointer-events:none;opacity:.38}@media (max-width:720px){.cert-item-summary,.cert-summary-main,.cert-course-list li,.cert-meta div{grid-template-columns:1fr}.cert-badges{justify-content:flex-start;max-width:none}.cert-expand-label{width:fit-content}.cert-item-summary{min-height:0}.credential-stat-grid,.credential-row,.credential-course-row{grid-template-columns:1fr}.credential-stat-grid div{border-right:0;border-bottom:1px solid var(--border)}.credential-stat-grid div:last-child{border-bottom:0}.credential-row-meta,.credential-course-meta{text-align:left;justify-content:flex-start}.credential-pagination{align-items:stretch}.credential-pagination span{align-self:center}}.reveal,.reveal-left,.fade-in{animation:revealIn .7s var(--ease) both}@keyframes revealIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes scrollLine{0%,to{opacity:.5;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.5)}}@keyframes blink{50%{opacity:0}}@media (max-width:640px){section{padding:72px 20px}.hero-section{max-width:none;min-height:100svh;padding:calc(var(--nav-height) + 24px) 20px 48px}.post-item{grid-template-columns:1fr auto}.post-date,.post-category{grid-column:span 1}.post-title{grid-column:1/-1}.resume-strip,.oss-item{flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
.yarl__fullsize{width:100%;height:100%}.yarl__relative{position:relative}.yarl__portal{opacity:0;pointer-events:auto;transition:opacity var(--yarl__fade_animation_duration,.25s) var(--yarl__fade_animation_timing_function,ease);z-index:var(--yarl__portal_zindex,9999);position:fixed;inset:0;overflow:hidden}.yarl__portal_open{opacity:1}.yarl__container{background-color:var(--yarl__container_background_color,var(--yarl__color_backdrop,#000));overscroll-behavior:var(--yarl__controller_overscroll_behavior,contain);touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;user-select:none;outline:none;position:absolute;inset:0;overflow:hidden}.yarl__carousel{height:100%;opacity:var(--yarl__pull_opacity,1);transform:translate(var(--yarl__swipe_offset,0),var(--yarl__pull_offset,0));width:calc(100% + (var(--yarl__carousel_slides_count) - 1)*(100% + var(--yarl__carousel_spacing_px,0)*1px + var(--yarl__carousel_spacing_percent,0)*1%));flex:none;place-content:center;align-items:stretch;display:flex}.yarl__carousel_with_slides{-moz-column-gap:calc(var(--yarl__carousel_spacing_px,0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent,0))*var(--yarl__carousel_spacing_percent,0)*1%);column-gap:calc(var(--yarl__carousel_spacing_px,0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent,0))*var(--yarl__carousel_spacing_percent,0)*1%)}.yarl__flex_center{place-content:center;align-items:center;display:flex}.yarl__slide{padding:calc(var(--yarl__carousel_padding_px,0)*1px + 100/(var(--yarl__carousel_slides_count)*100 + (var(--yarl__carousel_slides_count) - 1)*var(--yarl__carousel_spacing_percent,0))*var(--yarl__carousel_padding_percent,0)*1%);flex:1;position:relative;overflow:hidden}[dir=rtl] .yarl__slide{--yarl__direction:-1}.yarl__slide_image{-o-object-fit:contain;object-fit:contain;touch-action:var(--yarl__controller_touch_action,none);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;max-width:100%;max-height:100%}.yarl__slide_image_cover{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.yarl__slide_image_loading{opacity:0}@media screen and (min-width:800px){.yarl__slide_wrapper:not(.yarl__slide_wrapper_interactive) .yarl__slide_image{-webkit-backface-visibility:hidden;-webkit-transform-style:preserve-3d;-webkit-transform:translateZ(0)}}.yarl__slide_placeholder{line-height:0;position:absolute;top:50%;left:50%;transform:translate(-50%)translateY(-50%)}.yarl__slide_loading{color:var(--yarl__slide_icon_loading_color,var(--yarl__color_button,#fffc));animation:1s linear yarl__delayed_fadein}.yarl__slide_loading line{animation:1s linear infinite yarl__stroke_opacity}.yarl__slide_loading line:first-of-type{animation-delay:-1.875s}.yarl__slide_loading line:nth-of-type(2){animation-delay:-1.75s}.yarl__slide_loading line:nth-of-type(3){animation-delay:-1.625s}.yarl__slide_loading line:nth-of-type(4){animation-delay:-1.5s}.yarl__slide_loading line:nth-of-type(5){animation-delay:-1.375s}.yarl__slide_loading line:nth-of-type(6){animation-delay:-1.25s}.yarl__slide_loading line:nth-of-type(7){animation-delay:-1.125s}.yarl__slide_loading line:nth-of-type(8){animation-delay:-1s}.yarl__slide_error{color:var(--yarl__slide_icon_error_color,red);height:var(--yarl__slide_icon_error_size,48px);width:var(--yarl__slide_icon_error_size,48px)}@media (prefers-reduced-motion){.yarl__portal,.yarl__slide{transition:unset}.yarl__slide_loading,.yarl__slide_loading line{animation:unset}}.yarl__toolbar{padding:var(--yarl__toolbar_padding,8px);justify-content:flex-end;display:flex;position:absolute;inset:0 0 auto auto}[dir=rtl] .yarl__toolbar{inset:0 auto auto 0}.yarl__icon{height:var(--yarl__icon_size,32px);width:var(--yarl__icon_size,32px)}.yarl__button{appearance:none;background-color:var(--yarl__button_background_color,transparent);border:var(--yarl__button_border,0);color:var(--yarl__color_button,#fffc);cursor:pointer;filter:var(--yarl__button_filter,drop-shadow(2px 2px 2px #000c));margin:var(--yarl__button_margin,0);padding:var(--yarl__button_padding,8px);-webkit-tap-highlight-color:transparent;outline:none;line-height:0}.yarl__button:focus{color:var(--yarl__color_button_active,#fff)}.yarl__button:focus:not(:focus-visible){color:var(--yarl__color_button,#fffc)}.yarl__button:focus-visible{color:var(--yarl__color_button_active,#fff)}@media (hover:hover){.yarl__button:focus-visible:hover,.yarl__button:focus:hover,.yarl__button:hover{color:var(--yarl__color_button_active,#fff)}}.yarl__button:disabled{color:var(--yarl__color_button_disabled,#fff6);cursor:default}.yarl__navigation_next,.yarl__navigation_prev{padding:var(--yarl__navigation_button_padding,24px 16px);position:absolute;top:50%;transform:translateY(-50%)}.yarl__navigation_prev{left:0}[dir=rtl] .yarl__navigation_prev{left:unset;right:0;transform:translateY(-50%)rotate(180deg)}.yarl__navigation_next{right:0}[dir=rtl] .yarl__navigation_next{left:0;right:unset;transform:translateY(-50%)rotate(180deg)}.yarl__no_scroll{overscroll-behavior:none;height:100%;overflow:hidden}@keyframes yarl__delayed_fadein{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes yarl__stroke_opacity{0%{stroke-opacity:1}to{stroke-opacity:.125}}
