:root{--black:#080808;--white:#f7f7f5;--line:#d2d2cf}*{box-sizing:border-box}html,body{margin:0;background:var(--white);color:var(--black);font-family:"DM Sans",Arial,sans-serif}a{color:inherit;text-decoration:none}.loader{position:fixed;inset:0;background:#000;color:#fff;z-index:1000;display:grid;place-items:center;transition:opacity .65s ease,visibility .65s ease}.loader.hide{opacity:0;visibility:hidden}.loader-name{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(24px,3.2vw,46px);font-weight:500;letter-spacing:.22em;padding-left:.22em;opacity:0;filter:blur(10px);animation:loaderReveal .95s ease forwards .12s;white-space:nowrap}@keyframes loaderReveal{to{opacity:1;filter:blur(0)}}.nav{position:fixed;z-index:50;top:0;left:0;width:100%;height:72px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;color:#fff;mix-blend-mode:difference}.nav-static,.project-detail-nav{color:#000;mix-blend-mode:normal}.wordmark{font-size:12px;font-weight:600;letter-spacing:.2em}.nav-links{display:flex;gap:30px}.nav-links a{font-size:10px;letter-spacing:.16em;opacity:.6}.nav-links a:hover,.nav-links .active{opacity:1}.home{height:100svh;overflow:hidden}.home-stage{position:relative;width:100%;height:100svh;overflow:hidden}.panel{height:100svh;position:relative}.cover,.closing{position:absolute;inset:0;transition:transform .8s cubic-bezier(.22,.72,.16,1);will-change:transform}.cover{z-index:3;background:#fff}.cover.is-above{transform:translateY(-100%)}.cover-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;text-align:center}.eyebrow,.cover-sub,.section-label,.slide-meta,.slide-action,.scroll-cue,.cover-counter{font-size:9px;letter-spacing:.19em;font-weight:500;text-transform:uppercase}.cover h1{margin:20px 0 17px;font-size:clamp(24px,3.2vw,46px);font-weight:500;letter-spacing:.22em;padding-left:.22em}.cover-sub{color:#666}.scroll-cue{position:absolute;left:28px;bottom:28px}.cover-counter{position:absolute;right:28px;bottom:28px;color:#777}.projects-rail{position:absolute;inset:0;z-index:2;display:flex;width:500vw;height:100svh;transform:translateX(100vw);transition:transform .8s cubic-bezier(.22,.72,.16,1)}.projects-rail .featured{width:100vw;flex:0 0 100vw;height:100svh;background:#000}.project-slide{position:absolute;inset:0;color:#fff;overflow:hidden}.project-slide:before{content:"";position:absolute;inset:-2%}.shade{position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.28),transparent 35%,transparent 68%,rgba(0,0,0,.36))}.p1:before{background:linear-gradient(145deg,#747474 0 28%,#202020 28% 46%,#999 46% 61%,#414141 61% 73%,#b0b0b0 73%)}.p2:before{background:linear-gradient(155deg,#bdbdbd 0 25%,#555 25% 42%,#e2e2e2 42% 55%,#303030 55% 74%,#999 74%)}.p3:before{background:radial-gradient(ellipse at 63% 68%,#d1d1d1 0 22%,transparent 23%),linear-gradient(170deg,#eee 0 45%,#9d9d9d 45% 62%,#3c3c3c 62%)}.p4:before{background:linear-gradient(90deg,#242424 0 17%,transparent 17%),linear-gradient(165deg,#c2c2c2 0 32%,#545454 32% 58%,#d8d8d8 58%)}.p5:before{background:radial-gradient(ellipse at 67% 55%,#b7b7b7 0 25%,transparent 26%),linear-gradient(153deg,#dedede 0 40%,#747474 40% 58%,#262626 58%)}.slide-meta{position:absolute;z-index:2;left:28px;right:28px;top:96px;display:flex;justify-content:space-between;font-size:7.5px}.slide-title{position:absolute;z-index:2;left:28px;bottom:30px}.slide-title h2{margin:0 0 7px;font-size:clamp(13px,1.45vw,22px);font-weight:600;letter-spacing:.24em;padding-left:.24em}.slide-title p{margin:0;font-size:7.5px;letter-spacing:.18em}.slide-action{position:absolute;z-index:2;right:28px;bottom:32px;font-size:7.5px}.closing{z-index:1;transform:translateY(100%);padding:110px 28px 28px;display:flex;flex-direction:column;justify-content:space-between;background:#fff}.closing.is-active{transform:translateY(0)}.closing-grid{display:grid;grid-template-columns:1.5fr .5fr;gap:10vw;align-items:end;margin:auto 0}.closing h3{font-size:clamp(26px,3.3vw,48px);font-weight:300;line-height:1.12;max-width:850px;margin:18px 0 0}.closing-links{display:flex;flex-direction:column;gap:16px;font-size:10px;letter-spacing:.14em}footer{border-top:1px solid var(--line);padding-top:14px;font-size:9px;letter-spacing:.12em}

/* PROJECTS — V9 */
.page{padding:130px 28px 80px}.page-head{position:relative;min-height:180px;padding-bottom:48px}.page-head h1{position:absolute;left:50%;top:0;transform:translateX(-50%);margin:0;font-size:clamp(22px,3vw,42px);font-weight:500;letter-spacing:.2em;padding-left:.2em;text-align:center;white-space:nowrap}.page-kicker{position:absolute;left:0;top:8px}.page-description{position:absolute;right:0;top:5px;margin:0;width:min(360px,31vw);font-size:13px;line-height:1.55;color:#555;text-align:left}.project-list{border-top:1px solid #111}.project-accordion{border-bottom:1px solid #111}.project-row{display:grid;grid-template-columns:60px 1.5fr 1fr 1fr;align-items:center;min-height:104px;font-size:10px;letter-spacing:.13em}.project-row strong{font-size:18px;letter-spacing:.18em;position:relative;width:max-content}.project-row strong:after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:#000;transition:right .22s ease}.project-row:hover strong:after{right:0}.project-row span{color:#666}.accordion-preview{display:block;height:0;overflow:hidden;opacity:0;transition:height .45s cubic-bezier(.22,.72,.16,1),opacity .22s ease;width:100%}.project-accordion.is-open .accordion-preview{height:min(38vw,420px);opacity:1}.preview-1{background:linear-gradient(145deg,#747474 0 28%,#202020 28% 46%,#999 46% 61%,#414141 61% 73%,#b0b0b0 73%)}.preview-2{background:linear-gradient(155deg,#bdbdbd 0 25%,#555 25% 42%,#e2e2e2 42% 55%,#303030 55% 74%,#999 74%)}.preview-3{background:radial-gradient(ellipse at 63% 68%,#d1d1d1 0 22%,transparent 23%),linear-gradient(170deg,#eee 0 45%,#9d9d9d 45% 62%,#3c3c3c 62%)}.preview-4{background:linear-gradient(90deg,#242424 0 17%,transparent 17%),linear-gradient(165deg,#c2c2c2 0 32%,#545454 32% 58%,#d8d8d8 58%)}.preview-5{background:radial-gradient(ellipse at 67% 55%,#b7b7b7 0 25%,transparent 26%),linear-gradient(153deg,#dedede 0 40%,#747474 40% 58%,#262626 58%)}

.profile-flow{height:100svh;overflow:hidden;position:relative;background:#fff}.profile-panel{position:absolute;inset:0;width:100%;height:100svh;transition:transform .8s cubic-bezier(.22,.72,.16,1);background:#fff}.profile-intro-screen{z-index:2;padding:0 28px 34px;display:flex;align-items:flex-end}.profile-intro-bottom{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}.profile-intro-bottom h1{margin:0;font-size:clamp(24px,3vw,42px);font-weight:500;letter-spacing:.2em;padding-left:.2em}.profile-intro-bottom p{margin:0;max-width:520px;font-size:14px;line-height:1.7}.profile-content-screen{overflow-y:auto;transform:translateY(100%)}.profile-photo-wide{height:44svh;background:linear-gradient(145deg,#dedede 0 35%,#777 35% 62%,#1d1d1d 62%)}.profile-info{padding:60px 28px 70px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6vw}.profile-info-column>.section-label{display:block;margin-bottom:24px}.info-row{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:13px 0;font-size:11px}.info-row p{margin:0}.info-row small{color:#777}.profile-links{display:flex;flex-direction:column;gap:14px;font-size:10px;letter-spacing:.13em}.profile-home-return{min-height:20vh;display:grid;place-items:center;font-size:11px;letter-spacing:.16em}

.project-flow{height:100svh;overflow:hidden;position:relative;background:#fff}.project-step{position:absolute;inset:0;width:100%;height:100svh;transition:transform .8s cubic-bezier(.22,.72,.16,1);background:#fff}.diagram-step{display:flex;align-items:center;justify-content:center}.diagram-meta{position:absolute;left:28px;top:105px;display:flex;flex-direction:column;gap:10px;font-size:9px;letter-spacing:.16em}.concept-sketch{width:min(760px,70vw);text-align:center}.concept-sketch svg{width:100%}.concept-sketch p{font-size:9px;letter-spacing:.2em;margin-top:14px}.step-cue{position:absolute;right:28px;bottom:26px;font-size:9px;letter-spacing:.16em}.text-step{display:grid;place-items:center;padding:100px 28px 70px}.project-description{max-width:680px;text-align:center}.project-description h1{margin:20px 0 30px;font-size:clamp(24px,3vw,42px);font-weight:600;letter-spacing:.18em;padding-left:.18em}.project-description p{margin:0 auto;max-width:620px;font-size:15px;line-height:1.8;text-align:justify;text-align-last:center}.image-step{background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.2)),linear-gradient(145deg,#777 0 28%,#202020 28% 46%,#999 46% 61%,#414141 61% 73%,#b0b0b0 73%)}.image-label{position:absolute;left:28px;top:105px;color:#fff;font-size:9px;letter-spacing:.16em}.gallery-stage{background:#fff;display:flex;align-items:center;justify-content:center}.gallery-window{width:40vw;max-width:680px;aspect-ratio:4/3;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}.gallery-window::-webkit-scrollbar{display:none}.gallery-strip{height:100%;display:flex;width:max-content}.gallery-card{height:100%;width:40vw;max-width:680px;flex:0 0 auto}.gallery-1{background:linear-gradient(155deg,#c4c4c4,#505050 51%,#aaa)}.gallery-2{background:linear-gradient(145deg,#aaa,#333 55%,#ddd)}.gallery-3{background:linear-gradient(170deg,#ddd,#6b6b6b 47%,#1f1f1f)}.gallery-4{background:linear-gradient(130deg,#9b9b9b,#ececec 40%,#4b4b4b)}.gallery-5{background:linear-gradient(160deg,#d5d5d5,#555 52%,#aaa)}.gallery-footer{position:absolute;left:28px;right:28px;bottom:28px;display:flex;justify-content:space-between;z-index:10;font-size:10px;letter-spacing:.14em}

@media(pointer:fine){body,a{cursor:none}.custom-cursor{position:fixed;z-index:2000;width:9px;height:9px;background:#000;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);opacity:0;transition:opacity .18s ease,transform .18s ease}.custom-cursor.is-visible{opacity:1}.custom-cursor.is-link{transform:translate(-50%,-50%) scale(1.6)}}a:not(.project-slide):not(.project-row):not(.accordion-preview){position:relative}a:not(.project-slide):not(.project-row):not(.accordion-preview):after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;background:currentColor;transition:right .24s ease}a:not(.project-slide):not(.project-row):not(.accordion-preview):hover:after{right:0}

@media(max-width:760px){.nav{padding:0 16px}.wordmark{font-size:10px}.nav-links{gap:14px}.nav-links a{font-size:8px}.loader-name{font-size:25px;letter-spacing:.14em;padding-left:.14em}.scroll-cue{left:16px;bottom:20px}.cover-counter{right:16px;bottom:20px}.slide-meta{left:16px;right:16px;top:82px;font-size:7px}.slide-title{left:16px;bottom:23px}.slide-title h2{font-size:13px}.slide-title p,.slide-action{font-size:7px}.slide-action{right:16px;bottom:24px}.page{padding:115px 16px 50px}.page-head{min-height:230px}.page-head h1{top:0;font-size:24px}.page-kicker{top:70px}.page-description{top:68px;right:0;width:58vw;font-size:11px}.project-row{grid-template-columns:36px 1fr;gap:8px;padding:18px 0}.project-row span:nth-of-type(2),.project-row span:nth-of-type(3){grid-column:2}.project-accordion.is-open .accordion-preview{height:52vw}.profile-intro-screen{padding:0 16px 28px}.profile-intro-bottom{grid-template-columns:1fr;gap:34px}.profile-photo-wide{height:34svh}.profile-info{grid-template-columns:1fr;gap:58px;padding:42px 16px 70px}.diagram-meta{left:16px;top:88px}.concept-sketch{width:86vw}.step-cue{right:16px;bottom:20px}.project-description p{font-size:13px}.image-label{left:16px;top:88px}.gallery-window{width:72vw}.gallery-card{width:72vw}.gallery-footer{left:16px;right:16px;bottom:20px}.custom-cursor{display:none}}


/* V10 — secondary gallery refinement */
.gallery-window{
  scroll-behavior:auto;
  scroll-snap-type:none;
}
.gallery-strip{
  will-change:transform;
}


/* MASTER CONTENT SYSTEM — image files override placeholders automatically */
.project-slide:before{
  background-image: var(--cover-image, none), var(--fallback-gradient, linear-gradient(145deg,#777,#222 48%,#aaa)) !important;
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat;
}
.accordion-preview{
  background-image: var(--cover-image, none), var(--fallback-gradient, linear-gradient(145deg,#777,#222 48%,#aaa)) !important;
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat;
}
.concept-sketch{
  position:relative;
}
.concept-sketch .concept-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fff;
  z-index:2;
}
.concept-sketch .concept-image[hidden]{display:none}
.concept-sketch p{position:relative;z-index:3}
.image-main{
  background-image: var(--main-image, none), linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.2)), linear-gradient(145deg,#777 0 28%,#202020 28% 46%,#999 46% 61%,#414141 61% 73%,#b0b0b0 73%) !important;
  background-size:cover,cover,cover;
  background-position:center;
}
.gallery-card{
  background-image: var(--gallery-image, none), linear-gradient(155deg,#c4c4c4,#505050 51%,#aaa) !important;
  background-size:cover,cover;
  background-position:center;
}
.profile-photo-wide{
  background-image: var(--profile-image, none), linear-gradient(145deg,#dedede 0 35%,#777 35% 62%,#1d1d1d 62%) !important;
  background-size:cover,cover;
  background-position:center;
}


/* ========================================================
   BILINGUAL LANGUAGE SWITCH
   ======================================================== */
.nav-right{
  display:flex;
  align-items:center;
  gap:24px;
}
.language-switch{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:9px;
  letter-spacing:.12em;
  line-height:1;
}
.language-switch button{
  appearance:none;
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  color:inherit;
  font:inherit;
  letter-spacing:inherit;
  opacity:.38;
  cursor:inherit;
  transition:opacity .2s ease;
}
.language-switch button:hover,
.language-switch button.is-active{
  opacity:1;
}
.language-switch span{opacity:.35}

@media(max-width:760px){
  .nav-right{gap:11px}
  .language-switch{font-size:8px;gap:3px}
}


/* ========================================================
   LANGUAGE SWITCH — HEADER POSITION FIX
   Keeps the original visual design while letting ES / EN
   sit immediately to the right of the navigation.
   ======================================================== */
.nav-right{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:24px;
  position:relative;
  z-index:3;
}

.nav-right .nav-links{
  position:static;
  top:auto;
  right:auto;
  transform:none;
}

.language-switch{
  flex:0 0 auto;
  white-space:nowrap;
}

@media(max-width:760px){
  .nav-right{
    gap:10px;
  }
}


/* MOBILE FINAL FIX — iPhone interactions only */
@media(max-width:760px), (pointer:coarse){
  .profile-content-screen{
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
    touch-action:pan-y;
  }

  .closing-links a,
  .profile-links a,
  .profile-home-return a{
    font-family:"DM Sans",Arial,sans-serif;
    font-variant-emoji:text;
  }
}


/* LOADER FINAL FIX — hidden before first paint on internal navigation */
html:not(.first-visit) .loader{
  display:none !important;
}
html.first-visit .loader{
  display:grid;
}




/* MOBILE HOME — true vertical slide stack */
@media(max-width:760px), (pointer:coarse){
  .home .projects-rail{
    position:absolute !important;
    inset:0 !important;
    width:100vw !important;
    height:100svh !important;
    display:block !important;
    transform:none !important;
    transition:none !important;
    overflow:hidden !important;
  }

  .home .projects-rail .featured{
    position:absolute !important;
    inset:0 !important;
    width:100vw !important;
    height:100svh !important;
    flex:none !important;
    margin:0 !important;
  }
}

.profile-link-text{
  display:block;
  color:inherit;
  font:inherit;
  letter-spacing:inherit;
  text-transform:none;
}
