:root{--bg:#f3f4f1;--ink:#161816;--mute:#5b6058;--faint:#6f746c;--green:#1f7a5c;--green-ink:#17664c;--green-soft:#d8efe6;--sand:#e8c9a0;--paper:#faf8f2;--band:#f3efe7;--rule:#e9e3d6;--edge:#e0dacb;--cover:#1b382a;--serif:"Noto Serif SC","Songti SC","Source Han Serif SC","Noto Serif CJK SC",Georgia,"STSong","SimSun",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans SC","Microsoft YaHei","Segoe UI",sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--ease:cubic-bezier(.22,1,.36,1);--r:18px;--gut:clamp(20px,5vw,40px);--nav:56px}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--bg);-webkit-text-size-adjust:100%;scrollbar-gutter:stable}html.lock{overflow:hidden}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}h1,h2,h3,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:6px}[tabindex="-1"]:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}.wrap{width:100%;max-width:calc(1120px + var(--gut)*2);margin-inline:auto;padding-inline:var(--gut)}.skip{position:fixed;left:12px;top:-80px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px}.skip:focus{top:12px}.type,.status,kbd{font-family:var(--mono);letter-spacing:.06em}.nav{position:fixed;inset:0 0 auto;z-index:10;background:#f3f4f1eb;border-bottom:1px solid var(--rule);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-in{display:flex;align-items:center;justify-content:space-between;gap:12px;height:var(--nav)}.brand{font:600 17px/1 var(--serif);letter-spacing:.02em;padding:10px 0;white-space:nowrap}.nav ul{display:flex;gap:2px}.nav li a{display:block;padding:8px 12px;border-radius:999px;font-size:14px;color:var(--mute);white-space:nowrap;transition:color .2s,background-color .2s}.nav li a:hover{color:var(--ink);background:#1618160d}.welcome{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}.welcome-in{flex:1 0 auto}.welcome{padding-top:calc(var(--nav) + clamp(28px,6vh,64px))}.intro{margin:0 auto clamp(18px,3vh,26px);text-align:center}.intro-sub{max-width:30em;margin:0 auto;font-size:15px;color:var(--mute);word-break:keep-all;text-wrap:balance}.welcome-in{padding-bottom:48px}.search{display:flex;align-items:center;gap:12px;max-width:680px;height:60px;margin:0 auto;padding:0 10px 0 22px;background:var(--paper);border:1px solid var(--edge);border-radius:999px;color:var(--mute);transition:border-color .25s,box-shadow .25s}.search:focus-within{border-color:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.search svg{flex:none}.search input{flex:1;min-width:0;height:100%;border:0;background:none;font:inherit;font-size:17px;color:var(--ink);outline:none;-webkit-appearance:none;appearance:none}.search input::placeholder{color:var(--mute)}.search input::-webkit-search-cancel-button{-webkit-appearance:none;display:none}.clear{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%}.clear:hover{background:var(--rule)}.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px}.chip{min-height:40px;padding:0 18px;border:1px solid var(--edge);border-radius:999px;font-size:15px;transition:border-color .2s,background-color .2s,color .2s}.chip:hover{border-color:var(--green)}.chip[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.status{margin:28px 0 14px;font-size:12px;color:var(--mute)}.filter-tag{display:flex;justify-content:center;margin-top:14px}.filter-tag button{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 10px 0 16px;border-radius:999px;background:var(--green-soft);color:var(--green-ink);font-size:14px}.filter-tag button:hover{background:#c9e7db}.filter-tag svg{flex:none}.loading{padding:40px 0;text-align:center;color:var(--mute)}.masonry{display:grid;grid-template-columns:repeat(var(--cols,1),minmax(0,1fr));gap:16px;align-items:start;transition:opacity .25s}.masonry.stale{opacity:.55}.m-col{display:flex;flex-direction:column;gap:16px;min-width:0}.card{position:relative;display:flex;flex-direction:column;gap:8px;padding:22px 26px;background:var(--paper);border:1px solid var(--edge);border-radius:var(--r);transition:border-color .25s var(--ease),transform .35s var(--ease)}.card:hover,.card:focus-within{border-color:#1f7a5c80;transform:translateY(-2px)}.card.has-shot{padding-top:0}.card-shot{position:relative;margin:0 -26px 4px;overflow:hidden;border-radius:calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0;border-bottom:1px solid var(--rule);background:linear-gradient(135deg,var(--band),#ece6d9)}.card-shot img{display:block;width:100%;height:auto;opacity:0;transform:scale(1.001);transition:opacity .45s var(--ease),transform .6s var(--ease)}.card-shot img.ok{opacity:1}.card-shot.broken{display:none}.card:hover .card-shot img.ok{transform:scale(1.025)}.card-link:after{content:"";position:absolute;inset:0;border-radius:var(--r);z-index:0}.card-link:focus-visible{outline:none}.card:has(.card-link:focus-visible){outline:2px solid var(--green);outline-offset:3px}.card-tags{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:auto;padding-top:6px}.tag-btn{font-size:13px;line-height:1.6;color:var(--faint);border-radius:6px;transition:color .2s}.tag-btn:hover{color:var(--green-ink);text-decoration:underline;text-underline-offset:3px}.type{display:inline-flex;align-items:center;gap:8px;font-size:12px;line-height:1;color:var(--green-ink)}.type:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}.card h3{font:600 19px/1.4 var(--serif);letter-spacing:.02em}.card p{font-size:15px;line-height:1.7;color:var(--mute)}.btn-ghost{min-height:44px;padding:0 22px;border:1px solid var(--edge);border-radius:999px;font-size:15px;transition:border-color .2s,background-color .2s}.btn-ghost:hover{border-color:var(--green);background:var(--paper)}.btn-ghost.small{min-height:36px;padding:0 16px;font-size:14px}.feed-foot{display:flex;justify-content:center;align-items:center;min-height:72px;margin-top:20px}.feed-msg{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--mute)}.feed-end{font-family:var(--mono);letter-spacing:.06em;font-size:12px;color:var(--faint)}.feed-end:before,.feed-end:after{content:"";width:28px;height:1px;background:var(--edge)}.spinner{width:16px;height:16px;border:2px solid var(--green-soft);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.detail-shot{display:block;margin:22px 0 4px;overflow:hidden;border:1px solid var(--edge);border-radius:12px;background:var(--band)}.detail-shot img{display:block;width:100%;height:auto}.empty{padding:40px 20px;text-align:center;color:var(--mute);background:var(--paper);border:1px dashed var(--edge);border-radius:var(--r)}.empty .btn-ghost{margin-top:16px;color:var(--ink)}.footer{padding:20px 0 24px;background:var(--rule);font-size:13px;color:#50554d}.detail{padding:0;margin:auto;width:min(680px,calc(100% - 24px));max-width:none;max-height:min(88vh,820px);overflow:auto;background:var(--paper);color:var(--ink);border:1px solid var(--edge);border-radius:var(--r);box-shadow:0 30px 80px -24px #16181666;overscroll-behavior:contain}.detail::backdrop{background:#16181673}.detail-bar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--paper);border-bottom:1px solid var(--rule)}.back{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px 0 14px;border:1px solid var(--edge);border-radius:999px;font-size:15px}.back:hover{border-color:var(--green)}.esc-hint{display:none;font-size:12px;color:var(--mute)}.esc-hint kbd{padding:2px 6px;border:1px solid var(--edge);border-radius:6px;background:#fff;font-size:11px}@media(hover:hover)and (pointer:fine){.esc-hint{display:block}}.detail-body{padding:28px clamp(22px,5vw,40px) 36px}.detail-body h2{margin:14px 0 10px;font:600 clamp(26px,5vw,34px)/1.3 var(--serif);letter-spacing:.02em}.detail-body p{color:var(--mute)}.detail-body .lead{font-size:17px;color:var(--ink)}.detail-body p+p{margin-top:10px}.detail-body h3{margin:28px 0 10px;font-size:14px;font-weight:600;color:var(--green-ink)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.tag{display:inline-block;padding:2px 11px;border:1px solid var(--rule);border-radius:999px;font-size:13px;color:var(--mute);transition:border-color .2s,color .2s}button.tag:hover{border-color:var(--green);color:var(--green-ink)}.visit{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:22px}.btn-visit{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 26px;border-radius:999px;background:var(--green);color:#fff;font-weight:600;font-size:16px;transition:background-color .2s,transform .3s var(--ease)}.btn-visit:hover{background:var(--green-ink);transform:translateY(-1px)}.host{font:13px/1.4 var(--mono);color:var(--faint);word-break:break-all}.md{margin-top:8px;color:var(--mute);overflow-wrap:anywhere}.md>*+*{margin-top:12px}.md h1,.md h2,.md h3,.md h4{margin:28px 0 10px;font:600 14px/1.5 var(--sans);color:var(--green-ink);letter-spacing:.02em}.md h1{font-size:17px}.md h2{font-size:15px}.md ul,.md ol{padding-left:1.4em}.md ul{list-style:disc}.md ol{list-style:decimal}.md li+li{margin-top:4px}.md li::marker{color:var(--green)}.md a{color:var(--green-ink);text-decoration:underline;text-underline-offset:3px}.md strong{color:var(--ink);font-weight:600}.md blockquote{margin:16px 0 0;padding:10px 16px;border-left:3px solid var(--sand);background:var(--band);border-radius:0 10px 10px 0;font-size:14px}.md code{padding:1px 6px;border-radius:6px;background:var(--band);font:.9em var(--mono);color:var(--ink)}.md pre{padding:14px 16px;border-radius:12px;background:#1f2420;color:#e9efe9;overflow:auto;font-size:13px;line-height:1.6}.md pre code{padding:0;background:none;color:inherit}.md img{max-width:100%;height:auto;border-radius:12px}.md hr{border:0;border-top:1px solid var(--rule);margin:24px 0}.md table{border-collapse:collapse;width:100%;font-size:14px;display:block;overflow:auto}.md th,.md td{padding:6px 10px;border:1px solid var(--rule);text-align:left}.detail-body .md p+p{margin-top:12px}@media(max-width:639px){.chips{gap:6px}.chip{padding:0 14px}.detail{width:100%;margin:auto 0 0;max-height:92dvh;border-radius:var(--r) var(--r) 0 0;border-bottom:0}.card{padding-inline:22px}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.m-col>li{animation:rise-in .4s var(--ease) backwards;animation-delay:calc(var(--i,0)*30ms)}.detail[open]{animation:rise-in .4s var(--ease)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation:none!important}.spinner{animation:spin 1.6s linear infinite!important}.card:hover,.card:focus-within,.btn-visit:hover{transform:none}}:root{--cn-good:#1f7a5c;--cn-good-ink:#17664c;--cn-good-bg:#e3f2ea;--cn-ok:#c9922a;--cn-ok-ink:#7a5410;--cn-ok-bg:#f8edd6;--cn-bad:#c24a3a;--cn-bad-ink:#9e3527;--cn-bad-bg:#f8e4e0}.cn-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 6px;border-radius:999px;font:500 12px/1.2 var(--sans);letter-spacing:.02em;white-space:nowrap;vertical-align:middle}.cn-badge .cn-face{flex:none}.cn-good{background:var(--cn-good-bg);color:var(--cn-good-ink)}.cn-good .cn-face{color:var(--cn-good)}.cn-ok{background:var(--cn-ok-bg);color:var(--cn-ok-ink)}.cn-ok .cn-face{color:var(--cn-ok)}.cn-bad{background:var(--cn-bad-bg);color:var(--cn-bad-ink)}.cn-bad .cn-face{color:var(--cn-bad)}.cn-unknown{background:transparent;border:1px dashed var(--edge);color:var(--faint);padding:2px 8px 2px 5px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px}.card-top .cn-badge{position:relative;z-index:1;margin-left:auto;cursor:default}.cn-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:16px;font-size:14px}.detail-body .cn-line{color:var(--mute)}.cn-line .cn-badge{font-size:13px;padding:4px 11px 4px 7px}.chip-cn{display:inline-flex;align-items:center;gap:6px}.chip-cn .cn-face{color:var(--cn-good)}.chip-cn[aria-pressed=true] .cn-face{color:#fff}.nav li a.on{color:var(--green-ink);background:var(--green-soft)}.daily-teaser{display:flex;align-items:center;gap:14px;max-width:680px;margin:0 auto 16px;padding:10px 16px 10px 14px;background:var(--paper);border:1px solid var(--edge);border-radius:14px;font-size:14px;line-height:1.5;transition:border-color .25s var(--ease),transform .3s var(--ease)}.daily-teaser:hover{border-color:#1f7a5c80;transform:translateY(-1px)}.dt-label{display:inline-flex;align-items:center;gap:7px;flex:none;padding:3px 10px;border-radius:999px;background:var(--green-soft);color:var(--green-ink);font-size:12px;white-space:nowrap}.dt-label i{width:6px;height:6px;border-radius:50%;background:var(--green)}.dt-text{flex:1;min-width:0;display:flex;flex-direction:column}.dt-text b{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-sum{color:var(--mute);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-go{flex:none;color:var(--green-ink);font-size:13px;white-space:nowrap}@media(max-width:639px){.daily-teaser{flex-wrap:wrap;gap:6px 10px;padding:12px 14px}.dt-text{flex-basis:100%;order:2}.dt-text b,.dt-sum{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.dt-go{margin-left:auto}}.page{display:flex;flex-direction:column;min-height:100vh;min-height:100svh;padding-top:calc(var(--nav) + clamp(28px,6vh,56px))}.page-in{flex:1 0 auto;max-width:calc(760px + var(--gut)*2);padding-bottom:56px}.page-head{margin-bottom:28px}.page-head h1{margin-top:8px;font:600 clamp(30px,5vw,40px)/1.25 var(--serif);letter-spacing:.02em}.page-sub{margin-top:10px;color:var(--mute);font-size:15px}.btn-ghost.inline{display:inline-flex;align-items:center;margin-top:16px;color:var(--ink)}.daily-list{display:flex;flex-direction:column;gap:12px}.daily-item{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:18px;align-items:start;padding:20px 22px;background:var(--paper);border:1px solid var(--edge);border-radius:var(--r);transition:border-color .25s var(--ease),transform .35s var(--ease)}.daily-item:hover{border-color:#1f7a5c80;transform:translateY(-2px)}.daily-item time{display:flex;flex-direction:column;gap:2px;padding-top:2px}.daily-item time b{font:600 20px/1.2 var(--serif);color:var(--green-ink)}.daily-item time span{font:12px/1.4 var(--mono);color:var(--faint);letter-spacing:.04em}.daily-item h2{font:600 18px/1.45 var(--serif);letter-spacing:.02em}.daily-item p{margin-top:6px;font-size:15px;line-height:1.7;color:var(--mute)}.daily-go{padding-top:2px;color:var(--faint);transition:color .2s,transform .3s var(--ease)}.daily-item:hover .daily-go{color:var(--green-ink);transform:translate(3px)}@media(max-width:639px){.daily-item{grid-template-columns:minmax(0,1fr);gap:6px;padding:18px}.daily-item time{flex-direction:row;align-items:baseline;gap:10px}.daily-item time b{font-size:17px}.daily-go{display:none}}.crumb{margin-bottom:18px;font-size:14px}.crumb a{color:var(--mute)}.crumb a:hover{color:var(--green-ink)}.article{padding:clamp(24px,5vw,44px) clamp(20px,5vw,48px) clamp(28px,5vw,44px);background:var(--paper);border:1px solid var(--edge);border-radius:var(--r)}.article-head{padding-bottom:22px;margin-bottom:8px;border-bottom:1px solid var(--rule)}.article-head h1{margin-top:10px;font:600 clamp(26px,5vw,36px)/1.3 var(--serif);letter-spacing:.02em}.article-lede{margin-top:14px;font-size:17px;line-height:1.8;color:var(--ink)}.article-cover{display:block;width:100%;height:auto;margin:20px 0 4px;border-radius:12px;border:1px solid var(--edge)}.daily-md{margin-top:0;font-size:16px;line-height:1.85;color:#3e433c}.daily-md>*+*{margin-top:14px}.daily-md h2{margin:40px 0 4px;padding-top:4px;font:600 21px/1.4 var(--serif);color:var(--ink);letter-spacing:.02em}.daily-md h2:first-child{margin-top:24px}.daily-md h3{margin:28px 0 0;font:600 17px/1.5 var(--sans);color:var(--ink);letter-spacing:.01em}.daily-md h2+h3{margin-top:18px}.daily-md h3+p{margin-top:6px}.daily-md h4{margin:20px 0 0;font:600 15px/1.5 var(--sans);color:var(--green-ink)}.daily-md p{color:#3e433c}.daily-md strong{color:var(--ink)}.daily-md a{color:var(--green-ink)}.daily-md code.src-tag{display:inline-block;margin-right:4px;padding:1px 9px;border-radius:999px;font:500 12px/1.6 var(--sans);letter-spacing:.04em;vertical-align:1px}.daily-md code.src-tag.cn{background:#fbe6df;color:#9e3527}.daily-md code.src-tag.intl{background:#e2ecf6;color:#2c5a85}.daily-md h3+p:has(>code.src-tag:first-child){font-size:13px;color:var(--faint)}.daily-md p.link-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.daily-md a.pill{display:inline-flex;align-items:center;min-height:32px;padding:0 14px;border:1px solid var(--edge);border-radius:999px;background:var(--bg);color:var(--ink);font-size:13px;line-height:1;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s}.daily-md a.pill:after{content:"↗";margin-left:6px;font-size:11px;color:var(--faint)}.daily-md a.pill:hover{border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}.daily-md blockquote{border-left-color:var(--sand)}.daily-md hr{margin:32px 0}.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:40px;padding-top:24px;border-top:1px solid var(--rule)}.pager-a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--edge);border-radius:14px;min-width:0;transition:border-color .2s}.pager-a:hover{border-color:var(--green)}.pager-a span{font-size:12px;color:var(--faint);font-family:var(--mono);letter-spacing:.04em}.pager-a b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pager-a.next{text-align:right}.pager-a.empty-slot{border:0;padding:0}@media(max-width:639px){.article{border-radius:14px}.pager{grid-template-columns:1fr}.pager-a.next{text-align:left}.pager-a.empty-slot{display:none}}.browse{margin-top:8px}.browse-main{min-width:0}.cat-side{display:none}.cat-strip{margin:18px calc(var(--gut)*-1) 0;display:flex;flex-direction:column;gap:8px}.cat-strip-row{position:relative;display:flex;gap:8px;overflow-x:auto;padding:2px var(--gut);scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding-inline:var(--gut)}.cat-strip-row::-webkit-scrollbar{display:none}.cat-strip .chip{flex:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.cat-strip .chip[aria-current=true]{background:var(--green);border-color:var(--green);color:#fff}.cat-strip .chip.in-path{border-color:var(--green);color:var(--green-ink);background:var(--green-soft)}.cat-strip .chip.small{min-height:34px;padding:0 14px;font-size:14px;background:var(--paper)}.cat-strip .chip.small[aria-current=true]{background:var(--green);color:#fff}.cat-strip .chip .cat-n{font:12px/1 var(--mono);opacity:.7}.cat-strip-row.sub{position:relative}.cat-strip-row.sub:before{content:"";flex:none;width:2px;align-self:stretch;margin:4px 2px 4px 6px;border-radius:2px;background:var(--green-soft)}@media(min-width:960px){.browse{display:grid;grid-template-columns:216px minmax(0,1fr);gap:36px;align-items:start;margin-top:30px}.cat-strip{display:none}.cat-side{display:block;position:sticky;top:calc(var(--nav) + 20px);max-height:calc(100vh - var(--nav) - 40px);overflow-y:auto;padding:6px 4px 16px 0;scrollbar-width:thin}.browse .status{margin-top:4px}}.cat-h{margin:0 0 10px 12px;font:500 12px/1 var(--mono);letter-spacing:.14em;color:var(--faint)}.cat-tree,.cat-sub{display:flex;flex-direction:column;gap:2px}.cat-sub{position:relative;margin:2px 0 4px 18px;padding-left:8px;border-left:1px solid var(--rule)}.cat-row{display:flex;align-items:center;gap:2px}.cat-btn{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:38px;padding:0 12px;border-radius:12px;font-size:15px;color:var(--ink);transition:background-color .2s,color .2s}.cat-sub .cat-btn{min-height:34px;font-size:14px;color:var(--mute)}.cat-btn:hover{background:#1618160d;color:var(--ink)}.cat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-n{flex:none;font:12px/1 var(--mono);color:var(--faint)}.cat-side .cat-btn[aria-current=true]{background:var(--green-soft);color:var(--green-ink);font-weight:600}.cat-side .cat-btn[aria-current=true] .cat-n,.cat-side .cat-btn.in-path{color:var(--green-ink)}.cat-tog{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--faint);transition:transform .2s var(--ease),background-color .2s}.cat-tog:hover{background:#1618160d;color:var(--ink)}.cat-tog[aria-expanded=true] svg{transform:rotate(90deg)}.cat-tog svg{transition:transform .2s var(--ease)}.cat-cn{margin:16px 0 0 4px;padding-top:16px;border-top:1px solid var(--rule)}.cat-cn .chip{min-height:36px;padding:0 14px;font-size:14px}.welcome{padding-top:calc(var(--nav) + clamp(22px,4.5vh,44px))}.cat-side .cat-btn{width:100%}.cat-side .cat-node.open>.cat-btn:not([aria-current=true]){font-weight:600}.cat-sub{animation:cat-sub-in .22s var(--ease)}@keyframes cat-sub-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.cat-sub{animation:none}}.groups{position:relative;max-width:680px;margin:0 auto 14px}.g-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:center}.g-label{font-size:13px;color:var(--faint);margin-right:2px}.g-chip{display:inline-flex;align-items:stretch;height:36px;border:1px solid var(--edge);border-radius:999px;background:var(--paper);overflow:hidden;transition:border-color .2s,box-shadow .2s}.g-chip:hover,.g-chip.menu-open{border-color:var(--green)}.g-chip.preset{background:var(--green-soft);border-color:color-mix(in srgb,var(--green) 35%,var(--edge))}.g-open{display:inline-flex;align-items:center;gap:6px;padding:0 4px 0 14px;font-size:14px;color:var(--ink);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.g-open:focus-visible,.g-more:focus-visible,.g-new:focus-visible{outline:2px solid var(--green);outline-offset:-2px}.g-star{color:var(--green-ink);font-size:12px}.g-name{max-width:11em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-n{font:500 11px/1 var(--mono);color:var(--faint);padding:3px 6px;border-radius:999px;background:var(--band)}.g-chip.preset .g-n{background:#ffffffb3}.g-more{width:30px;color:var(--mute);font-size:15px;letter-spacing:-1px}.g-more:hover{color:var(--green-ink)}.g-new{height:36px;padding:0 14px;border:1px dashed var(--edge);border-radius:999px;font-size:14px;color:var(--mute);transition:border-color .2s,color .2s}.g-new:hover{border-color:var(--green);color:var(--green-ink)}.g-menu{position:absolute;z-index:30;min-width:180px;padding:6px;background:var(--paper);border:1px solid var(--edge);border-radius:12px;box-shadow:0 18px 40px -18px #16181659}.g-menu-h{padding:6px 10px 4px;font-size:12px;color:var(--faint);white-space:nowrap}.g-menu button{display:block;width:100%;min-height:40px;padding:0 10px;border-radius:8px;text-align:left;font-size:14px}.g-menu button:hover{background:var(--band)}.g-menu button.danger{color:#b3261e}.g-toast{position:fixed;left:50%;bottom:24px;z-index:60;transform:translate(-50%);padding:10px 18px;border-radius:999px;background:var(--ink);color:#fff;font-size:14px;box-shadow:0 12px 30px -12px #0006}.sheet{padding:0;margin:auto;width:min(640px,calc(100% - 24px));max-width:none;max-height:min(90vh,860px);background:var(--paper);color:var(--ink);border:1px solid var(--edge);border-radius:var(--r);box-shadow:0 30px 80px -24px #16181666;overscroll-behavior:contain;flex-direction:column}.sheet[open]{display:flex}.sheet::backdrop{background:#16181673}.sheet-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 12px 22px;border-bottom:1px solid var(--rule)}.sheet-bar h2{font:600 18px/1.4 var(--serif);letter-spacing:.02em}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:999px;color:var(--mute)}.icon-btn:hover{background:var(--band);color:var(--ink)}.sheet-body{flex:1;overflow:auto;padding:18px 22px 22px}.sheet-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px 12px 22px;border-top:1px solid var(--rule);background:var(--paper)}.sheet-foot .sp{flex:1}.sheet-foot .g-err{flex-basis:100%;order:-1}.btn-primary{min-height:42px;padding:0 20px;border-radius:999px;background:var(--green);color:#fff;font-size:15px;font-weight:500}.btn-primary:hover{background:var(--green-ink)}.btn-danger{min-height:42px;padding:0 14px;border-radius:999px;color:#b3261e;font-size:14px}.btn-danger:hover{background:#fbeae8}.sheet .btn-ghost{min-height:42px;padding:0 18px}.sheet .btn-ghost.small{min-height:34px;padding:0 14px;font-size:13px;white-space:nowrap}.sheet .btn-ghost:disabled{opacity:.5;cursor:default;border-color:var(--edge);background:none}.g-field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}.g-input{width:100%;min-height:44px;padding:0 14px;border:1px solid var(--edge);border-radius:12px;background:#fff;font:inherit;font-weight:400;font-size:15px;color:var(--ink);outline:none}.g-input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.g-input[aria-invalid=true]{border-color:#b3261e}.g-sec{margin-top:22px}.g-sec h3{margin-bottom:8px;font-size:14px;font-weight:600}.g-sec h3 small{font-weight:400;color:var(--faint);margin-left:6px}.g-empty,.g-muted{font-size:13px;color:var(--faint)}.g-empty{padding:12px;text-align:center;border:1px dashed var(--edge);border-radius:12px;list-style:none}.g-err{font-size:13px;color:#b3261e;margin-top:6px}.g-items,.g-found{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.g-item,.g-found li{display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid var(--rule);border-radius:12px;background:#fff}.g-item.dragging{opacity:.45;border-style:dashed}.g-grip{cursor:grab;color:var(--faint);font-size:12px;letter-spacing:-2px;padding:0 2px}.g-thumb{flex:none;width:52px;height:34px;border-radius:7px;object-fit:cover;object-position:top;border:1px solid var(--rule);background:var(--band)}.g-letter{display:grid;place-items:center;font:600 15px/1 var(--serif);color:var(--green-ink);background:var(--green-soft)}.g-item-main{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.g-item-main b{font-weight:500;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-item-main small{font-size:12px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-item-name{width:100%;min-width:0;padding:2px 4px;margin-left:-4px;border:1px solid transparent;border-radius:6px;background:none;font:inherit;font-size:14px;color:var(--ink)}.g-item-name:hover{border-color:var(--rule)}.g-item-name:focus{outline:none;border-color:var(--green)}.g-item-btns{display:flex;gap:2px}.g-item-btns button{width:32px;height:32px;border-radius:8px;color:var(--mute);font-size:14px}.g-item-btns button:hover:not(:disabled){background:var(--band);color:var(--ink)}.g-item-btns button:disabled{opacity:.3}.g-item-btns .g-rm:hover:not(:disabled){color:#b3261e;background:#fbeae8}.g-search{display:flex;align-items:center;gap:8px;height:42px;margin-bottom:8px;padding:0 12px;border:1px solid var(--edge);border-radius:12px;background:#fff;color:var(--mute)}.g-search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.g-search input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:15px;outline:none;color:var(--ink)}.g-found{max-height:248px;overflow:auto}.g-urlrow{display:grid;grid-template-columns:1.4fr 1fr auto;gap:8px}.g-io-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.g-tip{padding:10px 14px;border-radius:12px;background:var(--green-soft);font-size:14px}.g-tip summary{cursor:pointer;color:var(--green-ink);font-weight:500}.g-tip .g-steps{margin-top:10px}.g-lead{margin-bottom:14px;color:var(--mute);font-size:15px}.g-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0;padding:0;list-style:none}.g-steps li{display:flex;flex-direction:column;gap:6px}.g-art{display:block;width:100%;height:auto}.g-steps p{font-size:13px;line-height:1.5;color:var(--ink)}.g-steps b{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:4px;border-radius:999px;background:var(--green);color:#fff;font:600 11px/1 var(--mono)}.g-browsers{margin-top:12px;font-size:13px;color:var(--mute)}.g-browsers summary{cursor:pointer;color:var(--green-ink)}.g-browsers ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.g-browsers .g-steps{margin-top:10px}.g-fallback{margin-top:18px;padding-top:14px;border-top:1px solid var(--rule)}.g-fallback h3{font-size:14px;font-weight:600;margin-bottom:8px}.g-fallback ul{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.g-fallback li{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 12px;border:1px solid var(--rule);border-radius:12px;background:#fff}.g-fallback li.done{opacity:.6}.g-fb-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:14px;line-height:1.35}.g-fb-name small{font-size:12px;color:var(--faint)}.g-fallback a.btn-ghost{display:inline-flex;align-items:center}.g-off{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--mute);cursor:pointer;margin-right:auto}.g-off input{width:17px;height:17px;accent-color:var(--green)}@media(max-width:640px){.groups{margin-bottom:12px}.g-row{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gut) * -1);padding:2px var(--gut)}.g-row::-webkit-scrollbar{display:none}.g-chip,.g-new,.g-label{flex:none}.sheet{width:100%;max-height:92vh;margin:auto 0 0;border-radius:var(--r) var(--r) 0 0;border-bottom:0}.sheet-body{padding:16px}.sheet-bar{padding-left:16px}.sheet-foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.g-urlrow{grid-template-columns:1fr}.g-steps{grid-template-columns:1fr;gap:10px}.g-steps li{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:10px}.g-grip{display:none}.g-thumb{width:44px;height:30px}}.daily-md h2[id],.daily-md h3[id]{scroll-margin-top:calc(var(--nav) + 20px)}.toc-side{display:none}.toc-h{margin:0 0 10px 13px;font:500 12px/1 var(--mono);letter-spacing:.14em;color:var(--faint)}.toc-list,.toc-sub{display:flex;flex-direction:column}.toc-list{border-left:1px solid var(--rule)}.toc-list a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-left:-1px;padding:4px 10px 4px 12px;border-left:2px solid transparent;border-radius:0 8px 8px 0;font-size:13px;line-height:1.55;color:var(--faint);transition:color .2s,border-color .2s,background-color .2s}.toc-sec+.toc-sec{margin-top:8px}.toc-sec>a{font-weight:600;color:var(--mute)}.toc-sub{margin-top:1px}.toc-sub a{padding-left:22px}@media(hover:hover){.toc-list a:hover{color:var(--ink);background:#1618160a}}.toc-list a.on{color:var(--green);border-left-color:var(--green);background:#d8efe68c}.toc-list a:focus-visible{outline-offset:-2px}.toc-fab{position:fixed;z-index:20;right:max(16px,calc(env(safe-area-inset-right) + 12px));bottom:max(18px,calc(env(safe-area-inset-bottom) + 12px));display:inline-flex;align-items:center;gap:7px;height:42px;padding:0 16px 0 14px;border:1px solid var(--edge);border-radius:999px;background:#faf8f2f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--green-ink);font-size:14px;letter-spacing:.06em;box-shadow:0 6px 18px #1618161a;-webkit-tap-highlight-color:transparent;transition:border-color .2s,transform .2s var(--ease)}.toc-fab:active{transform:scale(.96)}@media(hover:hover){.toc-fab:hover{border-color:var(--green)}}.toc-layer{position:fixed;inset:0;z-index:60;visibility:hidden;transition:visibility 0s linear .3s}.toc-layer.open{visibility:visible;transition:none}.toc-backdrop{position:absolute;inset:0;background:#16181652;opacity:0;transition:opacity .3s var(--ease)}.toc-layer.open .toc-backdrop{opacity:1}.toc-drawer{position:absolute;top:0;bottom:0;left:0;display:flex;flex-direction:column;width:82vw;max-width:340px;padding:max(14px,env(safe-area-inset-top)) 0 env(safe-area-inset-bottom) env(safe-area-inset-left);background:var(--paper);border-right:1px solid var(--edge);box-shadow:8px 0 30px #1618161f;transform:translate(-102%);transition:transform .3s var(--ease)}.toc-layer.open .toc-drawer{transform:none}.toc-drawer-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 10px 8px 18px}.toc-drawer-head .toc-h{margin:0}.toc-x{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;font-size:15px;color:var(--faint)}.toc-x:active{background:#1618160d}.toc-drawer .toc-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin:0 12px 0 18px;padding:4px 6px 24px 0;border-left:0}.toc-drawer .toc-list a{padding-top:7px;padding-bottom:7px;font-size:14px;border-left-color:var(--rule)}.toc-drawer .toc-list a.on{border-left-color:var(--green)}@media(prefers-reduced-motion:reduce){.toc-backdrop,.toc-drawer{transition:none}}@media(min-width:1000px){.page-in.has-toc{max-width:calc(1036px + var(--gut)*2)}.article-grid{display:grid;grid-template-columns:236px minmax(0,1fr);gap:40px;align-items:start}.toc-side{display:block;position:sticky;top:calc(var(--nav) + 20px);max-height:calc(100vh - var(--nav) - 40px);overflow-y:auto;overscroll-behavior:contain;padding:22px 6px 16px 0;scrollbar-width:thin;scrollbar-color:var(--edge) transparent;-webkit-mask-image:linear-gradient(transparent,#000 14px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(transparent,#000 14px,#000 calc(100% - 28px),transparent)}.toc-mobile{display:none}}
