:root{--bg: #070b0a;--bg-deep: #041819;--panel: #0a1512;--panel2: #0d1713;--ink: #fdfdf9;--dim: rgba(253, 253, 249, .62);--faint: rgba(253, 253, 249, .3);--acc: #00ffc2;--acc2: #ffd166;--line: rgba(0, 255, 194, .1);--line2: rgba(253, 253, 249, .07);--cyan: #69e0ff;--rose: #ff8798;--violet: #b9a8ff;--ease-nk: cubic-bezier(.77, 0, .175, 1);--ease-out5: cubic-bezier(.23, 1, .32, 1);--pad: clamp(20px, 4vw, 48px);--sans: "DM Sans", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--acc);color:var(--bg)}a{color:var(--acc);text-decoration:none;transition:color .3s var(--ease-nk)}.mono{font-family:var(--mono)}.dim{color:var(--dim)}.mut{color:var(--faint)}.wrap{max-width:1000px;margin:0 auto;padding:0 var(--pad)}header.site{position:sticky;top:0;z-index:50;background:#070b0ab8;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}header.site:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(0,255,194,.35),transparent);opacity:.5;pointer-events:none}header.site .bar{display:flex;align-items:center;gap:18px;padding:12px 0}.brand{display:flex;align-items:center;gap:10px;font-family:"DM Sans",var(--sans);font-style:italic;font-weight:200;letter-spacing:-.02em;color:var(--ink)}.brand img{width:24px;height:24px}.brand .word{font-size:clamp(21px,2.4vw,25px);line-height:1}.brand .big{font-family:DM Sans,Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-style:italic;font-weight:200;letter-spacing:-.01em;color:var(--ink)}.brand .harness{color:var(--acc);font-weight:200;margin:0 1px 0 0}.brand .en{color:#fdfdf9d9;font-size:.68em;font-style:italic;font-weight:400}nav{margin-left:auto;display:flex;align-items:center;gap:20px;font-family:var(--mono);font-size:13px;letter-spacing:.06em}nav a{color:var(--dim)}nav a:hover{color:var(--acc)}nav .btn{border:1px solid var(--acc);border-radius:100px;padding:5px 14px;color:var(--acc);transition:all .4s var(--ease-nk)}nav .btn:hover{background:var(--acc);color:var(--bg);box-shadow:0 0 24px #00ffc247}footer.site{position:relative;z-index:2;border-top:1px solid var(--line);color:var(--faint);font-family:var(--mono);font-size:12.5px;background:linear-gradient(180deg,var(--bg),var(--bg-deep))}footer.site .inner{padding:26px 0 30px;display:flex;flex-direction:column;gap:10px}footer.site .row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}footer .andata{font-size:11.5px;letter-spacing:.1em}footer .andata a{color:var(--faint);border-bottom:1px solid transparent}footer .andata a:hover{color:var(--acc);border-bottom-color:var(--acc)}.sec-label,.panel-h,.board h2{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line);padding-bottom:8px;margin:0 0 20px}.board h2 .hl{color:var(--acc)}.masthead{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--dim);padding:30px 0 6px}.masthead .no{color:var(--acc);font-weight:500;letter-spacing:.16em}.masthead .date{color:var(--dim)}.masthead .pill{margin-left:auto;font-size:11px;border:1px solid var(--line2);color:var(--dim);padding:1px 12px;border-radius:100px;letter-spacing:.18em;text-transform:uppercase}.theme h1{font-family:var(--sans);font-weight:500;letter-spacing:-.02em;font-size:clamp(24px,3.4vw,34px);line-height:1.35;margin:14px 0 10px}.theme .reason{border-left:1px solid var(--acc);background:var(--panel);padding:12px 18px;color:var(--dim);font-size:15px;font-weight:300;margin:6px 0 30px}.theme .reason b{color:var(--acc);font-weight:500;font-family:var(--mono);font-size:12px;letter-spacing:.12em;margin-right:6px}.board{margin:40px 0}.board ol{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}.board li{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:18px 8px;transition:background .35s var(--ease-nk),padding-left .35s var(--ease-nk)}.board li:hover{background:#00ffc209;padding-left:14px}.item-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.rank{font-family:var(--mono);color:var(--acc2);font-weight:500;min-width:26px;font-size:14px}.repo{font-family:var(--mono);font-weight:500;color:var(--ink);word-break:break-all}.repo a{color:inherit}.repo a:hover{color:var(--acc)}.delta{font-family:var(--mono);color:var(--faint);font-size:13px}.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;padding:2px 10px;border-radius:100px;margin-left:auto;border:1px solid;text-transform:uppercase}li[data-kind=发布] .tag{color:var(--cyan);border-color:#69e0ff66}li[data-kind=新星] .tag{color:var(--acc2);border-color:#ffd16666}li[data-kind=架构] .tag{color:var(--violet);border-color:#b9a8ff66}li[data-kind=安全] .tag{color:var(--rose);border-color:#ff879866}li[data-kind=研究] .tag{color:var(--acc);border-color:#00ffc266}li[data-kind=工具] .tag{color:var(--dim);border-color:var(--line2)}.item-note{margin:8px 0 0;color:var(--dim);font-size:15px;font-weight:300}.item-editor{margin:8px 0 0;font-size:14px;color:var(--ink);border-left:1px solid var(--acc);padding-left:12px;opacity:.9}.item-editor b{color:var(--acc);font-weight:500;font-family:var(--mono);font-size:12px;letter-spacing:.1em;margin-right:6px}.radar-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.radar-item{background:var(--panel2);border:0;padding:14px 16px;font-size:14px;font-weight:300}.radar-item .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);display:block;margin-bottom:6px}.radar-item .k.spec{color:var(--violet)}.radar-item .k.release{color:var(--cyan)}.radar-item .k.postmortem{color:var(--rose)}.radar-item .k.trend{color:var(--acc)}.deepdive{margin:18px 0 0;font-family:var(--mono);font-size:13.5px;color:var(--dim)}.deepdive a{color:var(--acc)}.prose{margin:30px 0 10px;font-size:16px;font-weight:300}.prose p{margin:0 0 16px}.prose h2{font-family:var(--sans);font-weight:500;letter-spacing:-.01em;font-size:21px;margin:30px 0 12px}.prose code{font-family:var(--mono);font-size:.88em;background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--acc)}.prose a{color:var(--acc);text-decoration:underline;text-underline-offset:3px}.prose blockquote{margin:0 0 16px;border-left:1px solid var(--acc);padding-left:16px;color:var(--dim)}.prose ul,.prose ol{padding-left:22px}.dayrow{display:flex;align-items:baseline;gap:16px;padding:15px 8px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:14px;color:var(--dim);transition:background .35s var(--ease-nk),padding-left .35s var(--ease-nk)}.dayrow:hover{background:#00ffc209;padding-left:14px}.dayrow .d{color:var(--acc);min-width:118px}.dayrow .t{color:var(--dim);font-family:var(--sans);font-weight:300}.dayrow .n{color:var(--faint);margin-left:auto;font-size:12.5px}html{scroll-snap-type:y proximity}#scene{position:fixed;inset:0;z-index:0;width:100%;height:100%;display:block;cursor:crosshair;background:#020807}.deck .veil{position:fixed;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#070b0abd,#070b0a00 26%),linear-gradient(0deg,#070b0a99,#070b0a00 32%)}.deck{position:relative;z-index:2}.plate{position:relative;scroll-snap-align:start;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(80px,10vh,116px) var(--pad) clamp(44px,6vh,72px);text-align:left}.plate .pc{width:min(760px,100%);display:flex;flex-direction:column;align-items:flex-start}.plate .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--acc);margin:0 0 18px}.plate .kicker .mut{color:var(--faint)}.plate.cover{justify-content:center;text-align:center}.plate.cover .pc{align-items:center;text-align:center}.cover .big-cn{font-family:var(--sans);font-weight:300;letter-spacing:.02em;font-size:clamp(30px,5vw,60px);line-height:1.25;color:var(--ink);display:block;text-shadow:0 1px 40px rgba(7,11,10,.85)}.cover h1{margin:0;font-family:"DM Sans",var(--sans);font-style:italic;font-weight:100;font-size:clamp(46px,10vw,132px);line-height:1;letter-spacing:-.03em;color:var(--acc);text-shadow:0 0 60px rgba(0,255,194,.16),0 1px 40px rgba(7,11,10,.9)}.cover .sub{margin:24px 0 0;font-family:var(--mono);font-size:12px;font-weight:300;letter-spacing:.2em;color:var(--faint);max-width:620px}.pcard{position:relative;width:min(760px,100%);background:#0a15128c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,3.4vw,34px) clamp(20px,3.2vw,32px);box-shadow:0 22px 60px #00000061;color:var(--ink);transition:border-color .4s var(--ease-nk),transform .4s var(--ease-nk),box-shadow .4s var(--ease-nk)}a.pcard:hover{border-color:#00ffc273;transform:translateY(-4px);box-shadow:0 26px 70px #00000073}.pcard h3{margin:0 0 6px;font-family:var(--sans);font-weight:500;letter-spacing:-.02em;font-size:clamp(22px,3.4vw,30px);line-height:1.3}.pcard .lead2{margin:0 0 18px;font-size:15px;line-height:1.85;font-weight:300;color:var(--dim)}.pcard .go{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--acc)}.pcard .go span{transition:transform .3s var(--ease-nk)}a.pcard:hover .go span{transform:translate(4px)}.pcard .meta{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;color:var(--faint);margin-bottom:12px}.pcard .meta b{color:var(--acc);font-weight:500}.plate .tc-items{list-style:none;margin:14px 0 6px;padding:0;border-top:1px solid var(--line)}.plate .tc-item{display:flex;align-items:baseline;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--dim)}.plate .tc-item .r{font-family:var(--mono);color:var(--acc2);font-size:12px;min-width:16px}.plate .tc-item .repo{font-family:var(--mono);font-size:13px;color:var(--ink)}.plate .tc-item .kind{font-family:var(--mono);font-size:10px;letter-spacing:.1em;margin-left:auto;opacity:.9;white-space:nowrap}.plate .tc-item .note{color:var(--faint);font-weight:300;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}.plate .rows{margin-top:6px;width:100%;border-top:1px solid var(--line)}.plate .mod-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:16px;padding:12px 2px;border-bottom:1px solid var(--line)}.plate .mod-row .mi{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--acc);opacity:.7}.plate .mod-row .mn{font-size:15.5px;font-weight:400;letter-spacing:-.01em}.plate .mod-row .mf{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--faint)}.plate .btnrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.deck-ui{position:fixed;inset:0;z-index:40;pointer-events:none}.deck-ui .view-chip{position:absolute;top:clamp(66px,7.5vh,84px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--faint);text-transform:uppercase;background:#070b0a59;border:1px solid var(--line);border-radius:100px;padding:6px 16px 6px 18px}.deck-ui .view-chip b{color:var(--acc);font-weight:400}.deck-ui .view-chip .dots{display:inline-flex;gap:6px;align-items:center}.deck-ui .dot{pointer-events:auto;cursor:pointer;width:7px;height:7px;border:0;border-radius:50%;padding:0;background:var(--line2);transition:background .3s var(--ease-nk),transform .3s var(--ease-nk)}.deck-ui .dot:hover{background:#00ffc280}.deck-ui .dot.on{background:var(--acc);box-shadow:0 0 8px #00ffc299;transform:scale(1.25)}.deck-ui .hint{position:absolute;left:50%;bottom:clamp(14px,3vh,26px);transform:translate(-50%);font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--faint);opacity:0;transition:opacity .6s var(--ease-nk);text-align:center;max-width:92vw}.deck-ui .hint.show{opacity:1}.deck-ui .hint .hm{color:var(--acc)}.composer{width:min(720px,100%);background:#070b0a99;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 60px #0006;overflow:hidden}.composer .cz-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--faint)}.composer .cz-head b{color:var(--acc);font-weight:500}.composer .cz-engine{margin-left:auto;color:var(--faint)}.composer .cz-warn{padding:0 16px 10px;font-size:12.5px;color:var(--acc2);display:none}.composer .cz-warn.show{display:block}.composer .cz-body{padding:14px 16px 12px}.composer select.cm-model{font-family:var(--mono);font-size:12px;letter-spacing:.04em;background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:5px 10px;cursor:pointer}.composer .cm-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;min-height:4px}.composer .cm-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;color:var(--ink);background:#00ffc214;border:1px solid rgba(0,255,194,.25);border-radius:100px;padding:4px 8px 4px 12px;max-width:220px}.composer .cm-chip .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composer .cm-chip .x{cursor:pointer;border:0;background:transparent;color:var(--dim);font-size:14px;line-height:1;padding:0 2px}.composer .cm-chip .x:hover{color:var(--rose)}.composer .cm-chip img{width:22px;height:22px;object-fit:cover;border-radius:4px}.composer .cm-row{display:flex;align-items:flex-end;gap:10px}.composer textarea.cm-input{flex:1;resize:none;background:transparent;border:1px solid var(--line2);border-radius:12px;color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:300;line-height:1.6;padding:10px 14px;min-height:58px;max-height:150px;outline:none}.composer textarea.cm-input:focus{border-color:#00ffc280}.composer textarea.cm-input::placeholder{color:var(--faint)}.composer .cm-btns{display:flex;align-items:center;gap:8px}.composer .cm-add{width:40px;height:40px;flex:none;border-radius:50%;border:1px dashed rgba(0,255,194,.4);background:transparent;color:var(--acc);font-size:22px;line-height:1;cursor:pointer;transition:background .3s var(--ease-nk),border-color .3s var(--ease-nk)}.composer .cm-add:hover{background:#00ffc21f;border-color:var(--acc)}.composer .cm-send{width:40px;height:40px;flex:none;border-radius:50%;border:1px solid var(--acc);background:transparent;color:var(--acc);font-size:18px;line-height:1;cursor:pointer;transition:all .3s var(--ease-nk)}.composer .cm-send:hover{background:var(--acc);color:var(--bg)}.composer .cm-send:disabled,.composer .cm-add:disabled{opacity:.4;cursor:not-allowed}.composer .cm-state{min-height:20px;padding:6px 16px 4px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--faint)}.composer .cm-state.thinking{color:var(--acc)}.composer .cm-state.err{color:var(--rose)}.composer .cm-ans{margin:0 16px 12px;border-top:1px solid var(--line);padding-top:12px;font-size:14.5px;font-weight:300;line-height:1.8;color:var(--ink);max-height:44vh;overflow:auto;white-space:pre-wrap;word-break:break-word}.composer .cm-ans:empty{display:none}.composer .cm-foot{padding:8px 16px 10px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--faint)}body.no3d #scene,html:not(.js) #scene,body.no3d .deck .veil,html:not(.js) .deck .veil,body.no3d .deck-ui,html:not(.js) .deck-ui{display:none}html:not(.js){scroll-snap-type:none}body.no3d .plate,html:not(.js) .plate{justify-content:flex-start;background:radial-gradient(120% 90% at 70% 8%,#041819,#070b0a 60%);border-bottom:1px solid var(--line)}body.no3d .plate .pcard,body.no3d .plate .composer,html:not(.js) .plate .pcard,html:not(.js) .plate .composer{background:var(--panel);backdrop-filter:none}@media(prefers-reduced-motion:reduce){.deck-ui .hint{display:none}#scene{cursor:default}}@media(max-width:768px){.plate{padding-top:clamp(84px,12vh,110px)}.deck-ui .view-chip{letter-spacing:.1em;padding:5px 12px}.plate .tc-item .note,.plate .mod-row .mf{display:none}.plate .mod-row{grid-template-columns:40px 1fr;gap:10px}}.plate.cover h1{font-family:var(--sans);font-style:normal;font-weight:200;font-size:clamp(40px,8vw,104px);line-height:1.12;letter-spacing:-.02em;color:var(--ink)}.pcard .meta .go{margin-left:auto}.plate .pill{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border:1px solid rgba(0,255,194,.35);border-radius:100px;color:var(--ink);font-family:var(--mono);font-size:13px;letter-spacing:.06em;cursor:pointer;transition:all .45s var(--ease-nk)}.plate .pill span{transition:transform .35s var(--ease-nk)}.plate .pill:hover{background:var(--acc);border-color:var(--acc);color:var(--bg)}.plate .pill:hover span{transform:translate(4px)}.plate .pill.solid{background:var(--acc);color:var(--bg)}
