@font-face{font-family:"DM Sans";font-display:swap;font-weight:100 1000;src:url(/_/fonts/dm-sans-latin-standard-normal.ca72d2bc.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"DM Sans";font-display:swap;font-weight:100 1000;font-style: italic;src:url(/_/fonts/dm-sans-latin-standard-italic.d5c53a50.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"DM Mono";font-display:swap;font-weight:400;src:url(/_/fonts/dm-mono-latin-400-normal.e1896b13.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"DM Mono";font-display:swap;font-weight:500;src:url(/_/fonts/dm-mono-latin-500-normal.9964608a.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_AMS-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_/fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_/fonts/KaTeX_Fraktur-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Fraktur-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_/fonts/KaTeX_Main-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_/fonts/KaTeX_Main-BoldItalic.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_/fonts/KaTeX_Main-Italic.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Main-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_/fonts/KaTeX_Math-BoldItalic.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_/fonts/KaTeX_Math-Italic.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/_/fonts/KaTeX_SansSerif-Bold.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/_/fonts/KaTeX_SansSerif-Italic.woff2) format("woff2")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_SansSerif-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Script-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Size1-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Size2-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Size3-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Size4-Regular.woff2) format("woff2")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_/fonts/KaTeX_Typewriter-Regular.woff2) format("woff2")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.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;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.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{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.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;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.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:.8333333333em}.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.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.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.6666666667em}.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.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.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.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.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:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.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.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.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.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.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:.4166666667em}.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:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.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:.8333333333em}.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.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.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:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.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.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.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.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.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.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.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{display:inline-block;width:.12em}.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{display:inline-block;min-width:1px}.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;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.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{border:.04em solid;box-sizing:border-box}.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{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;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{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.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{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}

/* Neutral, muted palette built for reading. Light is the default.
   The inline script in layout.ts always stamps data-theme on <html>. */

:root {
  color-scheme: light;
  --bg: #f6f6f4;
  --bg-2: #eeeeeb;
  --surface: #fbfbfa;
  --surface-2: #f0f0ed;
  --text: #1f2023;
  --muted: #5f6368;
  --faint: #8a8e94;
  --line: rgba(31, 32, 35, 0.08);
  --line-strong: rgba(31, 32, 35, 0.14);

  /* One quiet accent: slate. Enough to mark links and states, never loud. */
  --accent: #4a6079;
  --accent-ink: #ffffff;
  --accent-soft: rgba(74, 96, 121, 0.1);
  --ink: #1f2023;
  --ink-text: #f6f6f4;

  /* Market semantics, desaturated so charts read without shouting. */
  --bid: #3d8a6a;
  --ask: #b65a5f;
  --amber: #b08544;
  --violet: #7a6aa8;
  --social-youtube: #cc3b3b;

  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 32px;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 2px 6px rgba(0, 0, 0, 0.05), 0 16px 40px rgba(0, 0, 0, 0.09);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.08), 0 40px 90px -20px rgba(0, 0, 0, 0.22);

  /* Liquid glass material */
  --glass: rgba(255, 255, 255, 0.5);
  --glass-strong: rgba(255, 255, 255, 0.72);
  --glass-border: rgba(255, 255, 255, 0.7);
  --glass-edge: rgba(0, 0, 0, 0.06);
  --glass-highlight: rgba(255, 255, 255, 0.9);
  --glass-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 12px 40px -12px rgba(0, 0, 0, 0.14);
  --glass-shadow-lift: 0 2px 4px rgba(0, 0, 0, 0.05), 0 24px 60px -16px rgba(0, 0, 0, 0.2);

  /* Ambient field: barely-there warm and cool greys, so glass has depth
     without the page turning colourful. */
  --tint-a: rgba(120, 130, 120, 0.14);
  --tint-b: rgba(110, 125, 150, 0.14);
  --tint-c: rgba(150, 130, 125, 0.1);

  --font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-display: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "DM Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #131416;
  --bg-2: #1a1b1e;
  --surface: #1c1d20;
  --surface-2: #232428;
  --text: #e6e6e3;
  --muted: #a3a6ab;
  --faint: #7d8187;
  --line: rgba(255, 255, 255, 0.08);
  --line-strong: rgba(255, 255, 255, 0.14);

  --accent: #9fb3c9;
  --accent-ink: #131416;
  --accent-soft: rgba(159, 179, 201, 0.12);
  --ink: #e6e6e3;
  --ink-text: #131416;

  --bid: #6fb391;
  --ask: #d18a8e;
  --amber: #d0a86a;
  --violet: #a99bd0;

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 2px 6px rgba(0, 0, 0, 0.4), 0 16px 40px rgba(0, 0, 0, 0.5);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.5), 0 40px 90px -20px rgba(0, 0, 0, 0.8);

  --glass: rgba(36, 37, 41, 0.55);
  --glass-strong: rgba(36, 37, 41, 0.78);
  --glass-border: rgba(255, 255, 255, 0.12);
  --glass-edge: rgba(0, 0, 0, 0.5);
  --glass-highlight: rgba(255, 255, 255, 0.16);
  --glass-shadow: 0 1px 2px rgba(0, 0, 0, 0.5), 0 12px 40px -12px rgba(0, 0, 0, 0.7);
  --glass-shadow-lift: 0 2px 4px rgba(0, 0, 0, 0.5), 0 24px 60px -16px rgba(0, 0, 0, 0.8);

  --tint-a: rgba(120, 140, 130, 0.12);
  --tint-b: rgba(110, 130, 160, 0.12);
  --tint-c: rgba(150, 125, 120, 0.08);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: var(--bg);
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

body {
  margin: 0;
  background: transparent;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1.0625rem;
  line-height: 1.5;
  font-optical-sizing: auto;
  overflow-x: clip;
}

body[data-menu-open] {
  overflow: hidden;
}

img,
svg,
canvas,
video {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3,
h4,
p,
ul,
ol,
dl,
dd,
figure,
blockquote {
  margin: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

::selection {
  background: var(--accent-soft);
}

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 6px;
}

.skip {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 200;
  padding: 0.6rem 1rem;
  border-radius: 999px;
  background: var(--ink);
  color: var(--ink-text);
  font-weight: 600;
  transform: translateY(-200%);
}

.skip:focus-visible {
  transform: none;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 160ms;
}

@media (prefers-reduced-motion: reduce) {
  @view-transition {
    navigation: none;
  }
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* ── Ambient colour field: what the glass refracts ─────────────────── */
.ambient {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(60rem 36rem at 12% -6%, var(--tint-a), transparent 60%),
    radial-gradient(52rem 32rem at 88% 4%, var(--tint-b), transparent 60%),
    radial-gradient(44rem 28rem at 60% 22%, var(--tint-c), transparent 60%),
    var(--bg);
}

/* Shared liquid-glass surface. Blur behind, bright top edge, soft drop. */
.glass {
  background: var(--glass);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
}

/* ── Containers ────────────────────────────────────────────────────── */
.wrap {
  margin-inline: auto;
  width: min(72rem, calc(100% - 3rem));
}

.wrap--reading {
  margin-inline: auto;
  width: min(44rem, calc(100% - 3rem));
}

@media (max-width: 40rem) {
  .wrap,
  .wrap--reading {
    width: calc(100% - 2rem);
  }
}

/* ── Type ──────────────────────────────────────────────────────────── */
.display {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.035em;
  line-height: 1.02;
  text-wrap: balance;
  color: var(--text);
}

.accent {
  color: var(--accent);
}

.lede {
  margin-top: 1.25rem;
  max-width: 56ch;
  font-size: 1.25rem;
  line-height: 1.5;
  font-weight: 400;
  color: var(--muted);
  text-wrap: pretty;
}

.eyebrow,
.label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.eyebrow {
  color: var(--accent);
}

.label {
  color: var(--faint);
}

.num {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

.mono-link {
  flex-shrink: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--accent);
  transition: opacity 150ms ease;
}

.mono-link:hover {
  opacity: 0.75;
}

/* ── Page rhythm ───────────────────────────────────────────────────── */
.page-hero {
  padding: 8.5rem 0 3rem;
}

.page-hero--reading {
  padding-bottom: 2rem;
}

.page-hero--tight {
  padding-bottom: 1.5rem;
}

.page-title {
  margin-top: 0.9rem;
  font-size: clamp(2.6rem, 5.6vw, 4.25rem);
  max-width: 18ch;
}

.section {
  margin-top: 6rem;
}

.section--band {
  margin-top: 6rem;
  padding: 5rem 0;
  background: color-mix(in srgb, var(--bg-2) 55%, transparent);
}

.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.section-head--center {
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 2.5rem;
}

.section-title {
  margin-top: 0.5rem;
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--text);
  text-wrap: balance;
}

.section-sub {
  margin-top: 0.6rem;
  max-width: 56ch;
  font-size: 1.1rem;
  line-height: 1.5;
  color: var(--muted);
}

.section-head--center .section-sub {
  margin-inline: auto;
}

.cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
}

.hr-label {
  margin-bottom: 1rem;
  color: var(--faint);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (max-width: 640px) {
  .page-hero {
    padding-top: 6.5rem;
  }
  .section,
  .section--band {
    margin-top: 4rem;
  }
  .section--band {
    padding: 3.5rem 0;
  }
  .section-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }
  .section-head--center {
    align-items: center;
  }
}

/* Floating liquid-glass islands. Behaviour in src/client/nav.ts. */

.hdr {
  position: fixed;
  inset-inline: 0;
  top: 1rem;
  z-index: 100;
  pointer-events: none;
}

.shell {
  pointer-events: auto;
  position: relative;
  margin-inline: auto;
  width: min(72rem, calc(100% - 2rem));
  transform: translate3d(0, 0, 0);
  opacity: 1;
  will-change: transform, opacity;
}

:root.js-nav-ready .shell {
  transition:
    transform 380ms var(--ease),
    opacity 240ms ease;
}

.shell.is-hidden {
  transform: translate3d(0, calc(-100% - 1.5rem), 0);
  opacity: 0;
  pointer-events: none;
}

.navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

/* The material: blur + saturate behind, a bright top edge, a soft drop. */
.island {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.4rem;
  border-radius: 999px;
  background: var(--glass);
  backdrop-filter: blur(28px) saturate(190%);
  -webkit-backdrop-filter: blur(28px) saturate(190%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
}

:root.js-nav-ready .island {
  transition: box-shadow 300ms ease;
}

.shell.is-scrolled .island {
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow-lift);
}

.island::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.35), transparent 38%, transparent 62%, rgba(255, 255, 255, 0.18));
  opacity: 0.9;
}

