:root{--bg:#0a1214;--panel:#0f1b1e;--panel-deep:#0a1416;--line:#1e3a3c;--aqua:#3ee6c9;--pink:#ffa8c5;--text:#d7e6e4;--dim:#7fa39d;--dim-deep:#4d6a66;--font-body:"PingFang TC", "Hiragino Sans TC", "Microsoft JhengHei", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--wrap:1080px;--grad:linear-gradient(100deg, var(--aqua) 10%, var(--pink) 90%)}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{overflow-x:clip}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.75}body:before{content:"";pointer-events:none;z-index:1;background:repeating-linear-gradient(0deg,#0000 0 3px,#3ee6c906 3px 4px);position:fixed;inset:0}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--aqua);outline-offset:2px}ul{margin:0;padding:0;list-style:none}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}img{max-width:100%}.mono{font-family:var(--font-mono)}.wrap{max-width:var(--wrap);z-index:2;margin:0 auto;padding:0 clamp(28px,7vw,88px);position:relative}.grad-text{background:var(--grad);color:#0000;background-clip:text}.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:26px;position:relative}.panel:before,.panel:after{content:"";pointer-events:none;width:14px;height:14px;position:absolute}.panel:before{border-top:2px solid var(--aqua);border-left:2px solid var(--aqua);top:-1px;left:-1px}.panel:after{border-bottom:2px solid var(--pink);border-right:2px solid var(--pink);bottom:-1px;right:-1px}.panel-head{font-family:var(--font-mono);letter-spacing:.22em;color:var(--dim);justify-content:space-between;gap:12px;margin-bottom:18px;font-size:12px;display:flex}.panel-head b{color:var(--aqua);font-weight:400}.tag{font-family:var(--font-mono);letter-spacing:.25em;color:var(--aqua);border:1px solid var(--line);border-radius:3px;padding:5px 14px;font-size:12px;display:inline-block}.chip{font-size:11.5px;font-family:var(--font-mono);border:1px solid var(--line);color:var(--pink);border-radius:3px;padding:1px 8px;display:inline-block}a.chip:hover{border-color:var(--pink)}.art{border-bottom:1px dashed var(--line);padding:14px 0}.art:last-child{border-bottom:0}.art h3{font-size:16.5px;font-weight:600}.art h3 a:hover{color:var(--pink)}.art .meta{font-family:var(--font-mono);color:var(--dim);letter-spacing:.05em;margin-top:5px;font-size:11.5px}.btn{background:var(--grad);color:#08110f;font:inherit;cursor:pointer;border:0;border-radius:4px;padding:10px 20px;font-size:13.5px;font-weight:700}.btn:hover{filter:brightness(1.1)}input[type=email],input[type=text],textarea{background:var(--panel-deep);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:4px;padding:10px 14px;font-size:13.5px}input::placeholder,textarea::placeholder{color:var(--dim-deep)}.prose{max-width:42em}.prose p{margin:1.2em 0}.prose h2{color:var(--aqua);margin:2em 0 .8em;font-size:22px}.prose h3{margin:1.6em 0 .6em;font-size:18px}.prose a{color:var(--aqua);border-bottom:1px dashed var(--aqua)}.prose a:hover{color:var(--pink);border-color:var(--pink)}.prose blockquote{border-left:2px solid var(--pink);color:var(--dim);margin:1.5em 0;padding:4px 20px}.prose code{font-family:var(--font-mono);background:var(--panel-deep);border:1px solid var(--line);border-radius:3px;padding:1px 6px;font-size:.9em}.prose pre{background:var(--panel-deep);border:1px solid var(--line);border-radius:6px;padding:16px 20px;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0}.prose img{border:1px solid var(--line);border-radius:6px}.prose video{border:1px solid var(--line);border-radius:6px;max-width:100%}.prose .video-embed,.prose iframe{aspect-ratio:16/9;border:1px solid var(--line);border-radius:6px;width:100%;margin:1.5em 0;display:block}.prose hr{border:0;border-top:1px dashed var(--line);margin:2.5em 0}.page-hero{padding-block:64px 40px}.page-hero h1{font-family:var(--font-mono);letter-spacing:.01em;margin-top:18px;font-size:clamp(26px,4.2vw,42px);font-weight:800}.page-hero .sub{font-family:var(--font-body);color:var(--dim);letter-spacing:.3em;margin-top:10px;font-size:clamp(13px,1.6vw,15px);font-weight:400;display:block}.page-hero .lede{max-width:34em;color:var(--dim);margin-top:16px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}.site-header[data-astro-cid-hkbrpulz]{border-bottom:1px solid var(--line);z-index:10;backdrop-filter:blur(6px);background:#0a1214e6;position:sticky;top:0}.nav[data-astro-cid-hkbrpulz]{flex-wrap:wrap;align-items:center;gap:28px;padding-block:16px;display:flex}.logo[data-astro-cid-hkbrpulz]{letter-spacing:.12em;color:var(--aqua);font-size:15px}.logo[data-astro-cid-hkbrpulz] b[data-astro-cid-hkbrpulz]{color:var(--pink);font-weight:400}nav[data-astro-cid-hkbrpulz] ul[data-astro-cid-hkbrpulz]{color:var(--dim);flex-wrap:wrap;gap:24px;display:flex}nav[data-astro-cid-hkbrpulz] li[data-astro-cid-hkbrpulz]{position:relative}.navlink[data-astro-cid-hkbrpulz]{flex-direction:column;align-items:center;gap:1px;display:flex}.navlink[data-astro-cid-hkbrpulz] .en[data-astro-cid-hkbrpulz]{letter-spacing:.04em;font-size:12.5px}.navlink[data-astro-cid-hkbrpulz] .zh[data-astro-cid-hkbrpulz]{color:var(--dim-deep);letter-spacing:.12em;font-size:10.5px}.navlink[data-astro-cid-hkbrpulz]:hover .en[data-astro-cid-hkbrpulz],.navlink[data-astro-cid-hkbrpulz]:focus-visible .en[data-astro-cid-hkbrpulz]{color:var(--aqua)}.navlink[data-astro-cid-hkbrpulz]:hover .zh[data-astro-cid-hkbrpulz],.navlink[data-astro-cid-hkbrpulz]:focus-visible .zh[data-astro-cid-hkbrpulz]{color:var(--dim)}.navlink[data-astro-cid-hkbrpulz][aria-current=page] .en[data-astro-cid-hkbrpulz]{color:var(--pink)}.tip[data-astro-cid-hkbrpulz]{overflow-wrap:anywhere;pointer-events:none;letter-spacing:.03em;color:#00e5ff;opacity:0;text-shadow:0 0 6px #00e5ffcc,0 0 18px #00e5ff66;background:#08110ff2;border:1px solid #00e5ff59;border-radius:3px;width:max-content;max-width:min(420px,100vw - 32px);padding:5px 10px;font-size:11px;transition:opacity .15s,transform .15s;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(-4px);box-shadow:0 0 12px #00e5ff1f}.tip[data-astro-cid-hkbrpulz]:before{content:"> "}.navlink[data-astro-cid-hkbrpulz]:hover .tip[data-astro-cid-hkbrpulz],.navlink[data-astro-cid-hkbrpulz]:focus-visible .tip[data-astro-cid-hkbrpulz]{opacity:1;transform:translate(-50%)translateY(0)}nav[data-astro-cid-hkbrpulz] li[data-astro-cid-hkbrpulz]:first-child .tip[data-astro-cid-hkbrpulz]{left:0;right:auto;transform:translate(0)translateY(-4px)}nav[data-astro-cid-hkbrpulz] li[data-astro-cid-hkbrpulz]:first-child .navlink[data-astro-cid-hkbrpulz]:hover .tip[data-astro-cid-hkbrpulz],nav[data-astro-cid-hkbrpulz] li[data-astro-cid-hkbrpulz]:first-child .navlink[data-astro-cid-hkbrpulz]:focus-visible .tip[data-astro-cid-hkbrpulz]{transform:translate(0)translateY(0)}nav[data-astro-cid-hkbrpulz] li[data-astro-cid-hkbrpulz]:nth-last-child(-n+2) .tip[data-astro-cid-hkbrpulz]{left:auto;right:0;transform:translate(0)translateY(-4px)}nav[data-astro-cid-hkbrpulz] li[data-astro-cid-hkbrpulz]:nth-last-child(-n+2) .navlink[data-astro-cid-hkbrpulz]:hover .tip[data-astro-cid-hkbrpulz],nav[data-astro-cid-hkbrpulz] li[data-astro-cid-hkbrpulz]:nth-last-child(-n+2) .navlink[data-astro-cid-hkbrpulz]:focus-visible .tip[data-astro-cid-hkbrpulz]{transform:translate(0)translateY(0)}.site-footer[data-astro-cid-hkbrpulz]{border-top:1px solid var(--line);color:var(--dim);letter-spacing:.1em;margin-top:80px;padding-block:26px 40px;font-size:12px}.site-footer[data-astro-cid-hkbrpulz] .wrap[data-astro-cid-hkbrpulz]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.site-footer[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover{color:var(--aqua)}.links[data-astro-cid-hkbrpulz]{align-items:center;gap:18px;display:flex}.icon[data-astro-cid-hkbrpulz]{color:var(--dim);display:inline-flex}.icon[data-astro-cid-hkbrpulz] svg[data-astro-cid-hkbrpulz]{display:block}.icon[data-astro-cid-hkbrpulz]:hover{color:var(--pink);filter:drop-shadow(0 0 6px #ffa8c5b3)}
