@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap);:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-tertiary:#1f2937;--bg-card:#1e293b;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-muted:#475569;--border-color:#334155;--border-light:#475569;--primary-color:#3b82f6;--primary-hover:#2563eb;--primary-light:#60a5fa;--accent-color:#8b5cf6;--accent-hover:#7c3aed;--success-color:#10b981;--warning-color:#f59e0b;--error-color:#ef4444;--gradient-primary:linear-gradient(135deg,#3b82f6,#8b5cf6);--gradient-secondary:linear-gradient(135deg,#1e293b,#334155);--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006,0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0006,0 4px 6px -2px #0000004d;--shadow-xl:0 20px 25px -5px #0006,0 10px 10px -5px #0003;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--transition-fast:all 0.15s ease;--transition-normal:all 0.25s ease;--transition-slow:all 0.4s ease}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-card:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#94a3b8;--border-color:#e2e8f0;--border-light:#cbd5e1;--primary-color:#2563eb;--primary-hover:#1d4ed8;--primary-light:#3b82f6;--accent-color:#7c3aed;--accent-hover:#6d28d9;--success-color:#059669;--warning-color:#d97706;--error-color:#dc2626;--gradient-primary:linear-gradient(135deg,#2563eb,#7c3aed);--gradient-secondary:linear-gradient(135deg,#f8fafc,#e2e8f0);--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}body{background:#0a0e1a;background:var(--bg-primary);color:#f8fafc;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:16px;transition:all .25s ease;transition:var(--transition-normal)}*,:after,:before{box-sizing:border-box}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#111827;background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:#334155;background:var(--border-color);border-radius:6px;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#64748b;background:var(--text-tertiary)}.gradient-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3b82f6,#8b5cf6);background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text}.glass-effect{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(#1e293b,.8);background:rgba(var(--bg-card),.8);border:1px solid #334155;border:1px solid var(--border-color)}.hover-lift{transition:all .25s ease;transition:var(--transition-normal)}.hover-lift:hover{box-shadow:0 10px 15px -3px #0006,0 4px 6px -2px #0000004d;box-shadow:var(--shadow-lg);transform:translateY(-4px)}:focus{outline:2px solid #3b82f6;outline:2px solid var(--primary-color);outline-offset:2px}img{animation:fadeIn .6s ease-in-out forwards;opacity:0}@keyframes fadeIn{to{opacity:1}}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{transition:all .4s ease;transition:var(--transition-slow)}.page-enter-active,.page-exit{opacity:1;transform:translateY(0)}.page-exit-active{opacity:0;transform:translateY(-20px);transition:all .4s ease;transition:var(--transition-slow)}::selection{background:#3b82f6;background:var(--primary-color);color:#fff}::-moz-selection{background:#3b82f6;background:var(--primary-color);color:#fff}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}main{margin:0 auto;min-height:calc(100vh - 120px);width:min(1200px,95%)}h1,h2,h3{line-height:1.2;margin:0 0 16px}h1{font-weight:800}h2{font-weight:700}h3{font-weight:600}#about .about-container{margin:0 auto}#projects h2{text-align:center}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.navbar{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:rgba(var(--bg-card),.9);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-md);display:flex;height:72px;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:1000}.navbar-left .navbar-logo{-webkit-text-fill-color:#0000;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:22px;font-weight:800;text-decoration:none;transition:var(--transition-fast)}.navbar-logo:hover{transform:scale(1.05)}.navbar-right{align-items:center;display:flex;gap:24px}.icon-link{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);color:var(--text-secondary);display:inline-flex;font-size:20px;height:40px;justify-content:center;transition:var(--transition-normal);width:40px}.icon-link:hover{background:var(--bg-tertiary);border-color:var(--primary-color);color:var(--primary-color);transform:translateY(-2px)}.theme-toggle{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:18px;height:40px;justify-content:center;overflow:hidden;position:relative;transition:var(--transition-normal);width:40px}.theme-toggle:hover{background:var(--primary-color);box-shadow:var(--shadow-md);color:var(--primary-color);color:#fff;transform:translateY(-2px) scale(1.05)}.theme-toggle:active{transform:translateY(0) scale(.95)}@media (max-width:768px){.navbar{height:64px;padding:0 20px}.navbar-right{gap:16px}.icon-link,.theme-toggle{font-size:16px;height:36px;width:36px}.navbar-logo{font-size:20px}}.footer{background:var(--bg-card);border-top:1px solid var(--border-color);color:var(--text-secondary);overflow:hidden;padding:40px 16px;position:relative}.footer:before{background:var(--gradient-primary);content:"";height:4px;left:0;position:absolute;right:0;top:0}.footer-inner{align-items:center;display:flex;flex-direction:column;font-size:15px;gap:20px;margin:0 auto;text-align:center;width:min(1200px,92%)}.footer-content{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:24px 32px;transition:var(--transition-normal)}.footer-content:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.footer-links{display:flex;gap:24px;margin-top:16px}.footer-link{border:1px solid #0000;border-radius:var(--radius-md);color:var(--primary-color);font-weight:600;padding:8px 16px;text-decoration:none;transition:var(--transition-fast)}.footer-link:hover{background:var(--primary-color);border-color:var(--primary-color);color:#fff;transform:translateY(-1px)}@media (max-width:768px){.footer{padding:32px 16px}.footer-content{padding:20px 24px}.footer-links{align-items:center;flex-direction:column;gap:16px}}.about-me{background:var(--bg-primary);color:var(--text-primary);overflow:hidden;padding:80px 0 60px;position:relative}.about-me:before{background:var(--gradient-secondary);content:"";height:100%;left:0;opacity:.2;position:absolute;right:0;top:0;z-index:-1}.about-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);margin:0 auto;padding:60px 40px;position:relative;width:min(1000px,92%)}.about-container:before{background:var(--gradient-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;content:"";height:4px;left:0;position:absolute;right:0;top:0}.about-title{-webkit-text-fill-color:#0000;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;font-size:clamp(2rem,4vw,2.5rem);font-weight:800;margin-bottom:40px;position:relative;text-align:center}.about-title:after{background:var(--gradient-primary);border-radius:var(--radius-sm);bottom:-16px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.about-me p{color:var(--text-primary);font-size:18px;line-height:1.8;margin:24px 0;text-align:justify;transition:var(--transition-fast)}.about-me p:hover{color:var(--text-primary);transform:translateX(4px)}@media (max-width:768px){.about-me{padding:60px 0 40px}.about-container{padding:40px 24px;width:min(100%,92%)}.about-title{font-size:clamp(1.8rem,5vw,2.2rem);margin-bottom:32px}.about-me p{font-size:16px;margin:20px 0;text-align:left}}@media (max-width:480px){.about-me{padding:40px 0 32px}.about-container{padding:32px 20px}.about-me p{font-size:15px}}.featured-project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);box-sizing:border-box;display:flex;flex-direction:column;margin:0;opacity:0;overflow:hidden;position:relative;transform:translateY(30px);transition:var(--transition-normal);width:100%}.featured-project-card.animate-in{animation:slideInUp .6s ease-out forwards}@keyframes slideInUp{to{opacity:1;transform:translateY(0)}}.featured-project-card:before{background:var(--gradient-primary);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:var(--transition-normal);z-index:1}.featured-project-card:hover:before{transform:scaleX(1)}.featured-project-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-xl);transform:translateY(-8px)}.featured-project-image{filter:blur(2px);height:280px;object-fit:cover;opacity:.5;transition:var(--transition-slow);width:100%}.featured-project-image.loaded{filter:blur(0);opacity:1}.featured-project-card:hover .featured-project-image{transform:scale(1.05)}.featured-project-content{display:flex;flex-direction:column;flex-grow:1;gap:16px;padding:28px}.featured-project-content h3{-webkit-text-fill-color:#0000;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:700;line-height:1.3;margin:0}.featured-project-content p{color:var(--text-secondary);font-size:15px;line-height:1.6;margin:0}.featured-project-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.featured-project-tag{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:13px;font-weight:600;padding:6px 12px;transition:var(--transition-fast)}.featured-project-tag:hover{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.featured-project-links{border-top:1px solid var(--border-color);display:flex;gap:24px;margin-top:auto;padding-top:20px}.featured-text-link{color:var(--primary-color);font-size:15px;font-weight:600;padding-bottom:2px;position:relative;text-decoration:none;transition:var(--transition-fast)}.featured-text-link:after{background:var(--primary-color);bottom:0;content:"";height:2px;left:0;position:absolute;transition:var(--transition-fast);width:0}.featured-text-link:hover{color:var(--primary-color)}.featured-text-link:hover:after{width:100%}@media (max-width:768px){.featured-project-card{width:100%}.featured-project-content{padding:24px}.featured-project-content h3{font-size:1.3rem}.featured-project-image{height:240px}}.project-list{background:var(--bg-primary);padding:100px 0 80px;position:relative}.project-list:before{background:var(--gradient-secondary);content:"";height:200px;left:0;opacity:.3;position:absolute;right:0;top:0;z-index:-1}.project-list h2{-webkit-text-fill-color:#0000;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:clamp(2rem,5vw,2.8rem);font-weight:800;margin-bottom:60px;position:relative;text-align:center;transition:var(--transition-normal)}.project-list h2:after{background:var(--gradient-primary);border-radius:var(--radius-sm);bottom:-16px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:100px}.category-title{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);color:var(--text-primary);cursor:pointer;display:inline-block;font-size:clamp(1.4rem,3vw,1.8rem);font-weight:700;margin:60px auto 40px;padding:16px 32px;position:relative;text-align:center;transition:var(--transition-normal);width:fit-content}.category-title:before{background:var(--gradient-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;content:"";height:4px;left:0;position:absolute;right:0;top:0}.category-title:hover{background:var(--primary-color);box-shadow:var(--shadow-lg);color:#fff;transform:translateY(-2px)}.featured-projects-section{margin-bottom:80px;position:relative}.featured-title{-webkit-text-fill-color:#0000;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:clamp(1.6rem,3.5vw,2rem);font-weight:700;margin:0 0 50px;position:relative;text-align:center}.featured-title:after{background:var(--gradient-primary);border-radius:var(--radius-sm);bottom:-12px;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:80px}.featured-grid{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(3,1fr);margin:0 auto;max-width:1600px;padding:0 20px}.other-projects-section{border-top:2px solid var(--border-color);margin-top:80px;padding-top:40px;position:relative}.other-projects-title{color:var(--text-secondary);font-size:clamp(1.4rem,3vw,1.8rem);font-weight:600;margin:0 0 40px;text-align:center}.project-description-display{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:70vh;opacity:0;overflow-y:auto;padding:28px;pointer-events:none;position:fixed;right:40px;top:50%;transform:translateY(-50%);transition:opacity .3s ease;width:380px;z-index:100}.project-description-display.visible{opacity:1}.hover-description{color:var(--text-primary);font-size:.95rem;line-height:1.65;margin:0}.hover-description.placeholder{display:none}.project-category{margin-bottom:45px}.category-title{color:var(--text-secondary);font-size:1.1rem;font-weight:600;letter-spacing:.5px;margin:0 0 16px 20px;opacity:.8;text-transform:uppercase}.project-links{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:800px;padding:0 20px}.project-link{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text-primary);display:block;font-size:1.1rem;font-weight:500;padding:16px 24px;text-decoration:none;transition:var(--transition-normal)}.project-link:hover{background:var(--bg-secondary);border-color:var(--primary-color);box-shadow:var(--shadow-md);color:var(--primary-color);transform:translateX(8px)}.project-link:before{content:"→ ";margin-right:8px;opacity:0;transition:var(--transition-normal)}.project-link:hover:before{opacity:1}.project-grid{grid-gap:40px;display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));margin:0 auto;max-width:1400px;padding:0 20px}.project-grid .project-card{animation-delay:0s;animation-delay:calc(var(--card-index, 0)*.1s)}@media (max-width:1400px){.featured-grid{gap:28px;grid-template-columns:repeat(3,1fr)}}@media (max-width:1200px){.featured-grid{gap:24px;grid-template-columns:repeat(2,1fr)}.project-grid{gap:32px;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}}@media (max-width:768px){.featured-grid{gap:20px}.featured-grid,.project-grid{grid-template-columns:1fr;padding:0 16px}.project-grid{gap:24px}.featured-projects-section{margin-bottom:60px}.project-list{padding:60px 0}.featured-title{font-size:1.6rem;margin-bottom:30px}.other-projects-title{font-size:1.4rem;margin-bottom:30px;padding-top:30px}.other-projects-section{margin-top:60px;padding-top:30px}.project-links{padding:0 16px}.project-link{font-size:1rem;padding:14px 20px}.project-description-display{display:none}.category-title{font-size:1.2rem;margin:0 0 16px 16px}.project-category{margin-bottom:40px}}@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: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}:root{--content-width:1200px;--content-padding:32px;--article-max-width:800px;--header-height:80px;--section-spacing:80px;--element-spacing:32px;--text-spacing:24px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;margin:0;padding:0}.page-template{background:var(--bg-primary);margin:0 auto;max-width:1200px;max-width:var(--content-width);padding:60px 32px 120px;padding:60px var(--content-padding) 120px;position:relative}.page-template:before{background:var(--gradient-secondary);content:"";height:300px;left:0;opacity:.4;position:absolute;right:0;top:0;z-index:-1}.page-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(var(--bg-card),.8);border-bottom:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;justify-content:space-between;margin-bottom:60px;padding:24px 32px}.back-link{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);display:inline-flex;font-size:15px;font-weight:600;gap:12px;padding:12px 20px;text-decoration:none;transition:var(--transition-normal)}.back-link:hover{border-color:var(--primary-color);box-shadow:var(--shadow-md);color:var(--primary-color);transform:translateY(-2px)}.reading-time{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-tertiary);font-size:14px;font-weight:500;padding:8px 16px}.page-title{-webkit-text-fill-color:#0000;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:clamp(32px,5vw,56px);font-weight:800;line-height:1.1;margin:0 0 60px;max-width:900px;position:relative}.page-title:after{background:var(--gradient-primary);border-radius:var(--radius-sm);bottom:-20px;content:"";height:4px;left:0;position:absolute;width:80px}.featured-image-container{background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);margin-bottom:80px;overflow:hidden;padding:4px;position:relative;width:100%}.featured-image-container:before{background:var(--gradient-primary);border-radius:inherit;content:"";inset:0;position:absolute;z-index:-1}.featured-image{border-radius:calc(var(--radius-xl) - 4px);display:block;height:auto;max-height:500px;object-fit:cover;transition:var(--transition-slow);width:100%}.featured-image:hover{transform:scale(1.02)}.content-layout{grid-gap:60px;display:grid;gap:60px;grid-template-columns:minmax(0,1fr);margin-bottom:80px;margin-bottom:var(--section-spacing)}@media (min-width:1200px){.content-layout{gap:80px;grid-template-columns:280px minmax(0,1fr)}}.table-of-contents{display:none}@media (min-width:1200px){.table-of-contents{display:block}.toc-sticky{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:32px;position:sticky;top:120px;top:calc(var(--header-height) + 40px)}.table-of-contents h2{border-bottom:2px solid var(--primary-color);color:var(--text-primary);font-size:20px;font-weight:700;margin-bottom:24px;padding-bottom:16px}.table-of-contents nav ul{list-style:none;margin:0;padding:0}.toc-item{line-height:1.4;margin-bottom:16px}.toc-item a{border-left:3px solid #0000;border-radius:var(--radius-md);color:var(--text-secondary);display:block;font-size:15px;font-weight:500;padding:12px 16px;text-decoration:none;transition:var(--transition-normal)}.toc-item a:hover{background:var(--bg-tertiary);border-left-color:var(--primary-color);color:var(--primary-color);transform:translateX(4px)}}.page-content{margin:0;max-width:800px;max-width:var(--article-max-width);width:100%}.page-content p{color:var(--text-primary);font-size:18px;line-height:1.7;margin-bottom:24px;margin-bottom:var(--text-spacing);text-align:justify}.page-content h2{color:var(--text-primary);font-size:clamp(24px,4vw,32px);font-weight:700;margin-bottom:32px;margin-top:80px;padding-left:24px;position:relative;scroll-margin-top:120px;scroll-margin-top:calc(var(--header-height) + 40px)}.page-content h2:before{background:var(--gradient-primary);border-radius:var(--radius-sm);content:"";height:40px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:4px}.page-content h3{color:var(--text-primary);font-size:clamp(20px,3vw,24px);font-weight:600;margin-bottom:24px;margin-top:48px;scroll-margin-top:120px;scroll-margin-top:calc(var(--header-height) + 40px)}.page-content ol,.page-content ul{margin-bottom:24px;margin-bottom:var(--text-spacing);padding-left:32px}.page-content li{font-size:18px;line-height:1.6;margin-bottom:12px}.page-content img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);height:auto;margin:48px 0;max-width:100%;transition:var(--transition-slow)}.page-content img:hover{box-shadow:var(--shadow-xl);transform:scale(1.02)}.page-content a{border-bottom:2px solid #0000;color:var(--primary-color);font-weight:600;text-decoration:none;transition:var(--transition-fast)}.page-content a:hover{border-bottom-color:var(--primary-color);color:var(--primary-hover)}.page-content blockquote{background:var(--bg-tertiary);border-left:4px solid var(--primary-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:32px 0;padding:24px 32px;position:relative}.page-content blockquote:before{color:var(--primary-color);content:'"';font-size:48px;font-weight:700;left:20px;position:absolute;top:-10px}.page-content .highlight-box{background:var(--bg-card);border:2px solid var(--primary-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin:40px 0;padding:32px;position:relative}.page-content .highlight-box:before{background:var(--bg-card);content:"💡";font-size:24px;left:32px;padding:0 8px;position:absolute;top:-15px}.page-content .warning-box{background:#f59e0b1a;border:2px solid var(--warning-color);border-radius:var(--radius-lg);margin:40px 0;padding:32px;position:relative}.page-content .warning-box:before{background:var(--bg-card);content:"⚠️";font-size:24px;left:32px;padding:0 8px;position:absolute;top:-15px}.page-content .success-box{background:#10b9811a;border:2px solid var(--success-color);border-radius:var(--radius-lg);margin:40px 0;padding:32px;position:relative}.page-content .success-box:before{background:var(--bg-card);content:"✅";font-size:24px;left:32px;padding:0 8px;position:absolute;top:-15px}.page-content .image-container{margin:48px 0;position:relative;text-align:center}.page-content .image-caption{color:var(--text-tertiary);font-size:14px;font-style:italic;margin-top:16px;text-align:center}.page-content .image-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:48px 0}.page-content .image-grid img{height:250px;margin:0;object-fit:cover;width:100%}.page-content .tech-stack{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.page-content .tech-tag{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);font-size:14px;font-weight:600;padding:8px 16px}.page-content .feature-list{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:32px 0}.page-content .feature-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;transition:var(--transition-normal)}.page-content .feature-item:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.page-content .feature-item h4{color:var(--primary-color);font-size:18px;font-weight:700;margin-bottom:12px}.page-content .katex-display{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin:32px 0;overflow-x:auto;padding:24px}@media (max-width:768px){.page-content .highlight-box,.page-content .success-box,.page-content .warning-box{margin:24px 0;padding:20px}.page-content .feature-list,.page-content .image-grid{gap:16px;grid-template-columns:1fr}.page-content .tech-stack{justify-content:center}}.page-content img.loading{filter:blur(2px);opacity:.5;transition:var(--transition-normal)}.page-content img.loaded{filter:blur(0);opacity:1}.page-content pre{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);font-size:14px;line-height:1.6;margin:32px 0;overflow-x:auto;padding:24px;position:relative;white-space:pre-wrap}.page-content pre:before{background:var(--gradient-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;content:"";height:4px;left:0;position:absolute;right:0;top:0}.page-content pre code{background-color:initial;border-radius:0;color:var(--text-primary);display:block;overflow-x:auto;padding:0}.page-content code,.page-content pre code{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Source Code Pro,monospace}.page-content code{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--accent-color);font-size:.9em;padding:4px 8px}.page-footer{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-top:80px;margin-top:var(--section-spacing);overflow:hidden;padding:60px 40px 40px;position:relative}.page-footer:before{background:var(--gradient-primary);content:"";height:4px;left:0;position:absolute;right:0;top:0}.share-links{margin-bottom:48px}.share-links h3{color:var(--text-primary);font-size:20px;font-weight:700;margin-bottom:24px}.social-buttons{display:flex;flex-wrap:wrap;gap:16px}.social-button{align-items:center;border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:pointer;display:inline-flex;font-size:15px;font-weight:600;gap:10px;padding:14px 20px;transition:var(--transition-normal)}.social-button.twitter{background:linear-gradient(135deg,#1da1f2,#0d8bd9);color:#fff}.social-button.linkedin{background:linear-gradient(135deg,#0077b5,#005885);color:#fff}.social-button.facebook{background:linear-gradient(135deg,#4267b2,#365899);color:#fff}.social-button:hover{box-shadow:var(--shadow-xl);transform:translateY(-3px)}.page-navigation{display:flex;justify-content:center;margin-top:48px}.back-navigation{align-items:center;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);color:var(--text-secondary);display:inline-flex;font-size:16px;font-weight:600;gap:12px;padding:16px 32px;text-decoration:none;transition:var(--transition-normal)}.back-navigation:hover{background:var(--primary-color);border-color:var(--primary-color);box-shadow:var(--shadow-lg);color:#fff;transform:translateY(-2px)}.scroll-to-top{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--gradient-primary);border:none;border-radius:50%;bottom:40px;box-shadow:var(--shadow-xl);color:#fff;cursor:pointer;display:flex;height:56px;justify-content:center;position:fixed;right:40px;transition:var(--transition-normal);width:56px;z-index:100}.scroll-to-top:hover{box-shadow:0 20px 40px #3b82f666;transform:translateY(-4px) scale(1.1)}@media (max-width:768px){.page-template{padding:40px 20px 80px}.page-header{flex-direction:column;gap:16px;padding:20px}.page-title{font-size:clamp(28px,6vw,36px);margin-bottom:40px}.featured-image-container{margin-bottom:48px}.content-layout{gap:40px;margin-bottom:60px}.page-content h2{font-size:clamp(22px,5vw,28px);margin-top:48px;padding-left:20px}.page-content h2:before{height:30px}.page-content h3{font-size:clamp(18px,4vw,22px)}.page-content li,.page-content p{font-size:16px}.social-buttons{justify-content:center}.page-footer{padding:40px 24px 32px}}@media (max-width:480px){.page-template{padding:32px 16px 60px}.page-header{padding:16px}.page-title{font-size:clamp(24px,7vw,32px);margin-bottom:32px}.scroll-to-top{bottom:24px;height:48px;right:24px;width:48px}.social-buttons{align-items:center;flex-direction:column}.social-button{justify-content:center;max-width:280px;width:100%}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.e4cf4663.css.map*/