:root[data-theme="dark"] .island::before {
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.12), transparent 40%, transparent 65%, rgba(255, 255, 255, 0.06));
}

.island > * {
  position: relative;
}

.island--brand {
  padding: 0.4rem 1rem 0.4rem 0.6rem;
}

.island--links {
  gap: 0.15rem;
}

.island--actions {
  gap: 0.2rem;
}

.link {
  display: inline-flex;
  align-items: center;
  height: 2.5rem;
  padding-inline: 1.1rem;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text);
  transition:
    background-color 180ms ease,
    box-shadow 180ms ease;
}

.link:hover {
  background: rgba(255, 255, 255, 0.45);
}

:root[data-theme="dark"] .link:hover {
  background: rgba(255, 255, 255, 0.08);
}

.link[aria-current="page"] {
  font-weight: 600;
  background: var(--glass-strong);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Wordmark */
.wm {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
}

.wm-logo {
  width: auto;
  height: 1.6rem;
  object-fit: contain;
}

.wm--footer .wm-logo {
  height: 1.75rem;
}

.wm-text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}

.wm-name {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.wm-dot,
.wm-tld {
  color: var(--accent);
}

.wm-by {
  margin-top: 0.2rem;
  font-size: 0.62rem;
  font-weight: 500;
  color: var(--faint);
}

/* Connect dropdown */
.dd {
  position: relative;
}

.dd-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  height: 2.5rem;
  padding-inline: 1rem;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text);
  transition: background-color 180ms ease;
}

