﻿.light .bg{color:#4c4f69;background-color:#eff1f5}.light .chroma{color:#4c4f69;background-color:#eff1f5}.light .chroma .err{color:#d20f39}.light .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.light .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.light .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.light .chroma .hl{background-color:#bcc0cc}.light .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1}.light .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#8c8fa1}.light .chroma .line{display:flex}.light .chroma .k{color:#8839ef}.light .chroma .kc{color:#fe640b}.light .chroma .kd{color:#d20f39}.light .chroma .kn{color:#179299}.light .chroma .kp{color:#8839ef}.light .chroma .kr{color:#8839ef}.light .chroma .kt{color:#d20f39}.light .chroma .na{color:#1e66f5}.light .chroma .nb{color:#04a5e5}.light .chroma .bp{color:#04a5e5}.light .chroma .nc{color:#df8e1d}.light .chroma .no{color:#df8e1d}.light .chroma .nd{color:#1e66f5;font-weight:bold}.light .chroma .ni{color:#179299}.light .chroma .ne{color:#fe640b}.light .chroma .nf{color:#1e66f5}.light .chroma .fm{color:#1e66f5}.light .chroma .nl{color:#04a5e5}.light .chroma .nn{color:#fe640b}.light .chroma .py{color:#fe640b}.light .chroma .nt{color:#8839ef}.light .chroma .nv{color:#dc8a78}.light .chroma .vc{color:#dc8a78}.light .chroma .vg{color:#dc8a78}.light .chroma .vi{color:#dc8a78}.light .chroma .vm{color:#dc8a78}.light .chroma .s{color:#40a02b}.light .chroma .sa{color:#d20f39}.light .chroma .sb{color:#40a02b}.light .chroma .sc{color:#40a02b}.light .chroma .dl{color:#1e66f5}.light .chroma .sd{color:#9ca0b0}.light .chroma .s2{color:#40a02b}.light .chroma .se{color:#1e66f5}.light .chroma .sh{color:#9ca0b0}.light .chroma .si{color:#40a02b}.light .chroma .sx{color:#40a02b}.light .chroma .sr{color:#179299}.light .chroma .s1{color:#40a02b}.light .chroma .ss{color:#40a02b}.light .chroma .m{color:#fe640b}.light .chroma .mb{color:#fe640b}.light .chroma .mf{color:#fe640b}.light .chroma .mh{color:#fe640b}.light .chroma .mi{color:#fe640b}.light .chroma .il{color:#fe640b}.light .chroma .mo{color:#fe640b}.light .chroma .o{color:#04a5e5;font-weight:bold}.light .chroma .ow{color:#04a5e5;font-weight:bold}.light .chroma .c{color:#9ca0b0;font-style:italic}.light .chroma .ch{color:#9ca0b0;font-style:italic}.light .chroma .cm{color:#9ca0b0;font-style:italic}.light .chroma .c1{color:#9ca0b0;font-style:italic}.light .chroma .cs{color:#9ca0b0;font-style:italic}.light .chroma .cp{color:#9ca0b0;font-style:italic}.light .chroma .cpf{color:#9ca0b0;font-weight:bold;font-style:italic}.light .chroma .gd{color:#d20f39;background-color:#ccd0da}.light .chroma .ge{font-style:italic}.light .chroma .gr{color:#d20f39}.light .chroma .gh{color:#fe640b;font-weight:bold}.light .chroma .gi{color:#40a02b;background-color:#ccd0da}.light .chroma .gs{font-weight:bold}.light .chroma .gu{color:#fe640b;font-weight:bold}.light .chroma .gt{color:#d20f39}.light .chroma .gl{text-decoration:underline}.dark .bg{color:#abb2bf;background-color:#282c34}.dark .chroma{color:#abb2bf;background-color:#282c34}.dark .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.dark .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.dark .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.dark .chroma .hl{background-color:#3d4148}.dark .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f}.dark .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#55595f}.dark .chroma .line{display:flex}.dark .chroma .k{color:#c678dd}.dark .chroma .kc{color:#e5c07b}.dark .chroma .kd{color:#c678dd}.dark .chroma .kn{color:#c678dd}.dark .chroma .kp{color:#c678dd}.dark .chroma .kr{color:#c678dd}.dark .chroma .kt{color:#e5c07b}.dark .chroma .n{color:#e06c75}.dark .chroma .na{color:#e06c75}.dark .chroma .nb{color:#e5c07b}.dark .chroma .bp{color:#e06c75}.dark .chroma .nc{color:#e5c07b}.dark .chroma .no{color:#e06c75}.dark .chroma .nd{color:#61afef}.dark .chroma .ni{color:#e06c75}.dark .chroma .ne{color:#e06c75}.dark .chroma .nf{color:#61afef;font-weight:bold}.dark .chroma .fm{color:#56b6c2;font-weight:bold}.dark .chroma .nl{color:#e06c75}.dark .chroma .nn{color:#e06c75}.dark .chroma .nx{color:#e06c75}.dark .chroma .py{color:#e06c75}.dark .chroma .nt{color:#e06c75}.dark .chroma .nv{color:#e06c75}.dark .chroma .vc{color:#e06c75}.dark .chroma .vg{color:#e06c75}.dark .chroma .vi{color:#e06c75}.dark .chroma .vm{color:#e06c75}.dark .chroma .s{color:#98c379}.dark .chroma .sa{color:#98c379}.dark .chroma .sb{color:#98c379}.dark .chroma .sc{color:#98c379}.dark .chroma .dl{color:#98c379}.dark .chroma .sd{color:#98c379}.dark .chroma .s2{color:#98c379}.dark .chroma .se{color:#98c379}.dark .chroma .sh{color:#98c379}.dark .chroma .si{color:#98c379}.dark .chroma .sx{color:#98c379}.dark .chroma .sr{color:#98c379}.dark .chroma .s1{color:#98c379}.dark .chroma .ss{color:#98c379}.dark .chroma .m{color:#d19a66}.dark .chroma .mb{color:#d19a66}.dark .chroma .mf{color:#d19a66}.dark .chroma .mh{color:#d19a66}.dark .chroma .mi{color:#d19a66}.dark .chroma .il{color:#d19a66}.dark .chroma .mo{color:#d19a66}.dark .chroma .o{color:#56b6c2}.dark .chroma .ow{color:#56b6c2}.dark .chroma .c{color:#7f848e}.dark .chroma .ch{color:#7f848e}.dark .chroma .cm{color:#7f848e}.dark .chroma .c1{color:#7f848e}.dark .chroma .cs{color:#7f848e}.dark .chroma .cp{color:#7f848e}.dark .chroma .cpf{color:#7f848e}.dark .chroma .gd{color:#e06c75}.dark .chroma .gi{color:#98c379;font-weight:bold}.dark .gist .highlight{background:#141414}.dark .gist .blob-num,.dark .gist .blob-code-inner,.dark .gist .highlight,.dark .gist .pl-enm,.dark .gist .pl-ko,.dark .gist .pl-mo,.dark .gist .pl-mp1 .pl-sf,.dark .gist .pl-ms,.dark .gist .pl-pdc1,.dark .gist .pl-scp,.dark .gist .pl-smc,.dark .gist .pl-som,.dark .gist .pl-va,.dark .gist .pl-vpf,.dark .gist .pl-vpu,.dark .gist .pl-mdr{color:#aab1bf}.dark .gist .pl-mb,.dark .gist .pl-pdb{font-weight:700}.dark .gist .pl-c,.dark .gist .pl-c span,.dark .gist .pl-pdc{color:#5b6270;font-style:italic}.dark .gist .pl-sr .pl-cce{color:#56b5c2;font-weight:400}.dark .gist .pl-ef,.dark .gist .pl-en,.dark .gist .pl-enf,.dark .gist .pl-eoai,.dark .gist .pl-kos,.dark .gist .pl-mh .pl-pdh,.dark .gist .pl-mr{color:#61afef}.dark .gist .pl-ens,.dark .gist .pl-vi{color:#be5046}.dark .gist .pl-enti,.dark .gist .pl-mai .pl-sf,.dark .gist .pl-ml,.dark .gist .pl-sf,.dark .gist .pl-sr,.dark .gist .pl-sr .pl-sra,.dark .gist .pl-src,.dark .gist .pl-st,.dark .gist .pl-vo{color:#56b5c2}.dark .gist .pl-eoi,.dark .gist .pl-mri,.dark .gist .pl-pds,.dark .gist .pl-pse .pl-s1,.dark .gist .pl-s,.dark .gist .pl-s1{color:#97c279}.dark .gist .pl-k,.dark .gist .pl-kolp,.dark .gist .pl-mc,.dark .gist .pl-pde{color:#c578dd}.dark .gist .pl-mi,.dark .gist .pl-pdi{color:#c578dd;font-style:italic}.dark .gist .pl-mp,.dark .gist .pl-stp{color:#818896}.dark .gist .pl-mdh,.dark .gist .pl-mdi,.dark .gist .pl-mdr{font-weight:400}.dark .gist .pl-mdht,.dark .gist .pl-mi1{color:#97c279;background:#020}.dark .gist .pl-md,.dark .gist .pl-mdhf{color:#df6b75;background:#200}.dark .gist .pl-corl{color:#df6b75;text-decoration:underline}.dark .gist .pl-ib{background:#df6b75}.dark .gist .pl-ii{background:#e0c184;color:#fff}.dark .gist .pl-iu{background:#e05151}.dark .gist .pl-ms1{color:#aab1bf;background:#373b41}.dark .gist .pl-c1,.dark .gist .pl-cn,.dark .gist .pl-e,.dark .gist .pl-eoa,.dark .gist .pl-eoac,.dark .gist .pl-eoac .pl-pde,.dark .gist .pl-kou,.dark .gist .pl-mm,.dark .gist .pl-mp .pl-s3,.dark .gist .pl-mq,.dark .gist .pl-s3,.dark .gist .pl-sok,.dark .gist .pl-sv,.dark .gist .pl-mb{color:#d19965}.dark .gist .pl-enc,.dark .gist .pl-entc,.dark .gist .pl-pse .pl-s2,.dark .gist .pl-s2,.dark .gist .pl-sc,.dark .gist .pl-smp,.dark .gist .pl-sr .pl-sre,.dark .gist .pl-stj,.dark .gist .pl-v,.dark .gist .pl-pdb{color:#e4bf7a}.dark .gist .pl-ent,.dark .gist .pl-entl,.dark .gist .pl-entm,.dark .gist .pl-mh,.dark .gist .pl-pdv,.dark .gist .pl-smi,.dark .gist .pl-sol,.dark .gist .pl-mdh,.dark .gist .pl-mdi{color:#df6b75}:root{interpolate-size:allow-keywords}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%;scroll-behavior:smooth;overflow:overlay}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}::selection{background-color:var(--selection-color)}body{background-color:var(--global-background-color);color:var(--global-font-color);word-wrap:break-word;overflow-wrap:break-word;scrollbar-color:auto}input::-ms-clear{display:none}a,a::before,a::after{text-decoration:none;color:var(--global-link-color)}.dark a,.dark a::before,.dark a::after{color:var(--global-link-color)}a:active,a:hover{color:var(--global-link-hover-color)}.dark a:active,.dark a:hover{color:var(--global-link-hover-color)}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 0.05em 0 0.1em;vertical-align:-0.1em;display:inline-block !important}svg.icon{display:inline-block;height:1em;width:1.25em;vertical-align:-0.125em;color:var(--global-font-color) default}svg.icon>path{fill:currentColor}.details .details-summary:hover{cursor:pointer}.details .details-icon>svg{color:var(--global-font-secondary-color);-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.details .details-content{max-height:0;overflow-y:hidden;transition:max-height 0.5s ease-out}.details.open .details-icon>svg{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:none}.cc-window.cc-banner .cc-btn{color:var(--global-font-color)}.cc-window.cc-banner .cc-btn:hover,.cc-window.cc-banner .cc-btn:focus{background-color:var(--cookie-background-color)}img{object-fit:cover}.page{position:relative;max-width:800px;width:60%;margin:0 auto;padding-top:3.5rem}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.series-nav{margin:0.8rem 0}.series-nav[kept="true"]{display:block}.series-nav .series-title{font-size:1.2rem;font-weight:bold;display:flex;justify-content:space-between;line-height:2em;padding:0 0.75rem;background:var(--code-background-color-darken-6)}.series-nav .series-content{font-size:1rem;background-color:var(--code-background-color)}.series-nav .series-content>nav>ul{margin:0;padding:0.4rem 1rem 0.4rem 1.8rem}.series-nav .series-content ul{text-indent:-0.85rem;padding-left:0.8rem;list-style:none}.series-nav .series-content ul a:first-child::before{content:"|";font-weight:bolder;margin-right:0.5rem;color:var(--single-link-color)}.series-nav .series-content ul span.active{font-weight:bolder;color:var(--single-link-color)}.series-nav .series-content ul span.active:first-child::before{content:"|";margin-right:0.5rem}.series-nav .series-content ul span.active::before{color:var(--single-link-hover-color)}.series-nav .series-content ul ul{padding-left:1.5rem}.series-nav.open .toc-title{background:var(--code-header-color)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.85rem;padding-left:0.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:"|";font-weight:bolder;margin-right:0.5rem;color:var(--single-link-color)}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:var(--code-background-color)}.toc ruby rt{color:var(--global-font-secondary-color)}#toc-auto{display:block;position:absolute;padding:0 0.8rem;border-left:4px solid var(--global-border-color);word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;top:10rem;left:80%;width:20%}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}#toc-auto .toc-title{margin:0.8rem 0}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:0.625rem 0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:var(--single-link-color)}#toc-auto .toc-content a.active::before{color:var(--single-link-hover-color)}#toc-static{display:none;margin:0.8rem 0}#toc-static[kept="true"]{display:block}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 0.75rem;background:var(--code-background-color-darken-6)}#toc-static .toc-content{background-color:var(--code-background-color)}#toc-static .toc-content>nav>ul{margin:0;padding:0.4rem 1rem 0.4rem 1.8rem}#toc-static.open .toc-title{background:var(--code-header-color)}#toc-dialog{transition:display 0.2s allow-discrete, overlay 0.2s allow-discrete, translate 0.2s, opacity 0.2s 0.4s;opacity:0;translate:100vw 0}#toc-dialog::backdrop{transition:display 0.5s allow-discrete, overlay 0.5s allow-discrete, opacity 0.2s 0.4s;opacity:0}#toc-dialog[open],#toc-dialog[open]::backdrop{opacity:1;transition:display 0.2s allow-discrete, overlay 0.2s allow-discrete, translate 0.2s, opacity 0.2s}#toc-dialog[open]{translate:0 0}@starting-style{#toc-dialog[open],#toc-dialog[open]::backdrop{opacity:0}#toc-dialog[open]{translate:100vw 0}}html:has(#toc-dialog[open]){overflow:hidden}.single .single-title{margin:1rem 0 0.5rem;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-subtitle{margin:0.4rem 0;font-size:1.2rem;font-weight:normal;font-style:italic;line-height:100%}.single .post-meta{font-size:0.875rem;color:var(--global-font-secondary-color)}.single .post-meta span{display:inline-block}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:var(--single-link-color)}.dark .single .post-meta a,.dark .single .post-meta a::before,.dark .single .post-meta a::after{color:var(--global-link-color)}.single .post-meta a:active,.single .post-meta a:hover{color:var(--single-link-hover-color)}.dark .single .post-meta a:active,.dark .single .post-meta a:hover{color:var(--global-link-hover-color)}.single .post-meta .author{font-size:1.05rem}.single .featured-image{margin:0.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.single .content>h2{font-size:1.5rem}.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:var(--single-h-font-weight);margin:1.2rem 0}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:"|";margin-right:0.3125rem;color:var(--single-link-color)}.single .content>h2>.header-mark::before{content:"|"}.single .content p{margin:0.5rem 0}.single .content b,.single .content strong{font-weight:bold;color:var(--single-content-strong-color)}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:var(--single-link-color)}.dark .single .content a,.dark .single .content a::before,.dark .single .content a::after{color:var(--single-link-color)}.single .content a:active,.single .content a:hover{color:var(--single-link-hover-color)}.dark .single .content a:active,.dark .single .content a:hover{color:var(--single-link-hover-color)}.single .content a{word-wrap:break-word;overflow-wrap:break-word}.single .content a b,.single .content a strong{color:var(--single-link-color)}.single .content a:hover b,.single .content a:hover strong{color:var(--single-link-hover-color)}.single .content ul,.single .content ol{margin:0.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:var(--code-background-color)}.single .content ruby rt{color:var(--global-font-secondary-color)}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:0.625rem 0;border-spacing:0;background:var(--table-background-color);border-collapse:collapse}.single .content .table-wrapper>table thead{background:var(--table-thead-color)}.single .content .table-wrapper>table td:nth-child(2).lntd{max-width:0;overflow:auto;text-overflow:ellipsis;white-space:nowrap}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:0.3rem 1rem;border:1px solid var(--table-border-color)}.single .content .table-wrapper>table th[role="columnheader"]:not(.no-sort){cursor:pointer}.single .content .table-wrapper>table th[role="columnheader"]:not(.no-sort):after{content:"";float:right;margin:0.7rem -0.5rem 0px 0.5rem;border-width:0 4px 4px;border-style:solid;border-color:var(--global-font-color) transparent;visibility:hidden;opacity:0;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.single .content .table-wrapper>table th[aria-sort="ascending"]:not(.no-sort):after{border-bottom:none;border-width:4px 4px 0}.single .content .table-wrapper>table th[aria-sort]:not(.no-sort):after{visibility:visible;opacity:0.4}.single .content .table-wrapper>table th[role="columnheader"]:not(.no-sort):hover:after{visibility:visible;opacity:1}.single .content img{max-width:100%;min-height:1em}.single .content figure{margin:0.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:0.5rem;margin:0 auto;font-size:0.875rem;color:#969696}.single .content figure img{display:block;height:auto;margin:0 auto;overflow:hidden}.single .content blockquote{display:block;border-left:0.25rem solid var(--blockquote-color);background-color:var(--blockquote-bg-color);padding:0.25rem 0.75rem;margin:1rem 0}.single .content .footnotes{color:var(--global-font-secondary-color)}.single .content .footnotes p{margin:0.25rem 0}.single .content .footnotes li{scroll-margin-top:3.5rem}.single .content .headerLink{scroll-margin-top:3.5rem;line-height:1.2}.single .content sup{scroll-margin-top:3.5rem}.single .content code{display:inline-block;max-width:100%;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:anywhere;-ms-line-break:anywhere;line-break:anywhere;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content code,.single .content pre,.single .content .highlight table,.single .content .highlight tr,.single .content .highlight td{background-color:var(--code-background-color) !important}.single .content code:not(.chroma){display:inline;background-color:var(--inline-code-background-color) !important;border-radius:6px;padding:.2em .4em;font-size:85%;line-height:1.5;color:var(--global-font-color)}.single .content a>code:not(.chroma){color:var(--single-link-color);text-decoration:underline;text-underline-offset:.2rem}.single .content .highlight,.single .content .gist{font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-meta{padding:0.4rem 0.8rem;background-color:var(--code-background-color-darken-5)}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:var(--single-link-color)}.dark .single .content .gist .gist-meta a,.dark .single .content .gist .gist-meta a::before,.dark .single .content .gist .gist-meta a::after{color:var(--single-link-color)}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:var(--single-link-hover-color)}.dark .single .content .gist .gist-meta a:active,.dark .single .content .gist .gist-meta a:hover{color:var(--single-link-hover-color)}.single .content .show-line-numbers>pre>code>span::before{counter-increment:codeblock;content:counter(codeblock);min-width:5ch;text-align:center;background:var(--code-background-color);color:var(--global-font-color);text-wrap:nowrap}.single .content pre>code>span>span.cl{margin-left:1rem}.single .content .show-line-numbers>pre>code>span>span.cl{margin-left:0}.single .content .katex-display{overflow:auto hidden}.single .content .katex-display>.katex{white-space:normal}.single .content .katex-display>.base{margin:0.25em 0}.single .content .katex-display{margin:0.5em 0}.single .content .admonition{position:relative;margin:1rem 0;padding:0 0.75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:0.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:0.5rem 0}.single .content .admonition span.icon>svg{font-size:0.85rem;color:#448aff;position:absolute;top:0.6rem;left:0.4rem}.single .content .admonition span.details-icon>svg{position:absolute;top:0.6rem;right:0.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note span.icon>svg{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract span.icon>svg{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info span.icon>svg{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip span.icon>svg{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success span.icon>svg{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question span.icon>svg{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning span.icon>svg{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure span.icon>svg{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger span.icon>svg{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug span.icon>svg{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example span.icon>svg{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote span.icon>svg{color:#9e9e9e}.single .content .admonition.important{border-left-color:#8957e5}.single .content .admonition.important span.icon>svg{color:#8957e5}.single .content .admonition.caution{border-left-color:#da3633}.single .content .admonition.caution span.icon>svg{color:#da3633}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition.important{background-color:rgba(137,87,229,0.1)}.single .content .admonition.important .admonition-title{border-bottom-color:rgba(137,87,229,0.1);background-color:rgba(137,87,229,0.25)}.single .content .admonition.important.open .admonition-title{background-color:rgba(137,87,229,0.1)}.single .content .admonition.caution{background-color:rgba(218,54,51,0.1)}.single .content .admonition.caution .admonition-title{border-bottom-color:rgba(218,54,51,0.1);background-color:rgba(218,54,51,0.25)}.single .content .admonition.caution.open .admonition-title{background-color:rgba(218,54,51,0.1)}.single .content .admonition:last-child{margin-bottom:0.75rem}.single .content .echarts{margin:0.5rem 0;text-align:center}.single .content .mapbox{margin:0.5rem 0;padding:0.5rem 0}.single .content meting-js{margin:0.5rem 0}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content .friend-link-div{height:92px;margin-top:5px;width:48%;display:inline-block;background:var(--friend-link-background-color);vertical-align:top;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.single .content .friend-link-div:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.single .content .friend-link-div .friend-link-avatar{width:92px;float:left;height:100%}.single .content .friend-link-div .friend-link-avatar img{width:56px;height:56px;margin:18px;border-radius:50%}.single .content .friend-link-div .friend-link-info{margin:18px 18px 18px 92px;color:var(--friend-link-color)}.single .content .friend-link-div .friend-link-info:hover{color:var(--friend-link-hover-color)}.single .content .friend-link-div .friend-link-info .friend-name-div{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.single .content .friend-link-div .friend-link-info .friend-name-div .friend-name{font-style:normal}.single .content .friend-link-div .friend-link-info .friend-bio{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:var(--global-font-secondary-color)}@media screen and (max-width: 680px){.single .content .friend-link-div{width:100%}}.single .content .showcase-box{width:48%;height:370px;margin:1% 0% 0% 0%;display:inline-block !important;background:var(--showcase-background-color);position:relative}.single .content .column-1{width:100%;margin:1% 0% 0% 0%}.single .content .column-2{width:48%}.single .content .column-3{width:32%}.single .content .showcase-image{-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.single .content .showcase-image img{width:96%;margin:2% 2% 0% 2%;height:200px;max-width:none;object-fit:cover}.single .content .showcase-image:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.single .content .showcase-title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:absolute;top:210px;width:96%;margin:3% 3% 3% 2%;font-size:1.25rem;line-height:140%}.single .content .showcase-title a{color:var(--showcase-color)}.single .content .showcase-title a:hover{color:var(--showcase-hover-color)}.single .content .showcase-summary{position:absolute;text-overflow:ellipsis;overflow:hidden;margin:2%;top:250px;height:70px;width:96%}.single .content .showcase-link{position:absolute;bottom:2%;left:2%}.single .content .showcase-link-extra{position:absolute;bottom:2%;right:2%}@media screen and (max-width: 680px){.single .content .showcase-box{width:100% !important;margin:1% 0% 0% 0%}}@media screen and (max-width: 1000px){.single .content .column-3{width:48%}}.single .content pre.mermaid{background:unset}.single .content pre.mermaid>svg{max-width:100%;display:block;margin:auto}.single .content hr{margin:2rem 0;position:relative;border-top:3px dashed var(--global-border-color);border-bottom:none}.single .content kbd{display:inline-block;padding:0.25rem;background-color:var(--global-background-color);border:1px solid var(--global-border-color);border-bottom-color:var(--global-border-color);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 var(--global-border-color);box-shadow:inset 0 -1px 0 var(--global-border-color);font-size:0.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:var(--code-color)}.single .content .version{display:inline-block;height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid var(--global-border-color);padding:1rem 0 0.3rem}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:var(--global-font-secondary-color)}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:var(--single-link-color)}.dark .single .post-footer .post-info .post-info-line .post-info-mod a,.dark .single .post-footer .post-info .post-info-line .post-info-mod a::before,.dark .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:var(--single-link-color)}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:var(--single-link-hover-color)}.dark .single .post-footer .post-info .post-info-line .post-info-mod a:active,.dark .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:var(--single-link-hover-color)}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:var(--global-font-secondary-color)}.single .post-footer .post-info .post-info-line .post-info-license a,.single .post-footer .post-info .post-info-line .post-info-license a::before,.single .post-footer .post-info .post-info-line .post-info-license a::after{text-decoration:none;color:var(--single-link-color)}.dark .single .post-footer .post-info .post-info-line .post-info-license a,.dark .single .post-footer .post-info .post-info-line .post-info-license a::before,.dark .single .post-footer .post-info .post-info-line .post-info-license a::after{color:var(--single-link-color)}.single .post-footer .post-info .post-info-line .post-info-license a:active,.single .post-footer .post-info .post-info-line .post-info-license a:hover{color:var(--single-link-hover-color)}.dark .single .post-footer .post-info .post-info-line .post-info-license a:active,.dark .single .post-footer .post-info .post-info-line .post-info-license a:hover{color:var(--single-link-hover-color)}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:fit-content}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:var(--single-link-color)}.dark .single .post-footer .post-info .post-info-line .post-info-md a,.dark .single .post-footer .post-info .post-info-line .post-info-md a::before,.dark .single .post-footer .post-info .post-info-line .post-info-md a::after{color:var(--single-link-color)}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:var(--single-link-hover-color)}.dark .single .post-footer .post-info .post-info-line .post-info-md a:active,.dark .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:var(--single-link-hover-color)}.single .post-footer .post-info .post-info-line .post-info-share{display:inline-flex;justify-content:center}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info .post-info-line .post-info-share button{background:none;color:inherit;border:none;padding:0;font:inherit;outline:inherit}.single .post-footer .post-info .post-info-line .post-info-share button *{vertical-align:text-bottom}.single .post-footer .post-info .post-info-line .post-info-share button :hover{color:var(--global-link-hover-color)}.single .post-footer .post-info .post-info-line .post-info-share .weixin{position:relative;opacity:1 !important}.single .post-footer .post-info .post-info-line .post-info-share .weixin img{position:absolute;z-index:99;top:-141px;right:2px;width:131px;max-width:none;height:131px;transform:scale(0);transform-origin:bottom right;opacity:0;border:0.3125rem solid #222;border-radius:0.25rem;transition:all 0.25s ease-in-out}.single .post-footer .post-info .post-info-line .post-info-share .weixin:hover img{transform:scale(1);opacity:1}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:" ";display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single .sponsor{text-align:center;padding-top:50px}.single .sponsor .sponsor-avatar img{display:inline-block;width:6rem;height:6rem;margin:10px;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05)}.single .sponsor .sponsor-custom{margin:30px auto;display:block}.single .sponsor .sponsor-bio{width:25%;margin:10px auto}.single .sponsor .sponsor-button{border-style:solid;padding:5px 10px;margin:15px auto;display:inline-block;background-color:var(--sponsor-button-background-color);-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.single .sponsor .sponsor-button:hover{background-color:var(--sponsor-button-hover-background-color);-webkit-transform:scale(1.05);-moz-transform:scale(1.05);-ms-transform:scale(1.05);-o-transform:scale(1.05);transform:scale(1.05)}.single .sponsor .sponsor-button span{vertical-align:middle}@media only screen and (max-width: 1000px){.single .sponsor .sponsor-bio{width:50%}}@media only screen and (max-width: 680px){.single .sponsor .sponsor-bio{width:75%}}.single .related-container{display:flex;flex-wrap:nowrap;overflow-x:scroll;width:100%;height:280px}.single .related-container .related-item-container{flex-basis:350px;flex-grow:1;flex-shrink:1;height:270px;min-width:300px;margin-right:20px;background:var(--related-background-color);position:relative}.single .related-container .related-image{-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.single .related-container .related-image img{width:100%;height:200px;object-fit:cover}.single .related-container .related-image:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.single .related-container .related-title{position:absolute;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;top:210px;width:95%;margin:10px;font-size:1.25rem;line-height:140%}.single .related-container .related-title a{color:var(--related-color)}.single .related-container .related-title a:hover{color:var(--related-hover-color)}.typeit{--ti-cursor-font-family: system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;--ti-cursor-font-size: 16px;--ti-cursor-font-weight: 400;--ti-cursor-line-height: 1.5rem;--ti-cursor-color: var(--global-font-secondary-color);--ti-cursor-margin-left: 0}.typeit .highlight{padding:0.375rem;font-size:0.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;word-break:break-all;white-space:pre-wrap}.lg-toolbar .lg-icon::after{color:#999}#TableOfContents{max-height:75vh;overflow:auto}[id^="WaveDrom_Display"]>svg{margin:0 auto;max-width:100%}.dark [id^="WaveDrom_Display"]>svg{filter:invert(100%)}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{text-align:right}.archive .group-title{margin-top:1.5rem;margin-bottom:1rem}.archive .author-link-icon{padding-top:0.5rem;font-size:1.5rem}.archive .categories-card,.archive .author-card,.archive .series-card{margin:0 auto;margin-top:3rem;display:flex;align-items:flex-start;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item,.archive .author-card .card-item,.archive .series-card .card-item{font-size:0.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;margin-top:2rem;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item .card-item-wrapper,.archive .author-card .card-item .card-item-wrapper,.archive .series-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title,.archive .author-card .card-item .card-item-wrapper .card-item-title,.archive .series-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:0.75rem}.archive .categories-card .card-item .card-item-wrapper span,.archive .author-card .card-item .card-item-wrapper span,.archive .series-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:0.25rem 0 0.25rem 1.5rem;flex-wrap:wrap;column-gap:1rem}.archive .archive-item-link{min-width:10%;overflow:hidden;text-overflow:ellipsis;color:var(--global-link-color)}.archive .archive-item-link:hover{color:var(--global-link-hover-color);background-color:transparent}.archive .archive-item-date{text-align:right;color:var(--global-font-secondary-color);font-variant-numeric:tabular-nums;min-width:fit-content;margin-left:auto}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:var(--global-link-color)}.dark .archive .tag-cloud-tags a,.dark .archive .tag-cloud-tags a::before,.dark .archive .tag-cloud-tags a::after{color:var(--global-link-color)}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:var(--global-link-hover-color)}.dark .archive .tag-cloud-tags a:active,.dark .archive .tag-cloud-tags a:hover{color:var(--global-link-hover-color)}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:var(--global-font-secondary-color)}.home .home-profile{-webkit-transform:translateY(16vh);-moz-transform:translateY(16vh);-ms-transform:translateY(16vh);-o-transform:translateY(16vh);transform:translateY(16vh);padding:0 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.5rem}.home .home-profile .home-avatar img{display:inline-block;width:8rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem)}.home .home-profile .home-title{font-size:1.25rem;font-weight:bold;margin:0;padding:0.5rem}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:0.5rem}.home .home-profile .links{padding:0.5rem;font-size:1.5rem}.home .home-profile .links a *{vertical-align:text-bottom}.home .home-profile .links img{height:1.5rem;padding:0 0.25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.5rem;font-weight:normal;margin:0;padding:0.5rem;color:var(--global-font-secondary-color)}.home[posts] .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding-top:2rem}.home[posts] .home-avatar img{width:6rem}.home[posts] .summary{padding-top:1rem;padding-bottom:0.8rem;color:var(--global-font-color);border-bottom:3px dashed var(--global-border-color)}.home[posts] .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home[posts] .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;object-fit:cover}.home[posts] .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home[posts] .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home[posts] .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;margin-top:0.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:var(--global-font-secondary-color)}.home[posts] .summary .content h2,.home[posts] .summary .content h3,.home[posts] .summary .content h4,.home[posts] .summary .content h5,.home[posts] .summary .content h6,.home[posts] .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home[posts] .summary .content h2::after,.home[posts] .summary .content h3::after,.home[posts] .summary .content h4::after,.home[posts] .summary .content h5::after,.home[posts] .summary .content h6::after,.home[posts] .summary .content p::after{content:"\A";white-space:pre}.home[posts] .summary .content h2{font-size:1.125rem}.home[posts] .summary .content a,.home[posts] .summary .content a::before,.home[posts] .summary .content a::after{text-decoration:none;color:var(--single-link-color)}.dark .home[posts] .summary .content a,.dark .home[posts] .summary .content a::before,.dark .home[posts] .summary .content a::after{color:var(--global-link-color)}.home[posts] .summary .content a:active,.home[posts] .summary .content a:hover{color:var(--single-link-hover-color)}.dark .home[posts] .summary .content a:active,.dark .home[posts] .summary .content a:hover{color:var(--global-link-hover-color)}.home[posts] .summary .content b,.home[posts] .summary .content strong{color:var(--global-font-secondary-color)}.home[posts] .summary .post-footer{margin-top:0.4rem;display:flex;justify-content:space-between;align-items:center;font-size:0.875rem}.home[posts] .summary .post-footer a,.home[posts] .summary .post-footer a::before,.home[posts] .summary .post-footer a::after{text-decoration:none;color:var(--single-link-color)}.dark .home[posts] .summary .post-footer a,.dark .home[posts] .summary .post-footer a::before,.dark .home[posts] .summary .post-footer a::after{color:var(--single-link-color)}.home[posts] .summary .post-footer a:active,.home[posts] .summary .post-footer a:hover{color:var(--single-link-hover-color)}.dark .home[posts] .summary .post-footer a:active,.dark .home[posts] .summary .post-footer a:hover{color:var(--single-link-hover-color)}.home[posts] .summary .post-footer .post-tags{padding:0}.home[posts] .summary .post-footer .post-tags a,.home[posts] .summary .post-footer .post-tags a::before,.home[posts] .summary .post-footer .post-tags a::after{text-decoration:none;color:var(--global-link-color)}.dark .home[posts] .summary .post-footer .post-tags a,.dark .home[posts] .summary .post-footer .post-tags a::before,.dark .home[posts] .summary .post-footer .post-tags a::after{color:var(--global-link-color)}.home[posts] .summary .post-footer .post-tags a:active,.home[posts] .summary .post-footer .post-tags a:hover{color:var(--global-link-hover-color)}.dark .home[posts] .summary .post-footer .post-tags a:active,.dark .home[posts] .summary .post-footer .post-tags a:hover{color:var(--global-link-hover-color)}.introduction blockquote{display:block;border-left:0.25rem solid var(--blockquote-color);background-color:var(--blockquote-bg-color);padding:0.25rem 0.75rem;margin:1rem 0}header{width:100%;z-index:150;background-color:var(--header-background-color);-webkit-transition:box-shadow 0.3s ease;-moz-transition:box-shadow 0.3s ease;-o-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease}header:hover{-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1)}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:0.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.menu .menu-item{position:relative}.language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.language-select:hover{cursor:pointer}.color-theme-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}.color-theme-select:hover{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:2.5rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:var(--header-background-color);vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem;text-align:center;top:-13pt;bottom:-13pt}.search .search-toggle{left:0.5rem;right:auto}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:var(--global-font-color);background-color:var(--search-background-color);padding:0 2rem 0 2rem}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:var(--global-font-secondary-color)}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:var(--global-font-secondary-color)}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:var(--global-font-secondary-color)}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:var(--global-font-secondary-color)}.open .search input::placeholder,.search.mobile input::placeholder{color:var(--global-font-secondary-color)}.open .search .search-button,.search.mobile .search-button{color:var(--global-font-secondary-color)}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch svg{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}.theme-select svg{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}#header-desktop{display:block;position:fixed;height:3.5rem;line-height:3.5rem}#header-desktop .header-wrapper{padding:0 2rem 0 10%}#header-desktop .header-wrapper .header-title{font-size:1.5rem}#header-desktop .header-wrapper .menu{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper .menu .menu-inner{float:right}#header-desktop .header-wrapper .menu .menu-item{margin:0 0.5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{border-left:1.5px solid var(--global-font-color);border-left-color:var(--header-delimiter)}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.theme-select{margin-right:0}#header-desktop .header-wrapper .menu .menu-item.search{margin:0 -0.5rem 0 0}#header-desktop .header-wrapper .menu a.active{font-weight:900;color:var(--header-hover-color)}#header-desktop.open .header-wrapper .menu .menu-item.search{margin:0 0.25rem 0 0.5rem}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:fixed;height:3.5rem;line-height:3.5rem}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:var(--global-font-color);width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:0.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:0.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{text-align:center;background:var(--header-background-color);border-top:2px solid var(--global-border-color);display:none;padding-top:0.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:0.75rem}#header-mobile .header-container .menu .menu-item{display:block;line-height:2.5rem}#header-mobile .header-container .menu.active{display:block}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:var(--global-background-color)}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:0.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title:hover{cursor:pointer}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:0.875rem;float:right;text-align:right;color:var(--global-font-secondary-color)}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:var(--global-font-secondary-color)}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:var(--selection-color)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:var(--code-background-color-darken-5)}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:default}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold;color:var(--search-empty-font-color)}.search-dropdown .dropdown-menu .search-footer{padding:0.5rem 1rem;float:right;font-size:0.8rem;color:var(--global-font-secondary-color)}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:var(--single-link-color)}.dark .search-dropdown .dropdown-menu .search-footer a,.dark .search-dropdown .dropdown-menu .search-footer a::before,.dark .search-dropdown .dropdown-menu .search-footer a::after{color:var(--single-link-color)}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:var(--single-link-hover-color)}.dark .search-dropdown .dropdown-menu .search-footer a:active,.dark .search-dropdown .dropdown-menu .search-footer a:hover{color:var(--single-link-hover-color)}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:fit-content;width:100%;text-align:center;line-height:1.25rem;padding:1rem 0}footer .footer-container{font-size:0.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .icp-br{display:none}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.pagination{display:flex;flex-direction:row;justify-content:center;list-style:none;white-space:nowrap;width:100%;padding:1rem 0 0}.pagination a{font-size:0.8rem;color:var(--global-font-secondary-color);letter-spacing:0.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}.pagination li{padding-bottom:3px;margin:0 20px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:var(--pagination-link-hover-color)}.pagination li:before,.pagination li:after{position:absolute;content:"";width:0;height:3px;background:var(--pagination-link-hover-color);-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}.pagination li:before .active,.pagination li:after .active{width:100%}.pagination li:before{left:50%}.pagination li:after{right:50%}.pagination li:hover:before,.pagination li:hover:after{width:50%}.pagination li.active a{color:var(--pagination-link-hover-color)}.pagination li.active:before,.pagination li.active:after{width:60%}@media only screen and (max-width: 1440px){.page{width:56%}#toc-auto{left:78%;width:22%}}@media only screen and (max-width: 1200px){.page{width:52%}#toc-auto{left:76%;width:24%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 1000px){#toc-auto{display:none}#toc-static{display:block}.page{width:80% !important;margin-left:auto !important;margin-right:auto !important}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile{display:block}body.blur{overflow:hidden}.page{width:100% !important;margin-left:auto !important;padding-top:3.5rem}.page .categories-card .card-item,.page .author-card .card-item,.page .series-card .card-item{width:100%}.copyright .copyright-line .icp-splitter{display:none}.copyright .copyright-line .icp-br{display:block}}.post-container{display:flex;justify-content:center;gap:2rem;margin:0 auto;max-width:1300px}@media only screen and (max-width: 1080px){.post-container{flex-direction:column;gap:0}}.post-single{flex:1;max-width:800px;padding:2rem;background-color:var(--card-background-color);border-radius:8px;box-shadow:0 4px 10px rgba(0,0,0,0.05);transition:background-color 0.3s}.post-header{margin-bottom:2rem;text-align:center}.post-header .post-title{font-size:2.5rem;margin-bottom:1rem;line-height:1.3;color:var(--text-color)}@media only screen and (max-width: 767px){.post-header .post-title{font-size:2rem}}.post-header .post-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;color:var(--text-secondary-color);font-size:0.95rem;margin-top:1rem}.post-header .post-meta>span,.post-header .post-meta>time{display:inline-flex;align-items:center}.post-header .post-meta>span i,.post-header .post-meta>time i{margin-right:0.35rem}.post-header .post-meta a{color:var(--text-secondary-color);text-decoration:none;transition:color 0.2s}.post-header .post-meta a:hover{color:var(--primary-color)}.post-featured-image{margin:1.5rem 0;border-radius:8px;overflow:hidden;max-height:500px}.post-featured-image img{width:100%;height:auto;object-fit:cover;transition:transform 0.3s}.post-featured-image img:hover{transform:scale(1.02)}.post-toc-mobile{margin:2rem 0;border:1px solid var(--border-color);border-radius:6px;background-color:var(--secondary-background-color)}@media only screen and (min-width: 1081px){.post-toc-mobile{display:none}}.post-toc-mobile .post-toc-title{display:flex;justify-content:space-between;align-items:center;padding:0.75rem 1.25rem;font-size:1.1rem;font-weight:600;border-bottom:1px solid var(--border-color);color:var(--text-color)}.post-toc-mobile .post-toc-title i{margin-right:0.5rem}.post-toc-mobile .post-toc-title .toc-dropdown-btn{background:none;border:none;color:var(--text-color);cursor:pointer;transition:transform 0.2s}.post-toc-mobile .post-toc-title .toc-dropdown-btn.active{transform:rotate(180deg)}.post-toc-mobile .post-toc-content{padding:1rem 0.5rem;max-height:75vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.2) transparent}.post-toc-mobile .post-toc-content::-webkit-scrollbar{width:6px}.post-toc-mobile .post-toc-content::-webkit-scrollbar-track{background:transparent}.post-toc-mobile .post-toc-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.2);border-radius:3px;transition:background 0.3s ease}.post-toc-mobile .post-toc-content::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.3)}[theme='dark'] .post-toc-mobile .post-toc-content{scrollbar-color:rgba(255,255,255,0.2) transparent}[theme='dark'] .post-toc-mobile .post-toc-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2)}[theme='dark'] .post-toc-mobile .post-toc-content::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.3)}.post-toc-mobile .post-toc-content nav#TableOfContents ul{list-style:none;padding-left:1rem}.post-toc-mobile .post-toc-content nav#TableOfContents ul li{margin:0.5rem 0;line-height:1.6}.post-toc-mobile .post-toc-content nav#TableOfContents ul li a{color:var(--text-secondary-color);text-decoration:none;transition:all 0.3s ease;display:block;padding:0.5rem 0.75rem;border-radius:0.25rem;border-left:3px solid transparent;font-weight:400}.post-toc-mobile .post-toc-content nav#TableOfContents ul li a:hover{color:var(--primary-color);background-color:rgba(0,0,0,0.03);padding-left:1rem}.post-toc-mobile .post-toc-content nav#TableOfContents ul li a.active{color:var(--primary-color);font-weight:700;border-left-color:var(--primary-color);background-color:rgba(0,0,0,0.05);padding-left:1rem}.post-toc-mobile .post-toc-content nav#TableOfContents ul li ul{margin:0.5rem 0;padding-left:1rem}.post-toc-mobile .post-toc-content nav#TableOfContents ul li ul li a{font-size:0.9rem}.post-toc-mobile .post-toc-content nav#TableOfContents ul li ul li a.active{font-weight:700}.post-sidebar{position:sticky;top:2rem;height:calc(100vh - 4rem);width:350px;margin-top:2rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--primary-color) var(--secondary-background-color);padding-right:0.5rem;z-index:100}.post-sidebar::-webkit-scrollbar{width:4px}.post-sidebar::-webkit-scrollbar-track{background:var(--secondary-background-color)}.post-sidebar::-webkit-scrollbar-thumb{background:var(--primary-color);border-radius:4px}.post-sidebar .toc-toggle-btn{position:fixed;bottom:6rem;right:1.5rem;width:50px;height:50px;border-radius:50%;background-color:var(--primary-color);color:white;border:none;box-shadow:0 4px 10px rgba(0,0,0,0.15);display:none;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;z-index:101;transition:all 0.3s ease}.post-sidebar .toc-toggle-btn:hover{transform:scale(1.05)}.post-sidebar .toc-toggle-btn.active{background-color:#f44336;transform:rotate(90deg)}@media only screen and (max-width: 1080px){.post-sidebar{position:fixed;top:0;right:-400px;height:100vh;width:85%;max-width:350px;background-color:var(--card-background-color);box-shadow:-5px 0 15px rgba(0,0,0,0.1);transition:right 0.3s ease;padding:1rem;margin-top:0}.post-sidebar.active{right:0}.post-sidebar .toc-toggle-btn{display:flex}.post-sidebar .sidebar-toc{max-height:60vh}}.post-sidebar .sidebar-toc{background-color:var(--card-background-color);border-radius:8px;border:1px solid var(--border-color);box-shadow:0 4px 6px rgba(0,0,0,0.05);overflow:hidden;transition:all 0.3s}.post-sidebar .sidebar-toc .sidebar-toc-title{padding:1rem 1.25rem;font-size:1.1rem;font-weight:600;border-bottom:1px solid var(--border-color);color:var(--text-color);background-color:var(--secondary-background-color)}.post-sidebar .sidebar-toc .sidebar-toc-title i{margin-right:0.5rem;color:var(--primary-color)}.post-sidebar .sidebar-toc .sidebar-toc-content{padding:1.25rem;max-height:calc(100vh - 9rem);overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.2) transparent}.post-sidebar .sidebar-toc .sidebar-toc-content::-webkit-scrollbar{width:6px}.post-sidebar .sidebar-toc .sidebar-toc-content::-webkit-scrollbar-track{background:transparent}.post-sidebar .sidebar-toc .sidebar-toc-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.2);border-radius:3px;transition:background 0.3s ease}.post-sidebar .sidebar-toc .sidebar-toc-content::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.3)}[theme='dark'] .post-sidebar .sidebar-toc .sidebar-toc-content{scrollbar-color:rgba(255,255,255,0.2) transparent}[theme='dark'] .post-sidebar .sidebar-toc .sidebar-toc-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2)}[theme='dark'] .post-sidebar .sidebar-toc .sidebar-toc-content::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.3)}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul{list-style:none;padding-left:0;margin:0}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li{margin:0.75rem 0;line-height:1.4;position:relative;transition:all 0.2s ease}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li::before,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li::before{content:"";position:absolute;left:-0.5rem;top:0.5rem;height:6px;width:6px;border-radius:50%;background-color:var(--primary-color);opacity:0;transition:opacity 0.3s}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li a,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li a{color:var(--text-color);text-decoration:none;transition:all 0.3s;display:block;padding:0.25rem 0.75rem;border-left:2px solid transparent;border-radius:0 4px 4px 0;position:relative;font-size:0.95rem;font-weight:400}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li a:hover,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li a:hover{color:var(--primary-color);background-color:rgba(var(--rgb-primary-color, 42, 109, 244), 0.05);padding-left:1rem}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li a.active,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li a.active{color:var(--primary-color);font-weight:700;border-left:3px solid var(--primary-color);background-color:rgba(var(--rgb-primary-color, 42, 109, 244), 0.08);padding-left:1rem}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li a.active::after,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li a.active::after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:2px;background-color:var(--primary-color);opacity:0.3;transition:width 0.3s ease}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li:hover::before,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li:hover::before{opacity:1}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li ul,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li ul{margin:0.35rem 0 0.35rem 0.5rem;border-left:1px dashed var(--border-color);padding-left:0.5rem}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li ul li,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li ul li{margin:0.5rem 0;font-size:0.9rem}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li ul li::before,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li ul li::before{height:4px;width:4px}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li ul li a,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li ul li a{color:var(--text-secondary-color);border-left:1px solid transparent;padding:0.15rem 0.5rem}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li ul li a:hover,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li ul li a:hover{padding-left:0.75rem}.post-sidebar .sidebar-toc .sidebar-toc-content nav.toc-nav ul li ul li a.active,.post-sidebar .sidebar-toc .sidebar-toc-content nav#TableOfContents ul li ul li a.active{border-left-width:2px;padding-left:0.75rem;font-weight:700}.post-sidebar .sidebar-related-posts{background-color:var(--card-background-color);border-radius:8px;border:1px solid var(--border-color);box-shadow:0 4px 6px rgba(0,0,0,0.05);overflow:hidden}.post-sidebar .sidebar-related-posts .sidebar-related-title{padding:1rem 1.25rem;font-size:1.1rem;font-weight:600;border-bottom:1px solid var(--border-color);color:var(--text-color);background-color:var(--secondary-background-color)}.post-sidebar .sidebar-related-posts .sidebar-related-title i{margin-right:0.5rem;color:var(--primary-color)}.post-sidebar .sidebar-related-posts .sidebar-related-content{padding:1rem}.post-sidebar .sidebar-related-posts .sidebar-related-content ul{list-style:none;padding:0;margin:0}.post-sidebar .sidebar-related-posts .sidebar-related-content ul li{margin:0.75rem 0;position:relative;padding-left:1rem;line-height:1.4}.post-sidebar .sidebar-related-posts .sidebar-related-content ul li::before{content:"";position:absolute;left:0;top:0.7rem;width:4px;height:4px;border-radius:50%;background-color:var(--primary-color)}.post-sidebar .sidebar-related-posts .sidebar-related-content ul li a{color:var(--text-secondary-color);text-decoration:none;transition:color 0.2s;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-sidebar .sidebar-related-posts .sidebar-related-content ul li a:hover{color:var(--primary-color)}.post-content{font-size:1.125rem;line-height:1.8;color:var(--text-color);margin-bottom:3rem}.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{position:relative}.post-content h2{margin:2.5rem 0 1rem;font-size:1.8rem;color:var(--text-color);padding-bottom:0.3rem;border-bottom:1px solid var(--border-color)}.post-content h3{margin:2rem 0 1rem;font-size:1.5rem;color:var(--text-color)}.post-content h4,.post-content h5,.post-content h6{margin:1.5rem 0 1rem;color:var(--text-color)}.post-content .heading-indicator{position:absolute;left:-20px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;background-color:var(--primary-color);opacity:0.8;animation:pulse 1.5s infinite}@keyframes pulse{0%{transform:translateY(-50%) scale(0.8);box-shadow:0 0 0 0 rgba(42,109,244,0.7)}70%{transform:translateY(-50%) scale(1);box-shadow:0 0 0 10px rgba(42,109,244,0)}100%{transform:translateY(-50%) scale(0.8);box-shadow:0 0 0 0 rgba(42,109,244,0)}}.post-content p{margin:1.2rem 0}.post-content ul,.post-content ol{margin:1.2rem 0;padding-left:1.5rem}.post-content ul li,.post-content ol li{margin:0.5rem 0}.post-content blockquote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:4px solid var(--primary-color);background-color:var(--quote-background-color);border-radius:4px;color:var(--quote-text-color);font-style:italic}.post-content blockquote p{margin:0.5rem 0}.post-content blockquote cite{display:block;text-align:right;margin-top:0.75rem;font-size:0.9rem}.post-content img{max-width:100%;height:auto;margin:1.5rem 0;border-radius:4px}.post-content table{width:100%;margin:1.5rem 0;border-collapse:collapse}.post-content table th,.post-content table td{border:1px solid var(--border-color);padding:0.5rem}.post-content table th{background-color:var(--secondary-background-color);font-weight:600}.post-content table tr:nth-child(even){background-color:var(--table-row-odd-background-color)}.post-content pre{margin:1.5rem 0;padding:1rem;border-radius:6px;background-color:var(--code-background-color);overflow-x:auto;position:relative}.post-content pre code{font-family:'Fira Code', monospace;font-size:0.9rem;line-height:1.5}.post-content pre::before{content:attr(data-language);position:absolute;top:0;right:0;padding:0.25rem 0.75rem;font-size:0.8rem;background-color:rgba(0,0,0,0.3);color:#fff;border-radius:0 6px 0 6px}.post-content p>code,.post-content li>code{background-color:var(--code-background-color);padding:0.2rem 0.4rem;border-radius:4px;font-family:'Fira Code', monospace;font-size:0.9rem;color:var(--code-text-color)}.post-footer{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.post-footer .post-tags{margin-bottom:1.5rem;color:var(--text-secondary-color);font-size:1rem}.post-footer .post-tags i{margin-right:0.5rem}.post-footer .post-tags a{display:inline-block;margin:0.25rem;padding:0.25rem 0.75rem;background-color:var(--tag-background-color);color:var(--tag-text-color);border-radius:20px;font-size:0.9rem;text-decoration:none;transition:all 0.2s}.post-footer .post-tags a:hover{background-color:var(--primary-color);color:white}.post-nav{display:flex;flex-wrap:wrap;justify-content:space-between;margin:2rem 0}.post-nav a{display:flex;align-items:center;max-width:48%;padding:1rem;border:1px solid var(--border-color);border-radius:6px;text-decoration:none;color:var(--text-color);transition:all 0.2s}.post-nav a:hover{background-color:var(--secondary-background-color);border-color:var(--primary-color)}.post-nav a.prev i{margin-right:0.75rem}.post-nav a.next{text-align:right;margin-left:auto}.post-nav a.next i{margin-left:0.75rem}.post-nav a .nav-text{font-size:0.95rem;font-weight:500}@media (max-width: 575px){.post-nav a .nav-text{display:none}}.post-share{margin:2rem 0;text-align:center}.post-share .share-title{display:block;margin-bottom:1rem;font-size:1.1rem;font-weight:500;color:var(--text-color)}.post-share .share-title i{margin-right:0.5rem}.post-share .share-links{display:flex;justify-content:center;flex-wrap:wrap;gap:0.75rem}.post-share .share-links .share-btn{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:50%;color:#fff;transition:transform 0.2s, opacity 0.2s}.post-share .share-links .share-btn:hover{transform:translateY(-3px);opacity:0.9}.post-share .share-links .share-btn.facebook{background-color:#1877f2}.post-share .share-links .share-btn.twitter{background-color:#1da1f2}.post-share .share-links .share-btn.linkedin{background-color:#0077b5}.post-share .share-links .share-btn.whatsapp{background-color:#25d366}.post-share .share-links .share-btn.telegram{background-color:#0088cc}.post-share .share-links .share-btn.email{background-color:#ea4335}[theme='dark'] .post-toc-mobile .post-toc-content nav#TableOfContents ul li a:hover{background-color:rgba(255,255,255,0.05)}[theme='dark'] .post-toc-mobile .post-toc-content nav#TableOfContents ul li a.active{background-color:rgba(255,255,255,0.08)}@media only screen and (max-width: 767px){.post-single{padding:1.5rem}.post-header .post-meta{flex-direction:column;align-items:center;gap:0.5rem}.post-content{font-size:1rem}.post-content h2{font-size:1.6rem}.post-content h3{font-size:1.4rem}}.tutorial-post .post-info{display:flex;justify-content:space-around;padding:1.5rem;margin:1.5rem 0;background-color:var(--secondary-background-color);border-radius:8px;flex-wrap:wrap;gap:1rem}.tutorial-post .post-info .tutorial-difficulty,.tutorial-post .post-info .tutorial-time{display:flex;flex-direction:column;align-items:center;text-align:center}.tutorial-post .post-info .tutorial-difficulty .difficulty-label,.tutorial-post .post-info .tutorial-difficulty .time-label,.tutorial-post .post-info .tutorial-time .difficulty-label,.tutorial-post .post-info .tutorial-time .time-label{font-size:0.9rem;color:var(--text-secondary-color);margin-bottom:0.5rem}.tutorial-post .post-info .tutorial-difficulty .difficulty-level,.tutorial-post .post-info .tutorial-difficulty .time-value,.tutorial-post .post-info .tutorial-time .difficulty-level,.tutorial-post .post-info .tutorial-time .time-value{font-size:1.1rem;font-weight:500;color:var(--text-color)}.tutorial-post .post-info .tutorial-difficulty .difficulty-beginner,.tutorial-post .post-info .tutorial-time .difficulty-beginner{color:#4caf50}.tutorial-post .post-info .tutorial-difficulty .difficulty-intermediate,.tutorial-post .post-info .tutorial-time .difficulty-intermediate{color:#ff9800}.tutorial-post .post-info .tutorial-difficulty .difficulty-advanced,.tutorial-post .post-info .tutorial-time .difficulty-advanced{color:#f44336}.tutorial-post .post-info .tutorial-difficulty i,.tutorial-post .post-info .tutorial-time i{margin-right:0.25rem}.tutorial-post .post-info .tutorial-difficulty span,.tutorial-post .post-info .tutorial-time span{margin-left:0.25rem}.tutorial-post .tutorial-requirements{margin:1.5rem 0;padding:1.5rem;border:1px solid var(--border-color);border-radius:8px;background-color:var(--secondary-background-color)}.tutorial-post .tutorial-requirements h3{margin-top:0;font-size:1.2rem;color:var(--text-color)}.tutorial-post .tutorial-requirements h3 i{margin-right:0.5rem}.tutorial-post .tutorial-requirements ul{margin:1rem 0 0;padding-left:1rem}.tutorial-post .tutorial-requirements ul li{margin-bottom:0.5rem}.tutorial-post .tutorial-overview{margin:2rem 0;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.tutorial-post .tutorial-overview .overview-header{background-color:var(--secondary-background-color);padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}.tutorial-post .tutorial-overview .overview-header h2{margin:0;font-size:1.3rem;color:var(--text-color)}.tutorial-post .tutorial-overview .overview-header h2 i{margin-right:0.5rem}.tutorial-post .tutorial-overview .overview-content{padding:1.5rem}.tutorial-post .tutorial-overview .overview-content .overview-description{font-size:1.1rem;line-height:1.7;margin-top:0}.tutorial-post .tutorial-overview .overview-content .overview-steps{margin-top:1.5rem}.tutorial-post .tutorial-overview .overview-content .overview-steps h3{font-size:1.2rem;margin-bottom:1rem;color:var(--text-color)}.tutorial-post .tutorial-overview .overview-content .overview-steps nav ul{list-style-type:decimal;padding-left:1.5rem}.tutorial-post .tutorial-overview .overview-content .overview-steps nav ul li{margin-bottom:0.75rem}.tutorial-post .tutorial-overview .overview-content .overview-steps nav ul li a{color:var(--primary-color);text-decoration:none}.tutorial-post .tutorial-overview .overview-content .overview-steps nav ul li a:hover{text-decoration:underline}.tutorial-post .tutorial-overview .overview-content .overview-steps nav ul li ul{list-style-type:disc;margin-top:0.5rem}.tutorial-post .post-content h2{display:flex;align-items:center;margin-top:3rem;margin-bottom:1.5rem;padding:0.75rem 1rem;background-color:var(--secondary-background-color);border-left:5px solid var(--primary-color);border-radius:0 8px 8px 0}.tutorial-post .post-content h2::before{content:"Bước " attr(data-step) ":";margin-right:0.75rem;font-weight:600;color:var(--primary-color)}.tutorial-post .post-content .note,.tutorial-post .post-content .tip,.tutorial-post .post-content .warning,.tutorial-post .post-content .important{padding:1.5rem;margin:1.5rem 0;border-radius:8px;position:relative;padding-left:4rem}.tutorial-post .post-content .note::before,.tutorial-post .post-content .tip::before,.tutorial-post .post-content .warning::before,.tutorial-post .post-content .important::before{font-family:"Font Awesome 5 Free";font-weight:900;position:absolute;left:1.5rem;top:1.5rem;font-size:1.5rem}.tutorial-post .post-content .note strong:first-child,.tutorial-post .post-content .tip strong:first-child,.tutorial-post .post-content .warning strong:first-child,.tutorial-post .post-content .important strong:first-child{display:block;margin-bottom:0.5rem;font-size:1.1rem}.tutorial-post .post-content .note{background-color:rgba(33,150,243,0.1);border-left:5px solid #2196f3}.tutorial-post .post-content .note::before{content:"\f05a";color:#2196f3}.tutorial-post .post-content .tip{background-color:rgba(76,175,80,0.1);border-left:5px solid #4caf50}.tutorial-post .post-content .tip::before{content:"\f0eb";color:#4caf50}.tutorial-post .post-content .warning{background-color:rgba(255,152,0,0.1);border-left:5px solid #ff9800}.tutorial-post .post-content .warning::before{content:"\f071";color:#ff9800}.tutorial-post .post-content .important{background-color:rgba(244,67,54,0.1);border-left:5px solid #f44336}.tutorial-post .post-content .important::before{content:"\f06a";color:#f44336}.tutorial-post .post-content .code-with-filename{margin:1.5rem 0}.tutorial-post .post-content .code-with-filename .filename{display:inline-block;padding:0.5rem 1rem;background-color:var(--primary-color);color:white;font-family:monospace;font-size:0.9rem;border-radius:8px 8px 0 0}.tutorial-post .post-content .code-with-filename pre{margin-top:0;border-radius:0 8px 8px 8px}.tutorial-post .tutorial-completion{display:flex;align-items:center;margin:3rem 0 2rem;padding:1.5rem;background-color:rgba(76,175,80,0.1);border:1px solid rgba(76,175,80,0.3);border-radius:8px}.tutorial-post .tutorial-completion .completion-icon{font-size:3rem;margin-right:1.5rem;color:#4caf50}.tutorial-post .tutorial-completion .completion-message h3{margin-top:0;color:#4caf50}.tutorial-post .tutorial-completion .completion-message p{margin-top:0.5rem;margin-bottom:1rem}.tutorial-post .tutorial-completion .completion-message .next-steps h4{font-size:1.1rem;margin-bottom:0.75rem}.tutorial-post .tutorial-completion .completion-message .next-steps ul{margin-top:0;padding-left:1.25rem}.tutorial-post .tutorial-completion .completion-message .next-steps ul li{margin-bottom:0.5rem}.code-copy-btn{position:absolute;top:0.5rem;right:0.5rem;background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.6);border:none;border-radius:4px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s;z-index:1}.code-copy-btn:hover{background-color:rgba(255,255,255,0.2);color:rgba(255,255,255,0.9)}.code-copy-btn.copied{background-color:#4caf50;color:white}pre{position:relative}.reading-progress-bar{position:fixed;top:0;left:0;width:0;height:3px;background-color:var(--primary-color);z-index:999;transition:width 0.1s ease}@media only screen and (max-width: 767px){.post-toc-title{cursor:pointer}.post-toc-content.collapsed{display:none}}.scroll-to-top{position:fixed;bottom:30px;right:30px;width:40px;height:40px;background-color:var(--primary-color);color:white;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:all 0.3s;z-index:99;box-shadow:0 2px 5px rgba(0,0,0,0.2)}.scroll-to-top.visible{opacity:1;visibility:visible}.scroll-to-top:hover{background-color:var(--primary-color);filter:brightness(0.9);transform:translateY(-3px)}.image-lightbox{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.9);display:flex;align-items:center;justify-content:center;z-index:9999}.image-lightbox .lightbox-content{position:relative;max-width:90%;max-height:90%}.image-lightbox .lightbox-content img{max-width:100%;max-height:90vh;object-fit:contain;border:5px solid white;border-radius:4px}.image-lightbox .lightbox-content .lightbox-caption{position:absolute;bottom:-40px;left:0;width:100%;color:white;text-align:center;padding:10px;font-size:0.9rem}.image-lightbox .lightbox-content .lightbox-close{position:absolute;top:-40px;right:0;background:transparent;color:white;border:none;font-size:2rem;cursor:pointer;line-height:1}.sidebar-toc{background:var(--card-background-color);padding:1.5rem;border-radius:0.5rem;border:1px solid var(--border-color);margin-bottom:1.5rem}.sidebar-toc .sidebar-toc-title{font-weight:600;margin-bottom:1rem;padding:0.5rem 0;color:var(--font-color);font-size:1rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center}.sidebar-toc .sidebar-toc-title i{margin-right:0.5rem;font-size:1rem}.sidebar-toc .sidebar-toc-content{max-height:70vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,0.2) transparent}.sidebar-toc .sidebar-toc-content::-webkit-scrollbar{width:6px}.sidebar-toc .sidebar-toc-content::-webkit-scrollbar-track{background:transparent}.sidebar-toc .sidebar-toc-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.2);border-radius:3px;transition:background 0.3s ease}.sidebar-toc .sidebar-toc-content::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.3)}[theme='dark'] .sidebar-toc .sidebar-toc-content{scrollbar-color:rgba(255,255,255,0.2) transparent}[theme='dark'] .sidebar-toc .sidebar-toc-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2)}[theme='dark'] .sidebar-toc .sidebar-toc-content::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.3)}.sidebar-toc .sidebar-toc-content nav ul{padding-left:0;margin:0}.sidebar-toc .sidebar-toc-content nav ul li{margin:0;list-style-type:none}.sidebar-toc .sidebar-toc-content nav ul li a{color:var(--font-color);text-decoration:none;font-size:0.9rem;line-height:1.6;padding:0.5rem 0.75rem;display:block;border-radius:0.25rem;margin-bottom:0.25rem;border-left:3px solid transparent;transition:all 0.3s ease;font-weight:400}.sidebar-toc .sidebar-toc-content nav ul li a:hover{color:var(--accent-color);background-color:rgba(0,0,0,0.03);padding-left:1rem}.sidebar-toc .sidebar-toc-content nav ul li a.active{color:var(--accent-color);font-weight:700;border-left-color:var(--accent-color);background-color:rgba(0,0,0,0.05);padding-left:1rem}.sidebar-toc .sidebar-toc-content nav ul li ul{padding-left:1rem;margin-top:0.25rem}.sidebar-toc .sidebar-toc-content nav ul li ul li a{font-size:0.85rem;opacity:0.8}.sidebar-toc .sidebar-toc-content nav ul li ul li a:hover{opacity:1}.sidebar-toc .sidebar-toc-content nav ul li ul li a.active{opacity:1;font-weight:700}[theme='dark'] .sidebar-toc .sidebar-toc-content nav ul li a:hover{background-color:rgba(255,255,255,0.05)}[theme='dark'] .sidebar-toc .sidebar-toc-content nav ul li a.active{background-color:rgba(255,255,255,0.08)}.toc-toggle-btn{display:none;background-color:var(--accent-color);color:white;border:none;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1rem;box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.2);transition:transform 0.2s ease}.toc-toggle-btn:hover{transform:scale(1.05)}@media (max-width: 768px){.toc-toggle-btn{display:flex;justify-content:center;align-items:center;position:fixed;bottom:1.5rem;right:1.5rem;z-index:100}}@media (max-width: 768px){.post-sidebar{display:block;position:fixed;top:0;right:-100%;width:80%;height:100%;background-color:var(--card-background-color);z-index:1000;transition:right 0.3s ease;padding:1rem;overflow-y:auto}.post-sidebar.show{right:0;box-shadow:-5px 0 15px rgba(0,0,0,0.1)}}.sidebar-toc{position:sticky;top:2rem}.about-section{min-height:100vh;padding:4rem 0;position:relative;overflow:hidden}.about-section::before{content:"";position:absolute;top:-50%;left:-50%;right:-50%;bottom:-50%;background:linear-gradient(-45deg, rgba(42,109,244,0.05), rgba(111,158,255,0.08), rgba(42,109,244,0.03), rgba(111,158,255,0.05));background-size:400% 400%;animation:gradientShift 15s ease infinite;pointer-events:none;z-index:0}.about-section::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%, rgba(42,109,244,0.15) 0%, transparent 50%),radial-gradient(circle at 80% 70%, rgba(111,158,255,0.15) 0%, transparent 50%),radial-gradient(circle at 50% 50%, rgba(42,109,244,0.08) 0%, transparent 60%);opacity:0.6;pointer-events:none;z-index:0;animation:meshPulse 8s ease-in-out infinite}[theme=dark] .about-section::before{background:linear-gradient(-45deg, rgba(111,158,255,0.08), rgba(42,109,244,0.12), rgba(111,158,255,0.06), rgba(42,109,244,0.08));background-size:400% 400%}[theme=dark] .about-section::after{opacity:0.8}@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes meshPulse{0%,100%{opacity:0.6;transform:scale(1)}50%{opacity:0.8;transform:scale(1.05)}}.about-container{max-width:1200px;margin:0 auto;padding:0 2rem;position:relative;z-index:1}@media (max-width: 768px){.about-container{padding:0 1.5rem}}.about-content-wrapper{max-width:66.666%;margin:0 auto}@media (max-width: 1024px){.about-content-wrapper{max-width:85%}}@media (max-width: 768px){.about-content-wrapper{max-width:100%}}.about-layout{display:grid;grid-template-columns:35% 65%;gap:4rem;align-items:start;margin-bottom:4rem}@media (max-width: 768px){.about-layout{grid-template-columns:1fr;gap:2rem;text-align:center}}.about-profile{position:sticky;top:8rem}@media (max-width: 768px){.about-profile{position:relative;top:0}}.about-avatar-wrapper{position:relative;width:100%;max-width:280px;aspect-ratio:1;margin:0 auto 2rem;animation:float 6s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0px)}50%{transform:translateY(-20px)}}.about-avatar-wrapper::before{content:"";position:absolute;inset:-20px;background:linear-gradient(45deg, rgba(42,109,244,0.4), rgba(111,158,255,0.4), rgba(42,109,244,0.4));border-radius:50%;opacity:0;filter:blur(40px);transition:opacity 0.6s ease;z-index:-1}.about-avatar-wrapper:hover::before{opacity:1;animation:rotate 4s linear infinite}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.about-avatar{width:100%;height:100%;border-radius:50%;overflow:hidden;border:4px solid transparent;background:linear-gradient(var(--card-background-color), var(--card-background-color)) padding-box,linear-gradient(135deg, var(--primary-color), var(--accent-color)) border-box;box-shadow:0 20px 60px rgba(0,0,0,0.15),0 0 0 1px rgba(42,109,244,0.1),inset 0 0 20px rgba(42,109,244,0.05);transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative}.about-avatar::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 30%, rgba(255,255,255,0.8), transparent 60%);opacity:0;transition:opacity 0.4s ease;z-index:1}.about-avatar img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease;filter:contrast(1.05) saturate(1.1)}.about-avatar:hover{transform:scale(1.05) rotate(2deg);box-shadow:0 30px 80px rgba(42,109,244,0.4),0 0 60px rgba(42,109,244,0.3),inset 0 0 30px rgba(42,109,244,0.1)}.about-avatar:hover::before{opacity:0.3}.about-avatar:hover img{transform:scale(1.1);filter:contrast(1.1) saturate(1.2)}[theme=dark] .about-avatar{box-shadow:0 20px 60px rgba(0,0,0,0.5),0 0 0 1px rgba(111,158,255,0.2),inset 0 0 20px rgba(111,158,255,0.08)}[theme=dark] .about-avatar:hover{box-shadow:0 30px 80px rgba(111,158,255,0.5),0 0 60px rgba(111,158,255,0.4),inset 0 0 30px rgba(111,158,255,0.15)}.about-tagline{text-align:center;margin-top:1.5rem;padding:1rem}.about-tagline h3{font-size:1.5rem;font-weight:700;margin-bottom:0.5rem;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.about-tagline p{color:var(--text-secondary-color);font-size:1rem;line-height:1.6;font-style:italic}.about-content{animation:fadeInUp 0.8s ease-out}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.about-section-title,.about-contact h2,.about-tech-stack h2,.about-what-i-do h2{font-size:2.25rem;font-weight:800;margin-bottom:2rem;position:relative;display:inline-block;background:linear-gradient(135deg, var(--text-color), var(--primary-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-0.02em}.about-section-title::after,.about-contact h2::after,.about-tech-stack h2::after,.about-what-i-do h2::after{content:"";position:absolute;bottom:-12px;left:0;width:80px;height:5px;background:linear-gradient(90deg, var(--primary-color) 0%, var(--accent-color) 50%, var(--primary-color) 100%);background-size:200% 100%;border-radius:3px;box-shadow:0 4px 10px rgba(42,109,244,0.3);animation:shimmer 3s ease-in-out infinite}.about-section-title::before,.about-contact h2::before,.about-tech-stack h2::before,.about-what-i-do h2::before{content:"";position:absolute;inset:-5px;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));opacity:0;filter:blur(20px);z-index:-1;transition:opacity 0.3s ease}.about-section-title:hover::before,.about-contact h2:hover::before,.about-tech-stack h2:hover::before,.about-what-i-do h2:hover::before{opacity:0.3}@keyframes shimmer{0%,100%{background-position:0% center}50%{background-position:100% center}}@media (max-width: 768px){.about-section-title,.about-contact h2,.about-tech-stack h2,.about-what-i-do h2{font-size:1.875rem}}.about-description{font-size:1.125rem;line-height:1.8;color:var(--text-color);margin-bottom:3rem}.about-description p{margin-bottom:1.5rem}.about-description p:last-child{margin-bottom:0}.about-description strong{color:var(--primary-color);font-weight:600}.about-what-i-do{margin-bottom:3rem}.about-skill-cards{display:grid;grid-template-columns:repeat(2, 1fr);gap:1.5rem;margin-top:2rem}@media (max-width: 768px){.about-skill-cards{grid-template-columns:1fr}}.about-skill-card{background:var(--card-background-color);border:2px solid var(--border-color);border-radius:16px;padding:2rem;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative;overflow:hidden;backdrop-filter:blur(10px)}.about-skill-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg, var(--primary-color), var(--accent-color));transform:scaleX(0);transform-origin:left;transition:transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)}.about-skill-card::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg, rgba(42,109,244,0.05) 0%, transparent 50%, rgba(111,158,255,0.05) 100%);opacity:0;transition:opacity 0.4s ease;border-radius:16px}.about-skill-card:hover{transform:translateY(-12px) scale(1.02);border-color:var(--primary-color);box-shadow:0 25px 50px rgba(42,109,244,0.15),0 10px 20px rgba(0,0,0,0.1),inset 0 0 60px rgba(42,109,244,0.03)}.about-skill-card:hover::before{transform:scaleX(1)}.about-skill-card:hover::after{opacity:1}.about-skill-card:hover .skill-icon{transform:scale(1.2) rotate(5deg) translateY(-4px);filter:drop-shadow(0 8px 16px rgba(42,109,244,0.3))}[theme=dark] .about-skill-card{background:rgba(37,38,39,0.8);border-color:rgba(59,59,60,0.6)}[theme=dark] .about-skill-card:hover{box-shadow:0 25px 50px rgba(111,158,255,0.2),0 10px 20px rgba(0,0,0,0.5),inset 0 0 60px rgba(111,158,255,0.05)}.skill-icon{font-size:2.5rem;margin-bottom:1rem;transition:transform 0.3s ease;display:inline-block}.skill-title{font-size:1.25rem;font-weight:600;margin-bottom:0.5rem;color:var(--text-color)}.skill-description{color:var(--text-secondary-color);font-size:0.95rem;line-height:1.6}.about-tech-stack{margin-bottom:3rem}.tech-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));gap:1.5rem;margin-top:2rem}@media (max-width: 768px){.tech-grid{grid-template-columns:repeat(3, 1fr);gap:1rem}}.tech-item{background:var(--card-background-color);border:2px solid var(--border-color);border-radius:16px;padding:1.75rem 1.25rem;text-align:center;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative;overflow:hidden;transform-style:preserve-3d;perspective:1000px}.tech-item::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg, transparent 0%, rgba(42,109,244,0.15) 50%, transparent 100%);opacity:0;transform:translateX(-100%) skewX(-15deg);transition:all 0.6s cubic-bezier(0.4, 0, 0.2, 1)}.tech-item::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center, rgba(42,109,244,0.08) 0%, transparent 70%);opacity:0;transition:opacity 0.4s ease;border-radius:16px}.tech-item:hover{transform:translateY(-8px) rotateX(5deg) rotateY(5deg) scale(1.05);border-color:var(--primary-color);box-shadow:0 15px 40px rgba(42,109,244,0.2),0 5px 15px rgba(0,0,0,0.1),inset 0 0 40px rgba(42,109,244,0.05)}.tech-item:hover::before{opacity:1;transform:translateX(100%) skewX(-15deg)}.tech-item:hover::after{opacity:1}.tech-item:hover .tech-logo{transform:scale(1.25) translateZ(20px);filter:drop-shadow(0 8px 20px rgba(42,109,244,0.5))}.tech-item:hover .tech-name{color:var(--primary-color);font-weight:700}[theme=dark] .tech-item{background:rgba(37,38,39,0.8);border-color:rgba(59,59,60,0.6)}[theme=dark] .tech-item:hover{box-shadow:0 15px 40px rgba(111,158,255,0.25),0 5px 15px rgba(0,0,0,0.5),inset 0 0 40px rgba(111,158,255,0.08)}.tech-logo{font-size:2.5rem;margin-bottom:0.75rem;transition:all 0.3s ease;display:inline-block}.tech-name{font-size:0.875rem;font-weight:600;color:var(--text-color)}.about-cta{display:flex;gap:1rem;margin-top:2.5rem;flex-wrap:wrap}@media (max-width: 768px){.about-cta{justify-content:center}}.btn-primary,.btn-secondary{padding:1rem 2.5rem;border-radius:12px;font-weight:700;font-size:1rem;text-decoration:none;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;align-items:center;gap:0.625rem;position:relative;overflow:hidden;letter-spacing:0.02em;text-transform:uppercase;font-size:0.875rem}.btn-primary::before,.btn-secondary::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.4) 50%, transparent 100%);transform:translateX(-100%) skewX(-15deg);transition:transform 0.8s cubic-bezier(0.4, 0, 0.2, 1)}.btn-primary:hover::before,.btn-secondary:hover::before{transform:translateX(100%) skewX(-15deg)}.btn-primary svg,.btn-secondary svg{transition:transform 0.3s ease}.btn-primary:hover svg,.btn-secondary:hover svg{transform:translateX(4px)}.btn-primary{background:linear-gradient(135deg, var(--primary-color), var(--accent-color));background-size:200% 100%;color:white;border:none;box-shadow:0 6px 20px rgba(42,109,244,0.3),0 2px 8px rgba(0,0,0,0.1)}.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 12px 35px rgba(42,109,244,0.5),0 4px 15px rgba(0,0,0,0.15);background-position:100% center}.btn-primary:active{transform:translateY(-1px) scale(0.98)}.btn-secondary{background:transparent;color:var(--primary-color);border:2px solid var(--primary-color);position:relative;z-index:1}.btn-secondary::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));z-index:-1;opacity:0;transition:opacity 0.3s ease;border-radius:12px}.btn-secondary:hover{color:white;border-color:transparent;transform:translateY(-3px) scale(1.02);box-shadow:0 8px 25px rgba(42,109,244,0.4),0 2px 10px rgba(0,0,0,0.1)}.btn-secondary:hover::after{opacity:1}.btn-secondary:active{transform:translateY(-1px) scale(0.98)}.about-contact{margin-top:3rem;padding-top:2rem;border-top:2px solid var(--border-color)}.about-contact h2{font-size:1.5rem}.contact-links{display:flex;gap:1.5rem;margin-top:1.5rem;flex-wrap:wrap}@media (max-width: 768px){.contact-links{justify-content:center}}.contact-link{display:inline-flex;align-items:center;gap:0.75rem;padding:1rem 1.75rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:12px;color:var(--text-color);text-decoration:none;font-weight:600;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative;overflow:hidden}.contact-link::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg, rgba(42,109,244,0.08), rgba(111,158,255,0.08));opacity:0;transition:opacity 0.3s ease;z-index:0}.contact-link span{position:relative;z-index:1}.contact-link svg,.contact-link i{font-size:1.25rem;color:var(--primary-color);transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative;z-index:1}.contact-link:hover{border-color:var(--primary-color);transform:translateY(-5px) scale(1.02);box-shadow:0 8px 25px rgba(42,109,244,0.2),0 3px 10px rgba(0,0,0,0.1)}.contact-link:hover::before{opacity:1}.contact-link:hover svg,.contact-link:hover i{transform:scale(1.2) rotate(5deg);filter:drop-shadow(0 2px 8px rgba(42,109,244,0.4))}.contact-link:hover span{color:var(--primary-color)}.contact-link:active{transform:translateY(-2px) scale(1)}[theme=dark] .contact-link{background:rgba(37,38,39,0.8)}[theme=dark] .contact-link:hover{box-shadow:0 8px 25px rgba(111,158,255,0.25),0 3px 10px rgba(0,0,0,0.3)}.about-decorator{position:absolute;border-radius:50%;filter:blur(100px);opacity:0.1;pointer-events:none;z-index:0}.about-decorator.decorator-1{top:10%;left:-5%;width:400px;height:400px;background:var(--primary-color)}.about-decorator.decorator-2{bottom:10%;right:-5%;width:500px;height:500px;background:var(--accent-color)}html{scroll-behavior:smooth}.fade-in{animation:fadeIn 1s ease-out}@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.about-skill-card,.tech-item{animation:fadeInUp 0.6s ease-out backwards}.about-skill-card:nth-child(1),.tech-item:nth-child(1){animation-delay:.1s}.about-skill-card:nth-child(2),.tech-item:nth-child(2){animation-delay:.2s}.about-skill-card:nth-child(3),.tech-item:nth-child(3){animation-delay:.3s}.about-skill-card:nth-child(4),.tech-item:nth-child(4){animation-delay:.4s}.about-skill-card:nth-child(5),.tech-item:nth-child(5){animation-delay:.5s}.about-skill-card:nth-child(6),.tech-item:nth-child(6){animation-delay:.6s}.about-skill-card:nth-child(7),.tech-item:nth-child(7){animation-delay:.7s}.about-skill-card:nth-child(8),.tech-item:nth-child(8){animation-delay:.8s}.about-skill-card:nth-child(9),.tech-item:nth-child(9){animation-delay:.9s}.about-skill-card:nth-child(10),.tech-item:nth-child(10){animation-delay:1s}.about-skill-card:nth-child(11),.tech-item:nth-child(11){animation-delay:1.1s}.about-skill-card:nth-child(12),.tech-item:nth-child(12){animation-delay:1.2s}.particles-container{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.particle{position:absolute;width:4px;height:4px;background:var(--primary-color);border-radius:50%;opacity:0.3;animation:particleFloat 10s ease-in-out infinite;box-shadow:0 0 10px rgba(42,109,244,0.5)}[theme=dark] .particle{background:var(--accent-color);box-shadow:0 0 10px rgba(111,158,255,0.5)}@keyframes particleFloat{0%,100%{transform:translateY(0) translateX(0) scale(1);opacity:0.3}25%{transform:translateY(-100px) translateX(50px) scale(1.2);opacity:0.5}50%{transform:translateY(-200px) translateX(-30px) scale(0.8);opacity:0.2}75%{transform:translateY(-150px) translateX(80px) scale(1.1);opacity:0.4}}.about-decorator{animation:decoratorPulse 10s ease-in-out infinite}.about-decorator.decorator-1{animation-delay:0s}.about-decorator.decorator-2{animation-delay:5s}@keyframes decoratorPulse{0%,100%{transform:scale(1) rotate(0deg);opacity:0.1}50%{transform:scale(1.2) rotate(180deg);opacity:0.15}}.about-section::-webkit-scrollbar{width:10px}.about-section::-webkit-scrollbar-track{background:var(--secondary-background-color);border-radius:10px}.about-section::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--primary-color), var(--accent-color));border-radius:10px;transition:all 0.3s ease}.about-section::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.about-section ::selection{background:rgba(42,109,244,0.3);color:var(--text-color)}.about-section ::-moz-selection{background:rgba(42,109,244,0.3);color:var(--text-color)}[theme=dark] .about-section ::selection{background:rgba(111,158,255,0.3)}[theme=dark] .about-section ::-moz-selection{background:rgba(111,158,255,0.3)}.about-description p{position:relative;padding-left:1.5rem}.about-description p::before{content:"";position:absolute;left:0;top:0.5em;width:4px;height:calc(100% - 1em);background:linear-gradient(180deg, var(--primary-color), transparent);border-radius:2px;opacity:0.5}.about-tagline h3{position:relative}.about-tagline h3::after{content:"";position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);width:60px;height:3px;background:linear-gradient(90deg, transparent, var(--primary-color), transparent);border-radius:2px}.portfolio-page{min-height:100vh;position:relative;overflow-x:hidden;background:var(--secondary-background-color);cursor:default}[theme=dark] .portfolio-page{background:#0a0a0a}.portfolio-page *{cursor:inherit}.portfolio-page a,.portfolio-page button,.portfolio-page .clickable{cursor:pointer;position:relative}.portfolio-page a::after,.portfolio-page button::after,.portfolio-page .clickable::after{content:'';position:absolute;width:100%;height:100%;top:0;left:0;border-radius:inherit;background:radial-gradient(circle at center, rgba(42,109,244,0.1), transparent);opacity:0;transform:scale(0.8);transition:opacity 0.3s ease, transform 0.3s ease;pointer-events:none;z-index:-1}.portfolio-page a:hover::after,.portfolio-page button:hover::after,.portfolio-page .clickable:hover::after{opacity:1;transform:scale(1)}.particles-bg{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.particles-bg::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%, rgba(42,109,244,0.08) 0%, transparent 40%),radial-gradient(circle at 80% 70%, rgba(111,158,255,0.06) 0%, transparent 40%),radial-gradient(circle at 50% 90%, rgba(42,109,244,0.04) 0%, transparent 40%);animation:gradientFlow 25s ease-in-out infinite}[theme=dark] .particles-bg::before{background:radial-gradient(circle at 20% 30%, rgba(111,158,255,0.12) 0%, transparent 40%),radial-gradient(circle at 80% 70%, rgba(42,109,244,0.08) 0%, transparent 40%),radial-gradient(circle at 50% 90%, rgba(111,158,255,0.06) 0%, transparent 40%)}.particle{position:absolute;border-radius:50%;opacity:0;animation:particleDrift 15s ease-in-out infinite, particleFade 15s ease-in-out infinite}.particle:nth-child(odd){width:4px;height:4px;background:radial-gradient(circle, rgba(42,109,244,0.6), transparent);box-shadow:0 0 12px rgba(42,109,244,0.6)}.particle:nth-child(even){width:3px;height:3px;background:radial-gradient(circle, rgba(111,158,255,0.5), transparent);box-shadow:0 0 10px rgba(111,158,255,0.5)}.particle:nth-child(1){animation-delay:.2s;animation-duration:17s}.particle:nth-child(2){animation-delay:1.1s;animation-duration:20s}.particle:nth-child(3){animation-delay:1.2s;animation-duration:18s}.particle:nth-child(4){animation-delay:.6s;animation-duration:12s}.particle:nth-child(5){animation-delay:.8s;animation-duration:16s}.particle:nth-child(6){animation-delay:.2s;animation-duration:11s}.particle:nth-child(7){animation-delay:.7s;animation-duration:20s}.particle:nth-child(8){animation-delay:1.1s;animation-duration:11s}.particle:nth-child(9){animation-delay:.3s;animation-duration:20s}.particle:nth-child(10){animation-delay:1.3s;animation-duration:20s}.particle:nth-child(11){animation-delay:1.3s;animation-duration:13s}.particle:nth-child(12){animation-delay:.1s;animation-duration:13s}.particle:nth-child(13){animation-delay:1s;animation-duration:16s}.particle:nth-child(14){animation-delay:1.3s;animation-duration:13s}.particle:nth-child(15){animation-delay:.7s;animation-duration:12s}.particle:nth-child(16){animation-delay:.9s;animation-duration:14s}.particle:nth-child(17){animation-delay:1.1s;animation-duration:17s}.particle:nth-child(18){animation-delay:.3s;animation-duration:18s}.particle:nth-child(19){animation-delay:.2s;animation-duration:20s}.particle:nth-child(20){animation-delay:1.4s;animation-duration:16s}.particle:nth-child(21){animation-delay:.2s;animation-duration:17s}.particle:nth-child(22){animation-delay:1.5s;animation-duration:11s}.particle:nth-child(23){animation-delay:1.4s;animation-duration:17s}.particle:nth-child(24){animation-delay:1.1s;animation-duration:11s}.particle:nth-child(25){animation-delay:1.4s;animation-duration:16s}.particle:nth-child(26){animation-delay:1.3s;animation-duration:11s}.particle:nth-child(27){animation-delay:1.4s;animation-duration:20s}.particle:nth-child(28){animation-delay:.1s;animation-duration:13s}.particle:nth-child(29){animation-delay:.3s;animation-duration:19s}.particle:nth-child(30){animation-delay:.2s;animation-duration:17s}[theme=dark] .particle:nth-child(odd){background:radial-gradient(circle, rgba(111,158,255,0.7), transparent);box-shadow:0 0 15px rgba(111,158,255,0.7)}[theme=dark] .particle:nth-child(even){background:radial-gradient(circle, rgba(42,109,244,0.6), transparent);box-shadow:0 0 12px rgba(42,109,244,0.6)}@keyframes particleDrift{0%,100%{transform:translate(0, 0) scale(1) rotate(0deg)}25%{transform:translate(150px, -100px) scale(1.5) rotate(90deg)}50%{transform:translate(80px, -250px) scale(0.8) rotate(180deg)}75%{transform:translate(-120px, -180px) scale(1.2) rotate(270deg)}}@keyframes particleFade{0%,100%{opacity:0}10%,90%{opacity:0.6}50%{opacity:1}}@keyframes gradientFlow{0%,100%{transform:translate(0, 0) scale(1)}33%{transform:translate(5%, -5%) scale(1.1)}66%{transform:translate(-3%, 3%) scale(0.95)}}.portfolio-container{max-width:1400px;width:66.666%;margin:0 auto;position:relative;z-index:1;padding:0 2rem}@media (max-width: 1400px){.portfolio-container{width:75%}}@media (max-width: 1024px){.portfolio-container{width:85%}}@media (max-width: 768px){.portfolio-container{width:100%;padding:0 1.5rem}}.fade-reveal{opacity:0;transform:translateY(60px);transition:all 0.8s cubic-bezier(0.4, 0, 0.2, 1)}.fade-reveal.is-visible{opacity:1;transform:translateY(0)}.section-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:4rem}@media (max-width: 768px){.section-header{margin-bottom:2.5rem}}.section-number{font-size:1.25rem;font-weight:700;color:var(--primary-color);font-family:'Monaco', 'Courier New', monospace}.section-number::before{content:'0'}.section-title{font-size:2.75rem;font-weight:800;letter-spacing:-0.03em;background:linear-gradient(135deg, var(--text-color), var(--primary-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative}@media (max-width: 768px){.section-title{font-size:2rem}}.hero-section{min-height:100vh;display:flex;align-items:center;padding:4rem 0;position:relative}@media (max-width: 768px){.hero-section{min-height:auto;padding:6rem 0 4rem}}.hero-content{display:grid;grid-template-columns:1.2fr 1fr;gap:4rem;align-items:center;width:100%}@media (max-width: 768px){.hero-content{grid-template-columns:1fr;gap:3rem;text-align:center}}.hero-text{animation:heroSlideIn 1s cubic-bezier(0.4, 0, 0.2, 1)}@keyframes heroSlideIn{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:translateX(0)}}.greeting{display:block;font-size:1.25rem;color:var(--primary-color);font-weight:600;margin-bottom:0.5rem;letter-spacing:0.05em}.name{display:block;font-size:4.5rem;font-weight:900;line-height:1.1;letter-spacing:-0.03em;background:linear-gradient(135deg, var(--text-color) 0%, var(--primary-color) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1rem}@media (max-width: 768px){.name{font-size:3rem}}.hero-position{font-size:2rem;font-weight:700;color:var(--text-color);margin-bottom:1.5rem}@media (max-width: 768px){.hero-position{font-size:1.5rem}}.hero-tagline{font-size:1.25rem;line-height:1.7;color:var(--text-secondary-color);max-width:600px;margin-bottom:2.5rem}@media (max-width: 768px){.hero-tagline{margin:0 auto 2.5rem}}.hero-buttons{display:flex;gap:1rem;flex-wrap:wrap}@media (max-width: 768px){.hero-buttons{justify-content:center}}.hero-avatar{position:relative;animation:heroFadeIn 1.2s cubic-bezier(0.4, 0, 0.2, 1) 0.3s backwards}@media (max-width: 768px){.hero-avatar{display:flex;justify-content:center}}@keyframes heroFadeIn{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:scale(1)}}.avatar-wrapper{position:relative;width:400px;height:400px;border-radius:50%;overflow:hidden;border:6px solid transparent;background:linear-gradient(var(--card-background-color), var(--card-background-color)) padding-box,linear-gradient(135deg, var(--primary-color), var(--accent-color)) border-box;box-shadow:0 30px 80px rgba(0,0,0,0.2),0 0 60px rgba(42,109,244,0.3),inset 0 0 40px rgba(42,109,244,0.05);animation:avatarFloat 6s ease-in-out infinite}.avatar-wrapper img{width:100%;height:100%;object-fit:cover;filter:contrast(1.05) saturate(1.1)}@media (max-width: 768px){.avatar-wrapper{width:280px;height:280px}}[theme=dark] .avatar-wrapper{box-shadow:0 30px 80px rgba(0,0,0,0.6),0 0 60px rgba(111,158,255,0.4),inset 0 0 40px rgba(111,158,255,0.08)}@keyframes avatarFloat{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(2deg)}}.btn-primary,.btn-secondary,.btn-icon{padding:1rem 2rem;border-radius:12px;font-weight:700;font-size:0.95rem;text-decoration:none;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);display:inline-flex;align-items:center;gap:0.625rem;position:relative;overflow:hidden;letter-spacing:0.02em;cursor:pointer}.btn-primary svg,.btn-secondary svg,.btn-icon svg{transition:transform 0.3s ease}.btn-primary:hover svg,.btn-secondary:hover svg,.btn-icon:hover svg{transform:translateX(4px)}.btn-primary{background:linear-gradient(135deg, var(--primary-color), var(--accent-color));background-size:200% 100%;color:white;border:none;box-shadow:0 8px 24px rgba(42,109,244,0.35),0 3px 10px rgba(0,0,0,0.1)}.btn-primary::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.3) 45%, rgba(255,255,255,0.5) 50%, rgba(255,255,255,0.3) 55%, transparent 100%);background-size:200% 100%;transform:translateX(-100%);transition:transform 0.6s}.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 40px rgba(42,109,244,0.5),0 6px 18px rgba(0,0,0,0.15),0 0 30px rgba(42,109,244,0.3);background-position:100% center}.btn-primary:hover::before{transform:translateX(100%);animation:shimmer 1.5s infinite}.btn-primary:active{transform:translateY(-1px) scale(0.98)}.btn-secondary{background:transparent;color:var(--primary-color);border:2px solid var(--primary-color)}.btn-secondary::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));opacity:0;transition:opacity 0.3s;z-index:-1;border-radius:12px}.btn-secondary:hover{color:white;border-color:transparent;transform:translateY(-3px) scale(1.02)}.btn-secondary:hover::after{opacity:1}.btn-icon{padding:1rem;background:var(--card-background-color);border:2px solid var(--border-color);color:var(--text-color)}.btn-icon svg{transition:all 0.3s ease}.btn-icon:hover{border-color:var(--primary-color);transform:translateY(-3px) rotate(5deg);box-shadow:0 8px 20px rgba(42,109,244,0.3)}.btn-icon:hover svg{transform:scale(1.1);fill:var(--primary-color)}.about-section{padding:6rem 0}@media (max-width: 768px){.about-section{padding:4rem 0}}.about-compact{display:flex;flex-direction:column;gap:2rem;max-width:900px;margin:0 auto}.profile-bar{display:flex;align-items:center;gap:2rem;padding:1.5rem 2rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,0.06)}@media (max-width: 768px){.profile-bar{flex-wrap:wrap;gap:1rem;padding:1.25rem 1.5rem}}[theme=dark] .profile-bar{background:rgba(20,20,22,0.8);backdrop-filter:blur(20px)}.profile-avatar-mini{position:relative;width:64px;height:64px;flex-shrink:0}.profile-avatar-mini img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--primary-color)}.status-dot-mini{position:absolute;bottom:2px;right:2px;width:14px;height:14px;background:#10b981;border:3px solid var(--card-background-color);border-radius:50%;box-shadow:0 0 0 2px rgba(16,185,129,0.3)}.profile-identity{flex:1;min-width:200px}.profile-identity h3{font-size:1.25rem;font-weight:800;color:var(--text-color);margin:0 0 0.25rem 0;letter-spacing:-0.01em}.profile-identity p{font-size:0.875rem;color:var(--primary-color);font-weight:600;margin:0}.stats-inline{display:flex;gap:2rem}@media (max-width: 768px){.stats-inline{width:100%;justify-content:space-around;gap:1rem}}.stat-inline{display:flex;flex-direction:column;align-items:center}.stat-inline strong{font-size:1.5rem;font-weight:900;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:0.25rem}.stat-inline span{font-size:0.7rem;color:var(--text-secondary-color);font-weight:600;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap}.about-main{padding:2rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,0.06);font-size:1rem;line-height:1.75;color:var(--text-color)}[theme=dark] .about-main{background:rgba(20,20,22,0.8);backdrop-filter:blur(20px)}.about-main p{margin:0 0 1rem 0}.about-main p:last-child{margin-bottom:0}.about-main h3{font-size:1.25rem;font-weight:700;color:var(--text-color);margin:2rem 0 1rem 0}.about-main h3:first-child{margin-top:0}.about-main strong{color:var(--primary-color);font-weight:700}.about-main ul,.about-main ol{margin:1rem 0;padding-left:1.5rem}.about-main ul li,.about-main ol li{margin-bottom:0.5rem}.about-main ul li:last-child,.about-main ol li:last-child{margin-bottom:0}.about-main code{background:var(--bg-tertiary, #f1f5f9);padding:0.2rem 0.4rem;border-radius:4px;font-size:0.9em;color:var(--primary-color);font-family:'Courier New', monospace}.cv-download{margin-top:2rem;padding-top:2rem;border-top:2px solid var(--border-color);display:flex;justify-content:center}.btn-download-cv{display:inline-flex;align-items:center;gap:0.625rem;padding:0.875rem 2rem;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));color:white;font-size:0.9rem;font-weight:700;text-decoration:none;border-radius:12px;box-shadow:0 4px 12px rgba(42,109,244,0.3);transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.btn-download-cv svg{flex-shrink:0;transition:transform 0.3s ease}.btn-download-cv:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(42,109,244,0.4)}.btn-download-cv:hover svg{transform:translateY(2px);animation:downloadBounce 0.6s ease infinite}.btn-download-cv:active{transform:translateY(0)}@keyframes downloadBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}.about-layout{display:none}.profile-card{display:none}.profile-image-wrapper{position:relative;margin-bottom:1.5rem}.profile-image{width:100%;aspect-ratio:1;border-radius:20px;object-fit:cover;border:3px solid transparent;background:linear-gradient(var(--card-background-color), var(--card-background-color)) padding-box,linear-gradient(135deg, var(--primary-color), var(--accent-color)) border-box;box-shadow:0 8px 24px rgba(42,109,244,0.2)}.profile-name{font-size:1.5rem;font-weight:800;color:var(--text-color);margin:0 0 0.5rem 0;letter-spacing:-0.02em}.profile-role{color:var(--primary-color);font-size:1rem;font-weight:600;margin:0}.status-badge{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background:rgba(34,197,94,0.95);backdrop-filter:blur(10px);border-radius:20px;border:2px solid rgba(255,255,255,0.3);box-shadow:0 4px 12px rgba(34,197,94,0.3)}.status-dot{width:8px;height:8px;background:white;border-radius:50%;animation:statusPulse 2s ease-in-out infinite}@keyframes statusPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(1.2)}}.status-text{color:white;font-size:0.8rem;font-weight:700;letter-spacing:0.02em}.profile-info{text-align:center}.profile-name{font-size:1.5rem;font-weight:800;color:var(--text-color);margin-bottom:0.5rem;letter-spacing:-0.02em}.profile-title{color:var(--primary-color);font-size:1rem;font-weight:600;margin-bottom:1.5rem}.profile-stats{display:grid;grid-template-columns:repeat(3, 1fr);gap:0.75rem;margin-bottom:1.5rem;padding:1.5rem 0;border-top:2px solid var(--border-color);border-bottom:2px solid var(--border-color)}.stat-box{text-align:center;padding:0.75rem 0.5rem;background:rgba(42,109,244,0.05);border-radius:12px;transition:all 0.3s ease}.stat-box:hover{background:rgba(42,109,244,0.12);transform:translateY(-3px)}[theme=dark] .stat-box{background:rgba(42,109,244,0.08)}[theme=dark] .stat-box:hover{background:rgba(42,109,244,0.15)}.stat-value{font-size:1.75rem;font-weight:900;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:0.4rem}.stat-label{font-size:0.7rem;color:var(--text-secondary-color);font-weight:600;text-transform:uppercase;letter-spacing:0.05em}.quick-facts{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid var(--border-color)}.fact-item{display:flex;align-items:center;gap:1rem;padding:0.75rem;background:rgba(42,109,244,0.05);border-radius:12px;transition:all 0.3s ease}.fact-item:hover{background:rgba(42,109,244,0.1);transform:translateX(4px)}[theme=dark] .fact-item{background:rgba(42,109,244,0.08)}[theme=dark] .fact-item:hover{background:rgba(42,109,244,0.15)}.fact-icon{font-size:1.5rem;flex-shrink:0}.fact-content{display:flex;flex-direction:column;text-align:left;flex:1}.fact-label{font-size:0.75rem;color:var(--text-secondary-color);font-weight:600;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.25rem}.fact-value{font-size:0.9rem;color:var(--text-color);font-weight:700}.about-content{display:flex;flex-direction:column;gap:3rem}.about-intro{font-size:1.125rem;line-height:1.8;color:var(--text-color)}.about-intro p{margin-bottom:1.5rem}.about-intro p:last-child{margin-bottom:0}.about-intro strong{color:var(--primary-color);font-weight:700}.content-heading{font-size:1.5rem;font-weight:800;color:var(--text-color);margin-bottom:2rem;display:flex;align-items:center;gap:0.75rem;letter-spacing:-0.01em}@media (max-width: 768px){.content-heading{font-size:1.25rem}}.heading-icon{font-size:1.75rem;line-height:1}.highlights-section{margin-bottom:0}.highlights-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:1.5rem}@media (max-width: 1024px){.highlights-grid{grid-template-columns:repeat(2, 1fr)}}@media (max-width: 768px){.highlights-grid{grid-template-columns:1fr}}.highlight-item{padding:2rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:16px;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative;overflow:hidden}.highlight-item::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg, var(--primary-color), var(--accent-color));transform:scaleX(0);transform-origin:left;transition:transform 0.4s ease}.highlight-item:hover{transform:translateY(-8px);border-color:var(--primary-color);box-shadow:0 20px 40px rgba(42,109,244,0.15)}.highlight-item:hover::before{transform:scaleX(1)}.highlight-item:hover .highlight-icon{transform:scale(1.15)}[theme=dark] .highlight-item{background:rgba(20,20,22,0.6);backdrop-filter:blur(10px)}.highlight-icon{font-size:2.5rem;margin-bottom:1rem;display:inline-block;transition:transform 0.3s ease}.highlight-item h4{font-size:1.125rem;font-weight:700;margin-bottom:0.5rem;color:var(--text-color)}.highlight-item p{color:var(--text-secondary-color);font-size:0.9rem;line-height:1.6;margin:0}.expertise-section{padding:2rem;background:linear-gradient(135deg, rgba(42,109,244,0.05), rgba(111,158,255,0.03));border:2px solid var(--border-color);border-radius:20px}[theme=dark] .expertise-section{background:linear-gradient(135deg, rgba(42,109,244,0.08), rgba(111,158,255,0.05));backdrop-filter:blur(10px)}.expertise-title{font-size:1.25rem;font-weight:800;color:var(--text-color);margin-bottom:1.5rem;display:flex;align-items:center;gap:0.75rem}.expertise-title::before{content:"⚡";font-size:1.5rem}.expertise-tags{display:flex;flex-wrap:wrap;gap:0.75rem}.expertise-tag{padding:0.625rem 1.25rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:12px;color:var(--text-color);font-size:0.9rem;font-weight:600;transition:all 0.3s ease;cursor:default}.expertise-tag:hover{border-color:var(--primary-color);background:rgba(42,109,244,0.1);color:var(--primary-color);transform:translateY(-2px)}[theme=dark] .expertise-tag{background:rgba(20,20,22,0.6)}[theme=dark] .expertise-tag:hover{background:rgba(42,109,244,0.15)}.tech-stack-section{padding:6rem 0;position:relative}@media (max-width: 768px){.tech-stack-section{padding:4rem 0}}.tech-stack-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:2rem}@media (max-width: 768px){.tech-stack-grid{grid-template-columns:1fr;gap:1.5rem}}.tech-category-box{background:var(--card-background-color);border:2px solid var(--border-color);border-radius:20px;padding:2rem;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative;overflow:hidden}.tech-category-box::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg, rgba(42,109,244,0.03), rgba(111,158,255,0.02));opacity:0;transition:opacity 0.4s ease}.tech-category-box:hover{border-color:var(--primary-color);box-shadow:0 8px 24px rgba(42,109,244,0.12);transform:translateY(-4px)}.tech-category-box:hover::before{opacity:1}[theme=dark] .tech-category-box{background:rgba(20,20,22,0.6);backdrop-filter:blur(10px);border-color:rgba(60,60,65,0.5)}[theme=dark] .tech-category-box:hover{background:rgba(25,25,28,0.8);border-color:var(--primary-color);box-shadow:0 8px 24px rgba(111,158,255,0.15)}.tech-category-wide{grid-column:1 / -1}@media (max-width: 768px){.tech-category-wide{grid-column:auto}}.tech-category-title{font-size:1.125rem;font-weight:800;color:var(--text-color);margin-bottom:1.25rem;display:flex;align-items:center;gap:0.625rem;letter-spacing:-0.01em;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}@media (max-width: 768px){.tech-category-title{font-size:1rem}}.tech-badges{display:flex;flex-wrap:wrap;gap:0.75rem}@media (max-width: 480px){.tech-badges{gap:0.625rem}}.tech-badge{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background:var(--bg-secondary, #f8f9fa);border:1.5px solid var(--border-color);border-radius:12px;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);cursor:pointer}.tech-badge:hover{background:var(--primary-color);border-color:var(--primary-color);transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px rgba(42,109,244,0.2)}.tech-badge:hover .tech-badge-name{color:white}.tech-badge:hover .tech-badge-icon img{filter:brightness(10)}[theme=dark] .tech-badge{background:rgba(40,40,45,0.6);border-color:rgba(80,80,90,0.5)}[theme=dark] .tech-badge:hover{background:var(--primary-color);border-color:var(--primary-color);box-shadow:0 4px 12px rgba(111,158,255,0.25)}@media (max-width: 480px){.tech-badge{padding:0.4rem 0.75rem;gap:0.4rem}}.tech-badge-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tech-badge-icon img{width:100%;height:100%;object-fit:contain;transition:filter 0.3s ease}@media (max-width: 480px){.tech-badge-icon{width:18px;height:18px}}.tech-badge-name{font-size:0.875rem;font-weight:600;color:var(--text-color);transition:color 0.3s ease;white-space:nowrap}@media (max-width: 480px){.tech-badge-name{font-size:0.8rem}}.tech-category-box:nth-child(1){animation:boxFadeIn 0.6s ease-out .1s backwards}.tech-category-box:nth-child(2){animation:boxFadeIn 0.6s ease-out .2s backwards}.tech-category-box:nth-child(3){animation:boxFadeIn 0.6s ease-out .3s backwards}.tech-category-box:nth-child(4){animation:boxFadeIn 0.6s ease-out .4s backwards}.tech-category-box:nth-child(5){animation:boxFadeIn 0.6s ease-out .5s backwards}@keyframes boxFadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.projects-section{padding:8rem 0}@media (max-width: 768px){.projects-section{padding:5rem 0}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(350px, 1fr));gap:2.5rem}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr}}.project-card{background:var(--card-background-color);border:2px solid var(--border-color);border-radius:20px;overflow:hidden;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative}.project-card::before{content:'';position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));border-radius:20px;opacity:0;z-index:-1;transition:opacity 0.4s ease}.project-card:hover{transform:translateY(-12px) scale(1.02);border-color:transparent;box-shadow:0 25px 60px rgba(42,109,244,0.3),0 0 40px rgba(42,109,244,0.2)}.project-card:hover::before{opacity:1;animation:glowPulse 2s ease-in-out infinite}.project-card:hover .project-image img{transform:scale(1.1) rotate(2deg)}.project-card:hover .project-overlay{opacity:1}[theme=dark] .project-card{background:rgba(37,38,39,0.6)}.project-image{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:var(--secondary-background-color)}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s cubic-bezier(0.4, 0, 0.2, 1)}.project-overlay{position:absolute;inset:0;background:linear-gradient(135deg, rgba(42,109,244,0.9), rgba(111,158,255,0.9));display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 0.4s ease}.project-links{display:flex;gap:1rem}.project-link{width:48px;height:48px;background:white;border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--primary-color);transition:all 0.3s ease}.project-link:hover{transform:scale(1.15) rotate(5deg);box-shadow:0 8px 20px rgba(0,0,0,0.2)}.project-info{padding:2rem}.project-title{font-size:1.5rem;font-weight:700;margin-bottom:0.75rem;color:var(--text-color)}.project-description{color:var(--text-secondary-color);line-height:1.7;margin-bottom:1.5rem}.project-stack{display:flex;flex-wrap:wrap;gap:0.5rem}.stack-tag{padding:0.5rem 1rem;background:rgba(42,109,244,0.1);color:var(--primary-color);border-radius:8px;font-size:0.85rem;font-weight:600;border:1px solid rgba(42,109,244,0.2);transition:all 0.3s ease}.stack-tag:hover{background:rgba(42,109,244,0.2);transform:translateY(-2px)}.architecture-section{padding:8rem 0}@media (max-width: 768px){.architecture-section{padding:5rem 0}}.architecture-intro{font-size:1.125rem;line-height:1.8;color:var(--text-secondary-color);margin-bottom:3rem;max-width:800px;text-align:center;margin-left:auto;margin-right:auto}.architecture-diagram-modern{margin-bottom:4rem;padding:3rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:24px;position:relative;overflow:hidden}.architecture-diagram-modern::before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:radial-gradient(circle at 20% 30%, rgba(42,109,244,0.03) 0%, transparent 50%),radial-gradient(circle at 80% 70%, rgba(111,158,255,0.03) 0%, transparent 50%);pointer-events:none}[theme=dark] .architecture-diagram-modern{background:rgba(37,38,39,0.4);border-color:rgba(80,80,90,0.3)}@media (max-width: 768px){.architecture-diagram-modern{padding:2rem 1.5rem}}.arch-layer-container{display:flex;flex-direction:column;align-items:center;gap:0;position:relative;z-index:1}.arch-layer{width:100%;max-width:600px;padding:2rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:16px;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);position:relative}.arch-layer::before{content:"";position:absolute;inset:-2px;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));border-radius:16px;opacity:0;z-index:-1;transition:opacity 0.3s ease}.arch-layer:hover{transform:translateY(-4px) scale(1.02);border-color:transparent;box-shadow:0 12px 40px rgba(42,109,244,0.2)}.arch-layer:hover::before{opacity:1}.arch-layer:hover .layer-icon{transform:scale(1.2) rotate(5deg)}.arch-layer.featured{border-color:var(--primary-color);box-shadow:0 8px 24px rgba(42,109,244,0.15)}.arch-layer.featured::before{opacity:0.3}[theme=dark] .arch-layer{background:rgba(40,40,45,0.6)}@media (max-width: 768px){.arch-layer{padding:1.5rem}}.layer-icon{font-size:3rem;margin-bottom:1rem;display:inline-block;transition:all 0.3s ease}.layer-content{margin-bottom:1rem}.layer-title{font-size:1.25rem;font-weight:700;color:var(--text-color);margin:0 0 0.5rem 0}.layer-desc{font-size:0.95rem;color:var(--text-secondary-color);margin:0;line-height:1.6}.layer-tech{display:inline-block;padding:0.5rem 1rem;background:linear-gradient(135deg, rgba(42,109,244,0.1), rgba(111,158,255,0.1));border:1px solid rgba(42,109,244,0.2);border-radius:8px;font-size:0.85rem;font-weight:600;color:var(--primary-color)}[theme=dark] .layer-tech{background:rgba(42,109,244,0.15);border-color:rgba(42,109,244,0.3)}.arch-connector{display:flex;flex-direction:column;align-items:center;gap:0.5rem;margin:1rem 0;position:relative}.connector-line{width:3px;height:40px;background:linear-gradient(180deg, var(--primary-color), var(--accent-color));border-radius:2px;position:relative}.connector-line::after{content:"▼";position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);color:var(--accent-color);font-size:1rem}.connector-label{font-size:0.75rem;font-weight:700;color:var(--text-secondary-color);text-transform:uppercase;letter-spacing:0.1em;padding:0.25rem 0.75rem;background:var(--card-background-color);border:1px solid var(--border-color);border-radius:12px}[theme=dark] .connector-label{background:rgba(40,40,45,0.8)}.arch-connector-split{display:flex;gap:4rem;margin:1rem 0}@media (max-width: 768px){.arch-connector-split{gap:2rem}}.connector-branch{display:flex;flex-direction:column;align-items:center;gap:0.5rem}.connector-branch .connector-line{height:30px}.arch-layer-group{display:grid;grid-template-columns:repeat(2, 1fr);gap:2rem;width:100%;max-width:600px}@media (max-width: 768px){.arch-layer-group{grid-template-columns:1fr;gap:1rem}}.arch-layer-small{padding:1.5rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:12px;text-align:center;transition:all 0.3s ease}.arch-layer-small:hover{transform:translateY(-4px);border-color:var(--primary-color);box-shadow:0 8px 24px rgba(42,109,244,0.15)}.arch-layer-small:hover .layer-icon-small{transform:scale(1.2)}[theme=dark] .arch-layer-small{background:rgba(40,40,45,0.6)}.arch-layer-small h5{font-size:1rem;font-weight:700;color:var(--text-color);margin:0.75rem 0 0.5rem 0}.arch-layer-small span{font-size:0.85rem;color:var(--text-secondary-color)}.layer-icon-small{font-size:2rem;transition:transform 0.3s ease}.architecture-principles{margin-top:4rem}.principles-title{font-size:1.5rem;font-weight:800;color:var(--text-color);text-align:center;margin:0 0 2rem 0}.principles-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:1.5rem}.principle-card{display:flex;gap:1.25rem;padding:1.5rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:12px;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);position:relative;overflow:hidden}.principle-card::before{content:"";position:absolute;top:0;left:0;width:4px;height:0;background:linear-gradient(180deg, var(--primary-color), var(--accent-color));transition:height 0.3s ease}.principle-card:hover{transform:translateX(8px);border-color:var(--primary-color);box-shadow:0 8px 24px rgba(42,109,244,0.15)}.principle-card:hover::before{height:100%}.principle-card:hover .principle-number{transform:scale(1.1) rotate(-5deg);background:linear-gradient(135deg, var(--accent-color), var(--primary-color))}[theme=dark] .principle-card{background:rgba(37,38,39,0.6)}.principle-number{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));color:white;border-radius:12px;font-weight:900;font-size:1.25rem;box-shadow:0 4px 12px rgba(42,109,244,0.3);transition:all 0.3s ease}.principle-content{flex:1;display:flex;align-items:center}.principle-content p{font-size:0.95rem;line-height:1.6;color:var(--text-color);margin:0}.arch-layer:nth-child(1){animation:layerFadeIn 0.6s ease-out .15s backwards}.arch-layer:nth-child(3){animation:layerFadeIn 0.6s ease-out .3s backwards}.arch-layer:nth-child(5){animation:layerFadeIn 0.6s ease-out .45s backwards}.arch-layer:nth-child(7){animation:layerFadeIn 0.6s ease-out .6s backwards}@keyframes layerFadeIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.experience-section{padding:8rem 0}@media (max-width: 768px){.experience-section{padding:5rem 0}}.timeline{position:relative;padding-left:3rem}.timeline::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg, var(--primary-color), transparent);border-radius:2px}@media (max-width: 768px){.timeline{padding-left:2rem}}.timeline-item{position:relative;margin-bottom:4rem;animation:slideInLeft 0.8s ease-out}.timeline-item:last-child{margin-bottom:0}@keyframes slideInLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}@keyframes glowPulse{0%,100%{opacity:1;filter:blur(0px)}50%{opacity:0.8;filter:blur(2px)}}@keyframes shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}@keyframes hoverBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes rotateHue{0%{filter:hue-rotate(0deg)}100%{filter:hue-rotate(360deg)}}@keyframes rippleEffect{0%{width:0;height:0;opacity:0.8}100%{width:300px;height:300px;opacity:0}}.timeline-marker{position:absolute;left:-3.5rem;top:0.5rem;width:16px;height:16px;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));border-radius:50%;border:3px solid var(--secondary-background-color);box-shadow:0 0 20px rgba(42,109,244,0.5)}@media (max-width: 768px){.timeline-marker{left:-2.5rem}}[theme=dark] .timeline-marker{border-color:#0a0a0a}.timeline-content{padding:2rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:16px;transition:all 0.4s ease}.timeline-content:hover{border-color:var(--primary-color);transform:translateX(8px);box-shadow:0 12px 32px rgba(0,0,0,0.1)}[theme=dark] .timeline-content{background:rgba(37,38,39,0.6)}.timeline-date{display:inline-block;padding:0.5rem 1rem;background:rgba(42,109,244,0.1);color:var(--primary-color);border-radius:8px;font-size:0.85rem;font-weight:700;margin-bottom:1rem;border:1px solid rgba(42,109,244,0.2)}.timeline-role{font-size:1.5rem;font-weight:700;color:var(--text-color);margin-bottom:0.5rem}.timeline-company{font-size:1.125rem;color:var(--primary-color);font-weight:600;margin-bottom:1rem}.timeline-achievements{list-style:none;padding:0;margin:0}.timeline-achievements li{position:relative;padding-left:1.5rem;margin-bottom:0.75rem;color:var(--text-secondary-color);line-height:1.6}.timeline-achievements li::before{content:"→";position:absolute;left:0;color:var(--primary-color);font-weight:700}.timeline-achievements li:last-child{margin-bottom:0}.contact-section-modern{padding:6rem 0 8rem 0}@media (max-width: 768px){.contact-section-modern{padding:4rem 0 5rem 0}}.contact-container-compact{max-width:700px;margin:0 auto;padding:3rem;background:var(--card-background-color);border:2px solid var(--border-color);border-radius:24px;position:relative;overflow:hidden}.contact-container-compact::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg, var(--primary-color), var(--accent-color))}[theme=dark] .contact-container-compact{background:rgba(37,38,39,0.6)}@media (max-width: 768px){.contact-container-compact{padding:2rem 1.5rem}}.contact-header-compact{text-align:center;margin-bottom:2.5rem}.contact-badge{display:inline-block;padding:0.5rem 1rem;background:linear-gradient(135deg, rgba(42,109,244,0.1), rgba(111,158,255,0.1));border:1px solid rgba(42,109,244,0.3);border-radius:20px;font-size:0.8rem;font-weight:700;color:var(--primary-color);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:1rem}.contact-title-modern{font-size:2.5rem;font-weight:900;color:var(--text-color);margin:0 0 1rem 0;letter-spacing:-0.02em;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media (max-width: 768px){.contact-title-modern{font-size:2rem}}.contact-subtitle{font-size:1rem;line-height:1.6;color:var(--text-secondary-color);margin:0;max-width:500px;margin-left:auto;margin-right:auto}.contact-methods-compact{display:flex;flex-direction:column;gap:1rem;margin-bottom:2.5rem}.contact-item-compact{display:flex;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;background:var(--bg-secondary, #f8f9fa);border:2px solid var(--border-color);border-radius:12px;text-decoration:none;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);position:relative;overflow:hidden}.contact-item-compact::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg, var(--primary-color), var(--accent-color));transform:scaleY(0);transform-origin:bottom;transition:transform 0.3s ease}.contact-item-compact:hover{transform:translateX(8px);border-color:var(--primary-color);background:var(--card-background-color);box-shadow:0 8px 24px rgba(42,109,244,0.12)}.contact-item-compact:hover::before{transform:scaleY(1)}.contact-item-compact:hover .contact-icon-compact{transform:scale(1.1);background:linear-gradient(135deg, var(--accent-color), var(--primary-color))}.contact-item-compact:hover .contact-arrow{transform:translateX(4px);color:var(--primary-color)}[theme=dark] .contact-item-compact{background:rgba(40,40,45,0.4)}@media (max-width: 768px){.contact-item-compact{padding:1rem 1.25rem}}.contact-icon-compact{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, var(--primary-color), var(--accent-color));border-radius:12px;color:white;transition:all 0.3s ease}.contact-icon-compact svg{width:24px;height:24px}.contact-details-compact{flex:1;display:flex;flex-direction:column;gap:0.25rem}.contact-label-compact{font-size:0.8rem;font-weight:700;color:var(--text-secondary-color);text-transform:uppercase;letter-spacing:0.05em}.contact-value-compact{font-size:1rem;font-weight:600;color:var(--text-color)}.contact-arrow{flex-shrink:0;font-size:1.5rem;color:var(--text-secondary-color);transition:all 0.3s ease}.contact-cta-compact{margin-top:2rem;padding-top:2rem;border-top:2px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}@media (max-width: 768px){.contact-cta-compact{flex-direction:column;text-align:center}}.cta-text{font-size:0.95rem;color:var(--text-secondary-color);margin:0;font-style:italic}.availability-badge{display:inline-flex;align-items:center;gap:0.5rem;padding:0.625rem 1.25rem;background:linear-gradient(135deg, rgba(16,185,129,0.1), rgba(5,150,105,0.1));border:2px solid rgba(16,185,129,0.3);border-radius:20px;font-size:0.875rem;font-weight:700;color:#10b981}.availability-badge span:not(.status-dot){letter-spacing:0.02em}.status-dot{width:8px;height:8px;background:#10b981;border-radius:50%;animation:statusPulse 2s ease-in-out infinite;box-shadow:0 0 0 0 rgba(16,185,129,0.7)}@keyframes statusPulse{0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,0.7)}50%{box-shadow:0 0 0 8px rgba(16,185,129,0)}}.portfolio-footer{padding:4rem 0 3rem;text-align:center;border-top:2px solid var(--border-color);margin-top:6rem}.portfolio-footer p{color:var(--text-secondary-color);margin:0.5rem 0}.portfolio-footer p:first-child{font-weight:600;font-size:1rem}.portfolio-footer .footer-subtitle{font-size:0.9rem;opacity:0.7}@media (max-width: 768px){.hero-buttons{flex-direction:column;width:100%}.hero-buttons a{width:100%;justify-content:center}}section{transition-delay:0.2s}section:nth-child(odd){transition-delay:0.3s}.portfolio-page::-webkit-scrollbar{width:12px}.portfolio-page::-webkit-scrollbar-track{background:var(--secondary-background-color)}.portfolio-page::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--primary-color), var(--accent-color));border-radius:6px}.portfolio-page::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.portfolio-page ::selection{background:rgba(42,109,244,0.3);color:var(--text-color)}:root{--card-background-color: #ffffff;--text-color: #333333;--text-secondary-color: #666666;--border-color: #eaeaea;--secondary-background-color: #f9f9f9;--primary-color: #2a6df4;--accent-color: #2a6df4;--accent-color-rgb: 42, 109, 244;--rgb-primary-color: 42, 109, 244;--quote-background-color: #f8f9fa;--quote-text-color: #555;--code-background-color: #f5f5f5;--code-text-color: #e83e8c;--tag-background-color: #f0f0f0;--tag-text-color: #555;--table-row-odd-background-color: #f8f8f8;--font-color: #333333}[theme=dark]{--card-background-color: #252627;--text-color: #e1e1e1;--text-secondary-color: #a8a8b2;--border-color: #3b3b3c;--secondary-background-color: #1d1e1f;--primary-color: #6f9eff;--accent-color: #6f9eff;--accent-color-rgb: 111, 158, 255;--rgb-primary-color: 111, 158, 255;--quote-background-color: #1f2020;--quote-text-color: #c9c9c9;--code-background-color: #2d2d30;--code-text-color: #f08c9e;--tag-background-color: #3b3b3c;--tag-text-color: #c9c9c9;--table-row-odd-background-color: #2a2b2d;--font-color: #e1e1e1}.home[posts] .home-avatar{position:relative}.home[posts] .home-avatar::after{content:"";position:absolute;top:-20px;left:-20px;right:-20px;bottom:-20px;z-index:-1;background:linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);background-size:400% 400%;border-radius:50%;opacity:0.15;animation:gradient 15s ease infinite}@keyframes gradient{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}.post-content div.highlight{position:relative;margin:2rem 0;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.1)}.post-content div.highlight::before{content:attr(data-lang);position:absolute;top:0;right:0;background:var(--primary-color);color:white;padding:0.25rem 0.75rem;font-size:0.75rem;border-radius:0 8px 0 8px}.post-content div.highlight pre{margin:0;padding:2rem 1rem 1rem;font-family:'Fira Code', 'Source Code Pro', 'Monaco', monospace}.post-content blockquote{border-left-width:5px;border-left-color:var(--primary-color)}.post-content blockquote::before{content:"\201C";font-family:Georgia, serif;font-size:3rem;position:absolute;left:10px;top:-10px;opacity:0.2;color:var(--primary-color)}.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{position:relative}.post-content h2 .header-mark,.post-content h3 .header-mark,.post-content h4 .header-mark,.post-content h5 .header-mark,.post-content h6 .header-mark{opacity:0;transition:opacity 0.2s}.post-content h2:hover .header-mark,.post-content h3:hover .header-mark,.post-content h4:hover .header-mark,.post-content h5:hover .header-mark,.post-content h6:hover .header-mark{opacity:1}.post-content figure{margin:2rem auto;text-align:center}.post-content figure img{max-width:100%;height:auto;border-radius:8px}.post-content figure figcaption{margin-top:0.5rem;font-size:0.9rem;color:var(--text-secondary-color);font-style:italic}.reading-progress-bar{position:fixed;top:0;left:0;width:0;height:3px;background-color:var(--primary-color);z-index:999;transition:width 0.1s ease}ul:not(.toc) li{position:relative;list-style-type:none;padding-left:1.5rem}ul:not(.toc) li::before{content:'\2022';color:#2a6df4;position:absolute;left:0;font-weight:bold}

/*# sourceMappingURL=style.min.css.map */