@layer reset,base,layout,components;@layer reset{*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}}@layer base{:root{--bg: #f6f4f0;--rail-bg: #fbfaf8;--surface: #ffffff;--ink: #1c1a17;--muted: #6f6860;--faint: #9a938a;--line: #e4dfd6;--line-strong: #d4cec3;--accent: #1c1a17;--radius: 14px;--maxw: 1000px;--serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "Iowan Old Style", Georgia, serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace}html[data-theme=dark]{--bg: #14130f;--rail-bg: #191814;--surface: #1e1c17;--ink: #f1ece2;--muted: #a49c8f;--faint: #7d766a;--line: #2e2a23;--line-strong: #3d382f;--accent: #f1ece2}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--ink);color:var(--bg)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}}@layer layout{.app{display:grid;grid-template-columns:76px minmax(0,1fr);min-height:100vh}.content{width:100%;min-width:0;max-width:var(--maxw);padding-inline:clamp(1.25rem,4vw,3.5rem);margin-inline:0 auto;display:flex;flex-direction:column;min-height:100vh}main{flex:1;padding-block:clamp(1rem,3vw,2rem) 3.5rem}.eyebrow{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}@media(max-width:720px){.app{grid-template-columns:minmax(0,1fr)}}}@layer components{.rail{position:sticky;top:0;height:100vh;background:var(--rail-bg);border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1.1rem 0;z-index:30}.rail__logo{width:34px;height:34px;border-radius:50%;margin-bottom:.9rem;border:1px solid var(--line-strong);overflow:hidden;flex:none}.rail__link{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;color:var(--muted);transition:background .18s ease,color .18s ease}.rail__link:hover{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}.rail__link[aria-current=page]{background:var(--ink);color:var(--bg)}.rail__spacer{flex:1}.rail svg{width:19px;height:19px}@media(max-width:720px){.rail{position:sticky;height:auto;flex-direction:row;justify-content:center;gap:.5rem;border-right:0;border-bottom:1px solid var(--line);padding:.6rem .8rem}.rail__logo{margin-bottom:0}.rail__spacer{flex:1}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.15rem}.topbar__title{font-size:.92rem;color:var(--muted)}.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);background:var(--surface);transition:color .18s ease,border-color .18s ease}.icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.icon-btn svg{width:17px;height:17px}.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1.5rem,5vw,4rem);align-items:start;padding-block:clamp(1rem,2.5vw,1.6rem) clamp(1.2rem,3vw,2rem)}.hero h1{font-family:var(--serif);font-size:clamp(2.7rem,7vw,4.4rem);line-height:1.05;letter-spacing:-.02em;font-weight:700;text-wrap:balance}.hero__sub{margin-top:1rem;color:var(--muted);font-size:clamp(.95rem,1.6vw,1.05rem)}.hero__pill{display:inline-flex;align-items:center;gap:.45rem;margin-top:.9rem;padding:.18rem .7rem;border:1px solid var(--line-strong);border-radius:999px;font-size:.76rem;color:var(--muted)}.hero__pill:before{content:"";width:6px;height:6px;border-radius:50%;background:#3fa34d}.avatar-card{width:clamp(120px,17vw,168px);text-align:center}.avatar-card__img{width:100%;height:auto;aspect-ratio:1;border-radius:50%;border:1px solid var(--line);background:var(--surface);object-fit:cover;overflow:hidden}.avatar-card__name{margin-top:.85rem;font-family:var(--serif);font-size:.98rem;font-weight:600}.avatar-card__role{margin-top:.15rem;font-size:.78rem;color:var(--faint)}@media(max-width:720px){.hero{grid-template-columns:1fr}.avatar-card{width:96px}}.section{padding-block:1.2rem 1.8rem}.section__head{display:flex;align-items:baseline;gap:.8rem;margin-bottom:.9rem}.section__head h2{font-family:var(--serif);font-size:1.12rem;font-weight:600;letter-spacing:.01em}.note{max-width:100%;overflow-wrap:anywhere;border:1px dashed var(--line-strong);border-radius:12px;background:color-mix(in srgb,var(--surface) 55%,transparent);padding:clamp(1.4rem,3.4vw,2.2rem);font-family:var(--serif);font-size:clamp(1.05rem,2.2vw,1.3rem);line-height:1.75;letter-spacing:.01em}.note__label{display:block;font-family:var(--sans);font-size:.74rem;color:var(--faint);margin-bottom:.6rem;letter-spacing:.12em}.contact-list{display:grid;gap:.55rem;margin:0}.contact-item{display:grid;grid-template-columns:6rem minmax(0,1fr);align-items:baseline;gap:1rem}.contact-item dt{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.contact-item dd{margin:0;font-family:var(--serif);font-size:clamp(1rem,2vw,1.1rem);overflow-wrap:anywhere}.contact-item a{border-bottom:1px solid var(--line-strong);padding-bottom:1px;transition:border-color .18s ease,color .18s ease}.contact-item a:hover{color:var(--muted);border-color:var(--ink)}.prose{max-width:64ch}.prose>*+*{margin-top:1rem}.prose h2{font-family:var(--serif);font-size:1.16rem;font-weight:600;margin-top:2.2rem}.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--line-strong)}.prose a:hover{text-decoration-color:var(--ink)}.site-footer{border-top:1px solid var(--line);padding-block:2rem 2.4rem;font-size:.86rem;color:var(--muted)}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1.6rem 2.4rem;margin-bottom:1.8rem}.footer-block h3{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:.55rem;font-weight:500}.footer-block li{list-style:none}.footer-block ul{margin:0;padding:0}.footer-block a{border-bottom:1px solid transparent;transition:border-color .18s ease,color .18s ease}.footer-block a:hover{color:var(--ink);border-color:var(--line-strong)}.footer-base{display:flex;flex-wrap:wrap;gap:.5rem 1rem;justify-content:space-between;font-size:.78rem;color:var(--faint)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}@layer components{.rail__link{position:relative}.rail__label{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) translate(-4px);padding:.22rem .62rem;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:.78rem;line-height:1.5;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 8px 24px -12px #00000059;transition:opacity .14s ease,transform .14s ease;z-index:60}.rail:hover .rail__label{opacity:1;transform:translateY(-50%) translate(0)}@media(max-width:720px){.rail__label{display:none}}.topbar__actions{display:flex;align-items:center;gap:.5rem}.search-btn{display:inline-flex;align-items:center;gap:.45rem;height:38px;padding-inline:.7rem .55rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:.82rem;transition:color .18s ease,border-color .18s ease}.search-btn:hover{color:var(--ink);border-color:var(--line-strong)}.search-btn svg{width:15px;height:15px}.search-btn kbd,.palette__footer kbd{font-family:var(--mono);font-size:.66rem;padding:.1rem .34rem;border-radius:5px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 70%,var(--surface));color:var(--faint)}@media(max-width:560px){.search-btn__text{display:none}}.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-left:.55rem;border-radius:7px;border:1px solid transparent;color:var(--faint);vertical-align:middle;transition:color .16s ease,border-color .16s ease,background .16s ease}.copy-btn svg{width:13px;height:13px}.copy-btn:hover{color:var(--ink);border-color:var(--line-strong);background:var(--surface)}.palette{position:fixed;inset:0;z-index:100;display:none;align-items:flex-start;justify-content:center;padding-top:min(18vh,120px)}.palette.is-open{display:flex}.palette__backdrop{position:absolute;inset:0;background:#14130f6b;backdrop-filter:blur(3px)}.palette__panel{position:relative;width:min(100% - 2rem,560px);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 32px 80px -24px #00000073;overflow:hidden;animation:palette-in .16s ease-out}@keyframes palette-in{0%{opacity:0;transform:translateY(-6px) scale(.99)}to{opacity:1;transform:none}}.palette__input{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:.98rem;padding:1rem 1.15rem;outline:none}.palette__input::placeholder{color:var(--faint)}.palette__list{list-style:none;margin:0;padding:.4rem;max-height:min(52vh,380px);overflow-y:auto}.palette__item{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:.7rem;padding:.55rem .75rem;border-radius:9px;cursor:pointer;font-size:.9rem}.palette__item.is-active{background:color-mix(in srgb,var(--ink) 8%,transparent)}.palette__label{font-weight:500}.palette__hint{font-family:var(--mono);font-size:.72rem;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette__group{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.palette__empty{padding:1rem .9rem;color:var(--faint);font-size:.88rem}.palette__footer{display:flex;gap:1rem;padding:.6rem 1rem .7rem;border-top:1px solid var(--line);font-size:.7rem;color:var(--faint)}.palette__footer span{display:inline-flex;align-items:center;gap:.25rem}.toast{position:fixed;left:50%;bottom:2rem;transform:translate(-50%,12px);padding:.55rem 1rem;border-radius:999px;background:var(--ink);color:var(--bg);font-size:.82rem;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:120;max-width:min(90vw,32rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast.is-visible{opacity:1;transform:translate(-50%)}.notfound{display:grid;place-items:start;gap:1rem;padding-block:clamp(3rem,12vh,8rem)}.notfound__code{font-family:var(--serif);font-size:clamp(3.4rem,12vw,6rem);line-height:1;letter-spacing:-.03em}.notfound p{color:var(--muted)}}@layer components{.btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.05rem;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);font-size:.88rem;transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease}.btn:hover{transform:translateY(-1px);border-color:var(--ink)}.btn--primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn--primary:hover{opacity:.88}}@layer components{.post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.post-list li{border-bottom:1px solid var(--line)}.post-row{display:grid;grid-template-columns:7rem minmax(0,1fr) auto;align-items:baseline;gap:1.1rem;padding:1.05rem .35rem;border-radius:8px;transition:background .18s ease,padding-left .18s ease}.post-row:hover{background:color-mix(in srgb,var(--accent-soft) 45%,transparent);padding-left:.9rem}.post-row__date{font-family:var(--mono);font-size:.76rem;color:var(--faint)}.post-row__title{display:block;font-family:var(--serif);font-size:1.08rem;letter-spacing:-.01em}.post-row__summary{display:block;font-size:.88rem;color:var(--muted);margin-top:.15rem}.post-foot{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line)}.prose img{border-radius:10px;border:1px solid var(--line)}.prose table{width:100%;border-collapse:collapse;font-size:.9rem}.prose th,.prose td{border:1px solid var(--line);padding:.45rem .7rem;text-align:left}.prose th{background:color-mix(in srgb,var(--ink) 4%,transparent);font-weight:600}@media(max-width:640px){.post-row{grid-template-columns:1fr;gap:.2rem}.post-row__date{order:-1}}}@layer components{.article-head{border-bottom:1px solid var(--line);padding-bottom:1.9rem;margin-bottom:2.2rem}.article-head h1{font-family:var(--serif);font-size:clamp(1.9rem,4.4vw,2.7rem);line-height:1.16;letter-spacing:-.025em;margin-top:.75rem;text-wrap:balance}.lede{margin-top:.9rem;color:var(--muted);font-size:clamp(.98rem,2vw,1.08rem);max-width:48ch}.article-meta{display:flex;flex-wrap:wrap;gap:.45rem 1.2rem;margin-top:1.4rem;font-family:var(--mono);font-size:.73rem;color:var(--faint)}.prose{max-width:66ch;font-size:1.02rem;line-height:1.85}.prose h2{font-family:var(--serif);font-size:1.32rem;letter-spacing:-.01em;margin-top:2.5rem}.prose h3{font-family:var(--serif);font-size:1.12rem;margin-top:1.9rem}.prose strong{font-weight:600}.prose ul,.prose ol{padding-left:1.3rem}.prose li+li{margin-top:.35rem}.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--line-strong)}.prose a:hover{text-decoration-color:var(--ink)}.prose blockquote{border-left:2px solid var(--line-strong);padding-left:1rem;color:var(--muted)}.prose code{font-family:var(--mono);font-size:.87em;background:var(--accent-soft);padding:.12rem .36rem;border-radius:4px}.prose pre{border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem;overflow-x:auto;font-size:.86rem;line-height:1.7}.prose pre code{background:none;padding:0;font-size:inherit}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.2rem}.prose h2+p,.prose h3+p{margin-top:.75rem}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}@layer components{.contact-item dd{display:flex;align-items:center;flex-wrap:nowrap;gap:.4rem;min-width:0}.contact-item dd>a{min-width:0;overflow-wrap:anywhere}.copy-btn{flex:none;margin-left:0}@media(max-width:900px){.hero{gap:clamp(1.2rem,3vw,2.4rem)}}@media(max-width:720px){main{padding-block:.4rem 2.4rem}.topbar{padding-block:.9rem}.hero{grid-template-columns:1fr;padding-block:.4rem .9rem;gap:.9rem}.hero h1{font-size:clamp(2.2rem,10vw,3rem)}.avatar-card{width:auto;display:flex;align-items:center;gap:.7rem;text-align:left}.avatar-card__img{width:64px;flex:none}.avatar-card__name{display:none}.section{padding-block:1rem 1.5rem}.section__head{margin-bottom:.7rem}.note{padding:1.15rem 1.2rem}.search-btn kbd{display:none}.search-btn{width:38px;padding:0;justify-content:center}.search-btn__text{display:none}.site-footer{padding-block:1.6rem 2rem}.footer-grid{gap:1.2rem}}@media(max-width:480px){.contact-item{grid-template-columns:1fr;gap:.1rem}.contact-item dt{font-size:.64rem}.contact-item dd{font-size:1rem}.palette{padding-top:10vh}.palette__panel{width:calc(100% - 1.2rem);border-radius:14px}.palette__input{padding:.85rem 1rem;font-size:.92rem}.palette__item{grid-template-columns:minmax(0,1fr) auto;gap:.25rem .6rem;padding:.6rem .7rem}.palette__label{grid-column:1}.palette__hint{grid-column:1 / -1;font-size:.68rem;color:var(--faint)}.palette__group{grid-column:2;grid-row:1}.article-meta{gap:.35rem .9rem;font-size:.7rem}.post-row{padding:.9rem .2rem}.notfound{padding-block:3rem}}@media(max-width:380px){.rail{gap:.2rem;padding-inline:.4rem}.rail__link{width:38px;height:38px}.rail__logo img{width:28px;height:28px}}@media(hover:none){.rail__label{display:none}}}@layer components{.prose>:first-child{margin-top:0}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
