@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600&display=swap";.language-switcher[data-astro-cid-l4evwy7q]{position:relative}summary[data-astro-cid-l4evwy7q]{min-height:36px;color:var(--accent);background:var(--accent-soft);cursor:pointer;white-space:nowrap;border:1px solid #c9ad7880;border-radius:4px;align-items:center;gap:7px;padding:7px 10px;font-size:.75rem;list-style:none;display:flex}summary[data-astro-cid-l4evwy7q]::-webkit-details-marker{display:none}summary[data-astro-cid-l4evwy7q]:hover,details[data-astro-cid-l4evwy7q][open] summary[data-astro-cid-l4evwy7q]{border-color:var(--accent);background:var(--surface-strong)}summary[data-astro-cid-l4evwy7q] svg[data-astro-cid-l4evwy7q]{fill:none;stroke:currentColor;stroke-width:1.5px;width:16px;height:16px}.language-chevron[data-astro-cid-l4evwy7q]{font-size:1rem}.language-options[data-astro-cid-l4evwy7q]{z-index:30;border:1px solid var(--line);background:#111518;border-radius:6px;min-width:170px;padding:8px;position:absolute;top:calc(100% + 9px);right:0;box-shadow:0 12px 36px #0006}.language-heading[data-astro-cid-l4evwy7q]{color:var(--muted);padding:5px 9px 9px;font-size:.65rem;display:block}.language-options[data-astro-cid-l4evwy7q] a[data-astro-cid-l4evwy7q]{border-radius:3px;justify-content:space-between;gap:18px;padding:10px;font-size:.82rem;display:flex}.language-options[data-astro-cid-l4evwy7q] a[data-astro-cid-l4evwy7q]:hover{background:var(--surface-strong)}.language-options[data-astro-cid-l4evwy7q] a[data-astro-cid-l4evwy7q][aria-current]{background:var(--accent-soft);color:var(--accent)}@media (width<=600px){summary[data-astro-cid-l4evwy7q]{gap:5px;padding-inline:7px;font-size:.68rem}}.visitor-bubble[data-astro-cid-jauvkg7y]{z-index:9;backdrop-filter:blur(14px);pointer-events:none;background:linear-gradient(145deg,#23292af5,#0e1417f5);border:1px solid #c9ad7873;border-radius:32px;width:112px;padding:18px 12px 13px;position:fixed;top:calc(50% - 97px);right:16px;box-shadow:0 12px 35px #00000047,inset 0 1px #ffffff14}.visitor-bubble-heading[data-astro-cid-jauvkg7y]{color:var(--accent);justify-items:center;gap:7px;margin-bottom:14px;display:grid}.visitor-bubble-heading[data-astro-cid-jauvkg7y] svg[data-astro-cid-jauvkg7y]{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.visitor-bubble-heading[data-astro-cid-jauvkg7y]>span[data-astro-cid-jauvkg7y]{letter-spacing:.14em;font:.52rem DM Mono,monospace}.visitor-bubble-counts[data-astro-cid-jauvkg7y]{text-align:center;gap:12px;margin:0;display:grid}.visitor-bubble-counts[data-astro-cid-jauvkg7y]>div[data-astro-cid-jauvkg7y]+div[data-astro-cid-jauvkg7y]{border-top:1px solid var(--line);padding-top:11px}.visitor-bubble-counts[data-astro-cid-jauvkg7y] dt[data-astro-cid-jauvkg7y]{color:var(--muted);justify-content:center;align-items:center;gap:5px;font-size:.61rem;display:flex}.visitor-bubble-counts[data-astro-cid-jauvkg7y] dt[data-astro-cid-jauvkg7y] i[data-astro-cid-jauvkg7y]{background:#91c3a7;border-radius:50%;width:5px;height:5px;box-shadow:0 0 8px #91c3a780}.visitor-bubble-counts[data-astro-cid-jauvkg7y] dd[data-astro-cid-jauvkg7y]{color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:4px 0 0;font:1.2rem DM Mono,monospace}.visitor-bubble-counts[data-astro-cid-jauvkg7y]>div[data-astro-cid-jauvkg7y]:first-child dd[data-astro-cid-jauvkg7y]{color:var(--accent)}.visitor-bubble-status[data-astro-cid-jauvkg7y]{color:#81918f;text-align:center;margin-top:12px;font-size:.52rem;display:block}.is-offline[data-astro-cid-jauvkg7y] .visitor-bubble-status[data-astro-cid-jauvkg7y]{color:#d7a49b}@media (width<=1467px){.visitor-bubble[data-astro-cid-jauvkg7y]{top:auto;right:max(16px, env(safe-area-inset-right));bottom:max(20px, env(safe-area-inset-bottom));border-radius:24px;width:186px;padding:12px 14px}.visitor-bubble-heading[data-astro-cid-jauvkg7y]{display:none}.visitor-bubble-counts[data-astro-cid-jauvkg7y]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.visitor-bubble-counts[data-astro-cid-jauvkg7y]>div[data-astro-cid-jauvkg7y]+div[data-astro-cid-jauvkg7y]{border-top:0;border-left:1px solid var(--line);padding:0 0 0 12px}.visitor-bubble-counts[data-astro-cid-jauvkg7y] dd[data-astro-cid-jauvkg7y]{font-size:1rem}.visitor-bubble-status[data-astro-cid-jauvkg7y]{margin-top:5px;font-size:.5rem}}:root{--bg:#0b0d0f;--surface:#111518;--surface-strong:#171d20;--text:#eeeae1;--muted:#969c9d;--line:#2a3032;--accent:#c9ad78;--accent-soft:#c9ad781a;--warm:#86aaa3;--shell:1180px;color:var(--text);background:var(--bg);font-synthesis:none;font-family:Manrope,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{background:var(--bg);min-width:320px;min-height:100vh;color:var(--text);margin:0}body:before{content:"";pointer-events:none;z-index:-1;background-image:linear-gradient(#c9ad7806 1px,#0000 1px),linear-gradient(90deg,#c9ad7806 1px,#0000 1px);background-size:42px 42px;position:fixed;inset:0;mask-image:linear-gradient(#000 0%,#0000 76%)}a{color:inherit;text-decoration:none}p{color:var(--muted);line-height:1.75}h1,h2,h3{letter-spacing:-.035em;margin-top:0}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.shell{width:min(calc(100% - 48px), var(--shell));margin-inline:auto}.skip-link{z-index:20;background:var(--text);color:var(--bg);padding:12px 16px;position:fixed;top:-60px;left:16px}.skip-link:focus{top:16px}.site-header{z-index:10;border-bottom:1px solid var(--line);backdrop-filter:blur(16px);background:#0b0d0fe6;position:sticky;top:0}.header-inner{grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:74px;display:grid}.brand{align-items:center;gap:10px;width:max-content;font-family:DM Mono,monospace;font-size:.93rem;display:inline-flex}.brand-mark{border:1px solid var(--accent);width:32px;height:32px;color:var(--accent);place-items:center;display:inline-grid}.brand-muted{color:var(--muted)}.header-inner nav{white-space:nowrap;gap:6px;display:flex}.header-inner nav a{color:var(--muted);border:1px solid #0000;border-radius:4px;padding:9px 13px;font-size:.88rem;position:relative}.header-inner nav a:hover{color:var(--text);background:var(--surface-strong)}.header-inner nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent);border-color:#c9ad786b;font-weight:600}.header-inner nav a[aria-current=page]:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:4px;left:12px;right:12px}.header-actions{justify-self:end;align-items:center;gap:14px;display:flex}.header-owner{border:1px solid var(--line);color:var(--muted);text-transform:uppercase;padding:8px 10px;font-family:DM Mono,monospace;font-size:.72rem}.header-owner:hover,.header-owner[aria-current=page]{border-color:var(--accent);color:var(--text)}.header-github{color:var(--accent);font-family:DM Mono,monospace;font-size:.8rem}.hero{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);align-items:start;gap:78px;padding-block:108px 88px;display:grid}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 20px;font-family:DM Mono,monospace;font-size:.72rem}.status-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 14px var(--accent);border-radius:50%;margin-right:8px;display:inline-block}.hero h1,.page-intro h1{margin-bottom:28px;font-size:clamp(3rem,7.4vw,6.7rem);font-weight:500;line-height:.96}.hero h1 span{color:var(--muted)}.hero-intro{max-width:650px;margin:0;font-size:1.08rem}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.button{border:1px solid var(--line);justify-content:center;align-items:center;min-height:46px;padding:0 18px;font-family:DM Mono,monospace;font-size:.78rem;display:inline-flex}.button-primary{background:var(--accent);border-color:var(--accent);color:#0b0d0f}.button-primary:hover{background:#ddc795}.button-secondary:hover{border-color:var(--muted);background:var(--surface)}.focus-panel{border:1px solid var(--line);background:linear-gradient(145deg, var(--surface-strong), var(--surface));padding:22px;position:sticky;top:98px}.panel-topline{color:var(--accent);text-transform:uppercase;justify-content:space-between;margin-bottom:54px;font-family:DM Mono,monospace;font-size:.68rem;display:flex}.focus-panel h2{margin-bottom:10px;font-size:1.5rem;font-weight:500}.focus-panel>p{margin-bottom:28px;font-size:.9rem}.focus-list{border-top:1px solid var(--line)}.focus-list div{border-bottom:1px solid var(--line);grid-template-columns:34px 1fr;gap:10px;padding:13px 0;display:grid}.focus-list span{color:var(--accent);font-family:DM Mono,monospace;font-size:.68rem}.focus-list strong{font-size:.85rem;font-weight:500}.section{border-top:1px solid var(--line);padding-block:78px}.section-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px;display:flex}.section-heading .eyebrow{margin-bottom:10px}.section-heading h2{margin:0;font-size:clamp(1.9rem,4vw,3.2rem);font-weight:500}.text-link{color:var(--muted);font-family:DM Mono,monospace;font-size:.76rem}.text-link span{color:var(--accent)}.text-link:hover{color:var(--text)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.project-card{border:1px solid var(--line);background:var(--surface);flex-direction:column;justify-content:space-between;min-height:330px;padding:24px;transition:transform .2s,border-color .2s;display:flex}.project-card:hover{border-color:#3a5968;transform:translateY(-4px)}.card-meta,.post-meta{color:var(--muted);text-transform:uppercase;justify-content:space-between;font-family:DM Mono,monospace;font-size:.67rem;display:flex}.card-status{color:var(--warm)}.project-card h3{margin-bottom:12px;font-size:1.45rem;font-weight:500}.project-card p{margin-bottom:0;font-size:.9rem}.tag-list{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.tag-list li{background:var(--accent-soft);color:var(--accent);padding:6px 8px;font-family:DM Mono,monospace;font-size:.66rem}.writing-section{grid-template-columns:.68fr 1.32fr;gap:70px;display:grid}.writing-section .section-heading{margin:0;display:block}.writing-section .text-link{margin-top:22px;display:inline-block}.post-list{border-top:1px solid var(--line)}.post-card{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr 24px;gap:28px;padding:24px 4px;display:grid}.post-meta{place-content:start normal;gap:8px;display:grid}.post-meta span{color:var(--accent)}.post-card h3{margin-bottom:7px;font-size:1.2rem;font-weight:500}.post-card p{margin:0;font-size:.86rem}.post-arrow{color:var(--accent)}.statement{padding-block:82px 112px}.statement blockquote{letter-spacing:-.045em;max-width:960px;margin:0;font-size:clamp(2rem,4.6vw,4.3rem);font-weight:500;line-height:1.08}.page-intro{padding-block:100px 72px}.page-intro h1{max-width:980px;font-size:clamp(3rem,6vw,5.7rem)}.page-intro>p:last-child{max-width:720px;margin:0;font-size:1.04rem}.compact-section{padding-top:24px}.about-intro{grid-template-columns:1fr 1fr;gap:80px;display:grid}.about-intro h1{font-size:clamp(2.7rem,5vw,5rem)}.about-copy p:first-child{color:var(--text);font-size:1.15rem}.skill-grid{grid-template-columns:repeat(2,1fr);display:grid}.skill-grid article{border:1px solid var(--line);min-height:240px;margin:-1px 0 0 -1px;padding:28px}.skill-grid article>span{color:var(--accent);font-family:DM Mono,monospace;font-size:.72rem}.skill-grid h2{margin:54px 0 10px;font-size:1.5rem;font-weight:500}.skill-grid p{margin:0;font-size:.9rem}.site-footer{border-top:1px solid var(--line);background:#080a0b}.footer-inner{justify-content:space-between;gap:40px;padding-block:52px;display:flex}.footer-inner p{max-width:420px;margin:18px 0 0;font-size:.82rem}.footer-links{color:var(--muted);align-items:start;gap:26px;font-family:DM Mono,monospace;font-size:.75rem;display:flex}.footer-links a:hover{color:var(--accent)}.footer-bottom{border-top:1px solid var(--line);color:#657984;justify-content:space-between;padding-block:18px;font-family:DM Mono,monospace;font-size:.66rem;display:flex}@media (width<=860px){.header-inner{grid-template-columns:1fr auto}.header-inner nav{order:3;grid-column:1/-1;justify-content:center;padding-bottom:12px}.header-actions{grid-area:1/2}.hero{grid-template-columns:1fr;gap:48px;padding-block:72px}.focus-panel{max-width:560px;position:static}.project-grid{grid-template-columns:1fr}.project-card{min-height:260px}.writing-section{grid-template-columns:1fr;gap:36px}.about-intro{grid-template-columns:1fr;gap:20px}}@media (width<=600px){.shell{width:min(calc(100% - 30px), var(--shell))}.header-inner{gap:12px}.brand{font-size:.8rem}.brand-mark{width:29px;height:29px}.header-actions{gap:8px}.header-owner{padding:7px 8px;font-size:.62rem}.header-github{font-size:.7rem}.header-inner nav{scrollbar-width:none;justify-content:flex-start;gap:0;overflow-x:auto}.header-inner nav::-webkit-scrollbar{display:none}.header-inner nav a{padding-inline:9px;font-size:.76rem}.hero h1,.page-intro h1{font-size:clamp(2.7rem,15vw,4.5rem)}.section,.statement{padding-block:60px}.section-heading{display:block}.section-heading .text-link{margin-top:18px;display:inline-block}.post-card{grid-template-columns:1fr 18px;gap:14px}.post-meta{grid-column:1/-1;grid-template-columns:1fr auto}.skill-grid{grid-template-columns:1fr}.footer-inner{display:grid}.footer-links{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card{transition:none}}:root{font-family:Manrope,PingFang SC,Microsoft YaHei,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif}html:lang(zh) h1,html:lang(ja) h1{letter-spacing:-.025em;line-height:1.2}html:lang(zh) .statement blockquote,html:lang(ja) .statement blockquote{letter-spacing:0;line-height:1.45}.header-inner{grid-template-columns:auto minmax(0,1fr) auto;gap:18px}.header-inner nav{justify-content:center}.header-actions{white-space:nowrap;gap:10px}@media (width<=1180px){.header-inner{grid-template-columns:auto 1fr;padding-top:12px}.header-inner nav{order:3;grid-column:1/-1;padding-bottom:12px}.header-actions{grid-area:1/2}}@media (width<=600px){.header-inner{gap:12px 8px}.header-actions{gap:6px}.header-github{display:none}.header-inner nav{justify-content:flex-start}html:lang(zh) .hero h1,html:lang(ja) .hero h1,html:lang(zh) .page-intro h1,html:lang(ja) .page-intro h1{font-size:clamp(2rem,10vw,2.7rem)}}
