:root{--blue:#2878f0;--ink:#172438;--muted:#718096;--line:#e5ebf3;--bg:#f6f8fc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,segoe ui,pingfang sc,microsoft yahei,sans-serif;line-height:1.65}a{text-decoration:none;color:inherit}.wrap{width:min(1120px,calc(100% - 36px));margin:auto}header{position:sticky;top:0;background:#ffffffdf;backdrop-filter:blur(14px);border-bottom:1px solid var(--line);z-index:5}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;gap:10px;align-items:center;font-size:20px;font-weight:850}.mark{background:linear-gradient(140deg,#3992ff,#195acb);color:#fff;border-radius:12px;padding:8px 10px;font:800 15px monospace;box-shadow:0 8px 18px #2878f033}.brand small{display:block;font-size:10px;color:#8794a6;letter-spacing:2px}.links{display:flex;gap:28px;color:#68768a;font-size:14px}.links a:hover{color:var(--blue)}.btn{display:inline-block;background:var(--blue);color:#fff;padding:11px 17px;border:0;border-radius:12px;font-size:13px;font-weight:750;cursor:pointer}.btn.alt{background:#fff;color:var(--ink);border:1px solid var(--line)}.hero{padding:70px 0 38px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}.eyebrow{display:inline-flex;gap:8px;align-items:center;background:#e7f2ff;color:#2368cb;border-radius:99px;padding:7px 12px;font-size:12px;font-weight:750}.dot{width:7px;height:7px;border-radius:50%;background:#29b77c}h1{font-size:clamp(42px,5.4vw,64px);line-height:1.15;letter-spacing:-2.5px;margin:22px 0 18px}h1 em{color:var(--blue);font-style:normal}.lead{font-size:16px;color:var(--muted);max-width:500px;margin-bottom:27px}.actions{display:flex;gap:12px;flex-wrap:wrap}.meta{margin-top:28px;color:#8793a4;font-size:12px}.art{position:relative;min-height:370px;display:grid;place-items:center}.orb{position:absolute;width:320px;height:320px;border-radius:50%;background:linear-gradient(140deg,#d9eaff,#edf3ff);right:7%;top:20px}.editor{position:relative;background:#14243a;color:#dbe8f7;width:min(430px,100%);border-radius:19px;overflow:hidden;box-shadow:0 30px 60px #172c4a30;transform:rotate(2deg)}.bar{background:#1d3049;padding:13px 16px;color:#91a5c0;font:11px monospace}.lights{color:#ff8c7e;letter-spacing:5px}.code{padding:23px;font:13px/2 ui-monospace,monospace}.comment{color:#7890ad}.pink{color:#f2a7d2}.blue{color:#8fc5ff}.green{color:#8fe0b8}.yellow{color:#f6d789}.float{position:absolute;right:0;top:32px;background:#fff;border:1px solid var(--line);padding:13px 16px;border-radius:15px;box-shadow:0 12px 30px #1b345018;font-size:12px;color:#748196}.float b{display:block;color:var(--blue);font-size:17px}.note{position:absolute;bottom:8px;left:0;background:#fff;border:1px solid var(--line);padding:13px 17px;border-radius:15px;box-shadow:0 12px 30px #1b345018;font-size:13px}.note small{display:block;color:#8a96a7}.stats{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 0;margin:5px auto 58px}.stat{text-align:center;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat b{display:block;font-size:23px}.stat span{font-size:12px;color:#8995a5}.section{padding:18px 0 65px}.head{display:flex;justify-content:space-between;align-items:end;margin-bottom:23px;gap:20px}.kicker{font-size:11px;letter-spacing:1.7px;color:var(--blue);font-weight:850}.head h2,.about h2,.subscribe h2{font-size:29px;letter-spacing:-.8px;margin:5px 0}.desc{font-size:13px;color:var(--muted);margin:0}.textlink{color:var(--blue);font-size:13px;font-weight:750}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.filter{background:#fff;border:1px solid var(--line);border-radius:99px;padding:8px 14px;font-size:12px;color:#748196;cursor:pointer}.filter.active{background:#14243a;color:#fff;border-color:#14243a}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.2s}.card:hover{transform:translateY(-4px);box-shadow:0 15px 35px #1b345014}.cover{height:145px;padding:18px;display:flex;align-items:end;justify-content:space-between;font-size:11px;font-weight:850;letter-spacing:1px;color:#3b6492}.cover strong{font-size:52px;line-height:1;opacity:.65}.c1{background:linear-gradient(135deg,#dcecff,#b9d6ff)}.c2{background:linear-gradient(135deg,#d9f6e8,#b7e8d2);color:#31795b}.c3{background:linear-gradient(135deg,#ffecd9,#f6d1bb);color:#9d6848}.c4{background:linear-gradient(135deg,#243a57,#111e31);color:#b8d5ff}.c5{background:linear-gradient(135deg,#e9e3ff,#d0c5ff);color:#6954a6}.c6{background:linear-gradient(135deg,#fff1c8,#f6d98c);color:#94712e}.body{padding:17px 18px}.tag{display:inline-block;background:#edf5ff;color:#2873d8;padding:4px 7px;border-radius:6px;font-size:10px;font-weight:800}.tag.life{background:#e6f8ef;color:#26845d}.tag.think{background:#f0ecff;color:#7959bd}.body h3{font-size:16px;line-height:1.5;margin:11px 0 7px}.body p{font-size:12px;color:#7d899a;min-height:43px;margin:0 0 17px}.foot{border-top:1px solid #f0f2f6;padding-top:12px;display:flex;justify-content:space-between;font-size:11px;color:#98a3b1}.card[hidden]{display:none}.about{background:#14263e;color:#fff;border-radius:25px;padding:36px;display:flex;justify-content:space-between;align-items:center;gap:30px}.about h2{line-height:1.4}.about p{color:#b9c7d8;font-size:13px;max-width:680px}.about .btn{background:#fff;color:#173453;white-space:nowrap}.subscribe{text-align:center;padding:62px 0}.subscribe p{font-size:13px;color:var(--muted)}form{display:flex;gap:7px;max-width:430px;margin:22px auto 0;padding:5px;border:1px solid var(--line);background:#fff;border-radius:13px}input{flex:1;min-width:0;border:0;outline:0;padding:8px 10px;background:0 0}footer{border-top:1px solid var(--line);padding:23px 0;color:#8b96a5;font-size:11px}.footrow{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,15px);background:#14263e;color:#fff;padding:12px 18px;border-radius:12px;opacity:0;transition:.2s;pointer-events:none;font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:800px){.links{display:none}.hero-grid{grid-template-columns:1fr;gap:15px}.art{min-height:330px}.grid{grid-template-columns:repeat(2,1fr)}.about{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.hero{padding:42px 0 25px}h1{font-size:43px;letter-spacing:-1.7px}.lead{font-size:14px}.art{min-height:290px}.orb{width:250px;height:250px}.code{font-size:11px;padding:16px}.float{right:0;top:0}.note{left:0;bottom:0}.stats{margin-bottom:42px}.stat b{font-size:19px}.stat span{font-size:10px}.head{align-items:flex-start;flex-direction:column}.grid{grid-template-columns:1fr}.cover{height:135px}.about{padding:25px}.subscribe{padding:48px 0}}.icp-record{white-space:nowrap}[hidden]{display:none!important}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #2878f0;outline-offset:5px}::selection{background:#cee3ff;color:#14243a}.skip-link{position:fixed;left:16px;top:-80px;background:#14243a;color:#fff;padding:12px;z-index:20}.skip-link:focus{top:12px}.btn{transition:background .2s,transform .2s}.btn:hover{background:#1d65cf;transform:translateY(-2px)}.btn.alt:hover{background:#edf5ff}.links a[aria-current]{color:var(--blue);font-weight:750}.menu-toggle{display:none}.nav{position:relative}.hero{background:radial-gradient(ellipse at 76% 34%,#eaf2ff88,transparent 55%)}.eyebrow{letter-spacing:.3px}.code{white-space:nowrap}.art .float{z-index:2}.art .note{z-index:2}.card{display:flex;flex-direction:column;min-width:0}.card .cover{flex:none}.card .body{flex:1;display:flex;flex-direction:column}.card h3 a:hover{color:var(--blue)}.card .body p{flex:1}.card-tags{display:flex;flex-wrap:wrap;gap:6px}.foot{gap:8px}.about .kicker{color:#91c4ff}.notebook-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:28px;color:#718096;font-size:12px;padding:18px 0;border-top:1px solid var(--line)}.subscribe .btn{margin-top:14px}.subscribe-contact{display:block;margin-top:17px}.footer-brand{color:#34445a;font-weight:750}.footer-brand span{font-weight:400;color:#7d899a}footer a:hover{color:var(--blue)}footer{margin-top:auto}.page-section{padding-top:54px;padding-bottom:85px;min-height:65vh}.page-title{font-size:38px;letter-spacing:-1.2px;margin:10px 0 12px;line-height:1.35}.search-row{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:27px 0 20px}.search-box{width:min(520px,100%);display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);padding:8px 15px;border-radius:12px}.search-box>span{font-size:25px;color:#718096}.search-box input{width:100%;padding:4px;border:0;outline:0;font-size:14px;color:var(--ink)}.search-box:focus-within{border-color:#2878f0;box-shadow:0 0 0 3px #2878f018}.search-box kbd{font:12px monospace;color:#8b96a5;border:1px solid var(--line);border-radius:4px;padding:1px 6px}.empty-state{text-align:center;padding:55px 20px;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:18px}.empty-state a{color:var(--blue)}.reading-wrap{max-width:940px;padding-bottom:60px}.breadcrumb{display:flex;gap:12px;font-size:12px;color:#7d899a;padding:28px 0;align-items:center}.breadcrumb>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb a{flex-shrink:0}.breadcrumb a:hover{color:var(--blue)}.reading-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:45px 54px}.article-heading{border-bottom:1px solid var(--line);padding-bottom:28px;margin-bottom:30px}.article-heading h1{font-size:clamp(27px,3.5vw,38px);line-height:1.5;letter-spacing:-.8px;margin:12px 0 18px;overflow-wrap:anywhere}.article-heading .lead{max-width:none;font-size:15px;margin:0 0 18px}.article-meta{display:flex;flex-wrap:wrap;gap:15px;align-items:center;color:#8995a5;font-size:12px}.toc{padding:15px 20px;border:1px solid #dfeaf8;background:#f6f9ff;border-radius:12px;margin:0 0 30px;font-size:13px}.toc summary{cursor:pointer;color:#396fae;font-weight:650}.toc nav{margin-top:10px}.toc ul{padding-left:22px}.toc a:hover{color:var(--blue)}.toc li{margin:5px 0}.prose{font-size:16px;line-height:1.95;overflow-wrap:anywhere;color:#34445a}.prose h1{font-size:28px;letter-spacing:-.5px;line-height:1.5;margin:36px 0 18px}.prose h2{font-size:24px;color:#172438;margin:36px 0 15px;line-height:1.55;scroll-margin-top:100px}.prose h3{font-size:19px;line-height:1.65;margin:26px 0 12px;scroll-margin-top:100px}.prose a{color:#236ccc;text-decoration:underline;text-underline-offset:3px}.prose a:hover{color:#124ba0}.prose p{margin:0 0 20px}.prose ul,.prose ol{padding-left:24px}.prose li{margin-bottom:8px}.prose blockquote{margin:24px 0;padding:16px 22px;background:#f1f7ff;border-left:3px solid var(--blue);border-radius:0 10px 10px 0;font-size:14px;color:#526981}.prose blockquote p:last-child{margin:0}.prose pre{overflow:auto;background:#f6f8fb;padding:20px;border:1px solid var(--line);border-radius:12px;max-width:100%;font:13px/1.85 ui-monospace,Consolas,monospace}.prose code{font-family:ui-monospace,Consolas,monospace;font-size:.87em;background:#edf3fb;padding:3px 6px;border-radius:4px;color:#275c94}.prose pre code{background:0 0;padding:0;color:inherit}.prose .highlight{overflow:auto;border-radius:12px}.prose table{display:block;overflow:auto;border-collapse:collapse;font-size:14px;margin:24px 0;max-width:100%}.prose th,.prose td{border:1px solid var(--line);padding:10px 14px;min-width:100px}.prose th{background:#f1f7ff;text-align:left}.prose img{max-width:100%;height:auto;border-radius:12px}.prose hr{border:0;border-top:1px solid var(--line);margin:30px 0}.article-tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;font-size:12px;color:#4879ba}.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:35px;padding-top:25px;border-top:1px solid var(--line);font-size:14px}.post-nav small{display:block;color:#8793a4;margin-bottom:9px}.post-nav a:hover{color:var(--blue)}.back-link{display:inline-block;margin-top:25px}.term-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}.term-card{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;font-size:15px;transition:.2s}.term-card small{color:#8793a4;font-size:11px;white-space:nowrap}.term-card:hover{border-color:#9ec7ff;transform:translateY(-2px)}.error-page{min-height:70vh;padding-top:110px;padding-bottom:110px}.error-page h1{font-size:clamp(30px,5vw,52px);letter-spacing:-1px;line-height:1.5}.error-page .btn{margin-right:10px}.list-intro{margin-bottom:25px}.product-page{padding-top:40px!important;padding-bottom:60px!important}.product-page:before{content:'精选产品 · 与你分享实用的选择';display:block;font-size:22px;font-weight:750;letter-spacing:-.5px;margin-bottom:24px;color:var(--ink)}@media(min-width:801px){.hero-grid{gap:36px}.hero h1{font-size:clamp(42px,4.7vw,58px);letter-spacing:-2px;white-space:nowrap}.hero .lead{max-width:470px}.reading-wrap{width:min(940px,calc(100% - 60px))}}@media(max-width:1000px) and (min-width:801px){.links{gap:18px}.hero h1{font-size:42px}.float{right:-6px}.code{font-size:11px;padding:20px}.note{font-size:12px}}@media(max-width:800px){.nav{height:70px}.menu-toggle{display:block;background:#fff;border:1px solid var(--line);border-radius:9px;padding:7px 11px;color:#526981;font-size:13px;margin-left:auto}.nav-read{display:none}.links.open{display:flex;position:absolute;top:69px;left:-18px;right:-18px;flex-direction:column;gap:0;background:#fff;box-shadow:0 18px 25px #14243a10;border-bottom:1px solid var(--line);padding:8px 18px}.links.open a{padding:12px}.hero-grid{gap:28px}.hero h1{font-size:clamp(38px,7.2vw,58px)}.art{width:min(490px,100%);margin:0 auto}.reading-card{padding:30px}.term-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about .btn{margin-top:0}.breadcrumb{padding:22px 0}}@media(max-width:560px){.brand{font-size:18px}.brand small{font-size:9px}.mark{padding:8px}.hero h1{font-size:clamp(30px,7.8vw,43px);letter-spacing:-1.3px}.hero-grid{gap:30px}.art{min-height:320px}.art .editor{width:calc(100% - 14px)}.art .code{font-size:11px;line-height:2;padding:20px 14px}.art .float{top:-4px;font-size:10px;padding:9px 12px}.float b{font-size:14px}.art .note{font-size:11px;bottom:0;left:2px;padding:10px 14px}.stats{margin-top:16px}.head{gap:12px}.head h2{font-size:26px}.page-section{padding-top:32px;padding-bottom:50px}.page-title{font-size:30px}.search-row{align-items:flex-start;flex-direction:column;gap:8px}.search-box{width:100%}.search-box kbd{display:none}.notebook-bottom{gap:10px;flex-wrap:wrap}.reading-card{padding:24px 20px;border-radius:16px}.article-heading h1{font-size:26px}.article-heading{padding-bottom:22px}.prose{font-size:15px}.prose h2{font-size:21px}.prose h1{font-size:24px}.prose h3{font-size:18px}.prose pre{padding:14px;font-size:12px}.toc{padding:13px}.post-nav{grid-template-columns:1fr;gap:20px}.term-grid{grid-template-columns:1fr}.footrow{flex-direction:column;gap:9px}.subscribe h2{font-size:25px}.about h2{font-size:25px}.error-page{padding-top:70px}.product-page:before{font-size:20px}.product-page .product-help{grid-template-columns:1fr}.product-page .product-help-step{padding:8px 0}.product-page .product-help-main{flex-wrap:wrap}.product-page .product-contact-row{flex-wrap:wrap;gap:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.card:hover,.btn:hover,.term-card:hover{transform:none}}