@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.ws-inicio{display:grid;height:100%;gap:var(--gap);grid-template-columns:minmax(0,1fr) clamp(320px,28vw,430px);grid-template-rows:repeat(2,minmax(0,1fr))}.ws-inicio>dbj-pane:first-child{grid-column:1;grid-row:1 / span 2}.ws-inicio .recruiter-home{width:min(100%,var(--content-wide));margin:0 auto}.ws-inicio .hero{padding:var(--space-3) var(--space-1) var(--section-space)}.ws-inicio :is(.terminal-label,.section-index){margin:0;color:var(--dimmer);font-size:12px;letter-spacing:.05em}.ws-inicio .terminal-label{margin-bottom:11px}.ws-inicio .hero h1{margin:0;color:var(--fg-hi);font-size:clamp(32px,3vw,46px);line-height:1.08;font-weight:600;letter-spacing:-.035em}.ws-inicio .hero-role{margin:7px 0 0;color:var(--accent);font-size:clamp(17px,1.45vw,21px);line-height:1.35}.ws-inicio .hero-tagline{max-width:var(--content-reading);margin:var(--space-5) 0 0;color:var(--fg-hi);font-size:clamp(17px,1.25vw,20px);line-height:1.55}.ws-inicio .hero-location{margin:11px 0 0;color:var(--dim)}.ws-inicio .acciones{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}.ws-inicio .accion{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 13px;border:1px solid var(--line-hi);border-radius:var(--radius-sm);color:var(--fg);background:#101415;text-decoration:none;transition:color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.ws-inicio .accion.principal{border-color:var(--accent);color:var(--bg);background:var(--accent);font-weight:600}.ws-inicio .accion.secundaria{border-color:var(--accent-line);color:var(--accent);background:transparent}.ws-inicio .accion.enlace{padding-inline:10px;border-color:transparent;background:transparent}.ws-inicio .accion:hover{border-color:var(--accent-line);color:var(--fg-hi);background:#151a1b}.ws-inicio .accion.principal:hover{border-color:#78ee9e;color:var(--bg);background:#78ee9e}.ws-inicio .accion.enlace:hover{text-decoration:underline;text-underline-offset:.24em}.ws-inicio .accion:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #00000047}.ws-inicio .home-section{padding:var(--section-space) var(--space-1);border-top:1px solid var(--line)}.ws-inicio .section-heading{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4)}.ws-inicio .section-heading h2{margin:0;color:var(--fg-hi);font-size:19px;line-height:1.25;font-weight:550}.ws-inicio .section-index{color:var(--accent)}.ws-inicio .split-heading{justify-content:space-between;align-items:end}.ws-inicio .split-heading>div{display:flex;align-items:baseline;gap:13px}.ws-inicio :is(.section-link,.project-link){color:var(--accent);text-underline-offset:.2em}.ws-inicio .evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.ws-inicio .evidence-item{padding:var(--space-4);border:1px solid var(--line);border-left:2px solid var(--accent-line);border-radius:var(--radius-sm);background:#0a0c0d;transition:border-color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.ws-inicio .evidence-item:hover{border-color:var(--line-hi);border-left-color:var(--accent);background:#0d1011}.ws-inicio :is(.evidence-item h3,.project-card h3,.education h3){margin:0;color:var(--fg-hi);font-size:15px;line-height:1.35;font-weight:550}.ws-inicio .evidence-item p{margin:8px 0 0;color:var(--dim)}.ws-inicio .experience-entry{padding-left:16px;border-left:2px solid var(--accent-line)}.ws-inicio .experience-header{display:flex;justify-content:space-between;gap:22px}.ws-inicio .experience-header h3{margin:0;color:var(--fg-hi);font-size:18px;font-weight:550}.ws-inicio .experience-header p{margin:2px 0 0;color:var(--accent)}.ws-inicio .experience-header .experience-period{margin:0;color:var(--dim);white-space:nowrap}.ws-inicio .experience-entry ul{margin:18px 0 0;padding:0;list-style:none}.ws-inicio .experience-entry li{position:relative;margin-top:9px;padding-left:18px}.ws-inicio .experience-entry li:before{content:"\203a";position:absolute;left:0;color:var(--accent)}.ws-inicio .project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:var(--space-3)}.ws-inicio .project-card{display:flex;flex-direction:column;min-height:216px;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:#0a0c0d;transition:border-color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease)}.ws-inicio .project-card:hover,.ws-inicio .project-card:focus-within{border-color:var(--line-hi);background:#0d1011;transform:translateY(-1px);box-shadow:0 6px 18px #0000002e}.ws-inicio .project-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:13px;color:var(--dimmer);font-size:12px}.ws-inicio .project-status{padding:3px 7px;border:1px solid var(--accent-line);border-radius:999px;color:var(--accent);background:var(--accent-soft);text-align:right}.ws-inicio .project-card p{margin:10px 0 0}.ws-inicio .project-card .project-stack{color:var(--dim);font-size:12px}.ws-inicio .project-link{align-self:flex-start;margin-top:auto;padding-top:17px}.ws-inicio .skill-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:0 24px;margin:0}.ws-inicio .skill-group{padding:12px 0;border-top:1px solid #14191a}.ws-inicio .skill-group dt{color:var(--accent)}.ws-inicio .skill-group dd{margin:4px 0 0;color:var(--dim)}.ws-inicio .teaser-copy{max-width:760px;color:var(--fg-hi);font-size:16px}.ws-inicio :is(.teaser-stack,.education-status){color:var(--dim)}.ws-inicio .homelab-teaser .section-link{display:inline-block;margin-top:5px}.ws-inicio .education h3{font-size:16px}.ws-inicio .education p{margin-top:5px}.ws-inicio .contact{margin-bottom:4px;padding:25px 22px;border:1px solid var(--accent-line);border-radius:var(--radius);background:var(--accent-soft)}.ws-inicio .contact .section-heading{margin-bottom:12px}.ws-inicio .contact>p{max-width:720px}.ws-inicio .contact-actions{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:15px}.ws-inicio .terminal-alternative{margin-top:13px;color:var(--dim);font-size:12px}.ws-inicio .terminal-alternative code{color:var(--accent);font:inherit}.ws-inicio .technical-identity pre{font-size:clamp(8px,.72vw,11px);line-height:1.25}.ws-inicio .technical-identity .kv{grid-template-columns:70px minmax(0,1fr);gap:5px 10px}.ws-inicio .technical-identity .kv dd{overflow-wrap:anywhere}.ws-inicio .swatch{display:flex;margin-top:15px}.ws-inicio .swatch i{display:block;width:21px;height:9px}.ws-inicio .terminal-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.ws-inicio .hist{display:grid;grid-template-columns:60px minmax(0,1fr);gap:4px 10px;margin:0}.ws-inicio .hist dt{color:var(--dimmer)}.ws-inicio .hist dd{margin:0;color:var(--fg);overflow-wrap:anywhere}.ws-inicio .hist dd em{font-style:normal;color:var(--dimmer)}@media(min-width:821px)and (max-height:820px){.ws-inicio{grid-template-rows:minmax(0,1.15fr) minmax(0,.85fr)}.ws-inicio .terminal-section{margin-top:12px;padding-top:12px}.ws-inicio .technical-identity .swatch{margin-top:10px}}@media(max-width:1100px)and (min-width:821px){.ws-inicio{grid-template-columns:minmax(0,1fr) minmax(290px,34vw)}.ws-inicio :is(.evidence-grid,.project-grid){grid-template-columns:1fr}}@media(max-width:820px){.ws-inicio{display:block;height:auto}.ws-inicio .recruiter-home{width:100%}.ws-inicio .hero{padding:4px 0 26px}.ws-inicio .hero h1{font-size:32px}.ws-inicio .hero-role{font-size:17px}.ws-inicio .hero-tagline{margin-top:19px;font-size:17px;line-height:1.55}.ws-inicio .acciones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:21px}.ws-inicio .accion{min-height:44px;padding:8px 9px}.ws-inicio .accion.enlace{font-size:14px}.ws-inicio .accion.contacto{grid-column:1 / -1}.ws-inicio .home-section{padding:27px 0}.ws-inicio .section-heading{margin-bottom:15px}.ws-inicio :is(.evidence-grid,.project-grid,.skill-groups){grid-template-columns:minmax(0,1fr)}.ws-inicio .evidence-item{padding:14px}.ws-inicio .experience-entry{padding-left:13px}.ws-inicio .experience-header{display:block}.ws-inicio .experience-header .experience-period{margin-top:8px;white-space:normal}.ws-inicio .experience-entry li{margin-top:12px}.ws-inicio .project-card{min-height:0}.ws-inicio .project-link{margin-top:7px}.ws-inicio .project-meta{font-size:12px}.ws-inicio .split-heading{align-items:end}.ws-inicio .split-heading .section-link{display:inline-flex;align-items:center;min-height:44px;font-size:13px}.ws-inicio .contact{padding:22px 17px}.ws-inicio .contact-actions a{display:inline-flex;align-items:center;min-height:44px}.ws-inicio .hist{grid-template-columns:58px minmax(0,1fr)}.ws-inicio .technical-identity pre{font-size:9px}}@media(max-width:360px){.ws-inicio .split-heading{display:block}.ws-inicio .split-heading .section-link{display:inline-block;margin-top:8px}}.ws-proyectos{display:block;height:100%}.ws-proyectos>dbj-pane{height:100%}.ws-proyectos .project-workspace{display:grid;grid-template-columns:clamp(300px,25vw,360px) minmax(0,1fr);gap:0;width:min(100%,1540px);min-height:100%;margin:0 auto}.ws-proyectos .project-browser{position:sticky;top:0;align-self:start;padding:var(--space-3) var(--space-5) var(--space-5) var(--space-1);border-right:1px solid var(--line)}.ws-proyectos .project-intro{padding-bottom:var(--space-5);border-bottom:1px solid var(--line)}.ws-proyectos .terminal-label{margin:0 0 11px;color:var(--dimmer);font-size:12px;letter-spacing:.04em}.ws-proyectos .project-intro h1{margin:0;color:var(--fg-hi);font-size:clamp(27px,2.4vw,36px);line-height:1.12;letter-spacing:-.035em}.ws-proyectos .project-intro>p:last-child{margin:13px 0 0;color:var(--dim)}.ws-proyectos .selector-title{margin:var(--space-5) 0 var(--space-3);color:var(--fg-hi);font-size:14px;font-weight:550}.ws-proyectos .project-list{display:grid;gap:var(--space-2)}.ws-proyectos .project-option{width:100%;min-height:92px;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-left:2px solid transparent;border-radius:var(--radius-sm);text-align:left;background:#090b0c;color:var(--fg);font:inherit;cursor:pointer;transition:color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.ws-proyectos .project-option:hover{border-color:var(--line-hi);background:#0e1213;transform:translate(1px)}.ws-proyectos .project-option:active{transform:translate(1px) scale(.995)}.ws-proyectos .project-option.selected{border-color:var(--accent-line);border-left-color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 #4ade801f}.ws-proyectos .option-topline{display:flex;align-items:start;justify-content:space-between;gap:12px}.ws-proyectos .option-topline strong{color:var(--fg-hi);font-size:14px;font-weight:550;overflow-wrap:anywhere}.ws-proyectos :is(.project-status,.status-badge){flex:0 0 auto;padding:4px 8px;border:1px solid var(--accent-line);border-radius:999px;color:var(--accent);background:var(--accent-soft);font-size:12px;line-height:1.35;text-align:right}.ws-proyectos :is(.project-type,.project-period){display:block;margin-top:7px;color:var(--dim);font-size:12px}.ws-proyectos .project-period{margin-top:3px;color:var(--dimmer)}.ws-proyectos .browser-count{margin:15px 0 0;color:var(--dimmer);font-size:12px}.ws-proyectos .case-study{max-width:1040px;padding:var(--space-3) var(--space-5) var(--space-7) var(--space-6)}.ws-proyectos .case-hero{padding-bottom:var(--space-6)}.ws-proyectos .case-heading{display:flex;align-items:start;justify-content:space-between;gap:24px}.ws-proyectos .case-kicker{margin:0 0 6px;color:var(--accent);font-size:12px}.ws-proyectos .case-heading h2{margin:0;color:var(--fg-hi);font-size:clamp(27px,2.35vw,36px);line-height:1.12;letter-spacing:-.035em}.ws-proyectos .case-summary{max-width:var(--content-reading);margin:var(--space-4) 0 0;color:var(--fg-hi);font-size:17px;line-height:1.55}.ws-proyectos .case-section{padding:var(--space-5) 0;border-top:1px solid var(--line)}.ws-proyectos .case-section h3{margin:0 0 13px;color:var(--fg-hi);font-size:16px;line-height:1.35;font-weight:550}.ws-proyectos .case-section h3:before{content:"## ";color:var(--accent);font-weight:400}.ws-proyectos .case-section p{margin:0}.ws-proyectos .case-context dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0}.ws-proyectos .case-context dl>div{padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:#090b0c;transition:border-color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease)}.ws-proyectos .case-context dl>div:hover{border-color:var(--line-hi);background:#0d1011}.ws-proyectos .case-context dt{color:var(--dimmer);font-size:12px}.ws-proyectos .case-context dd{margin:5px 0 0;color:var(--fg-hi);overflow-wrap:anywhere}.ws-proyectos .case-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.ws-proyectos .case-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}.ws-proyectos .case-list li{position:relative;padding-left:18px}.ws-proyectos .case-list li:before{content:"\203a";position:absolute;left:0;color:var(--accent)}.ws-proyectos .result-section{border-left:2px solid var(--accent-line);padding-left:17px}.ws-proyectos .limits-section{color:var(--dim)}.ws-proyectos .stack-list{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}.ws-proyectos .stack-list li{padding:6px 9px;border:1px solid var(--line-hi);border-radius:var(--radius-sm);color:var(--fg);background:#090b0c;font-size:12px}.ws-proyectos .project-links{display:flex;flex-wrap:wrap;gap:8px 20px}.ws-proyectos .project-links a{display:inline-flex;align-items:center;min-height:42px;color:var(--accent);text-underline-offset:.2em}.ws-proyectos .project-links a:hover{color:var(--fg-hi)}@media(max-width:1100px)and (min-width:821px){.ws-proyectos .project-workspace{grid-template-columns:minmax(270px,32vw) minmax(0,1fr)}.ws-proyectos .case-context dl{grid-template-columns:minmax(0,1fr)}.ws-proyectos .case-columns{grid-template-columns:minmax(0,1fr);gap:0}}@media(min-width:821px)and (max-height:780px){.ws-proyectos .project-browser{position:static}}@media(max-width:820px){.ws-proyectos{height:auto}.ws-proyectos>dbj-pane{height:auto}.ws-proyectos .project-workspace{display:block}.ws-proyectos .project-browser{position:static;padding:4px 0 27px;border-right:0;border-bottom:1px solid var(--line)}.ws-proyectos .project-intro h1{font-size:29px}.ws-proyectos .project-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ws-proyectos .project-option{min-height:58px;padding:10px 11px}.ws-proyectos .option-topline{display:block}.ws-proyectos :is(.project-status,.project-type,.project-period){display:none}.ws-proyectos .case-study{max-width:none;padding:var(--space-6) 0 var(--space-5)}.ws-proyectos .case-heading{display:block}.ws-proyectos .status-badge{display:inline-block;margin-top:13px}.ws-proyectos .case-summary{font-size:16px}.ws-proyectos .case-context dl,.ws-proyectos .case-columns{grid-template-columns:minmax(0,1fr)}.ws-proyectos .case-context dl{gap:7px}.ws-proyectos .case-columns{gap:0}.ws-proyectos .result-section{padding-left:13px}.ws-proyectos .project-links a{min-height:44px}}.ws-homelab{display:block;height:100%}.ws-homelab>dbj-pane{height:100%}.ws-homelab .homelab-story{max-width:1200px;margin:0 auto;padding:var(--space-3) var(--space-4) var(--space-7)}.ws-homelab .homelab-hero{max-width:900px;padding:var(--space-1) 0 var(--section-space)}.ws-homelab .terminal-label{margin:0 0 12px;color:var(--dimmer);font-size:12px;letter-spacing:.04em}.ws-homelab .homelab-kicker{margin:0 0 7px;color:var(--accent);font-size:12px}.ws-homelab .homelab-hero h1{margin:0;color:var(--fg-hi);font-size:clamp(30px,3vw,46px);line-height:1.08;letter-spacing:-.045em}.ws-homelab .homelab-intro{max-width:var(--content-reading);margin:var(--space-4) 0 0;color:var(--fg-hi);font-size:18px;line-height:1.55}.ws-homelab .homelab-section{padding:var(--section-space) 0;border-top:1px solid var(--line)}.ws-homelab .section-heading{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4)}.ws-homelab .section-index{margin:0;color:var(--accent);font-size:11px}.ws-homelab .section-heading h2{margin:0;color:var(--fg-hi);font-size:19px;line-height:1.3;font-weight:550}.ws-homelab .section-lead{max-width:720px;margin:-5px 0 16px 35px;color:var(--dim)}.ws-homelab .section-note{margin-top:12px;color:var(--dimmer);font-size:12px}.ws-homelab .purpose-section{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr);gap:var(--space-7)}.ws-homelab .purpose-section .section-heading{margin:0}.ws-homelab .section-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.ws-homelab .section-copy p{margin:0}.ws-homelab .practice-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2)}.ws-homelab .practice-grid article,.ws-homelab .platform-grid article,.ws-homelab .network-grid article{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-sm);background:#090b0c;transition:border-color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease)}.ws-homelab .practice-grid article{border-top-color:var(--accent-line)}.ws-homelab :is(.practice-grid,.platform-grid,.network-grid) article:hover{border-color:var(--line-hi);background:#0d1011;transform:translateY(-1px);box-shadow:0 6px 18px #00000029}.ws-homelab :is(.practice-grid,.platform-grid,.network-grid) h3{margin:0 0 8px;color:var(--fg-hi);font-size:14px;font-weight:550}.ws-homelab :is(.practice-grid,.platform-grid,.network-grid) p:last-child{margin:0;color:var(--dim)}.ws-homelab .topology-section{display:grid;grid-template-columns:minmax(250px,.65fr) minmax(0,1.35fr);gap:var(--space-7);align-items:start}.ws-homelab .topology-context>p{max-width:430px}.ws-homelab .topology-card{min-width:0;margin:0;border:1px solid var(--line-hi);border-radius:var(--radius-sm);background:#090b0c;transition:border-color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease)}.ws-homelab .topology-card:hover{border-color:var(--accent-line);background:#0d1011}.ws-homelab .topology-command{padding:9px 13px;border-bottom:1px solid var(--line);color:var(--dim);font-size:12px}.ws-homelab .topology-command span{margin-right:7px;color:var(--accent)}.ws-homelab .topology{display:flex;flex-direction:column;padding:16px 17px;font-size:13px;line-height:1.65}.ws-homelab .topology-node{display:flex;align-items:baseline;min-width:0}.ws-homelab .topology-branch{flex:0 0 auto;white-space:pre;color:var(--line-hi)}.ws-homelab .topology-label{flex:0 0 auto;min-width:12ch}.ws-homelab .topology-note{min-width:0;color:var(--dim);overflow-wrap:anywhere}.ws-homelab .topology-card figcaption{padding:9px 13px;border-top:1px solid var(--line);color:var(--dimmer);font-size:11px}.ws-homelab .platform-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.ws-homelab .platform-name,.ws-homelab .network-label{margin:0 0 7px;color:var(--accent);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.ws-homelab .platform-grid h3{font-size:15px}.ws-homelab .network-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.ws-homelab .network-grid article:last-child{border-color:var(--accent-line);background:var(--accent-soft)}.ws-homelab .demand-section{display:grid;grid-template-columns:minmax(250px,.65fr) minmax(0,1.35fr);gap:var(--space-7);align-items:start}.ws-homelab .demand-section .section-heading{margin:0}.ws-homelab .demand-section>p{margin:0;padding:18px 20px;border-left:2px solid var(--accent);color:var(--fg-hi);background:var(--accent-soft)}.ws-homelab .skill-list,.ws-homelab .stack-list{margin:0;padding:0;list-style:none}.ws-homelab .skill-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ws-homelab .skill-list li{position:relative;padding:11px 12px 11px 29px;border-bottom:1px solid var(--line)}.ws-homelab .skill-list li:before{content:"\203a";position:absolute;left:11px;color:var(--accent)}.ws-homelab .stack-list{display:flex;flex-wrap:wrap;gap:7px}.ws-homelab .stack-list li{padding:6px 9px;border:1px solid var(--line-hi);border-radius:var(--radius-sm);background:#090b0c;font-size:12px}.ws-homelab .software-section{display:grid;grid-template-columns:minmax(280px,.65fr) minmax(0,1.35fr);gap:var(--space-7)}.ws-homelab .software-section .section-heading{margin:0}.ws-homelab .software-section>p{max-width:800px;margin:0;color:var(--fg-hi)}@media(max-width:1100px)and (min-width:821px){.ws-homelab .practice-grid,.ws-homelab .skill-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.ws-homelab{height:auto}.ws-homelab>dbj-pane{height:auto}.ws-homelab .homelab-story{max-width:none;padding:3px 0 24px}.ws-homelab .homelab-hero{padding:0 0 28px}.ws-homelab .homelab-hero h1{font-size:30px}.ws-homelab .homelab-intro{font-size:16px}.ws-homelab .homelab-section{padding:25px 0}.ws-homelab .section-heading{margin-bottom:14px}.ws-homelab .section-lead{margin:-4px 0 14px}.ws-homelab .purpose-section,.ws-homelab .topology-section,.ws-homelab .demand-section,.ws-homelab .software-section{display:block}.ws-homelab .purpose-section .section-heading,.ws-homelab .demand-section .section-heading,.ws-homelab .software-section .section-heading{margin-bottom:14px}.ws-homelab .section-copy,.ws-homelab .practice-grid,.ws-homelab .platform-grid,.ws-homelab .network-grid,.ws-homelab .skill-list{grid-template-columns:minmax(0,1fr);gap:7px}.ws-homelab .section-copy{gap:10px}.ws-homelab .topology-context{margin-bottom:17px}.ws-homelab .topology{padding:14px 12px;font-size:12px;line-height:1.65}.ws-homelab .topology-node{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start}.ws-homelab .topology-branch{grid-row:1 / span 2}.ws-homelab .topology-label,.ws-homelab .topology-note{grid-column:2;min-width:0}.ws-homelab .topology-note{line-height:1.45}.ws-homelab .demand-section>p{margin-top:0;padding:15px 16px}.ws-homelab .skill-list li{padding-top:10px;padding-bottom:10px}.ws-homelab .software-section>p{margin-top:0}}:root{--bg: #08090a;--pane: #0b0d0e;--pane-hi: #0e1112;--line: #1b2022;--line-hi: #2a3336;--fg: #c9d1cd;--fg-hi: #eef3ef;--dim: #98a49e;--dimmer: #7d8a84;--accent: #4ade80;--accent-soft: rgba(74, 222, 128, .09);--accent-line: rgba(74, 222, 128, .34);--amber: #e8b04a;--blue: #58a6ff;--red: #d16060;--mono: "JetBrains Mono", "Courier New", monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 48px;--gap: var(--space-2);--pane-pad-x: clamp(14px, 1.25vw, 20px);--pane-pad-y: clamp(14px, 1.15vw, 18px);--section-space: var(--space-6);--content-wide: 1240px;--content-reading: 780px;--radius: 6px;--radius-sm: 3px;--motion-fast: .15s;--motion-ease: ease-out}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}dbj-root{display:block;height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--mono);font-size:14px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased}::selection{background:#4ade8038;color:var(--fg-hi)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#222a2c;border-radius:3px}::-webkit-scrollbar-track{background:transparent}*{scrollbar-width:thin;scrollbar-color:#222a2c transparent}a{color:var(--accent);text-decoration-line:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.24em;transition:color var(--motion-fast) var(--motion-ease),text-decoration-color var(--motion-fast) var(--motion-ease)}a:hover{color:var(--fg-hi);text-decoration-color:currentColor}a:active{color:var(--accent)}:where(a,button){-webkit-tap-highlight-color:rgba(74,222,128,.14)}:where(a,button,input):focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 2px var(--bg)}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.workspace-heading{margin:0 0 var(--space-4)}.workspace-heading h1{margin:0;color:var(--fg-hi);font-size:18px;line-height:1.25;font-weight:500}.workspace-heading p{margin:var(--space-1) 0 0;color:var(--dim)}p{margin:0 0 10px}p:last-child{margin-bottom:0}pre{margin:0;font:inherit;white-space:pre}.ok{color:var(--accent)}.amb{color:var(--amber)}.blu{color:var(--blue)}.red{color:var(--red)}.dim{color:var(--dim)}.dimmer{color:var(--dimmer)}.hi{color:var(--fg-hi)}.cmd{color:var(--dim);margin-bottom:9px}.cmd:before{content:"$ ";color:var(--dimmer)}.cmd b{color:var(--accent);font-weight:400}.kv{display:grid;grid-template-columns:88px minmax(0,1fr);gap:3px 13px;margin:0}.kv dt{color:var(--dim)}.kv dd{margin:0;color:var(--fg)}.rule{border:0;border-top:1px solid var(--line);margin:var(--space-3) 0}.lista{display:flex;flex-direction:column}.lista-cab,.fila{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:baseline}.lista-cab{padding:0 9px 7px;color:var(--dimmer);font-size:10px;letter-spacing:.07em;border-bottom:1px solid var(--line)}.fila{width:100%;padding:9px;border:0;border-bottom:1px solid #14191a;background:none;color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)}.fila:hover{background:#101415;border-bottom-color:var(--line-hi);opacity:1}.fila.sel{background:var(--accent-soft);box-shadow:inset 2px 0 var(--accent)}.fila:focus-visible{outline:1px solid var(--accent-line);outline-offset:-1px}.fila .nm{color:var(--accent)}.fila:hover .nm{text-decoration:underline}.fila .sub{display:block;margin-top:2px;color:var(--dimmer);font-size:10px}.fila .der{color:var(--dim)}table.ls{width:100%;border-collapse:collapse}table.ls th{text-align:left;font-weight:400;color:var(--dimmer);font-size:10px;letter-spacing:.07em;padding:0 9px 7px 0;border-bottom:1px solid var(--line)}table.ls td{padding:7px 9px 7px 0;border-bottom:1px solid #14191a;vertical-align:top}table.ls tr[data-k]{cursor:pointer}table.ls tr[data-k]:hover td{background:#101415}table.ls tr.sel td{background:var(--accent-soft)}table.ls .nm{color:var(--accent)}@media(max-width:820px){html,body{height:auto;min-height:100%;overflow-x:clip}dbj-root{height:auto;min-height:100%}body{overflow-y:auto;font-size:16px}.kv{grid-template-columns:82px minmax(0,1fr)}pre{max-width:100%;overflow:hidden;font-size:11px}.lista-cab,table.ls th{font-size:12px}.fila{min-height:52px}.fila .sub{font-size:12px}}@media(max-width:360px){:root{--pane-pad-x: 12px;--pane-pad-y: 13px}}@media(max-width:400px){pre{font-size:10px}.kv{grid-template-columns:74px minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