.dd-btn:hover,
.dd[data-open] .dd-btn {
  background: rgba(255, 255, 255, 0.45);
}

:root[data-theme="dark"] .dd-btn:hover,
:root[data-theme="dark"] .dd[data-open] .dd-btn {
  background: rgba(255, 255, 255, 0.08);
}

.dd-chev {
  width: 1rem;
  height: 1rem;
  transition: transform 250ms var(--ease);
}

.dd[data-open] .dd-chev {
  transform: rotate(180deg);
}

.dd-panel {
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 50;
  width: 17rem;
  padding-top: 0.75rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform-origin: top right;
  transform: translateY(0.3rem) scale(0.98);
  transition:
    opacity 180ms var(--ease),
    transform 180ms var(--ease),
    visibility 180ms;
}

.dd[data-open] .dd-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}

.dd-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.15rem;
  padding: 0.5rem;
  border-radius: var(--r-lg);
  background: var(--glass-strong);
  backdrop-filter: blur(28px) saturate(190%);
  -webkit-backdrop-filter: blur(28px) saturate(190%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow-lift);
}

.dd-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 0.7rem;
  border-radius: var(--r-sm);
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text);
  transition: background-color 150ms ease;
}

.dd-link:hover {
  background: rgba(255, 255, 255, 0.5);
}

:root[data-theme="dark"] .dd-link:hover {
  background: rgba(255, 255, 255, 0.08);
}

.sub {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 2.5rem;
  margin-left: 0.15rem;
  padding-inline: 1.1rem;
  border-radius: 999px;
  background: var(--ink);
  color: var(--ink-text);
  font-size: 0.92rem;
  font-weight: 600;
  box-shadow: 0 6px 18px -8px rgba(0, 0, 0, 0.5);
  transition:
    transform 180ms var(--ease),
    opacity 150ms ease;
}

.sub:hover {
  transform: translateY(-1px);
  opacity: 0.9;
}

/* Theme toggle */
.tt {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  color: var(--text);
  transition: background-color 180ms ease;
}

.tt:hover {
  background: rgba(255, 255, 255, 0.45);
}

:root[data-theme="dark"] .tt:hover {
  background: rgba(255, 255, 255, 0.08);
}

.tt svg {
  position: absolute;
  width: 1.1rem;
  height: 1.1rem;
  transition:
    opacity 200ms ease,
    transform 200ms ease;
}

.tt-moon {
  opacity: 0;
  transform: rotate(-16deg) scale(0.8);
}

:root[data-theme="dark"] .tt-sun {
  opacity: 0;
  transform: rotate(16deg) scale(0.8);
}

:root[data-theme="dark"] .tt-moon {
  opacity: 1;
  transform: none;
}

/* Burger + drawer */
.burger {
  position: relative;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  transition: background-color 180ms ease;
}

.burger:hover {
  background: rgba(255, 255, 255, 0.45);
}

.burger-bar {
  position: absolute;
  left: 50%;
  width: 1.1rem;
  height: 2px;
  border-radius: 2px;
  background: var(--text);
  transform: translateX(-50%);
  transition:
    top 200ms var(--ease),
    transform 200ms var(--ease);
}

.burger-bar--top {
  top: calc(50% - 4px);
}

.burger-bar--bot {
  top: calc(50% + 4px);
}

.burger[aria-expanded="true"] .burger-bar--top {
  top: 50%;
  transform: translateX(-50%) rotate(45deg);
}

.burger[aria-expanded="true"] .burger-bar--bot {
  top: 50%;
  transform: translateX(-50%) rotate(-45deg);
}

.drawer {
  position: absolute;
  inset-inline: 0;
  top: calc(100% + 0.6rem);
  z-index: 40;
  transform-origin: top;
  transform: translateY(-0.3rem) scale(0.985);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 200ms var(--ease),
    transform 200ms var(--ease),
    visibility 200ms;
}

.drawer[data-open] {
  transform: none;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.drawer-inner {
  max-height: calc(100dvh - 7rem);
  overflow-y: auto;
  padding: 0.75rem;
  border-radius: var(--r-xl);
  background: var(--glass-strong);
  backdrop-filter: blur(28px) saturate(190%);
  -webkit-backdrop-filter: blur(28px) saturate(190%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow-lift);
}

.drawer-links {
  display: grid;
  gap: 0.15rem;
}

.drawer-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 3rem;
  padding-inline: 1rem;
  border-radius: 999px;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text);
}

.drawer-link:hover {
  background: rgba(255, 255, 255, 0.5);
}

.drawer-link[aria-current="page"] {
  color: var(--accent);
  background: var(--accent-soft);
}

.drawer-hr {
  height: 1px;
  margin-block: 0.6rem;
  background: var(--line);
}

