:root{--bg:#050816;--bg-elevated:#0b1020;--accent:#4f46e5;--accent-soft:#4f46e51f;--accent-strong:#6366f1;--accent-secondary:#ec4899;--text-main:#f9fafb;--text-muted:#9ca3af;--border-subtle:#94a3b84d;--radius-xl:1.5rem;--radius-lg:1rem;--radius-md:.75rem;--shadow-soft:0 18px 45px #0f172acc;--code-bg:#0d1117;--code-text:#e6edf3;--inline-code-bg:#6e768133}[data-theme=light]{--bg:#fff;--bg-elevated:#f6f8fa;--accent:#4f46e5;--accent-soft:#4f46e514;--accent-strong:#6366f1;--accent-secondary:#ec4899;--text-main:#1f2328;--text-muted:#656d76;--border-subtle:#1f232826;--shadow-soft:0 8px 24px #1f232814;--code-bg:#f6f8fa;--code-text:#1f2328;--inline-code-bg:#afb8c133}*,:before,:after{box-sizing:border-box}html,body{color:var(--text-main);background:radial-gradient(circle at top,#1d2342 0,#050816 45%,#020617 100%);margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;transition:background .3s,color .3s}[data-theme=light] html,[data-theme=light] body{background:linear-gradient(#fff 0%,#f6f8fa 100%)}body{min-height:100vh}a{color:inherit;text-decoration:none}.app-shell{max-width:1200px;margin:0 auto;padding:1.25rem 1.25rem 0}@media (min-width:768px){.app-shell{padding:1.75rem 1.75rem 0}}.nav{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);z-index:20;border-bottom:1px solid #94a3b880;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 5rem;display:flex;position:sticky;top:.75rem;box-shadow:0 18px 45px #0f172ab3}.nav-left{align-items:center;gap:.75rem;display:flex}.logo-mark{border-radius:.9rem;justify-content:center;align-items:center;padding:2px;display:flex}.logo-inner{letter-spacing:.04em;background:radial-gradient(circle at 25% 0,#1e293b,#020617 60%,#000 100%);border-radius:.8rem;justify-content:center;align-items:center;width:100%;height:100%;font-size:1.15rem;font-weight:700;display:flex}.logo-text{flex-direction:column;display:flex}.logo-title{letter-spacing:.06em;text-transform:uppercase;font-size:.9rem;font-weight:600}.logo-subtitle{color:var(--text-muted);font-size:.75rem}.nav-right{align-items:center;gap:.75rem;display:flex}.nav-links{flex:auto;justify-content:center;align-items:center;min-width:0;display:flex}.nav-review-link{color:var(--text-muted);border-radius:var(--radius-md);white-space:nowrap;padding:.4rem .65rem;font-size:.88rem;font-weight:500}.nav-review-link:hover{color:var(--accent-strong);background:var(--accent-soft)}@media (max-width:640px){.nav{padding:.6rem .9rem}.nav-left{flex:auto}.nav-links{border-top:1px solid var(--border-subtle);flex:100%;order:3;justify-content:flex-start;margin-top:.1rem;padding-top:.4rem}.logo-text{display:none}.nav-right{flex-direction:column;align-items:flex-end;gap:.4rem}.pill{display:none!important}}.pill{color:var(--text-muted);background:radial-gradient(circle at top,#94a3b866,#0000 55%);border:1px solid #94a3b880;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.75rem;display:flex}.lang-switch{cursor:pointer;color:var(--text-main);background:radial-gradient(circle at top,#0f172af2,#0f172ae6);border:1px solid #94a3b8a6;border-radius:999px;align-items:center;gap:.3rem;padding:.32rem .7rem;font-size:.75rem;display:inline-flex;box-shadow:0 12px 24px #0f172acc}.lang-active{letter-spacing:.05em;color:#0f172a;background:radial-gradient(circle at top,#f9fafb,#e5e7eb);border-radius:999px;padding:.2rem .55rem;font-weight:700}.lang-inactive{opacity:.55}.lang-separator{opacity:.4;font-size:.7rem}.lang-switch-dot{background:radial-gradient(circle at 30% 0,#22c55e,#16a34a 40%,#166534 100%);border-radius:999px;width:.5rem;height:.5rem;box-shadow:0 0 0 4px #22c55e2e}.hero{gap:1.75rem;margin-top:1.75rem;display:grid}@media (min-width:900px){.hero{grid-template-columns:minmax(0,3fr) minmax(0,2.5fr);align-items:center}}.hero-title{letter-spacing:-.03em;margin-bottom:.75rem;font-size:clamp(2.25rem,4vw,3rem);line-height:1.1}.hero-title span{background:linear-gradient(120deg,#e5e7eb,#a5b4fc,#f9a8d4);color:#0000;-webkit-background-clip:text}.hero-badge{color:var(--text-muted);background:radial-gradient(circle at 0 0,#4f46e559,#0000 65%);border:1px solid #94a3b859;border-radius:999px;align-items:center;gap:.45rem;margin-bottom:.6rem;padding:.25rem .7rem;font-size:.7rem;display:inline-flex}.hero-badge-dot{background:#22c55e;border-radius:999px;width:.38rem;height:.38rem;box-shadow:0 0 0 3px #22c55e47}.hero-desc{color:var(--text-muted);max-width:32rem;font-size:.97rem}.hero-actions{flex-wrap:wrap;gap:.65rem;margin-top:1.25rem;display:flex}.btn-primary{color:var(--text-main);cursor:pointer;background:radial-gradient(circle at 20% 0,#4f46e5,#1d2459 55%,#020617 100%);border:1px solid #818cf8cc;border-radius:999px;align-items:center;gap:.4rem;padding:.7rem 1.2rem;font-size:.85rem;font-weight:500;display:inline-flex;box-shadow:0 18px 40px #4f46e58c}.btn-ghost{color:var(--text-muted);cursor:pointer;background:radial-gradient(circle at top,#0f172ae6,#0f172ab3);border:1px solid #94a3b866;border-radius:999px;align-items:center;gap:.4rem;padding:.7rem 1.1rem;font-size:.85rem;display:inline-flex}.stats-row{flex-wrap:wrap;gap:.85rem;margin-top:1.5rem;display:flex}.stat-pill{background:radial-gradient(circle at top,#1e40af8c,#0f172ae6);border:1px solid #94a3b866;border-radius:999px;flex-direction:column;padding:.55rem .9rem;font-size:.75rem;display:flex}.stat-label{color:var(--text-muted)}.stat-value{font-weight:600}.hero-right{position:relative}.hero-panel{border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);background:radial-gradient(circle at 0 0,#1d2437,#020617 60%,#000 100%);border:1px solid #94a3b880;padding:1.2rem 1.1rem 1.35rem;overflow:hidden}.hero-panel-header{justify-content:space-between;align-items:center;margin-bottom:.9rem;display:flex}.hero-panel-title{color:var(--text-muted);font-size:.85rem}.dot-row{gap:.35rem;display:flex}.dot{border-radius:999px;width:.5rem;height:.5rem}.dot-1{background:#f97316}.dot-2{background:#22c55e}.dot-3{background:#6366f1}.category-grid{margin-top:2.3rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.section-title{font-size:1.1rem;font-weight:600}.section-sub{color:var(--text-muted);font-size:.85rem}.categories{grid-template-columns:repeat(1,minmax(0,1fr));gap:.9rem;display:grid}@media (min-width:640px){.categories{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.categories{grid-template-columns:repeat(3,minmax(0,1fr))}}.category-card{border-radius:var(--radius-lg);cursor:pointer;background:radial-gradient(circle at 0 0,#4f46e545,#0f172af2);border:1px solid #94a3b873;flex-direction:column;justify-content:space-between;gap:.85rem;min-height:180px;padding:1.25rem 1.35rem;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;display:flex}.category-card:hover{background:radial-gradient(circle at 0 0,#4f46e573,#0f172a);border-color:#818cf8e6;transform:translateY(-3px)translateZ(0);box-shadow:0 18px 45px #0f172af2}.category-row{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.category-name{min-height:1.4rem;margin-bottom:.5rem;font-size:1.05rem;font-weight:600;line-height:1.3}.category-badge{color:var(--text-muted);white-space:nowrap;background:#0f172ad9;border:1px solid #94a3b899;border-radius:999px;flex-shrink:0;padding:.35rem .75rem;font-size:.75rem}.category-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.8rem;font-size:.85rem;line-height:1.6;display:-webkit-box;overflow:hidden}.category-meta{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:auto;padding-top:.5rem;font-size:.8rem;display:flex}.category-chip-row{flex-wrap:wrap;gap:.4rem;max-height:2.5rem;display:flex;overflow:hidden}.chip{color:var(--text-muted);white-space:nowrap;border:1px solid #94a3b873;border-radius:999px;padding:.2rem .55rem;font-size:.75rem}.search-row{flex-wrap:wrap;gap:.75rem;margin-top:1.4rem;display:flex}.search-input-wrap{background:radial-gradient(circle at 0 0,#0f172ae6,#0f172ae6);border:1px solid #94a3b873;border-radius:999px;flex:220px;align-items:center;gap:.55rem;padding:.6rem .8rem;display:flex}.search-input-wrap input{color:var(--text-main);background:0 0;border:none;outline:none;width:100%;font-size:.85rem}.search-input-wrap input::placeholder{color:var(--text-muted)}.filter-chips{flex-wrap:wrap;gap:.4rem;display:flex}.filter-chip{color:var(--text-muted);background:radial-gradient(circle at top,#0f172ae6,#0f172acc);border:1px solid #94a3b873;border-radius:999px;justify-content:center;align-items:center;padding:.35rem .7rem;font-size:.75rem;line-height:1;display:inline-flex}.footer{color:var(--text-muted);border-top:1px solid #1e40af80;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:2.5rem;padding:1.5rem 5rem 4rem;font-size:.78rem;display:flex}.footer-links{flex-wrap:wrap;gap:.75rem;display:flex}.breadcrumbs{color:var(--text-muted);margin:1.4rem 0 .9rem;font-size:.8rem}.breadcrumbs a{color:var(--text-muted)}.breadcrumbs span{color:var(--text-main)}.category-page-header{flex-direction:column;gap:.4rem;margin-bottom:1.5rem;display:flex}.category-page-meta{color:var(--text-muted);flex-wrap:wrap;gap:.6rem;font-size:.78rem;display:flex}.fake-list{border-radius:var(--radius-lg);background:radial-gradient(circle at 0 0,#0f172ae6,#0f172af5);border:1px solid #94a3b873;gap:.7rem;padding:.9rem;display:grid}.fake-item{border-radius:var(--radius-md);background:radial-gradient(circle at 0 0,#1e40af80,#0f172af2);border:1px solid #1f2937d9;flex-direction:column;gap:.25rem;padding:.7rem .75rem;display:flex}.fake-item-title{font-size:.87rem;font-weight:500}.fake-item-desc{color:var(--text-muted);font-size:.78rem}.fake-item-tags{flex-wrap:wrap;gap:.35rem;margin-top:.25rem;display:flex}.skill-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:.9rem;display:grid}@media (min-width:768px){.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1080px){.skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.skill-card{-webkit-tap-highlight-color:transparent;background:radial-gradient(circle at 0 0,#0f172ae6,#0f172a);border:1px solid #1e40afb3;border-radius:1rem;flex-direction:column;justify-content:space-between;gap:.6rem;min-height:160px;padding:1.1rem 1.2rem;display:flex;box-shadow:0 18px 35px #0f172ae6}.skill-card:hover{border-color:#818cf8f2;transition:border-color .16s,transform .16s,box-shadow .16s;transform:translateY(-2px)}.skill-card-title{min-height:1.4rem;font-size:1rem;font-weight:600;line-height:1.4}.skill-card-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-height:2.5rem;margin-top:5px;margin-bottom:5px;font-size:.8rem;line-height:1.6;display:-webkit-box;overflow:hidden}.badge-soft{color:var(--text-muted);border:1px solid #94a3b880;border-radius:999px;padding:.15rem .5rem;font-size:.7rem}.hero-action-badge{pointer-events:none;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;display:inline-flex;cursor:default!important}.hero-action-badge-ghost{opacity:.9}.summary-card{border-radius:var(--radius-lg);background:radial-gradient(circle at 0 0,#0f172ae6,#0f172af7);border:1px solid #94a3b880;margin-top:2.3rem;padding:1.1rem 1rem 1.2rem;box-shadow:0 16px 40px #0f172ad9}.summary-grid{gap:.6rem;margin-top:.9rem;display:grid}.summary-row{justify-content:space-between;gap:1rem;font-size:.8rem;display:flex}.summary-label{color:var(--text-main);font-weight:500}.summary-value{color:var(--text-muted);text-align:right}.highlight-section{border-radius:var(--radius-xl);background:radial-gradient(circle at 0 0,#0f172aeb,#0f172a);border:1px solid #94a3b88c;margin-top:2.4rem;padding:1.3rem 1.15rem 1.4rem;box-shadow:0 20px 50px #0f172af2}.highlight-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.highlight-pill{color:#dbeafe;background:radial-gradient(circle at top,#3b82f652,#0f172a);border:1px solid #93c5fdb3;border-radius:999px;padding:.35rem .85rem;font-size:.75rem}.highlight-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:.9rem;display:grid}@media (min-width:800px){.highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1180px){.highlight-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.highlight-card{background:radial-gradient(circle at top,#0f172a,#020617 55%,#000 100%);border:1px solid #1e40afbf;border-radius:1rem;flex-direction:column;gap:.45rem;padding:.95rem .9rem 1rem;display:flex;box-shadow:0 18px 40px #0f172ae6}.highlight-badge{color:#6ee7b7;background:#10b9812e;border-radius:999px;justify-content:center;align-items:center;padding:.55rem .6rem;font-size:.7rem;display:inline-flex}.highlight-title{font-size:.95rem;font-weight:600}.highlight-desc{color:var(--text-muted);font-size:.8rem}.highlight-meta{color:var(--text-muted);justify-content:space-between;margin-top:.35rem;font-size:.78rem;display:flex}.highlight-author{color:var(--text-muted);margin-top:-.1rem;font-size:.78rem}.skill-card-link{color:inherit;text-decoration:none;display:block}.skill-detail-actions{margin-bottom:1.2rem}.skill-detail-body{border-radius:var(--radius-lg);color:var(--text-main);background:radial-gradient(circle at 0 0,#0f172af2,#0f172a);border:1px solid #94a3b880;padding:1rem 1.1rem 1.2rem;font-size:.85rem}.skill-detail-body h1,.skill-detail-body h2,.skill-detail-body h3{margin-top:1rem;margin-bottom:.35rem}.skill-detail-body img{border-radius:var(--radius-md);max-width:100%;height:auto;margin:.75rem 0}.skill-detail-body img:before{content:"🖼️ Image";background:var(--bg-elevated);border:1px dashed var(--border-subtle);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);padding:2rem;font-size:.85rem;display:block}.skill-detail-body ul,.skill-detail-body ol{margin:.35rem 0 .35rem 1.2rem}.skill-detail-meta{flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.9rem;display:flex}.skill-detail-tags{flex-wrap:wrap;gap:.35rem;display:flex}.skill-detail-homepage{color:#93c5fd;font-size:.78rem;text-decoration:underline}.skill-meta-block{color:var(--text-muted);border-top:1px solid #94a3b866;margin-top:.8rem;padding-top:.6rem;font-size:.8rem}.skill-meta-title{color:var(--text-main);margin-bottom:.3rem;font-size:.82rem;font-weight:500}.skill-meta-row ul{margin:.25rem 0 .25rem 1.1rem}.skill-meta-dim{color:#94a3b8cc}.skill-search-panel{border-radius:var(--radius-lg);background:radial-gradient(circle at 0 0,#0f172ae6,#0f172afa);border:1px solid #94a3b880;margin-top:.9rem;padding:.9rem .9rem .95rem;box-shadow:0 18px 45px #0f172ad9}.skill-search-title{align-items:baseline;gap:.55rem;font-size:.9rem;font-weight:600;display:flex}.skill-search-sub{color:var(--text-muted);font-size:.78rem;font-weight:400}.skill-search-list{gap:.6rem;margin-top:.75rem;display:grid}.skill-search-item{border-radius:var(--radius-md);background:radial-gradient(circle at 0 0,#1e40af59,#0f172af2);border:1px solid #1f2937d9;padding:.7rem .75rem;transition:transform .16s,border-color .16s,box-shadow .16s;display:block}.skill-search-item:hover{border-color:#818cf8f2;transform:translateY(-2px);box-shadow:0 16px 32px #0f172acc}.skill-search-item-title{color:var(--text-main);font-size:.88rem;font-weight:600}.skill-search-item-desc{color:var(--text-muted);margin-top:.25rem;font-size:.8rem}.skill-search-item-meta{color:#94a3b8e6;margin-top:.4rem;font-size:.75rem}.theme-toggle{border:1px solid var(--border-subtle);background:var(--bg-elevated);width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.theme-toggle:hover{border-color:var(--accent);color:var(--text-main);background:var(--accent-soft)}.shiki{border-radius:var(--radius-md);border:1px solid var(--border-subtle);margin:.75rem 0;padding:1rem;font-size:.85rem;line-height:1.6;overflow-x:auto;background:var(--code-bg)!important}.shiki code{color:var(--code-text);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;background:0 0!important}.shiki-fallback{background:var(--code-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin:.75rem 0;padding:1rem;overflow-x:auto}.shiki-fallback code{color:var(--code-text);white-space:pre;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.85rem;line-height:1.6}.skill-actions-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.install-command-wrapper{border:1px solid var(--border-subtle);background:var(--bg-elevated);border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .5rem .35rem .75rem;display:flex}.install-command{color:var(--text-muted);background:0 0;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:.8rem}.btn-copy{border:1px solid var(--border-subtle);background:var(--accent-soft);color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.75rem;transition:all .2s;display:inline-flex}.btn-copy:hover{border-color:var(--accent);color:var(--text-main);background:var(--accent-soft)}.btn-copy.copied{color:#22c55e;background:#22c55e33;border-color:#22c55e80}@media (max-width:640px){.highlight-header,.skill-actions-row{flex-direction:column;align-items:flex-start}}.related-skills-section{border-top:1px solid var(--border-subtle);margin-top:2.5rem;padding-top:1.5rem}.related-skills-header{margin-bottom:1rem}.related-skills-title{margin-bottom:.35rem;font-size:1.1rem;font-weight:600}.related-skills-sub{color:var(--text-muted);font-size:.85rem}.related-skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}@media (max-width:768px){.related-skills-grid{grid-template-columns:repeat(1,minmax(0,1fr))}}[data-theme=light] .hero-panel{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);border-color:#94a3b84d}[data-theme=light] .fake-list{background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%);border-color:#94a3b84d}[data-theme=light] .fake-item{background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border-color:#94a3b833}[data-theme=light] .category-card{background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border-color:#94a3b84d}[data-theme=light] .category-card:hover{border-color:var(--accent);background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%)}[data-theme=light] .category-badge,[data-theme=light] .chip{background:#f1f5f9;border-color:#94a3b84d}[data-theme=light] .skill-card{background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border-color:#94a3b84d;box-shadow:0 4px 12px #0000000d}[data-theme=light] .skill-card:hover{border-color:var(--accent)}[data-theme=light] .skill-detail-body{background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border-color:#94a3b84d}[data-theme=light] .highlight-section{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);border-color:#94a3b84d}[data-theme=light] .highlight-card{background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border-color:#94a3b84d;box-shadow:0 4px 12px #0000000d}[data-theme=light] .highlight-pill{color:#1d4ed8;background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);border-color:#3b82f64d}[data-theme=light] .nav{background:#fffc;border-color:#94a3b833;box-shadow:0 2px 8px #0000000d}[data-theme=light] .search-input-wrap,[data-theme=light] .filter-chip,[data-theme=light] .lang-switch{background:#fff;border-color:#94a3b84d}[data-theme=light] .lang-active{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#6366f1 100%)}[data-theme=light] .btn-primary{color:#fff;background:linear-gradient(135deg,#4f46e5 0%,#6366f1 100%);box-shadow:0 4px 12px #4f46e54d}[data-theme=light] .btn-ghost{background:#fff;border-color:#94a3b84d}[data-theme=light] .stat-pill{background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%);border-color:#94a3b84d}[data-theme=light] .hero-badge{background:linear-gradient(135deg,#e0e7ff 0%,#c7d2fe 100%);border-color:#6366f14d}[data-theme=light] .category-badge,[data-theme=light] .badge-soft,[data-theme=light] .chip{background:#f1f5f9;border-color:#94a3b84d}[data-theme=light] .pill{background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%);border-color:#94a3b84d}[data-theme=light] .footer{border-color:#94a3b833}[data-theme=light] .skill-search-panel{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);border-color:#94a3b84d}[data-theme=light] .skill-search-item{background:linear-gradient(135deg,#fff 0%,#f8fafc 100%);border-color:#94a3b833}[data-theme=light] .summary-card{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);border-color:#94a3b84d}[data-theme=light] .install-command-wrapper{background:#f1f5f9}[data-theme=light] .shiki{border-color:#94a3b833;background:#f6f8fa!important}[data-theme=light] .highlight-badge{color:#15803d;background:#22c55e1a}[data-theme=light] .related-skills-section{border-color:#94a3b833}.skill-github-info{padding:1rem 0}.skill-github-info h2{color:var(--text-main);margin-bottom:.75rem;font-size:1.2rem}.skill-github-info p{color:var(--text-muted);margin-bottom:1rem;line-height:1.6}.skill-github-stats{background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-subtle);gap:1.5rem;margin:1rem 0;padding:.75rem 1rem;display:flex}.skill-github-stats span{color:var(--text-muted);font-size:.9rem}.skill-github-links{margin:1.5rem 0}.skill-github-links a{align-items:center;display:inline-flex}.skill-github-note{border-radius:var(--radius-md);background:#3b82f61a;border:1px solid #3b82f633;margin-top:1.5rem;padding:1rem}.skill-github-note p{color:var(--text-muted);margin:0;font-size:.85rem}[data-theme=light] .skill-github-stats{background:#f1f5f9}[data-theme=light] .skill-github-note{background:#3b82f60d}.skill-detail-body img{border-radius:var(--radius-md);max-width:100%;height:auto;margin:.75rem 0;display:block}.skill-detail-body img.small-image,.skill-detail-body img[width="50"],.skill-detail-body img[width="100"],.skill-detail-body img[width="150"],.skill-detail-body img[width="200"],.skill-detail-body img[height="50"],.skill-detail-body img[height="100"],.skill-detail-body img[src=""],.skill-detail-body img:not([src]){display:none}.skill-detail-body table{border-collapse:collapse;width:100%;margin:.75rem 0;font-size:.85rem}.skill-detail-body th,.skill-detail-body td{border:1px solid var(--border-subtle);text-align:left;padding:.5rem .75rem}.skill-detail-body th{background:var(--bg-elevated);font-weight:600}.skill-detail-body blockquote{border-left:4px solid var(--accent);background:var(--bg-elevated);border-radius:0 var(--radius-md)var(--radius-md)0;margin:.75rem 0;padding:.75rem 1rem}.skill-detail-body blockquote p{color:var(--text-muted);margin:0}.review-index-grid{grid-template-columns:1fr;gap:1rem;margin-top:1rem;margin-bottom:2rem;display:grid}@media (min-width:720px){.review-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.review-card{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-elevated);color:inherit;flex-direction:column;gap:.5rem;padding:1.1rem 1.15rem;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex}.review-card:hover{box-shadow:var(--shadow-soft);border-color:#6366f173}.review-card-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.35}.review-card-meta{color:var(--text-muted);font-size:.78rem}.review-card-excerpt{color:var(--text-muted);flex:1;margin:0;font-size:.85rem;line-height:1.5}.review-card-cta{color:var(--accent-strong);margin-top:.25rem;font-size:.82rem;font-weight:500}.review-article-kicker{color:var(--text-muted);margin-bottom:.35rem;font-size:.8rem}.review-article-body{margin-bottom:2.5rem}.review-skill-link{color:var(--accent-strong);text-underline-offset:2px;-webkit-text-decoration:underline #6366f173;text-decoration:underline #6366f173}.review-skill-link:hover{-webkit-text-decoration-color:var(--accent-strong);text-decoration-color:var(--accent-strong)}.review-pre{border-radius:var(--radius-md);background:var(--code-bg);color:var(--code-text);border:1px solid var(--border-subtle);white-space:pre;margin:.75rem 0 1rem;padding:1rem 1.1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.5;overflow-x:auto}.review-article-body code{background:var(--inline-code-bg);word-break:break-all;border-radius:.35rem;padding:.12em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8em}.review-article-body h3{margin-top:1.35rem;font-size:.98rem}.review-article-footnote{color:var(--text-muted);margin-top:1rem;font-size:.82rem;line-height:1.5}.review-article-body ol.review-dimensions{color:var(--text-muted);margin:.5rem 0 1rem;padding-left:1.25rem;line-height:1.55}.review-article-body ol.review-dimensions li{margin-bottom:.35rem}.review-section{border-top:1px solid var(--border-subtle);margin-top:3rem;padding-top:2rem}.review-section-title{color:var(--text-main);margin-bottom:1.5rem;font-size:1.5rem;font-weight:600}.review-loading{text-align:center;color:var(--text-muted);padding:2rem}.review-error{text-align:center;color:var(--accent-secondary);background:var(--bg-elevated);border-radius:var(--radius-md);padding:1.5rem}.review-stats{background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);grid-template-columns:auto 1fr;gap:2rem;margin-bottom:2rem;padding:1.5rem;display:grid}@media (max-width:600px){.review-stats{grid-template-columns:1fr;gap:1rem}}.review-stats-summary{text-align:center}.review-stats-score{flex-direction:column;align-items:center;gap:.5rem;display:flex}.review-stats-average{color:var(--accent);font-size:3rem;font-weight:700;line-height:1}.review-stats-stars{color:#fbbf24;letter-spacing:.1em;font-size:1.25rem}.review-stats-count{color:var(--text-muted);font-size:.875rem}.review-stats-bars{flex-direction:column;gap:.5rem;display:flex}.review-stats-bar{align-items:center;gap:.75rem;display:flex}.review-stats-bar-label{width:2rem;color:var(--text-muted);text-align:right;font-size:.875rem}.review-stats-bar-track{background:var(--border-subtle);border-radius:4px;flex:1;height:8px;overflow:hidden}.review-stats-bar-fill{background:linear-gradient(90deg,var(--accent),var(--accent-strong));border-radius:4px;height:100%;transition:width .3s}.review-stats-bar-count{text-align:left;width:2rem;color:var(--text-muted);font-size:.875rem}.review-layout{grid-template-columns:350px 1fr;gap:2rem;display:grid}@media (max-width:900px){.review-layout{grid-template-columns:1fr}}.review-form-wrapper{height:fit-content;position:sticky;top:2rem}@media (max-width:900px){.review-form-wrapper{position:static}}.review-form{background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);padding:1.5rem}.review-form-title{color:var(--text-main);margin:0 0 1rem;font-size:1.125rem;font-weight:600}.review-form-group{margin-bottom:1rem}.review-form-group label{color:var(--text-main);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.review-form-group input,.review-form-group textarea{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg);width:100%;color:var(--text-main);padding:.625rem .875rem;font-family:inherit;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.review-form-group input:focus,.review-form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.review-form-group textarea{resize:vertical;min-height:100px}.review-form-hint{color:var(--text-muted);margin-top:.25rem;font-size:.75rem;display:block}.review-form-char-count{text-align:right;color:var(--text-muted);margin-top:.25rem;font-size:.75rem;display:block}.review-form-char-count.error{color:#f59e0b;font-weight:500}.review-form-stars{gap:.25rem;display:flex}.review-form-star{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.75rem;line-height:1;transition:color .2s,transform .1s}.review-form-star:hover{transform:scale(1.1)}.review-form-star.active{color:#fbbf24}.review-form-message{border-radius:var(--radius-md);margin-bottom:1rem;padding:.75rem;font-size:.875rem}.review-form-message.success{color:#22c55e;background:#22c55e1a;border:1px solid #22c55e33}.review-form-message.error{color:#ef4444;background:#ef44441a;border:1px solid #ef444433}.review-form-submit{background:var(--accent);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;width:100%;padding:.75rem;font-size:.875rem;font-weight:600;transition:background .2s,opacity .2s}.review-form-submit:hover{background:var(--accent-strong)}.review-form-submit:disabled{opacity:.6;cursor:not-allowed}.review-list-wrapper{min-height:200px}.review-empty{text-align:center;color:var(--text-muted);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px dashed var(--border-subtle);padding:3rem 1.5rem}.review-list{flex-direction:column;gap:1rem;display:flex}.review-list-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.review-list-header h3{color:var(--text-main);margin:0;font-size:1rem;font-weight:600}.review-list-sort{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-main);cursor:pointer;padding:.5rem .75rem;font-size:.875rem}.review-list-sort:focus{border-color:var(--accent);outline:none}.review-item{background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);padding:1.25rem}.review-item-header{justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;display:flex}.review-item-author{align-items:center;gap:.75rem;display:flex}.review-item-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:600;display:flex}.review-item-meta{flex-direction:column;display:flex}.review-item-name{color:var(--text-main);font-size:.9375rem;font-weight:600}.review-item-date{color:var(--text-muted);font-size:.75rem}.review-item-rating{color:#fbbf24;letter-spacing:.05em;font-size:.875rem}.review-item-content{margin:.75rem 0}.review-item-content p{color:var(--text-main);margin:0;font-size:.9375rem;line-height:1.6}.review-item-actions{gap:1rem;margin-top:.75rem;display:flex}.review-item-helpful{color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:.375rem .75rem;font-size:.8125rem;transition:all .2s}.review-item-helpful:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.review-item-helpful:disabled,.review-item-helpful.clicked{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);cursor:default}
