:root{--bg-primary:#000;--bg-overlay:#00000080;--text-primary:#fff;--text-bright:#f7fafc;--text-muted:#a0aec0;--text-light:#cbd5e0;--text-subtle:#e2e8f0;--border-color:#5e5e5e;--code-bg:#2d3748;--code-bg-dark:#1a1d24;--table-bg:#1a1d24;--border-subtle:#2d3748}@media (prefers-color-scheme:light){:root{--bg-primary:#fff;--bg-overlay:#ffffffbf;--text-primary:#000;--text-bright:#1a202c;--text-muted:#4a5568;--text-light:#2d3748;--text-subtle:#1a202c;--border-color:#a1a1a1;--code-bg:#f7fafc;--code-bg-dark:#e2e8f0;--table-bg:#f7fafc;--border-subtle:#e2e8f0}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}body,html{background-color:#000;background-color:var(--bg-primary)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}html{height:100%}body{margin:0;min-height:100%;padding:0}a{text-decoration:none}#root,.App{display:flex;flex-direction:column;min-height:100vh}.App{background-color:var(--bg-primary)}.App-header{flex-shrink:0}.home-page{box-sizing:border-box;margin:0 auto;max-width:1100px;padding:2.5rem 2rem 4rem}.home-intro{align-items:center;display:flex;gap:3rem;padding:.5rem 0 3.5rem}.home-intro-image-section{flex-shrink:0}.home-intro-image{border-radius:14px;box-shadow:0 8px 30px #0003;display:block;height:220px;object-fit:cover;width:220px}.home-intro-text{display:flex;flex:1 1;flex-direction:column;gap:.6rem}.home-intro-name{color:var(--text-bright);font-size:clamp(2rem,4.5vw,3rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:0}.home-intro-role{color:var(--text-light);font-size:1.15rem;line-height:1.4;margin:0}.home-intro-education{color:var(--text-muted);font-size:1.05rem;line-height:1.4;margin:0}.home-social-links{align-items:center;display:flex;gap:1rem;margin-top:.4rem}.social-link{align-items:center;display:flex;justify-content:center;transition:transform .2s ease,opacity .2s ease}.social-link:hover{opacity:.8;transform:translateY(-2px)}.social-icon{height:24px;object-fit:contain;width:24px}@media (prefers-color-scheme:light){.social-icon{filter:invert(1)}}.home-gallery{padding-bottom:4.5rem}.home-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.home-image-wrapper{aspect-ratio:4/3;border-radius:10px;overflow:hidden;position:relative}.home-image{display:block;height:100%;object-fit:cover;width:100%}.home-image-overlay{align-items:center;background-color:var(--bg-overlay);display:flex;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transition:opacity .3s ease;width:100%}.home-image-wrapper:hover .home-image-overlay{opacity:1}.home-image-description{color:var(--text-primary);font-size:.95rem;font-weight:600;letter-spacing:.02em;padding:.75rem;text-align:center;white-space:pre-line}.home-section{padding-bottom:4.5rem}.home-section:last-child{padding-bottom:0}.home-section-title{color:var(--text-bright);font-size:clamp(1.5rem,3.5vw,1.9rem);font-weight:700;letter-spacing:-.02em;margin:0 0 1.5rem}.home-article-card,.home-project-card{border-radius:10px;margin:0 -1rem;padding:.75rem 1rem;transition:background-color .2s ease}.home-article-card:hover,.home-project-card:hover{background-color:#a0aec01f}.home-work-list{display:flex;flex-direction:column;gap:1.5rem}.home-project-list,.home-writing-list{display:flex;flex-direction:column;gap:.35rem}.home-work-card{align-items:flex-start;display:flex;gap:1.25rem}.home-work-logo,.home-work-logo-placeholder{background:#0000;border-radius:12px;flex-shrink:0;height:56px;object-fit:contain;width:56px}.home-work-logo-placeholder{align-items:center;background:linear-gradient(135deg,#2d3748,#1a202c);color:var(--text-muted);display:flex;font-size:1.5rem;font-weight:700;justify-content:center}.home-work-right{flex:1 1;min-width:0}.home-work-meta{color:var(--text-muted);font-size:.9rem;line-height:1.3;margin:0 0 .1rem}.home-work-company,.home-work-role{color:var(--text-bright);font-weight:600}.home-work-role{font-size:1.1rem;margin:0 0 .15rem}.home-work-dates{color:var(--text-muted);font-size:.9rem;font-style:italic;margin:0 0 .4rem}.home-work-description{color:var(--text-light);font-size:.95rem;line-height:1.55;margin:0}.home-project-card{align-items:center;color:inherit;display:flex;gap:1.25rem}.home-project-left{flex-shrink:0;line-height:0;position:relative}.home-project-icon{border-radius:12px;display:block;height:56px;object-fit:contain;width:56px}.home-project-languages{align-items:center;bottom:-5px;display:flex;gap:2px;position:absolute;right:-5px}.home-language-icon{filter:drop-shadow(0 1px 2px rgba(0,0,0,.55)) drop-shadow(0 0 1px rgba(0,0,0,.45));height:20px;object-fit:contain;width:20px}.home-project-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--text-light);display:-webkit-box;flex:1 1;font-size:.95rem;line-height:1.55;margin:0;min-width:0;overflow:hidden}.home-project-name{color:var(--text-bright);font-weight:700}.home-article-card{display:block}.home-article-title{color:var(--text-bright);font-size:1.1rem;font-weight:700;line-height:1.3;margin:0 0 .15rem}.home-article-date{color:var(--text-muted);display:block;font-size:.85rem;margin-bottom:.35rem}.home-article-preview{color:var(--text-light);font-size:.95rem;line-height:1.55;margin:0}.home-page>section{animation:fadeInUp .6s ease-out backwards}.home-page>section:nth-of-type(2){animation-delay:.08s}.home-page>section:nth-of-type(3){animation-delay:.16s}.home-page>section:nth-of-type(4){animation-delay:.24s}.home-page>section:nth-of-type(5){animation-delay:.32s}@media (prefers-reduced-motion:reduce){.home-page>section{animation:none}}@media (max-width:900px){.home-intro{gap:2rem}.home-intro-image{height:180px;width:180px}.home-project-card,.home-work-card{gap:1rem}}@media (max-width:768px){.home-page{padding:2rem 1rem 2.5rem}.home-intro{flex-direction:column;gap:1.25rem;padding-bottom:2.5rem;text-align:center}.home-intro-text{align-items:center}.home-grid{gap:.65rem;grid-template-columns:repeat(2,1fr)}.home-gallery,.home-section{padding-bottom:3rem}.home-image-description{font-size:.85rem}.home-work-list{gap:1.25rem}.home-project-card,.home-work-card{gap:.85rem}}@media (max-width:480px){.home-intro-image{height:150px;width:150px}.home-image-description{font-size:.75rem;padding:.4rem}.home-article-preview,.home-project-description,.home-work-description{font-size:.9rem}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_AMS-Regular.73ea273a72f4aca30ca5.woff2) format("woff2"),url(/static/media/KaTeX_AMS-Regular.d562e886c52f12660a41.woff) format("woff"),url(/static/media/KaTeX_AMS-Regular.853be92419a6c3766b9a.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Caligraphic-Bold.a1abf90dfd72792a577a.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Bold.d757c535a2e5902f1325.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Bold.7489a2fbfb9bfe704420.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Caligraphic-Regular.d6484fce1ef428d5bd94.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Regular.db074fa22cf224af93d7.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Regular.7e873d3833eb108a0758.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Fraktur-Bold.931d67ea207ab37ee693.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Bold.354501bac435c3264834.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Bold.4c761b3711973ab04edf.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Fraktur-Regular.172d3529b26f8cedef6b.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Regular.6fdf0ac577be0ba82a4c.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Regular.ed305b5434865e06ffde.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Main-Bold.39890742bc957b368704.woff2) format("woff2"),url(/static/media/KaTeX_Main-Bold.0c3b8929d377c0e9b2f3.woff) format("woff"),url(/static/media/KaTeX_Main-Bold.8169508bf58f8bd92ad8.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Main-BoldItalic.20f389c4120be058d80a.woff2) format("woff2"),url(/static/media/KaTeX_Main-BoldItalic.428978dc7837d46de091.woff) format("woff"),url(/static/media/KaTeX_Main-BoldItalic.828abcb200061cffbaae.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Main-Italic.fe2176f79edaa716e621.woff2) format("woff2"),url(/static/media/KaTeX_Main-Italic.fd947498bc16392e76c2.woff) format("woff"),url(/static/media/KaTeX_Main-Italic.fa675e5e4bec9eb250b6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Main-Regular.f650f111a3b890d116f1.woff2) format("woff2"),url(/static/media/KaTeX_Main-Regular.4f35fbcc9ee8614c2bcc.woff) format("woff"),url(/static/media/KaTeX_Main-Regular.9eba1d77abcf2aa6e94e.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Math-BoldItalic.dcbcbd93bac0470b462d.woff2) format("woff2"),url(/static/media/KaTeX_Math-BoldItalic.3f07ed67f06c720120ce.woff) format("woff"),url(/static/media/KaTeX_Math-BoldItalic.bf2d440b3a42ea78a998.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Math-Italic.6d3d25f4820d0da8f01f.woff2) format("woff2"),url(/static/media/KaTeX_Math-Italic.96759856b4e70f3a8338.woff) format("woff"),url(/static/media/KaTeX_Math-Italic.8a5f936332e8028c7278.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/static/media/KaTeX_SansSerif-Bold.95591a929f0d32aa282a.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Bold.b9cd458ac6d5889ff9c3.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Bold.5b49f4993ae22d7975b4.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Italic.7d393d382f3e7fb1c637.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Italic.8d593cfaa96238d5e2f8.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Italic.b257a18c016f37ee4543.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Regular.cd5e231e0cc53b2cb2c0.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Regular.02271ec5cb9f5b4588ac.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Regular.2f7bc363fc5424ebda59.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Script-Regular.c81d1b2a4b75d3eded60.woff2) format("woff2"),url(/static/media/KaTeX_Script-Regular.073b3402d036714b4370.woff) format("woff"),url(/static/media/KaTeX_Script-Regular.fc9ba5249878cd8f8d88.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size1-Regular.6eec866c69313624be60.woff2) format("woff2"),url(/static/media/KaTeX_Size1-Regular.0108e89c9003e8c14ea3.woff) format("woff"),url(/static/media/KaTeX_Size1-Regular.6de7d4b539221a49e9e2.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size2-Regular.2960900c4f271311eb36.woff2) format("woff2"),url(/static/media/KaTeX_Size2-Regular.3a99e70aee4076660d38.woff) format("woff"),url(/static/media/KaTeX_Size2-Regular.57f5c1837853986ea1db.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size3-Regular.e1951519f6f0596f7356.woff2) format("woff2"),url(/static/media/KaTeX_Size3-Regular.7947224e8a9914fa332b.woff) format("woff"),url(/static/media/KaTeX_Size3-Regular.8d6b6822586eea3d3b20.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size4-Regular.e418bf257af1052628d8.woff2) format("woff2"),url(/static/media/KaTeX_Size4-Regular.aeffd8025cba3647f1a6.woff) format("woff"),url(/static/media/KaTeX_Size4-Regular.4ad7c7e8bb8d10a34bb7.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Typewriter-Regular.c295e7f71970f03c0549.woff2) format("woff2"),url(/static/media/KaTeX_Typewriter-Regular.4c6b94fd1d07f8beff7c.woff) format("woff"),url(/static/media/KaTeX_Typewriter-Regular.c5c02d763c89380dcb4e.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.27"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;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: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 .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;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;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.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}.footer-container{position:relative}.visible-footer{text-align:center}.contact-info{color:var(--text-subtle);margin-bottom:1rem}.contact-email{color:var(--text-subtle);text-decoration:underline;transition:color .2s}.contact-email:hover{color:#b8b8b8;text-decoration:underline}.privacy-policy-button{background:none;border:none;color:var(--text-subtle);cursor:pointer;font-size:1rem;margin-top:.5rem;padding:.5rem 1rem;text-decoration:underline;transition:color .2s}.privacy-policy-button:hover{color:#b8b8b8}.policy-overlay{animation:fadeIn .3s ease-out;background-color:#000000b3;top:0;z-index:1000}.policy-modal,.policy-overlay{bottom:0;left:0;position:fixed;right:0}.policy-modal{animation:slideUp .3s cubic-bezier(.4,0,.2,1);background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #0000004d;max-height:70vh;overflow-y:auto;z-index:1001}.policy-modal-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1.5rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.policy-modal-title{color:#1a202c;font-size:1.5rem;font-weight:700;margin:0}.policy-close-button{align-items:center;background:none;border:none;border-radius:8px;color:#718096;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s}.policy-close-button:hover{background-color:#f7fafc;color:#1a202c}.policy-close-button:active{transform:scale(.95)}.policy-modal-content{color:#4a5568;font-size:1rem;line-height:1.7;padding:2rem}.policy-modal-content p{margin:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (max-width:768px){.policy-modal{max-height:80vh}.policy-modal-header{padding:1.25rem 1.5rem}.policy-modal-title{font-size:1.25rem}.policy-modal-content{font-size:.95rem;padding:1.5rem}}@media (max-width:480px){.policy-modal{max-height:85vh}.policy-modal-content,.policy-modal-header{padding:1rem}}.policy-close-button:focus-visible{outline:2px solid #a0aec0;outline-offset:2px}.privacy-policy-button:focus-visible{outline:2px solid #a0aec0;outline-offset:2px}.template-project-container{margin:0 auto;max-width:100%;min-height:calc(100vh - 80px);overflow-x:hidden;padding:3rem 2rem}.template-project-header{animation:fadeInUp .6s ease-out backwards;animation-delay:.1s;margin-bottom:0;text-align:center}.template-project-logo{background:#0000;border-radius:36px;height:auto;margin-bottom:1.5rem;transition:transform .3s ease;width:10rem}.template-project-name{color:var(--text-bright);font-size:clamp(2rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:1.5rem 0}.template-project-languages{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.5rem}.template-language-img{background:#0000;border-radius:12px;height:48px;margin:8px;transition:all .3s ease;width:48px}.template-github-ref{align-items:center;animation:fadeInUp .6s ease-out backwards;animation-delay:.2s;display:inline-flex;justify-content:center;margin:2rem auto;padding:0;text-decoration:none;transition:all .3s ease}.template-github-img{border-radius:8px;box-shadow:0 2px 12px #00000026;height:auto;transition:all .3s ease;width:160px}.template-github-ref:hover .template-github-img{box-shadow:0 6px 20px #0003;transform:translateY(-2px)}.template-project-description{animation:fadeInUp .6s ease-out backwards;animation-delay:.3s;border-radius:16px;color:var(--text-subtle);font-size:1.125rem;line-height:1.8;margin:0 auto;max-width:800px;text-align:left}.template-project-description h2{border-bottom:1px solid var(--border-subtle);color:var(--text-bright);font-size:1.75rem;font-weight:700;line-height:1.3;margin:2.5rem 0 1rem;padding-bottom:.5rem}.template-project-description h3{color:var(--text-bright);font-size:1.375rem;font-weight:600;margin:2rem 0 .75rem}.template-project-description h4{color:var(--text-bright);font-size:1.125rem;font-weight:600;margin:1.5rem 0 .5rem}.template-project-description p{color:var(--text-light);margin-bottom:1.25rem}.template-project-description strong{color:var(--text-bright);font-weight:600}.template-project-description em{color:var(--text-light);font-style:italic}.template-project-description a{border-bottom:1px solid #a0aec04d;color:var(--text-muted);text-decoration:none;transition:all .2s}.template-project-description a:hover{border-bottom-color:#e2e8f0;color:var(--text-subtle)}.template-project-description .reference-link{border-bottom:none!important;color:var(--text-muted);font-size:.85em;font-weight:600;padding:0 .2em;text-decoration:none;vertical-align:super}.template-project-description .reference-link:hover{color:var(--text-subtle);text-decoration:underline}.template-project-description ol,.template-project-description ul{color:var(--text-light);margin:1.25rem 0;padding-left:1.5rem}.template-project-description li{line-height:1.7;margin-bottom:.5rem}.template-project-description li::marker{color:var(--text-muted)}.template-project-description ol ol,.template-project-description ol ul,.template-project-description ul ol,.template-project-description ul ul{margin:.5rem 0}.template-project-description .inline-code,.template-project-description code{background:var(--code-bg);border-radius:4px;color:var(--text-muted);font-family:Monaco,Menlo,Courier New,monospace;font-size:.9em;padding:.2em .4em}.template-project-description .code-block,.template-project-description pre{background:var(--code-bg-dark);border:1px solid var(--border-subtle);border-radius:8px;margin:1rem 0;overflow-x:auto;padding:1rem 1.5rem}.template-project-description .code-block code,.template-project-description pre code{background:none;color:var(--text-subtle);font-size:.875rem;line-height:1.6;padding:0}.template-project-description blockquote{background:#7180960d;border-left:4px solid #718096;border-radius:0 8px 8px 0;color:var(--text-muted);font-style:italic;margin:1.5rem 0;padding:.5rem 0 .5rem 1.5rem}.template-project-description blockquote p{margin-bottom:0}.template-project-description table{border-collapse:collapse;font-size:.95rem;margin:1.5rem 0;width:100%}.template-project-description td,.template-project-description th{border-bottom:1px solid var(--border-subtle);padding:.75rem 1rem;text-align:left}.template-project-description th{background:var(--table-bg);color:var(--text-bright);font-weight:600}.template-project-description tr:hover{background:#7180960d}.template-project-description hr{border:none;border-top:1px solid var(--border-subtle);margin:2.5rem 0}.template-project-description .markdown-image{background:#0000;border-radius:8px;height:auto;margin:1.5rem 0;max-width:100%}.template-project-description input[type=checkbox]{accent-color:#718096;margin-right:.5rem}.template-project-description dl{margin:1.25rem 0}.template-project-description dt{color:var(--text-bright);font-weight:600;margin-top:1rem}.template-project-description dd{color:var(--text-light);margin-left:1.5rem}.template-project-description [id]{scroll-margin-top:100px}.template-app-screenshot-container{-webkit-overflow-scrolling:touch;animation:fadeInUp .6s ease-out backwards;animation-delay:.4s;display:flex;gap:1.5rem;justify-content:safe center;margin:2rem 0;overflow-x:auto;overflow-y:hidden;padding:2rem 1rem;scroll-behavior:smooth;scroll-snap-type:x mandatory}.template-app-screenshot{background:#0000;border-radius:12px;cursor:grab;flex:0 0 auto;height:auto;max-height:500px;max-width:500px;object-fit:contain;scroll-snap-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);width:auto}.template-app-screenshot:active{cursor:grabbing}.template-app-screenshot:hover{transform:scale(1.05);z-index:1}.template-app-screenshot-container::-webkit-scrollbar{height:12px;margin-top:1rem}.template-app-screenshot-container::-webkit-scrollbar-track{background:#ffffff1a;border-radius:10px;margin:0 2rem}.template-app-screenshot-container::-webkit-scrollbar-thumb{background:#718096;border-radius:10px;-webkit-transition:background .3s;transition:background .3s}.template-app-screenshot-container::-webkit-scrollbar-thumb:hover{background:#a0aec0}.template-app-screenshot-container{scrollbar-color:#718096 #ffffff1a;scrollbar-width:thin}.template-project-footer{animation:fadeInUp .6s ease-out backwards;animation-delay:.5s;margin-top:5rem}@media (max-width:768px){.template-project-container{max-width:100%;min-height:calc(100vh - 60px)}.template-project-name{font-size:2rem}.template-project-logo{border-radius:24px;margin-bottom:.5rem;width:6rem}.template-project-description{font-size:1rem;margin:.5rem;padding:1.5rem}.template-project-description h2{font-size:1.5rem;margin:2rem 0 .75rem}.template-project-description h3{font-size:1.25rem}.template-project-description .code-block,.template-project-description pre{font-size:.85rem;padding:1rem}.template-app-screenshot-container{gap:1rem;margin:1rem -1rem;max-width:100vw;padding:1rem}.template-app-screenshot{max-height:400px;max-width:75vw}.template-app-screenshot-container::-webkit-scrollbar{display:none}.template-github-ref{margin:1rem auto}.template-github-img{width:100px}.template-language-img{height:32px;margin:4px;width:32px}}@media (max-width:480px){.template-project-container{padding:1.5rem .75rem}.template-project-logo{max-width:140px}.template-github-ref{margin:.75rem auto}.template-language-img{height:28px;margin:3px;width:28px}.template-project-description{font-size:.95rem;margin:.5rem;padding:1.25rem}.template-project-description h2{font-size:1.375rem}.template-project-description h3{font-size:1.125rem}.template-app-screenshot-container{margin:1rem -.75rem;padding:1rem .75rem}.template-app-screenshot{max-height:350px;max-width:80vw}}.writing-article{margin:0 auto;max-width:750px;min-height:calc(100vh - 80px);padding:4rem 2rem}.article-header{animation:fadeInUp .6s ease-out backwards;animation-delay:.1s;border-bottom:1px solid var(--border-subtle);margin-bottom:3rem;padding-bottom:2rem;text-align:center}.article-title{color:var(--text-bright);font-size:clamp(2rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:1rem}.article-authors{align-items:baseline;color:var(--text-light);display:flex;flex-wrap:wrap;font-size:1.1rem;gap:.25rem;justify-content:center;line-height:1.6;margin-bottom:1rem}.author-name{align-items:baseline;display:inline-flex;white-space:nowrap}.author-link{border-bottom:1px solid #0000;color:var(--text-muted);text-decoration:none;transition:all .2s ease}.author-link:hover{border-bottom-color:#e2e8f0;color:var(--text-subtle)}.author-affiliation{color:var(--text-muted);font-size:.85em;margin-left:.1rem}.author-separator{color:#718096;margin-right:.5rem}.article-date{color:var(--text-muted);font-size:1rem;font-style:italic}.article-content{animation:fadeInUp .6s ease-out backwards;animation-delay:.2s;color:var(--text-subtle);font-size:1.125rem;line-height:1.8;text-align:justify}.article-content h2{color:var(--text-bright);font-size:2rem;font-weight:700;line-height:1.3;margin:2.5rem 0 1rem}.article-content h3{color:var(--text-bright);font-size:1.5rem;font-weight:600;margin:2rem 0 .75rem}.article-content p{margin-bottom:1.5rem}.article-content strong{color:var(--text-bright);font-weight:600}.article-content>p:first-child strong:only-child{display:block;font-size:1.5rem;margin-bottom:1rem;text-align:center}.article-content em{color:var(--text-light)}.article-content a{border-bottom:1px solid #a0aec04d;color:var(--text-muted);text-decoration:none;transition:all .2s}.article-content a:hover{border-bottom-color:#e2e8f0;color:var(--text-subtle)}.reference-link{border-bottom:none!important;color:var(--text-muted);font-size:.85em;font-weight:600;padding:0 .2em;text-decoration:none;vertical-align:super}.reference-link:hover{color:var(--text-subtle);text-decoration:underline}.article-content code{background:var(--code-bg);border-radius:4px;color:var(--text-muted);font-family:Monaco,Courier New,monospace;font-size:.9em;padding:.2em .4em}.article-content pre{background:var(--code-bg);border-radius:8px;margin:2rem 0;overflow-x:auto;padding:1.5rem}.article-content pre code{background:none;color:var(--text-subtle);padding:0}.article-content blockquote{border-left:4px solid #718096;color:var(--text-light);font-style:italic;margin:2rem 0;padding-left:1.5rem}.article-content ol,.article-content ul{margin:1.5rem 0;padding-left:2rem}.article-content li{margin-bottom:.5rem}.article-content hr{border:none;border-top:2px solid var(--border-subtle);margin:4rem 0 2rem}.reference-item{color:var(--text-muted);font-size:.95rem;line-height:1.6;margin-bottom:1rem}.article-content [id]{scroll-margin-top:100px}.pdf-download-section{animation:fadeInUp .6s ease-out backwards;animation-delay:.3s;border-top:1px solid var(--border-subtle);margin-top:3rem;padding-top:2rem;text-align:center}.pdf-download-link{color:var(--text-bright);font-size:1.125rem;text-decoration:underline;transition:color .2s ease}.pdf-download-link:hover{color:var(--text-muted)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.writing-article{padding:3rem 1.5rem}.article-header{margin-bottom:2rem;padding-bottom:1.5rem}.article-title{font-size:2rem}.article-authors{font-size:1rem;gap:.2rem}.article-content{font-size:1rem}.article-content h2{font-size:1.75rem;margin:2rem 0 .75rem}.article-content h3{font-size:1.25rem}.article-content pre{font-size:.9em;padding:1rem}.pdf-download-link{font-size:1rem}}@media (max-width:480px){.writing-article{padding:2rem 1rem}.article-authors{align-items:center;flex-direction:column;font-size:.95rem;gap:.25rem}.author-separator{display:none}.author-name:after{content:""}.article-content{font-size:.95rem}.pdf-download-section{margin-top:2rem;padding-top:1.5rem}}.top-bar{background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);box-sizing:border-box;max-width:100vw;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:100}.top-bar-floating{left:0;position:fixed;right:0;top:0;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s ease;width:auto}.top-bar-floating.top-bar-hidden{opacity:0;pointer-events:none;transform:translateY(-100%)}.top-bar-contents{align-items:center;box-sizing:border-box;display:flex;justify-content:center;margin:0 auto;max-width:1400px;padding:1rem 2rem}.site-title{color:var(--text-primary);font-size:1.5rem;font-weight:700;text-align:center}.home-link{text-decoration:none;transition:opacity .2s}.home-link:hover{opacity:.8}@media (prefers-reduced-motion:reduce){.top-bar-floating{transition:none}}@media (max-width:768px){.top-bar-contents{padding:1rem}.site-title{font-size:1.25rem}}@media (max-width:480px){.top-bar-contents{padding:.75rem .5rem}.site-title{font-size:1.1rem}}
/*# sourceMappingURL=main.d020c341.css.map*/