@font-face{font-family:Instrument;src:url(assets/fonts/instrument-sans-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Instrument;src:url(assets/fonts/instrument-sans-600.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Plex;src:url(assets/fonts/ibm-plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}
:root{--color-primary:#262220;--color-secondary:#625a54;--color-accent:#a43f2b;--color-bg:#f7f7f5;--color-surface:#fff;--color-text:#262220;--color-muted:#625a54;--color-border:#d7d3ce;--color-on-accent:#fff;--color-own:#a43f2b;--color-implementation:#315b70;--color-case:#4e6544;--font-heading:Instrument,system-ui,sans-serif;--font-body:Instrument,system-ui,sans-serif;--font-data:Plex,monospace;--space:clamp(1rem,3vw,3rem);color-scheme:light}[data-theme=dark]{--color-primary:#f5efe6;--color-secondary:#c9bfb3;--color-accent:#e06c4e;--color-bg:#171513;--color-surface:#24211f;--color-text:#f5efe6;--color-muted:#c9bfb3;--color-border:#48413b;--color-on-accent:#171513;--color-own:#e06c4e;--color-implementation:#9cc7df;--color-case:#b7cfaa;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font:400 1rem/1.55 var(--font-body);transition:background-color .2s,color .2s}a{color:inherit;text-underline-offset:.25em}.skip{position:fixed;z-index:10;top:8px;left:8px;transform:translateY(-150%);padding:.7rem 1rem;background:var(--color-accent);color:var(--color-on-accent)}.skip:focus{transform:none}.topbar,main,footer{width:min(1200px,calc(100% - 2rem));margin-inline:auto}.topbar{min-height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--color-border)}.brand{width:clamp(150px,18vw,215px);line-height:0}.brand img,footer img{display:block;width:100%;height:auto}.brand img,[data-theme=dark] footer img{filter:none}[data-theme=dark] .brand img,[data-theme=dark] footer img{filter:invert(92%) sepia(7%) saturate(244%) hue-rotate(348deg) brightness(106%) contrast(92%)}nav{display:flex;gap:1.75rem}nav a{color:var(--color-muted);text-decoration:none}.theme{justify-self:end;display:flex;align-items:center;gap:.45rem;padding:.55rem .8rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}.theme svg{width:1rem;fill:currentColor}.theme:hover{border-color:var(--color-accent)}a:focus-visible,button:focus-visible{outline:3px solid var(--color-accent);outline-offset:4px}.kicker,.number,.kind,.stamp,dt,.method li>span{font:500 .7rem/1.4 var(--font-data);letter-spacing:.075em;text-transform:uppercase}.kicker,.number,dt{color:var(--color-muted)}h1,h2,h3,p{margin-top:0}.hero{min-height:calc(100vh - 82px);display:flex;flex-direction:column;justify-content:center;padding:5rem 0 2rem}.hero h1{max-width:1080px;margin:.75rem 0 2.5rem;font-size:clamp(3.7rem,9vw,8.7rem);font-weight:400;line-height:.88;letter-spacing:-.075em}.hero-bottom{display:grid;grid-template-columns:minmax(0,680px) auto;align-items:end;gap:2rem}.hero-bottom p{margin:0;color:var(--color-muted);font-size:clamp(1.05rem,2vw,1.35rem)}.button{display:inline-flex;justify-content:space-between;gap:2rem;align-items:center;padding:.85rem 1rem;background:var(--color-accent);color:var(--color-on-accent);font-weight:600;text-decoration:none}.button:hover{transform:translateY(-2px)}.hero-route{width:100%;margin-top:3rem;color:var(--color-accent)}.hero-route path{fill:none;stroke:currentColor;stroke-width:2}.hero-route circle{fill:var(--color-bg);stroke:currentColor;stroke-width:2}.projects,.method,.about{padding:8rem 0;border-top:1px solid var(--color-border);scroll-margin-top:1rem}.section-head{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:end;margin-bottom:3rem}.section-head h2,.method>div h2,.about h2{max-width:820px;margin:.7rem 0 0;font-size:clamp(2.5rem,6vw,5.3rem);font-weight:400;line-height:.96;letter-spacing:-.06em}.section-head>p{color:var(--color-muted)}.cards{display:grid;gap:1rem}.card{display:grid;grid-template-columns:220px 1fr;background:var(--color-surface);border:1px solid var(--color-border)}.card>header{display:flex;flex-direction:column;justify-content:space-between;gap:2rem;padding:1.4rem;border-right:1px solid var(--color-border)}.kind{color:var(--kind-color)}.stamp{color:var(--color-muted)}[data-kind=propio]{--kind-color:var(--color-own)}[data-kind=implementacion]{--kind-color:var(--color-implementation)}[data-kind=caso]{--kind-color:var(--color-case)}.card-main{padding:clamp(1.5rem,4vw,3.5rem)}.card-main h3{margin:.5rem 0 1rem;font-size:clamp(3rem,7vw,6.6rem);font-weight:400;line-height:.9;letter-spacing:-.065em}.summary{max-width:740px;font-size:clamp(1.1rem,2vw,1.35rem)}dl{margin:2.5rem 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--color-border)}dl div{padding:1.2rem 1.2rem 1.2rem 0;border-bottom:1px solid var(--color-border)}dd{margin:.45rem 0 0}.text-link{font-weight:600}.method{display:grid;grid-template-columns:1fr 1.4fr;gap:5rem}.method ol{margin:0;padding:0;list-style:none}.method li{display:grid;grid-template-columns:50px 150px 1fr;gap:1rem;padding:1.5rem 0;border-top:1px solid var(--color-border)}.method li:last-child{border-bottom:1px solid var(--color-border)}.method li h3,.method li p{margin:0}.method li p{color:var(--color-muted)}.about{display:grid;grid-template-columns:1fr 3fr;gap:3rem}.about>div>p{max-width:650px;margin:2rem 0;color:var(--color-muted);font-size:1.2rem}footer{display:grid;grid-template-columns:200px 1fr auto;align-items:center;gap:2rem;padding:2rem 0 4rem;border-top:1px solid var(--color-border);color:var(--color-muted);font-size:.88rem}footer p{margin:0}.not-found{min-height:100vh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.not-found h1{font-size:clamp(3rem,10vw,8rem);line-height:.9;letter-spacing:-.06em}
@media(max-width:800px){.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}.theme span{display:none}.hero{min-height:auto;padding:5.5rem 0}.hero h1{font-size:clamp(3.5rem,16vw,6.5rem)}.hero-bottom,.section-head,.method,.about{grid-template-columns:1fr}.hero-bottom{align-items:start}.hero-route{margin-top:4rem}.projects,.method,.about{padding:5rem 0}.section-head{gap:1rem}.card{grid-template-columns:1fr}.card>header{flex-direction:row;border-right:0;border-bottom:1px solid var(--color-border)}dl{grid-template-columns:1fr}.method{gap:3rem}.method li{grid-template-columns:40px 110px 1fr}footer{grid-template-columns:140px 1fr}footer p:last-child{grid-column:1/-1}}@media(max-width:480px){.topbar,main,footer{width:calc(100% - 1.25rem)}.hero h1{font-size:3.65rem}.button{width:100%}.card-main h3{font-size:3.3rem}.card>header{align-items:flex-start}.stamp{text-align:right}.method li{grid-template-columns:38px 1fr}.method li p{grid-column:2}.about h2{font-size:2.65rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
