@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/assets/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(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/assets/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(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/assets/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(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/assets/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(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/assets/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.18.5"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .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 .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.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 .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .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 .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .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 .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .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 .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>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#1c1c1c;font-synthesis:none;text-rendering:optimizelegibility;--paper:#f3f0e8;--paper-deep:#e9e5da;--ink:#1c1c1c;--ink-78:#1c1c1cc7;--ink-60:#1c1c1c99;--ink-42:#1c1c1c6b;--ink-16:#1c1c1c29;--ink-09:#1c1c1c17;--serif:Georgia, "Times New Roman", "Songti SC", serif;--sans:"Segoe UI", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--mono:"Cascadia Code", Consolas, monospace;--shell:min(1240px, calc(100vw - 96px));--header-h:82px;--work-copy-width:940px;--work-wide-width:1080px;--work-section-gap:58px;--work-heading-gap:18px;--work-point-padding:18px;--knowledge-accent:#0f6b63;--knowledge-accent-soft:#dce8e4;--knowledge-blue-soft:#e1e6ed;background:#f3f0e8;font-family:Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{background:var(--paper);min-width:320px;min-height:100vh;color:var(--ink);margin:0;overflow-x:hidden}::selection{color:var(--paper);background:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}.shell{width:var(--shell);margin-inline:auto}#main-content{position:relative}#index,#about,#projects,#skills,#blog,#profile,#featured-projects,#featured-blog,#contact{scroll-margin-top:calc(var(--header-h) + 18px)}.route-frame{animation:.48s cubic-bezier(.25,.7,.25,1) both route-enter}[data-reveal]{opacity:0;transition:opacity .65s cubic-bezier(.25,.7,.25,1),transform .65s cubic-bezier(.25,.7,.25,1);transform:translateY(22px)}[data-reveal].is-visible{opacity:1;transform:none}.mono{font-family:var(--mono);letter-spacing:.08em}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:1000;background:var(--ink);color:var(--paper);padding:12px 18px;position:fixed;top:12px;left:12px;transform:translateY(-150%)}.skip-link:focus{transform:none}:focus-visible{outline:1px solid var(--ink);outline-offset:4px}.site-header{z-index:50;height:var(--header-h);border-bottom:1px solid var(--ink-16);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f3f0e8f0;position:fixed;inset:0 0 auto}.header-inner{justify-content:space-between;align-items:center;height:100%;display:flex}.brand{align-items:center;gap:18px;display:inline-flex}.brand-mark{font-family:var(--serif);letter-spacing:-.08em;font-size:27px;font-style:italic}.brand-copy{border-left:1px solid var(--ink-16);gap:3px;padding-left:18px;display:grid}.brand-copy strong{letter-spacing:.18em;font-size:10px;font-weight:600}.brand-copy small{color:var(--ink-60);letter-spacing:.16em;font-size:9px}.nav-links{align-items:center;gap:26px;height:100%;display:flex}.nav-links a{height:100%;color:var(--ink-78);align-items:center;gap:7px;font-size:11px;display:flex;position:relative}.nav-links a span{color:var(--ink-42);font:9px var(--mono);padding:3px 4px;transition:color .2s,background .2s}.nav-links a:after{content:"";background:var(--ink);transform-origin:100%;height:1px;transition:transform .2s;position:absolute;bottom:25px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover:after,.nav-links a.active:after{transform-origin:0;transform:scaleX(1)}.nav-links a.active{font-family:var(--serif);color:var(--ink);font-size:13px;font-style:italic}.nav-links a.active span{background:var(--ink);color:var(--paper);font-style:normal}.page-rail{z-index:25;top:calc(var(--header-h) + 48px);border:1px solid var(--ink-09);width:130px;color:var(--ink);background:#f3f0e8f5;padding:14px 12px;position:fixed;left:max(18px,50vw - 795px)}.page-rail-heading{border-bottom:1px solid var(--ink-16);justify-content:space-between;align-items:end;padding-bottom:14px;display:flex}.page-rail-heading span{color:var(--ink-42);font-size:9px}.page-rail-heading strong{font-family:var(--serif);font-size:30px;font-style:italic;font-weight:400;line-height:.8}.page-rail nav{padding:14px 0 18px;display:grid}.page-rail nav a{min-height:32px;color:var(--ink-42);grid-template-columns:24px 1fr;align-items:center;gap:8px;transition:color .2s,padding .2s;display:grid;position:relative}.page-rail nav a:before{content:"";background:var(--ink);width:1px;height:0;transition:height .2s;position:absolute;left:-10px}.page-rail nav a:hover,.page-rail nav a.active{color:var(--ink);padding-left:4px}.page-rail nav a.active:before{height:18px}.page-rail nav a span{font-size:9px}.page-rail nav a em{font-family:var(--serif);white-space:nowrap;font-size:13px;font-style:normal}.page-rail nav a.active em{font-size:14px;font-style:italic}.page-rail-meter{background:var(--ink-16);width:1px;height:72px;overflow:hidden}.page-rail-meter i{background:var(--ink);transform-origin:top;width:100%;height:100%;transition:transform .12s linear;display:block}.page-rail-progress{color:var(--ink-42);margin-top:9px;font-size:9px;display:block}.menu-toggle{display:none}.hero{min-height:100svh;padding-top:var(--header-h);border-bottom:1px solid var(--ink-16)}.hero-inner{min-height:calc(100svh - var(--header-h));grid-template-rows:auto 1fr auto;display:grid}.hero-topline,.hero-bottom{min-height:62px;color:var(--ink-60);justify-content:space-between;align-items:center;font-size:9px;display:flex}.hero-topline{border-bottom:1px solid var(--ink-16)}.signal i,.detail-status i{background:var(--ink);width:6px;height:6px;margin-right:8px;display:inline-block}.hero-content{grid-template-columns:minmax(540px,1.1fr) minmax(430px,.9fr);align-items:center;gap:clamp(50px,6vw,90px);padding:9vh 0;display:grid}.hero-copy,.hero-media{animation:.7s cubic-bezier(.25,.7,.25,1) both reveal-up}.hero-media{animation-delay:.1s}.hero-name{color:var(--ink-60);letter-spacing:.12em;text-transform:uppercase;margin-bottom:42px;font-size:12px}.hero h1{font-family:var(--serif);letter-spacing:-.065em;margin:0;font-size:clamp(58px,6vw,96px);font-weight:400;line-height:.82}.hero h1 span{padding-left:10%;font-style:italic;font-weight:400;display:block}.hero-disciplines{border-top:1px solid var(--ink-16);grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px;padding-top:18px;display:grid}.hero-disciplines span{color:var(--ink-78);font-size:11px}.hero-disciplines b{color:var(--ink-42);font:9px var(--mono);margin-bottom:7px;display:block}.hero-statement{max-width:600px;color:var(--ink-60);margin:34px 0;font-size:14px;line-height:1.9}.hero-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.button{border:1px solid var(--ink-16);min-height:48px;color:var(--ink);letter-spacing:.05em;background:0 0;justify-content:space-between;align-items:center;gap:28px;padding:12px 24px;font-size:12px;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.button:hover{border-color:var(--ink)}.button--primary{border-color:var(--ink);background:var(--ink);color:var(--paper)}.button--primary:hover{color:var(--ink);background:0 0}.button--muted[aria-disabled=true]{color:var(--ink-42);cursor:not-allowed}.button small{color:inherit;font:9px var(--mono)}.text-link{color:var(--ink-60);margin-left:10px;padding:8px 0;font-size:11px;position:relative}.text-link:after{content:"";background:var(--ink);transform-origin:100%;height:1px;transition:transform .2s;position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}.text-link:hover:after{transform-origin:0;transform:scaleX(1)}.technical-visual{aspect-ratio:16/9;border:1px solid var(--ink-16);width:100%;min-height:0;color:var(--ink);clip-path:inset(0);background:#d5d1c7;margin:0;transition:clip-path .6s cubic-bezier(.25,.7,.25,1),background .2s;position:relative;overflow:hidden}.technical-visual--image img{object-fit:cover;width:100%;height:100%;min-height:0;transition:transform .5s cubic-bezier(.25,.7,.25,1);display:block}.technical-visual--image:hover img{transform:scale(1.015)}.technical-visual--image figcaption{color:#fff;background:linear-gradient(#0000,#141413b8);justify-content:space-between;gap:20px;padding:34px 20px 16px;display:flex;position:absolute;bottom:0;left:0;right:0}.technical-visual--image figcaption span{font-size:8px}.technical-visual--image figcaption strong{font-size:10px;font-weight:400}.technical-visual:hover{background:#cbc7bd}.visual-placeholder-word{font-family:var(--serif);letter-spacing:-.07em;color:#1c1c1c29;font-size:clamp(42px,5vw,78px);font-style:italic;font-weight:400;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.visual-index,.visual-label,.visual-status{z-index:1;position:absolute}.visual-index{font-size:9px;top:22px;right:22px}.visual-label{font-size:9px;bottom:22px;left:22px}.visual-status{color:var(--ink-60);font-family:var(--serif);font-size:13px;font-style:italic;bottom:20px;right:22px}.technical-visual--compact{min-height:0}.hero-media-note{color:var(--ink-42);border-bottom:1px solid var(--ink-16);grid-template-columns:auto 1fr auto;align-items:center;gap:15px;padding:13px 0;font-size:9px;display:grid}.hero-media-note strong{color:var(--ink-78);font-size:9px;font-weight:500}.hero-bottom{border-top:1px solid var(--ink-16)}.scroll-line{background:var(--ink-16);flex:1;height:1px;margin:0 22px}.section{border-bottom:1px solid var(--ink-16);padding:150px 0}.section-heading{grid-template-columns:58px minmax(360px,1fr) minmax(290px,.56fr);align-items:end;gap:34px;margin-bottom:86px;display:grid}.section-index{color:var(--ink-42);align-self:start;font-size:10px}.eyebrow{color:var(--ink-60);font-family:var(--serif);margin-bottom:18px;font-size:18px;font-style:italic}.section-heading h2,.contact-section h2,.listing-page .section-heading h2{max-width:1000px;font-family:var(--serif);letter-spacing:-.055em;margin:0;font-size:clamp(38px,4.2vw,66px);font-weight:400;line-height:.96}.section-description{max-width:590px;color:var(--ink-60);margin:0;font-size:14px;line-height:1.9}.about-grid{grid-template-columns:minmax(280px,.6fr) minmax(580px,1.4fr);align-items:start;gap:clamp(55px,7vw,105px);display:grid}.portrait-frame{justify-self:center;width:min(100%,360px);margin:0;position:sticky;top:120px}.portrait-frame img{aspect-ratio:3/4;object-fit:cover;object-position:46% 52%;filter:saturate(.78)contrast(.96);width:100%;transition:filter .3s}.portrait-frame:hover img{filter:saturate(.95)contrast()}.portrait-frame figcaption{border-bottom:1px solid var(--ink-16);color:var(--ink-42);font:9px var(--mono);letter-spacing:.04em;justify-content:space-between;gap:18px;padding:11px 0;display:flex}.about-copy .lead{max-width:900px;font-family:var(--serif);letter-spacing:-.025em;margin-bottom:34px;font-size:clamp(23px,2.1vw,34px);line-height:1.48}.identity-line{border-bottom:1px solid var(--ink-16);flex-wrap:wrap;gap:8px 24px;padding-bottom:32px;display:flex}.identity-line span{color:var(--ink-60);font-size:11px}.timeline-block{border-bottom:1px solid var(--ink-16);grid-template-columns:120px 1fr;gap:34px;padding:42px 0;display:grid}.timeline-label{color:var(--ink-42);font-size:9px}.timeline-item{grid-template-columns:160px 1fr;gap:28px;display:grid}.timeline-item time,.experience-strip time{color:var(--ink-42);font:10px var(--mono)}.timeline-item h3{font-family:var(--serif);margin-bottom:7px;font-size:22px;font-weight:400}.timeline-item strong{color:var(--ink-78);margin-bottom:12px;font-size:12px;font-weight:500;display:block}.timeline-item p{max-width:68ch;color:var(--ink-60);margin-bottom:0;font-size:13px;line-height:1.9}.stat-grid{border-top:1px solid var(--ink-16);border-left:1px solid var(--ink-16);grid-template-columns:repeat(4,1fr);margin-top:92px;display:grid}.stat-card{border-right:1px solid var(--ink-16);border-bottom:1px solid var(--ink-16);flex-direction:column;justify-content:space-between;min-height:220px;padding:24px;transition:border-color .2s;display:flex}.stat-card:hover{border-color:var(--ink)}.stat-card>span{color:var(--ink-42);font-size:9px}.stat-card strong{font-family:var(--serif);letter-spacing:-.05em;font-size:clamp(38px,3.8vw,64px);font-weight:400}.stat-card p{color:var(--ink-60);letter-spacing:.12em;text-transform:uppercase;margin-bottom:0;font-size:9px}.experience-strip{grid-template-columns:200px 1fr;gap:40px;margin-top:76px;display:grid}.experience-strip>span{color:var(--ink-42);font-size:9px}.experience-strip article{border-top:1px solid var(--ink-16);grid-template-columns:170px 1fr 180px;align-items:center;gap:24px;padding:20px 0;display:grid}.experience-strip article:last-child{border-bottom:1px solid var(--ink-16)}.experience-strip strong{font-family:var(--serif);font-size:17px;font-weight:400}.experience-strip article>span{color:var(--ink-60);text-align:right;font-size:11px}.projects-section,.blog-preview-section{background:var(--paper-deep)}.filter-bar{border-top:1px solid var(--ink-16);border-bottom:1px solid var(--ink-16);flex-wrap:wrap;gap:0;margin-bottom:50px;display:flex}.filter-bar button,.filter-bar a{border:0;border-right:1px solid var(--ink-16);min-height:48px;color:var(--ink-60);letter-spacing:.04em;cursor:pointer;background:0 0;place-items:center;padding:12px 22px;font-size:10px;transition:color .2s,background .2s;display:grid}.filter-bar button:hover,.filter-bar button.active,.filter-bar a:hover,.filter-bar a.active{background:var(--ink);color:var(--paper)}.filter-bar button:active,.filter-bar a:active,.button:active{transform:scale(.98)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 34px;display:grid}.project-card{border-top:1px solid var(--ink-16);transition:border-color .2s}.project-card:hover{border-color:var(--ink)}.project-visual-link{padding-top:16px;display:block;overflow:hidden}.project-card .technical-visual{border:0;min-height:0}.project-card:hover .visual-placeholder-word{font-style:normal}.project-card-body{padding:22px 0 0}.project-meta,.blog-meta{color:var(--ink-42);justify-content:space-between;margin-bottom:20px;font-size:9px;display:flex}.project-card h3{font-family:var(--serif);letter-spacing:0;margin-bottom:5px;font-size:clamp(28px,2.4vw,38px);font-weight:400;line-height:1.1}.project-card:hover h3{font-style:italic}.project-title-zh{color:var(--ink-60);margin-bottom:22px;font-size:12px}.project-card-body>p:not(.project-title-zh){max-width:65ch;min-height:52px;color:var(--ink-60);margin-bottom:20px;font-size:13px;line-height:1.85}.project-card-footer{justify-content:space-between;align-items:end;gap:20px;display:flex}.tag-row{flex-wrap:wrap;gap:7px 14px;display:flex}.tag-row span{border-bottom:1px solid var(--ink-16);color:var(--ink-60);font:9px var(--mono);letter-spacing:.05em;padding-bottom:3px}.circle-link{border:1px solid var(--ink-16);width:42px;height:42px;color:var(--ink);flex:0 0 42px;place-items:center;transition:background .2s,color .2s,border-color .2s;display:grid}.circle-link:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}.skills-matrix{border-top:1px solid var(--ink-16)}.skill-card{border-bottom:1px solid var(--ink-16);grid-template-columns:100px 1.05fr .9fr 1.4fr;align-items:start;gap:34px;padding:32px 0;transition:border-color .2s;display:grid}.skill-card:hover{border-color:var(--ink)}.skill-card-head{color:var(--ink-42);flex-direction:column;gap:9px;font-size:9px;display:flex}.skill-code{color:var(--ink)}.skill-card h3{font-family:var(--serif);letter-spacing:-.025em;margin:0;font-size:28px;font-weight:400}.skill-card:hover h3{font-style:italic}.skill-card>p{color:var(--ink-60);margin:4px 0 0;font-size:12px;line-height:1.8}.skill-list{margin-top:-10px}.skill-list>div{border-bottom:1px solid var(--ink-09);justify-content:space-between;align-items:center;min-height:42px;font-size:12px;display:flex}.level{color:var(--ink-42);font:9px var(--mono);text-transform:uppercase}.level:before{content:"";background:currentColor;width:4px;height:4px;margin-right:7px;display:inline-block}.blog-preview-grid{grid-template-columns:repeat(3,1fr);gap:36px;display:grid}.blog-card{border-top:1px solid var(--ink-16);transition:border-color .2s}.blog-card:hover{border-color:var(--ink)}.blog-cover{aspect-ratio:16/9;background:#d5d1c7;flex-direction:column;justify-content:space-between;width:100%;height:auto;margin-top:14px;padding:22px;display:flex;position:relative;overflow:hidden}.blog-cover>span,.blog-cover>strong,.blog-cover>i{position:relative}.blog-cover>span{font-size:9px}.blog-cover>strong{font-family:var(--serif);align-self:flex-start;font-size:29px;font-style:italic;font-weight:400;line-height:.96}.blog-cover>i{color:var(--ink-16);font-family:var(--serif);font-size:84px;font-style:italic;position:absolute;bottom:10px;right:20px}.blog-card-body{padding:26px 0 0}.blog-card h3{font-family:var(--serif);margin-bottom:16px;font-size:25px;font-weight:400;line-height:1.35}.blog-card:hover h3{font-style:italic}.blog-card-body>p{min-height:70px;color:var(--ink-60);font-size:12px;line-height:1.85}.section-cta{justify-content:flex-end;margin-top:58px;display:flex}.contact-section{padding:170px 0}.contact-grid{grid-template-columns:minmax(420px,.9fr) minmax(540px,1.1fr);align-items:start;gap:clamp(60px,8vw,115px);display:grid}.contact-grid>div:first-child .section-index{margin-bottom:58px;display:block}.contact-section h2{margin-bottom:34px}.contact-lead{max-width:560px;color:var(--ink-60);font-size:15px;line-height:1.9}.contact-panel{border-top:1px solid var(--ink-16)}.email-copy,.social-row{border:0;border-bottom:1px solid var(--ink-16);text-align:left;cursor:pointer;background:0 0;grid-template-columns:120px 1fr auto;align-items:center;gap:20px;width:100%;min-height:84px;padding:0;transition:border-color .2s,padding .2s;display:grid}.email-copy:hover,.social-row:hover{border-color:var(--ink);padding-inline:10px}.email-copy>span,.email-copy>small,.social-row>span{color:var(--ink-42);font-size:9px}.email-copy>strong,.social-row>strong{font-family:var(--serif);font-size:18px;font-weight:400}.email-copy>small,.social-row i{color:var(--ink-60);font-style:normal}.social-row.is-placeholder{cursor:not-allowed;opacity:.45}.site-footer{background:var(--ink);min-height:0;color:var(--paper);scroll-margin-top:calc(var(--header-h) + 18px);align-items:stretch;display:flex}.footer-glow{display:none}.footer-inner{flex-direction:column;justify-content:space-between;padding:88px 0 48px;display:flex}.footer-kicker{color:#f3f0e88a;font-size:9px}.footer-inner h2{font-family:var(--serif);letter-spacing:-.075em;margin:48px 0 58px;font-size:clamp(52px,5.6vw,84px);font-weight:400;line-height:.86}.footer-inner h2 span{padding-left:8%;font-style:italic;display:inline-block}.footer-contact{border-top:1px solid #f3f0e83d;grid-template-columns:minmax(210px,.8fr) minmax(280px,1.1fr) minmax(260px,1fr);align-items:start;gap:46px;padding:28px 0 42px;display:grid}.footer-contact-intro>span,.footer-email>span{color:#f3f0e87a;font-size:9px}.footer-contact-intro p{color:#f3f0e8a8;max-width:34ch;margin:15px 0 0;font-size:12px;line-height:1.8}.footer-email{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;border-bottom:1px solid #f3f0e83d;grid-template-columns:1fr auto;gap:13px 20px;padding:0 0 18px;transition:border-color .18s;display:grid}.footer-email:hover{border-color:var(--paper)}.footer-email>span{grid-column:1/-1}.footer-email strong{font-family:var(--serif);font-size:18px;font-weight:400}.footer-email small{color:#f3f0e87a;font:9px var(--mono);align-self:end}.footer-socials{display:grid}.footer-socials a{color:#f3f0e8b3;border-bottom:1px solid #f3f0e82e;grid-template-columns:72px 1fr auto;align-items:baseline;gap:14px;margin-bottom:13px;padding:0 0 13px;font-size:10px;display:grid}.footer-socials a:hover{color:var(--paper)}.footer-socials strong{font-family:var(--serif);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:400;overflow:hidden}.footer-socials i{font-style:normal}.footer-socials .is-placeholder{cursor:not-allowed;opacity:.42}.footer-bottom{border-top:1px solid #f3f0e83d;grid-template-columns:1fr auto 1fr;align-items:end;gap:40px;padding-top:28px;display:grid}.footer-bottom strong{letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:500}.footer-bottom p{color:#f3f0e88a;margin:8px 0 0;font-size:10px}.footer-bottom nav{gap:28px;display:flex}.footer-bottom nav a{color:#f3f0e8b8;font-size:11px;position:relative}.footer-bottom nav a:after{content:"";transform-origin:100%;background:currentColor;height:1px;transition:transform .2s;position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(0)}.footer-bottom nav a:hover:after{transform-origin:0;transform:scaleX(1)}.copyright{font-family:var(--mono);text-align:right;justify-self:end;line-height:1.7}.overview-page{padding-top:var(--header-h)}.overview-profile{border-bottom:1px solid var(--ink-16);padding:54px 0 62px}.overview-profile-grid{grid-template-columns:320px minmax(0,760px);justify-content:space-between;align-items:center;gap:48px;display:grid}.overview-portrait{width:290px;margin:0 0 0 24px}.overview-portrait img{aspect-ratio:4/5;object-fit:cover;object-position:45% 48%;width:100%;height:362px}.overview-portrait figcaption{color:var(--ink-42);font:9px var(--mono);letter-spacing:.04em;padding-top:10px}.overview-kicker{color:var(--ink-42);margin-bottom:28px;font-size:9px}.overview-profile-copy h1{font-family:var(--serif);letter-spacing:-.055em;margin:0;font-size:clamp(48px,5vw,72px);font-weight:400;line-height:.96}.overview-name-zh{color:var(--ink-60);font-family:var(--serif);margin:12px 0 32px;font-size:17px;font-style:italic}.overview-intro{max-width:62ch;font-family:var(--serif);margin-bottom:25px;font-size:clamp(20px,2vw,27px);line-height:1.62}.overview-meta{border-top:1px solid var(--ink-16);border-bottom:1px solid var(--ink-16);color:var(--ink-60);flex-wrap:wrap;gap:8px 24px;padding:18px 0;font-size:11px;display:flex}.overview-skills{grid-template-columns:110px 1fr;gap:24px;padding:22px 0;display:grid}.overview-skills>span{color:var(--ink-42);font-size:9px}.overview-skills>div{flex-wrap:wrap;gap:7px 18px;display:flex}.overview-skills small{border-bottom:1px solid var(--ink-16);color:var(--ink-78);padding-bottom:3px;font-size:11px}.overview-actions{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.overview-section{border-bottom:1px solid var(--ink-16);padding:82px 0}.overview-blog-section{background:var(--paper-deep)}.overview-section-heading{justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px;display:flex}.overview-section-heading span{color:var(--ink-42);font-size:9px}.overview-section-heading h2{font-family:var(--serif);letter-spacing:-.045em;margin:14px 0 0;font-size:clamp(36px,4vw,54px);font-weight:400;line-height:1}.more-link{color:var(--ink-60);padding:9px 0;font-size:11px;position:relative}.more-link:after{content:"";background:var(--ink);transform-origin:100%;height:1px;transition:transform .2s;position:absolute;bottom:3px;left:0;right:0;transform:scaleX(0)}.more-link:hover:after{transform-origin:0;transform:scaleX(1)}.overview-project-grid{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.overview-feature-card{border-top:1px solid var(--ink-16);padding-top:14px;transition:border-color .2s}.overview-feature-card:hover{border-color:var(--ink)}.overview-feature-card .technical-visual{border:0;min-height:0}.overview-feature-copy{padding-top:20px}.overview-feature-copy h3{font-family:var(--serif);margin-bottom:12px;font-size:24px;font-weight:400;line-height:1.2}.overview-feature-card:hover h3{font-style:italic}.overview-feature-copy>p{color:var(--ink-60);margin-bottom:0;font-size:12px;line-height:1.8}.overview-blog-list{border-top:1px solid var(--ink-16)}.overview-blog-list article{border-bottom:1px solid var(--ink-16);grid-template-columns:48px 1fr 42px;align-items:center;gap:28px;padding:30px 0;transition:border-color .2s;display:grid}.overview-blog-list article:hover{border-color:var(--ink)}.overview-blog-index{color:var(--ink-42);align-self:start;font-size:9px}.overview-blog-list h3{font-family:var(--serif);margin-bottom:10px;font-size:26px;font-weight:400}.overview-blog-list article:hover h3{font-style:italic}.overview-blog-list article p{max-width:68ch;color:var(--ink-60);margin-bottom:16px;font-size:12px;line-height:1.8}.overview-contact{border-bottom:1px solid var(--ink-16);padding:112px 0}.overview-contact h2{font-family:var(--serif);letter-spacing:-.045em;margin-bottom:30px;font-size:clamp(38px,4.2vw,60px);font-weight:400;line-height:1}.resume-page{padding:var(--header-h) 0 90px}.resume-intro{border-bottom:1px solid var(--ink-16);grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);align-items:end;gap:52px;padding-top:46px;padding-bottom:36px;display:grid}.resume-label{color:var(--ink-42);margin:0 0 26px;font-size:9px}.resume-eyebrow{color:var(--ink-60);font-family:var(--serif);margin:0 0 13px;font-size:18px;font-style:italic}.resume-intro h1{font-family:var(--serif);letter-spacing:-.055em;margin:0;font-size:clamp(44px,5vw,68px);font-weight:400;line-height:.94}.resume-intro h1 i{padding-left:7%;font-weight:400}.resume-intro-aside>p{max-width:38ch;color:var(--ink-60);margin:0 0 24px;font-size:13px;line-height:1.8}.resume-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.resume-reader{grid-template-columns:150px minmax(0,780px);justify-content:center;align-items:start;gap:42px;padding-top:34px;display:grid}.resume-reader-controls{top:calc(var(--header-h) + 24px);position:sticky}.resume-reader-controls>div:first-child{border-bottom:1px solid var(--ink-16);padding-bottom:20px}.resume-reader-controls>div:first-child>span{color:var(--ink-42);margin-bottom:13px;font-size:8px;display:block}.resume-reader-controls>div:first-child strong{font-family:var(--serif);font-size:26px;font-weight:400}.resume-reader-controls>div:first-child i{color:var(--ink-42);font-size:14px;font-weight:400}.resume-page-switcher{padding:12px 0;display:grid}.resume-page-switcher button{border:0;border-bottom:1px solid var(--ink-09);color:var(--ink-42);font-family:var(--serif);text-align:left;grid-template-columns:1fr auto;align-items:baseline;gap:10px;padding:14px 9px;font-size:17px;transition:color .18s,background-color .18s;display:grid}.resume-page-switcher button span{font:8px var(--mono)}.resume-page-switcher button:hover,.resume-page-switcher button.is-active{background:var(--ink);color:var(--paper)}.resume-reader-controls>p{color:var(--ink-42);margin:13px 0 0;font-size:9px;line-height:1.7}.resume-sheet{aspect-ratio:210/297;border:1px solid var(--ink-16);background:#fff;width:100%;overflow:hidden;box-shadow:0 14px 40px #16161417}.resume-sheet img{object-fit:contain;background:#fff;width:100%;height:100%;animation:.24s both resume-page-in;display:block}@keyframes resume-page-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.listing-body{padding-bottom:150px}.listing-page,.detail-page,.article-page{padding-top:var(--header-h)}.listing-hero{border-bottom:1px solid var(--ink-16);padding-top:82px;position:relative}.listing-hero .section-heading{margin-bottom:52px}.listing-counter{align-items:end;gap:14px;display:flex;position:absolute;bottom:30px;right:0}.listing-counter strong{font-family:var(--serif);font-size:46px;font-weight:400;line-height:.8}.listing-counter span{color:var(--ink-42);font-size:9px;line-height:1.6}.listing-page>.shell:nth-child(2){padding:42px 0 100px}.blog-list{border-top:1px solid var(--ink-16)}.blog-list-item{border-bottom:1px solid var(--ink-16);grid-template-columns:54px 230px 1fr 48px;align-items:center;gap:34px;padding:38px 0;transition:border-color .2s;display:grid}.blog-list-item:hover{border-color:var(--ink)}.blog-list-index{color:var(--ink-42);align-self:start;font-size:9px}.blog-list-cover{aspect-ratio:16/9;background:#d5d1c7;width:100%;height:auto;padding:16px;position:relative}.blog-list-cover.has-image{padding:0;overflow:hidden}.blog-list-cover.has-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.blog-list-item:hover .blog-list-cover.has-image img{transform:scale(1.025)}.blog-list-cover span{font-size:9px}.blog-list-cover i{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.blog-list-cover i:after{content:"Image";color:var(--ink-16);font-family:var(--serif);font-size:36px;font-style:italic}.blog-list-content .blog-meta{justify-content:flex-start;gap:24px}.blog-list-content h2{font-family:var(--serif);letter-spacing:-.03em;margin-bottom:11px;font-size:27px;font-weight:400}.blog-list-item:hover h2{font-style:italic}.blog-list-content>p{max-width:70ch;color:var(--ink-60);margin-bottom:18px;font-size:12px;line-height:1.85}.empty-state{color:var(--ink-42);font:10px var(--mono);text-align:center;padding:90px 0}.detail-hero{padding:72px 0 0}.work-detail-header{padding-top:42px;padding-bottom:38px}.work-detail-header .back-link{margin-bottom:34px}.work-detail-header h1{max-width:1050px;font-family:var(--serif);letter-spacing:0;margin:0;font-size:clamp(46px,5.2vw,78px);font-weight:400;line-height:.95}.work-summary{max-width:66ch;color:var(--ink-60);margin:16px 0 0;font-size:16px;line-height:1.8}.work-detail-content{padding-bottom:78px}.work-actions{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.work-action{border:1px solid var(--ink-16);width:min(100%,260px);min-height:62px;color:var(--ink);justify-content:space-between;align-items:center;gap:20px;padding:12px 15px;transition:background .18s,color .18s,border-color .18s;display:flex}.work-action:hover,.work-action--primary{border-color:var(--ink);background:var(--ink);color:var(--paper)}.work-action--primary:hover{background:#343431}.work-action span{font:400 16px var(--serif);gap:5px;display:grid}.work-action small{color:currentColor;opacity:.55;font-size:8px}.work-action i{font-size:20px;font-style:normal}.work-overview{width:min(100%, var(--work-wide-width));border-top:1px solid var(--ink);border-bottom:1px solid var(--ink-16);grid-template-columns:180px minmax(0,1fr);margin:0 auto 34px;display:grid}.work-overview>header{padding:20px 20px 20px 0}.work-overview>header span{color:var(--ink-42);margin-bottom:10px;font-size:8px;display:block}.work-overview>header h2{font:400 22px var(--serif);margin:0}.work-overview dl{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.work-overview dl div{border-left:1px solid var(--ink-16);min-width:0;padding:20px}.work-overview dt{color:var(--ink-42);margin-bottom:9px;font-size:8px}.work-overview dd{overflow-wrap:anywhere;font:400 17px/1.35 var(--serif);margin:0}.work-video-group{gap:20px;width:min(100%,1120px);margin-inline:auto;display:grid}.work-video-group--multiple{grid-template-columns:repeat(2,minmax(0,1fr))}.work-video-item{min-width:0;margin:0}.work-video-item figcaption{border-bottom:1px solid var(--ink-16);justify-content:space-between;gap:20px;padding:12px 0 16px;display:flex}.work-video-item figcaption span{color:var(--ink-42);font-size:8px}.work-video-item figcaption strong{overflow-wrap:anywhere;text-align:right;min-width:0;font:400 17px var(--serif)}.project-video,.project-video-placeholder{aspect-ratio:16/9;background:#171717;width:100%}.project-video{object-fit:cover;display:block}.project-video-placeholder{color:#f3f0e86b;place-content:center;display:grid;position:relative;overflow:hidden}.project-video-placeholder span{font-size:9px;position:absolute;top:22px;left:22px}.project-video-placeholder strong{font-family:var(--serif);color:#f3f0e824;font-size:clamp(46px,8vw,100px);font-style:italic;font-weight:400}.work-stack{width:min(100%, var(--work-wide-width));border-bottom:1px solid var(--ink-16);grid-template-columns:120px 1fr;align-items:start;gap:24px;margin-inline:auto;padding:24px 0;display:grid}.work-attribution{width:min(100%, var(--work-wide-width));border-bottom:1px solid var(--ink-16);grid-template-columns:180px minmax(0,1fr);gap:24px;margin:0 auto;padding:18px 0;display:grid}.work-attribution>span{color:var(--ink-42);padding-top:4px;font-size:8px}.work-attribution>div{gap:14px;display:grid}.work-attribution article{grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr);gap:22px;display:grid}.work-attribution a{font:400 16px var(--serif);justify-content:space-between;gap:14px;display:flex}.work-attribution a i{font-style:normal}.work-attribution p{color:var(--ink-60);margin:0;font-size:12px;line-height:1.65}.work-stack>span{color:var(--ink-42);padding-top:5px;font-size:12px}.work-stack .tag-row{gap:10px 22px}.work-stack .tag-row span{padding-bottom:5px;font-size:16px;line-height:1.4}.work-intro,.work-points,.work-blocks{width:min(100%, var(--work-copy-width));margin-inline:auto}.work-blocks{padding-top:10px}.work-block{padding:42px 0 0;scroll-margin-top:110px}.work-block+.work-block{margin-top:8px}.work-block-heading>span{color:var(--ink-42);margin-bottom:12px;font-size:9px;display:block}.work-block-heading h2{max-width:24ch;margin-bottom:var(--work-heading-gap);font-family:var(--serif);font-size:clamp(32px,3vw,46px);font-weight:400;line-height:1.12}.work-prose{max-width:68ch;color:var(--ink-78);font-family:var(--serif);font-size:clamp(17px,1.4vw,20px);line-height:1.72}.work-prose p{margin-bottom:16px}.work-inline-notes{gap:12px;margin-top:24px;display:grid}.work-inline-notes article{border-top:1px solid var(--ink-16);grid-template-columns:104px minmax(240px,.85fr) minmax(260px,1.35fr);align-items:center;gap:24px;padding:14px 0;display:grid}.work-inline-notes article:last-child{border-bottom:1px solid var(--ink-16)}.work-inline-notes span{color:var(--ink-42);font-size:9px}.work-inline-notes code{overflow-wrap:anywhere;font:400 clamp(16px, 1.5vw, 21px)/1.45 var(--serif)}.work-inline-notes p{color:var(--ink-60);margin:0;font-size:12px;line-height:1.7}.work-diagram{background:var(--ink-16);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;margin:0;padding:1px;list-style:none;display:grid}.work-diagram li{background:var(--paper);min-height:176px;padding:18px;position:relative}.work-diagram li:not(:last-child):after{content:"→";z-index:1;background:var(--ink);width:20px;height:20px;color:var(--paper);font:11px var(--mono);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;right:-10px;transform:translateY(-50%)}.work-diagram span{color:var(--ink-42);margin-bottom:34px;font-size:9px;display:block}.work-diagram strong{font:400 20px var(--serif);margin-bottom:9px;display:block}.work-diagram p{color:var(--ink-60);margin:0;font-size:12px;line-height:1.65}.work-diagram-caption{max-width:72ch;color:var(--ink-60);margin:14px 0 0;font-size:12px;line-height:1.75}.work-process{border-top:1px solid var(--ink-16);counter-reset:process;margin:0;padding:0;list-style:none}.work-process li{padding:var(--work-point-padding) 0;border-bottom:1px solid var(--ink-16);grid-template-columns:74px minmax(0,1fr);gap:22px;display:grid}.work-process li>span{color:var(--ink-42);padding-top:5px;font-size:9px}.work-process h3{font:400 25px var(--serif);margin-bottom:8px}.work-process p{max-width:68ch;color:var(--ink-60);margin:0;font-size:14px;line-height:1.85}.work-facts{border-top:1px solid var(--ink-16);grid-template-columns:repeat(2,1fr);margin:0;display:grid}.work-facts div{border-bottom:1px solid var(--ink-16);padding:18px 0}.work-facts div:nth-child(odd){padding-right:24px}.work-facts dt{color:var(--ink-42);margin-bottom:8px;font-size:9px}.work-facts dd{font-family:var(--serif);margin:0;font-size:20px}.work-media-block img{aspect-ratio:16/9;object-fit:cover;width:100%}.work-media-block figcaption{color:var(--ink-60);margin-top:10px;font-size:12px}.art-collection-preview{aspect-ratio:16/9;background:var(--ink);color:var(--paper);align-content:space-between;padding:24px;display:grid;position:relative;overflow:hidden}.art-collection-preview:before{content:"";background:repeating-linear-gradient(90deg,#0000 0 11.8%,#f3f0e814 11.8% 12%);transition:transform .45s;position:absolute;inset:0}.art-collection-preview:hover:before{transform:scale(1.04)}.art-collection-preview span,.art-collection-preview strong,.art-collection-preview i{position:relative}.art-collection-preview span{color:#f3f0e88c;font-size:9px}.art-collection-preview strong{font:400 clamp(34px, 5vw, 68px)/.84 var(--serif);align-self:end}.art-collection-preview i{font-size:30px;font-style:normal;position:absolute;bottom:24px;right:24px}.collection-header{border-bottom:1px solid var(--ink-16);padding:72px 0 48px}.collection-header .back-link{margin-bottom:46px}.collection-index{color:var(--ink-42);margin-bottom:18px;font-size:9px;display:block}.collection-header h1{font:400 clamp(54px, 7vw, 96px)/.92 var(--serif);margin-bottom:18px}.collection-header>p{color:var(--ink-60);margin:0}.art-gallery-shell{padding:42px 0 130px}.art-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.art-item{aspect-ratio:16/9;cursor:zoom-in;background:#d9d5cb;border:0;padding:0;position:relative;overflow:hidden}.art-item:nth-child(5n+1){grid-column:1/-1}.art-item img,.art-item video{object-fit:cover;width:100%;height:100%;transition:transform .45s cubic-bezier(.25,.7,.25,1)}.art-item:hover img,.art-item:hover video{transform:scale(1.025)}.art-media-placeholder{width:100%;height:100%;color:var(--ink-42);place-items:center;display:grid}.art-item-title{color:#fff;text-align:left;background:linear-gradient(#0000,#000000b8);justify-content:space-between;align-items:end;gap:20px;padding:46px 18px 16px;transition:transform .22s;display:flex;position:absolute;inset:auto 0 0;transform:translateY(100%)}.art-item:hover .art-item-title,.art-item:focus-visible .art-item-title{transform:none}.art-item-title strong{font:400 22px var(--serif)}.art-item-title i{font-size:8px;font-style:normal}.lightbox-open{overflow:hidden}.lightbox-open .route-frame{opacity:1;clip-path:none;animation:none;transform:none}.art-lightbox{z-index:1100;background:#141413f0;place-items:center;padding:44px;animation:.24s both route-enter;display:grid;position:fixed;inset:0}.art-lightbox figure{width:min(1180px,100%);color:var(--paper);margin:0}.art-lightbox img,.art-lightbox video{aspect-ratio:16/9;object-fit:cover;background:#111;width:100%}.art-lightbox figcaption{font:400 20px var(--serif);margin-top:12px}.art-lightbox-close{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff52;width:44px;height:44px;font-size:28px;position:absolute;top:18px;right:22px}.work-intro h2,.work-points h2{margin-bottom:var(--work-heading-gap);font-family:var(--serif);font-size:clamp(34px,3vw,48px);font-weight:400}.work-intro>p{max-width:68ch;color:var(--ink-78);font-family:var(--serif);font-size:clamp(18px,1.6vw,23px);line-height:1.75}.work-point-list{border-top:1px solid var(--ink-16)}.work-point-list article{padding:var(--work-point-padding) 0;border-bottom:1px solid var(--ink-16);grid-template-columns:74px minmax(0,1fr);gap:22px;display:grid}.work-point-list article>span{color:var(--ink-42);padding-top:5px;font-size:9px}.work-point-list h3{font-family:var(--serif);margin-bottom:8px;font-size:25px;font-weight:400}.work-point-list p{max-width:68ch;color:var(--ink-60);margin:0;font-size:14px;line-height:1.85}.back-link{color:var(--ink-60);margin-bottom:78px;font-size:9px;display:inline-block;position:relative}.back-link:after{content:"";background:var(--ink);transform-origin:100%;height:1px;transition:transform .2s;position:absolute;bottom:-5px;left:0;right:0;transform:scaleX(0)}.back-link:hover:after{transform-origin:0;transform:scaleX(1)}.detail-title-row{justify-content:space-between;align-items:end;gap:40px;margin-bottom:62px;display:flex}.detail-meta{color:var(--ink-42);gap:18px;margin-bottom:28px;font-size:9px;display:flex}.detail-title-row h1{font-family:var(--serif);letter-spacing:-.065em;margin:0;font-size:clamp(48px,5.3vw,82px);font-weight:400;line-height:.9}.detail-title-zh{color:var(--ink-60);margin:18px 0 0;font-size:17px}.detail-status{color:var(--ink-60);padding-bottom:13px;font-size:9px}.detail-hero>.technical-visual{min-height:0}.detail-list{color:var(--ink-78);gap:18px;margin:0;padding-left:22px;font-size:15px;line-height:1.85;display:grid}.detail-list li::marker{color:var(--ink-42);font-family:var(--mono);font-size:10px}.detail-list--numbered{gap:22px}.detail-content{grid-template-columns:300px minmax(0,930px);justify-content:space-between;gap:85px;padding:125px 0 170px;display:grid}.detail-sidebar{align-self:start;position:sticky;top:120px}.detail-sidebar>div{border-top:1px solid var(--ink-16);padding:20px 0}.detail-sidebar>div:last-child{border-bottom:1px solid var(--ink-16)}.detail-sidebar>div>span{color:var(--ink-42);margin-bottom:12px;font-size:9px;display:block}.detail-sidebar p{color:var(--ink-78);margin-bottom:0;font-size:12px;line-height:1.8}.detail-link-list{display:grid}.detail-link-list a{border-bottom:1px solid var(--ink-16);color:var(--ink-60);justify-content:space-between;gap:20px;padding:10px 0;font-size:11px;display:flex}.detail-link-list a:hover{color:var(--ink)}.detail-link-list i{font-style:normal}.placeholder-line{color:var(--ink-42)!important}.detail-main section{padding:0 0 115px}.detail-main section+section{border-top:1px solid var(--ink-16);padding-top:8px}.detail-section-index{color:var(--ink-42);margin-bottom:28px;padding-top:22px;font-size:9px;display:block}.detail-main h2{font-family:var(--serif);letter-spacing:-.045em;margin-bottom:38px;font-size:clamp(32px,3vw,46px);font-weight:400}.detail-lead{max-width:70ch;color:var(--ink-78);font-family:var(--serif);font-size:clamp(17px,1.5vw,22px);line-height:1.75}.media-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.media-grid>:last-child{grid-column:1/-1}.article-header{padding:58px 0 0}.article-header .back-link{margin-bottom:60px}.article-header .blog-meta{justify-content:flex-start;gap:30px}.article-header h1{max-width:1250px;font-family:var(--serif);letter-spacing:-.06em;margin:26px 0;font-size:clamp(44px,5.2vw,82px);font-weight:400;line-height:1}.article-header>p{max-width:70ch;color:var(--ink-60);margin-bottom:30px;font-size:16px;line-height:1.9}.article-cover{aspect-ratio:16/9;background:#d5d1c7;width:100%;height:auto;min-height:0;margin-top:70px;padding:34px;position:relative;overflow:hidden}.article-cover.has-image{padding:0}.article-cover.has-image img{object-fit:cover;width:100%;height:100%;display:block}.article-cover>span,.article-cover>strong,.article-cover>i{position:absolute}.article-cover>span{font-size:9px}.article-cover>strong{font-family:var(--serif);letter-spacing:-.06em;font-size:clamp(34px,4vw,60px);font-style:italic;font-weight:400;line-height:.9;bottom:34px;left:34px}.article-cover>i{color:var(--ink-42);font-size:9px;font-style:normal;bottom:34px;right:34px}.article-layout{grid-template-columns:132px minmax(0,860px);justify-content:center;gap:42px;padding:96px 0 130px;display:grid}.article-toc{border-top:1px solid var(--ink-16);align-self:start;padding-top:16px;position:sticky;top:120px}.article-toc>span{color:var(--ink-42);font-size:9px}.article-toc nav{margin-top:22px;display:grid}.article-toc a{color:var(--ink-60);grid-template-columns:20px 1fr;gap:7px;padding:9px 0;font-size:11px;line-height:1.5;display:grid}.article-toc a span{color:var(--ink-42);font:9px var(--mono)}.article-toc a:hover{color:var(--ink);font-style:italic}.markdown-body{min-width:0;max-width:75ch;color:var(--ink-78);font-size:16px;line-height:2}.markdown-body h1{font-family:var(--serif);letter-spacing:-.04em;margin:0 0 64px;font-size:38px;font-weight:400;line-height:1.2}.markdown-body h2{border-top:1px solid var(--ink-16);font-family:var(--serif);letter-spacing:-.025em;margin:70px 0 26px;padding-top:26px;scroll-margin-top:120px;font-size:33px;font-weight:400;line-height:1.3}.markdown-body h3{font-family:var(--serif);margin:44px 0 18px;font-size:23px;font-weight:400}.markdown-body p{margin-bottom:18px}.markdown-body ul{padding-left:22px}.markdown-body li{margin-bottom:9px}.markdown-body blockquote{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);color:var(--ink);font-family:var(--serif);margin:38px 0 54px;padding:26px 0;font-size:22px;font-style:italic;line-height:1.7}.markdown-body :not(pre)>code{border-bottom:1px solid var(--ink-16);color:var(--ink);font:.85em var(--mono);overflow-wrap:anywhere;word-break:break-word;white-space:normal;padding:2px 5px}.code-block{border:1px solid var(--ink-16);background:var(--ink);color:var(--paper);margin:40px 0}.code-language{color:#f3f0e899;text-transform:uppercase;font-size:9px;display:block}.code-block-toolbar{border-bottom:1px solid #f3f0e833;justify-content:space-between;align-items:center;min-height:38px;padding:0 12px 0 16px;display:flex}.code-block-toolbar button{color:#f3f0e8ad;cursor:pointer;min-width:72px;font:9px var(--mono);background:0 0;border:0;justify-content:flex-end;align-items:center;gap:7px;padding:7px 0;display:inline-flex}.code-block-toolbar button:hover{color:var(--paper)}.code-block pre{margin:0;padding:26px;overflow-x:auto}.code-block code{font:12px/1.9 var(--mono)}.markdown-body a{border-bottom:1px solid}.markdown-body img{aspect-ratio:16/9;object-fit:cover;width:100%;margin:38px 0;display:block}.markdown-body ol{padding-left:24px}.markdown-body table{border-collapse:collapse;width:100%;margin:28px 0;font-size:14px;line-height:1.55}.markdown-body th,.markdown-body td{border:1px solid var(--ink-16);text-align:left;vertical-align:top;padding:11px 12px}.markdown-body th{background:var(--paper-deep);color:var(--ink);font-weight:600}.markdown-body .katex-display{margin:30px 0;padding:4px 0;overflow:auto hidden}.mermaid-diagram{border:1px solid var(--ink-16);background:#eceae3;width:100%;margin:30px 0;padding:18px;overflow-x:auto}.mermaid-diagram svg{max-width:100%;height:auto;margin:auto;display:block}.mermaid-fallback{border:1px solid var(--ink-16);margin:30px 0;padding:18px;overflow-x:auto}.knowledge-page,.knowledge-article-page{min-height:100vh;padding-top:var(--header-h)}.knowledge-page .mono,.knowledge-article-page .mono{letter-spacing:0}.knowledge-shell{width:min(1380px,100vw - 64px);margin-inline:auto}.knowledge-index-header{border-bottom:1px solid var(--ink-16);background:var(--paper-deep)}.knowledge-index-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:48px;min-height:232px;padding:48px 0 38px;display:grid}.knowledge-index-heading>div>span{color:var(--knowledge-accent);font-size:11px}.knowledge-index-heading h1{font:500 54px/1.02 var(--serif);margin:12px 0 10px}.knowledge-index-heading p{color:var(--ink-60);margin:0;font-size:16px}.knowledge-index-heading dl{border-top:1px solid var(--ink-16);border-left:1px solid var(--ink-16);grid-template-columns:repeat(2,104px);margin:0;display:grid}.knowledge-index-heading dl div{border-right:1px solid var(--ink-16);border-bottom:1px solid var(--ink-16);gap:6px;padding:17px;display:grid}.knowledge-index-heading dt{color:var(--ink-42);font:9px var(--mono)}.knowledge-index-heading dd{font:32px/1 var(--serif);margin:0}.knowledge-index-main{padding:30px 0 110px}.knowledge-search{z-index:8;top:calc(var(--header-h) + 12px);border:1px solid var(--ink-16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f3f0e8f5;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:52px;margin-bottom:34px;padding:0 16px;display:grid;position:sticky}.knowledge-search:focus-within{border-color:var(--knowledge-accent)}.knowledge-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:14px 0;font-size:15px}.knowledge-search>span:last-child{color:var(--ink-42);font-size:10px}.knowledge-index-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:34px 42px;display:grid}.knowledge-index-group{border-top:2px solid var(--ink)}.knowledge-index-group>header{border-bottom:1px solid var(--ink-16);grid-template-columns:28px minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:15px 2px 13px;display:grid}.knowledge-index-group>header>span,.knowledge-index-group>header>small{color:var(--ink-42);font-size:9px}.knowledge-index-group h2{font:500 20px/1.25 var(--sans);margin:0}.knowledge-index-group>div>a{border-bottom:1px solid var(--ink-09);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:22px;min-height:76px;padding:14px 2px;transition:padding .18s,border-color .18s,color .18s;display:grid}.knowledge-index-group>div>a:hover{border-color:var(--knowledge-accent);color:var(--knowledge-accent);padding-left:8px}.knowledge-index-group a>span{min-width:0}.knowledge-index-group strong{margin-bottom:5px;font-size:15px;font-weight:600;line-height:1.4;display:block}.knowledge-index-group small{color:var(--ink-60);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.55;display:-webkit-box;overflow:hidden}.knowledge-index-group em{color:var(--ink-42);white-space:nowrap;padding-top:3px;font-size:9px;font-style:normal}.knowledge-empty{border-top:1px solid var(--ink-16);border-bottom:1px solid var(--ink-16);min-height:220px;color:var(--ink-60);place-items:center;display:grid}.knowledge-reading-shell{grid-template-columns:250px minmax(0,780px) 210px;justify-content:center;gap:32px;width:min(1480px,100vw - 48px);margin-inline:auto;padding:32px 0 110px;display:grid}.knowledge-library-rail,.knowledge-toc-rail{top:calc(var(--header-h) + 24px);max-height:calc(100vh - var(--header-h) - 48px);align-self:start;position:sticky}.knowledge-library-rail{border-right:1px solid var(--ink-16);padding-right:18px;overflow:hidden}.knowledge-toc-rail{border-left:1px solid var(--ink-16);padding-left:18px;overflow-y:auto}.knowledge-rail-title{border-bottom:1px solid var(--ink-16);align-items:center;gap:9px;min-height:42px;margin-bottom:13px;padding-bottom:12px;display:flex}.knowledge-rail-title>a{align-items:center;gap:9px;display:flex}.knowledge-rail-title strong{font-size:13px;font-weight:600}.knowledge-rail-title>span{color:var(--ink-42);margin-left:auto;font-size:8px}.knowledge-directory{max-height:calc(100vh - var(--header-h) - 116px);scrollbar-width:thin;scrollbar-color:var(--ink-16) transparent;overflow-y:auto}.knowledge-directory-group{margin-bottom:15px}.knowledge-directory-label{color:var(--ink-60);grid-template-columns:22px minmax(0,1fr) auto;align-items:baseline;gap:6px;margin-bottom:5px;display:grid}.knowledge-directory-label span,.knowledge-directory-label small{font-size:8px}.knowledge-directory-label strong{font-size:12px;font-weight:650;line-height:1.35}.knowledge-directory-links{padding-left:28px;display:grid}.knowledge-directory-links a{border-left:1px solid var(--ink-09);color:var(--ink-60);padding:5px 8px;font-size:12px;line-height:1.45}.knowledge-directory-links a:hover{color:var(--ink);border-color:var(--ink-42)}.knowledge-directory-links a.active{border-color:var(--knowledge-accent);background:var(--knowledge-accent-soft);color:var(--ink);font-weight:600}.knowledge-article-main{min-width:0;padding:0 10px}.knowledge-article-header{border-bottom:1px solid var(--ink-16);padding:9px 0 38px}.knowledge-back{color:var(--ink-60);margin-bottom:48px;font-size:10px;display:inline-block}.knowledge-back:hover{color:var(--knowledge-accent)}.knowledge-breadcrumb{color:var(--knowledge-accent);flex-wrap:wrap;gap:14px;margin-bottom:14px;font-size:10px;display:flex}.knowledge-breadcrumb span+span{color:var(--ink-42)}.knowledge-article-header h1{font:500 46px/1.14 var(--serif);margin:0}.knowledge-toc{gap:1px;display:grid}.knowledge-toc a{border-left:1px solid var(--ink-09);color:var(--ink-60);padding:6px 8px 6px 10px;font-size:12px;line-height:1.45}.knowledge-toc a.level-3{padding-left:22px;font-size:11px}.knowledge-toc a:hover,.knowledge-toc a.active{color:var(--ink);border-color:var(--knowledge-accent)}.knowledge-toc a.active{background:var(--knowledge-accent-soft);font-weight:600}.knowledge-mobile-navs{display:none}.knowledge-markdown{max-width:none;color:var(--ink-78);padding-top:4px;font-size:16px;line-height:1.82}.knowledge-markdown h2{font:600 29px/1.32 var(--sans);margin:48px 0 19px;padding-top:22px}.knowledge-markdown h3{font:600 21px/1.4 var(--sans);margin:31px 0 13px;scroll-margin-top:120px}.knowledge-markdown p{margin-bottom:14px}.knowledge-markdown ul,.knowledge-markdown ol{margin:14px 0 18px}.knowledge-markdown li{margin-bottom:6px}.knowledge-markdown blockquote{border:0;border-left:3px solid var(--knowledge-accent);background:var(--knowledge-accent-soft);font:inherit;margin:24px 0 30px;padding:16px 20px;font-style:normal}.knowledge-markdown blockquote p:last-child{margin-bottom:0}.knowledge-markdown .code-block{border-radius:4px;margin:26px 0}.knowledge-markdown .code-block pre{padding:20px}.knowledge-markdown .code-block code{font-size:12px;line-height:1.72}.knowledge-markdown a{color:var(--knowledge-accent);text-underline-offset:3px}.knowledge-load-state{min-height:320px;color:var(--ink-42);place-items:center;display:grid}.knowledge-pagination{border-top:1px solid var(--ink-16);border-left:1px solid var(--ink-16);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:70px;display:grid}.knowledge-pagination>a,.knowledge-pagination>span{border-right:1px solid var(--ink-16);border-bottom:1px solid var(--ink-16);flex-direction:column;justify-content:space-between;gap:15px;min-height:116px;padding:22px;display:flex}.knowledge-pagination>a:last-child{text-align:right}.knowledge-pagination span{color:var(--ink-42);font-size:9px}.knowledge-pagination strong{font-size:14px;line-height:1.45}.article-pagination{border-top:1px solid var(--ink-16);border-left:1px solid var(--ink-16);grid-template-columns:repeat(2,1fr);gap:0;margin-bottom:150px;display:grid}.article-pagination a,.article-pagination>span{border-right:1px solid var(--ink-16);border-bottom:1px solid var(--ink-16);flex-direction:column;justify-content:space-between;min-height:160px;padding:30px;display:flex}.article-pagination a:last-child{text-align:right}.article-pagination span{color:var(--ink-42);font-size:9px}.article-pagination strong{font-family:var(--serif);font-size:20px;font-weight:400}.article-pagination a:hover strong{font-style:italic}.not-found{min-height:85vh;padding-top:calc(var(--header-h) + 15vh)}.not-found>span{color:var(--ink-42);font-size:9px}.not-found h1{font-family:var(--serif);letter-spacing:-.07em;margin:38px 0 22px;font-size:clamp(56px,7vw,96px);font-style:italic;font-weight:400;line-height:.9}.not-found p{color:var(--ink-60);margin-bottom:38px}@keyframes reveal-up{0%{opacity:0;clip-path:inset(0 0 12%);transform:translateY(18px)}to{opacity:1;clip-path:inset(0);transform:none}}@keyframes route-enter{0%{opacity:0;clip-path:inset(0 0 7%);transform:translateY(12px)}to{opacity:1;clip-path:inset(0);transform:none}}@media (width<=1200px){:root{--shell:min(100% - 56px, 1240px)}.nav-links{gap:22px}.hero-content{grid-template-columns:1fr .78fr;gap:55px}.hero h1{font-size:clamp(58px,7vw,82px)}.section-heading{grid-template-columns:55px 1fr}.section-description{grid-column:2}.skill-card{grid-template-columns:80px 1fr .8fr 1.3fr;gap:24px}.blog-preview-grid{grid-template-columns:repeat(2,1fr)}.blog-card:last-child{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:34px;display:grid}.blog-card:last-child .blog-cover{height:auto;min-height:0}.detail-content{grid-template-columns:240px 1fr;gap:55px}.overview-profile-grid{grid-template-columns:280px minmax(0,1fr);gap:44px}.overview-portrait{width:260px;margin-left:20px}.overview-portrait img{height:347px}.footer-contact{grid-template-columns:.8fr 1.2fr}.footer-socials{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:18px}}@media (width<=900px){:root{--header-h:72px;--shell:min(100% - 40px, 1240px)}.brand-copy{display:none}.menu-toggle{border:1px solid var(--ink-16);background:0 0;place-content:center;gap:6px;width:44px;height:44px;display:grid}.menu-toggle span:not(.sr-only){background:var(--ink);width:20px;height:1px}.nav-links{top:var(--header-h);border-bottom:1px solid var(--ink-16);background:var(--paper);flex-direction:column;align-items:stretch;gap:0;height:auto;padding:10px 20px 18px;display:none;position:absolute;left:0;right:0}.nav-links.is-open{display:flex}.nav-links a{border-bottom:1px solid var(--ink-09);min-height:52px}.nav-links a:after{bottom:-1px}.hero-topline span:nth-child(2){display:none}.hero-content{grid-template-columns:1fr;padding:72px 0 60px}.hero-media{max-width:720px}.technical-visual{min-height:0}.section{padding:110px 0}.about-grid{grid-template-columns:1fr}.portrait-frame{width:min(100%,340px);position:relative;top:auto}.stat-grid{grid-template-columns:repeat(2,1fr)}.experience-strip,.project-grid{grid-template-columns:1fr}.work-overview{grid-template-columns:150px minmax(0,1fr)}.work-overview dl{grid-template-columns:repeat(2,minmax(0,1fr))}.art-gallery{grid-template-columns:1fr}.art-item:nth-child(5n+1){grid-column:auto}.project-card .technical-visual{min-height:0}.skill-card{grid-template-columns:80px 1fr 1fr}.skill-list{grid-column:2/-1}.contact-grid{grid-template-columns:1fr}.footer-contact{grid-template-columns:1fr;gap:30px}.footer-socials{grid-column:auto;grid-template-columns:1fr;gap:0}.footer-bottom{grid-template-columns:1fr 1fr}.footer-bottom nav{grid-area:2/1/auto/-1}.listing-counter{display:none}.blog-list-item{grid-template-columns:34px 180px 1fr;gap:20px}.blog-list-item>.circle-link{display:none}.detail-content{grid-template-columns:1fr}.detail-sidebar{grid-template-columns:repeat(3,1fr);gap:20px;display:grid;position:static}.article-layout{grid-template-columns:1fr;gap:54px}.article-toc{position:static}.article-toc nav{grid-template-columns:repeat(2,1fr);gap:0 18px}.overview-profile-grid{grid-template-columns:160px 1fr;gap:42px}.overview-portrait{width:160px;margin-left:0}.overview-portrait img{height:200px}.overview-project-grid{grid-template-columns:repeat(2,1fr)}.resume-intro{grid-template-columns:1fr;gap:32px;padding-top:52px}.resume-reader{grid-template-columns:118px minmax(0,1fr);gap:28px}}@media (width<=1499px){.page-rail{display:none}}@media (width<=640px){:root{--shell:calc(100% - 28px)}.hero-topline{min-height:48px}.hero-topline .signal{display:none}.hero-content{padding-top:58px}.hero-name{margin-bottom:30px;font-size:10px}.hero h1{font-size:clamp(52px,16vw,72px)}.hero h1 span{padding-left:7%}.hero-disciplines{grid-template-columns:1fr;gap:14px;margin-top:42px}.hero-disciplines b{margin-right:10px;display:inline}.hero-statement{font-size:13px}.hero-actions{align-items:stretch}.hero-actions .button{gap:8px;width:calc(50% - 5px);padding-inline:16px}.hero-actions .button--muted{width:100%}.text-link{margin:12px 0 0}.technical-visual{min-height:0}.visual-status{display:none}.hero-bottom{min-height:52px}.section{padding:88px 0}.section-heading{grid-template-columns:32px 1fr;gap:16px;margin-bottom:52px}.section-heading h2,.contact-section h2{font-size:38px}.eyebrow{font-size:15px}.section-description{grid-column:1/-1;padding-left:48px;font-size:12px}.portrait-frame{width:min(100%,320px)}.about-copy .lead{font-size:22px}.timeline-block{grid-template-columns:1fr;gap:22px}.timeline-item{grid-template-columns:1fr;gap:12px}.stat-grid{margin-top:58px}.stat-card{min-height:175px;padding:18px}.stat-card strong{font-size:34px}.experience-strip article{grid-template-columns:1fr;gap:8px}.experience-strip article>span{text-align:left}.filter-bar{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.filter-bar button,.filter-bar a{white-space:nowrap}.project-grid{gap:60px}.project-card .technical-visual{min-height:0}.project-card-body{padding-top:22px}.skill-card{grid-template-columns:48px 1fr;gap:18px}.skill-card>p,.skill-list{grid-column:2}.blog-preview-grid{grid-template-columns:1fr}.blog-card:last-child{grid-column:auto;display:block}.blog-card:last-child .blog-cover{height:auto;min-height:0}.contact-section{padding:100px 0}.email-copy,.social-row{grid-template-columns:78px 1fr auto;gap:10px}.email-copy>strong{font-size:13px}.footer-inner{padding-top:68px}.footer-inner h2{margin:38px 0 46px;font-size:48px}.footer-contact{padding-bottom:34px}.footer-email strong{font-size:15px}.footer-bottom{grid-template-columns:1fr}.footer-bottom nav{flex-wrap:wrap;grid-area:auto}.copyright{text-align:left;justify-self:start}.listing-hero{padding-top:84px}.listing-hero .section-heading{grid-template-columns:1fr;gap:12px;margin-bottom:54px}.listing-hero .section-index{grid-row:auto}.listing-hero .section-heading>div{grid-column:1}.listing-hero .section-description{grid-column:1;padding-left:0}.listing-page>.shell:nth-child(2){padding-bottom:95px}.blog-list-item{grid-template-columns:30px 1fr;gap:14px}.blog-list-cover{grid-column:2;width:100%;height:auto}.blog-list-content{grid-column:2}.blog-list-content h2{font-size:26px}.detail-hero{padding-top:46px}.work-detail-header{padding-top:46px;padding-bottom:40px}.work-detail-header .back-link{margin-bottom:54px}.work-detail-header h1{font-size:44px}.work-detail-content{padding-bottom:100px}.work-stack{grid-template-columns:1fr;gap:12px}.work-stack .tag-row span{font-size:14px}.work-actions{grid-template-columns:1fr;display:grid}.work-action{width:100%}.work-overview{grid-template-columns:1fr}.work-overview>header{padding-right:0}.work-overview dl{border-top:1px solid var(--ink-16);grid-template-columns:1fr}.work-overview dl div{border-left:0;border-bottom:1px solid var(--ink-09);padding:15px 0}.work-attribution{grid-template-columns:1fr;gap:12px}.work-attribution article{grid-template-columns:1fr;gap:6px}.work-video-group--multiple{grid-template-columns:1fr}.work-block{padding-top:48px}.work-block-heading h2{font-size:32px}.work-process li{grid-template-columns:36px minmax(0,1fr);gap:12px}.work-process h3{font-size:22px}.work-inline-notes article{grid-template-columns:1fr;gap:8px;padding:15px 0}.work-diagram{grid-template-columns:1fr}.work-diagram li{min-height:0}.work-diagram li:not(:last-child):after{top:auto;bottom:-10px;right:50%;transform:translate(50%)rotate(90deg)}.work-diagram span{margin-bottom:18px}.work-facts{grid-template-columns:1fr}.work-facts div:nth-child(odd){padding-right:0}.work-intro,.work-points{padding-top:78px}.work-point-list article{grid-template-columns:36px minmax(0,1fr);gap:12px}.work-point-list h3{font-size:22px}.back-link{margin-bottom:54px}.detail-title-row{display:block}.detail-title-row h1{font-size:47px}.detail-status{margin-top:24px}.detail-hero>.technical-visual{min-height:0}.detail-content{padding:80px 0 105px}.detail-sidebar{grid-template-columns:1fr}.detail-main section{padding-bottom:80px}.media-grid{grid-template-columns:1fr}.media-grid>:last-child{grid-column:auto}.technical-visual--compact{min-height:0}.article-header{padding-top:58px}.article-header .back-link{margin-bottom:64px}.article-header h1{font-size:43px}.article-cover{min-height:0;padding:22px}.article-cover>strong{font-size:45px;bottom:22px;left:22px}.article-cover>i{bottom:22px;right:22px}.article-layout{padding:80px 0 105px}.article-toc nav{grid-template-columns:1fr}.markdown-body{font-size:14px}.markdown-body h1{font-size:37px}.markdown-body h2{font-size:28px}.article-pagination{grid-template-columns:1fr;margin-bottom:95px}.collection-header{padding-top:68px}.collection-header .back-link{margin-bottom:48px}.art-gallery-shell{padding-top:22px;padding-bottom:90px}.art-gallery{gap:14px}.art-item-title{padding:36px 14px 12px;transform:none}.art-item-title strong{font-size:18px}.art-lightbox{padding:14px}.overview-profile{padding:66px 0 82px}.overview-profile-grid{grid-template-columns:1fr;gap:36px}.overview-portrait{width:138px}.overview-portrait img{height:173px}.overview-profile-copy h1{font-size:46px}.overview-intro{font-size:20px}.overview-skills{grid-template-columns:1fr;gap:12px}.overview-section{padding:82px 0}.overview-section-heading{align-items:start;margin-bottom:38px}.overview-section-heading h2{font-size:36px}.overview-project-grid{grid-template-columns:1fr}.overview-feature-card .technical-visual{min-height:0}.overview-blog-list article{grid-template-columns:30px 1fr;gap:15px}.overview-blog-list article>.circle-link{display:none}.overview-blog-list h3{font-size:23px}.resume-page{padding:var(--header-h) 0 88px}.resume-intro{padding-top:42px;padding-bottom:36px}.resume-intro h1{font-size:43px}.resume-reader{grid-template-columns:1fr;gap:24px;padding-top:30px}.resume-reader-controls{position:static}.resume-reader-controls>div:first-child{justify-content:space-between;align-items:baseline;display:flex}.resume-reader-controls>div:first-child>span{margin-bottom:0}.resume-page-switcher{grid-template-columns:repeat(2,1fr)}}@media (width<=1280px){.knowledge-reading-shell{grid-template-columns:230px minmax(0,820px);max-width:1120px}.knowledge-toc-rail{display:none}.knowledge-mobile-navs{margin-top:20px;display:block}.knowledge-mobile-navs details:first-child{display:none}.knowledge-mobile-navs details{border-top:1px solid var(--ink-16);border-bottom:1px solid var(--ink-16)}.knowledge-mobile-navs summary{cursor:pointer;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;font-size:13px;font-weight:600;list-style:none;display:grid}.knowledge-mobile-navs summary::-webkit-details-marker{display:none}.knowledge-mobile-navs summary span{color:var(--ink-42);font:9px var(--mono)}.knowledge-mobile-navs .knowledge-toc,.knowledge-mobile-navs .knowledge-directory{max-height:52vh;padding:8px 0 16px;overflow-y:auto}}@media (width<=1100px){.nav-links{gap:15px}.knowledge-index-grid{gap-inline:28px}}@media (width<=980px){.knowledge-reading-shell{width:min(840px,100vw - 48px);display:block}.knowledge-library-rail{display:none}.knowledge-mobile-navs{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.knowledge-mobile-navs details:first-child{display:block}.knowledge-mobile-navs .knowledge-directory-links{padding-left:20px}}@media (width<=760px){.knowledge-shell{width:calc(100vw - 40px)}.knowledge-index-heading{grid-template-columns:1fr;align-items:start;gap:28px;padding:40px 0 30px}.knowledge-index-heading h1{font-size:44px}.knowledge-index-heading dl{grid-template-columns:repeat(2,1fr);width:100%}.knowledge-index-grid{grid-template-columns:1fr;gap:30px}.knowledge-reading-shell{width:calc(100vw - 40px);padding-top:24px}.knowledge-article-main{padding:0}.knowledge-back{margin-bottom:34px}.knowledge-article-header h1{font-size:39px}.knowledge-mobile-navs{grid-template-columns:1fr;gap:10px}.knowledge-markdown{font-size:15px}.knowledge-markdown h2{margin-top:40px;font-size:25px}.knowledge-markdown h3{margin-top:27px;font-size:19px}.knowledge-markdown table{white-space:nowrap;display:block;overflow-x:auto}.knowledge-pagination{grid-template-columns:1fr;margin-top:52px}.knowledge-pagination>a,.knowledge-pagination>span{min-height:96px}.knowledge-pagination>a:last-child{text-align:left}}@media (width<=480px){.knowledge-index-group>div>a{grid-template-columns:1fr;gap:8px}.knowledge-index-group em{padding:0}.knowledge-search{grid-template-columns:20px minmax(0,1fr)}.knowledge-search>span:last-child{display:none}.knowledge-article-header h1{font-size:34px}.knowledge-markdown .code-block pre{padding:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;transform:none}}
