:root,:root[data-theme=micu]{--paper: #eef3fa;--paper-deep: #dce5f1;--paper-soft: #f5f8fc;--ink: #0b1e36;--ink-soft: #234263;--ink-mute: #4a6f97;--ink-faint: #88a3c2;--rule: #0d2240;--rule-soft: rgba(13,34,64,.18);--rule-hair: rgba(13,34,64,.08);--accent: #1e88e5;--accent-deep: #0d47a1;--sidebar-w: 300px}:root[data-theme=dark]{--paper: #0d1726;--paper-deep: #061021;--paper-soft: #142238;--ink: #e2e8f0;--ink-soft: #b5c2d6;--ink-mute: #7e90ad;--ink-faint: #4d6280;--rule: #1f3661;--rule-soft: rgba(180,200,230,.16);--rule-hair: rgba(180,200,230,.08);--accent: #4ea2f5;--accent-deep: #1e88e5;--sidebar-w: 300px}:root[data-theme=dark] .paper-grain{mix-blend-mode:screen}:root[data-theme=dark] .paper-noise{mix-blend-mode:screen;opacity:.1}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:Instrument Sans,Noto Sans SC,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:14.5px;line-height:1.55;font-feature-settings:"ss01","ss02","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}h1,h2,h3,h4{color:var(--ink);margin:0;font-weight:500;letter-spacing:-.015em}p{margin:0;color:var(--ink-soft)}::selection{background:var(--ink);color:var(--paper)}.eyebrow{font-family:JetBrains Mono,ui-monospace,Menlo,monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}.paper-grain{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 20% 10%,rgba(20,23,28,.025) 0,transparent 40%),radial-gradient(circle at 80% 80%,rgba(20,23,28,.03) 0,transparent 50%);mix-blend-mode:multiply}.paper-noise{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.28;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.06 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}.shell{position:relative;z-index:1}.rail{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--paper-soft);border-right:1px solid var(--rule-soft);display:flex;flex-direction:column;overflow-y:auto;z-index:50}main.content{margin-left:var(--sidebar-w);padding:32px 40px 80px;max-width:1400px}.toc-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:56px;align-items:start}.toc-layout>article{min-width:0}.toc{position:sticky;top:32px;max-height:calc(100vh - 64px);overflow-y:auto;padding-left:16px;border-left:1px solid var(--rule-soft)}.toc-title{font:500 10.5px JetBrains Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:12px}.toc ul{list-style:none;margin:0;padding:0}.toc li{margin:2px 0}.toc a{display:block;color:var(--ink-soft);font-size:12.5px;line-height:1.4;text-decoration:none;padding:4px 10px;border-left:2px solid transparent;margin-left:-12px;transition:color .12s,border-color .12s}.toc a:hover{color:var(--accent)}.toc a.is-active{color:var(--accent);border-left-color:var(--accent);font-weight:600}.toc li.toc-h3 a{padding-left:22px;font-size:12px}.toc li.toc-h4 a{padding-left:34px;font-size:11.5px;color:var(--ink-mute)}@media(max-width:1100px){.toc-layout{grid-template-columns:1fr}.toc{display:none}}.brand-block{padding:22px 24px 18px;border-bottom:1px solid var(--rule-soft);display:flex;flex-direction:column;align-items:flex-start;gap:8px}.brand-logo{width:40px;height:40px;display:grid;place-items:center;transition:transform .2s;text-decoration:none}.brand-logo:hover{transform:rotate(-6deg) scale(1.06)}.brand-logo img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.08))}.brand-title{font-family:Fraunces,"Noto Serif SC",serif;font-variation-settings:"opsz" 144,"SOFT" 30;font-weight:500;font-size:19px;letter-spacing:-.02em;color:var(--ink);line-height:1.15;margin-top:4px}.brand-title em{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 60;font-weight:400;color:var(--accent);margin-left:2px}.brand-tagline{font-family:JetBrains Mono,ui-monospace,monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.brand-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.topbtn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;border:1px solid var(--rule-soft);background:var(--paper);color:var(--ink);font:500 10px JetBrains Mono,monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:border-color .15s,color .15s,background .15s}.topbtn:hover{border-color:var(--accent);color:var(--accent)}.topbtn-icon{font-size:11px;line-height:1}.brand-views{display:flex;align-self:stretch;margin-top:8px;padding:2px;border-radius:999px;border:1px solid var(--rule-soft);background:var(--paper)}.viewbtn{flex:1;text-align:center;padding:5px 0;border-radius:999px;font:500 10px JetBrains Mono,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;transition:background .15s,color .15s}.viewbtn:hover{color:var(--accent)}.viewbtn.is-active{background:var(--accent);color:var(--paper)}.home-link{margin-top:6px;font:500 10px JetBrains Mono,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);text-decoration:none;align-self:center;transition:color .12s}.home-link:hover{color:var(--accent)}.nav{padding:16px 20px 24px;font-family:Instrument Sans,Noto Sans SC,sans-serif}.nav-section{margin:0 0 4px}.nav-section>summary{cursor:pointer;list-style:none;user-select:none;display:flex;align-items:center;gap:6px;padding:6px 0;font:500 10.5px JetBrains Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);transition:color .12s}.nav-section>summary::-webkit-details-marker{display:none}.nav-section>summary::marker{display:none;content:""}.nav-section>summary:hover{color:var(--ink-mute)}.nav-group-caret{display:inline-block;font-size:9px;transition:transform .15s;width:8px;text-align:center}.nav-section[open]>summary .nav-group-caret{transform:rotate(90deg)}.nav-group-name{flex:1}.nav-group-count{font-size:9.5px;color:var(--ink-faint);background:var(--paper-deep);padding:1px 7px;border-radius:999px;letter-spacing:0}.nav-section[open]>summary .nav-group-count{color:var(--ink-mute)}.nav ul{list-style:none;padding:0;margin:0 0 8px}.nav li{margin:4px 0}.nav a{display:block;color:var(--ink-soft);font-size:13.5px;text-decoration:none;border-left:2px solid transparent;padding:4px 0 4px 8px;margin-left:-10px;transition:color .12s,border-color .12s}.nav a:hover{color:var(--accent)}.nav a.is-active{color:var(--accent);border-left-color:var(--accent);font-weight:600}.prose{color:var(--ink);font-size:15px;line-height:1.7}.prose h1,.prose h2,.prose h3{font-family:Fraunces,"Noto Serif SC",serif;font-variation-settings:"opsz" 144,"SOFT" 30;color:var(--ink);margin-top:1.8em;margin-bottom:.6em}.prose h1{font-size:32px;margin-top:.4em}.prose h2{font-size:22px;border-bottom:1px solid var(--rule-soft);padding-bottom:8px}.prose h3{font-size:18px}.prose p{color:var(--ink-soft)}.prose a{color:var(--accent);text-decoration:none;border-bottom:1px solid currentColor}.prose a:hover{color:var(--accent-deep)}.prose strong{color:var(--ink);font-weight:600}.prose blockquote{border-left:3px solid var(--accent);background:var(--paper-soft);padding:12px 18px;margin:18px 0;color:var(--ink-mute);border-radius:0 6px 6px 0}.prose code{background:var(--paper-deep);color:var(--ink);padding:2px 6px;border-radius:4px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9em}.prose pre{border:1px solid var(--rule-soft);border-radius:8px;padding:18px 20px;overflow-x:auto}.prose pre.astro-code{background-color:var(--paper-soft)!important}.prose pre code{background:transparent;padding:0;font-size:13px}:root[data-theme=dark] .prose pre.astro-code,:root[data-theme=dark] .prose pre.astro-code span{color:var(--shiki-dark)!important}.prose table{border-collapse:collapse;margin:18px 0;width:100%;font-size:14px}.prose table th,.prose table td{border:1px solid var(--rule-soft);padding:10px 14px;text-align:left}.prose table th{background:var(--paper-soft);font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);font-weight:500}.prose table tr:hover td{background:var(--paper-soft)}.prose ul li{margin:4px 0}.prose img{max-width:100%;height:auto;border-radius:6px}.filters{display:flex;flex-direction:column;gap:14px;margin:0 0 24px}.filter-search{position:relative;display:flex;align-items:center}.filter-search input[type=search]{flex:1;font:400 14px Instrument Sans,Noto Sans SC,sans-serif;color:var(--ink);background:var(--paper-soft);border:1px solid var(--rule-soft);border-radius:10px;padding:10px 14px;outline:none;transition:border-color .15s,background .15s;-webkit-appearance:none;appearance:none}.filter-search input[type=search]:focus{border-color:var(--accent);background:var(--paper)}.filter-search input::placeholder{color:var(--ink-faint)}.filter-search input::-webkit-search-cancel-button{display:none}.filter-clear{position:absolute;right:8px;background:transparent;border:none;color:var(--ink-faint);font:500 10px JetBrains Mono,monospace;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;padding:4px 8px;border-radius:6px}.filter-clear:hover{color:var(--accent);background:var(--paper)}.tag-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tag-strip-label{font:500 10px JetBrains Mono,monospace;letter-spacing:.14em;color:var(--ink-faint);margin-right:4px}.tag-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;font:500 11.5px Instrument Sans,Noto Sans SC,sans-serif;color:var(--ink-soft);background:var(--paper-soft);border:1px solid var(--rule-soft);cursor:pointer;transition:color .15s,background .15s,border-color .15s}.tag-chip:hover{border-color:var(--accent);color:var(--accent)}.tag-chip.is-active{background:var(--accent);border-color:var(--accent);color:var(--paper)}.filter-empty{color:var(--ink-mute);text-align:center;padding:32px 0;font-size:14px}.site-banner{text-align:center;padding:8px 0 24px;border-bottom:1px solid var(--rule-soft)}.site-banner img{display:block;width:100%;max-width:600px;height:auto;margin:0 auto 12px}.site-banner p{color:var(--ink-mute);font-size:14.5px;line-height:1.7}.site-banner strong{color:var(--ink);font-size:16px;font-weight:600}.hero{position:relative;margin:8px 0 40px;padding:28px 0 24px;border-bottom:1px solid var(--rule-soft)}.hero .eyebrow{display:block;margin-bottom:12px}.hero h1{font-family:Fraunces,"Noto Serif SC",serif;font-variation-settings:"opsz" 144,"SOFT" 30;font-size:42px;font-weight:500;letter-spacing:-.025em;color:var(--ink);margin:0 0 12px}.hero h1 em{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 60;font-weight:400;color:var(--accent)}.hero p{max-width:60ch;color:var(--ink-mute);font-size:14.5px}.hero-stats{display:flex;gap:48px;margin-top:24px;flex-wrap:wrap}.hero-stat{display:flex;flex-direction:column;gap:4px}.hero-stat .num{font-family:Fraunces,"Noto Serif SC",serif;font-variation-settings:"opsz" 144;font-size:26px;font-weight:500;color:var(--ink);line-height:1}.hero-stat .label{font:500 10px JetBrains Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin:24px 0}.card{display:flex;flex-direction:column;background:var(--paper-soft);border:1px solid var(--rule-soft);border-radius:12px;overflow:hidden;color:inherit;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;position:relative}.card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 6px 24px -8px #0d224026}.card-cover{height:130px;background-size:cover;background-position:center;background-color:var(--paper-deep);border-bottom:1px solid var(--rule-hair)}.card-cover.no-cover{background:linear-gradient(135deg,var(--paper-deep) 0%,var(--paper-soft) 100%);display:grid;place-items:center;color:var(--ink-faint);font:500 12px JetBrains Mono,monospace;letter-spacing:.2em;text-transform:uppercase}.card-logo{position:absolute;top:130px;left:16px;transform:translateY(-50%);width:40px;height:40px;border-radius:10px;overflow:hidden;border:2px solid var(--paper-soft);background:var(--paper-soft);box-shadow:0 2px 8px -2px #0d224033;z-index:1}.card-logo :global(svg),.card-logo :global(img){width:100%;height:100%;display:block;object-fit:cover}.card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:9px;flex:1}.card-eyebrow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-left:32px}.card-title{font-family:Fraunces,"Noto Serif SC",serif;font-variation-settings:"opsz" 144,"SOFT" 30;font-size:17px;font-weight:500;color:var(--ink);margin:0;line-height:1.25}.card-summary{color:var(--ink-mute);font-size:13px;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-tags{display:flex;flex-wrap:wrap;gap:4px}.card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px;border-top:1px dashed var(--rule-hair);font:500 11px JetBrains Mono,monospace;color:var(--ink-faint)}.card-authors{color:var(--ink-mute);font-family:Instrument Sans,Noto Sans SC,sans-serif;font-size:12px}.card-activity{display:inline-flex;align-items:center;gap:6px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font:500 10px JetBrains Mono,monospace;letter-spacing:.08em;text-transform:uppercase;line-height:1.5;border:1px solid transparent}.badge-status-in-progress{background:#f59e0b1f;color:#b45309;border-color:#f59e0b4d}.badge-status-done{background:#10b9811f;color:#047857;border-color:#10b9814d}.badge-status-archived{background:#6b72801f;color:#4b5563;border-color:#6b72804d}:root[data-theme=dark] .badge-status-in-progress{color:#fcd34d}:root[data-theme=dark] .badge-status-done{color:#6ee7b7}:root[data-theme=dark] .badge-status-archived{color:#d1d5db}.badge-host-github{background:var(--paper-deep);color:var(--ink-soft);border-color:var(--rule-soft)}.badge-host-gitee{background:#c71d231a;color:#c71d23;border-color:#c71d234d}.badge-host-local{background:#6b72801a;color:var(--ink-mute);border-color:var(--rule-soft)}.badge-category{background:#1e88e51a;color:var(--accent);border-color:#1e88e540}.badge-collection{background:#8957e51f;color:#6e40c9;border-color:#8957e54d}:root[data-theme=dark] .badge-collection{color:#c4b5fd}.card-shelves{display:flex;flex-direction:column;gap:28px;margin:24px 0}.shelf{border-top:1px solid var(--rule-soft);padding-top:18px}.shelf:first-child{border-top:none;padding-top:0}.shelf-head{font-family:Fraunces,"Noto Serif SC",serif;font-variation-settings:"opsz" 144,"SOFT" 30;font-size:22px;font-weight:500;margin:0 0 14px;color:var(--ink)}.shelf-body{display:flex;flex-direction:column;gap:20px}.collection-section{border-left:2px solid var(--rule-hair);padding-left:14px}.collection-head{font-family:Fraunces,"Noto Serif SC",serif;font-size:15px;font-weight:500;color:var(--ink-soft);margin:0 0 10px;letter-spacing:.01em;display:flex;align-items:center;gap:8px}.collection-head:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--accent);display:inline-block}.prose .collection-head{font-size:14px;margin-top:14px}.list-logo,.table-logo,.sidebar-logo{display:inline-flex;vertical-align:middle;width:16px;height:16px;border-radius:4px;overflow:hidden;flex-shrink:0}.list-logo,.table-logo,.sidebar-logo{margin-right:8px}.list-logo :global(svg),.list-logo :global(img),.table-logo :global(svg),.table-logo :global(img),.sidebar-logo :global(svg),.sidebar-logo :global(img){width:100%;height:100%;display:block;object-fit:cover}.project-head{display:flex;align-items:flex-start;gap:16px;margin:0 0 24px}.project-logo{display:inline-flex;width:56px;height:56px;border-radius:12px;overflow:hidden;flex-shrink:0;border:1px solid var(--rule-hair)}.project-logo :global(svg),.project-logo :global(img){width:100%;height:100%;display:block;object-fit:cover}.nav a{display:flex!important;align-items:center}.nav-name{flex:1}.tag{display:inline-flex;padding:2px 8px;border-radius:4px;background:var(--paper-deep);color:var(--ink-mute);font-size:11px;font-family:JetBrains Mono,monospace;line-height:1.5}.activity-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--ink-faint);box-shadow:0 0 0 2px var(--paper-soft)}.activity-fresh .activity-dot{background:#10b981}.activity-warm .activity-dot{background:#f59e0b}.activity-cold .activity-dot{background:var(--ink-faint)}.project-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px 24px;margin:8px 0 32px;padding:20px 24px;background:var(--paper-soft);border:1px solid var(--rule-soft);border-radius:12px}.project-meta .field{display:flex;flex-direction:column;gap:4px}.project-meta .field-label{font:500 10px JetBrains Mono,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.project-meta .field-value{color:var(--ink);font-size:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.project-meta .field-value a{color:var(--accent);border-bottom:1px solid currentColor;text-decoration:none}@media(max-width:768px){.rail{position:relative;width:100%;height:auto;border-right:none;border-bottom:1px solid var(--rule-soft)}main.content{margin-left:0;padding:24px 20px 60px;max-width:100%}.hero h1{font-size:30px}.hero-stats{gap:24px}}.prose :is(h1,h2,h3,h4){scroll-margin-top:32px}
