@font-face{font-family:inter;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/inter.woff2)format("woff2")}@font-face{font-family:space grotesk;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/space-grotesk.woff2)format("woff2")}:root{--bg:#0d1117;--bg-elev:#151b23;--bg-elev-2:#1b232d;--border:rgba(255, 255, 255, 0.09);--border-strong:rgba(255, 255, 255, 0.16);--text:#e7edf3;--muted:#94a3b2;--faint:#6b7785;--accent:#38bdf8;--accent-soft:rgba(56, 189, 248, 0.14);--accent-strong:#7dd3fc;--shadow:0 18px 40px -18px rgba(0, 0, 0, 0.75);--code-bg:#11161d;--font-display:"Space Grotesk", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-mono:ui-monospace, "JetBrains Mono", SFMono-Regular, Menlo, Consolas, monospace;--maxw:1080px;--maxw-prose:760px;--radius:14px}html.light{--bg:#f6f7f9;--bg-elev:#ffffff;--bg-elev-2:#ffffff;--border:rgba(15, 23, 42, 0.10);--border-strong:rgba(15, 23, 42, 0.18);--text:#111824;--muted:#51606f;--faint:#7c8a99;--accent:#0e7490;--accent-soft:rgba(14, 116, 144, 0.10);--accent-strong:#0891b2;--shadow:0 18px 40px -22px rgba(15, 23, 42, 0.35);--code-bg:#f1f3f6}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;display:flex;flex-direction:column;font-family:var(--font-body);font-size:17px;line-height:1.65;color:var(--text);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .35s ease,color .35s ease}body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse at 50% 0%,#000 0%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 0%,#000 0%,transparent 75%);opacity:.5}img{max-width:100%;height:auto}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.15}::selection{background:var(--accent-soft)}.mono{font-family:var(--font-mono)}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}main{flex:1 0 auto;width:100%}.site-header{position:sticky;top:0;z-index:50;backdrop-filter:saturate(140%)blur(10px);-webkit-backdrop-filter:saturate(140%)blur(10px);background:color-mix(in srgb,var(--bg) 78%,transparent);border-bottom:1px solid var(--border)}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:62px}.brand{font-family:var(--font-display);font-weight:600;font-size:1.05rem;letter-spacing:-.01em;color:var(--accent)}.nav{display:flex;align-items:center;gap:6px}.nav a{position:relative;color:var(--text);font-size:.95rem;padding:8px 12px;border-radius:8px;transition:color .2s ease,background-color .2s ease}.nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav a:hover,.nav a.active{color:var(--accent)}.nav a:hover::after,.nav a.active::after{transform:scaleX(1)}.nav a.external::before{content:"↗";font-size:.8em;opacity:.7;margin-right:2px}.lang-switch{display:inline-flex;align-items:center;gap:2px;margin-left:6px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elev)}.nav .lang-switch a{padding:4px 7px;border-radius:7px;font-family:var(--font-mono);font-size:.78rem;color:var(--muted)}.nav .lang-switch a::after{display:none}.nav .lang-switch a:hover{color:var(--text)}.nav .lang-switch a.active{color:var(--accent);background:var(--accent-soft)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin-left:6px;border:1px solid var(--border);border-radius:10px;background:var(--bg-elev);color:var(--muted);cursor:pointer;transition:color .2s,border-color .2s,transform .2s}.theme-toggle:hover{color:var(--accent);border-color:var(--border-strong);transform:translateY(-1px)}.theme-toggle .icon-sun{display:none}html.light .theme-toggle .icon-sun{display:inline}html.light .theme-toggle .icon-moon{display:none}.site-footer{border-top:1px solid var(--border);color:var(--faint);font-size:.85rem;margin-top:64px}.site-footer .container{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding-top:22px;padding-bottom:22px}.site-footer a{color:var(--muted)}.site-footer p{margin:0}.landing{position:relative;display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 62px);padding:40px 24px 64px}.hero{position:relative;width:min(92vw,var(--maxw));margin:0 auto;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-strong);box-shadow:var(--shadow);opacity:0;transform:scale(1.015);animation:hero-in .9s cubic-bezier(.22,1,.36,1)forwards}.hero-media{position:relative;overflow:hidden;background-image:var(--lqip);background-size:cover;background-position:50% 45%}.hero img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;opacity:0;transform:scale(calc(1 + var(--hero-zoom,0) * .3));transform-origin:50% 45%;will-change:transform;transition:opacity .35s ease}.hero img.hero-loaded{opacity:1}.hero-cap{display:none}.hero-tag{display:inline-flex;align-items:center;gap:9px;margin:0;padding:9px 15px;max-width:100%;font-family:var(--font-mono);font-size:.92rem;line-height:1.35;color:#fff;background:rgba(7,10,14,.82);border:1px solid var(--accent-strong);border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;animation:rise .7s ease .46s forwards}.hero-tag i{color:var(--accent-strong);font-size:1.05em}.hero-overlay{position:absolute;left:0;right:0;bottom:0;padding:30% 34px 28px;background:linear-gradient( to top,rgba(7,10,14,.94) 0%,rgba(7,10,14,.86) 26%,rgba(7,10,14,.55) 52%,rgba(7,10,14,0) 78% );color:#fff}.hero-overlay .eyebrow{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-strong);margin:0 0 8px;opacity:0;animation:rise .7s ease .25s forwards}.hero-overlay .hero-name{margin:0;font-size:clamp(2.1rem,6vw,3.6rem);font-weight:700;letter-spacing:-.02em;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.5);opacity:0;animation:rise .7s ease .34s forwards}.hero-overlay .hero-role{margin:6px 0 0;font-family:var(--font-mono);font-size:clamp(.85rem,2.2vw,1.05rem);color:rgba(255,255,255,.82);opacity:0;animation:rise .7s ease .42s forwards}.hero-meta{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 22px;margin-top:18px;opacity:0;animation:rise .7s ease .5s forwards}.hero-meta .meta-item{display:inline-flex;align-items:center;gap:8px;font-size:.95rem;color:rgba(255,255,255,.88)}.hero-meta .meta-item i{color:var(--accent-strong)}.hero-social-col{margin-left:auto;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.hero-social{display:flex;gap:8px}.cap-link{color:#7dd3fc;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px;white-space:nowrap}.cap-link:hover{color:#fff;text-decoration-color:#fff}.cap-link::after{content:"\2197";font-size:.85em;margin-left:1px;vertical-align:1px}.hero-social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,6%);color:#fff;font-size:1.05rem;transition:transform .2s ease,background-color .2s ease,color .2s ease,border-color .2s}.hero-social a:hover{transform:translateY(-3px);color:var(--accent-strong);border-color:var(--accent-strong);background:rgba(56,189,248,.12)}@keyframes hero-in{to{opacity:1;transform:scale(1)}}@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.scroll-cue{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--muted);border:1px solid var(--border);background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:bob 1.9s ease-in-out infinite;transition:color .2s,border-color .2s}.scroll-cue:hover{color:var(--accent);border-color:var(--accent)}@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,6px)}}.home-about{max-width:860px;margin:0 auto;padding:24px 24px 8px}.home-about>section[id]{scroll-margin-top:84px}.home-about .about-section:first-child{margin-top:12px}.page{padding:56px 0 24px}.page-prose{max-width:var(--maxw-prose)}.page-head{margin-bottom:40px}.page-head .eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}.page-head h1{margin:0;font-size:clamp(2rem,5vw,2.8rem);letter-spacing:-.02em}.page-head p{color:var(--muted);margin:12px 0 0;max-width:60ch}.card-list{display:grid;gap:16px}.card{display:block;padding:22px 24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);color:inherit;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-3px);border-color:var(--border-strong);box-shadow:var(--shadow);color:inherit}.card .card-date{font-family:var(--font-mono);font-size:.78rem;color:var(--faint);letter-spacing:.04em}.card h2{margin:8px 0 6px;font-size:1.35rem;color:var(--text)}.card:hover h2{color:var(--accent)}.card p{margin:0;color:var(--muted);font-size:.97rem}.card .card-more{display:inline-block;margin-top:14px;font-family:var(--font-mono);font-size:.82rem;color:var(--accent)}.empty-note{color:var(--muted);font-style:italic}.about-intro{color:var(--muted);font-size:1.1rem;max-width:65ch}.about-section{margin-top:48px}.about-section>h2{display:flex;align-items:center;gap:12px;font-size:1.5rem;margin:0 0 22px;padding-bottom:12px;border-bottom:1px solid var(--border)}.about-section>h2 i{color:var(--accent);font-size:1.1rem}.entry{position:relative;padding:0 0 4px 22px;margin-bottom:26px;border-left:2px solid var(--border)}.entry::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.entry .entry-top{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.entry h3{margin:0;font-size:1.12rem}.entry .entry-date{font-family:var(--font-mono);font-size:.8rem;color:var(--faint)}.entry .entry-org{margin:2px 0 0;color:var(--accent);font-size:.96rem}.entry .entry-detail{margin:8px 0 0;color:var(--muted);font-size:.96rem}.chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.chip{border:1px solid var(--border);border-radius:12px;background:var(--bg-elev);padding:14px 16px}.chip .chip-title{margin:0;font-size:1rem}.plain-list{list-style:none;padding:0;margin:0}.plain-list li{padding:8px 0;border-bottom:1px solid var(--border);color:var(--muted)}.plain-list li:last-child{border-bottom:0}.content{font-size:1.02rem}.content>*:first-child{margin-top:0}.content h1,.content h2,.content h3,.content h4{margin:1.8em 0 .6em;scroll-margin-top:80px}.content h1{font-size:1.9rem}.content h2{font-size:1.5rem;padding-bottom:.3em;border-bottom:1px solid var(--border)}.content h3{font-size:1.25rem}.content p,.content ul,.content ol{margin:0 0 1.1em}.content ul,.content ol{padding-left:1.4em}.content li{margin:.3em 0}.content a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent-soft)}.content a:hover{text-decoration-color:var(--accent)}.content img{display:block;margin:1.6em auto;border-radius:10px;border:1px solid var(--border)}.content blockquote{margin:1.4em 0;padding:4px 18px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;color:var(--muted)}.content code{font-family:var(--font-mono);font-size:.88em;background:var(--code-bg);padding:.15em .4em;border-radius:5px;border:1px solid var(--border)}.content pre{background:var(--code-bg);border:1px solid var(--border);border-radius:10px;padding:16px 18px;overflow-x:auto;margin:1.4em 0}.content pre code{background:0 0;border:0;padding:0;font-size:.86rem}.content hr{border:0;border-top:1px solid var(--border);margin:2.2em 0}.content table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:.95rem}.content th,.content td{border:1px solid var(--border);padding:8px 12px;text-align:left}.content th{background:var(--bg-elev)}.prevnext{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:22px;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:.85rem}.back-link{display:inline-block;margin-bottom:26px;font-family:var(--font-mono);font-size:.85rem;color:var(--muted)}.back-link:hover{color:var(--accent)}.post-meta{font-family:var(--font-mono);color:var(--faint);font-size:.85rem;margin:6px 0 0}.pagination{display:flex;gap:8px;justify-content:center;margin-top:40px;list-style:none;padding:0}.pagination a,.pagination span{font-family:var(--font-mono);font-size:.85rem;padding:6px 12px;border:1px solid var(--border);border-radius:8px;color:var(--muted)}.pagination a:hover{border-color:var(--accent);color:var(--accent)}.pagination .active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.notfound{text-align:center;padding:12vh 24px}.notfound h1{font-size:clamp(3rem,14vw,7rem);margin:0;color:var(--accent)}.notfound p{color:var(--muted)}@view-transition{navigation: auto;
}.site-header{view-transition-name:site-header}::view-transition-old(root){animation:vt-fade-out .18s ease both}::view-transition-new(root){animation:vt-fade-in .25s ease both}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{from{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){@view-transition{navigation: none; }}.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}.hero{opacity:1;transform:none}.hero img{transform:none}.hero-overlay .eyebrow,.hero-overlay .hero-name,.hero-overlay .hero-role,.hero-tag,.hero-meta{opacity:1}}@media(max-width:700px){body{font-size:16px}.container{padding:0 18px}.nav{gap:2px}.nav a{padding:8px 7px;font-size:.88rem}.lang-switch{margin-left:3px;padding:2px}.nav .lang-switch a{padding:4px 5px;font-size:.72rem}.brand{font-size:1rem}.landing{display:block;min-height:auto;padding:18px 16px 24px}.hero{width:100%;transform:none}.hero-media{background-image:var(--lqip-mobile,var(--lqip))}.hero img{aspect-ratio:4/3;transform:scale(calc(1 + var(--hero-zoom,0) * .22))}.hero-overlay{position:static;padding:18px 18px 20px;background:var(--bg-elev);color:var(--text);border-top:1px solid var(--border)}.hero-overlay .eyebrow{color:var(--accent)}.hero-overlay .hero-name{color:var(--text);text-shadow:none;font-size:clamp(1.7rem,8vw,2.3rem)}.hero-overlay .hero-role{color:var(--muted)}.hero-meta{gap:10px 16px;margin-top:14px}.hero-meta .meta-item{color:var(--text)}.hero-social-col{margin-left:0;align-items:flex-start;width:100%}.hero-social{margin-top:0}.hero-social a{color:var(--text);border-color:var(--border);background:var(--bg-elev-2)}.hero-social a:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.scroll-cue{display:none}.hero-social-col .hero-tag{display:none}.hero-cap{display:inline-flex;align-items:center;gap:9px;position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:8px 13px;color:#fff;background:rgba(7,10,14,.82);border:1px solid var(--accent-strong);border-radius:999px;box-shadow:0 4px 14px rgba(0,0,0,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-family:var(--font-mono);font-size:.82rem;line-height:1.35}.hero-cap i{color:var(--accent-strong)}.home-about{padding:8px 18px}.entry{padding-left:18px}}@media(max-width:380px){.hero-social a{width:38px;height:38px}.hero-meta .meta-item{font-size:.9rem}}.chip-title p,.plain-list li p,.site-footer div p{margin:0}.chip p{margin:4px 0 0;color:var(--muted);font-size:.9rem}