.drawer-socials {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.15rem;
}

.drawer-social {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.6rem;
  padding-inline: 1rem;
  border-radius: 999px;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--text);
}

.drawer-social:hover {
  background: rgba(255, 255, 255, 0.5);
}

.drawer-sub {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 3rem;
  margin-top: 0.6rem;
  border-radius: 999px;
  background: var(--ink);
  color: var(--ink-text);
  font-weight: 600;
}

.desktop {
  display: none;
}

@media (min-width: 960px) {
  .desktop {
    display: flex;
  }
  .mobile,
  .drawer {
    display: none;
  }
}

@media (max-width: 640px) {
  .hdr {
    top: 0.75rem;
  }
  .shell {
    width: calc(100% - 1.25rem);
  }
}

/* ── Buttons ───────────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 3rem;
  padding: 0 1.4rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 1rem;
  font-weight: 600;
  white-space: nowrap;
  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    color 150ms ease,
    transform 150ms ease,
    box-shadow 150ms ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn-primary {
  background: var(--ink);
  color: var(--ink-text);
  box-shadow: var(--shadow-sm);
}

.btn-primary:hover {
  box-shadow: var(--shadow-md);
}

.btn-ghost {
  background: var(--glass);
  color: var(--text);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
}

.btn-ghost:hover {
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow-lift);
}

.btn-accent {
  background: var(--accent);
  color: var(--accent-ink);
}

/* ── Tags, chips, status ───────────────────────────────────────────── */
.tag {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: var(--surface-2);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
}

.tag--accent {
  background: var(--accent-soft);
  color: var(--accent);
}

.status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--faint);
}

.status::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: var(--faint);
}

.status--live {
  color: var(--accent);
}

.status--live::before {
  background: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-soft);
}

.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  list-style: none;
  padding: 0;
  margin-top: 1.25rem;
}

.tags li {
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  background: var(--surface-2);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--muted);
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  list-style: none;
  padding: 0;
  margin-top: 1.5rem;
}

.chips a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.5rem;
  padding: 0 1rem;
  border-radius: 999px;
  background: var(--glass);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text);
  transition:
    box-shadow 150ms ease,
    transform 150ms ease;
}

.chips a:hover {
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow-lift);
}

.chips a .num {
  font-size: 0.78rem;
  color: var(--faint);
}

/* ── Cards ─────────────────────────────────────────────────────────── */
.grid {
  display: grid;
  gap: 1.25rem;
}

.grid--2 {
  grid-template-columns: repeat(2, 1fr);
}
.grid--3 {
  grid-template-columns: repeat(3, 1fr);
}
.grid--4 {
  grid-template-columns: repeat(4, 1fr);
}

.stack {
  display: grid;
  gap: 1rem;
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1.6rem;
  border-radius: var(--r-lg);
  background: var(--glass);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
  transition:
    transform 220ms var(--ease),
    box-shadow 220ms ease;
}

a.card:hover {
  transform: translateY(-3px);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow-lift);
}

/* Note card */
.nc-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.nc-step {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--faint);
}

.nc-title {
  margin-top: 1.1rem;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--text);
  text-wrap: balance;
}

.nc-body {
  flex: 1;
  margin-top: 0.6rem;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--muted);
}

.nc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  margin-top: 1.25rem;
  font-size: 0.82rem;
  color: var(--faint);
}

.nc-video {
  color: var(--accent);
  font-weight: 600;
}

/* System card */
.sc--live {
  box-shadow: 0 0 0 2px var(--accent) inset;
}

.sc-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.sc-markets {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--faint);
}

.sc-code {
  margin-top: 1.5rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--accent);
}

.sc-name {
  margin-top: 0.25rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--text);
}

.sc-tagline {
  margin-top: 0.6rem;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--muted);
}

.sc-facts {
  flex: 1;
  display: grid;
  gap: 0.75rem;
  margin-top: 1.4rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--line);
}

.sc-facts dt {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--faint);
}

.sc-facts dd {
  margin-top: 0.15rem;
  font-size: 0.95rem;
  color: var(--text);
}

.sc-foot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.4rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--line);
}

.sc-price {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.sc-amount {
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--text);
}

.sc-note {
  font-size: 0.78rem;
  color: var(--faint);
}

/* ── Misc blocks ───────────────────────────────────────────────────── */
.panel {
  padding: 3rem;
  border-radius: var(--r-xl);
  background: var(--glass);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
  text-align: center;
}

.panel .section-sub,
.panel .cta-row {
  margin-inline: auto;
  justify-content: center;
}

.disc {
  padding: 1rem 1.25rem;
  border-radius: var(--r-md);
  background: var(--bg-2);
  font-size: 0.9rem;
  line-height: 1.55;
  color: var(--muted);
}

.kv {
  display: grid;
  gap: 0.75rem;
}

.kv div {
  display: grid;
  grid-template-columns: 10rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-radius: var(--r-md);
  background: var(--bg-2);
}

.kv dt {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--faint);
}

.kv dd {
  color: var(--text);
}

.plain {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 0.25rem;
}

.steps,
.rules {
  display: grid;
  gap: 1rem;
  padding-left: 0;
  list-style: none;
  counter-reset: n;
}

.steps li,
.rules li {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1.25rem 1.5rem;
  border-radius: var(--r-md);
  background: var(--bg-2);
  line-height: 1.55;
  color: var(--muted);
  counter-increment: n;
}

.rules li {
  grid-template-columns: 2.5rem minmax(0, 18rem) minmax(0, 1fr);
}

.steps li::before,
.rules li::before {
  content: counter(n, decimal-leading-zero);
  font-family: var(--font-mono);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--accent);
  padding-top: 0.15rem;
}

