@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-ext-wght-normal.okcGN4Nq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-cyrillic-wght-normal.BS41q_Tv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-ext-wght-normal.DQgQPNk4.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-greek-wght-normal.sS1B39LI.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-vietnamese-wght-normal.TKKdAiBA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-ext-wght-normal.B4u9PlvR.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-tight-latin-wght-normal.DX-nOvPD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2)format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff)format("woff")}:root{--bg:#fff;--surface:#f8f9fa;--surface-2:#f0f2f4;--ink:#0b1019;--ink-2:#2a313e;--muted:#5f6672;--line:#e4e7eb;--line-strong:#cdd2d9;--brand:#0b8f7b;--brand-ink:#076a5b;--brand-soft:#dcf1ea;--accent:#c98a06;--accent-soft:#f8ecd0;--night:#070b14;--night-2:#0d1422;--night-line:#ffffff14;--night-ink:#eef2f8;--night-muted:#8f9aae;--mint:#3fe0c5;--amber:#f6b93d;--radius:18px;--radius-sm:12px;--shadow:0 1px 0 #0b10190a, 0 18px 40px -24px #0b101947;--wrap:1240px;--gutter:clamp(16px, 4vw, 40px);--ease:cubic-bezier(.2, .7, .1, 1);--cjk:-apple-system, BlinkMacSystemFont, "PingFang TC", "Hiragino Sans CNS", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--display:"Inter Tight Variable", var(--cjk);--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;color-scheme:light}:root:lang(zh-Hans){--cjk:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif}:root:lang(en){--cjk:"Inter Tight Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#080c15;--surface:#0e1420;--surface-2:#151d2c;--ink:#e9edf4;--ink-2:#c2c9d5;--muted:#8b95a8;--line:#1c2535;--line-strong:#2a3548;--brand:#3fe0c5;--brand-ink:#6eebd6;--brand-soft:#0e2b28;--accent:#f6b93d;--accent-soft:#2a2213;--night:#04070d;--shadow:0 1px 0 #0000004d, 0 18px 40px -20px #0009;color-scheme:dark}}:root[data-theme=dark]{--bg:#080c15;--surface:#0e1420;--surface-2:#151d2c;--ink:#e9edf4;--ink-2:#c2c9d5;--muted:#8b95a8;--line:#1c2535;--line-strong:#2a3548;--brand:#3fe0c5;--brand-ink:#6eebd6;--brand-soft:#0e2b28;--accent:#f6b93d;--accent-soft:#2a2213;--night:#04070d;--shadow:0 1px 0 #0000004d, 0 18px 40px -20px #0009;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--bg);color:var(--ink);font:17px/1.8 var(--cjk);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:var(--display);color:var(--ink);letter-spacing:-.015em;text-wrap:balance;margin:0;line-height:1.22}:lang(zh) :is(h1,h2,h3){word-break:keep-all;overflow-wrap:anywhere}p{text-wrap:pretty}::selection{background:var(--mint);color:#04130f}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}.wrap{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.muted{color:var(--muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.label{font:500 .74rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.u{transition:background-size .35s var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:1px}.u:hover,a:hover .u{background-size:100% 1px}.js [data-reveal]{opacity:0;transition:opacity .8s var(--ease), transform .8s var(--ease);transition-delay:calc(var(--i,0) * 70ms);transform:translateY(18px)}.js [data-reveal].in{opacity:1;transform:none}.site-header{z-index:30;border-bottom:1px solid #0000;transition:background .3s,border-color .3s;position:sticky;top:0}.site-header.scrolled,.site-header:not(.on-night){background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(14px)}.site-header.scrolled{border-bottom-color:var(--line)}.site-header.on-night:not(.scrolled){color:var(--night-ink)}.site-header .wrap{align-items:center;gap:28px;height:68px;display:flex}.brand{font:650 1.15rem/1 var(--display);letter-spacing:-.02em;align-items:center;gap:10px;display:inline-flex}.brand-mark{flex:none;width:28px;height:28px}.mark{flex:none;overflow:visible}.mark-a{stroke:var(--brand)}.mark-b{stroke:var(--accent)}.on-night:not(.scrolled):not(.menu-open) .mark-a,.site-footer .mark-a,.cta-box .mark-a{stroke:var(--mint)}.on-night:not(.scrolled):not(.menu-open) .mark-b,.site-footer .mark-b,.cta-box .mark-b{stroke:var(--amber)}.brand-sub{font:400 .78rem/1 var(--cjk);letter-spacing:.02em;opacity:.6;border-left:1px solid;padding-left:12px}.nav{align-items:center;gap:2px;margin-left:auto;font-size:.93rem;display:flex}.nav>a{opacity:.78;border-radius:999px;padding:8px 12px;transition:opacity .2s,background .2s;position:relative}.nav>a:hover{opacity:1;background:color-mix(in srgb, currentColor 7%, transparent)}.nav>a[aria-current=page]{opacity:1}.nav>a[aria-current=page]:after{content:"";background:var(--brand);border-radius:50%;width:4px;height:4px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.on-night:not(.scrolled) .nav>a[aria-current=page]:after{background:var(--mint)}.nav-tools{align-items:center;gap:8px;margin-left:10px;display:flex}.lang-switch{border:1px solid color-mix(in srgb, currentColor 18%, transparent);font:500 .72rem/1 var(--mono);border-radius:999px;padding:3px;display:flex}.lang-switch a{opacity:.6;border-radius:999px;padding:5px 8px;transition:opacity .2s,background .2s}.lang-switch a:hover{opacity:1}.lang-switch a[aria-current=true]{opacity:1;background:currentColor}.lang-switch a[aria-current=true] span{color:var(--bg)}.on-night:not(.scrolled) .lang-switch a[aria-current=true] span{color:var(--night)}.icon-btn{border:1px solid color-mix(in srgb, currentColor 18%, transparent);width:34px;height:34px;color:inherit;cursor:pointer;transition:transform .3s var(--ease), border-color .2s;background:0 0;border-radius:999px;place-items:center;padding:0;display:grid}.icon-btn:hover{border-color:color-mix(in srgb, currentColor 45%, transparent)}.icon-btn svg{width:16px;height:16px}.theme-btn .sun{display:none}:root[data-theme=dark] .theme-btn .sun{display:block}:root[data-theme=dark] .theme-btn .moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-btn .sun{display:block}:root:not([data-theme=light]) .theme-btn .moon{display:none}}.theme-btn:active{transform:rotate(-30deg)scale(.92)}.menu-btn,.menu-btn .x{display:none}.menu-btn[aria-expanded=true] .x{display:block}.menu-btn[aria-expanded=true] .bars{display:none}@media (width<=900px){.brand-sub{display:none}.menu-btn{margin-left:auto;display:grid}.nav{padding:8px var(--gutter) 24px;background:var(--bg);color:var(--ink);border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transition:opacity .25s, transform .3s var(--ease), visibility .3s;flex-direction:column;align-items:stretch;gap:0;font-size:1.1rem;position:fixed;inset:68px 0 auto;transform:translateY(-8px)}.nav.open{opacity:1;visibility:visible;transform:none}.nav>a{border-bottom:1px solid var(--line);opacity:1;border-radius:0;padding:14px 4px}.nav>a:hover{background:0 0}.nav>a[aria-current=page]:after{inset:50% 6px auto auto;transform:translateY(-50%)}.nav-tools{margin:18px 0 0}.on-night:not(.scrolled) .nav .lang-switch a[aria-current=true] span{color:var(--bg)}}.site-header.menu-open,.site-header.on-night.menu-open{background:var(--bg);color:var(--ink);border-bottom-color:var(--line)}.site-header.on-night.menu-open .nav>a[aria-current=page]:after{background:var(--brand)}.progress{z-index:40;background:var(--brand);transform-origin:0;height:2px;transform:scaleX(var(--p,0));position:fixed;top:0;left:0;right:0}.btn{height:48px;font:600 .96rem/1 var(--cjk);border:1px solid var(--line-strong);color:var(--ink);cursor:pointer;transition:transform .25s var(--ease), background .25s, border-color .25s, color .25s;white-space:nowrap;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 22px;display:inline-flex}.btn:hover{border-color:var(--ink)}.btn:active{transform:scale(.97)}.btn .arr{transition:transform .35s var(--ease);display:inline-block}.btn:hover .arr{transform:translate(4px)}.btn:hover .arr.ne{transform:translate(3px,-3px)}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--brand-ink);border-color:var(--brand-ink);color:#fff}.btn-mint{background:var(--mint);border-color:var(--mint);color:#04130f}.btn-mint:hover{color:#04130f;background:#fff;border-color:#fff}.btn-ghost-night{color:var(--night-ink);border-color:#ffffff38}.btn-ghost-night:hover{color:#fff;border-color:#fff}.btn-sm{height:40px;padding:0 16px;font-size:.9rem}.hero{background:var(--night);color:var(--night-ink);isolation:isolate;margin-top:-69px;padding-top:69px;position:relative;overflow:hidden}.hero:before{content:"";z-index:-1;background-image:linear-gradient(var(--night-line) 1px, transparent 1px), linear-gradient(90deg, var(--night-line) 1px, transparent 1px);background-size:56px 56px;position:absolute;inset:0;mask-image:radial-gradient(70% 80% at 70% 30%,#000 20%,#0000 75%)}.hero .glow{z-index:-1;width:760px;height:760px;transform:translate(calc(var(--mx,900px) - 380px), calc(var(--my,200px) - 380px));transition:transform .9s var(--ease);pointer-events:none;background:radial-gradient(circle,#3fe0c526,#0000 62%);border-radius:50%;position:absolute;top:0;left:0}.hero-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,.85fr);align-items:end;gap:clamp(32px,6vw,96px);padding-top:clamp(56px,10vh,120px);padding-bottom:clamp(48px,8vh,96px);display:grid}.hero .eyebrow{color:var(--mint);letter-spacing:.04em;align-items:center;gap:10px;margin-bottom:28px;font-size:.9rem;font-weight:500;display:inline-flex}.hero .eyebrow i{background:var(--mint);border-radius:50%;width:8px;height:8px;animation:2.4s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #3fe0c58c}70%{box-shadow:0 0 0 10px #3fe0c500}to{box-shadow:0 0 #3fe0c500}}.hero-copy{container-type:inline-size}.hero h1{color:#fff;letter-spacing:-.03em;font-size:clamp(1.6rem,7.7cqi,3.7rem);font-weight:700;line-height:1.14}.hero h1 .line{display:block}.hero h1 em{white-space:nowrap;color:var(--mint);font-style:normal;position:relative}.hero .sub{max-width:34em;color:var(--night-muted);margin:28px 0 36px;font-size:1.08rem}.hero .actions{flex-wrap:wrap;gap:12px;display:flex}.js .hero h1 .line{opacity:0;animation:rise .9s var(--ease) forwards;transform:translateY(.4em)}.js .hero h1 .line:nth-child(2){animation-delay:.12s}.js .hero .sub,.js .hero .actions,.js .hero .eyebrow{opacity:0;animation:rise .9s .3s var(--ease) forwards}.js .hero .eyebrow{animation-delay:0s}.js .hero .actions{animation-delay:.42s}@keyframes rise{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:none}}.route{gap:6px;display:grid;position:relative}.route:before{content:"";background:linear-gradient(var(--mint), #f6b93db3);transform-origin:0 0;width:1px;animation:drawY 1.4s .5s var(--ease) forwards;position:absolute;top:34px;bottom:34px;left:27px;transform:scaleY(0)}@keyframes drawY{to{transform:scaleY(1)}}.route-label{color:var(--night-muted);letter-spacing:.04em;margin:0 0 14px 56px;font-size:.82rem;display:block}.route a{border:1px solid #0000;border-radius:14px;grid-template-columns:56px 1fr auto;align-items:center;gap:10px;padding:16px 18px 16px 0;transition:background .3s,border-color .3s;display:grid;position:relative}.route a:hover{border-color:var(--night-line);background:#ffffff0a}.route .n{background:var(--night);border:1px solid var(--mint);width:24px;height:24px;color:var(--mint);font:500 .66rem/1 var(--mono);z-index:1;border-radius:50%;justify-self:center;place-items:center;transition:background .3s,color .3s;display:grid}.route a:hover .n{background:var(--mint);color:var(--night)}.route .t{color:#fff;font-size:1.04rem;font-weight:650;line-height:1.5;display:block}.route .d{color:var(--night-muted);margin-top:2px;font-size:.88rem;line-height:1.55;display:block}.route .go{color:var(--night-muted);transition:transform .35s var(--ease), color .2s}.route a:hover .go{color:var(--mint);transform:translate(4px)}.js .route a{opacity:0;animation:rise .8s var(--ease) forwards;animation-delay:calc(.5s + var(--i) * .12s)}.ticker{border-top:1px solid var(--night-line);overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.ticker-track{width:max-content;animation:70s linear infinite ticker;display:flex}.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}.ticker a{color:var(--night-muted);white-space:nowrap;align-items:center;gap:12px;padding:20px 28px;font-size:.95rem;transition:color .2s;display:inline-flex}.ticker a:before{content:"";background:var(--amber);opacity:.8;border-radius:50%;width:5px;height:5px}.ticker a:hover{color:#fff}@keyframes ticker{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.ticker-track{flex-wrap:wrap;width:auto;animation:none}}@media (width<=960px){.hero-grid{grid-template-columns:1fr;align-items:start}}.section{padding-top:clamp(80px,10vw,140px)}.sec-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;margin-bottom:clamp(32px,4vw,56px);display:grid}.sec-head .label{align-items:center;gap:12px;margin-bottom:20px;display:flex}.sec-head .label:after{content:"";background:var(--line-strong);width:40px;height:1px}.sec-head h2{letter-spacing:-.025em;max-width:20em;font-size:clamp(1.7rem,1.6vw + 1.1rem,2.7rem);font-weight:700}.sec-head p{color:var(--muted);max-width:40em;margin:16px 0 0}.more{color:var(--ink);white-space:nowrap;align-items:center;gap:8px;font-size:.95rem;font-weight:600;display:inline-flex}.more .arr{transition:transform .35s var(--ease)}.more:hover .arr{transform:translate(4px)}@media (width<=700px){.sec-head{grid-template-columns:1fr}}.ex-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=820px){.ex-grid{grid-template-columns:1fr}}.ex-card{--x:50%;--y:0%;isolation:isolate;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);transition:border-color .3s, transform .5s var(--ease), box-shadow .5s var(--ease);flex-direction:column;gap:22px;padding:clamp(24px,3vw,36px);display:flex;position:relative;overflow:hidden}.ex-card:before{content:"";z-index:-1;background:radial-gradient(440px circle at var(--x) var(--y), color-mix(in srgb, var(--brand) 13%, transparent), transparent 60%);opacity:0;transition:opacity .4s;position:absolute;inset:0}.ex-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-4px)}.ex-card:hover:before{opacity:1}.ex-top{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.ex-top .code-chip{margin-left:auto}@media (width<=560px){.ex-top .code-chip{margin-left:0}.ex-actions .btn,.hero .actions .btn{flex:auto}}.ex-top h3{font-size:1.5rem;font-weight:700}.ex-top .label{margin-top:6px;display:block}.ex-logo{width:52px;height:52px;font:750 1.05rem/1 var(--display);letter-spacing:-.03em;border-radius:15px;flex:none;place-items:center;display:grid}.ex-logo.binance,.ex-logo.okx{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.cta-box .ex-logo.binance,.cta-box .ex-logo.okx{color:#fff;box-shadow:inset 0 0 0 1px var(--night-line);background:#ffffff14}.ex-card p{color:var(--ink-2);margin:0}.ex-fit{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ex-fit li{background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:5px 12px;font-size:.82rem}.ex-actions{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:22px;display:flex}.code-chip{border:1px solid var(--line);background:var(--bg);height:40px;color:var(--muted);border-radius:999px;align-items:center;gap:10px;padding:0 5px 0 14px;font-size:.84rem;display:inline-flex}.code-chip b{font:500 .92rem/1 var(--mono);color:var(--ink);letter-spacing:.06em}.code-chip button{background:var(--ink);height:30px;color:var(--bg);font:600 .78rem/1 var(--cjk);cursor:pointer;transition:background .2s, transform .2s var(--ease);border:0;border-radius:999px;min-width:58px;padding:0 12px}.code-chip button:active{transform:scale(.94)}.code-chip button.done{background:var(--brand);color:#fff}.fine{color:var(--muted);margin:0;font-size:.82rem;line-height:1.7}.ex-note{margin-top:18px}.issues{border-top:1px solid var(--line)}.issues a{border-bottom:1px solid var(--line);transition:padding .45s var(--ease), background .3s;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:16px;padding:26px 4px;display:grid}.issues a:hover{background:var(--surface);padding-left:18px;padding-right:18px}.issues .q{font:500 .78rem/1 var(--mono);color:var(--brand)}.issues h3{font-size:clamp(1.05rem,.5vw + .95rem,1.3rem);font-weight:600;line-height:1.45}.issues p{color:var(--muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:6px 0 0;font-size:.9rem;line-height:1.6;display:-webkit-box;overflow:hidden}.issues .arr{border:1px solid var(--line);width:42px;height:42px;transition:background .3s, color .3s, transform .45s var(--ease), border-color .3s;border-radius:50%;place-items:center;display:grid}.issues a:hover .arr{background:var(--ink);color:var(--bg);border-color:var(--ink);transform:rotate(-45deg)}@media (width<=620px){.issues a{grid-template-columns:1fr auto;gap:10px 16px}.issues .q{grid-column:1/-1}}.cat-tiles{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}@media (width<=960px){.cat-tiles{grid-template-columns:1fr 1fr}}@media (width<=520px){.cat-tiles{grid-template-columns:1fr}}.cat-tiles a{background:var(--surface);flex-direction:column;gap:10px;min-height:240px;padding:28px;transition:background .3s;display:flex;position:relative}.cat-tiles a:hover{background:var(--bg)}.cat-tiles .count{font:600 3rem/1 var(--display);letter-spacing:-.05em;color:var(--ink)}.cat-tiles .count small{font:400 .74rem/1 var(--cjk);color:var(--muted);letter-spacing:.02em;margin-left:8px}.cat-tiles h3{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;font-size:1.15rem;display:flex}.cat-tiles h3 .arr{transition:transform .35s var(--ease);color:var(--muted)}.cat-tiles a:hover h3 .arr{color:var(--ink);transform:translate(4px)}.cat-tiles p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;min-height:4.95em;margin:0;font-size:.86rem;line-height:1.65;display:-webkit-box;overflow:hidden}.principles{grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,40px);display:grid}@media (width<=960px){.principles{grid-template-columns:1fr 1fr}}@media (width<=520px){.principles{grid-template-columns:1fr}}.principles div{border-top:2px solid var(--ink);padding-top:22px}.principles .label{color:var(--brand);margin-bottom:18px;display:block}.principles b{font:650 1.08rem/1.45 var(--display);margin-bottom:8px;display:block}.principles p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.75}.card-grid{grid-template-columns:repeat(3,1fr);gap:clamp(28px,3vw,40px) clamp(20px,2.4vw,32px);display:grid}.card-grid.feature{grid-template-columns:1.5fr 1fr}.card-grid.feature>:first-child{grid-row:span 3}.card-grid.feature>:first-child h3{font-size:clamp(1.3rem,1vw + 1rem,1.75rem)}.card-grid.feature>:not(:first-child){grid-template-columns:160px minmax(0,1fr);align-items:start;gap:18px;display:grid}.card-grid.feature>:not(:first-child) p{display:none}@media (width<=1000px){.card-grid{grid-template-columns:1fr 1fr}.card-grid.feature{grid-template-columns:1fr}.card-grid.feature>:first-child{grid-row:auto}}@media (width<=620px){.card-grid{grid-template-columns:1fr}.card-grid.feature>:not(:first-child){grid-template-columns:112px minmax(0,1fr)}}.card{color:var(--ink);flex-direction:column;gap:16px;display:flex}.card .media{border-radius:var(--radius-sm);background:var(--surface-2);aspect-ratio:1200/630;overflow:hidden}.card img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease)}.card:hover img{transform:scale(1.045)}.card .body{flex-direction:column;gap:10px;display:flex}.card .meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.card h3{font-size:1.12rem;font-weight:650;line-height:1.45}.card p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.92rem;line-height:1.7;display:-webkit-box;overflow:hidden}.tag{color:var(--brand-ink);align-items:center;gap:7px;font-size:.8rem;font-weight:600;display:inline-flex}.tag:before{content:"";background:currentColor;border-radius:2px;width:6px;height:6px}.date{font:400 .76rem/1 var(--mono);color:var(--muted);letter-spacing:.02em}.post-list{border-top:1px solid var(--line)}.post-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 232px;align-items:center;gap:clamp(20px,4vw,56px);padding:30px 0;display:grid}.post-item .meta{align-items:center;gap:12px;margin-bottom:12px;display:flex}.post-item h3{font-size:clamp(1.1rem,.6vw + .95rem,1.35rem);font-weight:650;line-height:1.45}.post-item h3 a:hover{color:var(--brand-ink)}.post-item p{color:var(--muted);margin:10px 0 0;font-size:.94rem;line-height:1.75}.post-item .media{aspect-ratio:1200/630;background:var(--surface-2);border-radius:10px;overflow:hidden}.post-item img{object-fit:cover;width:100%;height:100%;transition:transform .9s var(--ease)}.post-item:hover img{transform:scale(1.05)}@media (width<=680px){.post-item{grid-template-columns:1fr}.post-item .media{display:none}}.page-head{padding:clamp(48px,7vw,96px) 0 clamp(32px,4vw,48px)}.page-head h1{letter-spacing:-.03em;max-width:16em;margin:20px 0 22px;font-size:clamp(2rem,2.2vw + 1.3rem,3.4rem);font-weight:700}.page-head p{color:var(--ink-2);max-width:44em;margin:0 0 12px;font-size:1.04rem;line-height:1.85}.breadcrumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;display:flex}.breadcrumb a:hover{color:var(--ink)}.breadcrumb .sep{opacity:.45}.cat-nav{scrollbar-width:none;gap:8px;padding:4px 0 28px;display:flex;overflow-x:auto}.cat-nav::-webkit-scrollbar{display:none}.cat-nav a{border:1px solid var(--line);height:40px;color:var(--ink-2);border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 16px;font-size:.9rem;transition:border-color .2s,background .2s;display:inline-flex}.cat-nav a:hover{border-color:var(--line-strong)}.cat-nav a small{font:400 .72rem/1 var(--mono);color:var(--muted)}.cat-nav a[aria-current=page]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.cat-nav a[aria-current=page] small{color:inherit;opacity:.7}.page-body{padding-top:clamp(8px,2vw,24px)}.article-head{padding-block:clamp(40px,6vw,80px) clamp(28px,3vw,44px)}.article-head .inner{max-width:1000px}.article-head h1{letter-spacing:-.03em;margin:22px 0;font-size:clamp(1.8rem,1.8vw + 1.25rem,2.9rem);font-weight:700;line-height:1.2}.article-head .lead{color:var(--ink-2);max-width:40em;margin:0;font-size:clamp(1.05rem,.4vw + 1rem,1.2rem);line-height:1.85}.byline{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:30px;padding-top:20px;font-size:.86rem;display:flex}.byline .who{color:var(--ink);align-items:center;gap:10px;font-weight:600;display:inline-flex}.byline .who img{width:26px;height:26px}.article-cover{border-radius:var(--radius);aspect-ratio:1200/630;background:var(--surface-2);overflow:hidden}.article-cover img{object-fit:cover;width:100%;height:100%}.article-layout{grid-template-columns:minmax(0,1fr) 240px;gap:clamp(40px,6vw,96px);padding-block:clamp(40px,5vw,72px) 0;display:grid}@media (width<=1040px){.article-layout{grid-template-columns:minmax(0,1fr)}.toc-rail{display:none}}.prose{counter-reset:h2;overflow-wrap:anywhere;max-width:720px;font-size:1.06rem;line-height:1.95}.prose>*{margin:0}.prose>*+*{margin-top:1.15em}.prose h2{counter-increment:h2;border-top:1px solid var(--line);letter-spacing:-.02em;margin-top:2.6em;padding-top:1.1em;font-size:clamp(1.4rem,.8vw + 1.15rem,1.8rem);font-weight:700}.prose h2:before{content:counter(h2, decimal-leading-zero);font:500 .74rem/1 var(--mono);color:var(--brand);letter-spacing:.08em;margin-bottom:12px;display:block}.prose h3{margin-top:2em;font-size:1.2rem;font-weight:650}.prose h2+*,.prose h3+*{margin-top:.8em}.prose p:has(>strong:only-child){margin-top:1.6em}.prose p:has(>strong:only-child)+p{margin-top:.35em}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.45em}.prose li::marker{color:var(--brand);font-family:var(--mono);font-size:.9em}.prose strong{color:var(--ink);font-weight:650}.prose a:not(.btn){color:var(--brand-ink);transition:background-size .3s var(--ease), color .2s;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat}.prose a:not(.btn):hover{color:var(--ink);background-size:100% 2px}.prose a[data-go]{font-weight:650}.prose blockquote{border-radius:var(--radius-sm);background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);color:var(--ink-2);margin-left:0;margin-right:0;padding:20px 24px;font-size:.98rem;line-height:1.85}.prose blockquote>*{margin:0}.prose blockquote>*+*{margin-top:.7em}.prose hr{background:var(--line);border:0;height:1px;margin:3em 0}.prose img{border-radius:var(--radius-sm);border:1px solid var(--line)}.prose code{font-family:var(--mono);background:var(--surface-2);border-radius:6px;padding:2px 7px;font-size:.86em}.prose pre{background:var(--night);color:var(--night-ink);border-radius:var(--radius-sm);padding:18px 20px;font-size:.88rem;overflow-x:auto}.prose pre code{background:0 0;padding:0}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:.93rem;line-height:1.65}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:13px 16px}.prose th{color:var(--muted);background:var(--bg);white-space:nowrap;font-size:.8rem;font-weight:600}.prose tbody tr{transition:background .2s}.prose tbody tr:hover{background:var(--bg)}.prose tr:last-child td{border-bottom:0}.prose .inline-cta{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:18px 20px;font-size:.95rem;line-height:1.6;display:flex}.prose .inline-cta span{flex:260px}.prose .inline-cta a{border:1px solid var(--line-strong);height:38px;color:var(--ink);background:0 0;border-radius:999px;align-items:center;padding:0 16px;font-size:.88rem;font-weight:600;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.prose .inline-cta a:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.toc-rail{scrollbar-width:thin;align-self:start;max-height:calc(100vh - 130px);position:sticky;top:100px;overflow:auto}.toc .label{margin-bottom:16px;display:block}.toc a{color:var(--muted);border-left:1px solid var(--line);padding:7px 0 7px 16px;font-size:.86rem;line-height:1.5;transition:color .2s,border-color .2s;display:block;position:relative}.toc a:hover{color:var(--ink)}.toc a.active{color:var(--ink);border-left-color:var(--brand)}.toc a.d3{padding-left:28px;font-size:.82rem}.tag-row{flex-wrap:wrap;gap:8px;max-width:720px;margin:44px 0 0;display:flex}.tag-row span{background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:6px 12px;font-size:.82rem}.cta-box{border-radius:var(--radius);background:var(--night);max-width:720px;color:var(--night-ink);isolation:isolate;border:1px solid var(--night-line);margin:48px 0 0;padding:clamp(24px,3vw,34px);position:relative;overflow:hidden}.cta-box:before{content:"";z-index:-1;background:radial-gradient(circle,#3fe0c538,#0000 65%);border-radius:50%;width:380px;height:380px;position:absolute;top:-160px;right:-120px}.cta-box h3{color:#fff;margin-bottom:20px;font-size:1.3rem}.cta-box .ex-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=620px){.cta-box .ex-row{grid-template-columns:1fr}}.cta-box .ex-row>div{border:1px solid var(--night-line);background:#ffffff0a;border-radius:14px;flex-direction:column;gap:14px;padding:18px;display:flex}.cta-box .ex-row strong{color:#fff;align-items:center;gap:10px;display:flex}.cta-box .ex-logo{border-radius:9px;width:32px;height:32px;font-size:.7rem}.cta-box .code-chip{border-color:var(--night-line);color:var(--night-muted);background:0 0;align-self:flex-start}.cta-box .code-chip b{color:#fff}.cta-box .code-chip button{color:var(--night);background:#fff}.cta-box .code-chip button.done{background:var(--mint)}.cta-box .fine{color:var(--night-muted);margin-top:18px}.pager{grid-template-columns:1fr 1fr;gap:16px;max-width:720px;margin:56px 0 0;display:grid}.pager a{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:20px;font-weight:600;line-height:1.5;transition:border-color .2s,background .2s;display:flex}.pager a small{color:var(--muted);font-size:.8rem;font-weight:400}.pager a:hover{border-color:var(--ink);background:var(--surface)}.pager .next{text-align:right;grid-column:2}@media (width<=620px){.pager{grid-template-columns:1fr}.pager .next{grid-column:auto}}.related{border-top:1px solid var(--line);padding:clamp(56px,7vw,96px) 0}.search-box{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:64px;color:var(--ink);font:400 1.08rem/1 var(--cjk);border-radius:999px;padding:0 24px;transition:border-color .2s,box-shadow .2s}.search-box:focus{border-color:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 18%, transparent);outline:none}.nf{text-align:center;place-items:center;min-height:66vh;padding-block:64px;display:grid}.nf .big{font:700 clamp(6rem, 18vw, 14rem)/.9 var(--display);letter-spacing:-.06em;color:#0000;-webkit-text-stroke:1.5px var(--line-strong)}.nf h1{margin:24px 0 12px;font-size:clamp(1.5rem,2vw + 1rem,2.2rem)}.nf p{max-width:30em;color:var(--muted);margin:0 auto 32px}.nf .row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.site-footer{background:var(--night);color:var(--night-muted);margin-top:clamp(64px,8vw,112px);padding:clamp(64px,8vw,104px) 0 32px;font-size:.9rem;overflow:hidden}.foot-grid{grid-template-columns:1.6fr repeat(3,1fr);gap:40px;display:grid}@media (width<=860px){.foot-grid{grid-template-columns:1fr 1fr}.foot-about{grid-column:1/-1}}.site-footer .brand{color:#fff;padding:0;display:inline-flex}.site-footer .foot-h{color:var(--night-ink);margin-bottom:16px;font-size:.82rem;font-weight:600}.site-footer a{color:var(--night-muted);padding:5px 0;transition:color .2s;display:block}.site-footer a:hover{color:#fff}.site-footer .fine{color:var(--night-muted);max-width:34em;margin-top:20px}.wordmark{font:800 clamp(5rem, 27.5vw, 27rem)/.76 var(--display);letter-spacing:-.07em;color:#0000;-webkit-text-stroke:1px #ffffff21;user-select:none;white-space:nowrap;margin:clamp(48px,7vw,96px) 0 0;transform:translate(-.04em)}.foot-bottom{border-top:1px solid var(--night-line);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:28px;padding-top:22px;font-size:.8rem;display:flex}.prose figure{margin-left:0;margin-right:0}.prose figure img{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);width:100%;height:auto}.prose figcaption{color:var(--muted);margin-top:10px;font-size:.84rem;line-height:1.6}
