:root{color-scheme:light;--bg:#f7f8fc;--bg-dot:#7e8aaa29;--surface:#fff;--surface-soft:#f1f3fa;--surface-tint:#eef2ff;--fg:#141824;--fg-muted:#656d81;--fg-faint:#9aa2b6;--accent:#4a7dff;--accent-ink:#2f5fe0;--accent-2:#8b6cff;--accent-pink:#ff8fb1;--accent-soft:#4a7dff1a;--accent-soft-2:#4a7dff2e;--mark:#ffe27a;--mark-soft:#ffe27a8c;--border:#1418241a;--border-strong:#1418242e;--shadow-sm:0 1px 3px #1418240f;--shadow:0 6px 18px -10px #14182438;--shadow-lg:0 16px 40px -20px #14182447;--radius-sm:10px;--radius:16px;--radius-lg:22px;--radius-pill:999px;--maxw:1040px;--maxw-narrow:720px;--gutter:clamp(20px, 5vw, 44px);--ease:cubic-bezier(.22, .61, .36, 1);--dur:.22s;--font-sans:"PingFang SC", "HarmonyOS Sans SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", ui-monospace, Consolas, monospace}@media (prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#0e1117;--bg-dot:#ffffff12;--surface:#161a23;--surface-soft:#1b2029;--surface-tint:#1e2432;--fg:#e8ecf5;--fg-muted:#a3adc0;--fg-faint:#6f7b90;--accent:#7d9cff;--accent-ink:#9db4ff;--accent-2:#a98bff;--accent-pink:#ff8fb1;--accent-soft:#7d9cff24;--accent-soft-2:#7d9cff42;--mark:#ffe27a4d;--mark-soft:#ffe27a2e;--border:#ffffff17;--border-strong:#ffffff29;--shadow-sm:0 1px 3px #0006;--shadow:0 8px 22px -12px #0009;--shadow-lg:0 20px 48px -24px #000000b3}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{min-height:100vh;font-family:var(--font-sans);color:var(--fg);background-color:var(--bg);background-image:radial-gradient(var(--bg-dot) 1px, transparent 1px);-webkit-font-smoothing:antialiased;background-size:22px 22px;flex-direction:column;margin:0;font-size:16px;line-height:1.75;display:flex}img{max-width:100%;height:auto;display:block}a{color:inherit;transition:color var(--dur) var(--ease), opacity var(--dur) var(--ease);text-decoration:none}a:hover{color:var(--accent-ink)}h1,h2,h3,h4{letter-spacing:-.02em;color:var(--fg);margin:0 0 .6em;font-weight:800;line-height:1.25}h1{letter-spacing:-.035em;font-size:clamp(2.2rem,5.6vw,3.6rem)}h2{font-size:clamp(1.35rem,2.6vw,1.8rem)}h3{letter-spacing:-.01em;font-size:1.12rem;font-weight:700}p{margin:0 0 1.1em}::selection{background:var(--mark-soft);color:var(--fg)}.container{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.container-narrow{width:100%;max-width:var(--maxw-narrow);padding-inline:var(--gutter);margin-inline:auto}main{flex:1 0 auto;padding-block:clamp(1.5rem,4vw,2.5rem) clamp(3rem,8vw,6rem)}.stack{flex-direction:column;gap:1rem;display:flex}.grid{gap:18px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.section{margin-top:clamp(2.6rem,6vw,4.5rem)}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.3rem;display:flex}.section-head h2{align-items:center;gap:.55rem;margin:0;font-size:clamp(1.45rem,3vw,1.9rem);display:flex}.section-head h2:before{content:"";background:var(--accent);border-radius:3px;width:6px;height:1.05em}.section-more{color:var(--fg-muted);white-space:nowrap;border-radius:var(--radius-pill);transition:background var(--dur) var(--ease), color var(--dur) var(--ease);align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.9rem;display:inline-flex}.section-more:hover{background:var(--accent-soft);color:var(--accent-ink)}.card{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);padding:1.4rem 1.5rem;display:block;position:relative}a.card:hover{box-shadow:var(--shadow);border-color:var(--accent-soft-2);transform:translateY(-3px)}.btn{border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface);color:var(--fg);cursor:pointer;transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease), color var(--dur) var(--ease);justify-content:center;align-items:center;gap:.4rem;padding:.62rem 1.35rem;font-size:.94rem;font-weight:600;line-height:1.4;display:inline-flex}.btn:hover{box-shadow:var(--shadow-sm);color:var(--fg);transform:translateY(-2px)}.btn-primary{background:var(--accent);color:#fff;border-color:#0000;box-shadow:0 8px 18px -10px #4a7dffa6}.btn-primary:hover{color:#fff;filter:brightness(1.04);box-shadow:0 12px 24px -12px #4a7dffb3}.chips{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.chip{border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-ink);white-space:nowrap;transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);align-items:center;gap:.3rem;padding:.24rem .7rem;font-size:.8rem;font-weight:600;line-height:1.6;display:inline-flex}a.chip:hover{background:var(--accent-soft-2);color:var(--accent-ink);transform:translateY(-1px)}.muted{color:var(--fg-muted)}.faint{color:var(--fg-faint)}.small{font-size:.875rem}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:.8rem;font-size:.76rem;font-weight:700;display:inline-block}.mk{color:var(--accent-ink);z-index:0;display:inline-block;position:relative}.mk:after{content:"";background:var(--mark);opacity:.72;z-index:-1;border-radius:3px;height:.4em;position:absolute;bottom:.06em;left:-.06em;right:-.06em}.prose{color:var(--fg);font-size:1.04rem;line-height:1.95}.prose>:first-child{margin-top:0}.prose h2{border-left:4px solid var(--accent);margin:2.3em 0 .8em;padding-left:.7rem;font-size:1.38rem;line-height:1.4}.prose h3{margin:1.9em 0 .6em;font-size:1.1rem}.prose p{margin:0 0 1.35em}.prose a{color:var(--accent-ink);text-decoration:underline;text-decoration-color:var(--accent-soft-2);text-underline-offset:3px;text-decoration-thickness:2px}.prose a:hover{text-decoration-color:var(--accent-ink)}.prose ul,.prose ol{margin:0 0 1.35em;padding-left:1.35em}.prose li{margin-bottom:.45em}.prose li::marker{color:var(--accent-ink)}.prose blockquote{border-left:4px solid var(--accent-soft-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-soft);color:var(--fg-muted);margin:1.6em 0;padding:.9em 1.2em}.prose blockquote p:last-child{margin-bottom:0}.prose code{background:var(--surface-soft);border:1px solid var(--border);font-size:.9em;font-family:var(--font-mono);border-radius:6px;padding:.15em .42em}.prose pre{border-radius:var(--radius);color:#e8ecf5;background:#161a23;margin:0 0 1.5em;padding:1.1rem 1.2rem;font-size:.88rem;line-height:1.7;overflow-x:auto}.prose pre code{color:inherit;background:0 0;border:0;padding:0}.prose img{border-radius:var(--radius);margin:1.6em 0}.prose hr{border:0;border-top:1px dashed var(--border-strong);margin:2.4em 0}.site-footer{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;padding-block:1.9rem;display:flex}.footer-socials{flex-wrap:wrap;gap:.4rem;display:flex}.footer-meta{color:var(--fg-faint);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.82rem;display:flex}.footer-meta a{color:var(--fg-faint)}.footer-meta a:hover{color:var(--accent-ink)}@media (width<=720px){body{background-size:18px 18px}h1{font-size:clamp(1.9rem,8vw,2.6rem)}.footer-inner{flex-direction:column;align-items:flex-start}}:root{--ease-out:cubic-bezier(.22, .61, .36, 1);--ease-spring:cubic-bezier(.16, 1, .3, 1)}#scroll-progress{z-index:120;height:2px;transform:scaleX(var(--p,0));transform-origin:0;background:var(--accent);opacity:0;pointer-events:none;transition:opacity .35s var(--ease-out);position:fixed;inset-block-start:0;inset-inline:0}.js[data-motion=a] #scroll-progress,.js[data-motion=b] #scroll-progress,.js[data-motion=c] #scroll-progress{opacity:1}[data-scrolled="1"] .nav-pill{box-shadow:var(--shadow-sm)}@media (prefers-reduced-motion:no-preference){:where(.js[data-motion=a],.js[data-motion=b],.js[data-motion=c]) :is([data-reveal],.hero-text>*,.hero-art,.entries>.entry,.section-head,.grid>*,.about-grid>*,.blog-layout>*,.project-grid>*,.oc-head,.oc-panel,.oc-stage>*,.sheet,.ap-sheet,.post-head,.strip-item,.page-head>*,.post-list>*,.tl-year,.tl-list>.note-item,.blog-aside>*,.about-aside>*,.prose>*){transition:opacity .5s var(--ease-out), transform .72s var(--ease-spring), filter .62s var(--ease-out);transition-delay:var(--d,0s);will-change:opacity, transform}:where(.js[data-motion=a],.js[data-motion=b],.js[data-motion=c]) :is([data-reveal],.hero-text>*,.hero-art,.entries>.entry,.section-head,.grid>*,.about-grid>*,.blog-layout>*,.project-grid>*,.oc-head,.oc-panel,.oc-stage>*,.sheet,.ap-sheet,.post-head,.strip-item,.page-head>*,.post-list>*,.tl-year,.tl-list>.note-item,.blog-aside>*,.about-aside>*,.prose>*):not(.is-in){opacity:0;filter:blur(var(--reveal-blur,0px));transform:translateY(var(--reveal-y,0px)) scale(var(--reveal-s,1))}.js[data-motion=a]{--reveal-y:14px;--reveal-s:1;--reveal-blur:0px}.js[data-motion=b]{--reveal-y:.45em;--reveal-s:1;--reveal-blur:10px}.js[data-motion=c]{--reveal-y:30px;--reveal-s:.975;--reveal-blur:0px}.js[data-motion=c] .entry:hover,.js[data-motion=c] .card:hover{transform:translateY(-3px)rotate(-.35deg)}.js[data-motion] .hero-art .avatar,.js[data-motion] .merge-art img{animation:9s ease-in-out infinite breathe}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}}[data-motion=off] [data-reveal],[data-motion=off] #scroll-progress{opacity:1!important;filter:none!important;clip-path:none!important;transition:none!important;animation:none!important;transform:none!important}[data-motion=off] .hero-art .avatar{animation:none!important}[data-demo] .demo-item{--d:0s}@media (prefers-reduced-motion:no-preference){.js [data-demo=a] .demo-item{opacity:0;transition:opacity .62s var(--ease-out), transform .62s var(--ease-out);transition-delay:var(--d,0s);transform:translateY(14px)}.js [data-demo=a] .demo-item.is-in{opacity:1;transform:none}.js [data-demo=b] .demo-item{opacity:0;filter:blur(10px);transition:opacity .5s var(--ease-out), filter .72s var(--ease-out), transform .72s var(--ease-out);transition-delay:var(--d,0s);transform:translateY(.45em)}.js [data-demo=b] .demo-item.is-in{opacity:1;filter:blur();transform:none}.js [data-demo=c] .demo-item{opacity:0;transition:opacity .5s var(--ease-out), transform .72s var(--ease-spring);transition-delay:var(--d,0s);transform:translateY(30px)scale(.975)}.js [data-demo=c] .demo-item.is-in{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){[data-demo] .demo-item{opacity:1!important;clip-path:none!important;transform:none!important}}.site-header[data-astro-cid-fzpbxy5g]{z-index:40;pointer-events:none;padding-block:.9rem;position:sticky;top:0}.nav-pill[data-astro-cid-fzpbxy5g]{pointer-events:auto;width:calc(100% - var(--gutter) * 2);max-width:var(--maxw);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);align-items:center;gap:.9rem;margin-inline:auto;padding:.45rem .5rem .45rem .65rem;display:flex}.brand[data-astro-cid-fzpbxy5g]{color:inherit;flex-shrink:0;align-items:center;gap:.6rem;min-width:0;display:inline-flex}.brand-avatar[data-astro-cid-fzpbxy5g]{object-fit:cover;background:var(--surface-soft);border:1px solid var(--border);border-radius:50%;flex:none;width:38px;height:38px}.brand-text[data-astro-cid-fzpbxy5g]{flex-direction:column;min-width:0;line-height:1.2;display:flex}.brand-name[data-astro-cid-fzpbxy5g]{letter-spacing:-.01em;color:var(--fg);white-space:nowrap;font-size:.95rem;font-weight:800}.brand-sub[data-astro-cid-fzpbxy5g]{letter-spacing:.01em;color:var(--fg-faint);white-space:nowrap;text-overflow:ellipsis;font-size:.66rem;font-weight:600;overflow:hidden}.nav[data-astro-cid-fzpbxy5g]{align-items:center;gap:.1rem;min-width:0;margin-inline:auto;display:flex}.nav-link[data-astro-cid-fzpbxy5g]{z-index:0;border-radius:var(--radius-pill);color:var(--fg-muted);white-space:nowrap;transition:color var(--dur) var(--ease);padding:.4rem .85rem;font-size:.92rem;font-weight:600;position:relative}.nav-link[data-astro-cid-fzpbxy5g]:before{content:"";z-index:-1;border-radius:inherit;background:var(--accent-soft);opacity:0;transition:opacity .2s,transform .34s cubic-bezier(.22,1,.36,1);position:absolute;inset:0;transform:scale(.72)}.nav-link[data-astro-cid-fzpbxy5g]:hover{color:var(--accent-ink)}.nav-link[data-astro-cid-fzpbxy5g]:hover:before{opacity:1;transform:scale(1)}.nav-link[data-astro-cid-fzpbxy5g].is-active{color:var(--accent-ink)}.nav-link[data-astro-cid-fzpbxy5g].is-active:before{opacity:1;animation:.46s cubic-bezier(.22,1,.36,1) nav-settle;transform:scale(1)}.nav-link[data-astro-cid-fzpbxy5g].is-leaving:before{opacity:0;transition:opacity .16s,transform .2s;transform:scale(.66)}.nav-link[data-astro-cid-fzpbxy5g].is-leaving{color:var(--fg-faint)}.nav-link[data-astro-cid-fzpbxy5g].is-pending:before{opacity:.65;transform:scale(.9)}@keyframes nav-settle{0%{opacity:0;transform:scale(.72)}60%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.nav-link[data-astro-cid-fzpbxy5g]:before,.nav-link[data-astro-cid-fzpbxy5g].is-active:before{transition:none;animation:none}}.nav-cta[data-astro-cid-fzpbxy5g]{border-radius:var(--radius-pill);color:#fff;white-space:nowrap;background:var(--accent);transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);flex-shrink:0;padding:.46rem 1.05rem;font-size:.88rem;font-weight:700;box-shadow:0 6px 16px #4a7dff4d}.nav-cta[data-astro-cid-fzpbxy5g]:hover{color:#fff;transform:translateY(-1px);box-shadow:0 9px 22px #4a7dff66}@media (width<=800px){.nav-cta[data-astro-cid-fzpbxy5g]{display:none}}@media (width<=640px){.brand-sub[data-astro-cid-fzpbxy5g]{display:none}.nav-pill[data-astro-cid-fzpbxy5g]{gap:.35rem;padding:.4rem .45rem}.nav[data-astro-cid-fzpbxy5g]{margin-left:auto}.nav-link[data-astro-cid-fzpbxy5g]{padding:.36rem .6rem;font-size:.86rem}}@media (width<=560px){.nav[data-astro-cid-fzpbxy5g]{scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-left:auto;overflow-x:auto}.nav[data-astro-cid-fzpbxy5g]::-webkit-scrollbar{display:none}.nav-link[data-astro-cid-fzpbxy5g]{white-space:nowrap;padding:.34rem .52rem;font-size:.82rem}}@media (width<=430px){.brand-name[data-astro-cid-fzpbxy5g]{display:none}.nav-pill[data-astro-cid-fzpbxy5g]{gap:.2rem}}.site-footer[data-astro-cid-nns7i3if]{border-top:1px solid var(--border);flex:none;margin-top:auto;padding-block:2.2rem 2.6rem}.footer-inner[data-astro-cid-nns7i3if]{text-align:center;flex-direction:column;align-items:center;gap:.9rem;display:flex}.footer-socials[data-astro-cid-nns7i3if]{flex-wrap:wrap;justify-content:center;gap:.4rem 1.1rem;display:flex}.footer-link[data-astro-cid-nns7i3if]{color:var(--fg-muted);font-size:.86rem}.footer-link[data-astro-cid-nns7i3if]:hover{color:var(--accent-ink)}.footer-meta[data-astro-cid-nns7i3if]{margin:0;line-height:1.9}.dot[data-astro-cid-nns7i3if]{opacity:.5;margin-inline:.35em}#boot{z-index:9999;background:var(--bg,#f7f8fc);place-items:center;transition:opacity .34s,visibility .34s;display:grid;position:fixed;inset:0}html.boot-skip #boot,html:not(.js) #boot{display:none}#boot.boot-out{opacity:0;visibility:hidden}.boot-inner{text-align:center;flex-direction:column;align-items:center;gap:0;padding:1rem;display:flex}.boot-oven{background:var(--surface,#fff);border-radius:50%;place-items:center;width:132px;height:132px;display:grid;position:relative;box-shadow:0 16px 34px #1c263e1f,inset 0 2px #ffffffe6}.boot-ring{border:2px dashed #4a7dff52;border-radius:50%;animation:9s linear infinite boot-spin;position:absolute;inset:-10px}.boot-face{object-fit:cover;object-position:50% 38%;border-radius:50%;width:116px;height:116px;animation:2.4s ease-in-out infinite boot-bob;display:block}.boot-face-wrap{border-radius:50%;width:116px;height:116px;display:block;overflow:hidden}.boot-face-wrap .boot-face{width:100%;height:100%;transform:scale(1.32)}.boot-name{letter-spacing:.03em;color:var(--fg,#171a23);margin:1.35rem 0 0;font-size:1.22rem;font-weight:700}.boot-sub{letter-spacing:.16em;text-transform:uppercase;color:var(--muted,#7c8497);margin:.3rem 0 0;font-size:.72rem}.boot-bar{background:#4a7dff29;border-radius:999px;width:168px;height:4px;margin-top:1.5rem;position:relative;overflow:hidden}.boot-fill{background:var(--accent,#4a7dff);border-radius:999px;width:0%;height:100%;transition:width .22s;display:block}.boot-tip{letter-spacing:.02em;color:var(--muted,#7c8497);font-variant-numeric:tabular-nums;margin:.72rem 0 0;font-size:.78rem}@keyframes boot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes boot-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.boot-ring,.boot-face{animation:none}}.dock[data-astro-cid-7vnd4wet]{z-index:900;font-size:.92rem;position:fixed;bottom:clamp(.9rem,2.4vw,1.6rem);right:clamp(.9rem,2.4vw,1.6rem)}.dock-fab[data-astro-cid-7vnd4wet]{background:var(--surface);cursor:pointer;border:0;border-radius:50%;place-items:center;width:58px;height:58px;padding:0;transition:transform .24s cubic-bezier(.16,1,.3,1),box-shadow .24s;display:grid;position:relative;box-shadow:0 10px 26px #141c342e,0 2px 6px #141c341a}.dock-fab[data-astro-cid-7vnd4wet]:hover{transform:translateY(-2px);box-shadow:0 14px 30px #141c3438}.dock-fab[data-astro-cid-7vnd4wet] img[data-astro-cid-7vnd4wet]{object-fit:cover;border-radius:50%;width:100%;height:100%}.dock-dot[data-astro-cid-7vnd4wet]{border:2px solid var(--surface);background:#43c07a;border-radius:50%;width:11px;height:11px;animation:2.6s ease-in-out infinite dock-pulse;position:absolute;bottom:3px;right:3px}@keyframes dock-pulse{0%,to{box-shadow:0 0 #43c07a80}55%{box-shadow:0 0 0 6px #43c07a00}}.panel[data-astro-cid-7vnd4wet]{background:var(--surface);transform-origin:100% 100%;border-radius:18px;flex-direction:column;width:min(88vw,358px);height:min(66vh,520px);animation:.26s cubic-bezier(.16,1,.3,1) panel-in;display:flex;position:absolute;bottom:72px;right:0;overflow:hidden;box-shadow:0 18px 48px #141c3438,0 2px 8px #141c3414}.panel[data-astro-cid-7vnd4wet][hidden]{display:none}@keyframes panel-in{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:none}}.panel-head[data-astro-cid-7vnd4wet]{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:.6rem;padding:.7rem .8rem;display:flex}.panel-avatar[data-astro-cid-7vnd4wet]{object-fit:cover;border-radius:50%;width:36px;height:36px}.panel-id[data-astro-cid-7vnd4wet]{flex-direction:column;line-height:1.3;display:flex}.panel-id[data-astro-cid-7vnd4wet] strong[data-astro-cid-7vnd4wet]{font-size:.94rem}.panel-id[data-astro-cid-7vnd4wet] small[data-astro-cid-7vnd4wet]{color:var(--fg-faint);font-size:.72rem}.panel-close[data-astro-cid-7vnd4wet]{width:28px;height:28px;color:var(--fg-faint);cursor:pointer;background:0 0;border:0;border-radius:50%;margin-left:auto;font-size:1.1rem;line-height:1}.panel-close[data-astro-cid-7vnd4wet]:hover{background:var(--bg-soft,#f2f5fb);color:var(--fg)}.panel-log[data-astro-cid-7vnd4wet]{background:var(--bg-soft,#f7f9fd);scrollbar-width:thin;flex-direction:column;flex:1;gap:.5rem;padding:.9rem .8rem;display:flex;overflow-y:auto}.msg{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:84%;padding:.5rem .7rem;font-size:.85rem;line-height:1.62}.from-bot{background:var(--surface);border-bottom-left-radius:5px;align-self:flex-start;box-shadow:0 1px 3px #141c3414}.from-me{background:var(--accent);color:#fff;border-bottom-right-radius:5px;align-self:flex-end}.msg-error{color:var(--fg-faint);box-shadow:none;background:0 0;align-self:center;font-size:.76rem}.typing{align-items:center;gap:3px;display:inline-flex}.typing i{background:var(--fg-faint);border-radius:50%;width:5px;height:5px;animation:1.1s infinite typing}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.28;transform:none}30%{opacity:1;transform:translateY(-2px)}}.panel-compose[data-astro-cid-7vnd4wet]{border-top:1px solid var(--line);align-items:flex-end;gap:.45rem;padding:.6rem .7rem .2rem;display:flex}.panel-compose[data-astro-cid-7vnd4wet] textarea[data-astro-cid-7vnd4wet]{border:1px solid var(--line);background:var(--bg-soft,#f7f9fd);max-height:96px;color:inherit;font:inherit;resize:none;border-radius:12px;flex:1;padding:.5rem .65rem;font-size:.85rem;line-height:1.5}.panel-compose[data-astro-cid-7vnd4wet] textarea[data-astro-cid-7vnd4wet]:focus{outline-offset:1px;outline:2px solid #4a7dff59}.panel-compose[data-astro-cid-7vnd4wet] button[data-astro-cid-7vnd4wet]{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;transition:opacity .2s,transform .2s;display:grid}.panel-compose[data-astro-cid-7vnd4wet] button[data-astro-cid-7vnd4wet]:disabled{opacity:.45;cursor:default}.panel-compose[data-astro-cid-7vnd4wet] button[data-astro-cid-7vnd4wet]:not(:disabled):hover{transform:translateY(-1px)}.panel-foot[data-astro-cid-7vnd4wet]{color:var(--fg-faint);text-align:center;margin:0;padding:.25rem .8rem .6rem;font-size:.68rem}@media (width<=480px){.dock[data-astro-cid-7vnd4wet]{bottom:.8rem;right:.8rem}.panel[data-astro-cid-7vnd4wet]{width:min(92vw,358px);height:min(68vh,480px)}}@media (prefers-reduced-motion:reduce){.panel[data-astro-cid-7vnd4wet],.dock-dot[data-astro-cid-7vnd4wet]{animation:none}}