.steps strong,
.rules strong {
  color: var(--text);
  font-weight: 600;
}

.rules strong {
  font-size: 1.05rem;
  letter-spacing: -0.01em;
}

/* Reading paths (home) */
.paths {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
  list-style: none;
  padding: 0;
}

.paths a {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  height: 100%;
  padding: 1.4rem;
  border-radius: var(--r-lg);
  background: var(--glass);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
  transition:
    transform 200ms var(--ease),
    box-shadow 200ms ease;
}

.paths a:hover {
  transform: translateY(-3px);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow-lift);
}

.paths-title {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.paths-sum {
  flex: 1;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--muted);
}

.paths-n {
  margin-top: 0.5rem;
  font-size: 0.78rem;
  color: var(--faint);
}

/* Video facade */
.yt {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--r-lg);
  background: var(--surface-2);
  box-shadow: var(--shadow-md);
}

.yt-btn {
  position: absolute;
  inset: 0;
  width: 100%;
  display: grid;
  place-items: center;
}

.yt-thumb {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.yt-play {
  position: relative;
  display: grid;
  place-items: center;
  width: 4.25rem;
  height: 4.25rem;
  border-radius: 999px;
  background: #fff;
  color: #111;
  box-shadow: var(--shadow-md);
}

.yt-play svg {
  width: 1.6rem;
  height: 1.6rem;
  margin-left: 0.2rem;
}

.yt-label {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 600;
}

.yt-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Footer */
.ft {
  margin-top: 7rem;
  background: var(--bg-2);
}

.ft-inner {
  padding-block: 3.5rem 2rem;
}

.ft-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 3rem;
}

.ft-tag {
  margin-top: 1rem;
  max-width: 30ch;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--muted);
}

.ft-head {
  margin-bottom: 0.9rem;
}

.ft-list {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.ft-link {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--muted);
  transition: color 150ms ease;
}

.ft-link:hover {
  color: var(--text);
}

.ft-ext {
  margin-left: 0.3rem;
  opacity: 0.6;
}

.ft-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}

.ft-legal {
  display: grid;
  gap: 0.2rem;
  font-size: 0.8rem;
  color: var(--faint);
}

.ft-socials {
  display: flex;
  gap: 0.2rem;
}

.ft-social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  color: var(--faint);
  transition:
    color 150ms ease,
    background-color 150ms ease;
}

.ft-social:hover {
  color: var(--text);
  background: var(--surface);
}

@media (max-width: 1024px) {
  .grid--3,
  .grid--4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .paths {
    grid-template-columns: repeat(3, 1fr);
  }
  .rules li {
    grid-template-columns: 2.5rem minmax(0, 1fr);
  }
  .rules li span {
    grid-column: 2;
  }
}

@media (max-width: 768px) {
  .ft-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
  .ft-brand {
    grid-column: span 2;
  }
  .ft-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .paths {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .grid--2,
  .grid--3,
  .grid--4,
  .paths {
    grid-template-columns: 1fr;
  }
  .card {
    padding: 1.35rem;
  }
  .panel {
    padding: 2rem 1.5rem;
  }
  .kv div {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
}

/* ── Home hero: centered copy, the live field framed like a product ── */
.ph {
  padding: 8.5rem 0 0;
  text-align: center;
}

.ph-status {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  background: var(--glass);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}

.ph-status::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: var(--faint);
}

.ph-status[data-state="live"] {
  background: var(--accent-soft);
  color: var(--accent);
}

.ph-status[data-state="live"]::before {
  background: var(--accent);
}

.ph-status[data-state="connecting"]::before,
.ph-status[data-state="reconnecting"]::before {
  background: var(--amber);
}

.ph-title {
  margin: 1.5rem auto 0;
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  max-width: 14ch;
}

.ph-lede {
  margin: 1.5rem auto 0;
  max-width: 46ch;
  font-size: 1.25rem;
  line-height: 1.5;
  color: var(--muted);
  text-wrap: pretty;
}

.ph .cta-row {
  justify-content: center;
}

.ph-device {
  position: relative;
  margin: 3.5rem auto 0;
  width: min(72rem, calc(100% - 3rem));
  aspect-ratio: 16 / 8.5;
  overflow: hidden;
  border-radius: var(--r-xl);
  background: #07090c;
  box-shadow: var(--shadow-lg);
  isolation: isolate;
}

.ph-stage,
.ph-canvas,
.ph-static {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ph-canvas {
  opacity: 0;
  transition: opacity 900ms ease;
}

.ph[data-hero="live"] .ph-canvas {
  opacity: 1;
}

.ph-static {
  background:
    radial-gradient(90% 60% at 50% 112%, rgba(0, 210, 106, 0.75), rgba(0, 210, 106, 0.15) 45%, transparent 70%),
    radial-gradient(90% 60% at 50% -12%, rgba(255, 92, 92, 0.65), rgba(255, 92, 92, 0.12) 45%, transparent 70%),
    #07090c;
  transition: opacity 900ms ease;
}

.ph[data-hero="live"] .ph-static {
  opacity: 0;
}

.ph-device-label {
  position: absolute;
  left: 1.25rem;
  top: 1.25rem;
  z-index: 2;
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  text-align: left;
}

.ph-ticker {
  position: absolute;
  inset-inline: 1.25rem;
  bottom: 1.25rem;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  text-align: left;
}

.ph-ticker div {
  padding: 0.9rem 1.1rem;
  border-radius: var(--r-md);
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(14px);
  color: #fff;
}

.ph-ticker dt {
  font-size: 0.72rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.6);
}

.ph-ticker dd {
  margin-top: 0.2rem;
  font-size: 1.05rem;
  font-weight: 500;
}

.ph-ticker dd[data-sign="up"] {
  color: #6fb391;
}

.ph-ticker dd[data-sign="down"] {
  color: #d18a8e;
}

/* ── Research index feature ───────────────────────────────────────── */
.feature {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  padding: 2.5rem;
  border-radius: var(--r-xl);
  background: var(--glass);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
  transition:
    transform 200ms var(--ease),
    box-shadow 200ms ease;
}

.feature:hover {
  transform: translateY(-3px);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow-lift);
}

