@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2)format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff)format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2)format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff)format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2)format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff)format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2)format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff)format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2)format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff)format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2)format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff)format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2)format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff)format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2)format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff)format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2)format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff)format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2)format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff)format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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)format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff)format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2)format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff)format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2)format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff)format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.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{-webkit-clip-path:inset(50%);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-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@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]){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;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{.invisible{visibility:hidden}.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}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.contents{display:contents}.grid{display:grid}.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}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--bg:#111714;--bg-2:#171e1a;--bg-3:#1d2520;--surface:#242d27;--border:#303b34;--teal:oklch(72% .14 183);--teal-dim:oklch(52% .1 183);--teal-glow:oklch(72% .14 183/.15);--text:#e8ede9;--text-2:#8a9e96;--text-3:#6c847a;--font-body:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif:"DM Serif Display", Georgia, serif;--font-mono:"JetBrains Mono", monospace;--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);color-scheme:dark}:root[data-theme=light]{--bg:#e9efeb;--bg-2:#e0e8e3;--bg-3:#d6e0da;--surface:#f1f5f2;--border:#c3d0c8;--teal:oklch(43% .1 183);--teal-dim:oklch(37% .075 183);--teal-glow:oklch(58% .11 183/.16);--text:#1b2b23;--text-2:#4c6257;--text-3:#586c62;color-scheme:light}*,: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}.mdx-article ul,.mdx-article ol,.tl-desc{padding-left:1.4em}.mdx-article ul,.tl-desc{list-style:outside}.mdx-article ol{list-style:decimal}.mdx-article li>ul{list-style:circle}.mdx-article li,.tl-desc li{padding-left:.35em}.mdx-article li::marker,.tl-desc li::marker{color:var(--teal);font-family:var(--font-mono), monospace;font-size:.86em}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}.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}.page-shell{padding-top:var(--nav-height)}.section-spacer{margin-top:48px}.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);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;gap:6px;padding:0}.nav-menu-chevron{border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;transition:transform .2s;transform:translateY(-2px)rotate(45deg)}.nav-menu-summary[aria-expanded=true] .nav-menu-chevron{transform:translateY(2px)rotate(225deg)}.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{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 (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(oklch(72% .14 183/.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{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 oklch(72% .14 183/.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 oklch(72% .14 183/.14)}.btn-resume svg{width:15px;height:15px}.btn-ghost{border:1px solid var(--border);color:var(--text-2);background:0 0}.btn-ghost: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 oklch(84% .15 183);justify-content:center;padding:15px 28px;font-weight:800}.btn-projects-all:hover{color:var(--bg);transform:translateY(-2px);box-shadow:0 12px 28px oklch(72% .14 183/.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}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}.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,oklch(72% .14 183/.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-stack-section{padding-top:72px;padding-bottom:56px}.home-stack-header{gap:24px;margin-bottom:28px;display:grid}.home-stack-header .section-title{max-width:620px;margin-bottom:0}.home-stack-link{width:fit-content;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-stack-link svg{width:14px;height:14px}.home-stack-board{border-top:1px solid var(--border);display:grid}.home-stack-row{border-bottom:1px solid var(--border);gap:18px;padding:22px 0;display:grid}.home-skill-cloud{flex-wrap:wrap;gap:8px;display:flex}.home-stack-label{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;font-size:10px;display:inline-flex}.home-stack-label svg{width:13px;height:13px;color:var(--teal)}.home-skill-cloud span{border:1px solid var(--teal-dim);border-radius:var(--radius);background:var(--teal-glow);padding:7px 10px}@supports (color:color-mix(in lab, red, red)){.home-skill-cloud span{background:color-mix(in srgb, var(--teal-glow) 55%, transparent)}}.home-skill-cloud span{color:var(--text-2);font-family:var(--font-mono), monospace;font-size:11px}.home-skill-cloud--workflow span{border-color:var(--border);color:var(--text-3);background:0 0}.home-specializations-section{padding-top:56px;padding-bottom:72px}.home-specialization-list{border-top:1px solid var(--border);display:grid}.home-specialization-row{border-bottom:1px solid var(--border);color:inherit;transition:border-color .2s var(--ease), background .2s var(--ease), padding-left .2s var(--ease);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:baseline;gap:14px;padding:14px 4px;text-decoration:none;display:grid}a.home-specialization-row:hover{border-color:var(--teal-dim);background:var(--teal-glow);padding-left:12px}.home-specialization-provider{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.home-specialization-row h3{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;line-height:1.35;overflow:hidden}.home-specialization-date{color:var(--text-3);font-family:var(--font-mono), monospace;white-space:nowrap;font-size:11px}.home-specialization-row svg{width:13px;height:13px;color:var(--teal);flex-shrink:0;align-self:center}@media (width<=560px){.home-specialization-row{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.home-specialization-provider{grid-column:1/-1}.home-specialization-row h3{white-space:normal}}@media (width>=700px){.home-index{grid-template-columns:repeat(2,minmax(0,1fr))}.home-index-panel--wide{grid-column:1/-1}.home-stack-header{grid-template-columns:1fr auto;align-items:end}.home-stack-row{grid-template-columns:148px 1fr;align-items:start}}.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 (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}}.back-to-top{z-index:90;border:1px solid var(--border);background:var(--bg);border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:inline-flex;position:fixed;bottom:24px;right:24px}@supports (color:color-mix(in lab, red, red)){.back-to-top{background:color-mix(in srgb, var(--bg) 92%, transparent)}}.back-to-top{color:var(--text-2);opacity:0;visibility:hidden;backdrop-filter:blur(12px);transition:opacity .2s var(--ease), transform .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);transform:translateY(8px)}.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.back-to-top svg{width:16px;height:16px}@media (width<=600px){.back-to-top{bottom:16px;right:16px}}.project-tags,.cert-skill-list{flex-wrap:wrap;gap:8px;display:flex}.tag{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{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.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%, oklch(16% .015 180/.82)), 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}.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-context,.project-archive-meta .project-context{color:var(--teal-dim)}.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 (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, oklch(72% .14 183/.06), transparent 46%), var(--bg);min-height:148px;padding:22px}.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 (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{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+li{margin-top:6px}.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{flex-wrap:wrap;gap:8px;padding:0;list-style:none;display:flex}.skill-pill{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{border-color:var(--teal-dim);background:var(--teal-glow);color:var(--teal)}.skill-icon{width:1.25rem;height:1.25rem}@media (width>=640px){.skills-grid{grid-template-columns:1fr 1fr}}@media (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:oklch(72% .14 183/.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, oklch(72% .14 183/.08), 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}.featured-writing-card{margin-bottom:48px}.featured-writing-card:hover,.series-card:hover{border-color:var(--teal-dim);background:linear-gradient(135deg, oklch(72% .14 183/.12), transparent 52%), var(--bg-3);transform:translateY(-1px)}.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 (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 (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,720px);padding:calc(var(--nav-height) + 72px) 0 96px;margin:0 auto}.mdx-header{border-bottom:1px solid var(--border);margin-bottom:36px;padding-bottom:24px}.mdx-article h1{color:var(--text);margin:10px 0 12px;font-size:clamp(22px,2.8vw,28px);line-height:1.25}.mdx-article h2{color:var(--text);font-family:var(--font-serif), Georgia, serif;margin-top:44px;margin-bottom:12px;font-size:clamp(21px,2.4vw,26px);line-height:1.3}.mdx-article p,.mdx-article li{color:var(--text-2);font-size:16px;line-height:1.75}.mdx-article:lang(my) p,.mdx-article:lang(my) li{line-height:1.9}.mdx-article p{margin-top:14px}.mdx-article h2+p{margin-top:0}.mdx-article .mdx-lead{color:var(--text);margin:0;font-size:16px;line-height:1.7}.mdx-meta{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.04em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:6px 0;font-size:11px;display:flex}.mdx-meta>*+:before{content:"·";color:var(--teal-dim);margin:0 10px}.mdx-meta .mdx-meta-type{color:var(--teal)}.mdx-article a{color:var(--teal);text-decoration:underline;-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{margin:14px 0 18px}.mdx-article li+li{margin-top:6px}.mdx-article li>ul,.mdx-article li>ol{margin:10px 0 0}.mdx-article li>p{margin-top:0}.mdx-article li>p+p{margin-top:10px}.mdx-article strong{color:var(--text);font-weight:600}.mdx-article h3{color:var(--text);margin-top:36px;margin-bottom:10px;font-size:17px;font-weight:600;line-height:1.4}.mdx-article h3+p{margin-top:0}.mdx-article blockquote{border-left:2px solid var(--teal);margin:28px 0;padding:2px 0 2px 20px}.mdx-article blockquote p{color:var(--text);margin-top:0}.mdx-article hr{border:0;border-top:1px solid var(--border);margin:48px 0}.mdx-article p:has(>img:only-child){margin:24px 0}.mdx-article p>img{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);width:100%;height:auto}.mdx-article table{border-collapse:collapse;width:100%;margin:28px 0;font-size:14px;display:block;overflow-x:auto}.mdx-article th,.mdx-article td{border-bottom:1px solid var(--border);color:var(--text-2);text-align:left;vertical-align:top;padding:9px 12px}.mdx-article th{color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:500}.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}.mdx-body{position:relative}.mdx-article h2{scroll-margin-top:calc(var(--nav-height) + 24px)}.mdx-toc-rail{width:220px;display:none;position:absolute;top:0;bottom:0;left:calc(100% + 56px)}@media (width>=1280px){.mdx-toc-rail{display:block}}.mdx-toc{top:calc(var(--nav-height) + 32px);max-height:calc(100vh - var(--nav-height) - 64px);scrollbar-width:none;padding-bottom:32px;position:sticky;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 40px),#0000);mask-image:linear-gradient(#000 calc(100% - 40px),#0000)}.mdx-article .mdx-toc p{color:var(--text-3);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:10px;line-height:1.4}.mdx-article .mdx-toc ol{border-left:1px solid var(--border);gap:10px;margin:0;padding:0;list-style:none;display:grid}.mdx-article .mdx-toc li{margin:0;padding:0;font-size:12.5px;line-height:1.5}.mdx-article .mdx-toc a{color:var(--text-3);border-left:1px solid #0000;margin-left:-1px;padding:1px 0 1px 14px;display:-webkit-box;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.mdx-article .mdx-toc a{color:color-mix(in oklch, var(--text-3) 80%, transparent)}}.mdx-article .mdx-toc a{-webkit-line-clamp:2;transition:color .2s var(--ease), border-color .2s var(--ease);-webkit-box-orient:vertical;text-decoration:none}.mdx-article .mdx-toc a:hover{color:var(--text)}.mdx-article .mdx-toc a[aria-current=location]{border-left-color:var(--teal);color:var(--teal)}.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 (width<=600px){.mdx-article{width:min(100% - 32px,720px);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}}#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 (width>=760px){.contact-inner{grid-template-columns:1fr 1fr;align-items:center}}@media (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}.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}.section{padding:96px 0}.page-header{padding-top:56px;padding-bottom:48px}.page-header h1{font-size:clamp(26px,4vw,38px);line-height:1.18}.page-intro{max-width:65ch;color:var(--text-2);font-size:1.1rem;line-height:1.7}.achievement{border:1px solid var(--border);background:var(--bg-2);padding:24px;position:relative}.contact-link{color:var(--text-2);align-items:center;gap:10px;padding:12px 0;display:inline-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}.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}.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}.cert-link svg{width:14px;height:14px}.project-demo-grid{column-count:1;column-gap:16px;list-style:none}@media (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-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{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-eyebrow .project-context{color:var(--teal-dim)}.project-case-eyebrow .project-role{color:var(--text-1)}.project-case-title{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 oklch(72% .14 183/.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-metric-strip{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;margin-top:24px;display:grid}.project-metric-strip>div{background:var(--bg-2);padding:20px}.project-metric-strip dt{color:var(--teal);font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;font-size:10px}.project-metric-strip strong{color:var(--text);font-family:var(--font-mono), monospace;letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:clamp(24px,3.2vw,32px);font-weight:600;line-height:1.1;display:block}.project-metric-strip span{color:var(--text-3);margin-top:6px;font-size:12px;line-height:1.5;display:block}.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 (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 (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{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-metric-strip{grid-template-columns:repeat(2,minmax(0,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 (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-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.credential-toolbar>span,.credential-sort-group a{min-height:36px;color:var(--text-3);font-family:var(--font-mono), monospace;align-items:center;font-size:11px;display:inline-flex}.credential-toolbar>span{letter-spacing:.08em;text-transform:uppercase;gap:8px}.credential-sort-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-2);display:inline-flex;overflow:hidden}.credential-sort-group a{border-right:1px solid var(--border);justify-content:center;min-width:74px;padding:8px 12px}.credential-sort-group a:last-child{border-right:0}.credential-sort-group a:hover,.credential-sort-group a.is-active{background:var(--teal-glow);color:var(--teal)}.credential-sort-group a.is-active{box-shadow:inset 0 0 0 1px var(--teal-dim)}.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 (width<=640px){.credential-stat-grid{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-toolbar{align-items:stretch}.credential-sort-group{width:100%}.credential-sort-group a{flex:1;min-width:0}}@media (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)}}@media (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}.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-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.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;-moz-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;-moz-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 (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{-webkit-appearance:none;-moz-appearance:none;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}}
