.dataset-list[data-astro-cid-nfg65bnn]{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.dataset-item[data-astro-cid-nfg65bnn]{border-bottom:1px solid var(--border);transition:opacity .15s ease}.dataset-row-link[data-astro-cid-nfg65bnn]{display:grid;grid-template-columns:1fr auto;column-gap:1.5rem;row-gap:.2rem;padding:.65rem 0;text-decoration:none;color:inherit;font-family:var(--sans)}.dataset-title[data-astro-cid-nfg65bnn]{font-size:.85rem;font-weight:500;color:var(--text-title);line-height:1.4;grid-column:1;grid-row:1;transition:color .15s ease,padding-left .18s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;position:relative;padding-left:0}.dataset-title[data-astro-cid-nfg65bnn]:before{content:"";position:absolute;left:0;top:15%;height:70%;width:2px;background:var(--text-sub);transform:scaleY(0);transform-origin:center;transition:transform .18s ease;border-radius:1px}.dataset-side[data-astro-cid-nfg65bnn]{grid-column:2;grid-row:1;align-self:center}.dataset-item[data-astro-cid-nfg65bnn]:hover .dataset-title[data-astro-cid-nfg65bnn]{padding-left:.9em;color:var(--text-title)}.dataset-item[data-astro-cid-nfg65bnn]:hover .dataset-title[data-astro-cid-nfg65bnn]:before{transform:scaleY(1)}.dataset-item[data-astro-cid-nfg65bnn]:hover .stats-group[data-astro-cid-nfg65bnn]{color:var(--text-sub)}.dataset-item[data-astro-cid-nfg65bnn]:hover .stats-icon[data-astro-cid-nfg65bnn]{color:var(--text-muted)}.dataset-stats[data-astro-cid-nfg65bnn]{display:flex;align-items:center;gap:.9rem}.stats-group[data-astro-cid-nfg65bnn]{display:flex;align-items:center;gap:.3rem;font-family:var(--sans);font-size:.72rem;color:var(--text-muted);transition:color .15s ease;line-height:1}.stats-icon[data-astro-cid-nfg65bnn]{display:block;color:var(--text-dim);transition:color .15s ease}.stats-downloads-group[data-astro-cid-nfg65bnn]{display:none}@media (max-width:800px){.dataset-row-link[data-astro-cid-nfg65bnn]{grid-template-columns:1fr;column-gap:0;row-gap:.5rem}.dataset-side[data-astro-cid-nfg65bnn]{grid-column:1;grid-row:auto;align-self:start}}@media (min-width:951px){.about-page{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;padding-right:7rem!important}.about-intro-container{display:contents}.about-row-1-left{grid-column:1;grid-row:2}.about-row-1-right{grid-column:2;grid-row:2}.about-row-3-leer{grid-column:1;grid-row:3;margin-top:1rem}.about-row-2-proyectos{grid-column:2;grid-row:3;margin-top:1rem}.about-row-3-datasets{grid-column:1;grid-row:4;margin-top:2.5rem}.about-row-2-mini{grid-column:2;grid-row:4;margin-top:2.5rem}.about-page.has-no-leer .about-row-3-datasets{grid-column:1;grid-row:3;margin-top:1rem}.about-row-2-proyectos .about-section-label,.about-row-2-mini .about-section-label,.about-row-3-leer .about-section-label,.about-row-3-datasets .about-section-label{margin-top:0}}@media (max-width:950px){.about-intro-container{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.8rem;min-width:0}.about-row-1-left{flex:1 1 0;min-width:0}.about-row-1-left .about-photos{padding:0!important;margin-bottom:0!important;border:0!important;background:0 0!important}.about-row-1-left .about-photo-item{width:52px}.about-row-1-right{flex:1 1 0;min-width:0}.about-caption{margin-bottom:0!important;min-height:0!important;font-size:.92rem!important;line-height:1.5!important}.about-row-2-proyectos,.about-row-2-mini,.about-row-3-leer,.about-row-3-datasets{margin-bottom:1.8rem}}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.about-cursor{display:inline-block;color:var(--text-muted);font-weight:300;margin-left:1px;animation:cursor-blink 1.1s step-end infinite;vertical-align:baseline;line-height:1}.about-caption{font-family:var(--sans);font-size:.82rem;line-height:1.7;color:var(--text-sub);white-space:pre-wrap;margin-bottom:1.2rem;min-height:5.6rem}.about-photos{display:flex;flex-wrap:nowrap;gap:6px;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none;border:0;padding:0;background:0 0;flex-shrink:0;width:100%;margin-bottom:1.2rem}.about-photos::-webkit-scrollbar{display:none}.about-photo-item{width:72px;aspect-ratio:4/5;overflow:hidden;flex-shrink:0;border-radius:2px;background:var(--border)}.about-photo-item img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer;opacity:0;transition:opacity .6s ease;filter:grayscale(.2);border-radius:2px}.about-photo-item img.loaded{opacity:1}.about-photo-item img:hover{opacity:.85;filter:grayscale(0)}.about-projects{display:flex;flex-wrap:nowrap;overflow-x:auto;border:1px solid var(--border)}.project-card{display:flex;flex-direction:column;gap:.6rem;padding:1.2rem 1.4rem;border-right:1px solid var(--border);background:var(--bg);transition:background .15s;cursor:pointer;flex:1 1 0;min-width:220px;text-decoration:none;color:inherit}.project-card:last-child{border-right:none}.project-card:hover{background:var(--bg2)}.project-card-header{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:.6rem}.project-card-header-text{display:flex;flex-direction:column;justify-content:center;gap:.1rem;min-width:0}.project-card-top{display:flex;align-items:baseline;gap:.5rem}.project-card-url{font-family:var(--sans);font-size:.78em;font-weight:300;color:var(--text-muted)}.project-card-logo{width:42px;height:42px;flex-shrink:0;display:block;object-fit:cover;border-radius:8px}.project-card-title{font-family:var(--sans);font-size:1.15em;font-weight:500;color:var(--text-title)}.project-card-year{font-family:var(--sans);font-size:.78em;color:var(--text-muted);margin-left:auto;flex-shrink:0}.project-card-desc{font-family:var(--sans);font-size:.9em;font-weight:400;color:var(--text);line-height:1.6;margin:0}.project-card-desc-en{font-style:italic;font-weight:300;color:var(--text-muted)}.project-card-features{list-style:none;padding:0;margin:0 0 .8rem;display:flex;flex-direction:column;gap:.25rem;flex:1}.project-card-features li{font-family:var(--sans);font-size:.8em;font-weight:300;color:var(--text-muted);line-height:1.5;padding-left:1em;position:relative}.project-card-features li:before{content:"·";position:absolute;left:0;color:var(--text-muted)}.project-card-footer{display:flex;align-items:center;gap:.5rem;margin-top:auto}.project-card-footer .project-card-details{margin-left:auto}.project-card-tag{font-family:var(--sans);font-size:.82em;font-weight:300;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.project-card-status{font-family:var(--sans);font-size:.75em;font-weight:300;font-style:italic;color:var(--text-muted)}.project-card-details{font-family:var(--sans);font-size:.78em;font-weight:300;color:var(--text-sub);background:0 0;white-space:nowrap;border:1px solid var(--border);border-radius:99px;padding:.22rem .85rem;transition:border-color .15s,color .15s;cursor:pointer}.project-card-details:hover{border-color:var(--text-sub);color:var(--text-title)}.project-card-anchor{font-family:var(--sans);font-size:.78em;font-weight:300;color:var(--text-muted);text-decoration:none;opacity:0;transition:opacity .15s,color .15s}.project-card:hover .project-card-anchor{opacity:1}.project-card-anchor:hover{color:var(--text-sub)}.project-card.active{background:var(--bg2)}.project-detail{display:none;border:1px solid var(--border);border-top:none;opacity:0;transform:translateY(-6px);transition:opacity .25s ease,transform .25s ease}.project-detail.is-open{display:block}.project-detail.visible{opacity:1;transform:translateY(0)}.project-detail-inner{display:grid;grid-template-columns:1fr;min-width:0}.project-detail-screenshots{display:none}.project-detail-inner>*{min-width:0}.screenshots-stack{position:relative;width:100%;height:200px;cursor:pointer;user-select:none;overflow:visible}.screenshot-card{position:absolute;width:62%;left:19%;top:0;bottom:0;border-radius:8px;overflow:hidden;box-shadow:0 6px 24px #0000001f,0 1px 5px #00000012;transform-origin:center bottom}.screenshot-card img{width:100%;height:100%;object-fit:cover;display:block}.project-detail-info{display:flex;flex-direction:column;gap:1rem;padding:1.6rem 1.8rem}.project-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.project-detail-title{font-family:var(--sans);font-size:1.05em;font-weight:500;color:var(--text-title);display:block;margin-bottom:.2rem}.project-detail-meta{font-family:var(--sans);font-size:.7em;color:var(--text-muted);display:block;text-transform:uppercase;letter-spacing:.06em}.project-detail-close{font-family:var(--sans);font-size:.75em;color:var(--text-muted);background:0 0;border:0;cursor:pointer;padding:.2rem;transition:color .15s;line-height:1}.project-detail-close:hover{color:var(--text-title)}.project-detail-desc{font-family:var(--sans);font-size:.84em;font-weight:300;color:var(--text-sub);line-height:1.8;margin:0}.project-detail-features{font-family:var(--sans);font-size:.78em;font-weight:300;color:var(--text-sub);line-height:1.8;margin:0;padding-left:1.2em;flex:1}.project-detail-features li{margin-bottom:.2rem}.project-detail-lang-sep{display:flex;align-items:center;gap:.8rem;margin:.4rem 0;color:var(--text-muted)}.project-detail-lang-sep:before,.project-detail-lang-sep:after{content:"";flex:1;height:1px;background:var(--border)}.project-detail-lang-sep span{font-family:var(--sans);font-size:.65em;font-weight:300;text-transform:uppercase;letter-spacing:.08em}.project-detail-visit{font-family:var(--sans);font-size:.78em;font-weight:300;color:var(--text-sub);text-decoration:none;border:1px solid var(--border);border-radius:99px;padding:.28rem .9rem;transition:border-color .15s,color .15s}.project-detail-visit:hover{border-color:var(--text-sub);color:var(--text-title)}.project-detail-actions{display:flex;align-items:center;gap:1.2rem;margin-top:auto}.project-detail-github{font-family:var(--sans);font-size:.78em;font-weight:300;color:var(--text-sub);text-decoration:none;display:inline-flex;align-items:center;gap:.35em;border:1px solid var(--border);border-radius:99px;padding:.28rem .9rem;transition:border-color .15s,color .15s}.project-detail-github:hover{border-color:var(--text-sub);color:var(--text-title)}.project-detail-github.is-hidden{display:none}.about-section-label{font-family:var(--sans);font-size:.78em;font-weight:300;color:var(--text-sub);margin:3rem 0 1rem;padding:0;text-transform:uppercase;letter-spacing:.12em}.about-col-otros .about-section-label{margin-top:0}.about-section-icon{display:flex;align-items:center;color:var(--text-dim);transition:color .15s ease}.about-section-icon svg{display:block;width:15px;height:15px;stroke-width:1.5}.about-row-2-proyectos:hover .about-section-icon,.about-row-3-leer:hover .about-section-icon,.about-row-3-datasets:hover .about-section-icon{color:var(--text-title)}.mini-projects{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.mini-project-item{border-bottom:1px solid var(--border);font-family:var(--sans)}.mini-project-row-link{display:flex;flex-direction:column;gap:.25rem;padding:.9rem 0;width:100%;color:inherit;text-decoration:none}.mini-project-name-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.mini-project-row-link:hover .mini-project-name{padding-left:.9em;color:var(--text-title)}.mini-project-row-link:hover .mini-project-meta{color:var(--text)}.mini-project-name:before{content:"";position:absolute;left:0;top:15%;height:70%;width:2px;background:var(--text-sub);transform:scaleY(0);transform-origin:center;transition:transform .18s ease;border-radius:1px}.mini-project-row-link:hover .mini-project-name:before{transform:scaleY(1)}.mini-project-name{font-size:.95em;font-weight:500;color:var(--text-title);transition:color .15s,padding-left .18s ease;position:relative;padding-left:0}.mini-project-desc{font-size:.88em;font-weight:350;color:var(--text-sub);line-height:1.6}.mini-project-desc-en{display:block;font-size:.86em;font-weight:300;color:var(--text-muted);font-style:italic;margin-top:.15em;line-height:1.55}.mini-project-meta{font-size:.75em;font-weight:300;color:var(--text-muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.06em;transition:color .15s}.project-tech-bar{display:flex;flex-wrap:wrap;gap:4px;margin-top:.8rem;align-items:center}.tech-token{font-family:var(--sans);font-size:.65em;font-weight:300;padding:.15em .55em;border-radius:2px;color:var(--text-sub);border:1px solid var(--border);background:0 0;opacity:0;animation:tech-in .2s ease forwards;transition:color .2s,border-color .2s,background .2s;cursor:default}.tech-token:hover{color:var(--c);border-color:color-mix(in srgb,var(--c) 40%,transparent);background:color-mix(in srgb,var(--c) 8%,transparent)}@keyframes tech-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.reading-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.reading-item{list-style:none;padding:.9rem 0;border-bottom:1px solid var(--border);font-family:var(--sans)}.reading-row-link{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:2rem;row-gap:.2rem;align-items:baseline;color:inherit;text-decoration:none;width:100%}.reading-item.hovered .reading-title{padding-left:.9em;color:var(--text-title)}.reading-item.hovered .reading-title:before{transform:scaleY(1)}.reading-item.hovered .reading-side{color:var(--text)}.reading-title{grid-column:1;grid-row:1;font-size:.93em;font-weight:400;color:var(--text);transition:color .15s,padding-left .18s ease;line-height:1.4;position:relative;padding-left:0}.reading-title:before{content:"";position:absolute;left:0;top:15%;height:70%;width:2px;background:var(--text-sub);transform:scaleY(0);transform-origin:center;transition:transform .18s ease;border-radius:1px}.reading-side{grid-column:2;grid-row:1;font-size:.82em;font-weight:300;color:var(--text-muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.07em;text-align:right}.reading-body{grid-column:1;grid-row:2;font-size:.87em;font-weight:300;color:var(--text-sub);line-height:1.65;margin:0}.reading-author{grid-column:2;grid-row:2;font-size:.88em;font-weight:300;color:var(--text-muted);text-align:right;white-space:nowrap}@media (max-width:800px){.about-page .page-right{display:block!important;margin-top:3rem}.about-photo-item{width:60px}.project-card{min-width:min(220px,70vw);max-width:none}.project-detail-inner{grid-template-columns:1fr}.reading-row-link{grid-template-columns:1fr;column-gap:0}.reading-side,.reading-author{grid-column:1;grid-row:auto;text-align:left}.reading-body{grid-column:1;grid-row:auto}}