.feature-kicker {
  display: flex;
  gap: 0.4rem;
}

.feature-title {
  margin-top: 1rem;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--text);
  text-wrap: balance;
}

.feature-desc {
  margin-top: 0.8rem;
  max-width: 60ch;
  font-size: 1.05rem;
  line-height: 1.5;
  color: var(--muted);
}

.feature-meta {
  margin-top: 1rem;
  font-size: 0.85rem;
  color: var(--faint);
}

.sr-eyebrow {
  display: block;
  margin-top: 1.5rem;
}

.sr-meta {
  margin-top: 1.25rem;
  font-size: 0.85rem;
  color: var(--faint);
}

/* ── Note ──────────────────────────────────────────────────────────── */
.note {
  padding: 8.5rem 0 5rem;
}

.note-pos {
  margin-left: 0.25rem;
  color: var(--faint);
  font-weight: 500;
}

.note-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.9rem;
  margin-top: 1.5rem;
  font-size: 0.88rem;
  color: var(--faint);
}

.note-updated {
  color: var(--accent);
  font-weight: 600;
}

.note-title {
  margin-top: 1.25rem;
  font-size: clamp(2.2rem, 4.8vw, 3.4rem);
}

.note-video {
  margin-top: 2.25rem;
}

.toc {
  margin: 2.25rem 0;
  padding: 1.25rem 1.5rem;
  border-radius: var(--r-md);
  background: var(--glass);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
}

.toc ol {
  list-style: none;
  padding: 0;
  margin-top: 0.6rem;
  display: grid;
  gap: 0.35rem;
}

.toc a {
  font-size: 0.98rem;
  font-weight: 500;
  color: var(--text);
  transition: color 150ms ease;
}

.toc a:hover {
  color: var(--accent);
}

.toc-sub {
  padding-left: 1rem;
}

.note .prose {
  margin-top: 2.25rem;
}

.note-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 4rem;
}

.note-nav-card--next {
  text-align: right;
}

.note-nav-title {
  margin-top: 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--text);
}

.related {
  margin-top: 3rem;
}

.note-foot {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 4rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}

/* ── Prose ─────────────────────────────────────────────────────────── */
.prose {
  font-size: 1.12rem;
  line-height: 1.7;
  color: var(--text);
}

.prose > :first-child {
  margin-top: 0;
}

.prose :is(h1, h2, h3, h4) {
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--text);
  text-wrap: balance;
}

.prose h2 {
  margin: 3rem 0 1rem;
  font-size: 1.85rem;
  line-height: 1.15;
}

.prose h3 {
  margin: 2.2rem 0 0.7rem;
  font-size: 1.35rem;
  line-height: 1.2;
}

.prose h4 {
  margin: 1.6rem 0 0.5rem;
  font-size: 1.1rem;
}

.prose p {
  margin: 0 0 1.15rem;
}

.prose strong {
  font-weight: 700;
}

.prose a {
  color: var(--accent);
  font-weight: 500;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.2em;
  transition: text-decoration-color 150ms ease;
}

.prose a:hover {
  text-decoration-color: var(--accent);
}

.prose :is(h2, h3, h4) a {
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
}

.prose :is(h2, h3, h4) a::after {
  content: " #";
  color: var(--accent);
  font-weight: 500;
  opacity: 0;
  transition: opacity 150ms ease;
}

.prose :is(h2, h3, h4) a:hover::after {
  opacity: 1;
}

.prose ul,
.prose ol {
  margin: 1rem 0;
  padding-left: 1.4rem;
}

.prose li {
  margin: 0.35rem 0;
}

.prose li::marker {
  color: var(--faint);
}

.prose blockquote {
  margin: 1.5rem 0;
  padding: 1rem 1.4rem;
  border-radius: var(--r-md);
  background: var(--bg-2);
  color: var(--muted);
}

.prose code {
  padding: 0.12rem 0.4rem;
  border-radius: 6px;
  background: var(--surface-2);
  font-family: var(--font-mono);
  font-size: 0.86em;
}

.prose pre {
  position: relative;
  overflow-x: auto;
  margin: 1.5rem 0;
  padding: 1.1rem 1.3rem;
  border-radius: var(--r-md);
  background: var(--bg-2) !important;
  font-family: var(--font-mono);
  font-size: 0.88rem;
  line-height: 1.7;
}

.prose pre code {
  padding: 0;
  background: transparent;
  color: inherit;
}

.shiki,
.shiki span {
  color: var(--shiki-light);
  font-style: var(--shiki-light-font-style);
  font-weight: var(--shiki-light-font-weight);
  text-decoration: var(--shiki-light-text-decoration);
}

:root[data-theme="dark"] .shiki,
:root[data-theme="dark"] .shiki span {
  color: var(--shiki-dark);
  font-style: var(--shiki-dark-font-style);
  font-weight: var(--shiki-dark-font-weight);
  text-decoration: var(--shiki-dark-text-decoration);
}

.code-copy {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  background: var(--surface);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 600;
  box-shadow: var(--shadow-sm);
  opacity: 0;
  transition: opacity 150ms ease;
}

