@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@100..800&family=Noto+Serif+SC:wght@200..900&display=swap";.goo-filter-container{z-index:1;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.pixel-trail-fullscreen{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.pixel-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.app-wrapper{width:100%;max-width:900px;min-height:100vh;margin:0 auto;position:relative}.app-content{color:var(--text-primary);line-height:1.8}.app-content a{color:var(--link-color);text-decoration:none}.app-content a:hover{color:var(--link-hover-color)}.home-container{flex-direction:column;width:100%;padding:40px 20px;display:flex}.title-badge{flex-direction:row;align-items:center;width:100%;height:2em;margin-bottom:1.5em;display:flex}.home-content{border-top:var(--border-color) 1px solid;width:100%;padding-top:1em}.title-badge-image{aspect-ratio:1;height:2em;margin-right:10px}.title-badge-text{align-items:center;font-size:20px;display:flex}.home-title{margin-bottom:.5em;font-size:3em;font-weight:100}.home-text-en{font-family:var(--font-mono)}.header-area{justify-content:space-between;display:flex}.to-blogs{color:var(--link-color);align-items:end;padding-bottom:2em;font-weight:500;text-decoration:none;transition:all .3s;display:flex}.to-blogs:hover{color:var(--link-hover-color);transform:translate(4px)}.link-container{font-family:var(--font-mono);margin-top:2em}@media only screen and (width<=580px){.header-area{flex-direction:column}}.home-page-overlay{z-index:0;pointer-events:none;background:var(--home-overlay-color);mix-blend-mode:multiply;transition:background-color .3s;position:fixed;inset:0}[data-theme=dark] .home-page-overlay{mix-blend-mode:normal}.home-page .basic-container{z-index:10;isolation:isolate;color:var(--home-text-primary);position:relative}.home-page,.home-page p,.home-page span,.home-page div,.home-page .home-title{color:var(--home-text-primary)}.home-page .home-content{border-top-color:var(--home-border-color)}.home-page .to-blogs{color:var(--home-link-color)}.home-page .to-blogs:hover{color:var(--home-text-primary)}.basic-container{width:100%;padding:60px 20px 20px}.dot-field-container{z-index:-1;pointer-events:none;background-color:var(--bg-primary);position:fixed;inset:0;overflow:hidden}.blog-back-link{color:var(--link-color);align-items:end;font-weight:500;text-decoration:none;transition:all .3s;display:flex}.blog-list-container{width:100%;padding:20px}.list-header{text-align:center;border-bottom:2px solid var(--border-color);margin-bottom:50px;padding-bottom:30px}.list-header h1{color:var(--text-primary);margin:0 0 10px;font-size:2.5em}.list-header p{color:var(--text-secondary);margin:0;font-size:1.1em}.blog-list-empty{text-align:center;color:var(--text-tertiary);padding:60px 20px}.blog-list-empty p{margin:10px 0;font-size:1.1em}.blog-list-loading,.blog-list-error{text-align:center;color:var(--text-secondary);padding:60px 20px;font-size:1.2em}.blog-list-error h2{color:#d32f2f;margin-bottom:15px}.blog-list-error p{color:var(--text-secondary)}.comments-container{border-top:1px solid var(--border-color);margin-top:40px;padding-top:40px}.comments-title{color:var(--text-primary);margin:0 0 20px;font-size:1.5em}.auth-bar{background-color:var(--bg-secondary);border:1px solid var(--border-color);justify-content:flex-end;align-items:center;margin-bottom:20px;padding:12px;display:flex}.auth-info{align-items:center;gap:12px;display:flex}.auth-user{color:var(--text-primary);font-size:.95em}.auth-login-btn,.auth-logout-btn{background-color:var(--link-color);color:var(--bg-primary);cursor:pointer;border:none;padding:8px 16px;font-size:.9em;font-weight:600;transition:background-color .3s}.auth-login-btn:hover,.auth-logout-btn:hover{background-color:var(--link-hover-color)}.login-modal{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-modal-content{background-color:var(--bg-primary);border:1px solid var(--border-color);width:90%;max-width:400px;max-height:90vh;padding:24px;position:relative;overflow-y:auto}.login-modal-close{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5em;transition:color .3s;position:absolute;top:12px;right:12px}.login-modal-close:hover{color:var(--text-primary)}.login-title{color:var(--text-primary);text-align:center;margin:0 0 16px;font-size:1.3em}.login-tabs{border-bottom:1px solid var(--border-color);gap:8px;margin-bottom:16px;display:flex}.login-tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-weight:500;transition:all .3s}.login-tab-btn.active{color:var(--link-color);border-bottom-color:var(--link-color)}.login-tab-btn:hover:not(.active){color:var(--text-primary)}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-input{border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;border-radius:2px;padding:10px;font-family:inherit;font-size:.95em;transition:border-color .3s}.auth-input:focus{border-color:var(--link-color);outline:none}.auth-submit-btn{background-color:var(--link-color);color:var(--bg-primary);cursor:pointer;border:none;border-radius:2px;margin-top:4px;padding:10px;font-weight:600;transition:background-color .3s}.auth-submit-btn:hover:not(:disabled){background-color:var(--link-hover-color)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-toggle-btn{color:var(--link-color);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:.9em;text-decoration:underline;transition:color .3s}.auth-toggle-btn:hover{color:var(--link-hover-color)}.oauth-btn{border:1px solid var(--border-color);background-color:var(--bg-secondary);width:100%;color:var(--text-primary);cursor:pointer;border-radius:2px;margin-top:8px;padding:12px;font-weight:600;transition:all .3s}.oauth-btn:hover:not(:disabled){background-color:var(--bg-primary);border-color:var(--link-color)}.oauth-btn:disabled{opacity:.6;cursor:not-allowed}.github-btn{border-color:#333}.google-btn{border-color:#d33025}.auth-error-message{color:#c33;background-color:#fee;border:1px solid #fcc;border-radius:2px;margin-bottom:12px;padding:10px;font-size:.9em}.comment-form{background-color:var(--bg-primary);border:1px solid var(--border-color);margin-bottom:30px;padding:10px}.reply-notice{background-color:var(--blockquote-bg);border-left:3px solid var(--link-color);color:var(--text-secondary);border-radius:2px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px 12px;font-size:.9em;display:flex}.reply-notice strong{color:var(--text-primary);margin:0 4px}.cancel-reply{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;margin-left:8px;padding:0;font-size:1.2em;transition:color .3s}.cancel-reply:hover{color:var(--text-primary)}.form-input,.form-textarea{border:1px solid var(--border-color);background-color:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;margin-bottom:12px;padding:10px;font-family:inherit;font-size:.95em;transition:border-color .3s;display:block}.form-input:focus,.form-textarea:focus{border-color:var(--link-color);outline:none}.form-textarea{resize:vertical;min-height:100px}.form-actions{align-items:center;gap:10px;display:flex}.submit-btn{background-color:var(--link-color);color:var(--bg-primary);cursor:pointer;border:none;padding:10px 20px;font-weight:600;transition:background-color .3s}.submit-btn:hover{background-color:var(--link-hover-color)}.comments-list{margin-top:20px}.no-comments{text-align:center;color:var(--text-tertiary);padding:40px 20px;font-size:.95em}.comment-item{background-color:var(--bg-secondary);border:1px solid var(--border-color);margin-bottom:12px;padding:16px;transition:background-color .3s}.comment-item:hover{background-color:var(--bg-primary)}.comment-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.comment-author{color:var(--text-primary);font-weight:600}.comment-time{color:var(--text-tertiary);font-size:.85em}.comment-delete{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-size:.85em;transition:color .3s}.comment-delete:hover{color:#d32f2f}.comment-reply-to{color:var(--text-secondary);background-color:var(--blockquote-bg);border-left:2px solid var(--link-color);margin-bottom:8px;padding:6px 8px;font-size:.85em}.comment-reply-to span{color:var(--text-primary);font-weight:600}.comment-content{color:var(--text-primary);word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;margin:12px 0;line-height:1.6}.comment-reply-btn{border:1px solid var(--link-color);color:var(--link-color);cursor:pointer;background:0 0;padding:4px 12px;font-size:.9em;transition:all .3s}.comment-reply-btn:hover{background-color:var(--link-color);color:var(--bg-primary)}.comment-replies{border-left:2px solid var(--border-color);margin-top:12px;margin-left:12px;padding-left:0}.comment-replies .comment-item{background-color:var(--bg-primary);margin-bottom:8px;padding:12px;font-size:.95em}@media (width<=540px){.comments-container{margin-top:30px;padding-top:30px}.comments-title{margin-bottom:16px;font-size:1.3em}.auth-bar{margin-bottom:16px;padding:10px}.auth-info{justify-content:space-between;width:100%}.comment-form{margin-bottom:20px;padding:16px}.form-input,.form-textarea{margin-bottom:10px;padding:8px;font-size:16px}.form-textarea{min-height:80px}.form-actions{flex-direction:row}.submit-btn,.form-actions .auth-login-btn{flex:1;padding:12px}.login-modal-content{max-width:95%;padding:16px}.comment-item{margin-bottom:10px;padding:12px}.comment-header{flex-direction:column;align-items:flex-start;gap:4px}.comment-delete{margin-top:8px;margin-left:0}.reply-notice{flex-direction:column;align-items:flex-start;gap:8px}.cancel-reply{margin-left:0}.comment-replies{margin-left:8px;padding-left:0}.comment-replies .comment-item{padding:10px;font-size:.9em}}.warning-blockquote{border-left:4px solid var(--warning-border);background-color:var(--warning-bg);color:var(--warning-text);margin:1.5em 0;padding:10px 10px 10px 15px}.warning-blockquote-title{color:var(--warning-title-color);align-items:center;gap:8px;margin-bottom:8px;font-size:1.1em;font-weight:700;display:flex}.warning-blockquote-content{font-size:.95em;line-height:1.6}.print-paper-blockquote{background:var(--print-paper-bg);box-shadow:0 10px 24px var(--print-paper-shadow);color:var(--print-paper-text);filter:saturate(.9)contrast(.97);max-width:min(100%,42rem);margin:1.8em auto;padding:0 1.9rem;position:relative;overflow:hidden}.print-paper-blockquote:before,.print-paper-blockquote:after{content:"";pointer-events:none;z-index:0;width:1.6rem;position:absolute;top:0;bottom:0}.print-paper-blockquote:before{border-right:1px dashed color-mix(in srgb, var(--bg-primary) 78%, transparent);background:radial-gradient(circle, var(--bg-primary) 0 5px, transparent 5.5px) center 14px / 100% 24px repeat-y;left:0}.print-paper-blockquote:after{border-left:1px dashed color-mix(in srgb, var(--bg-primary) 78%, transparent);background:radial-gradient(circle, var(--bg-primary) 0 5px, transparent 5.5px) center 14px / 100% 24px repeat-y;right:0}.print-paper-blockquote .print-paper-content:before{content:none}.print-paper-content{z-index:1;font-family:var(--font-mono);letter-spacing:.02em;padding:1.4rem 1.25rem 1.2rem;font-size:.98rem;line-height:1.75;position:relative}.print-paper-content>*{z-index:1;position:relative}.print-paper-content>:first-child{margin-top:0}.print-paper-content>:last-child{margin-bottom:0}.print-paper-content p,.print-paper-content li,.print-paper-content strong,.print-paper-content em,.print-paper-content code{color:var(--print-paper-text)}.print-paper-content code{background:color-mix(in srgb, var(--print-paper-accent) 12%, transparent)}.print-paper-content a{color:var(--print-paper-accent)}.mac-bash{box-shadow:0 8px 24px var(--mac-bash-shadow);font-family:var(--font-mono);border-radius:8px;max-width:min(42rem,100%);margin:1.5em auto;overflow:hidden}.mac-bash-titlebar{background:linear-gradient(180deg, var(--mac-bash-titlebar-from) 0%, var(--mac-bash-titlebar-to) 100%);border-bottom:1px solid var(--mac-bash-titlebar-border);-webkit-user-select:none;user-select:none;align-items:center;height:36px;padding:0 12px;display:flex}.mac-bash-buttons{align-items:center;gap:8px;display:flex}.mac-bash-btn{border:.5px solid var(--mac-bash-btn-border);border-radius:50%;width:12px;height:12px}.mac-bash-btn--close{background:#ff5f57}.mac-bash-btn--minimize{background:#febc2e}.mac-bash-btn--maximize{background:#28c840}.mac-bash-title{text-align:center;color:var(--mac-bash-title-color);flex:1;margin-right:44px;font-size:13px;font-weight:500}.mac-bash-body{background:var(--mac-bash-body-bg);color:var(--mac-bash-body-color);min-height:48px;padding:14px 16px;font-size:.9rem;line-height:1.7}.mac-bash-body>:first-child{display:inline}.mac-bash-body:before{content:"$ ";color:var(--mac-bash-prompt-color);-webkit-user-select:none;user-select:none;font-weight:600}.mac-bash-body p{color:var(--mac-bash-body-color);margin:.15em 0}.mac-bash-body p:last-child{margin-bottom:0}.mac-bash-body code{background:var(--mac-bash-code-bg);color:var(--mac-bash-code-color);border-radius:3px;padding:1px 5px;font-size:.92em}.mac-bash-body strong{color:var(--mac-bash-strong-color)}.mac-bash-body em{color:var(--mac-bash-em-color)}.mac-bash-body a{color:var(--mac-bash-link-color)}.mac-bash-body ul,.mac-bash-body ol{color:var(--mac-bash-body-color);margin:.3em 0;padding-left:1.4em}.mac-bash-body li{color:var(--mac-bash-body-color)}.poet-block{text-align:center;margin:1.5em 0}.poet-block p{margin:.25em 0}:root{--chess-square-light:#f0d9b5;--chess-square-dark:#b58863;--chess-board-shadow:#00000026;--chess-piece-white:#fff;--chess-piece-white-shadow:#0006;--chess-piece-black:#222;--chess-piece-black-shadow:#00000040;--chess-highlight-hover:#c8c83c73;--chess-highlight-selected:#dcdc288c;--chess-move-dot:#0000002e;--chess-capture-ring:#0000002e;--chess-label-color:var(--text-tertiary);--chess-arrow-color:#ff6b6b;--chess-promo-overlay:#00000073;--chess-promo-bg:#fff;--chess-promo-shadow:#0000004d;--chess-promo-btn-bg:#f5f5f5;--chess-promo-btn-color:#222;--chess-promo-btn-border:transparent;--chess-promo-btn-hover-bg:#e8f0fe;--chess-promo-btn-hover-border:#4a90d9}[data-theme=dark]{--chess-square-light:#a68b6a;--chess-square-dark:#6b5440;--chess-board-shadow:#00000059;--chess-piece-white:#e8e0d0;--chess-piece-white-shadow:#00000080;--chess-piece-black:#1a1a1a;--chess-piece-black-shadow:#0006;--chess-highlight-hover:#a5f891d0;--chess-highlight-selected:#53ff28d0;--chess-move-dot:#0000002e;--chess-capture-ring:#0000002e;--chess-label-color:var(--text-tertiary);--chess-arrow-color:#ff8a8a;--chess-promo-overlay:#0009;--chess-promo-bg:#2a2a2e;--chess-promo-shadow:#00000080;--chess-promo-btn-bg:#3a3a3e;--chess-promo-btn-color:#e8e8e8;--chess-promo-btn-border:#555;--chess-promo-btn-hover-bg:#2a3a50;--chess-promo-btn-hover-border:#6aafee}.chess-board-wrapper{-webkit-user-select:none;user-select:none;width:100%;margin:1.5em auto}.chess-board-board-row{display:flex}.chess-board-ranks{flex-shrink:0;grid-template-rows:repeat(8,1fr);align-items:center;padding-right:4px;display:grid}.chess-board-files-row{padding-top:4px;display:flex}.chess-board-ranks-spacer{flex-shrink:0;width:16px}.chess-board-files{flex:1;justify-content:space-around;display:flex}.chess-board-label{color:var(--chess-label-color);text-align:center;width:12px;font-size:.7rem;font-weight:600;line-height:1}.chess-board-main{flex:1}.chess-board-grid{aspect-ratio:1;box-shadow:0 2px 12px var(--chess-board-shadow);flex:1;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);display:grid;position:relative;overflow:hidden}.chess-board-square{aspect-ratio:1;justify-content:center;align-items:center;display:flex;position:relative}.chess-board-square--light{background:var(--chess-square-light)}.chess-board-square--dark{background:var(--chess-square-dark)}.chess-board-piece{pointer-events:auto;cursor:pointer;z-index:3;font-size:200%;font-weight:bolder;line-height:1;position:relative}@media only screen and (width<=328px){.chess-board-piece{font-size:150%;font-weight:bolder}}.chess-board-piece--white{color:var(--chess-piece-white);filter:drop-shadow(0 1px 2px var(--chess-piece-white-shadow))}.chess-board-piece--black{color:var(--chess-piece-black);filter:drop-shadow(0 1px 2px var(--chess-piece-black-shadow))}@container (width<=280px){.chess-board-piece{font-size:1.6em}}.chess-board-square--move:after{content:"";background:var(--chess-move-dot);pointer-events:none;border-radius:50%;width:28%;height:28%;position:absolute}.chess-board-square--capture:after{content:"";border:3px solid var(--chess-capture-ring);pointer-events:none;border-radius:50%;position:absolute;inset:4%}.chess-board-square--active{background:var(--chess-highlight-hover)!important}.chess-board-square--selected{background:var(--chess-highlight-selected)!important}.chess-board-square--interactive.chess-board-square--move,.chess-board-square--interactive.chess-board-square--capture{cursor:pointer}.chess-board-arrows{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.chess-promotion-overlay{background:var(--chess-promo-overlay);z-index:10;border-radius:inherit;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.chess-promotion-dialog{background:var(--chess-promo-bg);box-shadow:0 4px 20px var(--chess-promo-shadow);border-radius:8px;gap:4px;padding:10px 14px;display:flex}.chess-promotion-btn{border:2px solid var(--chess-promo-btn-border);background:var(--chess-promo-btn-bg);width:48px;height:48px;color:var(--chess-promo-btn-color);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:2em;transition:all .15s;display:flex}.chess-promotion-btn:hover{border-color:var(--chess-promo-btn-hover-border);background:var(--chess-promo-btn-hover-bg);transform:scale(1.1)}.les-divider{width:100%;color:var(--color-les);align-items:center;margin:2em 0;line-height:0;display:flex;overflow:hidden}.les-divider svg{width:100%;height:24px;color:var(--color-les);display:block}.blog-header{border-bottom:2px solid var(--border-color);text-align:left;margin-bottom:10px;padding-bottom:10px}.blog-back-link{color:var(--link-color);font-weight:500;text-decoration:none;transition:all .3s;display:inline-block}.blog-back-link:hover{color:var(--link-hover-color);transform:translate(-4px)}.blog-header h1{color:var(--text-primary);margin:10px 0 8px;font-size:2.5em;line-height:1.2}.blog-path{color:var(--text-tertiary);font-size:.9em;font-family:var(--font-mono)}.blog-date{color:var(--text-tertiary);font-size:.9em;font-family:var(--font-mono);margin:4px 0 0}.blog-article{animation:.3s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.blog-content{color:var(--text-primary);font-size:1.05em;line-height:1.8}.blog-content p{margin:1em 0}.blog-loading,.blog-error{text-align:center;color:var(--text-secondary);padding:40px;font-size:1.2em}.blog-error h2{color:#d32f2f;margin-bottom:15px}.blog-error p{color:var(--text-secondary);margin-bottom:20px}.markdown-blockquote,.blockquote-minimal-gray{border-left:4px solid var(--blockquote-border);background-color:var(--blockquote-bg);color:var(--text-secondary);margin:0 1em 0 0;padding:2px 10px;font-style:italic}.markdown-blockquote>blockquote,.blockquote-minimal-gray>blockquote{margin-top:.2em;margin-left:.2em}.markdown-blockquote blockquote,.blockquote-minimal-gray blockquote{background-color:#0000;margin:.2em 0 .2em .5em}.inline-code{background-color:var(--code-bg);color:var(--code-color);font-family:var(--font-mono);border:1px solid var(--border-color);margin:0 6px;padding:2px 6px;font-size:.95em}.code-block,.code-block-dracula{background-color:var(--code-block-bg);color:var(--code-block-color);font-size:.95em;line-height:1.5;font-family:var(--font-mono);word-wrap:break-word;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;margin:1em 0;padding:10px;overflow-x:auto}.code-block code,.code-block-dracula code{font-family:var(--font-mono);color:inherit;background:0 0;border:none;padding:0}.app-content p,.blog-content p{margin:0;font-size:1.05em}.markdown-link{color:var(--link-color);border-bottom-color:var(--link-color);border-bottom:1px solid;text-decoration:none;transition:all .3s}.markdown-link:hover{color:var(--link-hover-color)}.markdown-image{max-width:100%;height:auto;margin:1.5em 0;transition:transform .3s}.app-content hr,.blog-content hr{border:none;border-top:2px solid var(--border-color);opacity:.5;margin:1em 0}.math{font-size:1.1em}.math-inline{margin:0 4px}.app-content h1,.app-content h2,.app-content h3,.app-content h4,.app-content h5,.app-content h6{color:var(--heading-primary-color);word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;margin-bottom:.5em;font-weight:600}.app-content h1{border-bottom:3px solid var(--link-color);padding-bottom:10px;font-size:2.2em}.app-content h2{border-bottom:2px solid var(--blockquote-border-light);padding-bottom:8px;font-size:1.8em}.app-content h3{font-size:1.4em}.blog-content h1,.blog-content h2,.blog-content h3,.blog-content h4,.blog-content h5,.blog-content h6{color:var(--heading-primary-color);word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;margin-top:8px;margin-bottom:5px;font-weight:600}.blog-content h1{font-size:2em}.blog-content h2{font-size:1.6em}.blog-content h3{font-size:1.3em}.app-content ul,.blog-content ul{margin:0;padding-left:1em;list-style:none}.app-content ul li,.blog-content ul li{margin:.1em 0;padding-left:1.5em;position:relative}.app-content ul li:before,.blog-content ul li:before{content:"•";color:var(--link-color);font-size:1.2em;font-weight:700;position:absolute;top:0;left:0}.app-content ol,.blog-content ol{counter-reset:item;margin:0;padding-left:2em;list-style:none}.app-content ol li,.blog-content ol li{counter-increment:item;margin:.5em 0;padding-left:1.8em;position:relative}.app-content ol li:before,.blog-content ol li:before{content:counter(item) ".";color:var(--link-color);text-align:right;min-width:1.5em;padding-right:.4em;font-weight:600;position:absolute;top:0;left:0}.app-content ul ul,.app-content ol ul,.app-content ul ol,.app-content ol ol,.blog-content ul ul,.blog-content ol ul,.blog-content ul ol,.blog-content ol ol{margin:0;padding-left:1em}.app-content ul ul li:before,.blog-content ul ul li:before{content:"◦";font-size:1em}.app-content ol ul li:before,.app-content ul ol li:before,.blog-content ol ul li:before,.blog-content ul ol li:before{color:var(--text-secondary)}.app-content li>p,.blog-content li>p{margin:.3em 0}.app-content li>ul,.app-content li>ol,.blog-content li>ul,.blog-content li>ol{margin:.5em 0 0}.markdown-table-wrapper{width:100%;margin:1.5em 0;overflow-x:auto}.markdown-table,.table-card{border-collapse:collapse;min-width:100%;overflow:hidden}.markdown-table td code,.markdown-table th code,.table-card td code,.table-card th code{white-space:nowrap}.markdown-table th,.table-card th{background-color:var(--table-header-bg);border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);color:var(--table-header-color);text-align:left;padding:12px;font-weight:800}.markdown-table td,.table-card td{border-bottom:1px solid var(--border-color);padding:12px}.aboutme-title{margin-bottom:.5em;font-size:3em;font-weight:100}.aboutme-content{font-family:var(--font-mono)}.aboutme-section{margin-bottom:.5em;font-weight:700}.aboutme-block{margin-bottom:2em}.card-container{background:var(--code-block-bg);align-items:center;width:95%;margin-bottom:20px;padding:10px;display:flex}.avatar-aria{aspect-ratio:1;justify-content:center;align-items:center;width:100%;max-width:3em;margin-left:.5em;margin-right:1.5em;display:flex}@media only screen and (width<=750px){.card-container{width:100%}.avatar-aria{margin-right:1em}}.avatar-aria img{width:100%}.content-aria p{margin-top:5px}.friend-container{grid-template-columns:repeat(2,1fr);gap:0;display:grid}@media only screen and (width<=750px){.friend-container{grid-template-columns:1fr}}.apply-instruction{margin-top:2em}.courier-block{font-family:var(--font-mono);color:var(--code-block-color);background:var(--code-block-bg);word-wrap:break-word;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;margin:1em 0;padding:10px;overflow-x:auto}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#f9f7f5;--bg-secondary:#e9e9e9;--text-primary:#1a2632;--text-secondary:#666;--text-tertiary:#999;--border-color:#e0e0e0;--white:#fff;--particle-color:#999;--particle-link-color:#bbb;--link-color:var(--text-secondary);--link-hover-color:var(--text-primary);--code-bg:#f5f5f5;--code-color:#6367ff;--code-block-bg:#dcdcdc45;--code-block-color:#301ca0;--blockquote-bg:#f9f9f9;--blockquote-border:#11263d28;--blockquote-border-light:#8ab4f8;--table-header-bg:var(--bg-primary);--table-header-color:var(--text-primary);--table-row-even-bg:#00000005;--button-bg:transparent;--button-hover-bg:#f5f5f5;--warning-bg:#fff5c6;--warning-border:#f9c74f;--warning-text:#333;--warning-title-color:#f59e0b;--heading-primary-color:#1a1a1a;--heading-secondary-color:#333;--dot-from:#1a2632;--dot-to:#313a42;--color-trail:#ff14931a;--print-paper-bg:#e2e2b6;--print-paper-bg-secondary:#eceef1;--print-paper-text:#2f3942;--print-paper-accent:#7f8b97;--print-paper-shadow:#525c6624;--mac-bash-shadow:#00000026;--mac-bash-titlebar-from:#e8e6e3;--mac-bash-titlebar-to:#d6d3cf;--mac-bash-titlebar-border:#b8b5b0;--mac-bash-title-color:#4d4d4d;--mac-bash-btn-border:#0000001f;--mac-bash-body-bg:#f5f5f5;--mac-bash-body-color:#2d2d2d;--mac-bash-prompt-color:#1d9e36;--mac-bash-code-bg:#0000000f;--mac-bash-code-color:#9a6700;--mac-bash-strong-color:#1a1a1a;--mac-bash-em-color:#527a1e;--mac-bash-link-color:#0969da;--glory-color:#000;--color-les:#ff9fea;--home-overlay-color:#0845df29;--home-text-primary:#6200ff;--home-text-secondary:#9a76ff;--home-link-color:#4f3dff;--home-border-color:#4f3dff59}.project-description{color:var(--text-tertiary);margin:.5em 0 1.5em}.ft-stage{perspective:1200px;perspective-origin:50% 40%;flex-direction:column;align-items:flex-start;padding:40px 60px;display:inline-flex}.ft-stage.align-left{align-items:flex-start}.ft-stage.align-center{align-items:center}.ft-stage.align-right{align-items:flex-end}.ft-stage.is-interactive{cursor:pointer}.ft-line{transform-style:preserve-3d;transform:rotateX(var(--ft-tilt-x,38deg)) rotateZ(var(--ft-tilt-z,-8deg));transform-origin:bottom;font-family:var(--font-display);transition:transform var(--ft-duration,1s) ease-out;transition-delay:var(--row-delay,0s);flex-wrap:nowrap;margin:.4em 0;padding:0;display:inline-flex}.ft-char-wrap{transform-style:preserve-3d;display:inline-block;position:relative}.ft-char{font-size:var(--ft-font-size,clamp(2.4rem, 6vw, 4.5rem));font-weight:var(--ft-font-weight,900);letter-spacing:.05em;text-align:center;-webkit-user-select:none;user-select:none;color:var(--ft-text-color,#bd2e3a);transform-origin:bottom;transform:translateZ(var(--ft-height,80px));transition:transform var(--ft-duration,1s) ease-out, color .6s ease-out;transition-delay:calc(var(--i,0) * var(--ft-stagger,90ms) + var(--row-delay,0s));display:inline-block;position:relative}.ft-shadow{font-size:var(--ft-font-size,clamp(2.4rem, 6vw, 4.5rem));font-weight:var(--ft-font-weight,900);letter-spacing:.05em;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;color:var(--ft-shadow-color,#000);filter:blur(calc(var(--ft-height,80px) * .09));opacity:clamp(.12, calc(.5 - var(--ft-height,80px) / 250), .5);transform:translate(calc(var(--ft-height,80px) * -.28), calc(var(--ft-height,80px) * .28));transition:transform var(--ft-duration,1s) ease-out, opacity .7s ease-out, filter .7s ease-out;transition-delay:calc(var(--i,0) * var(--ft-stagger,90ms) + var(--row-delay,0s));display:inline-block;position:absolute;inset:0}.ft-stage.is-interactive:not(.is-reversed):hover .ft-line{transform:rotateX(0)rotate(0)}.ft-stage.is-interactive:not(.is-reversed):hover .ft-char{transform:rotateX(0)translateZ(0)}.ft-stage.is-interactive:not(.is-reversed):hover .ft-shadow{opacity:0;filter:blur();transform:translate(0)}.ft-stage.is-reversed .ft-line{transform:rotateX(0)rotate(0)}.ft-stage.is-reversed .ft-char{transform:rotateX(0)translateZ(0)}.ft-stage.is-reversed .ft-shadow{opacity:0;filter:blur();transform:translate(0)}.ft-stage.is-interactive.is-reversed:hover .ft-line{transform:rotateX(var(--ft-tilt-x,38deg)) rotateZ(var(--ft-tilt-z,-8deg))}.ft-stage.is-interactive.is-reversed:hover .ft-char{transform:translateZ(var(--ft-height,80px))}.ft-stage.is-interactive.is-reversed:hover .ft-shadow{transform:translate(calc(var(--ft-height,80px) * -.28), calc(var(--ft-height,80px) * .28));opacity:clamp(.12, calc(.5 - var(--ft-height,80px) / 250), .5);filter:blur(calc(var(--ft-height,80px) * .09))}@media (width<=720px){.ft-line{transform:rotateX(var(--ft-tilt-x,30deg)) rotateZ(var(--ft-tilt-z,-6deg))}.ft-char,.ft-shadow{font-size:var(--ft-font-size,clamp(1.6rem, 7vw, 2.6rem))}}:root{--font-mono: "Courier New", Courier, monospace;--font-serif:"Noto Serif SC", "Songti SC", "STSong", "SimSun", "Noto Serif CJK SC", Georgia, "Times New Roman", serif;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif;--font-display:"JetBrains Mono", "Courier New", Courier, "Noto Serif SC", "Songti SC", "SimSun", "Noto Serif CJK SC", serif;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#f9f7f5;--bg-secondary:#e9e9e9;--text-primary:#1a2632;--text-secondary:#666;--text-tertiary:#999;--border-color:#e0e0e0;--white:#fff;--particle-color:#999;--particle-link-color:#bbb;--link-color:var(--text-secondary);--link-hover-color:var(--text-primary);--code-bg:#f5f5f5;--code-color:#6367ff;--code-block-bg:#dcdcdc45;--code-block-color:#301ca0;--blockquote-bg:#f9f9f9;--blockquote-border:#11263d28;--blockquote-border-light:#8ab4f8;--table-header-bg:var(--bg-primary);--table-header-color:var(--text-primary);--table-row-even-bg:#00000005;--button-bg:transparent;--button-hover-bg:#f5f5f5;--warning-bg:#fff5c6;--warning-border:#f9c74f;--warning-text:#333;--warning-title-color:#f59e0b;--heading-primary-color:#1a1a1a;--heading-secondary-color:#333;--dot-from:#1a2632;--dot-to:#313a42;--color-trail:#ff14931a;--print-paper-bg:#e2e2b6;--print-paper-bg-secondary:#eceef1;--print-paper-text:#2f3942;--print-paper-accent:#7f8b97;--print-paper-shadow:#525c6624;--mac-bash-shadow:#00000026;--mac-bash-titlebar-from:#e8e6e3;--mac-bash-titlebar-to:#d6d3cf;--mac-bash-titlebar-border:#b8b5b0;--mac-bash-title-color:#4d4d4d;--mac-bash-btn-border:#0000001f;--mac-bash-body-bg:#f5f5f5;--mac-bash-body-color:#2d2d2d;--mac-bash-prompt-color:#1d9e36;--mac-bash-code-bg:#0000000f;--mac-bash-code-color:#9a6700;--mac-bash-strong-color:#1a1a1a;--mac-bash-em-color:#527a1e;--mac-bash-link-color:#0969da;--glory-color:#000;--color-les:#ff9fea;--home-overlay-color:#0845df29;--home-text-primary:#6200ff;--home-text-secondary:#9a76ff;--home-link-color:#4f3dff;--home-border-color:#4f3dff59}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#0d1117;--bg-secondary:#2a2a2a;--text-primary:#b9b9b9;--text-secondary:#b0b0b0;--text-tertiary:gray;--border-color:#404040;--white:#fff;--particle-color:#555;--particle-link-color:#444;--link-color:var(--text-secondary);--link-hover-color:var(--text-primary);--code-bg:#2a2a2a;--code-color:#c9beff;--code-block-bg:#37373780;--code-block-color:#b9cadf;--blockquote-bg:#2a2a2a;--blockquote-border:#c8d7e728;--blockquote-border-light:#42a5f5;--table-header-bg:var(--bg-primary);--table-header-color:var(--text-primary);--table-row-even-bg:#ffffff0d;--button-bg:transparent;--button-hover-bg:#333;--warning-bg:#44380c;--warning-border:#fbbf24;--warning-text:#fef3c7;--warning-title-color:#fcd34d;--heading-primary-color:#f5f5f5;--heading-secondary-color:#e4e4e4;--dot-from:#52585e;--dot-to:#787e85;--color-trail:#c715851a;--print-paper-bg:#413d2d;--print-paper-bg-secondary:#262b31;--print-paper-text:#e2e6ea;--print-paper-accent:#a0a9b3;--print-paper-shadow:#00000038;--mac-bash-shadow:#0006;--mac-bash-titlebar-from:#3a3a3c;--mac-bash-titlebar-to:#2c2c2e;--mac-bash-titlebar-border:#1c1c1e;--mac-bash-title-color:#a0a0a0;--mac-bash-btn-border:#ffffff14;--mac-bash-body-bg:#141414;--mac-bash-body-color:#d4d4d4;--mac-bash-prompt-color:#4ae94a;--mac-bash-code-bg:#ffffff0f;--mac-bash-code-color:#ffe066;--mac-bash-strong-color:#f0f0f0;--mac-bash-em-color:#b8f36e;--mac-bash-link-color:#79d4f5;--glory-color:#fff;--color-les:#ffccf4;--home-overlay-color:#144bd266;--home-text-primary:#c4b8ff;--home-text-secondary:#a89ce8;--home-link-color:#b1a8ff;--home-border-color:#c4b8ff4d}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.5}.blog-container,.blog-list-container{word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;width:100%;padding:40px 20px}p{margin:0}a{color:var(--link-color);transition:color .3s}a:hover{color:var(--link-hover-color)}
