:root{--ff-display: "Space Grotesk", system-ui, sans-serif;--ff-heading: "Outfit", system-ui, sans-serif;--ff-body: "DM Sans", system-ui, sans-serif;--ff-nav: "Sora", system-ui, sans-serif;--ff-mono: "JetBrains Mono", ui-monospace, monospace;--ff-sans: var(--ff-body);--fs-display: 1.5rem;--fs-heading: 1.0625rem;--fs-body: .875rem;--fs-sm: .8125rem;--fs-xs: .75rem;--fs-2xs: .6875rem;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-black: 800;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-full: 9999px;--sidebar-w: 280px;--content-max: 900px;--ease: cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg-0: #07090F;--bg-1: #0D1117;--bg-2: #161B22;--bg-3: #21262D;--bg-card: rgba(22, 27, 34, .85);--bg-glass: rgba(13, 17, 23, .9);--bg-sidebar: rgba(10, 14, 20, .97);--bg-hover: rgba(56, 189, 248, .06);--text-0: #F0F6FC;--text-1: #9198A1;--text-2: #5C6370;--border: rgba(240, 246, 252, .08);--border-h: rgba(240, 246, 252, .15);--border-active: rgba(56, 189, 248, .35);--accent: #38BDF8;--accent-2: #A78BFA;--accent-bg: rgba(56, 189, 248, .1);--accent-glow: rgba(56, 189, 248, .15);--gradient: linear-gradient(135deg, #38BDF8 0%, #A78BFA 100%);--gradient-subtle: linear-gradient(135deg, rgba(56,189,248,.07), rgba(167,139,250,.07));--shadow-card: 0 1px 3px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.02);--shadow-hover: 0 8px 24px rgba(0,0,0,.5);--cat-k8s: #60A5FA;--cat-ai: #C084FC;--cat-cloud: #38BDF8;--cat-oss: #4ADE80;color-scheme:dark}[data-theme=light]{--bg-0: #F4F6F9;--bg-1: #FFFFFF;--bg-2: #EDF0F4;--bg-3: #DDE2E8;--bg-card: rgba(255, 255, 255, .95);--bg-glass: rgba(255, 255, 255, .92);--bg-sidebar: rgba(255, 255, 255, .98);--bg-hover: rgba(13, 148, 136, .05);--text-0: #111827;--text-1: #4B5563;--text-2: #9CA3AF;--border: rgba(0, 0, 0, .08);--border-h: rgba(0, 0, 0, .14);--border-active: rgba(13, 148, 136, .35);--accent: #0D9488;--accent-2: #7C3AED;--accent-bg: rgba(13, 148, 136, .08);--accent-glow: rgba(13, 148, 136, .12);--gradient: linear-gradient(135deg, #0D9488 0%, #7C3AED 100%);--gradient-subtle: linear-gradient(135deg, rgba(13,148,136,.06), rgba(124,58,237,.06));--shadow-card: 0 1px 3px rgba(0,0,0,.06), 0 0 0 1px rgba(0,0,0,.03);--shadow-hover: 0 8px 24px rgba(0,0,0,.1);--cat-k8s: #2563EB;--cat-ai: #7C3AED;--cat-cloud: #0891B2;--cat-oss: #16A34A;color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--ff-body);font-size:var(--fs-body);background:var(--bg-0);color:var(--text-0);line-height:1.6;overflow:hidden;height:100vh;-webkit-font-smoothing:antialiased;transition:background-color .35s var(--ease),color .35s var(--ease)}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}img{max-width:100%;display:block}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-2)}ul,ol{list-style:none}.content-area::-webkit-scrollbar{width:5px}.content-area::-webkit-scrollbar-track{background:transparent}.content-area::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:3px}.content-area::-webkit-scrollbar-thumb:hover{background:var(--accent)}.app-layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);height:100vh;background:var(--bg-sidebar);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:var(--sp-6) var(--sp-4) var(--sp-4);flex-shrink:0;overflow:hidden;transition:background .35s var(--ease),border-color .35s var(--ease)}.sidebar-profile{text-align:center;padding-bottom:var(--sp-5);border-bottom:1px solid var(--border);margin-bottom:var(--sp-4);flex-shrink:0}.sidebar-avatar{width:72px;height:72px;border-radius:50%;margin:0 auto var(--sp-3);position:relative}.sidebar-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;position:relative;z-index:1}.sidebar-avatar:after{content:"";position:absolute;inset:-2px;border-radius:50%;background:var(--gradient);z-index:0}.sidebar-name{font-family:var(--ff-heading);font-size:var(--fs-heading);font-weight:var(--fw-black);letter-spacing:-.02em;margin-bottom:var(--sp-1)}.sidebar-title{font-family:var(--ff-nav);font-size:var(--fs-xs);color:var(--text-1);line-height:1.45;margin-bottom:var(--sp-2)}.sidebar-company{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--ff-nav);font-size:var(--fs-2xs);color:var(--accent);font-weight:var(--fw-semibold)}.sidebar-status{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-2xs);color:var(--text-2);margin-top:var(--sp-2)}.status-dot{width:6px;height:6px;background:#22c55e;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 6px #22c55e00}}.sidebar-switches{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-3)}.sidebar-switches .lang-switch,.sidebar-switches .theme-switch{margin-top:0}.lang-switch{position:relative;display:inline-flex;align-items:center;margin-top:var(--sp-3);width:96px;height:32px;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;cursor:pointer;padding:0;overflow:hidden;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.lang-switch:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.lang-switch-option{position:relative;z-index:2;flex:1;display:flex;align-items:center;justify-content:center;font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;color:var(--text-3);transition:color .35s var(--ease);pointer-events:none;-webkit-user-select:none;user-select:none}.lang-switch-option--active{color:#fff}.lang-switch-thumb{position:absolute;top:2px;left:2px;width:calc(50% - 2px);height:calc(100% - 4px);border-radius:999px;background:var(--accent);transition:transform .4s cubic-bezier(.68,-.4,.27,1.3);z-index:1;box-shadow:0 1px 6px #38bdf859}.sidebar-bio{padding-bottom:var(--sp-3);border-bottom:1px solid var(--border);margin-bottom:var(--sp-3);flex-shrink:0}.sidebar-bio-text{font-family:var(--ff-body);font-size:10.5px;color:var(--text-1);line-height:1.55;margin-bottom:var(--sp-2)}.sidebar-quickinfo{display:flex;flex-direction:column;gap:4px}.sidebar-qi-row{display:flex;align-items:flex-start;gap:6px;font-family:var(--ff-nav);font-size:10px;color:var(--text-2);line-height:1.45}.sidebar-qi-icon{flex-shrink:0;font-size:11px;line-height:1.45}.sidebar-qi-row a{color:var(--accent);text-decoration:none}.sidebar-qi-row a:hover{text-decoration:underline}.sidebar-nav{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;margin-bottom:var(--sp-4)}.sidebar-nav-item{display:flex;align-items:center;gap:10px;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-1);background:transparent;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;transition:all .2s var(--ease);font-family:var(--ff-nav);text-align:left;width:100%}.sidebar-nav-item:hover{color:var(--text-0);background:var(--bg-hover)}.sidebar-nav-item.active{color:var(--accent);background:var(--accent-bg);border-color:var(--border-active);font-weight:var(--fw-semibold)}.nav-icon{width:18px;text-align:center;font-size:var(--fs-body);flex-shrink:0}.nav-badge{margin-left:auto;font-size:var(--fs-2xs);padding:1px 7px;background:var(--accent-bg);color:var(--accent);border-radius:var(--r-full);font-weight:var(--fw-semibold)}.sidebar-footer{border-top:1px solid var(--border);padding-top:var(--sp-3);flex-shrink:0}.sidebar-socials{display:flex;justify-content:center;gap:6px;margin-bottom:var(--sp-3)}.social-btn{width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--border);background:transparent;display:flex;align-items:center;justify-content:center;color:var(--text-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:pointer;transition:all .25s var(--ease);text-decoration:none;font-family:var(--ff-nav)}.social-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)}.sidebar-controls{display:flex;flex-direction:column;gap:var(--sp-2);width:100%}.theme-switch{position:relative;display:inline-flex;align-items:center;width:96px;height:32px;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;cursor:pointer;padding:0;overflow:hidden;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.theme-switch:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.theme-switch-option{position:relative;z-index:2;flex:1;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;transition:opacity .35s var(--ease);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.4}.theme-switch-option--active{opacity:1}.theme-switch-thumb{position:absolute;top:2px;left:2px;width:calc(50% - 2px);height:calc(100% - 4px);border-radius:999px;background:var(--accent);transition:transform .4s cubic-bezier(.68,-.4,.27,1.3);z-index:1;box-shadow:0 1px 6px #38bdf859}.content-area{flex:1;height:100vh;overflow-y:auto;overflow-x:hidden;padding:var(--sp-8) var(--sp-8);scroll-behavior:smooth}.content-area>.fade-in{max-width:var(--content-max);margin:0 auto}.mobile-header{display:none;position:fixed;top:0;left:0;right:0;z-index:1000;height:56px;background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:0 var(--sp-4);align-items:center;justify-content:space-between}.mobile-header-name{font-family:var(--ff-heading);font-weight:var(--fw-black);font-size:var(--fs-heading);display:flex;align-items:center;gap:var(--sp-2)}.logo-mark{width:28px;height:28px;background:var(--gradient);border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:var(--fs-2xs);color:#fff}.mobile-header-right{display:flex;align-items:center;gap:var(--sp-2)}.hamburger{display:flex;flex-direction:column;gap:4px;padding:6px;background:none;border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer}.hamburger span{display:block;width:18px;height:1.5px;background:var(--text-0);border-radius:1px;transition:all .3s var(--ease)}.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}.mobile-menu-overlay{position:fixed;inset:56px 0 0;z-index:999;background:var(--bg-glass);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);display:flex;flex-direction:column;padding:var(--sp-4);gap:2px;opacity:0;visibility:hidden;transition:all .3s var(--ease)}.mobile-menu-overlay.open{opacity:1;visibility:visible}@media(max-width:768px){.sidebar{display:none}.mobile-header{display:flex}.content-area{padding:72px var(--sp-4) var(--sp-6)}.app-layout{flex-direction:column}.page-title{font-size:var(--fs-heading)}.cta-row{gap:var(--sp-2)}.cta-row .btn{font-size:var(--fs-2xs);padding:var(--sp-1) var(--sp-2)}.stats-row{grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}.grid-2,.grid-3{grid-template-columns:1fr}.highlight-row{font-size:var(--fs-xs)}.jr-stats{flex-wrap:wrap}.jr-rail-wrap{padding:var(--sp-3) var(--sp-2)}.jr-detail{padding:var(--sp-3)}.exp-role{font-size:var(--fs-sm)}.jr-nav{gap:var(--sp-2)}.pj-li-card{flex:1 1 140px;max-width:100%}.pj-grid{grid-template-columns:1fr}.filter-bar{gap:var(--sp-1)}.filter-btn{font-size:var(--fs-2xs);padding:var(--sp-1) var(--sp-2)}.pj-card{padding:var(--sp-3)}.pj-blog-row{flex-direction:column;align-items:flex-start;gap:var(--sp-1)}.sk-panel-head{margin-bottom:var(--sp-3)}.sk-panel-icon,.sk-panel-title{font-size:var(--fs-sm)}.sk-skills{grid-template-columns:1fr;gap:var(--sp-2)}.cert-grid{grid-template-columns:1fr}.cert-card{padding:var(--sp-2);gap:var(--sp-2)}.cert-badge-img{width:36px;height:36px}.cert-badge{width:36px;height:36px;font-size:9px}.cert-name{font-size:var(--fs-xs)}.cert-verify{padding:1px var(--sp-1);font-size:9px}.edu-timeline{padding-left:var(--sp-4)}.contact-grid{grid-template-columns:1fr}}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-5);transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background-color .35s var(--ease);box-shadow:var(--shadow-card)}.card:hover{border-color:var(--border-h);box-shadow:var(--shadow-hover)}.page-header{margin-bottom:var(--sp-6)}.page-title{font-family:var(--ff-display);font-size:var(--fs-display);font-weight:var(--fw-bold);letter-spacing:-.03em;line-height:1.2;margin-bottom:var(--sp-1)}.page-subtitle{font-family:var(--ff-body);font-size:var(--fs-sm);color:var(--text-1);line-height:1.6;max-width:600px}.gradient-text{background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tag{display:inline-flex;align-items:center;font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);padding:2px 9px;border-radius:var(--r-full);background:var(--accent-bg);color:var(--accent);white-space:nowrap;transition:background-color .3s var(--ease),color .3s var(--ease)}.tag-muted{background:var(--bg-3);color:var(--text-1);font-family:var(--ff-mono);font-size:var(--fs-2xs);font-weight:var(--fw-normal);padding:2px 8px;border-radius:var(--r-sm);transition:background-color .3s var(--ease),color .3s var(--ease)}.section-label{font-family:var(--ff-nav);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin:var(--sp-8) 0 var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-display);font-weight:var(--fw-bold);font-size:var(--fs-xs);letter-spacing:.03em;padding:var(--sp-2) var(--sp-5);border:none;border-radius:var(--r-md);cursor:pointer;transition:all .25s var(--ease);text-decoration:none;line-height:1.4;position:relative}.btn-primary{background:var(--gradient);color:#fff;box-shadow:0 2px 8px var(--accent-glow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--accent-glow);color:#fff}.btn-outline{background:transparent;color:var(--text-0);border:1.5px solid var(--border-h)}.btn-outline:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 3px var(--accent-bg),0 2px 10px var(--accent-glow);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-1);padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);border:none}.btn-ghost:hover{color:var(--accent);background:var(--accent-bg);border-radius:var(--r-sm)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-4)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-4)}@media(max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}}@media(max-width:1100px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.stats-row{grid-template-columns:1fr}.cta-row{flex-direction:column}.cta-row .btn{width:100%;text-align:center}}.card-title{font-family:var(--ff-heading);font-size:var(--fs-heading);font-weight:var(--fw-bold);line-height:1.3;margin-bottom:var(--sp-3)}.card-subtitle{font-family:var(--ff-nav);font-size:var(--fs-xs);color:var(--accent);font-weight:var(--fw-semibold)}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);margin-bottom:var(--sp-4)}@media(max-width:768px){.stats-row{grid-template-columns:repeat(2,1fr);gap:var(--sp-2)}}.stat-card{display:flex;align-items:center;gap:var(--sp-3)}.stat-icon{width:36px;height:36px;border-radius:var(--r-sm);background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;font-size:var(--fs-body);flex-shrink:0}.stat-value{font-family:var(--ff-display);font-size:1.25rem;font-weight:var(--fw-bold);letter-spacing:-.02em;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}.stat-label{font-family:var(--ff-nav);font-size:var(--fs-2xs);color:var(--text-2);line-height:1.3}.bio-text{font-family:var(--ff-body);font-size:var(--fs-body);color:var(--text-1);line-height:1.7;margin-bottom:var(--sp-3)}.bio-text strong{color:var(--text-0)}.badges{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-3)}.highlight-list{display:flex;flex-direction:column;gap:var(--sp-2)}.highlight-row{display:flex;align-items:flex-start;gap:var(--sp-2);font-family:var(--ff-body);font-size:var(--fs-sm);color:var(--text-1);line-height:1.55}.highlight-row .hi{color:var(--accent);flex-shrink:0;width:18px;text-align:center}.role-item{padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.role-item:last-child{border-bottom:none}.role-name{font-family:var(--ff-heading);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1.3}.role-period{font-family:var(--ff-nav);font-size:var(--fs-2xs);color:var(--text-2)}.cta-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-5)}.jr-stats{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.jr-stat{font-family:var(--ff-mono);font-size:var(--fs-2xs);color:var(--text-2);padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--r-full)}.jr-rail-wrap{padding:var(--sp-4) var(--sp-3);margin-bottom:var(--sp-4);overflow:hidden}.jr-rail{display:flex;align-items:stretch;justify-content:space-between;position:relative;padding:56px var(--sp-3) 8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0}.jr-rail::-webkit-scrollbar{display:none}.jr-track{position:absolute;top:62px;left:var(--sp-3);right:var(--sp-3);height:3px;background:var(--bg-3);border-radius:2px;z-index:0;overflow:hidden}.jr-track-fill{height:100%;background:var(--gradient);border-radius:2px;transition:width .5s var(--ease)}.jr-node{display:flex;flex-direction:column;align-items:center;gap:0;position:relative;z-index:1;background:none;border:none;cursor:pointer;flex:1 1 0%;min-width:96px;padding:0 var(--sp-1);transition:transform .25s var(--ease)}.jr-node:hover{transform:scale(1.05)}.jr-node:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--r-sm)}.jr-year{font-family:var(--ff-mono);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-1);margin-bottom:14px;letter-spacing:.04em;background:var(--bg-card);padding:0 3px;border-radius:2px;transition:color .25s var(--ease)}.jr-node--active .jr-year{color:var(--accent)}.jr-dot{width:14px;height:14px;border-radius:50%;background:var(--jr-c, var(--accent));border:3px solid var(--bg-1);box-shadow:0 0 0 2px var(--jr-c, var(--accent));position:relative;margin-bottom:10px;flex-shrink:0;transition:all .3s var(--ease)}.jr-node--active .jr-dot{width:20px;height:20px;box-shadow:0 0 0 3px var(--jr-c, var(--accent)),0 0 20px color-mix(in srgb,var(--jr-c, var(--accent)) 35%,transparent)}.jr-dot-pulse{position:absolute;inset:-5px;border-radius:50%;background:var(--jr-c, var(--accent));opacity:.18;animation:pulse 2s infinite}.jr-role-label{font-family:var(--ff-nav);font-size:.6rem;color:var(--text-2);text-align:center;line-height:1.3;max-width:90px;word-wrap:break-word;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .25s var(--ease),font-weight .25s var(--ease)}.jr-node--active .jr-role-label{color:var(--text-0);font-weight:var(--fw-semibold)}.jr-companies{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:0;margin-top:var(--sp-4);padding:0 var(--sp-2)}.jr-co{font-family:var(--ff-nav);font-size:.6rem;text-align:center;padding:var(--sp-2) var(--sp-1) 0;border-top:2px solid;opacity:.7;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jr-detail{animation:jrSlideUp .3s var(--ease)}@keyframes jrSlideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.jr-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}.jr-meta{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--ff-nav);font-size:var(--fs-xs);color:var(--text-2);flex-wrap:wrap;margin-top:var(--sp-1)}.jr-sep{opacity:.35}.jr-type-badge{font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);padding:var(--sp-1) var(--sp-2);border:1px solid;border-radius:var(--r-full);white-space:nowrap}.jr-nav{display:flex;align-items:center;justify-content:center;gap:var(--sp-6);margin-top:var(--sp-4)}.jr-nav-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-1);border:1px solid var(--border);border-radius:50%;color:var(--text-1);font-size:var(--fs-xs);cursor:pointer;transition:all .25s var(--ease)}.jr-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--bg-2)}.jr-nav-btn:disabled{opacity:.25;cursor:default}.jr-counter{font-family:var(--ff-mono);font-size:var(--fs-sm);color:var(--text-2);min-width:48px;text-align:center}.exp-role{font-family:var(--ff-heading);font-size:var(--fs-heading);font-weight:var(--fw-bold);line-height:1.3}.exp-company{font-family:var(--ff-nav);font-size:var(--fs-sm);color:var(--accent);font-weight:var(--fw-semibold)}.exp-highlights{padding:0;margin:var(--sp-3) 0;list-style:none}.exp-highlights li{position:relative;padding-left:var(--sp-4);font-size:var(--fs-sm);color:var(--text-1);line-height:1.65;margin-bottom:var(--sp-1)}.exp-highlights li:before{content:"▹";position:absolute;left:0;color:var(--accent);font-size:var(--fs-sm)}.exp-tags{display:flex;flex-wrap:wrap;gap:var(--sp-1)}@media(max-width:640px){.jr-rail{padding:36px var(--sp-2) 6px}.jr-track{top:38px}.jr-node{min-width:48px}.jr-role-label{display:none}.jr-year{font-size:.6rem;margin-bottom:6px}.jr-dot{width:10px;height:10px;border-width:2px;margin-bottom:6px}.jr-node--active .jr-dot{width:14px;height:14px}.jr-co{font-size:.55rem}.jr-detail-head{flex-direction:column}.jr-rail-wrap{padding:var(--sp-3) var(--sp-2)}}.pj-section-label{font-family:var(--ff-heading);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);margin-bottom:var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}.pj-li-section{margin-bottom:var(--sp-5)}.pj-li-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:10px;font-weight:900;color:#fff;background:#0a66c2;border-radius:3px;line-height:1}.pj-li-scroll{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.pj-li-card{display:flex;flex-direction:column;gap:3px;flex:1 1 170px;max-width:220px;padding:var(--sp-2) var(--sp-3);background:var(--bg-card);border:1px solid var(--border);border-left:3px solid #0A66C2;border-radius:var(--r-md);text-decoration:none;transition:border-color .2s,box-shadow .2s}.pj-li-card:hover{border-color:#0a66c2;box-shadow:var(--shadow-sm)}.pj-li-tag{font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:#0a66c2;text-transform:uppercase;letter-spacing:.04em}.pj-li-title{font-family:var(--ff-body);font-size:var(--fs-2xs);color:var(--text-0);font-weight:var(--fw-medium);line-height:1.35}.pj-li-date{font-family:var(--ff-mono);font-size:var(--fs-2xs);color:var(--text-2)}.filter-bar{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-4)}.filter-btn{padding:var(--sp-1) var(--sp-3);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);font-family:var(--ff-nav);background:transparent;color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-full);cursor:pointer;transition:all .2s;line-height:1.6}.filter-btn:hover,.filter-btn.active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent)}.pj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:var(--sp-3)}.pj-card{display:flex;flex-direction:column;padding:var(--sp-3) var(--sp-4);border-top:2px solid transparent}.pj-card[data-cat=platform]{border-top-color:var(--cat-k8s)}.pj-card[data-cat=devops]{border-top-color:var(--cat-cloud)}.pj-card[data-cat=ai]{border-top-color:var(--cat-ai)}.pj-card[data-cat=oss]{border-top-color:var(--cat-oss)}.pj-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-1)}.pj-card-top-r{display:flex;align-items:center;gap:var(--sp-2)}.pj-cat{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--fw-bold)}.pj-feat{color:var(--accent);font-size:var(--fs-2xs)}.pj-date{font-family:var(--ff-mono);font-size:var(--fs-2xs);color:var(--text-2);white-space:nowrap}.pj-title{font-family:var(--ff-heading);font-size:var(--fs-sm);font-weight:var(--fw-bold);line-height:1.3;margin-bottom:var(--sp-1)}.pj-desc{font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-1);line-height:1.55;margin-bottom:var(--sp-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pj-hl{padding:0;margin:0 0 var(--sp-2);list-style:none}.pj-hl li{position:relative;padding-left:var(--sp-3);font-size:var(--fs-xs);color:var(--text-1);line-height:1.55;margin-bottom:2px}.pj-hl li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-size:var(--fs-2xs)}.pj-tech{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:var(--sp-2);margin-top:auto}.pj-foot{display:flex;justify-content:space-between;align-items:center;padding-top:var(--sp-2);border-top:1px solid var(--border)}.pj-links{display:flex;gap:var(--sp-2);align-items:center}.pj-link{font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-2);text-decoration:none;transition:color .2s}.pj-link:hover{color:var(--accent)}.pj-link--blog{color:var(--accent);background:var(--accent-bg);padding:1px var(--sp-2);border-radius:var(--r-full)}.pj-link--demo{background:var(--accent);color:var(--bg-main);padding:1px var(--sp-2);border-radius:var(--r-sm);font-weight:var(--fw-bold)}.pj-link--demo:hover{opacity:.85;color:var(--bg-main)}.pj-link--li{background:#0a66c2;color:#fff;padding:1px var(--sp-2);border-radius:var(--r-sm);font-weight:var(--fw-bold)}.pj-link--li:hover{opacity:.85;color:#fff}.exp-toggle{font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-2);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px var(--sp-2);cursor:pointer;transition:all .2s;letter-spacing:.02em}.exp-toggle:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)}.pj-private{display:inline-flex;align-items:center;gap:3px;font-family:var(--ff-nav);font-size:9px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em;color:#f59e0b;background:#f59e0b1a;border:1px solid rgba(245,158,11,.25);padding:1px 6px;border-radius:var(--r-full);white-space:nowrap}.pj-topics{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--sp-1)}.pj-topic-tag{font-family:var(--ff-nav);font-size:9px;font-weight:var(--fw-semibold);color:var(--accent);background:var(--accent-bg);padding:1px 6px;border-radius:var(--r-full);letter-spacing:.03em}.pj-video-placeholder{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);margin-top:var(--sp-2);margin-bottom:var(--sp-2);padding:var(--sp-3);border:1px dashed var(--border);border-radius:var(--r-md);background:rgba(var(--accent-rgb, 99, 102, 241),.03);color:var(--text-2);font-family:var(--ff-nav);font-size:var(--fs-2xs);cursor:default;transition:border-color .2s}.pj-video-placeholder:hover{border-color:var(--accent)}.pj-video-icon{font-size:var(--fs-sm)}.pj-blogs{margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--border)}.pj-blog-list{display:flex;flex-direction:column;gap:var(--sp-2)}.pj-blog-row{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);text-decoration:none;color:inherit;border-left:2px solid transparent;transition:border-color .2s,box-shadow .2s}.pj-blog-row:hover{border-left-color:var(--accent);box-shadow:var(--shadow-sm)}.pj-blog-title{font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-0);line-height:1.4}.pj-blog-date{font-family:var(--ff-mono);font-size:var(--fs-2xs);color:var(--text-2);white-space:nowrap;flex-shrink:0}@media(max-width:600px){.pj-li-card{flex:1 1 100%;max-width:100%}.pj-grid{grid-template-columns:1fr}.pj-blog-row{flex-direction:column;align-items:flex-start;gap:var(--sp-1)}.pj-card-top{flex-wrap:wrap;gap:var(--sp-1)}.pj-card-top-r{gap:var(--sp-1)}.pj-foot{flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.pj-links{flex-wrap:wrap}}.sk-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-4)}.sk-tab{display:inline-flex;align-items:center;gap:4px;padding:var(--sp-1) var(--sp-2);border-radius:var(--br);border:1px solid var(--border);background:transparent;color:var(--text-2);font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;transition:all .25s var(--ease)}.sk-tab:hover{border-color:var(--border-active);color:var(--text-0)}.sk-tab--active{background:var(--accent);color:#fff;border-color:var(--accent)}.sk-tab-icon{font-size:1em;line-height:1}.sk-panel{animation:fadeIn .3s var(--ease)}.sk-panel-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}.sk-panel-icon{font-size:var(--fs-heading);line-height:1}.sk-panel-title{font-family:var(--ff-heading);font-size:var(--fs-heading);font-weight:var(--fw-bold)}.sk-skills{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--sp-3)}.sk-skill-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-1)}.sk-skill-name{font-size:var(--fs-sm);color:var(--text-1)}.sk-skill-pct{font-size:var(--fs-2xs);color:var(--text-2);font-family:var(--ff-mono)}.sk-bar{height:4px;background:var(--bg-3);border-radius:2px;overflow:hidden}.sk-bar-fill{height:100%;background:var(--gradient);border-radius:2px;transition:width 1s var(--ease)}.cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3)}.cert-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--br);border:1px solid var(--border);background:var(--bg-1);transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}.cert-card:hover{border-color:var(--border-active);box-shadow:var(--shadow-md)}.cert-badge{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--ff-nav);font-weight:var(--fw-bold);font-size:var(--fs-2xs);flex-shrink:0;text-transform:uppercase;letter-spacing:.03em}.cert-badge-img{width:48px;height:48px;border-radius:6px;object-fit:contain;flex-shrink:0;transition:transform .2s}.cert-card:hover .cert-badge-img{transform:scale(1.08)}.cert-card--expired .cert-badge-img{filter:grayscale(.5);opacity:.7}.cert-body{flex:1;min-width:0}.cert-name{font-family:var(--ff-heading);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1.4}.cert-name a{color:var(--text-0)}.cert-name a:hover{color:var(--accent)}.cert-issuer{font-family:var(--ff-nav);font-size:var(--fs-xs);color:var(--text-2)}.cert-verify{font-family:var(--ff-nav);font-size:var(--fs-2xs);color:var(--accent);text-decoration:none;white-space:nowrap;padding:var(--sp-1) var(--sp-2);border:1px solid var(--accent);border-radius:var(--br);transition:background .2s var(--ease),color .2s var(--ease)}.cert-verify:hover{background:var(--accent);color:#fff}.cert-tier-group{margin-bottom:var(--sp-4)}.cert-tier-label{font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);margin-bottom:var(--sp-2)}.cert-credly-link{font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--accent);text-decoration:none;margin-left:var(--sp-2)}.cert-credly-link:hover{text-decoration:underline}.cert-status{display:inline-block;font-family:var(--ff-nav);font-size:9px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;padding:1px 6px;border-radius:var(--r-full);margin-top:2px}.cert-status--expired{color:#ef4444;background:#ef44441a;border:1px solid rgba(239,68,68,.2)}.cert-status--active{color:#22c55e;background:#22c55e1a;border:1px solid rgba(34,197,94,.2)}.cert-card--expired{opacity:.7}.cert-card--expired:hover{opacity:1}.cert-date{color:var(--text-2);font-size:var(--fs-2xs)}.edu-timeline{display:flex;flex-direction:column;gap:var(--sp-3);position:relative;padding-left:var(--sp-5)}.edu-timeline:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--border);border-radius:1px}.edu-item{position:relative;display:flex;flex-direction:column;gap:var(--sp-1)}.edu-dot{position:absolute;left:calc(-1 * var(--sp-5) + 2px);top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-0);z-index:2}.edu-degree{font-family:var(--ff-heading);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.edu-school{font-family:var(--ff-nav);font-size:var(--fs-xs);color:var(--accent)}.edu-meta{font-family:var(--ff-nav);font-size:var(--fs-xs);color:var(--text-2)}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--sp-5)}@media(max-width:768px){.contact-grid{grid-template-columns:1fr}}@media(max-width:480px){.contact-info,.contact-form{padding:var(--sp-3)}.contact-socials{flex-wrap:wrap;gap:var(--sp-2)}.submit-btn{width:100%}}.contact-info h3,.contact-form h3{font-family:var(--ff-heading);font-size:var(--fs-heading);font-weight:var(--fw-bold);margin-bottom:var(--sp-5)}.contact-row{display:flex;gap:var(--sp-3);align-items:center;margin-bottom:var(--sp-4)}.contact-icon{width:36px;height:36px;border-radius:var(--r-sm);background:var(--accent-bg);display:flex;align-items:center;justify-content:center;font-size:var(--fs-body);flex-shrink:0}.contact-label{font-family:var(--ff-nav);font-size:var(--fs-xs);color:var(--text-2);margin-bottom:1px}.contact-value{font-family:var(--ff-body);font-size:var(--fs-sm);color:var(--text-0)}a.contact-value:hover{color:var(--accent)}.contact-hr{border:none;border-top:1px solid var(--border);margin:var(--sp-4) 0}.contact-socials{display:flex;gap:var(--sp-2)}.contact-social-btn{padding:var(--sp-2) var(--sp-4);font-family:var(--ff-nav);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-1);border:1px solid var(--border);border-radius:var(--r-sm);transition:all .25s var(--ease)}.contact-social-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)}.contact-form{display:flex;flex-direction:column}.form-label{display:flex;flex-direction:column;gap:var(--sp-1);font-family:var(--ff-nav);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-1);margin-bottom:var(--sp-3)}.form-input{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-0);font-family:var(--ff-body);font-size:var(--fs-sm);outline:none;transition:border-color .25s var(--ease),background-color .35s var(--ease)}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}textarea.form-input{resize:vertical;min-height:90px}.submit-btn{width:100%;padding:var(--sp-3) var(--sp-5);font-family:var(--ff-nav);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:#fff;background:var(--gradient);border:none;border-radius:var(--r-sm);cursor:pointer;transition:all .2s var(--ease);margin-top:var(--sp-2)}.submit-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.form-note{font-size:var(--fs-xs);color:var(--text-2);text-align:center;margin-top:var(--sp-2)}.learn-hero{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);padding:var(--sp-6);margin-bottom:var(--sp-8);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg)}.learn-hero-title{font-family:var(--ff-heading);font-size:clamp(1.4rem,3vw,1.75rem);font-weight:var(--fw-bold);line-height:1.25;margin-bottom:var(--sp-2)}.learn-hero-sub{font-family:var(--ff-body);font-size:var(--fs-sm);color:var(--text-1);line-height:1.6;max-width:540px}.learn-hero-stats{display:flex;gap:var(--sp-6);flex-shrink:0}.learn-stat{text-align:center}.learn-stat-num{display:block;font-family:var(--ff-heading);font-size:1.75rem;font-weight:var(--fw-bold);color:var(--accent);line-height:1;margin-bottom:2px}.learn-stat-label{font-family:var(--ff-nav);font-size:var(--fs-2xs);color:var(--text-2);text-transform:uppercase;letter-spacing:.5px}.learn-section{margin-bottom:var(--sp-8)}.learn-section-bar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4);background:var(--bg-2);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--r-md)}.learn-section-icon{font-size:1.4rem;line-height:1;flex-shrink:0}.learn-section-meta{flex:1;min-width:0}.learn-section-title{font-family:var(--ff-heading);font-size:var(--fs-heading);font-weight:var(--fw-bold);line-height:1.3}.learn-section-desc{font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-1);line-height:1.5;margin-top:2px}.learn-section-count{font-family:var(--ff-nav);font-size:var(--fs-2xs);color:var(--text-2);white-space:nowrap;background:var(--bg-3);padding:3px 10px;border-radius:var(--r-full);border:1px solid var(--border)}.learn-courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-4)}.learn-course-card{display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:inherit;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.learn-course-card:hover{transform:translateY(-3px);border-color:var(--border-active);box-shadow:0 8px 24px #00000040;color:inherit;text-decoration:none}.learn-course-accent{height:4px;width:100%}.learn-course-body{padding:var(--sp-4) var(--sp-5);display:flex;flex-direction:column;flex:1}.learn-type-badge{font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-bold);padding:2px 10px;border-radius:var(--r-full);display:inline-flex;align-items:center;gap:4px;width:fit-content;margin-bottom:var(--sp-3)}.learn-type-badge--tracker{background:#326ce51a;color:#60a5fa;border:1px solid rgba(50,108,229,.25)}.learn-type-badge--notes{background:var(--accent-bg);color:var(--accent);border:1px solid var(--border-active)}.learn-type-badge--lab{background:#4ade801a;color:#4ade80;border:1px solid rgba(74,222,128,.25)}.learn-course-title{font-family:var(--ff-heading);font-size:var(--fs-base);font-weight:var(--fw-bold);line-height:1.35;margin-bottom:var(--sp-2)}.learn-course-desc{font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-1);line-height:1.6;margin-bottom:var(--sp-3);flex:1}.learn-course-meta{font-family:var(--ff-nav);font-size:var(--fs-2xs);color:var(--accent);margin-bottom:var(--sp-3);letter-spacing:.2px}.learn-course-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--sp-4)}.learn-course-tag{font-family:var(--ff-nav);font-size:var(--fs-2xs);padding:2px 10px;border-radius:var(--r-full);background:var(--bg-3);color:var(--text-2);border:1px solid var(--border)}.learn-course-cta{padding-top:var(--sp-3);border-top:1px solid var(--border);margin-top:auto}.learn-course-btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-nav);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--accent);transition:gap .2s var(--ease)}.learn-course-card:hover .learn-course-btn{gap:10px}.learn-tbd{font-family:var(--ff-body);font-size:var(--fs-sm);color:var(--text-2);font-style:italic;padding:var(--sp-3) var(--sp-4)}@media(max-width:768px){.learn-hero{flex-direction:column;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-4)}.learn-hero-stats{gap:var(--sp-4)}.learn-courses{grid-template-columns:1fr}.learn-section-bar{flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.learn-section-count{align-self:flex-start}}.oss-hero{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);padding:var(--sp-6);margin-bottom:var(--sp-8);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg)}.oss-hero-title{font-family:var(--ff-heading);font-size:clamp(1.4rem,3vw,1.75rem);font-weight:var(--fw-bold);line-height:1.25;margin-bottom:var(--sp-2)}.oss-hero-sub{font-family:var(--ff-body);font-size:var(--fs-sm);color:var(--text-1);line-height:1.6;max-width:580px}.oss-hero-stats{display:flex;gap:var(--sp-6);flex-shrink:0}.oss-stat{text-align:center}.oss-stat-num{display:block;font-family:var(--ff-heading);font-size:1.75rem;font-weight:var(--fw-bold);color:var(--accent);line-height:1;margin-bottom:2px}.oss-stat-label{font-family:var(--ff-nav);font-size:var(--fs-2xs);color:var(--text-2);text-transform:uppercase;letter-spacing:.5px}.oss-tool{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6);margin-bottom:var(--sp-6)}.oss-tool-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4)}.oss-tool-identity{display:flex;align-items:center;gap:var(--sp-3)}.oss-tool-icon{font-size:2rem;line-height:1}.oss-tool-name{font-family:var(--ff-heading);font-size:clamp(1.2rem,2.5vw,1.5rem);font-weight:var(--fw-bold);line-height:1.2;color:var(--tool-color, var(--accent))}.oss-tool-tagline{font-family:var(--ff-body);font-size:var(--fs-sm);color:var(--text-1);line-height:1.4;margin-top:2px}.oss-tool-meta-row{display:flex;gap:var(--sp-2);flex-shrink:0;align-items:center}.oss-tool-version,.oss-tool-lang,.oss-tool-lic{font-family:var(--ff-mono);font-size:var(--fs-2xs);padding:2px 10px;border-radius:var(--r-full);background:var(--bg-3);color:var(--text-2);border:1px solid var(--border)}.oss-badges{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-5)}.oss-badges a{display:inline-flex}.oss-badges img{height:20px;border-radius:3px}.oss-sections-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);margin-bottom:var(--sp-5)}.oss-info-block{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4)}.oss-info-label{font-family:var(--ff-nav);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.5px;color:var(--tool-color, var(--accent));margin-bottom:var(--sp-2)}.oss-info-text{font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-1);line-height:1.65}.oss-expand-toggle{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-nav);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--tool-color, var(--accent));background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-4);cursor:pointer;margin-bottom:var(--sp-4);transition:border-color .2s var(--ease),background .2s var(--ease)}.oss-expand-toggle:hover{border-color:var(--border-active);background:var(--bg-2)}.oss-expandable{animation:fadeIn .3s var(--ease) both}.oss-section-heading{font-family:var(--ff-heading);font-size:var(--fs-heading);font-weight:var(--fw-bold);margin-bottom:var(--sp-3)}.oss-features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-5)}.oss-feature-card{padding:var(--sp-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);transition:border-color .2s var(--ease)}.oss-feature-card:hover{border-color:var(--border-active)}.oss-feature-icon{font-size:1.25rem;display:block;margin-bottom:var(--sp-2)}.oss-feature-title{font-family:var(--ff-heading);font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-bottom:var(--sp-1);line-height:1.3}.oss-feature-desc{font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-1);line-height:1.55}.oss-usecases{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-5)}.oss-usecase-item{display:flex;align-items:baseline;gap:var(--sp-2);font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-1);line-height:1.5}.oss-usecase-bullet{color:var(--tool-color, var(--accent));flex-shrink:0}.oss-tech-row{margin-bottom:var(--sp-4)}.oss-tech-tags{display:flex;flex-wrap:wrap;gap:6px}.oss-tech-tag{font-family:var(--ff-mono);font-size:var(--fs-2xs);padding:2px 10px;border-radius:var(--r-full);background:var(--bg-3);color:var(--text-2);border:1px solid var(--border)}.oss-requirements{margin-bottom:var(--sp-4)}.oss-req-list{list-style:disc;padding-left:var(--sp-4);font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-1);line-height:1.7}.oss-install-section{border-top:1px solid var(--border);padding-top:var(--sp-4);margin-bottom:var(--sp-4)}.oss-install-toggle{font-family:var(--ff-nav);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--tool-color, var(--accent));background:none;border:none;cursor:pointer;padding:0;margin-bottom:var(--sp-3)}.oss-install-content{display:flex;flex-direction:column;gap:var(--sp-4)}.oss-install-method{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4)}.oss-install-title{font-family:var(--ff-heading);font-size:var(--fs-sm);font-weight:var(--fw-semibold);margin-bottom:var(--sp-2)}.oss-install-steps{list-style:decimal;padding-left:var(--sp-4);font-family:var(--ff-body);font-size:var(--fs-xs);color:var(--text-1);line-height:1.8;margin-bottom:var(--sp-3)}.oss-install-cli{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-3);overflow-x:auto}.oss-install-cli code{font-family:var(--ff-mono);font-size:var(--fs-2xs);color:var(--text-0);white-space:pre-wrap;word-break:break-all}.oss-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap}.oss-action-btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--ff-nav);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);text-decoration:none;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.oss-action-btn:hover{transform:translateY(-1px);text-decoration:none}.oss-action-btn--primary{background:var(--tool-color, var(--accent));color:#fff}.oss-action-btn--primary:hover{box-shadow:0 4px 14px #38bdf859;color:#fff}.oss-action-btn--secondary{background:var(--bg-3);color:var(--text-0);border:1px solid var(--border)}.oss-action-btn--secondary:hover{border-color:var(--border-active);color:var(--text-0)}@media(max-width:768px){.oss-hero{flex-direction:column;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-4)}.oss-hero-stats{gap:var(--sp-4)}.oss-tool{padding:var(--sp-4)}.oss-tool-header{flex-direction:column}.oss-sections-grid,.oss-features-grid{grid-template-columns:1fr}}.fade-in{animation:fadeIn .35s var(--ease) both}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stagger>*{opacity:0;animation:fadeIn .3s var(--ease) both}.stagger>*:nth-child(1){animation-delay:.03s}.stagger>*:nth-child(2){animation-delay:.06s}.stagger>*:nth-child(3){animation-delay:.09s}.stagger>*:nth-child(4){animation-delay:.12s}.stagger>*:nth-child(5){animation-delay:.15s}.stagger>*:nth-child(6){animation-delay:.18s}.stagger>*:nth-child(7){animation-delay:.21s}.stagger>*:nth-child(8){animation-delay:.24s}.stagger>*:nth-child(9){animation-delay:.27s}.stagger>*:nth-child(10){animation-delay:.3s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media print{.sidebar,.mobile-header{display:none!important}.content-area{overflow:visible;height:auto;padding:0}body{overflow:visible;height:auto}}