.prose pre:hover .code-copy,
.code-copy:focus-visible {
  opacity: 1;
}

.prose table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  margin: 1.5rem 0;
}

.prose th,
.prose td {
  text-align: left;
  padding: 0.6rem 0.75rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}

.prose th {
  font-weight: 600;
}

.prose hr {
  margin: 2.5rem 0;
  border: 0;
  border-top: 1px solid var(--line);
}

.prose .katex-display {
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0.2rem 0;
}

/* ── System page ───────────────────────────────────────────────────── */
.sp-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20rem;
  gap: 3rem;
  align-items: end;
  margin-top: 1.5rem;
}

.sp-eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.85rem;
  color: var(--faint);
}

.sp-code {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--accent);
}

.sp-buy {
  padding: 1.6rem;
}

.sp-price {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin-top: 0.75rem;
}

.sp-amount {
  font-size: 1.9rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--text);
}

.sp-note {
  font-size: 0.82rem;
  color: var(--faint);
}

.sp-btn {
  width: 100%;
  margin-top: 1.25rem;
}

.sp-fine {
  margin-top: 0.9rem;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--muted);
}

.sp-preview {
  margin-top: 2.5rem;
}

.sp-preview-head {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 1rem;
}

.sp-terminal {
  min-height: 28rem;
  display: grid;
  place-items: center;
  border-radius: var(--r-xl);
  background: var(--bg-2);
}

.sp-terminal-placeholder {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--faint);
}

.sp-preview-disc {
  margin-top: 1rem;
}

.sp-cols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16rem;
  gap: 4rem;
  align-items: start;
}

.sp-prose {
  max-width: 64ch;
}

.sp-facts {
  position: sticky;
  top: 5.5rem;
}

.sp-facts dl {
  display: grid;
  gap: 1.25rem;
  padding: 1.5rem;
  border-radius: var(--r-lg);
  background: var(--glass);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  box-shadow:
    inset 0 1px 0 var(--glass-highlight),
    inset 0 0 0 1px var(--glass-border),
    var(--glass-shadow);
}

.sp-facts dd {
  margin-top: 0.4rem;
  font-size: 0.95rem;
  color: var(--text);
}

/* ── About ─────────────────────────────────────────────────────────── */
.ab-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20rem;
  gap: 3rem;
  align-items: center;
}

.ab-card {
  align-items: center;
  text-align: center;
  box-shadow: var(--shadow-md);
  border-color: transparent;
}

.ab-headshot {
  width: 10rem;
  height: 10rem;
  border-radius: 999px;
  object-fit: cover;
  margin-bottom: 1.25rem;
}

.ab-card-name {
  margin-top: 0.4rem;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text);
}

.ab-card-role {
  margin-top: 0.15rem;
  font-size: 0.9rem;
  color: var(--muted);
}

.ab-card-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  width: 100%;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.ab-card-facts dt {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--faint);
}

.ab-card-facts dd {
  margin-top: 0.2rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text);
}

.ab-story {
  display: grid;
  grid-template-columns: 22rem minmax(0, 1fr);
  gap: 3rem;
  align-items: start;
}

.ab-photo {
  position: sticky;
  top: 5.5rem;
  overflow: hidden;
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-md);
}

.ab-photo img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.ab-photo figcaption {
  display: grid;
  gap: 0.15rem;
  padding: 0.9rem 1.1rem;
  background: var(--surface);
  font-size: 0.82rem;
  color: var(--faint);
}

.ab-photo figcaption span:first-child {
  color: var(--text);
  font-weight: 600;
}

.ab-quote {
  margin-top: 1.5rem;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text);
}

.ab-prose {
  margin-top: 1.5rem;
  display: grid;
  gap: 1rem;
  max-width: 60ch;
  font-size: 1.08rem;
  line-height: 1.65;
  color: var(--muted);
}

.ab-focus h3 {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}

.ab-focus p {
  margin-top: 0.6rem;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--muted);
}

.ab-now {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 3rem;
  align-items: start;
}

.ab-now .section-head {
  margin-bottom: 0;
}

