@charset "UTF-8";:root{--content-width:720px;--gap:24px;--radius:6px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--font-sans:-apple-system, BlinkMacSystemFont, "Noto Sans", Roboto, "DejaVu Sans", "Noto Sans CJK SC", "Noto Sans CJK TC", "Noto Sans CJK JP", "Apple Color Emoji", "Segoe UI Emoji";--font-mono:Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-bg:#f5f5f5;--color-bg-soft:#ffffff;--color-bg-code:#f5f5f5;--color-text:#212121;--color-text-soft:#5a6570;--color-heading:#1a1a1a;--color-border:#e0e0e0;--color-divider:#e6e6e6;--color-border-hover:#0066d6;--color-primary:#0066d6;--color-primary-hover:#0053b3;--color-tag-bg:#eeeeee;--color-lightbox-backdrop:rgba(20, 22, 26, 0.82);--shadow:0 2px 5px rgba(0, 0, 0, 0.04);--shadow-hover:0 4px 12px rgba(0, 0, 0, 0.08)}:root.dark{--color-bg:#1d1e20;--color-bg-soft:#2e2e33;--color-bg-code:#22262b;--color-text:#e5e7eb;--color-text-soft:#9ca3af;--color-heading:#ffffff;--color-border:#2e3035;--color-divider:#40434a;--color-border-hover:#4d6d96;--color-primary:#64b5f6;--color-primary-hover:#90caf9;--color-tag-bg:#34363c;--color-lightbox-backdrop:rgba(0, 0, 0, 0.88);--shadow:0 2px 8px rgba(0, 0, 0, 0.25);--shadow-hover:0 6px 18px rgba(0, 0, 0, 0.35)}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);font-size:20px;line-height:1.75;color:var(--color-text);background:var(--color-bg);transition:background-color .2s ease,color .2s ease;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.sidebar-inner,.post,.post-entry{background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow)}.terms .term,.post-nav a,.pagination a,.profile .profile-button{background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease}.terms .term:hover,.post-nav a:hover,.pagination a:hover,.profile .profile-button:hover,.terms .term:focus-visible,.post-nav a:focus-visible,.pagination a:focus-visible,.profile .profile-button:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--color-border-hover);color:var(--color-primary)}.sidebar-profile .sidebar-avatar,.profile .profile-avatar{border-radius:50%;object-fit:cover;transition:transform .3s ease}.sidebar-profile .sidebar-avatar:hover,.profile .profile-avatar:hover{transform:scale(1.06)}.sidebar-toggle::after,.sidebar-close::after,.copy-code::after,.theme-toggle::after{content:"";position:absolute;inset:-8px}.sidebar-title,.toc .toc-title{text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--color-text-soft)}@keyframes fade-in-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}h1,h2,h3,h4,h5,h6{color:var(--color-heading);line-height:1.3;font-weight:600;letter-spacing:-.3px;margin:1.6em 0 .6em}a{color:var(--color-primary);text-decoration:none;transition:color .15s ease}a:hover{color:var(--color-primary-hover)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}img{max-width:100%;height:auto}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100px;left:var(--space-md);z-index:100;padding:var(--space-sm)var(--space-md);background:var(--color-bg-soft);color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);font-weight:500}.skip-link:focus{top:var(--space-md)}hr{border:none;border-top:1px solid var(--color-border);margin:2em 0}::selection{background:var(--color-primary);color:var(--color-bg)}.icon{vertical-align:middle}iconify-icon{display:inline-block;width:20px;height:20px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.container{max-width:var(--content-width);margin:0 auto;padding:0 var(--gap);min-height:100vh;display:flex;flex-direction:column}.main{flex:1 0 auto;padding:var(--space-xl)0}.header{padding:20px 0;border-bottom:1px solid var(--color-border)}.nav{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.brand-title{font-size:1.3rem;font-weight:700;letter-spacing:-.3px;color:var(--color-heading);display:inline-flex;align-items:center;gap:var(--space-sm)}.brand-title:hover{color:var(--color-primary)}.brand-logo{height:28px;width:auto;border-radius:var(--radius)}.nav-links{list-style:none;display:flex;align-items:center;gap:18px;margin:0;padding:0}.nav-links a{position:relative;color:var(--color-text-soft);font-size:1.1rem;font-weight:500}.nav-links a:hover,.nav-links a.active{color:var(--color-primary)}.nav-links a::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:2px;background:var(--color-primary);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}.theme-toggle{position:relative;background:0 0;border:none;cursor:pointer;color:var(--color-text-soft);padding:4px;display:inline-flex;align-items:center;vertical-align:middle;transition:transform .3s ease,color .15s ease}.theme-toggle:hover{color:var(--color-primary);transform:rotate(14deg)}.theme-toggle .icon-moon{display:none}:root.dark .theme-toggle .icon-sun{display:none}:root.dark .theme-toggle .icon-moon{display:inline}.lang-switcher{position:relative}.lang-switcher summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;gap:6px;color:var(--color-text-soft);font-size:1.1rem;font-weight:500;transition:color .15s ease}.lang-switcher summary::-webkit-details-marker{display:none}.lang-switcher summary:hover{color:var(--color-primary)}.lang-switcher summary .lang-current{display:none}.lang-switcher[open] summary{color:var(--color-primary)}.lang-switcher .lang-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:150px;list-style:none;margin:0;padding:6px;background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-hover);z-index:30;animation:lang-menu-in .14s ease-out}.lang-switcher .lang-menu li{margin:0}.lang-switcher .lang-menu a{display:block;padding:8px 12px;border-radius:var(--radius);color:var(--color-text);font-size:.95rem;transition:background-color .15s ease,color .15s ease}.lang-switcher .lang-menu a:hover,.lang-switcher .lang-menu a:focus-visible{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary);outline:none}.lang-switcher .lang-menu a.active{color:var(--color-primary);font-weight:600}@keyframes lang-menu-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.footer{flex-shrink:0;margin-top:var(--space-lg);padding:var(--space-lg)0 var(--space-xl);text-align:center;color:var(--color-text-soft);font-size:.8rem}.footer::before{content:"";display:block;width:56px;height:1px;margin:0 auto var(--space-md);background:var(--color-divider)}.footer a{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px;transition:color .15s ease,text-decoration-color .15s ease}.footer a:hover{color:var(--color-primary);text-decoration-color:initial}.footer-line{display:flex;flex-wrap:wrap;gap:4px 10px;justify-content:center}.footer-sep{opacity:.45}.footer-powered{display:block;margin-top:var(--space-sm);font-size:.75rem;opacity:.85}@media(max-width:640px){.footer-line{flex-direction:column;gap:var(--space-xs)}.footer-sep{display:none}}.social-icons{display:flex;gap:var(--space-md);justify-content:center;margin-bottom:var(--space-md)}.social-icons a{color:var(--color-text-soft);transition:color .15s ease,transform .15s ease}.social-icons a:hover{color:var(--color-primary);transform:translateY(-2px)}@media(max-width:640px){body{font-size:18px}.nav-links{gap:14px}}.home-info{padding:24px 0 8px}.home-info .home-title{margin-top:0;font-size:2rem}.profile{text-align:center;padding:60px 0}.profile .profile-avatar{margin-bottom:var(--space-md)}.profile .profile-title{font-size:2rem;margin:.2em 0}.profile .profile-subtitle{color:var(--color-text-soft);margin:0 0 20px}.profile .profile-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:var(--space-md)}.profile .profile-button{display:inline-flex;align-items:center;gap:var(--space-sm);padding:8px 18px;font-weight:500}.post-list{display:flex;flex-direction:column;gap:28px}.post-entry{padding:32px 36px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;animation:fade-in-up .5s cubic-bezier(.2,.8,.2,1)both}@media(max-width:640px){.post-entry{padding:22px 20px}}.post-entry:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--color-border-hover)}.post-entry .entry-cover img{width:100%;border-radius:var(--radius);margin-bottom:18px;aspect-ratio:21/9;object-fit:cover}.post-entry .entry-title{margin:0 0 10px;font-size:1.65rem}.post-entry .entry-title a{color:var(--color-heading)}.post-entry .entry-title a:hover{color:var(--color-primary)}.post-entry .entry-summary{color:var(--color-text-soft);font-size:1.05rem;line-height:1.7;margin:12px 0 0}.post-entry:nth-child(1){animation-delay:0s}.post-entry:nth-child(2){animation-delay:.05s}.post-entry:nth-child(3){animation-delay:.1s}.post-entry:nth-child(4){animation-delay:.15s}.post-entry:nth-child(5){animation-delay:.2s}.post-entry:nth-child(6){animation-delay:.25s}.post-entry:nth-child(7){animation-delay:.3s}.post-entry:nth-child(8){animation-delay:.35s}.post-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--color-text-soft);font-size:.92rem}.post-meta span{display:inline-flex;align-items:center}.tag{display:inline-block;padding:5px 13px;background:var(--color-tag-bg);color:var(--color-text-soft);border-radius:var(--radius);font-size:.85rem;margin:4px 6px 0 0;transition:color .15s ease,background-color .15s ease}.tag:hover{color:var(--color-primary)}.entry-tags,.post-tags{margin-top:12px}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-xl);padding-top:20px;border-top:1px solid var(--color-border)}.pagination a{padding:var(--space-sm)var(--space-md);font-size:.95rem;font-weight:500}.pagination .disabled{color:var(--color-text-soft);opacity:.5}.pagination .page-info{color:var(--color-text-soft);font-size:.95rem}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:40px 0}.post-nav>a,.post-nav>span{min-width:0}.post-nav a{padding:14px 18px;display:flex;flex-direction:column;gap:var(--space-xs)}.post-nav a:hover .post-nav-title{color:var(--color-primary)}.post-nav .post-nav-next{text-align:right}.post-nav .post-nav-label{font-size:.85rem;color:var(--color-text-soft)}.post-nav .post-nav-title{color:var(--color-heading);font-weight:600}.breadcrumbs{font-size:.92rem;color:var(--color-text-soft);margin-bottom:12px}.breadcrumbs .sep{margin:0 6px}.breadcrumbs .current{color:var(--color-text)}.share-buttons{display:flex;align-items:center;gap:14px;margin:28px 0}.share-buttons .share-label{color:var(--color-text-soft);font-size:.95rem}.share-buttons a{color:var(--color-text-soft)}.share-buttons a:hover{color:var(--color-primary)}.toc{background:var(--color-bg-soft);border:1px solid var(--color-divider);border-radius:var(--radius);padding:12px 18px;margin:var(--space-lg)0}.toc .toc-title{cursor:pointer;color:var(--color-heading);font-size:.9rem}.toc .toc-content{font-size:.98rem}.toc ul{padding-left:18px;margin:8px 0}.toc a{color:var(--color-text-soft)}.toc a:hover{color:var(--color-primary)}.terms{display:flex;flex-wrap:wrap;gap:12px}.terms .term{padding:var(--space-sm)var(--space-md);display:inline-flex;align-items:center;gap:var(--space-sm)}.terms .term .term-count{background:var(--color-tag-bg);border-radius:var(--radius);padding:0 8px;font-size:.8rem}.error-page{text-align:center;padding:80px 0}.error-page .error-code{font-size:5rem;margin:0;color:var(--color-primary)}.error-page .error-message{color:var(--color-text-soft);font-size:1.2rem}.code-block-wrapper{position:relative}.copy-code{position:absolute;top:8px;right:8px;padding:4px 10px;font-size:.8rem;background:var(--color-bg);color:var(--color-text-soft);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;opacity:0;transition:opacity .15s ease}.copy-code:hover{color:var(--color-primary)}.code-block-wrapper:hover .copy-code,.copy-code:focus-visible{opacity:1}.back-to-top{position:fixed;right:1.5rem;bottom:1.5rem;z-index:40;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;color:var(--color-text-soft);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:50%;box-shadow:var(--shadow);cursor:pointer;opacity:0;transform:translateY(.5rem);pointer-events:none;transition:opacity .2s ease,transform .2s ease,color .15s ease,border-color .15s ease}.back-to-top .icon{width:20px;height:20px}.back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 40%,transparent);box-shadow:var(--shadow-hover)}@media(max-width:640px){.back-to-top{right:1rem;bottom:1rem}}.comments{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--color-divider)}.comments .comments-title{margin:0 0 var(--space-lg);font-size:1.25rem;font-weight:600;color:var(--color-heading)}.comments iframe{display:block}.post{padding:44px 52px;animation:fade-in-up .5s cubic-bezier(.2,.8,.2,1)both}@media(max-width:640px){.post{padding:24px 20px}}.post-header{margin-bottom:28px}.post-header .post-title{margin:0 0 10px;font-size:2.2rem}.post-header .post-description{color:var(--color-text-soft);font-size:1.1rem;margin:0 0 12px}.post-cover{margin:0 0 28px}.post-cover img{width:100%;border-radius:var(--radius)}.post-cover figcaption{text-align:center;color:var(--color-text-soft);font-size:.85rem;margin-top:8px}.post-content{font-size:1.08rem}.post-content>*:first-child{margin-top:0}.post-content p,.post-content ul,.post-content ol,.post-content blockquote,.post-content table,.post-content pre{margin:1.1em 0}.post-content ul,.post-content ol{padding-left:1.5em}.post-content li{margin:.3em 0}.post-content a{text-decoration:underline;text-underline-offset:2px}.post-content blockquote{border-left:3px solid var(--color-primary);padding:4px 18px;margin-left:0;color:var(--color-text-soft);background:var(--color-bg-code);border-radius:0 var(--radius)var(--radius)0}.post-content img{display:block;border-radius:var(--radius);margin:1.5em auto}.post-content .post-figure{margin:1.5em 0}.post-content .post-figure img{margin:0 auto}.post-content .post-figure figcaption{text-align:center;color:var(--color-text-soft);font-size:.85rem;margin-top:8px}.post-content h2{font-size:1.6rem}.post-content h3{font-size:1.3rem}.post-content h4{font-size:1.15rem}.post-content h5{font-size:1.05rem}.post-content h6{font-size:.95rem;color:var(--color-text-soft)}.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{scroll-margin-top:20px}.post-content code{font-family:var(--font-mono);font-size:.88em;background:var(--color-bg-code);padding:.15em .4em;border-radius:var(--radius)}.post-content pre{background:var(--color-bg-code);padding:var(--space-md);border-radius:var(--radius);overflow-x:auto;font-size:.9rem;line-height:1.5}.post-content pre code{background:0 0;padding:0;font-size:inherit}.post-content .highlight{margin:1.1em 0}.post-content .highlight pre{margin:0}.post-content .table-wrapper{overflow-x:auto;margin:1.1em 0}.post-content .table-wrapper table{margin:0}.post-content table{border-collapse:collapse;width:100%;font-size:.95rem}.post-content th,.post-content td{border:1px solid var(--color-border);padding:8px 12px;text-align:left}.post-content th{background:var(--color-bg-code)}.post-content .katex-display{overflow-x:auto;overflow-y:hidden;padding:2px 0}.post-content kbd{font-family:var(--font-mono);background:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius);padding:1px 6px;font-size:.85em}.list-header{margin-bottom:20px}.list-header .list-title{margin:0;font-size:1.9rem}.list-header .list-description{color:var(--color-text-soft);margin-top:6px}.layout{min-width:0}.has-sidebar{--content-width:1320px}.has-sidebar .layout{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start}.has-sidebar .main{min-width:0}.has-sidebar.sidebar-right .layout{grid-template-columns:1fr 300px}.has-sidebar.sidebar-right .sidebar{order:2}.has-sidebar.sidebar-right .main{order:1}@media(min-width:901px){.has-sidebar .sidebar-inner{margin-top:var(--space-xl)}.has-sidebar .list-title{font-size:1.15rem;font-weight:600;color:var(--color-text-soft)}}.sidebar{min-width:0}.sidebar-inner{position:sticky;top:24px;display:flex;flex-direction:column;gap:22px;padding:24px 20px;animation:fade-in-up .5s cubic-bezier(.2,.8,.2,1)both}.sidebar-block{padding-bottom:22px;border-bottom:1px solid var(--color-divider)}.sidebar-block:last-child{border-bottom:none;padding-bottom:0}.sidebar-profile{text-align:center}.sidebar-profile .sidebar-avatar{width:156px;height:156px;border:3px solid var(--color-border)}.sidebar-profile .sidebar-author{font-size:1.35rem;margin:12px 0 4px}.sidebar-profile .sidebar-desc{color:var(--color-text-soft);font-size:1.05rem;line-height:1.6;margin:0}.sidebar-stats{display:flex;justify-content:space-around;text-align:center}.sidebar-stats a{display:flex;flex-direction:column;color:var(--color-text)}.sidebar-stats a:hover{color:var(--color-primary)}.sidebar-stats .stat-num{font-size:1.4rem;font-weight:700;color:var(--color-heading)}.sidebar-stats .stat-label{font-size:.85rem;color:var(--color-text-soft)}.sidebar-social{justify-content:center;margin-bottom:0}.sidebar-buttons{display:flex;flex-direction:column;gap:var(--space-xs)}.sidebar-buttons .sidebar-button{display:flex;align-items:center;gap:11px;padding:9px 13px;font-size:.95rem;font-weight:500;color:var(--color-text);border-radius:var(--radius);transition:background-color .2s ease,color .2s ease}.sidebar-buttons .sidebar-button .icon{width:17px;height:17px;color:var(--color-text-soft);transition:color .2s ease}.sidebar-buttons .sidebar-button:hover,.sidebar-buttons .sidebar-button:focus-visible{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.sidebar-buttons .sidebar-button:hover .icon,.sidebar-buttons .sidebar-button:focus-visible .icon{color:var(--color-primary)}.sidebar-title{font-size:.82rem;margin:0 0 12px}.sidebar-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.sidebar-links a{font-size:.95rem;font-weight:500;color:var(--color-text)}.sidebar-links a:hover{color:var(--color-primary)}.sidebar-toggle,.sidebar-close{display:none;background:0 0;border:none;cursor:pointer;color:var(--color-text);padding:4px}.sidebar-toggle{position:relative;margin-right:10px}.sidebar-close{position:absolute;top:14px;right:14px;z-index:2}.nav-brand{display:flex;align-items:center}.sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .25s ease;z-index:40}@media(max-width:900px){.has-sidebar{--content-width:720px}.has-sidebar .layout{grid-template-columns:1fr}.has-sidebar .main,.has-sidebar .sidebar{order:0}.has-sidebar .sidebar-toggle{display:inline-flex}.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;background:var(--color-bg);box-shadow:var(--shadow);padding:0 20px;overflow-y:auto;transform:translateX(-100%);transition:transform .28s ease;z-index:50}.sidebar-right .sidebar{left:auto;right:0;transform:translateX(100%)}.sidebar-close{display:inline-flex}.sidebar-inner{position:static;background:0 0;border:none;border-radius:0;box-shadow:none;padding:24px 0}body.sidebar-open .sidebar{transform:translateX(0)}body.sidebar-open .sidebar-overlay:not([hidden]){opacity:1}body.sidebar-open{overflow:hidden}}.chroma{background:0 0;color:var(--color-text)}.chroma .err{color:#f6f8fa;background-color:#82071e}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#dedede}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .line{display:flex}.chroma .k{color:#cf222e}.chroma .kc{color:#cf222e}.chroma .kd{color:#cf222e}.chroma .kn{color:#cf222e}.chroma .kp{color:#cf222e}.chroma .kr{color:#cf222e}.chroma .kt{color:#cf222e}.chroma .na{color:#1f2328}.chroma .nc{color:#1f2328}.chroma .no{color:#0550ae}.chroma .nd{color:#0550ae}.chroma .ni{color:#6639ba}.chroma .nl{color:#900;font-weight:700}.chroma .nn{color:#24292e}.chroma .nx{color:#1f2328}.chroma .nt{color:#0550ae}.chroma .nb{color:#6639ba}.chroma .bp{color:#6a737d}.chroma .nv{color:#953800}.chroma .vc{color:#953800}.chroma .vg{color:#953800}.chroma .vi{color:#953800}.chroma .vm{color:#953800}.chroma .nf{color:#6639ba}.chroma .fm{color:#6639ba}.chroma .s{color:#0a3069}.chroma .sa{color:#0a3069}.chroma .sb{color:#0a3069}.chroma .sc{color:#0a3069}.chroma .dl{color:#0a3069}.chroma .sd{color:#0a3069}.chroma .s2{color:#0a3069}.chroma .se{color:#0a3069}.chroma .sh{color:#0a3069}.chroma .si{color:#0a3069}.chroma .sx{color:#0a3069}.chroma .sr{color:#0a3069}.chroma .s1{color:#0a3069}.chroma .ss{color:#032f62}.chroma .m{color:#0550ae}.chroma .mb{color:#0550ae}.chroma .mf{color:#0550ae}.chroma .mh{color:#0550ae}.chroma .mi{color:#0550ae}.chroma .il{color:#0550ae}.chroma .mo{color:#0550ae}.chroma .o{color:#0550ae}.chroma .ow{color:#0550ae}.chroma .or{color:#0550ae}.chroma .p{color:#1f2328}.chroma .c{color:#57606a}.chroma .ch{color:#57606a}.chroma .cm{color:#57606a}.chroma .c1{color:#57606a}.chroma .cs{color:#57606a}.chroma .cp{color:#57606a}.chroma .cpf{color:#57606a}.chroma .gd{color:#82071e;background-color:#ffebe9}.chroma .ge{color:#1f2328}.chroma .gi{color:#116329;background-color:#dafbe1}.chroma .go{color:#1f2328}.chroma .gl{text-decoration:underline}.chroma .w{color:#fff}:root.dark .chroma .err{color:#f85149}:root.dark .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}:root.dark .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}:root.dark .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}:root.dark .chroma .hl{background-color:#6e7681}:root.dark .chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#737679}:root.dark .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}:root.dark .chroma .line{display:flex}:root.dark .chroma .k{color:#ff7b72}:root.dark .chroma .kc{color:#79c0ff}:root.dark .chroma .kd{color:#ff7b72}:root.dark .chroma .kn{color:#ff7b72}:root.dark .chroma .kp{color:#79c0ff}:root.dark .chroma .kr{color:#ff7b72}:root.dark .chroma .kt{color:#ff7b72}:root.dark .chroma .nc{color:#f0883e;font-weight:700}:root.dark .chroma .no{color:#79c0ff;font-weight:700}:root.dark .chroma .nd{color:#d2a8ff;font-weight:700}:root.dark .chroma .ni{color:#ffa657}:root.dark .chroma .ne{color:#f0883e;font-weight:700}:root.dark .chroma .nl{color:#79c0ff;font-weight:700}:root.dark .chroma .nn{color:#ff7b72}:root.dark .chroma .nx{color:#e6edf3}:root.dark .chroma .py{color:#79c0ff}:root.dark .chroma .nt{color:#7ee787}:root.dark .chroma .nv{color:#79c0ff}:root.dark .chroma .vc{color:#79c0ff}:root.dark .chroma .vg{color:#79c0ff}:root.dark .chroma .vi{color:#79c0ff}:root.dark .chroma .vm{color:#79c0ff}:root.dark .chroma .nf{color:#d2a8ff;font-weight:700}:root.dark .chroma .fm{color:#d2a8ff;font-weight:700}:root.dark .chroma .l{color:#a5d6ff}:root.dark .chroma .ld{color:#79c0ff}:root.dark .chroma .s{color:#a5d6ff}:root.dark .chroma .sa{color:#79c0ff}:root.dark .chroma .sb{color:#a5d6ff}:root.dark .chroma .sc{color:#a5d6ff}:root.dark .chroma .dl{color:#79c0ff}:root.dark .chroma .sd{color:#a5d6ff}:root.dark .chroma .s2{color:#a5d6ff}:root.dark .chroma .se{color:#79c0ff}:root.dark .chroma .sh{color:#79c0ff}:root.dark .chroma .si{color:#a5d6ff}:root.dark .chroma .sx{color:#a5d6ff}:root.dark .chroma .sr{color:#79c0ff}:root.dark .chroma .s1{color:#a5d6ff}:root.dark .chroma .ss{color:#a5d6ff}:root.dark .chroma .m{color:#a5d6ff}:root.dark .chroma .mb{color:#a5d6ff}:root.dark .chroma .mf{color:#a5d6ff}:root.dark .chroma .mh{color:#a5d6ff}:root.dark .chroma .mi{color:#a5d6ff}:root.dark .chroma .il{color:#a5d6ff}:root.dark .chroma .mo{color:#a5d6ff}:root.dark .chroma .o{color:#ff7b72;font-weight:700}:root.dark .chroma .ow{color:#ff7b72;font-weight:700}:root.dark .chroma .or{color:#ff7b72;font-weight:700}:root.dark .chroma .c{color:#8b949e;font-style:italic}:root.dark .chroma .ch{color:#8b949e;font-style:italic}:root.dark .chroma .cm{color:#8b949e;font-style:italic}:root.dark .chroma .c1{color:#8b949e;font-style:italic}:root.dark .chroma .cs{color:#8b949e;font-weight:700;font-style:italic}:root.dark .chroma .cp{color:#8b949e;font-weight:700;font-style:italic}:root.dark .chroma .cpf{color:#8b949e;font-weight:700;font-style:italic}:root.dark .chroma .gd{color:#ffa198;background-color:#490202}:root.dark .chroma .ge{font-style:italic}:root.dark .chroma .gr{color:#ffa198}:root.dark .chroma .gh{color:#79c0ff;font-weight:700}:root.dark .chroma .gi{color:#56d364;background-color:#0f5323}:root.dark .chroma .go{color:#8b949e}:root.dark .chroma .gp{color:#8b949e}:root.dark .chroma .gs{font-weight:700}:root.dark .chroma .gu{color:#79c0ff}:root.dark .chroma .gt{color:#ff7b72}:root.dark .chroma .gl{text-decoration:underline}:root.dark .chroma .w{color:#6e7681}:root.dark .chroma .p,:root.dark .chroma .na,:root.dark .chroma .bp,:root.dark .chroma .nb{color:var(--color-text)}.post-content img.zoomable{cursor:zoom-in}.lightbox-open{overflow:hidden}.lightbox{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:clamp(16px,5vw,56px);background:var(--color-lightbox-backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s ease}.lightbox.is-open{display:flex;opacity:1}.lightbox__stage{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.lightbox__img{max-width:100%;max-height:82vh;border-radius:var(--radius);box-shadow:0 12px 40px rgba(0,0,0,.5);object-fit:contain;cursor:zoom-out;transform:scale(.96);transition:transform .2s cubic-bezier(.2,.8,.2,1)}.lightbox.is-open .lightbox__img{transform:scale(1)}.lightbox__caption{color:rgba(255,255,255,.86);font-size:.9rem;text-align:center;max-width:60ch}.lightbox__exif{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:var(--space-xs)var(--space-md);max-width:68ch;color:rgba(255,255,255,.62);font-size:.8rem;line-height:1.3}.lightbox__exif[hidden]{display:none}.lightbox__exif-camera{color:rgba(255,255,255,.9);font-weight:600}.lightbox__exif-settings{font-family:var(--font-mono);letter-spacing:.01em;white-space:nowrap}.lightbox__close,.lightbox__nav{position:absolute;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(255,255,255,.12);border:none;border-radius:50%;cursor:pointer;line-height:1;transition:background .15s ease}.lightbox__close:hover,.lightbox__nav:hover{background:rgba(255,255,255,.24)}.lightbox__close{top:clamp(12px,3vw,24px);right:clamp(12px,3vw,24px);width:44px;height:44px;font-size:1.8rem}.lightbox__nav{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:2rem}.lightbox__nav[hidden]{display:none}.lightbox__prev{left:clamp(8px,2vw,24px)}.lightbox__next{right:clamp(8px,2vw,24px)}.lightbox.no-motion,.lightbox.no-motion .lightbox__img{transition:none}.lightbox.no-motion .lightbox__img{transform:none}@media(prefers-reduced-motion:reduce){.lightbox,.lightbox__img{transition:none}.lightbox__img{transform:none}}.gallery{column-count:3;column-gap:var(--space-md);margin:var(--space-lg)0}@media(max-width:900px){.gallery{column-count:2}}@media(max-width:480px){.gallery{column-count:1}}.gallery__item{position:relative;display:block;margin:0 0 var(--space-md);break-inside:avoid;border-radius:var(--radius);overflow:hidden;background:var(--color-bg-soft);box-shadow:var(--shadow);transition:box-shadow .2s ease,transform .2s ease}.gallery__item:hover,.gallery__item:focus-visible{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.gallery__img{display:block;width:100%;height:auto;cursor:zoom-in}.gallery__caption{position:absolute;inset:auto 0 0 0;padding:var(--space-lg)var(--space-md)var(--space-sm);color:#fff;font-size:.85rem;line-height:1.35;background:linear-gradient(to top,rgba(0,0,0,.72),transparent);opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}.gallery__caption p{margin:0}.gallery__item:hover .gallery__caption,.gallery__item:focus-visible .gallery__caption{opacity:1;transform:translateY(0)}.timeline{position:relative;margin:var(--space-lg)0}.timeline::before{content:"";position:absolute;top:8px;bottom:0;left:7px;width:2px;background:var(--color-divider)}.timeline__group{position:relative;padding-left:calc(16px + var(--space-lg));margin-bottom:var(--space-xl)}.timeline__group:last-child{margin-bottom:0}.timeline__head{position:relative;margin-bottom:var(--space-md)}.timeline__marker{position:absolute;left:calc(-1 * (16px + var(--space-lg)));top:4px;width:16px;height:16px;border-radius:50%;background:var(--color-bg);border:3px solid var(--color-primary);box-shadow:0 0 0 3px var(--color-bg)}.timeline__date{display:block;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-primary)}.timeline__title{margin:var(--space-xs)0 0;font-size:1.35rem;line-height:1.25;color:var(--color-heading)}.timeline__desc{margin:var(--space-xs)0 0;color:var(--color-text-soft)}.timeline__desc p{margin:0}@media(max-width:480px){.timeline::before{display:none}.timeline .timeline__group{padding-left:0}.timeline .timeline__marker{display:none}}.gallery-page .gallery-intro{margin-bottom:var(--space-lg)}.gallery-empty{color:var(--color-text-soft)}@media(prefers-reduced-motion:reduce){.gallery__item,.gallery__caption{transition:none}.gallery__item:hover{transform:none}}.sponsor-wrapper{text-align:center;margin:var(--space-xl)0}.sponsor-trigger{display:inline-flex;align-items:center;gap:var(--space-sm);padding:12px 24px;font-size:1rem;font-weight:500;color:var(--color-text);background-color:var(--color-bg-soft);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.sponsor-trigger:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:var(--color-border-hover)}.sponsor-trigger svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sponsor-content{display:flex;justify-content:center;flex-wrap:wrap;gap:40px;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s cubic-bezier(.4,0,.2,1),opacity .5s ease}.sponsor-content.expanded{max-height:1e3px;opacity:1;margin-top:var(--space-xl)}.sponsor-card{display:flex;flex-direction:column;align-items:center;width:160px}.sponsor-qr-wrap{position:relative;display:block;width:160px;height:160px;margin-bottom:12px;border-radius:12px;box-shadow:var(--shadow-hover);transition:transform .3s ease}.sponsor-qr-wrap:hover{transform:translateY(-5px)}.sponsor-qr-wrap::after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--qr-color,transparent);mix-blend-mode:screen;pointer-events:none}.sponsor-qr{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}.sponsor-title{margin-bottom:var(--space-xs);font-weight:600;font-size:1rem;color:var(--color-heading);text-align:center}.sponsor-badge{margin-bottom:var(--space-sm);padding:2px 8px;font-size:.75rem;color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 15%,transparent);border-radius:10px}.sponsor-subtitle{margin-bottom:var(--space-sm);font-size:.85rem;color:var(--color-text-soft);text-align:center}.sponsor-address{position:relative;width:100%;padding:4px 24px 4px 8px;font-size:.75rem;font-family:var(--font-mono);color:var(--color-text-soft);background:var(--color-bg-code);border:1px dashed var(--color-border);border-radius:var(--radius);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color .2s,border-color .2s}.sponsor-address:hover{color:var(--color-primary);border-color:var(--color-primary)}.sponsor-address::before{content:"❐";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.7rem;opacity:.4}.sponsor-address:hover::before{opacity:1}.sponsor-address::after{content:attr(data-copied);position:absolute;top:-25px;left:50%;transform:translateX(-50%);padding:2px 6px;font-size:.7rem;color:var(--color-bg-soft);background:var(--color-primary);border-radius:4px;opacity:0;pointer-events:none;transition:opacity .2s}.sponsor-address.copied::after{opacity:1}