@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');

:root { --paper:#f5f4ef; --ink:#171817; --muted:#686963; --line:#d8d7d0; --signal:#1143c8; --warm:#d35d34; }
* { box-sizing:border-box; }
html { background:var(--paper); scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Manrope,Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
.lab-nav { position:sticky; z-index:10; top:0; display:flex; justify-content:space-between; align-items:center; gap:22px; padding:18px 28px; border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--paper) 88%,transparent); backdrop-filter:blur(14px); font:500 12px/1 'DM Mono',monospace; }
.lab-nav__brand { font:800 17px/1 Manrope,sans-serif; letter-spacing:-.08em; }.lab-nav__brand span{color:var(--signal)}
.lab-nav__links{display:flex;gap:18px;}.lab-nav__links a{transition:color .2s ease}.lab-nav__links a:hover{color:var(--signal)}
.hero { min-height:82vh; padding:clamp(70px,11vw,160px) 7vw 70px; display:grid; align-content:space-between; position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.hero:before{content:'';position:absolute;width:68vw;height:68vw;border:1px solid color-mix(in srgb,var(--signal) 23%,transparent);border-radius:50%;right:-22vw;top:-28vw;pointer-events:none}.hero:after{content:'';position:absolute;width:12px;height:12px;right:12vw;bottom:15vh;border-radius:50%;background:var(--warm);box-shadow:0 0 0 15px color-mix(in srgb,var(--warm) 11%,transparent)}
.eyebrow,.meta { font:500 11px/1.3 'DM Mono',monospace; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); }.hero h1{position:relative;z-index:1;max-width:1100px;margin:38px 0 26px;font-size:clamp(58px,10.7vw,166px);line-height:.83;letter-spacing:-.1em;font-weight:700}.hero h1 em{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:-.08em}.hero p{position:relative;z-index:1;max-width:580px;font-size:clamp(17px,2vw,25px);line-height:1.35;letter-spacing:-.035em}.hero__footer{display:flex;justify-content:space-between;gap:20px;margin-top:90px;border-top:1px solid var(--line);padding-top:16px;font:500 11px/1.35 'DM Mono',monospace}
.section{padding:clamp(70px,10vw,150px) 7vw;border-bottom:1px solid var(--line)}.section__head{display:grid;grid-template-columns:.7fr 2fr;gap:30px;margin-bottom:70px}.section__head h2{font-size:clamp(34px,5vw,72px);letter-spacing:-.075em;line-height:.94;margin:0}.section__head p{max-width:540px;margin:0;font-size:18px;line-height:1.55;color:#3e403c}
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,7vw,120px);align-items:start}.portrait{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.84)}.prose{font-size:clamp(19px,2vw,28px);line-height:1.43;letter-spacing:-.035em}.prose p:first-child{margin-top:0}.prose strong{color:var(--signal)}
.timeline{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.timeline article{padding:24px 24px 48px 0;border-bottom:1px solid var(--line);min-height:190px}.timeline article:nth-child(even){padding-left:24px;border-left:1px solid var(--line)}.timeline h3{font-size:23px;letter-spacing:-.05em;margin:26px 0 9px}.timeline p{max-width:400px;color:#565751;line-height:1.55;margin:0}
.work-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:15px}.work{min-height:330px;padding:25px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);background:#eeede7;transition:transform .38s cubic-bezier(.23,1,.32,1),background .38s ease}.work:hover{transform:translateY(-8px);background:#e7e9f1}.work:nth-child(1),.work:nth-child(4){grid-column:span 7}.work:nth-child(2),.work:nth-child(3){grid-column:span 5}.work:nth-child(n+5){grid-column:span 4}.work h3{font-size:clamp(28px,3vw,45px);letter-spacing:-.075em;line-height:.95;margin:0}.work p{max-width:340px;color:#4e504b;line-height:1.45;margin:0}.tag{font:500 10px/1 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.07em;color:var(--signal)}
.image-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px}.image-pair figure{margin:0}.image-pair img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}.image-pair figcaption{padding:12px 0;font:500 10px/1.4 'DM Mono',monospace;color:var(--muted)}
.statement{padding:clamp(75px,13vw,190px) 7vw;background:var(--ink);color:var(--paper)}.statement p{max-width:1100px;margin:0;font-size:clamp(38px,6.2vw,94px);line-height:.98;letter-spacing:-.075em}.statement em{font-family:'Playfair Display',serif;font-weight:500}.statement small{display:block;margin-top:55px;color:#9b9c95;font:500 11px/1.4 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.06em}
.lab-footer{display:flex;justify-content:space-between;gap:25px;padding:24px 7vw;font:500 11px/1.4 'DM Mono',monospace}.lab-footer a{color:var(--signal)}
@media (max-width:760px){.lab-nav{padding:16px}.lab-nav__links{gap:11px;font-size:10px}.hero,.section{padding-left:22px;padding-right:22px}.hero h1{font-size:18vw}.section__head,.split{grid-template-columns:1fr}.section__head{margin-bottom:38px}.timeline{grid-template-columns:1fr}.timeline article:nth-child(even){padding-left:0;border-left:0}.work-grid{grid-template-columns:1fr}.work,.work:nth-child(n){grid-column:span 1;min-height:250px}.image-pair{grid-template-columns:1fr}.lab-footer{padding:22px;flex-direction:column}.hero__footer{margin-top:48px;font-size:9px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.work{transition:none}.work:hover{transform:none}}

/* Home / catálogo */
html[data-mode="signal"]{--catalog-accent:var(--signal)}
html[data-mode="quiet"]{--catalog-accent:var(--ink)}
html:has(.catalog-home){overflow:hidden;height:100%}body:has(.catalog-home){height:100svh;overflow:hidden;font:400 13px/20px Manrope,Arial,sans-serif;letter-spacing:-.01em}
.catalog-home{position:relative;height:100svh;min-height:590px;overflow:hidden;background:var(--paper)}
.catalog-topbar{position:absolute;z-index:6;top:5px;left:10px;right:10px;height:68px;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;font:400 13px/20px Manrope,Arial,sans-serif;letter-spacing:-.01em}
.catalog-nav,.catalog-tools{display:flex;align-items:center;gap:5px}.catalog-nav a,.mode-toggle span[data-mode],.formation-switch button{border:0;border-bottom:1px solid transparent;padding:0;background:none;color:inherit;font:inherit;letter-spacing:inherit}.catalog-nav a.is-active,.mode-toggle span.is-active,.formation-switch button.is-active{border-color:var(--catalog-accent)}.catalog-logo{justify-self:center;display:flex;align-items:center;height:20px;font:600 13px/20px Manrope,Arial,sans-serif;letter-spacing:.01em;white-space:nowrap}.catalog-tools{justify-self:end;gap:18px}.mode-toggle{display:flex;align-items:center;gap:5px;margin-left:16px;padding:0;border:0;background:none;color:inherit;cursor:pointer;font:inherit}.mode-toggle span[data-mode]{opacity:.4}.mode-toggle span[data-mode].is-active{opacity:1}
.catalog-rule{position:absolute;z-index:4;left:10px;right:10px;height:1px;background:rgba(23,24,23,.2)}.catalog-rule--one{top:11.67svh}.catalog-rule--two{top:22.92svh}.catalog-rule--tercera{top:34.31svh}
.catalog-stage{position:absolute;inset:0}.catalog-corner{position:absolute;z-index:4;top:31.39svh;margin:0;font:400 13px/20px Manrope,Arial,sans-serif;letter-spacing:-.01em}.catalog-corner--left{left:10px}.catalog-corner--right{right:10px;text-align:right}.catalog-stage h1{position:absolute;z-index:3;top:13.4svh;left:50%;margin:0;transform:translateX(-50%);text-align:center;font:400 clamp(48px,7.34vw,118px)/.9 Manrope,Arial,sans-serif;letter-spacing:-.055em}.catalog-stage h1 span{display:block;overflow:hidden}.catalog-stage h1 span::after{content:attr(data-text);display:block}.catalog-stage h1 span{transform:translateY(100%)}.catalog-home.is-revealed .catalog-stage h1 span{animation:catalog-reveal 1s cubic-bezier(.16,1,.3,1) forwards}.catalog-home.is-revealed .catalog-stage h1 span:nth-child(2){animation-delay:.055s}@keyframes catalog-reveal{to{transform:translateY(0)}}
#gallery-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1}.catalog-fallback{position:absolute;z-index:2;left:15%;right:15%;top:37%;bottom:10.3%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}.catalog-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px 12px;padding-right:3px}.catalog-card{border:0;padding:0;background:transparent;color:var(--ink);font:500 11px/1.25 Manrope,Arial,sans-serif;letter-spacing:-.01em;text-align:left;cursor:pointer;transition:transform .2s ease}.catalog-card:hover{transform:translateY(-4px)}.catalog-card__image{position:relative;display:block;aspect-ratio:3/4;border:1px solid var(--line);overflow:hidden;background:var(--paper)}.catalog-card img{display:block;width:100%;height:100%;object-fit:cover}.catalog-card__placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:10px;text-align:center;font:500 11px/1.25 Manrope,Arial,sans-serif;color:var(--ink);background:var(--paper)}.catalog-card__title{display:block;margin-top:7px}.catalog-card:focus-visible,.catalog-focus__close:focus-visible,.mode-toggle:focus-visible,.formation-switch button:focus-visible{outline:2px solid var(--catalog-accent);outline-offset:3px}
.formation-switch{position:absolute;z-index:5;bottom:17px;left:50%;transform:translateX(-50%);display:flex;gap:5px;align-items:center;white-space:nowrap;font:500 13px/20px Manrope,Arial,sans-serif;letter-spacing:-.11px}.formation-switch button{cursor:pointer}.catalog-footer{position:absolute;z-index:5;bottom:17px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;font:400 13px/20px Manrope,Arial,sans-serif;letter-spacing:-.01em;pointer-events:none}.catalog-footer .catalog-swatches,.catalog-footer button,.catalog-footer a{pointer-events:auto}.catalog-footer small{font:inherit;opacity:.2}.catalog-swatches{display:flex;gap:4px}.catalog-swatches span{width:14px;height:8px;border:1px solid var(--line);background:var(--paper)}.catalog-swatches span:last-child{border-color:var(--ink);background:var(--ink)}html[data-mode="signal"] .catalog-swatches span:first-child{border-color:var(--signal);background:var(--signal)}html[data-mode="signal"] .catalog-swatches span:last-child{border-color:var(--warm);background:var(--warm)}html[data-mode="signal"] .catalog-nav a.is-active,html[data-mode="signal"] .mode-toggle span.is-active,html[data-mode="signal"] .formation-switch button.is-active{border-color:var(--signal)}
.catalog-preloader{position:fixed;z-index:50;inset:0;display:grid;place-items:center;overflow:hidden;color:var(--paper);background:var(--ink)}.catalog-preloader__half{position:absolute;left:0;width:100%;height:50.1%;background:var(--ink)}.catalog-preloader__half--top{top:0}.catalog-preloader__half--bottom{bottom:0}.catalog-preloader__meta,.catalog-preloader__track{position:relative;z-index:1;width:min(70%,900px)}.catalog-preloader__meta{display:flex;justify-content:space-between;font:400 13px/20px Manrope,Arial,sans-serif}.catalog-preloader__track{height:1px;background:rgba(245,244,239,.3)}.catalog-preloader__track i{display:block;height:1px;background:var(--paper);transform:scaleX(0);transform-origin:left}.catalog-preloader.is-done{visibility:hidden;transition:visibility 0s 1.1s}.catalog-preloader.is-done .catalog-preloader__meta,.catalog-preloader.is-done .catalog-preloader__track{opacity:0;transition:opacity .15s}.catalog-preloader.is-done .catalog-preloader__half--top{transform:translateY(-100%);transition:transform 1.1s cubic-bezier(.76,0,.24,1)}.catalog-preloader.is-done .catalog-preloader__half--bottom{transform:translateY(100%);transition:transform 1.1s cubic-bezier(.76,0,.24,1)}
.focus-scrim{position:fixed;z-index:20;inset:0;background:rgba(23,24,23,.3);opacity:0;transition:opacity .25s ease}.focus-scrim.is-open{opacity:1}.catalog-focus{position:fixed;z-index:21;top:0;right:0;bottom:0;width:min(460px,92vw);padding:clamp(72px,12vh,120px) clamp(28px,5vw,72px) 36px;background:var(--ink);color:var(--paper);transform:translateX(105%);opacity:0;transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .2s ease}.catalog-focus.is-open{transform:translateX(0);opacity:1}.catalog-focus__close{position:absolute;top:18px;right:20px;border:0;border-bottom:1px solid currentColor;padding:0 0 2px;background:none;color:inherit;font:400 13px/20px Manrope,Arial,sans-serif;cursor:pointer}.catalog-focus p{max-width:32ch;margin:0 0 24px;font:400 15px/1.5 Manrope,Arial,sans-serif}.catalog-focus #focus-category{font-size:13px;opacity:.6}.catalog-focus h2{margin:0 0 22px;font:400 clamp(40px,5vw,68px)/.91 Manrope,Arial,sans-serif;letter-spacing:-.06em}.catalog-focus a{display:inline-block;margin-top:14px;border-bottom:1px solid currentColor;padding-bottom:4px}.catalog-focus a span{color:var(--warm)}
@media(max-width:760px){body:has(.catalog-home){height:100svh}.catalog-home{min-height:520px}.catalog-topbar{grid-template-columns:1fr auto;align-items:start}.catalog-logo{display:none}.catalog-tools time{display:none}.catalog-tools{gap:0}.catalog-nav{flex-wrap:wrap;max-width:260px}.mode-toggle{margin-left:0;flex-basis:100%;justify-content:flex-start}.catalog-rule--one{top:14%}.catalog-rule--two{top:25%}.catalog-rule--three{top:36%}.catalog-corner{top:32%;font-size:11px}.catalog-corner--right{max-width:140px}.catalog-stage h1{top:16%;font-size:18vw}.catalog-fallback{left:10px;right:10px;top:42%;bottom:72px}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 10px}.formation-switch{bottom:43px;font-size:12px}.catalog-footer{bottom:10px;font-size:11px}.catalog-footer small{max-width:160px;text-align:right}.catalog-preloader__meta,.catalog-preloader__track{width:calc(100% - 20px)}.catalog-focus{width:100%;padding-top:95px}.catalog-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.catalog-preloader{display:none}.catalog-stage h1 span,.catalog-stage h1 i{transform:none}.catalog-home.is-revealed .catalog-stage h1 span,.catalog-home.is-revealed .catalog-stage h1 i{animation:none}.catalog-card,.focus-scrim,.catalog-focus{transition:none}}

/* Ajustes de integración del catálogo */
#gallery-canvas{display:block;position:absolute;inset:0;box-sizing:border-box;width:100%!important;height:100%!important;min-width:100%;min-height:100%;z-index:1}
.catalog-stage h1 span{transform:none}.catalog-stage h1 i{display:block;font-style:normal;transform:translateY(100%)}.catalog-home.is-revealed .catalog-stage h1 span{animation:none;transform:none}.catalog-home.is-revealed .catalog-stage h1 i{animation:catalog-reveal 1s cubic-bezier(.16,1,.3,1) forwards}.catalog-home.is-revealed .catalog-stage h1 span:nth-child(2) i{animation-delay:.055s}.catalog-fallback.is-engine-active{position:absolute;width:1px;height:1px;margin:-1px;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}

/* Páginas de procedimientos */
.procedimiento-hero{min-height:56vh}.procedimiento-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(35px,7vw,120px);align-items:start}.procedimiento-page>img{width:100%;aspect-ratio:4/5;object-fit:cover;background:#e7e9f1}.procedimiento-page .prose{font-size:clamp(17px,1.7vw,23px)}.procedimiento-page .prose h2{font-size:clamp(25px,3vw,42px);letter-spacing:-.06em;margin:1.6em 0 .45em}.procedimiento-page .prose h2:first-child{margin-top:0}@media(max-width:760px){.procedimiento-page{grid-template-columns:1fr}.procedimiento-page>img{aspect-ratio:4/3}}
