@charset "UTF-8";:root{--bg-0:#0f1115;--bg-1:#141821;--bg-2:#1b2030;--fg-0:#e8ebf1;--fg-1:#c6cad6;--muted:#8f97ac;--accent:#6ccbff;--accent-hover:#9ad9ff;--accent-personal:#c9a3ff;--line:rgba(255, 255, 255, 0.07);--shadow-sm:0 1px 1px rgba(0, 0, 0, 0.25);--shadow-md:0 6px 20px rgba(0, 0, 0, 0.35);--radius:14px;--container:1120px;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px;--leading-tight:1.2;--leading-copy:1.6;--gutter:16px;--prose:78ch}*,*::before,*::after{box-sizing:border-box}html{font-size:16px}html,body{height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,segoe ui,Roboto,Arial;line-height:var(--leading-copy);color:var(--fg-0);background:var(--bg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;min-height:100svh;display:flex;flex-direction:column}body>main{flex:1 0 auto}body>footer{margin-top:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.container{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.navbar{position:sticky;top:0;z-index:50;backdrop-filter:saturate(120%)blur(8px);background:rgba(15,17,21,.7);border-bottom:1px solid rgba(255,255,255,8%)}.navbar .container{height:60px}a{color:var(--accent);text-decoration:none;transition:color .15s ease,opacity .15s ease}a:hover{color:var(--accent-hover);text-decoration:underline}header a{color:var(--fg-0)}header a:hover{opacity:.9;text-decoration:none}header a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:8px}.nav{display:flex;gap:16px;align-items:center}.nav a{padding:.25rem .5rem;border-radius:10px;transition:background .15s ease}.nav a:hover{background:rgba(255,255,255,6%)}.nav a.active,.nav a[aria-current=page],.nav a[aria-current=true]{text-decoration:underline}.nav-actions{display:flex;gap:.5rem;align-items:center}.nav-toggle,.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,4%);color:var(--fg-0);cursor:pointer;transition:background .15s ease,box-shadow .25s ease,color .15s ease}.nav-toggle:hover,.theme-toggle:hover{background:rgba(255,255,255,8%)}.logo{display:flex;align-items:center;text-decoration:none;height:100%}.logo-img{height:50px;width:auto;display:block;transition:opacity .25s ease}.desktop-only{display:block}.mobile-only{display:none}.hero{margin:var(--space-6)0 var(--space-5)}.hero h1{font-weight:800;font-size:clamp(2.1rem,4.6vw,3.2rem);line-height:var(--leading-tight);margin:0 0 .5rem;max-width:22ch;letter-spacing:-.015em}.hero p{margin:.25rem 0 1rem;color:var(--fg-1);max-width:60ch}h2{font-size:clamp(1.6rem,2.8vw,2rem);line-height:1.25;font-weight:720;margin:1.5rem 0 .5rem}h3{font-size:clamp(1.2rem,2vw,1.35rem);line-height:1.3;font-weight:650;margin:1.25rem 0 .5rem}.post-meta{color:#8a92a8;font-size:.9rem}.btn{display:inline-flex;align-items:center;gap:.5rem;height:2.75rem;padding:0 1rem;border-radius:.75rem;background:var(--accent);color:#081017;font-weight:650;border:1px solid transparent;box-shadow:var(--shadow-sm);transition:transform .15s ease,background .15s ease,color .15s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-1px);filter:brightness(1.07);box-shadow:0 6px 16px color-mix(in oklab,var(--accent) 30%,transparent);color:rgba(0,0,0,.8)}.btn:active{transform:translateY(0)}.btn--ghost{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,2%);color:var(--fg-0);transition:background .15s ease,color .15s ease,box-shadow .25s ease,border-color .15s ease}.btn--ghost:hover{background:rgba(255,255,255,6%);color:var(--accent);border-color:color-mix(in oklab,var(--accent) 40%,var(--line));box-shadow:0 0 8px color-mix(in oklab,var(--accent) 25%,transparent)}.btn--ghost:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-color:var(--accent)}:root[data-theme=light] .theme-toggle{background:#fff;border:1px solid rgba(0,0,0,.12);box-shadow:0 1px 2px rgba(0,0,0,6%),inset 0 -4px 12px rgba(0,0,0,3%);color:#0e1320}:root[data-theme=light] .theme-toggle:hover{background:#f4f6f8;border-color:rgba(0,0,0,.18);box-shadow:0 3px 14px rgba(0,0,0,8%),inset 0 -6px 14px rgba(0,0,0,4%)}:root[data-theme=light] .theme-toggle:focus-visible{outline:2px solid color-mix(in oklab,#0e7dd6 55%,transparent);outline-offset:3px}.theme-toggle svg{width:1.1rem;height:1.1rem;display:block}:root[data-theme=light] .theme-toggle svg{fill:#0e1320}.grid,.highlights{display:grid;gap:clamp(.875rem,2.2vw,1.5rem);grid-template-columns:repeat(auto-fill,minmax(16.25rem,1fr));padding:0}.highlights+.highlights{margin-top:clamp(1rem,2.5vw,1.5rem)}.card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.125rem,3.2vw,1.75rem);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;box-shadow:var(--shadow-sm)}.card:hover{background:var(--bg-2);border-color:rgba(255,255,255,.1);box-shadow:var(--shadow-md);transform:translateY(-1px)}.card a{text-underline-offset:2px}.card a:hover{text-decoration:underline;text-decoration-thickness:1.5px}.highlights .card{display:flex;flex-direction:column;height:100%}.highlights .card h3,.post-card__title{display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.highlights .card p{display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.highlights{align-items:stretch;gap:clamp(.875rem,2.2vw,1.5rem)}img{border-radius:12px}.post-card.card--compact{display:grid;gap:.5rem;padding:clamp(1rem,2.2vw,1.25rem);border-radius:var(--radius);background:var(--bg-1);border:1px solid var(--line);transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.post-card.card--compact:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:color-mix(in oklab,var(--accent) 18%,var(--line))}.post-card__title{display:block;font-weight:720;line-height:1.3;color:var(--accent);text-decoration:none}.post-card__title:hover,.post-card__title:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1.5px;outline:none}.post-card__meta{color:var(--muted);font-size:.95rem}.post-card__tags{display:flex;flex-wrap:wrap;gap:.4rem .5rem;list-style:none;margin:.5rem 0 0;padding:0;align-items:center}.post-card__tags li{display:flex;margin:0;padding:0}.post-card__tags .tag{display:inline-flex;align-items:center;line-height:1;white-space:nowrap;padding:6px 10px;border-radius:.6rem;border:1px solid var(--line);background:color-mix(in oklab,var(--bg-2) 85%,transparent);color:var(--fg-0);text-decoration:none;font-size:.8rem;font-weight:500;transition:all .2s ease}.post-card__tags .tag:hover{color:var(--accent);border-color:color-mix(in oklab,var(--accent) 40%,var(--line))}.post-card__tags li+li{margin-top:0}.content{max-width:var(--container);margin:var(--space-6)auto var(--space-5);padding-left:var(--gutter);padding-right:var(--gutter)}.content ul,.content ol{margin:.85rem 0 .85rem 1.25rem}.content li+li{margin-top:.35rem}.content img{max-width:100%;width:auto;display:block;margin:1rem auto;border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.content figure{max-width:var(--prose);margin:1rem auto;cursor:pointer}.content figcaption{color:var(--muted);text-align:center;font-size:.9rem;margin-top:.35rem;cursor:pointer;padding-bottom:2rem;font-weight:600}.content h1,.content h4{padding-left:var(--gutter);padding-right:var(--gutter)}.content h4{display:block;margin-bottom:1rem;line-height:0;font-weight:500}.content :not(pre)>code{display:inline-block;background:color-mix(in srgb,var(--accent) 15%,var(--bg-1));color:var(--accent);padding:.15rem .45rem;border-radius:8px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));font-family:var(--font-mono,monospace);font-size:.85rem;line-height:1.5;margin:0 .25rem .15rem 0;box-shadow:var(--shadow-sm);white-space:nowrap;transition:background .2s ease,color .2s ease,border-color .2s ease}.content :not(pre)>code:hover{background:color-mix(in srgb,var(--accent) 25%,var(--bg-1));color:var(--accent)}.tag{padding:2px 10px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);color:var(--fg-1)}pre{background:linear-gradient(180deg,rgba(255,255,255,2%),transparent 24%)var(--bg-2);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:var(--space-3);overflow-x:auto}.content pre,.content .chroma{max-width:calc(100vw - 2 * var(--gutter));overflow-x:auto;-webkit-overflow-scrolling:touch;padding:clamp(12px,2.2vw,16px);border-radius:var(--radius)}.content pre,.content code{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.content li>.highlight,.content li>.chroma,.content li pre{margin-left:-30px;max-width:100vw}code{background:rgba(255,255,255,4%);padding:.1rem .35rem;border-radius:.5rem;border:1px solid var(--line)}pre.chroma,code.chroma,.highlight pre,.highlight code{font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95rem;line-height:1.6}.chroma{background:var(--bg-1);color:var(--fg-0);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-sm);overflow-x:auto}.chroma .ln,.chroma .lnt{color:var(--muted);user-select:none;padding-right:.75rem;border-right:1px solid var(--line);margin-right:.75rem}.chroma .c{color:#5a5f7a;font-style:italic}.chroma .err{color:#ff6e6e;background:0 0}.chroma .o{color:#c574dd}.chroma .p{color:#7b8399}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:#c574dd;font-weight:600}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#f9d79f}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#88c6c3}.chroma .na,.chroma .nb,.chroma .bp{color:#9cb8ff}.chroma .nc,.chroma .nn,.chroma .nd{color:#c574dd}.chroma .nf,.chroma .fm{color:#9cb8ff}.chroma .nt{color:#c574dd}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi{color:var(--fg-0)}.chroma .nd,.chroma .do{color:#f7a3a8}.chroma .gi{color:#86c591}.chroma .gd,.chroma .gr{color:#ff6e6e}.chroma .ge{font-style:italic}.chroma .gs{font-weight:600}:not(pre)>code{background:rgba(255,255,255,4%);padding:.1rem .35rem;border-radius:.5rem;border:1px solid var(--line);font-family:jetbrains mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.chroma code{background:0 0!important;border:0!important;padding:0!important;box-shadow:none!important}.chroma .lnt,.chroma .ln{background:0 0;border:0}.copy-btn{position:absolute;top:.4rem;right:.6rem;background:var(--bg-2);color:var(--muted);border:1px solid var(--line);border-radius:6px;font-size:.75rem;padding:.25rem .6rem;cursor:pointer;opacity:0;transition:all .2s ease}pre:hover .copy-btn{opacity:1}.copy-btn:hover{color:var(--fg-0);background:var(--bg-2)}.copy-btn.copied{color:var(--accent);border-color:var(--accent)}blockquote{margin:1.5rem 0;padding:1rem 1.25rem;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--bg-1) 90%,var(--accent) 10%);border-radius:8px;color:var(--fg-0);font-style:italic;line-height:1.6}blockquote p{margin:0}blockquote strong{color:var(--accent);font-weight:600}.post-nav{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:1.5rem;margin-top:2rem}.post-nav .card{flex:0 1 320px;text-align:center;background:var(--bg-1);border:1px solid var(--line);border-radius:12px;padding:1rem;box-shadow:var(--shadow-sm);transition:background .2s ease,transform .2s ease}.post-nav .card:hover{background:var(--bg-2);transform:translateY(-2px)}table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm);background:var(--bg-1)}th,td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--line)}th{background:color-mix(in oklab,var(--bg-1) 84%,#fff 16%);font-weight:600;color:var(--fg-0)}td{color:var(--fg-0)}tr:last-child td{border-bottom:none}td code{background:color-mix(in srgb,var(--accent) 10%,var(--bg-1));color:var(--accent);padding:.2rem .4rem;border-radius:6px;font-size:.9em;white-space:nowrap}.table-wrapper{overflow-x:auto;border-radius:12px}.gallery{display:flex;flex-direction:column;gap:clamp(12px,2.4vw,20px);justify-content:center;align-items:center}.gallery figure{margin:0;padding:0;border-radius:12px;overflow:hidden;transition:transform .2s ease,box-shadow .3s ease,border-color .2s ease;cursor:zoom-in}.gallery img{display:block;width:100%;height:auto}.gallery figcaption{padding:0 .75rem;text-align:center;color:var(--muted);font-size:.92rem}.lb-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(2px)saturate(110%);display:none;z-index:9999}.lb-overlay.open{display:grid;place-items:center}.lb-frame{max-width:calc(100vw - 4rem);max-height:90vh;display:grid;grid-template-rows:auto 1fr auto;gap:.5rem}.lb-media{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-md)}.lb-media img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain}.lb-caption{text-align:center;color:var(--fg-1);font-size:.95rem}.lb-controls{display:flex;justify-content:center;gap:.5rem}.lb-btn{display:inline-flex;align-items:center;justify-content:center;height:2.25rem;min-width:2.25rem;padding:0 .75rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,6%);color:var(--fg-0);cursor:pointer}.lb-btn:hover{background:rgba(255,255,255,.1)}.lb{position:fixed;inset:0;z-index:9999;display:none;background:rgba(0,0,0,.65);backdrop-filter:blur(2px)saturate(120%)}.lb.open{display:block}.lb-frame{max-width:96vw;max-width:1400px;max-height:90vh;margin:4vh auto;display:grid;grid-template-rows:auto 1fr auto;gap:.5rem;padding:.75rem;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md)}.lb img{width:100%;height:auto;object-fit:contain;border-radius:10px;background:var(--bg-0)}.lb figcaption{text-align:center;color:var(--muted);font-size:.95rem}.lb-close{justify-self:end;width:2rem;height:2rem;border-radius:.6rem;border:1px solid var(--line);background:rgba(255,255,255,4%);color:var(--fg-0);cursor:pointer}.lb-close:hover{background:rgba(255,255,255,8%)}.shot{max-width:var(--prose);margin:1rem auto}.shot-btn{display:block;padding:0;border:0;background:0 0;width:100%;cursor:zoom-in;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.shot img{display:block;width:100%;height:auto;aspect-ratio:var(--shot-ratio,auto);object-fit:contain;transition:transform .2s ease,box-shadow .3s ease}.shot-btn:hover img{transform:translateY(-1px);box-shadow:var(--shadow-md)}.shot figcaption{margin-top:.5rem;color:var(--muted);font-size:.9rem;text-align:center}.pager{margin-top:var(--space-4)}.pager__list{display:flex;gap:.5rem;list-style:none;padding:0;margin:0;align-items:center;justify-content:center}.pager__btn{display:grid;place-items:center;min-width:2.25rem;height:2.25rem;padding:0 .5rem;border:1px solid var(--line);border-radius:.6rem;text-decoration:none;color:var(--fg-0);background:0 0;font-weight:600;line-height:1}.pager__btn:hover{background:rgba(255,255,255,6%)}.pager__btn.is-current{cursor:default;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 30%,transparent)}.lang-active{opacity:.9;font-weight:700}.lang-switch{display:inline-flex;align-items:center;gap:.5rem}.lang-switch .tag{opacity:.85;text-decoration:none;margin-left:6px}.lang-switch .tag:hover{text-decoration:underline}.lang-switch__link{margin-left:.5rem;text-decoration:none;color:var(--fg-0);opacity:.75;font-weight:500;transition:opacity .2s ease,color .2s ease}.lang-switch__link:hover{opacity:.95;text-decoration:underline}.lang-switch__link.active{opacity:1;font-weight:700;color:var(--accent);text-underline-offset:2px}.hr{height:1px;background:var(--line);border:0;margin:var(--space-5)0}.surface-border{border:1px solid var(--line);border-radius:var(--radius)}.text-muted{color:var(--muted)}.accent-personal{color:var(--accent-personal)}::selection{background:rgba(108,203,255,.28);color:#fff}footer{border-top:1px solid rgba(255,255,255,7%);padding:var(--space-4)var(--space-3);text-align:center}.section--padded:not(.container){padding-inline:var(--gutter)}.section,.hero,footer{padding-inline:0}.hero:not(.container),.grid:not(.container),footer:not(.container){padding-left:var(--gutter);padding-right:var(--gutter)}:root[data-theme=light]{--bg-0:#f6f7fb;--bg-1:#ffffff;--bg-2:#eef1f6;--fg-0:#0e1320;--fg-1:#2a3140;--muted:#647089;--line:rgba(0, 0, 0, 0.1);--accent:#0e7dd6;--accent-hover:#3aa1f0}:root[data-theme=light] .navbar{background:rgba(255,255,255,.85);border-bottom:1px solid var(--line)}:root[data-theme=light] .card{box-shadow:0 1px 2px rgba(0,0,0,5%)}:root[data-theme=light] code{background:rgba(0,0,0,5%);border-color:rgba(0,0,0,8%)}:root[data-theme=light] .pager__btn:hover{background:rgba(0,0,0,5%)}@media(max-width:1024px){:root{--gutter:28px}.container{padding:0 24px}}@media(max-width:768px){.nav{display:none;position:fixed;left:0;right:0;top:56px;z-index:80;background:var(--bg-0);backdrop-filter:saturate(120%)blur(8px);border-bottom:1px solid var(--line);padding:12px var(--gutter)16px;flex-direction:column;gap:10px}:root[data-theme=light] .nav{background:#fff;border-bottom:1px solid rgba(0,0,0,8%)}.nav.open{display:flex}.nav a{width:100%;padding:.6rem .75rem;border-radius:.6rem}.desktop-only{display:none}.mobile-only{display:block;height:50px}}@media(min-width:769px){.nav-toggle{display:none}}@media(min-width:900px){.grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){:root{--gutter:24px}.container{padding:0 20px}.navbar .container{height:56px}.hero{margin:var(--space-5)0 var(--space-4)}footer{font-size:.9rem;padding:var(--space-4)20px}.lang-switch{width:100%;justify-content:center}.content{margin:var(--space-5)auto var(--space-4)}.gallery{max-width:calc(100vw - 40px)}.gallery figure img{max-width:90%}}@media(max-width:375px){:root{--gutter:1rem}.hero h1{font-size:clamp(1.75rem,6.4vw,2.4rem);max-width:24ch}.hero p{font-size:.95rem}.btn{width:100%;justify-content:center}.hero>div[style]{flex-direction:column;gap:.5rem!important}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(hover:none){.card:hover{transform:none;box-shadow:var(--shadow-sm);background:var(--bg-1)}}.about__hero{display:grid;grid-template-columns:112px 1fr;gap:1rem;align-items:center;margin-bottom:1.25rem}.about__avatar{width:112px;height:112px;border-radius:50%;object-fit:cover;border:1px solid var(--line);box-shadow:var(--shadow-sm);background:var(--bg-1)}.about__intro h1{margin:0 0 .25rem}.about__intro p{margin:.25rem 0 .75rem}.about__badges{display:flex;flex-wrap:wrap;gap:.4rem .5rem;margin:.25rem 0 1rem;padding:0;list-style:none}.about__badges .tag{line-height:1}.about__actions{display:flex;gap:.6rem;flex-wrap:wrap}.about__content{margin-top:1rem}.about__links{margin-top:1.5rem;display:grid;gap:clamp(.75rem,2vw,1rem);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.about__link{display:flex;align-items:center;justify-content:space-between;text-decoration:none}.about__link strong{color:var(--fg-0)}.about__link span{color:var(--muted)}@media(max-width:640px){.about__hero{grid-template-columns:72px 1fr;gap:.75rem}.about__avatar{width:72px;height:72px}}