@media (max-width: 1024px) {
  .ph-ticker {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 900px) {
  .sp-head,
  .sp-cols,
  .ab-hero,
  .ab-story,
  .ab-now {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .sp-facts,
  .ab-photo {
    position: static;
  }
  .ab-card,
  .ab-photo {
    max-width: 22rem;
  }
  .note-nav {
    grid-template-columns: 1fr;
  }
  .note-nav-card--next {
    text-align: left;
  }
  .note-nav > span {
    display: none;
  }
}

@media (max-width: 640px) {
  .ph {
    padding-top: 6.5rem;
  }
  .ph-device {
    width: calc(100% - 2rem);
    aspect-ratio: 4 / 5;
    border-radius: var(--r-lg);
  }
  .ph-ticker {
    inset-inline: 0.75rem;
    bottom: 0.75rem;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
  .ph-ticker div {
    padding: 0.6rem 0.8rem;
  }
  .ph-ticker div:nth-child(4) {
    display: none;
  }
  .feature {
    flex-direction: column;
    align-items: flex-start;
    padding: 1.5rem;
  }
  .note {
    padding-top: 6.5rem;
  }
  .sp-preview-head {
    flex-direction: column;
    gap: 0.25rem;
  }
}

/* QD·1 paper-trading terminal. Mounted by src/client/terminal/terminal.ts. */

.qt {
  display: grid;
  gap: 0.75rem;
  padding: 0.75rem;
  border-radius: var(--r-xl);
  border: 1px solid var(--line);
  background: var(--surface);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--muted);
  min-height: 0;
  place-items: stretch;
}

.qt-bar,
.qt-ctl {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.6rem 0.9rem;
  border-radius: var(--r-md);
  border: 1px solid var(--line);
  background: var(--surface-2);
}

.qt-bar-l,
.qt-bar-r,
.qt-ctl-r {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.qt-mark {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: var(--brand);
  color: var(--brand-contrast);
  font-weight: 800;
  font-size: 1rem;
}

.qt-title {
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--text);
}

.qt-sub {
  margin-top: 0.15rem;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  color: var(--faint);
}

.qt-seg {
  display: inline-flex;
  padding: 0.15rem;
  border-radius: 0.5rem;
  border: 1px solid var(--line);
  background: var(--surface);
}

.qt-seg button {
  padding: 0.3rem 0.65rem;
  border-radius: 0.35rem;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
  transition: color 150ms ease, background-color 150ms ease;
}

.qt-seg button:hover {
  color: var(--text);
}

.qt-seg button[aria-pressed="true"] {
  background: var(--brand-soft);
  color: var(--brand);
}

.qt-price {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text);
}

.qt-chg {
  margin-left: 0.4rem;
  font-size: 0.7rem;
  font-weight: 600;
}

[data-sign="up"] {
  color: var(--bid);
}

[data-sign="down"] {
  color: var(--ask);
}

.qt-status {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.3rem 0.6rem;
  border-radius: 0.4rem;
  border: 1px solid var(--line);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.qt-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 999px;
  background: var(--faint);
}

.qt-dot[data-state="live"] {
  background: var(--bid);
  box-shadow: 0 0 8px var(--bid);
}

.qt-dot[data-state="reconnecting"],
.qt-dot[data-state="connecting"] {
  background: var(--amber);
}

.qt-params {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.1rem;
  margin: 0;
}

.qt-params dt {
  display: inline;
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.qt-params dd {
  display: inline;
  margin-left: 0.35rem;
  color: var(--text);
}

.qt-clock {
  color: var(--faint);
}

.qt-btn {
  padding: 0.4rem 0.8rem;
  border-radius: 0.4rem;
  border: 1px solid var(--line-strong);
  background: var(--surface);
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 620;
  color: var(--text);
  transition: border-color 150ms ease, background-color 150ms ease;
}

.qt-btn:hover {
  border-color: color-mix(in srgb, var(--brand) 55%, var(--line-strong));
}

.qt-btn[aria-pressed="true"] {
  background: var(--brand-soft);
  color: var(--brand);
}

.qt-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 19rem;
  gap: 0.75rem;
  min-height: 0;
}

.qt-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  border-radius: var(--r-md);
  border: 1px solid var(--line);
  background: var(--surface-2);
  overflow: hidden;
}

.qt-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.8rem;
  border-bottom: 1px solid var(--line);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.qt-panel svg {
  display: block;
  width: 100%;
  flex: 1;
}

.qt-hero svg {
  min-height: 20rem;
}

.qt-axis {
  font-family: var(--font-mono);
  font-size: 9px;
  fill: var(--faint);
}

.qt-legend {
  display: inline-flex;
  gap: 0.6rem;
  text-transform: none;
  letter-spacing: 0.04em;
}

.qt-legend i {
  display: inline-block;
  width: 0.55rem;
  height: 2px;
  margin-right: 0.3rem;
  vertical-align: middle;
  background: var(--c);
}

.qt-side svg {
  height: 6.5rem;
  flex: 0 0 auto;
}

.qt-pnl {
  font-size: 0.9rem;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text);
}

.qt-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin: 0;
  padding: 0.7rem 0.8rem;
  border-top: 1px solid var(--line);
}

.qt-kpis dt {
  font-size: 0.56rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.qt-kpis dd {
  margin: 0.25rem 0 0;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text);
}

.qt-pos {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0.8rem;
  border-top: 1px solid var(--line);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--faint);
}

.qt-pos .num {
  color: var(--text);
}

.qt-log-head {
  border-top: 1px solid var(--line);
}

.qt-log {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0;
  flex: 1;
  min-height: 6rem;
  max-height: 12rem;
  overflow-y: auto;
}

.qt-log li {
  display: grid;
  grid-template-columns: 3.6rem 2.8rem 1fr 4.2rem 4.5rem;
  gap: 0.4rem;
  padding: 0.3rem 0.8rem;
  font-size: 0.62rem;
  border-left: 2px solid transparent;
}

.qt-log li.is-win {
  border-left-color: var(--bid);
}

.qt-log li.is-loss {
  border-left-color: var(--ask);
}

.qt-log li .num {
  text-align: right;
  color: var(--text);
}

.qt-log li.is-win .num {
  color: var(--bid);
}

.qt-log li.is-loss .num {
  color: var(--ask);
}

.qt-minis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
}

.qt-mini svg {
  height: 5.5rem;
}

.qt-foot {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 0.25rem;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  color: var(--faint);
}

.qt-foot b {
  font-weight: 600;
  color: var(--text);
}

@media (max-width: 960px) {
  .qt-main {
    grid-template-columns: 1fr;
  }
  .qt-minis {
    grid-template-columns: repeat(2, 1fr);
  }
  .qt-bar,
  .qt-ctl {
    flex-wrap: wrap;
  }
}

@media (max-width: 640px) {
  .qt {
    padding: 0.5rem;
  }
  .qt-hero svg {
    min-height: 14rem;
  }
  .qt-minis {
    grid-template-columns: 1fr;
  }
  .qt-log li {
    grid-template-columns: 3.4rem 2.6rem 1fr 4rem;
  }
  .qt-log li span:nth-child(4) {
    display: none;
  }
}
