:root{color-scheme:dark;--bg: #071319;--panel: #0d2028;--panel-2: #102b33;--text: #e6f7f4;--muted: #8fb3ad;--line: #1e4650;--accent: #2dd4bf;--accent-2: #38bdf8;--accent-3: #8bffda;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:radial-gradient(circle at 18% 0%,rgba(45,212,191,.18),transparent 34rem),radial-gradient(circle at 92% 24%,rgba(56,189,248,.14),transparent 30rem),linear-gradient(90deg,rgba(141,255,218,.035) 1px,transparent 1px),linear-gradient(rgba(141,255,218,.035) 1px,transparent 1px),var(--bg);background-size:auto,44px 44px,44px 44px,auto;line-height:1.6}.animated-bg{height:100vh;inset:0;opacity:.52;pointer-events:none;position:fixed;width:100vw;z-index:-1}a{color:inherit}img{max-width:100%;display:block}.site-header,.site-footer,main>section,.page-shell{width:min(1536px,calc(100% - clamp(32px,8vw,168px)));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0}.brand{font-size:clamp(1.35rem,2.4vw,2rem);font-weight:900;letter-spacing:-.03em;line-height:1;text-decoration:none}.site-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}nav,.social-links,.actions,.section-actions,.tags{display:flex;flex-wrap:wrap;gap:10px}nav a,.button{border:1px solid var(--line);border-radius:999px;color:var(--text);padding:8px 13px;text-decoration:none;background:#1b1914cc}.tags span{border:1px solid var(--line);border-radius:999px;color:var(--text);padding:8px 13px;text-decoration:none;background:#1b1914cc}.button.primary{background:var(--accent);color:#16120a;border-color:var(--accent);font-weight:800}.back-home{display:inline-flex;margin-left:auto}.button:hover,nav a:hover,.social-link:hover,.filter-button:hover{border-color:var(--accent);color:var(--accent-3)}.social-links{align-items:center}.social-link{align-items:center;background:#0d2028b8;border:1px solid var(--line);border-radius:999px;color:var(--text);display:inline-flex;gap:8px;min-height:38px;padding:8px 12px;text-decoration:none}.social-link.icon-only{justify-content:center;min-height:38px;padding:8px;width:38px}.social-icon{display:block;fill:currentColor;flex:0 0 auto;height:18px;width:18px}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:clamp(24px,4vw,54px);align-items:center;padding:54px 0 34px}.hero h1{font-size:clamp(2.6rem,8vw,6.8rem);line-height:.92;margin:0 0 22px;letter-spacing:-.07em}.hero p{color:var(--muted);font-size:1.12rem;max-width:66ch}.portrait{border:1px solid var(--line);border-radius:28px;padding:14px;background:linear-gradient(145deg,var(--panel),#061015);justify-self:center;max-width:min(420px,100%);overflow:hidden;transform:rotate(1.5deg);width:100%}.portrait img{aspect-ratio:1 / 1;border-radius:20px;height:auto;object-fit:cover;width:100%}.eyebrow{color:var(--accent-2);font-size:.82rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}section{padding:42px 0}.section-title{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:22px}.section-actions{align-items:center;justify-content:flex-end}.section-title h2,.page-shell h1{font-size:clamp(2rem,5vw,3.8rem);line-height:1;margin:0;letter-spacing:-.05em}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.focus-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card,.job,.project-card,.skill-group,.focus-card{border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#0d2028eb,#071319e0);padding:20px}.focus-card{min-height:180px;position:relative;overflow:hidden}.focus-card:after{content:"";position:absolute;inset:auto 18px 18px auto;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:radial-gradient(circle,rgba(45,212,191,.24),transparent 62%)}.focus-card h3{margin:0 0 14px;font-size:1.35rem}.focus-card p{color:var(--muted);margin:0}.job{margin-bottom:16px}.job h3,.project-card h3{margin:4px 0;font-size:1.35rem}.job p,.card p,.project-card p{color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}.project-card{grid-column:span 3;overflow:hidden;padding:0;transition:transform .16s ease,border-color .16s ease}.project-card:hover{transform:translateY(-3px);border-color:var(--accent)}.project-card>div{padding:18px}.project-card img{width:100%;aspect-ratio:16 / 9;object-fit:cover;background:var(--panel-2)}.image-open{background:transparent;border:0;color:inherit;cursor:zoom-in;display:block;font:inherit;padding:0;text-align:inherit;width:100%}.image-open:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.featured-mark{display:inline-block;color:var(--accent);font-size:.82rem;margin-bottom:12px}.card-title-row{display:flex;align-items:start;justify-content:space-between;gap:12px}.card-title-row h3{flex:1}.external-link{align-items:center;border:1px solid var(--line);border-radius:999px;color:var(--accent-2);display:inline-flex;flex:0 0 auto;font-size:.9rem;height:30px;justify-content:center;text-decoration:none;width:30px}.external-link:hover{border-color:var(--accent);color:var(--accent-3)}.small-project-card{border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#0d2028bd,#071319b8);grid-column:span 2;padding:16px;transition:transform .16s ease,border-color .16s ease}.small-project-card:hover{transform:translateY(-3px);border-color:var(--accent)}.small-project-card h3{margin:4px 0;font-size:1.08rem}.small-project-card p{color:var(--muted);margin:0 0 12px}.small-project-card>p:not(.eyebrow):not(.small-project-meta){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.small-project-card .eyebrow{margin-bottom:8px}.small-project-meta{font-size:.88rem}.compact-tags{gap:7px}.project-tags,.project-detail-tags{justify-content:flex-start}.project-tags span{background:#0d20288f;color:var(--muted);font-size:.76rem;line-height:1.1;padding:4px 8px}.compact-tags span{font-size:.72rem;padding:3px 7px}.category-badge{display:inline-block;border:1px solid rgba(56,189,248,.5);border-radius:999px;color:var(--accent-2);font-size:.78rem;font-weight:800;letter-spacing:.05em;margin-bottom:10px;padding:5px 10px;text-transform:uppercase}.skills-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.skill-group h3{margin-top:0}.skill-group ul{margin:0;padding-left:18px;color:var(--muted)}.filter-panel{border:1px solid var(--line);border-radius:24px;background:#0d20288f;display:grid;gap:16px;margin:24px 0;padding:18px}.filter-label{color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.12em;margin:0 0 8px;text-transform:uppercase}.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}.filter-bar.compact{margin:0}.filter-button{border:1px solid var(--line);border-radius:999px;color:var(--text);cursor:pointer;padding:8px 13px;background:#0d2028db;font:inherit;text-transform:capitalize}.filter-button.active{background:#2dd4bf29;border-color:var(--accent);color:var(--accent-3)}.filter-button:disabled{cursor:not-allowed;opacity:.46}.filter-button[hidden]{display:none}.skill-map{border:1px solid var(--line);border-radius:28px;background:radial-gradient(circle at 50% 50%,#2dd4bf1f,#0d202847 42%,#071319a8);cursor:grab;height:var(--skill-map-height, 780px);margin-top:18px;overflow:hidden;position:relative;touch-action:none}.skill-map:active{cursor:grabbing}.skill-map-svg{display:block;height:100%;width:100%}.skill-map-help{background:#071319c7;border:1px solid rgba(56,189,248,.32);border-radius:18px;color:var(--muted);display:grid;font-size:.78rem;gap:2px;right:14px;max-width:min(340px,calc(100% - 28px));padding:12px 14px;pointer-events:none;position:absolute;top:58px;z-index:3}.skill-map-help strong{color:var(--accent-3);font-size:.86rem}.skill-map-help[hidden]{display:none}.skill-map-controls{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;pointer-events:none;position:absolute;right:14px;top:14px;z-index:2}.skill-map-controls .map-control{background:#071319db;box-shadow:0 10px 28px #00000038;font-size:.82rem;padding:7px 11px;pointer-events:auto}.skill-map-controls .icon-control{font-weight:900;min-width:34px;padding-inline:10px}.skill-map-search{align-items:center;background:#071319db;border:1px solid rgba(56,189,248,.32);border-radius:999px;box-shadow:0 10px 28px #00000038;color:var(--muted);display:grid;font-size:.76rem;gap:8px;grid-template-columns:auto minmax(160px,240px) auto;left:14px;padding:7px 10px 7px 13px;position:absolute;top:14px;z-index:2}.skill-map-search span{color:var(--accent-2);font-weight:800}.skill-map-search input{background:transparent;border:0;color:var(--text);font:inherit;min-width:0;outline:none;width:100%}.skill-map-search input::placeholder{color:#8fb3adc2}.skill-map-search:focus-within{border-color:var(--accent)}.skill-map-search button{background:#0d2028db;border:1px solid var(--line);border-radius:999px;color:var(--muted);cursor:pointer;font:inherit;font-weight:900;height:24px;line-height:1;padding:0;width:24px}.skill-map-search button:hover{border-color:var(--accent);color:var(--accent-3)}.skill-map-search button[hidden]{display:none}.skill-map-filter-strip{align-items:center;background:#071319d1;border:1px solid rgba(56,189,248,.32);border-radius:20px;bottom:14px;display:grid;gap:10px;grid-template-columns:minmax(240px,340px);justify-items:start;max-width:min(380px,calc(100% - 28px));padding:12px 14px;position:absolute;right:14px;width:fit-content;z-index:2}.skill-map-filter-strip small{color:var(--accent-2);font-size:.76rem;font-weight:800;grid-column:1 / -1;max-width:100%}.range-control{color:var(--muted);display:grid;font-size:.78rem;gap:7px;width:100%}.range-control strong{color:var(--accent-3)}.range-control input{accent-color:var(--accent);cursor:pointer;width:100%}.skill-map-link{fill:none;pointer-events:none;stroke:#38bdf838;stroke-linecap:round;stroke-width:1.15;transition:opacity .18s ease,stroke .18s ease,stroke-width .18s ease}.skill-map-node{transition:opacity .18s ease}.skill-map-node:focus-visible rect{outline:none;stroke:var(--accent-3);stroke-width:2}.skill-map-node.is-filterable{cursor:pointer}.skill-map-node.is-filterable:hover rect{fill:#2dd4bf33;stroke:var(--accent-3)}.skill-map-node rect{fill:#0d2028e6;stroke:#38bdf89e;stroke-width:1.2}.skill-map-node.is-root rect{fill:#0f3737;stroke:var(--accent-3);filter:drop-shadow(0 0 18px rgba(45,212,191,.28))}.skill-map-node.is-category rect{fill:#0c3a37;stroke:#8bffdac7}.skill-map-node.is-group rect{fill:#0b2d3b}.skill-map-node.is-skill rect{fill:#0d2028f0}.skill-map-node.level-experto rect{stroke:#8bffdae6;filter:drop-shadow(0 0 10px rgba(45,212,191,.22))}.skill-map-label{fill:var(--text);font-size:.78rem;font-weight:700;pointer-events:none;text-anchor:middle}.skill-map-node.is-root .skill-map-label,.skill-map-node.is-category .skill-map-label{font-size:.86rem;font-weight:800}.skill-map-node.is-group .skill-map-label{fill:var(--accent-2);font-size:.76rem}.skill-map-node.is-skill .skill-map-label{fill:var(--muted);font-size:.68rem}.skill-map.is-dimmed .skill-map-node,.skill-map.is-dimmed .skill-map-link{opacity:.18}.skill-map.is-dimmed .skill-map-node.is-active,.skill-map.is-dimmed .skill-map-link.is-active{opacity:1}.skill-map-link.is-active{stroke:var(--accent-3);stroke-width:2.1}.skill-map-tooltip{background:#071319f0;border:1px solid rgba(139,255,218,.54);border-radius:14px;box-shadow:0 16px 38px #00000057;color:var(--text);display:grid;font-size:.82rem;gap:2px;max-width:220px;padding:10px 12px;pointer-events:none;position:absolute;transform:translate(var(--tooltip-x, 14px),var(--tooltip-y, 14px));z-index:3}.skill-map-tooltip strong{color:var(--accent-3);line-height:1.2}.skill-map-tooltip span{color:var(--muted);line-height:1.35}.skill-map-tooltip[hidden]{display:none}.skill-chip{border:1px solid var(--line);border-radius:999px;background:#0d2028c7;color:var(--text);padding:.36em .68em;line-height:1.1}.skill-chip[data-weight="1"]{font-size:.82rem;opacity:.72}.skill-chip[data-weight="2"]{font-size:.94rem}.skill-chip[data-weight="3"]{font-size:1.08rem}.skill-chip[data-weight="4"]{font-size:1.22rem}.skill-chip[data-weight="5"]{font-size:1.38rem}.skill-chip.level-experto{border-color:#2dd4bfe6;color:var(--accent-3)}.skill-chip.level-avanzado{border-color:#38bdf8cc}.skill-chip.level-intermedio{border-color:#8fb3ada6;color:var(--muted)}.skill-chip.level-básico,.skill-chip.level-basico{opacity:.65}.filter-item[hidden]{display:none}.page-shell{padding:48px 0}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-heading>div{flex:1 1 auto;min-width:0}.page-heading .prose{margin-bottom:0}.prose{max-width:78ch;color:var(--muted)}.prose h2,.prose h3{color:var(--text)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}.gallery img{border-radius:18px;border:1px solid var(--line);aspect-ratio:4 / 3;object-fit:cover}.image-modal{background:#071319f5;border:1px solid var(--line);border-radius:22px;max-width:min(1100px,calc(100vw - 32px));padding:18px}.image-modal::backdrop{background:#000000c7}.image-modal img{max-height:calc(100vh - 120px);object-fit:contain;width:100%}.modal-close{background:#0d2028db;border:1px solid var(--line);border-radius:999px;color:var(--text);cursor:pointer;font:inherit;line-height:1;margin:0 0 12px auto;padding:9px 12px}.modal-close:hover{border-color:var(--accent);color:var(--accent-3)}.site-footer{display:grid;gap:18px;justify-items:center;padding:38px 0 54px;color:var(--muted);border-top:1px solid var(--line);margin-top:40px;text-align:center}.site-footer p{margin:0}.footer-main{align-items:center;display:flex;gap:22px;justify-content:center}.footer-links{justify-content:center}.footer-bottom{border-top:1px solid rgba(30,70,80,.58);padding-top:16px}.footer-bottom a{color:var(--accent-2);text-decoration:none}.footer-bottom a:hover{color:var(--accent-3)}@media(max-width:780px){.site-header{align-items:center;flex-wrap:wrap}.site-header-actions{justify-content:flex-start;margin-left:0;width:100%}.site-header nav{justify-content:flex-start;width:100%}.page-heading{flex-wrap:wrap;gap:12px}.section-title{align-items:flex-end;flex-wrap:wrap}.back-home{flex:0 0 auto;margin-left:0}.section-title>:last-child,.section-actions{justify-content:flex-end;margin-left:auto}.hero,.grid,.focus-grid,.skills-list,.gallery{grid-template-columns:1fr}.hero{padding:40px 0 28px}.animated-bg{opacity:.38}.page-shell{padding:36px 0}.skill-map{height:var(--skill-map-height, 680px)}.skill-map-help,.skill-map-controls,.skill-map-search,.skill-map-filter-strip{position:absolute}.skill-map-help{font-size:.72rem;max-width:calc(100% - 20px);right:10px;top:90px}.skill-map-controls{justify-content:flex-end;left:10px;right:10px;top:58px}.skill-map-search{grid-template-columns:auto minmax(0,1fr) auto;left:10px;max-width:calc(100% - 20px);right:10px;top:10px}.skill-map-filter-strip{bottom:10px;gap:10px;grid-template-columns:1fr;max-width:calc(100% - 20px);right:10px;width:auto}.project-card,.small-project-card{grid-column:1 / -1}.project-tags{justify-content:flex-start}.portrait{justify-self:center;max-width:min(420px,100%);transform:rotate(1.5deg)}.footer-main{display:grid;justify-items:center}.footer-links{justify-content:center}}@media(prefers-reduced-motion:reduce){.animated-bg{display:none}.skill-map-link,.skill-map-node{transition:none}}
