:root{color-scheme:light;--ink:#202632;--muted:#626977;--blue:#2c57d7;--line:#e4e7ed;--soft:#f0f4ff;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:100%;font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:2rem}
body{margin:0;background:#fff;color:var(--ink);line-height:1.6}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit}
button{font:inherit}
button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:6px}
.page-width{width:min(100% - 6rem,72rem);margin-inline:auto}
.skip-link{position:fixed;z-index:10;top:1rem;left:1rem;background:var(--ink);color:#fff;padding:.7rem 1rem;border-radius:.5rem;transform:translateY(calc(-100% - 2rem));opacity:0;pointer-events:none}
.skip-link:focus{transform:none;opacity:1;pointer-events:auto}
.site-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem 2rem;min-height:6.75rem;padding-block:.8rem;border-bottom:1px solid var(--line)}
.brand{text-decoration:none;display:flex;align-items:center;flex-shrink:0;max-width:100%}
.brand-image{display:block;width:12.8rem;max-width:100%;height:auto;object-fit:contain;object-position:left center}
.nav-link{font-size:.9375rem;font-weight:600;text-decoration:none;padding:.6rem 0;border-bottom:1px solid transparent}
.nav-link:hover{border-color:var(--blue);color:var(--blue)}
.hero{padding:6.1rem 0 5.8rem}
h1{font-size:clamp(2.55rem,5.6vw,4.7rem);line-height:1.12;letter-spacing:-.058em;font-weight:700;margin:0;max-width:65rem;overflow-wrap:break-word}
h1 span{color:var(--blue)}
.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-top:1px solid var(--line);padding:1.2rem 0 1.4rem}
.section-heading h2{margin:0;font-size:1.0625rem;font-weight:650;letter-spacing:-.015em}
.project-count{font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums}
.project-card{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);padding:0;background:white;border:1px solid var(--line);border-radius:1.4rem;text-align:left;color:var(--ink);width:100%;cursor:pointer;overflow:hidden;transition:border-color .18s,box-shadow .18s}
.project-card:hover{border-color:#99ace4;box-shadow:0 12px 32px #2435640b}
.project-identity{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1.1rem;padding:3.5rem 2rem;background:var(--soft);min-height:19rem;position:relative}
.project-identity:before,.project-identity:after{content:"";position:absolute;inset:1.1rem;border:1px solid #dae3fb;border-radius:.75rem;pointer-events:none}
.project-identity:after{inset:2rem;border-color:#e3eaff;border-radius:.5rem}
.project-logo{display:block;width:5.4rem;max-width:100%;height:5.1rem;object-fit:contain;position:relative;z-index:1}
.project-name{font-size:2.3rem;font-weight:750;letter-spacing:-.055em;position:relative;z-index:1;line-height:1.15;max-width:100%;overflow-wrap:anywhere}
.project-info{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:2.7rem 3rem;min-width:0}
.project-tagline{font-size:1.85rem;line-height:1.24;font-weight:650;letter-spacing:-.035em;max-width:21rem}
.project-summary{margin-top:1rem;font-size:1rem;line-height:1.65;color:var(--muted);max-width:25rem}
.details-label{display:inline-flex;align-items:center;justify-content:center;margin-top:1.9rem;font-size:.9375rem;font-weight:600;padding:.7rem 1.15rem;border:1px solid #ccd6ef;border-radius:.6rem;color:var(--blue);background:#fff;min-height:2.75rem}
.project-card:hover .details-label{background:var(--blue);color:#fff;border-color:var(--blue)}
.site-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:4rem;padding:1.6rem 0 2rem;border-top:1px solid var(--line);font-size:.875rem;color:var(--muted)}
.site-footer span:first-child{font-weight:650;color:var(--ink)}
dialog{border:0;padding:0;border-radius:1.25rem;background:#fff;color:var(--ink);width:min(40rem,calc(100% - 3rem));max-width:none;max-height:calc(100dvh - 3rem);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 90px #10192a33}
dialog::backdrop{background:#171f35a6;backdrop-filter:blur(4px)}
.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem 0 2.5rem;position:sticky;top:0;background:#fff;z-index:2}
.dialog-eyebrow{font-size:.875rem;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.close-button{display:grid;place-items:center;width:2.75rem;height:2.75rem;flex-shrink:0;border:0;border-radius:50%;background:#f0f2f6;cursor:pointer;color:var(--ink)}
.close-button:hover{background:#e3e8f3}
.close-button svg{width:1.25rem;height:1.25rem;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round}
.dialog-content{padding:1.5rem 2.5rem 2.5rem}
.detail-logo{display:block;object-fit:contain;margin-bottom:1rem}
.dialog-content h2{font-size:2.3rem;letter-spacing:-.055em;line-height:1.15;margin:0;overflow-wrap:anywhere}
.detail-tagline{color:var(--blue);font-size:1.125rem;line-height:1.5;font-weight:600;margin:.6rem 0 1.25rem}
.detail-description{font-size:1rem;color:var(--muted);margin:0 0 1.75rem}
.features-heading{font-size:1rem;margin:0 0 .65rem;font-weight:650}
.feature-list{padding:0;margin:0 0 1.8rem;list-style:none}
.feature-list li{position:relative;padding:.55rem 0 .55rem 1.3rem;font-size:1rem;border-bottom:1px solid #edf0f5}
.feature-list li:before{content:"";position:absolute;left:0;top:1.12rem;width:.35rem;height:.35rem;border-radius:50%;background:var(--blue)}
.primary-link{display:inline-flex;justify-content:center;align-items:center;background:var(--blue);color:#fff;text-decoration:none;min-height:3rem;padding:.75rem 1.25rem;border-radius:.6rem;font-size:1rem;font-weight:600;text-align:center;overflow-wrap:anywhere;min-width:0}
.primary-link:hover{background:#2146b7}
@media(max-width:900px){.page-width{width:calc(100% - 3rem)}.hero{padding:4.5rem 0 4.2rem}.project-identity{padding:3rem 1.5rem;flex-direction:column;gap:.9rem}.project-info{padding:2.2rem}.project-name{font-size:2rem}.project-tagline{font-size:1.65rem}}
@media(max-width:639px){.page-width{width:calc(100% - 2.5rem)}.site-header{min-height:5.5rem;gap:1rem}.brand-image{width:10.4rem}.hero{padding:3.5rem 0 3.3rem}h1{font-size:clamp(2.5rem,8.7vw,3.35rem);letter-spacing:-.055em}.desktop-break{display:none}.project-card{grid-template-columns:minmax(0,1fr);border-radius:1rem}.project-identity{min-height:12rem;flex-direction:row;padding:2rem 1.25rem;gap:.8rem}.project-logo{width:3.6rem;height:3.4rem}.project-name{font-size:1.95rem}.project-info{padding:1.65rem}.project-tagline{font-size:1.65rem}.details-label{margin-top:1.4rem}.site-footer{margin-top:2.7rem;font-size:.875rem;flex-wrap:wrap;padding-bottom:1.5rem}dialog{width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.dialog-top{padding:calc(1rem + env(safe-area-inset-top)) 1.25rem .5rem}.dialog-content{padding:1.25rem 1.5rem calc(2rem + env(safe-area-inset-bottom))}.dialog-content h2{font-size:2.1rem}.primary-link{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Mantener espacio para el contenido cuando el texto se amplía al 200 %. */
@media(max-width:639px){.dialog-top{padding-inline:min(1.25rem,20px)}.dialog-content{padding-inline:min(1.5rem,24px)}}
