/* Journey 3D — immersive archive inspired by the supplied spatial portfolio reference.
   Scope is strictly .journey-3d so the published portfolio remains untouched elsewhere. */

.journey-3d{
  --j3d-bg:#050708;
  --j3d-paper:#f4f0e8;
  --j3d-white:#fbfaf6;
  --j3d-ink:#0a0d10;
  --j3d-muted:#92999b;
  --j3d-line:rgba(255,255,255,.14);
  --j3d-accent:#d9a23b;
  background:var(--j3d-bg)!important;
  color:var(--j3d-white)!important;
  overflow-x:hidden!important;
}

.journey-3d .site-header{
  color:var(--j3d-white)!important;
  background:linear-gradient(180deg,rgba(5,7,8,.92),rgba(5,7,8,.58) 62%,transparent)!important;
  backdrop-filter:blur(10px);
}

.journey-3d .j3d{
  min-height:100svh;
  background:var(--j3d-bg);
}

.j3d-world{
  position:relative;
  min-height:100svh;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 50% 48%,rgba(217,162,59,.055),transparent 25%),
    linear-gradient(180deg,#07090a 0%,#050708 62%,#020303 100%);
}

.j3d-world::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(5,7,8,.65),transparent 12% 88%,rgba(5,7,8,.65));
}

.j3d-world__top{
  position:absolute;
  z-index:20;
  top:calc(var(--header,76px) + 1.1rem);
  left:var(--gutter);
  right:var(--gutter);
  display:flex;
  justify-content:space-between;
  gap:2rem;
  color:rgba(251,250,246,.58);
  font:700 .66rem/1 var(--sans);
  letter-spacing:.18em;
}

.j3d-intro{
  position:absolute;
  z-index:15;
  top:calc(var(--header,76px) + 4.1rem);
  left:var(--gutter);
  width:min(24rem,30vw);
  pointer-events:none;
}

.j3d-kicker{
  margin:0 0 .8rem;
  color:var(--j3d-accent);
  font:700 .68rem/1.3 var(--sans);
  letter-spacing:.18em;
}

.j3d-intro h1{
  margin:0;
  max-width:16ch;
  color:var(--j3d-white);
  font:500 clamp(1.25rem,1.7vw,1.8rem)/1.02 var(--sans);
  letter-spacing:-.045em;
}

.j3d-intro h1 em{
  color:var(--j3d-accent);
  font-family:var(--serif);
  font-size:1.14em;
  font-weight:400;
}

.j3d-intro>p:last-child{
  max-width:22rem;
  margin:1rem 0 0;
  color:rgba(251,250,246,.5);
  font:400 .78rem/1.55 var(--sans);
}

.j3d-scene{
  position:absolute;
  z-index:5;
  inset:calc(var(--header,76px) + 1rem) 0 5.5rem;
  perspective:1180px;
  perspective-origin:50% 46%;
  transform-style:preserve-3d;
  cursor:grab;
  touch-action:pan-y;
}

.j3d-scene.is-dragging{cursor:grabbing}

.j3d-floor{
  position:absolute;
  z-index:-2;
  left:-25vw;
  right:-25vw;
  bottom:-34vh;
  height:92vh;
  transform-origin:50% 100%;
  transform:rotateX(72deg) translateZ(-42px);
  background-image:
    linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px);
  background-size:7.5rem 4.5rem;
  mask-image:linear-gradient(to top,#000 0 58%,transparent 94%);
  -webkit-mask-image:linear-gradient(to top,#000 0 58%,transparent 94%);
  opacity:.58;
  pointer-events:none;
}

.j3d-horizon{
  position:absolute;
  z-index:-1;
  left:0;
  right:0;
  top:58%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16) 18% 82%,transparent);
  box-shadow:0 0 4rem rgba(217,162,59,.1);
  pointer-events:none;
}

.j3d-card{
  position:absolute;
  left:50%;
  top:53%;
  width:clamp(20rem,28vw,29rem);
  height:clamp(24rem,55vh,32rem);
  margin:0;
  padding:0;
  color:var(--j3d-white);
  background:transparent;
  border:0;
  outline:none;
  transform-style:preserve-3d;
  transform-origin:50% 50%;
  will-change:transform,opacity,filter;
  user-select:none;
  -webkit-user-select:none;
  cursor:pointer;
}

.j3d-card::after{
  content:"";
  position:absolute;
  inset:-1.1rem -.9rem -1.5rem;
  z-index:-1;
  border:1px solid transparent;
  transition:border-color .25s ease,background .25s ease;
}

.j3d-card.is-active::after,
.j3d-card:focus-visible::after{
  border-color:rgba(217,162,59,.3);
  background:rgba(217,162,59,.025);
}

.j3d-card__media{
  position:relative;
  width:100%;
  height:68%;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  border-radius:1.1rem;
  background:#111618;
  box-shadow:0 2.5rem 7rem rgba(0,0,0,.42);
}

.j3d-card__media--image img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.74) contrast(1.06) brightness(.84);
  transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .35s ease;
}

.j3d-card.is-active .j3d-card__media--image img{
  transform:scale(1.025);
  filter:saturate(.86) contrast(1.04) brightness(.93);
}

.j3d-card__wash{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,transparent 45%,rgba(5,7,8,.72)),
    linear-gradient(90deg,rgba(5,7,8,.16),transparent 45%);
}

.j3d-card__meta{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin-top:.8rem;
  color:rgba(251,250,246,.54);
  font:700 .61rem/1.2 var(--sans);
  letter-spacing:.12em;
}

.j3d-card__meta span:first-child{
  color:var(--j3d-accent);
}

.j3d-card h2{
  max-width:15ch;
  margin:.6rem 0 0;
  color:var(--j3d-white);
  font:500 clamp(1.45rem,2.35vw,2.55rem)/.94 var(--sans);
  letter-spacing:-.055em;
}

.j3d-card__open{
  position:absolute;
  right:0;
  bottom:.2rem;
  color:rgba(251,250,246,.45);
  font:700 .6rem/1 var(--sans);
  letter-spacing:.13em;
  opacity:0;
  transform:translateY(.4rem);
  transition:opacity .25s ease,transform .25s ease,color .25s ease;
}

.j3d-card.is-active .j3d-card__open{
  opacity:1;
  transform:none;
  color:var(--j3d-accent);
}

.j3d-card__media--type{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr auto;
  align-items:end;
  padding:clamp(1.5rem,3vw,2.6rem);
  color:var(--j3d-white);
  background:
    radial-gradient(circle at 78% 24%,rgba(217,162,59,.24),transparent 24%),
    linear-gradient(135deg,#171d20,#090c0e);
}

.j3d-card__media--type span,
.j3d-card__media--type strong{
  align-self:end;
  font:400 clamp(5rem,8vw,8.8rem)/.72 var(--serif);
  letter-spacing:-.06em;
}

.j3d-card__media--type span{color:rgba(251,250,246,.26)}
.j3d-card__media--type strong{color:var(--j3d-white)}
.j3d-card__media--type small{
  grid-column:1/-1;
  margin-top:1.4rem;
  padding-top:1rem;
  color:rgba(251,250,246,.62);
  border-top:1px solid rgba(255,255,255,.14);
  font:700 .62rem/1.5 var(--sans);
  letter-spacing:.12em;
}

.j3d-card__media--amber{
  color:var(--j3d-ink);
  background:
    linear-gradient(135deg,rgba(255,255,255,.16),transparent),
    var(--j3d-accent);
}

.j3d-card__media--amber span,
.j3d-card__media--amber strong{color:var(--j3d-ink)}
.j3d-card__media--amber small{
  color:rgba(10,13,16,.72);
  border-color:rgba(10,13,16,.22);
}

.j3d-card__media--credentials{
  position:relative;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:.55rem;
  padding:2rem .8rem .8rem;
  background:
    linear-gradient(180deg,rgba(217,162,59,.06),transparent 28%),
    #111517;
}

.j3d-card__media--credentials::before{
  content:"APRENDIZAGEM / ARQUIVO";
  position:absolute;
  left:.85rem;
  top:.72rem;
  z-index:5;
  color:rgba(244,240,232,.56);
  font:700 .46rem/1 var(--sans);
  letter-spacing:.17em;
}

.j3d-card__media--credentials img{
  position:relative!important;
  inset:auto!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:0;
  padding:.28rem;
  object-fit:contain;
  object-position:center;
  transform:none!important;
  background:#f7f4ed;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 .45rem 1rem rgba(0,0,0,.18);
  filter:saturate(.92) contrast(1.01);
  transition:translate .3s ease,border-color .3s ease;
}

.j3d-card.is-active .j3d-card__media--credentials img:nth-child(1),
.j3d-card.is-active .j3d-card__media--credentials img:nth-child(4){
  translate:0 -.08rem;
}
.j3d-card.is-active .j3d-card__media--credentials img:nth-child(2),
.j3d-card.is-active .j3d-card__media--credentials img:nth-child(3){
  translate:0 .08rem;
}

.j3d-controls{
  position:absolute;
  z-index:20;
  left:var(--gutter);
  right:var(--gutter);
  bottom:1.55rem;
  display:grid;
  grid-template-columns:minmax(28rem,.65fr) 1fr auto;
  align-items:end;
  gap:2rem;
  color:rgba(251,250,246,.48);
  font:700 .62rem/1.2 var(--sans);
  letter-spacing:.12em;
}

.j3d-controls>p{margin:0;text-align:center}
.j3d-controls>a{color:var(--j3d-white);text-decoration:none}
.j3d-controls>a:hover{color:var(--j3d-accent)}

.j3d-controls__mobile{display:none}

.j3d-progress{
  position:relative;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:.2rem;
  padding-bottom:.6rem;
}

.j3d-progress::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:rgba(255,255,255,.18);
}

.j3d-progress__line{
  position:absolute;
  left:0;
  bottom:-1px;
  width:20%;
  height:3px;
  background:var(--j3d-accent);
  transform-origin:left center;
  transition:transform .38s cubic-bezier(.2,.8,.2,1);
}

.j3d-progress button{
  appearance:none;
  padding:.35rem 0;
  color:rgba(251,250,246,.36);
  background:none;
  border:0;
  text-align:left;
  font:700 .58rem/1 var(--sans);
  letter-spacing:.08em;
  cursor:pointer;
  transition:color .2s ease;
}

.j3d-progress button.is-active,
.j3d-progress button:hover{color:var(--j3d-white)}

/* Detail view */
.j3d-detail{
  position:fixed;
  inset:0;
  z-index:3000;
  display:grid;
  place-items:center;
  padding:clamp(.6rem,1.4vw,1.2rem);
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease,visibility .35s step-end;
}

.j3d-detail.is-open{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
  transition:opacity .35s ease,visibility 0s step-start;
}

.j3d-detail__backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,3,3,.88);
  backdrop-filter:blur(10px);
}

.j3d-detail__sheet{
  position:relative;
  z-index:1;
  width:min(96rem,100%);
  height:min(58rem,calc(100svh - 2rem));
  overflow:auto;
  overscroll-behavior:contain;
  display:grid;
  grid-template-columns:minmax(17rem,.34fr) minmax(0,.66fr);
  gap:clamp(2rem,4.5vw,5rem);
  padding:clamp(1.5rem,3vw,3.2rem);
  color:var(--j3d-ink);
  background:var(--j3d-white);
  border-radius:1.3rem;
  box-shadow:0 3rem 10rem rgba(0,0,0,.46);
  transform:translateY(1.2rem) scale(.985);
  transition:transform .48s cubic-bezier(.2,.8,.2,1);
}

.j3d-detail.is-open .j3d-detail__sheet{transform:none}

.j3d-detail__close{
  position:sticky;
  top:0;
  left:100%;
  z-index:8;
  display:grid;
  place-items:center;
  width:2.55rem;
  height:2.55rem;
  margin:0 0 -2.55rem auto;
  color:var(--j3d-white);
  background:var(--j3d-ink);
  border:0;
  border-radius:50%;
  font:400 1.35rem/1 var(--sans);
  cursor:pointer;
}

.j3d-detail__intro{
  position:sticky;
  top:0;
  align-self:start;
  padding-top:.2rem;
}

.j3d-detail__year{
  display:block;
  margin-bottom:1.6rem;
  color:rgba(10,13,16,.16);
  font:400 clamp(5.5rem,9vw,9rem)/.72 var(--serif);
  letter-spacing:-.07em;
}

.j3d-detail__kicker{
  margin:0 0 .9rem;
  color:#8b6423;
  font:700 .66rem/1.4 var(--sans);
  letter-spacing:.15em;
}

.j3d-detail__intro h2{
  max-width:11ch;
  margin:0;
  color:var(--j3d-ink);
  font:500 clamp(2.4rem,4.2vw,4.8rem)/.9 var(--sans);
  letter-spacing:-.065em;
}

.j3d-detail__intro>p:not(.j3d-detail__kicker){
  max-width:31rem;
  margin:1.4rem 0 0;
  color:#596063;
  font:400 .95rem/1.65 var(--sans);
}

.j3d-detail__return{
  margin-top:2rem;
  padding:.75rem 0;
  color:var(--j3d-ink);
  background:none;
  border:0;
  border-bottom:1px solid rgba(10,13,16,.2);
  font:700 .66rem/1 var(--sans);
  letter-spacing:.11em;
  cursor:pointer;
}

.j3d-detail__return:hover{color:#8b6423}

.j3d-detail__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-content:start;
  gap:.8rem;
  padding-top:3.2rem;
}

.j3d-detail__grid--single{
  grid-template-columns:minmax(0,1fr);
  max-width:46rem;
}

.j3d-entry{
  min-width:0;
  min-height:14rem;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:1.4rem;
  color:var(--j3d-ink);
  background:#ece8df;
  border:1px solid rgba(10,13,16,.11);
  text-decoration:none;
  transition:transform .28s cubic-bezier(.2,.8,.2,1),background .22s ease,border-color .22s ease;
}

a.j3d-entry:hover{
  transform:translateY(-.22rem);
  background:#fff;
  border-color:rgba(10,13,16,.24);
}

.j3d-entry--wide{grid-column:1/-1}
.j3d-entry--media{min-height:22rem;padding:0;justify-content:flex-start;overflow:hidden}
.j3d-entry--media img{
  width:100%;
  height:15rem;
  object-fit:contain;
  background:#dcd8d0;
}
.j3d-entry--media>span,
.j3d-entry--media>h3,
.j3d-entry--media>p{margin-left:1.4rem;margin-right:1.4rem}
.j3d-entry--media>span{margin-top:1.2rem}

.j3d-entry>span{
  color:#8b6423;
  font:700 .62rem/1.35 var(--sans);
  letter-spacing:.13em;
}

.j3d-entry h3{
  margin:.65rem 0 .35rem;
  color:var(--j3d-ink);
  font:600 clamp(1.2rem,1.8vw,1.75rem)/1 var(--sans);
  letter-spacing:-.04em;
}

.j3d-entry p{
  margin:0;
  color:#596063;
  font:400 .82rem/1.55 var(--sans);
}

.j3d-entry--large-type{
  justify-content:space-between;
  min-height:29rem;
  background:var(--j3d-ink);
  color:var(--j3d-white);
}

.j3d-entry--large-type>span{color:var(--j3d-accent)}
.j3d-entry--large-type>strong{
  margin:2.5rem 0 auto;
  color:var(--j3d-white);
  font:500 clamp(2.5rem,5vw,5.2rem)/.82 var(--sans);
  letter-spacing:-.07em;
}
.j3d-entry--large-type h3{color:var(--j3d-white)}
.j3d-entry--large-type p{color:#aab0b1}

.j3d-entry--paper{
  color:var(--j3d-ink);
  background:#e5dfd3;
}
.j3d-entry--paper>span{color:#8b6423}
.j3d-entry--paper>strong,
.j3d-entry--paper h3{color:var(--j3d-ink)}
.j3d-entry--paper p{color:#596063}

.j3d-entry--amber{background:var(--j3d-accent);color:var(--j3d-ink)}
.j3d-entry--amber>span,
.j3d-entry--amber>strong,
.j3d-entry--amber h3{color:var(--j3d-ink)}
.j3d-entry--amber p{color:rgba(10,13,16,.72)}

body.j3d-detail-open{overflow:hidden!important}

/* Tablet */
@media(max-width:1100px){
  .j3d-intro{width:20rem}
  .j3d-card{width:clamp(19rem,38vw,27rem)}
  .j3d-controls{grid-template-columns:minmax(20rem,.8fr) 1fr auto}
  .j3d-detail__sheet{grid-template-columns:minmax(15rem,.38fr) minmax(0,.62fr)}
  .j3d-detail__grid{grid-template-columns:1fr}
  .j3d-entry--wide{grid-column:auto}
}

/* Mobile */
@media(max-width:760px){
  .journey-3d .site-header{
    background:linear-gradient(180deg,rgba(5,7,8,.96),rgba(5,7,8,.7) 76%,transparent)!important;
  }

  .j3d-world__top{
    top:calc(var(--header,70px) + .7rem);
    font-size:.54rem;
  }

  .j3d-intro{
    top:calc(var(--header,70px) + 2.7rem);
    width:calc(100% - (var(--gutter)*2));
  }

  .j3d-intro h1{
    max-width:21ch;
    font-size:1.12rem;
  }

  .j3d-intro>p:last-child{display:none}

  .j3d-scene{
    inset:calc(var(--header,70px) + 3.5rem) 0 5.8rem;
    perspective:1000px;
    touch-action:none;
  }

  .j3d-floor{
    left:-80vw;
    right:-80vw;
    bottom:-31vh;
    height:78vh;
    background-size:5rem 3rem;
    opacity:.46;
  }

  .j3d-horizon{top:62%}

  .j3d-card{
    top:55%;
    width:min(78vw,23rem);
    height:min(56vh,29rem);
  }

  .j3d-card__media{height:67%}
  .j3d-card__meta{font-size:.49rem}
  .j3d-card h2{font-size:1.42rem}
  .j3d-card__open{font-size:.52rem}

  .j3d-controls{
    left:var(--gutter);
    right:var(--gutter);
    bottom:1rem;
    display:grid;
    grid-template-columns:1fr auto;
    gap:.8rem 1rem;
  }

  .j3d-progress{
    grid-column:1/-1;
    order:-1;
  }

  .j3d-progress button span{font-size:.48rem}
  .j3d-controls>p{text-align:left;font-size:.52rem}
  .j3d-controls__desktop{display:none}
  .j3d-controls__mobile{display:inline}

  .j3d-detail{
    padding:.35rem;
  }

  .j3d-detail__sheet{
    width:100%;
    height:calc(100svh - .7rem);
    display:block;
    padding:1.15rem;
    border-radius:1rem;
  }

  .j3d-detail__close{
    position:sticky;
    top:0;
    margin-left:auto;
  }

  .j3d-detail__intro{
    position:relative;
    padding:0 0 1.8rem;
  }

  .j3d-detail__year{
    margin-top:-1.4rem;
    margin-bottom:1.2rem;
    font-size:5.8rem;
  }

  .j3d-detail__intro h2{
    max-width:12ch;
    font-size:2.65rem;
  }

  .j3d-detail__grid{
    grid-template-columns:1fr;
    padding-top:0;
  }

  .j3d-entry,
  .j3d-entry--media,
  .j3d-entry--large-type{min-height:16rem}

  .j3d-entry--media img{height:13rem}
  .j3d-entry--large-type>strong{font-size:3rem}
}

@media(max-width:420px){
  .j3d-card{width:80vw;height:min(53vh,27rem)}
  .j3d-card__media--credentials img:nth-child(1){left:6%;width:44%}
  .j3d-card__media--credentials img:nth-child(2){right:5%;width:39%}
  .j3d-card__media--credentials img:nth-child(3){right:9%;width:34%}
  .j3d-card__media--credentials img:nth-child(4){left:34%;width:29%}
  .j3d-detail__intro h2{font-size:2.3rem}
}

/* Reduced motion: keep the spatial layout but remove inertia/zoom effects. */
@media(prefers-reduced-motion:reduce){
  .j3d-card,
  .j3d-card__media--image img,
  .j3d-card__open,
  .j3d-detail,
  .j3d-detail__sheet,
  .j3d-entry{
    transition:none!important;
  }
}


/* Release override bundle — authoritative last-mile QA layer. */
/* precision-polish.css */
/* Precision polish — final visual QA layer.
   Loaded last on every public page. It does not redesign components; it
   enforces typography, contrast, alignment, media containment and interaction
   consistency across the portfolio. */

:root{
  --pp-ink:#0b0e10;
  --pp-paper:#f2efe8;
  --pp-white:#fbfaf6;
  --pp-muted-light:#596063;
  --pp-muted-dark:#a6adae;
  --pp-accent:#d9a23b;
  --pp-accent-dark:#8b6423;
}

*,*::before,*::after{box-sizing:border-box}

html{
  max-width:100%;
  overflow-x:clip;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

body,main,section,header,footer,nav,article,aside,figure,div{
  min-width:0;
}

img,video,svg,canvas{
  display:block;
  max-width:100%;
}

main :is(h1,h2,h3,h4){
  text-wrap:balance;
  hanging-punctuation:first last;
}

main :is(p,li,figcaption){
  text-wrap:pretty;
}

main :is(h1,h2,h3,h4,p,li,a,strong,small,span){
  word-break:normal;
}

main a,
main button{
  -webkit-tap-highlight-color:transparent;
}

main :is(a,button,[role="button"]):focus-visible{
  outline:2px solid var(--pp-accent);
  outline-offset:4px;
}

::selection{
  color:#0b0e10;
  background:#d9a23b;
}

/* Prevent text cards from acquiring image-style clipping. */
:is(
  .problem-piece,.moment-copy,.work-tile,.experience-role,.experience-notes article,
  .archive-item,.about-profile__copy,.about-statement__grid,.about-method__head,
  .about-method__steps article,.about-team__copy,.about-capabilities__grid article,
  .about-final__grid,.case-block__content,.process-sequence article,
  .objective-result article,.quick-entry,.quick-action,.ct-panel,.xm-context-card__face
){
  min-width:0;
}

:is(
  .problem-piece,.moment-copy,.work-tile,.experience-role,.experience-notes article,
  .about-method__steps article,.about-team__copy,.about-capabilities__grid article,
  .case-block__content,.process-sequence article,.objective-result article,
  .quick-entry,.quick-action,.ct-panel,.xm-context-card__face
) :is(h1,h2,h3,p,strong,small,a,li){
  max-width:100%;
}

/* WORK */
.page--ink .work-tile{
  align-items:stretch;
}
.page--ink .work-tile img{
  width:100%;
  height:100%;
  min-height:15rem;
  object-fit:cover;
  object-position:center;
}
.page--ink .work-tile :is(h2,p,.mark,.work-tile__proof){
  overflow:visible;
}
.page--ink .work-tile h2{
  line-height:.9;
}
.page--ink .academic-note{
  overflow:visible!important;
}

/* CASE STUDIES */
.case .case-hero__media,
.case .media-spread figure,
.case .newsletter-proof__page{
  min-width:0;
}
.case .case-hero__media img,
.case .media-spread img,
.case .newsletter-proof__page img{
  max-width:100%;
}
.case .case-block__content{
  max-width:58rem;
}
.case .case-block__content>p{
  max-width:48rem;
}
.case .case-meta>div,
.case .process-sequence article,
.case .objective-result article{
  padding-inline:min(1.4rem,4vw);
}

/* Recruiter-facing pages */
.quick :is(.quick-sheet,.quick-section,.quick-entry,.quick-action){
  min-width:0;
}
.quick :is(h1,h2,h3,p,strong,a,span){
  overflow-wrap:break-word;
}

/* ABOUT — text contrast must remain readable at every animation frame. */
.about .about-cinematic-team{
  color:var(--pp-ink)!important;
}
.about .about-cinematic-team .kicker{
  color:var(--pp-accent-dark)!important;
}
.about .about-cinematic-team .about-team__copy h2{
  color:#15191a!important;
}
.about .about-cinematic-team .about-team__copy>p:not(.kicker){
  color:#555e61!important;
}
.about .about-cinematic-team .about-team__terms span{
  color:#202426!important;
  border-color:rgba(11,14,16,.18)!important;
  background:rgba(255,255,255,.22);
}
.about .about-cinematic-capabilities .about-capabilities__grid article :is(h3,li){
  color:#141819!important;
}
.about .about-cinematic-capabilities .about-capabilities__grid article li{
  color:#535b5e!important;
}
.about .about-cinematic-profile .about-profile__lead,
.about .about-cinematic-final :is(p,.language-row span){
  color:#596063!important;
}

/* EXPERIENCE cards — full contrast for active card, still readable off-axis. */
.experience-moto .xm-context-card__face{
  overflow:hidden;
}
.experience-moto .xm-context-card__face :is(h2,p,small,a,.xm-context-card__num){
  position:relative;
  z-index:2;
}
.experience-moto .xm-context-card:not(.is-active) .xm-context-card__face{
  filter:saturate(.78) brightness(.8)!important;
}
.experience-moto .xm-context-card.is-active .xm-context-card__face{
  filter:none!important;
}

/* CONTACT — light technical interface */
.contact-modular .ct-panel :is(h1,h2,strong){
  color:#0b0e10!important;
}
.contact-modular .ct-lead,
.contact-modular .ct-specs p{
  color:#596063!important;
}
.contact-modular .ct-channel{
  overflow:hidden;
}
.contact-modular .ct-channel strong{
  overflow-wrap:anywhere;
}
.contact-modular .ct-primary{
  white-space:nowrap;
}

/* Tablet: remove accidental media escapes while preserving intentional
   full-bleed desktop compositions. */
@media(max-width:1100px){
  .case :is(.case-hero__media,.newsletter-hero-proof,.bastarda-wall){
    max-width:100%!important;
  }
  .case :is(.case-hero__media,.newsletter-hero-proof) img{
    max-width:100%!important;
  }
  .page--ink .work-tile{
    width:100%;
  }
}

/* Mobile: text always takes precedence over decorative motion. */
@media(max-width:760px){
  main :is(h1,h2,h3){
    max-width:100%;
  }

  .about .about-cinematic-team .about-team__copy,
  .about .about-cinematic-team .about-team__copy :is(h2,p,.kicker),
  .about .about-cinematic-team .about-team__terms{
    opacity:1!important;
    filter:none!important;
  }

  .about .about-cinematic-team .about-team__copy h2{
    font-size:clamp(2.9rem,12.5vw,4.3rem)!important;
    line-height:.88!important;
  }

  .about .about-cinematic-team .about-team__number strong{
    font-size:clamp(7.5rem,34vw,10.5rem)!important;
    line-height:.76!important;
    margin-bottom:.7rem;
  }

  .contact-modular .ct-panel{
    visibility:visible!important;
  }

  .case .case-hero__media,
  .case .newsletter-hero-proof,
  .case .bastarda-wall{
    max-width:100%!important;
    transform:none!important;
  }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
  }
}



/* V2 — site-wide final detail pass
   Typography, spacing, media framing and component alignment are normalised
   after the reference-video adaptations. */

/* Universal reading geometry */
main :is(p,li){
  max-width:72ch;
}
main :is(.kicker,.mark,[class*="__meta"],[class*="__kicker"]){
  font-variant-numeric:tabular-nums;
}
main :is(h1,h2,h3){
  text-wrap:balance;
}
main :is(p,li,figcaption){
  orphans:2;
  widows:2;
}
main :is(a,button){
  text-underline-offset:.22em;
}
main :is(img,video){
  height:auto;
}

/* Labels: consistent optical density across all page systems */
:is(
  .home-entry__bar-meta,.home-entry__eyebrow,.selected-head .kicker,
  .xm-hero__meta,.xm-gallery__top,.xm-context-card__num,
  .about-gateway__meta,.about-gateway__copy>span,.kicker,.mark,
  .ct-meta,.ct-kicker,.case-block__label,.case-meta span,
  .quick-kicker,.j3d-kicker,.j3d-detail__kicker
){
  letter-spacing:.14em;
}

/* HOME */
.home .home-entry__reveal h2{
  max-width:8.5ch!important;
}
.home .home-entry__lead{
  max-width:32rem!important;
}
.home .selected-head{
  align-items:end;
}
.home .moment-copy{
  padding:clamp(1rem,2vw,1.6rem)!important;
}
.home .moment-copy h3{
  max-width:12ch!important;
  line-height:.9!important;
}
.home .moment-copy p{
  max-width:30rem!important;
  line-height:1.55!important;
}

/* WORK */
.page--ink .page-hero h1{
  max-width:13ch;
}
.page--ink .work-tile{
  overflow:hidden!important;
}
.page--ink .work-tile h2{
  max-width:10ch;
}
.page--ink .work-tile p{
  line-height:1.58;
}
.page--ink .work-tile img{
  object-position:center center;
}
.page--ink .work-tile--newsletter img{
  object-fit:contain!important;
  background:#e9e5dc;
}
.page--ink .academic-note{
  padding-block:1.4rem!important;
}

/* EXPERIENCE */
.experience-moto :is(.xm-hero__copy,.xm-intro__inner,.xm-statement__copy,.xm-access__copy){
  max-width:calc(100% - (var(--gutter)*2));
}
.experience-moto .xm-intro p,
.experience-moto .xm-access__copy p{
  line-height:1.62!important;
}
.experience-moto .xm-context-card__face{
  min-height:0!important;
}
.experience-moto .xm-index__rows article>*{
  min-width:0;
}
.experience-moto .xm-index__rows p{
  overflow-wrap:normal;
}

/* JOURNEY */
.journey-3d .j3d-card{
  max-width:calc(100vw - (var(--gutter)*2));
}
.journey-3d .j3d-card__media{
  isolation:isolate;
}
.journey-3d .j3d-card h2{
  max-width:12ch!important;
}
.journey-3d .j3d-detail__intro h2{
  max-width:11.5ch!important;
}
.journey-3d .j3d-entry{
  overflow:hidden;
}
.journey-3d .j3d-entry h3{
  max-width:18ch;
}
.journey-3d .j3d-entry p{
  line-height:1.6!important;
}
.journey-3d .j3d-entry--media img{
  object-position:center;
}

/* ABOUT */
.about .about-gateway__copy p,
.about .about-profile__lead,
.about .about-team__copy>p,
.about .about-final p{
  line-height:1.62!important;
}
.about .about-method__steps article p{
  line-height:1.6!important;
}
.about .about-capabilities__grid article{
  overflow:hidden;
}
.about .about-capabilities__grid li{
  line-height:1.35!important;
}
.about .language-row{
  min-height:3.3rem;
  align-items:center;
}

/* CONTACT */
.contact-modular .ct-panel{
  min-width:0;
}
.contact-modular .ct-panel :is(h1,h2,p,strong,small,span){
  max-width:100%;
}
.contact-modular .ct-channel strong{
  word-break:break-word;
}
.contact-modular .ct-readouts span{
  overflow:hidden;
}
.contact-modular .ct-floater img{
  width:100%;
  object-position:center;
}

/* CASE STUDIES */
.case .case-hero__content h1{
  max-width:12ch;
}
.case .case-hero__content>p{
  max-width:36rem;
  line-height:1.62!important;
}
.case .case-block__content h2{
  max-width:15ch;
}
.case .case-block__content p{
  line-height:1.65!important;
}
.case .case-meta>div{
  min-width:0;
}
.case .case-meta :is(strong,p,span){
  max-width:100%;
}
.case .media-spread figure,
.case .newsletter-proof__page{
  overflow:hidden;
}
.case .media-spread img,
.case .newsletter-proof__page img{
  width:100%;
  object-position:center;
}
.case .process-sequence article,
.case .objective-result article{
  min-height:11rem;
  align-content:start;
}

/* QUICK VIEW */
.quick .quick-entry{
  align-items:start;
}
.quick .quick-entry h3{
  max-width:18ch;
}
.quick .quick-entry p{
  line-height:1.55!important;
}
.quick .quick-action{
  min-height:6rem;
}

/* SKILLS */
.skills .page-hero h1,
.competencias .page-hero h1{
  max-width:12ch;
}
.skills :is(.section p,.section li),
.competencias :is(.section p,.section li){
  line-height:1.58;
}

/* Image and text optical alignment */
@media(min-width:901px){
  .case .case-block__content,
  .about .about-team__copy,
  .contact-modular .ct-copy{
    text-rendering:optimizeLegibility;
  }
}

/* Tablet */
@media(max-width:1100px){
  main :is(h1,h2,h3,p,li,a,strong,small,span){
    max-width:100%;
  }
  .experience-moto .xm-index__rows article{
    column-gap:1.25rem!important;
  }
  .about .about-profile__grid{
    column-gap:2rem!important;
  }
}

/* Mobile: content first, effects second */
@media(max-width:760px){
  body{
    overflow-x:clip!important;
  }
  main :is(p,li){
    max-width:100%;
  }
  .home .home-entry__reveal,
  .experience-moto .xm-context-card__face,
  .about .about-profile__copy,
  .about .about-team__copy,
  .contact-modular .ct-panel,
  .case .case-block__content{
    min-width:0!important;
  }
  .experience-moto .xm-index__rows p,
  .about .about-profile__lead,
  .contact-modular .ct-lead,
  .case .case-block__content p{
    font-size:max(.82rem,14px)!important;
  }
  .journey-3d .j3d-detail__sheet{
    overscroll-behavior:contain;
  }
  .journey-3d .j3d-entry{
    min-width:0;
  }
}

/* No animation frame is allowed to make primary readable copy disappear. */
@media(prefers-reduced-motion:reduce){
  :is(
    .xm-context-card,.about-profile__copy,.about-team__copy,.ct-panel,
    .work-tile,.case-block__content,.quick-entry,.j3d-entry
  ){
    opacity:1!important;
    visibility:visible!important;
    filter:none!important;
  }
}



/* V2.1 — WORK WebKit content-height correction */
.page--ink .work-tile{
  height:auto!important;
  min-height:15rem!important;
  overflow:visible!important;
  align-content:start!important;
}
.page--ink .work-tile img{
  overflow:hidden!important;
}
.page--ink .work-tile :is(.work-tile__proof,.mark,h2,p,.tile-number){
  overflow:visible!important;
}
@media(max-width:900px){
  .page--ink .work-tile{min-height:0!important}
}



/* V3 — exhaustive site-wide optical polish
   Final layer after page-specific systems. Focus: readable contrast, rhythm,
   baseline alignment, image containment, optical balance and zero text clipping. */

/* Global type rhythm */
main{
  --pp-reading:68ch;
}
main :is(h1,h2,h3,h4){
  margin-block-start:0;
  font-kerning:normal;
  font-synthesis:none;
}
main :is(p,li,figcaption){
  max-width:var(--pp-reading);
}
main :is(.kicker,.mark,[class*="__kicker"],[class*="__meta"]){
  line-height:1.35!important;
}
main :is(a,button){
  font-synthesis:none;
}
main :is(img,video){
  object-position:center;
}
main :is(figure,article){
  min-width:0;
}

/* Avoid visually weak low-contrast microcopy. */
:is(
  .hero-meta,.hero-bottom,.page-hero__meta,.case-meta small,
  .work-tile__proof,.xm-hero__meta,.xm-gallery__top,.xm-context-card small,
  .j3d-card__meta,.j3d-world__top,.about-gateway__meta,.about-profile figcaption,
  .ct-meta,.ct-readouts,.ct-panel>small,.quick-kicker
){
  opacity:1!important;
}

/* HOME */
.home .home-entry__titleband h1{
  text-wrap:nowrap;
}
.home .home-entry__cover-copy{
  max-width:calc(100% - (var(--gutter)*2));
}
.home .problems__statement{
  max-width:min(58rem,100%);
}
.home .problem-piece{
  min-height:7.5rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.home .problem-piece strong{
  line-height:1.12;
}
.home .selected-head .section-title{
  max-width:10.5ch!important;
}
.home .work-composition .moment{
  border-radius:0!important;
}
.home .work-composition .moment img{
  object-fit:cover;
}
.home .work-composition .moment--newsletter img{
  object-fit:contain!important;
  background:#ece6db;
}
.home .moment-copy{
  backdrop-filter:blur(8px);
}

/* WORK */
.page--ink .page-intro{
  align-items:start!important;
}
.page--ink .page-intro .lead{
  max-width:36rem;
}
.page--ink .work-wall__grid{
  border-top:1px solid rgba(255,255,255,.12);
}
.page--ink .work-tile{
  min-height:16rem!important;
}
.page--ink .work-tile h2{
  text-wrap:balance;
}
.page--ink .work-tile p{
  max-width:44rem;
}
.page--ink .work-tile img{
  min-height:12.5rem;
  max-height:18rem;
}
.page--ink #academic-work .academic-note{
  align-items:start!important;
}
.page--ink #academic-work .academic-note>p{
  max-width:32rem;
}

/* EXPERIENCE */
.experience-moto .xm-hero__copy h1{
  max-width:11ch;
  margin-inline:auto;
}
.experience-moto .xm-intro h2,
.experience-moto .xm-statement__copy h2,
.experience-moto .xm-access__copy h2{
  text-wrap:balance;
}
.experience-moto .xm-index__head h2{
  max-width:13ch!important;
}
.experience-moto .xm-index__rows article{
  align-items:start!important;
}
.experience-moto .xm-index__rows p{
  max-width:40rem;
}
.experience-moto .xm-context-card__face{
  isolation:isolate;
}
.experience-moto .xm-context-card__face::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.08));
}
.experience-moto .xm-context-card__face>*{
  position:relative;
  z-index:1;
}

/* JOURNEY */
.journey-3d .j3d-card{
  isolation:isolate;
}
.journey-3d .j3d-card__meta{
  align-items:start;
}
.journey-3d .j3d-card__meta span:last-child{
  max-width:17rem;
  text-align:right;
}
.journey-3d .j3d-card__open{
  white-space:nowrap;
}
.journey-3d .j3d-detail__sheet{
  scrollbar-gutter:stable;
}
.journey-3d .j3d-entry{
  min-height:15rem;
}
.journey-3d .j3d-entry--media{
  min-height:23rem;
}
.journey-3d .j3d-entry--media img{
  object-fit:contain;
  background:#e8e3da;
}
.journey-3d .j3d-detail__intro>p:not(.j3d-detail__kicker){
  max-width:28rem;
}

/* ABOUT */
.about .about-gateway__copy{
  min-width:0;
}
.about .about-gateway__copy h1{
  max-width:10ch;
}
.about .about-profile__copy h1{
  max-width:11ch!important;
}
.about .about-profile__facts article{
  align-items:start!important;
}
.about .about-statement__grid>div{
  min-width:0;
}
.about .about-method__head h2{
  max-width:12ch!important;
}
.about .about-method__steps article h3{
  margin-bottom:.7rem;
}
.about .about-team__copy>p{
  max-width:34rem;
}
.about .about-capabilities__head{
  align-items:end!important;
}
.about .about-capabilities__head>p{
  max-width:27rem;
}
.about .about-capabilities__grid article h3{
  max-width:13ch;
}
.about .about-final__grid>div{
  min-width:0;
}
.about .language-row{
  grid-template-columns:minmax(7rem,.35fr) minmax(0,.65fr)!important;
}

/* CONTACT */
.contact-modular .ct-copy{
  min-width:0;
}
.contact-modular .ct-panel h1,
.contact-modular .ct-panel h2{
  max-width:9ch!important;
}
.contact-modular .ct-channel{
  min-width:0;
}
.contact-modular .ct-channel strong{
  line-height:1.18!important;
}
.contact-modular .ct-specs strong{
  line-height:1.15!important;
}
.contact-modular .ct-readouts b{
  display:block;
  margin-bottom:.25rem;
}
.contact-modular .ct-next h2{
  max-width:11ch!important;
}

/* CASE STUDIES */
.case .case-hero__content{
  min-width:0;
}
.case .case-hero__content h1{
  max-width:11ch!important;
}
.case .case-hero__content>p{
  max-width:34rem!important;
}
.case .case-meta{
  align-items:stretch!important;
}
.case .case-meta>div{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:5.7rem;
}
.case .case-meta strong{
  line-height:1.25;
}
.case .case-block__content h2{
  max-width:13ch!important;
}
.case .case-block__content>p{
  max-width:44rem!important;
}
.case .process-sequence,
.case .objective-result{
  align-items:stretch!important;
}
.case .process-sequence article,
.case .objective-result article{
  height:100%;
}
.case .media-spread figure img{
  object-fit:cover;
}
.case--newsletter .newsletter-proof__page img,
.case--automation .case-hero__media img{
  object-fit:contain!important;
}
.case .case-next strong{
  max-width:14ch;
  text-align:center;
}

/* QUICK VIEW / SKILLS */
.quick main{
  min-width:0;
}
.quick .quick-sheet{
  max-width:100%;
}
.quick .quick-entry{
  gap:1rem;
}
.quick .quick-entry h3{
  line-height:1!important;
}
.quick .quick-entry p{
  max-width:44rem;
}
.quick .quick-action{
  align-items:center;
}
.quick .quick-action strong{
  line-height:1.08;
}

/* Optical media framing */
:is(
  .about-profile__portrait,.ct-portrait,.j3d-card__media,
  .case-hero__media,.media-spread figure,.newsletter-proof__page
){
  background:#e9e5dc;
}

/* Tablet */
@media(max-width:1100px){
  .home .home-entry__titleband h1{
    white-space:normal;
  }
  .page--ink .work-tile{
    grid-template-columns:minmax(11rem,31%) minmax(0,1fr) auto!important;
  }
  .experience-moto .xm-index__rows article{
    grid-template-columns:3rem minmax(10rem,.3fr) minmax(0,.7fr)!important;
  }
  .experience-moto .xm-index__rows article small{
    grid-column:2!important;
  }
  .experience-moto .xm-index__rows article p{
    grid-column:3!important;
    grid-row:1/3!important;
  }
  .experience-moto .xm-index__rows article a{
    grid-column:3!important;
  }
}

/* Mobile */
@media(max-width:760px){
  main{
    --pp-reading:100%;
  }
  main :is(h1,h2,h3,p,li,strong,small,a,span){
    overflow-wrap:normal;
  }
  .home .home-entry__titleband h1{
    white-space:normal;
    max-width:100%;
  }
  .home .problem-piece{
    min-height:6.6rem;
  }
  .page--ink .work-tile{
    grid-template-columns:1fr auto!important;
  }
  .page--ink .work-tile img{
    max-height:none;
  }
  .experience-moto .xm-index__rows article{
    display:block!important;
  }
  .experience-moto .xm-index__rows article>*{
    display:block;
    margin-bottom:.55rem;
  }
  .experience-moto .xm-index__rows article>a{
    width:max-content;
    max-width:100%;
    margin-top:.8rem;
  }
  .journey-3d .j3d-card__meta{
    gap:.6rem;
  }
  .journey-3d .j3d-card__meta span:last-child{
    max-width:10rem;
  }
  .journey-3d .j3d-card h2{
    font-size:clamp(1.85rem,8.6vw,2.5rem)!important;
  }
  .about .about-profile__copy h1{
    font-size:clamp(3rem,12.6vw,4.4rem)!important;
    line-height:.87!important;
  }
  .about .about-statement__grid{
    gap:1.2rem!important;
  }
  .about .language-row{
    grid-template-columns:1fr!important;
    gap:.25rem;
  }
  .contact-modular .ct-channel strong{
    font-size:max(.96rem,15px)!important;
  }
  .case .case-hero__content h1{
    font-size:clamp(3.3rem,14.4vw,5.1rem)!important;
    line-height:.85!important;
  }
  .case .case-block__content h2{
    font-size:clamp(2.65rem,11.5vw,4.1rem)!important;
    line-height:.9!important;
  }
  .case .case-meta{
    grid-template-columns:1fr!important;
  }
  .case .case-meta>div{
    min-height:0;
    padding-block:.85rem!important;
  }
  .quick .quick-entry{
    grid-template-columns:1fr!important;
  }
}

/* Small mobile */
@media(max-width:420px){
  .experience-moto .xm-context-card h2{
    max-width:100%!important;
  }
  .journey-3d .j3d-card__meta span:last-child{
    font-size:.44rem;
  }
  .contact-modular .ct-readouts{
    grid-template-columns:1fr!important;
  }
}

/* Reduced-motion: all primary copy stays fully visible. */
@media(prefers-reduced-motion:reduce){
  main :is(
    .home-entry__reveal,.problem-piece,.work-tile,.xm-context-card,.xm-statement__copy,
    .j3d-card,.j3d-entry,.about-profile__copy,.about-statement__grid,
    .about-method__steps article,.about-team__copy,.about-capabilities__grid article,
    .ct-panel,.case-block__content,.process-sequence article,.objective-result article,
    .quick-entry,.quick-action
  ){
    opacity:1!important;
    visibility:visible!important;
    filter:none!important;
    transform:none!important;
  }
}



/* V3.1 — Newsletter hero contrast correction.
   The real cover is intentionally light; copy must sit on a controlled dark
   editorial veil so title, lead and metadata stay readable on every viewport. */
.case--newsletter .newsletter-case-hero{
  color:#f4f0e8!important;
  background:#0d1113!important;
}
.case--newsletter .newsletter-case-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(13,17,19,.96) 0%,rgba(13,17,19,.9) 44%,rgba(13,17,19,.58) 68%,rgba(13,17,19,.34) 100%),
    linear-gradient(180deg,rgba(13,17,19,.16),rgba(13,17,19,.54));
}
.case--newsletter .newsletter-case-hero .newsletter-hero-proof{
  z-index:0!important;
  filter:saturate(.86) contrast(1.02) brightness(.82);
}
.case--newsletter .newsletter-case-hero .case-hero__content{
  z-index:2!important;
  color:#f4f0e8!important;
}
.case--newsletter .newsletter-case-hero .case-hero__content :is(h1,.lead,strong){
  color:#f4f0e8!important;
}
.case--newsletter .newsletter-case-hero .case-hero__content .lead{
  color:#c2c8c9!important;
}
.case--newsletter .newsletter-case-hero .kicker{
  color:#d9a23b!important;
}
.case--newsletter .newsletter-case-hero .case-meta{
  background:rgba(255,255,255,.12)!important;
}
.case--newsletter .newsletter-case-hero .case-meta>div{
  color:#f4f0e8!important;
  background:rgba(13,17,19,.78)!important;
  border-color:rgba(255,255,255,.13)!important;
}
.case--newsletter .newsletter-case-hero .case-meta small{
  color:#a6adae!important;
}
@media(max-width:760px){
  .case--newsletter .newsletter-case-hero::before{
    background:
      linear-gradient(180deg,rgba(13,17,19,.72) 0%,rgba(13,17,19,.88) 38%,rgba(13,17,19,.94) 100%)!important;
  }
  .case--newsletter .newsletter-case-hero .newsletter-hero-proof{
    opacity:.62;
  }
}



/* V4 — release-gate accessibility and contrast corrections.
   These rules are deliberately last: they preserve the approved layouts while
   removing weak contrast discovered by the WCAG release audit. */

/* HOME */
.home .manifesto-strip__track span{
  color:#92999b!important;
}
.home .problems .problem-piece span{
  color:#8b6423!important;
}
.home .problems .problem-piece strong{
  color:#0b0e10!important;
}

/* WORK */
.page--ink .academic-note__award{
  background:#252a2d!important;
}
.page--ink .academic-note__award span{
  color:#d9a23b!important;
}
.page--ink .academic-note__award strong{
  color:#f2efe8!important;
}

/* EXPERIENCE */
.experience-moto .xm-statement__ghost span{
  color:#828a86!important;
  opacity:1!important;
}
.experience-moto .xm-statement__copy>p{
  color:#596063!important;
}
.experience-moto .xm-index__head>span{
  color:#596063!important;
}
.experience-moto .xm-index__rows article>span{
  color:#8b6423!important;
}
.experience-moto .xm-index__rows article h3{
  color:#202526!important;
}
.experience-moto .xm-index__rows article small,
.experience-moto .xm-index__rows article p{
  color:#596063!important;
}
.experience-moto .xm-index__rows article a{
  color:#4f5658!important;
}
.experience-moto .xm-index__rows article a:hover{
  color:#8b6423!important;
}

/* ABOUT + SKILLS reuse the same profile/fact components. */
.about .about-profile__availability>span,
.skills .about-profile__availability>span,
.competencias .about-profile__availability>span{
  color:#8b6423!important;
}
.about .about-profile__availability>strong,
.skills .about-profile__availability>strong,
.competencias .about-profile__availability>strong{
  color:#202526!important;
}
.about .about-profile__availability>small,
.skills .about-profile__availability>small,
.competencias .about-profile__availability>small,
.about .about-profile__facts article span,
.skills .about-profile__facts article span,
.competencias .about-profile__facts article span{
  color:#646a6c!important;
}
.about .about-cinematic-capabilities .kicker,
.skills .about-cinematic-capabilities .kicker,
.competencias .about-cinematic-capabilities .kicker{
  color:#8b6423!important;
}
.about .about-cinematic-capabilities .about-capabilities__head>p,
.skills .about-cinematic-capabilities .about-capabilities__head>p,
.competencias .about-cinematic-capabilities .about-capabilities__head>p{
  color:#596063!important;
}
.about .about-cinematic-final .kicker,
.skills .about-cinematic-final .kicker,
.competencias .about-cinematic-final .kicker{
  color:#8b6423!important;
}

/* CASE STUDIES — sticky section navigation always sits on a light surface. */
.case .case-nav a{
  color:#4f5658!important;
}
.case .case-nav a:hover,
.case .case-nav a:focus-visible{
  color:#0b0e10!important;
}
.case--automation .case-meta{
  background:rgba(11,14,16,.18)!important;
}
.case--automation .case-meta>div{
  color:#0b0e10!important;
  background:#d7ff43!important;
}
.case--automation .case-meta small{
  color:#4b561d!important;
}
.case--automation .case-meta strong{
  color:#0b0e10!important;
}
.case--bastarda .bastarda-wall span{
  color:#f2efe8!important;
  opacity:1!important;
}
.case--bastarda .bastarda-wall span:nth-child(2),
.case--bastarda .bastarda-wall span:nth-child(3){
  color:#0b0e10!important;
  background:#f2efe8!important;
}

/* Preserve the dark Newsletter hero contrast established in V3.1. */
.case--newsletter .newsletter-case-hero .case-meta small{
  color:#c2c8c9!important;
}
.case--newsletter .newsletter-case-hero .case-meta strong{
  color:#f4f0e8!important;
}

/* final-release.css */
/* Final release QA layer
   Purpose: accessibility, legibility and last-mile editorial consistency.
   Loaded last so this file is the authoritative release surface. */

:root{
  --qa-ink:#111516;
  --qa-muted:#4a5153;
  --qa-paper:#f2efe8;
  --qa-amber-dark:#795a23;
}

/* HOME — keep the animated notes fully readable at every point of the reveal. */
.home .problem-piece{
  opacity:1!important;
}
.home .problem-piece span{
  color:#72551f!important;
  opacity:1!important;
}
.home .problem-piece strong{
  color:#15191a!important;
  opacity:1!important;
}

/* WORK — recognition card has a deliberate dark editorial surface and
   sufficient contrast rather than muted plum-on-grey text. */
.page--ink .academic-note__award{
  color:#f7f4ed!important;
  background:#151a1c!important;
  border:1px solid rgba(255,255,255,.14)!important;
}
.page--ink .academic-note__award span,
.page--ink .academic-note__award strong{
  color:#f7f4ed!important;
  opacity:1!important;
}

/* ABOUT — profile metadata sits on a light surface in the cinematic version. */
.about .about-profile__availability{
  color:var(--qa-ink)!important;
}
.about .about-profile__availability>span{
  color:var(--qa-amber-dark)!important;
}
.about .about-profile__availability>strong{
  color:var(--qa-ink)!important;
}
.about .about-profile__availability>small{
  color:var(--qa-muted)!important;
}
.about .about-profile__facts article{
  color:var(--qa-ink)!important;
}
.about .about-profile__facts article>strong{
  color:#6f531f!important;
}
.about .about-profile__facts article>span{
  color:var(--qa-muted)!important;
  opacity:1!important;
}

/* EXPERIENCE — decorative typography remains visible enough to read as type,
   not as accidental low-contrast UI. Context rows retain hierarchy through the
   amber rail/position, not by fading the actual information. */
.experience-moto .xm-statement__ghost{
  color:#666d6e!important;
}
.experience-moto .xm-statement__ghost span{
  color:inherit!important;
  opacity:1!important;
}
.experience-moto .xm-index__rows article{
  opacity:1!important;
}
.experience-moto .xm-index__rows article>span,
.experience-moto .xm-index__rows small,
.experience-moto .xm-index__rows p{
  color:#4a5153!important;
}
.experience-moto .xm-index__rows h3,
.experience-moto .xm-index__rows a{
  color:#111516!important;
}
.experience-moto .xm-index__rows a{
  font-size:max(.64rem,10.25px)!important;
}
.experience-moto .xm-context-card__face small,
.experience-moto .xm-context-card__num{
  opacity:1!important;
}

/* CASE STUDIES — sticky chapter navigation is intentionally paper-coloured.
   Never reduce link opacity: that was the remaining WCAG failure on several
   project pages. */
.case .case-nav{
  color:var(--qa-ink)!important;
  background:rgba(242,239,232,.97)!important;
  border-bottom-color:rgba(17,21,22,.14)!important;
}
.case .case-nav a{
  color:#394043!important;
  opacity:1!important;
  font-size:max(.7rem,11px)!important;
}
.case .case-nav a:hover,
.case .case-nav a[aria-current="true"]{
  color:var(--qa-amber-dark)!important;
}
.case .case-nav a::after{
  background:var(--qa-amber-dark)!important;
}

/* Universal release typography safeguards. */
:is(.kicker,.mark,.mini-label,.chapter,.meta){
  text-rendering:optimizeLegibility;
}
:is(.lead,p,small,span,strong,h1,h2,h3){
  overflow-wrap:break-word;
}
img{
  image-rendering:auto;
}

/* Microcopy is allowed to be small but must not collapse into illegible 8px
   interface text on desktop or mobile. */
@media(max-width:700px){
  .experience-moto :is(.xm-hero__meta,.xm-gallery__top,.xm-feature__small,.xm-ticker,.xm-access__copy>span),
  .contact-modular :is(.ct-meta,.ct-readouts,.ct-panel>span),
  .home :is(.home-entry__bar-meta,.home-entry__cover-copy>span,.home-entry__cover-copy>p){
    font-size:max(.62rem,10px)!important;
  }
}

/* Text on photography gets a controlled legibility layer without changing the
   photograph's colour treatment. */
:is(.case-hero,.xm-feature,.moment--hub,.moment--newsletter) :is(h1,h2,h3,p,small,span){
  text-wrap:pretty;
}

/* Keep keyboard focus aligned with the site's actual palette. */
:where(a,button,[role="button"]):focus-visible{
  outline:3px solid #b9872d!important;
  outline-offset:4px!important;
}

@media(prefers-reduced-motion:reduce){
  .home .problem-piece,
  .experience-moto .xm-index__rows article{
    opacity:1!important;
  }
}



/* V2 — eliminate opacity-based contrast regressions from motion layers.
   Text remains fully opaque; movement is carried by transform/clip geometry. */
.page--ink .academic-note,
.page--ink .academic-note[data-premium-reveal],
.page--ink .academic-note__award,
.page--ink .academic-note__award *{
  opacity:1!important;
}

.about .about-profile__copy,
.about .about-profile__availability,
.about .about-profile__availability *,
.about .about-profile__facts,
.about .about-profile__facts article,
.about .about-profile__facts article *{
  opacity:1!important;
}

.about .about-capabilities__head,
.about .about-capabilities__head * ,
.about .about-final__languages,
.about .about-final__languages *{
  opacity:1!important;
}

.about .about-capabilities__head .kicker,
.about .about-final__languages .kicker{
  color:#72551f!important;
}

.about .about-capabilities__head>p,
.about .about-final__languages p,
.about .about-final__languages span{
  color:#42494b!important;
}

/* Textual reveal elements must never become semi-transparent. */
body.premium-ready [data-premium-reveal]{
  opacity:1!important;
}
body.premium-ready [data-premium-reveal].is-premium-in{
  opacity:1!important;
}

/* EXPERIENCE decorative words now function as readable editorial background,
   while remaining visually subordinate through scale/position rather than alpha. */
.experience-moto .xm-statement__ghost,
.experience-moto .xm-statement__ghost span{
  opacity:1!important;
}

/* Keep all readable index rows fully opaque even before scroll activation. */
.experience-moto .xm-index__rows article,
.experience-moto .xm-index__rows article *{
  opacity:1!important;
}



/* V3 — specificity-safe release contrast. */
body.page--ink main > section#academic-work .academic-note__award{
  color:#f7f4ed!important;
  background:#111516!important;
}
body.page--ink main > section#academic-work .academic-note__award>span,
body.page--ink main > section#academic-work .academic-note__award>strong{
  color:#f7f4ed!important;
  opacity:1!important;
}

body.about .about-cinematic-capabilities .about-capabilities__head>p{
  color:#3f4749!important;
  opacity:1!important;
}
body.about .about-cinematic-capabilities .about-capabilities__head .kicker{
  color:#72551f!important;
  opacity:1!important;
}
body.about .about-cinematic-final .about-final__languages .kicker{
  color:#72551f!important;
  opacity:1!important;
}
body.about .about-cinematic-profile .about-profile__availability,
body.about .about-cinematic-profile .about-profile__availability *,
body.about .about-cinematic-profile .about-profile__facts,
body.about .about-cinematic-profile .about-profile__facts *{
  opacity:1!important;
}
body.about .about-cinematic-profile .about-profile__availability>span{
  color:#72551f!important;
}
body.about .about-cinematic-profile .about-profile__availability>strong{
  color:#111516!important;
}
body.about .about-cinematic-profile .about-profile__availability>small,
body.about .about-cinematic-profile .about-profile__facts article>span{
  color:#41494b!important;
}



/* V4 — tablet/mobile contrast hardening. */
.about-final__languages{
  color:#111516!important;
}
.about-final__languages>.kicker{
  color:#5b4318!important;
  opacity:1!important;
}
.about-final__languages .language-row,
.about-final__languages .language-row *{
  opacity:1!important;
}
.about-final__languages .language-row>span{
  color:#303638!important;
}

.case--bastarda .bastarda-wall span{
  opacity:1!important;
}
.case--bastarda .bastarda-wall span:nth-child(1),
.case--bastarda .bastarda-wall span:nth-child(4){
  color:#f4f0e8!important;
  background:#151719!important;
}
.case--bastarda .bastarda-wall span:nth-child(2),
.case--bastarda .bastarda-wall span:nth-child(3){
  color:#111516!important;
  background:#f2efe8!important;
}

@media(max-width:1000px){
  body.about .about-cinematic-profile .about-profile__availability{
    color:#111516!important;
    background:#fbfaf6!important;
    border-color:rgba(17,21,22,.16)!important;
  }
  body.about .about-cinematic-profile .about-profile__availability>span{
    color:#5b4318!important;
  }
  body.about .about-cinematic-profile .about-profile__availability>strong{
    color:#111516!important;
  }
  body.about .about-cinematic-profile .about-profile__availability>small{
    color:#303638!important;
  }
}



/* V5 — final tablet/mobile surface isolation. */
@media(max-width:1100px){
  body.about .about-cinematic-final,
  body.about .about-cinematic-final>.shell,
  body.about .about-cinematic-final .about-final__grid,
  body.about .about-cinematic-final .about-final__languages,
  body.about .about-cinematic-final .language-row{
    color:#111516!important;
    background:#fbfaf6!important;
    opacity:1!important;
    filter:none!important;
  }
  body.about .about-cinematic-final .about-final__languages>.kicker{
    color:#4b3510!important;
    opacity:1!important;
  }
  body.about .about-cinematic-final .language-row>strong{
    color:#111516!important;
    opacity:1!important;
  }
  body.about .about-cinematic-final .language-row>span{
    color:#252b2d!important;
    opacity:1!important;
  }

  /* Decorative Bastarda word-wall is useful on large screens, but adds visual
     noise and weak contrast once the viewport becomes tablet-sized. */
  body.case--bastarda .bastarda-wall{
    display:none!important;
  }
}



/* V6 — automation case study brought into the final editorial palette.
   Removes the legacy lime surface that produced the last WebKit contrast failure. */
body.case--automation .case-hero{
  color:#111516!important;
  background:#f2efe8!important;
}
body.case--automation .case-hero__content,
body.case--automation .case-hero__content :is(h1,.lead,strong){
  color:#111516!important;
  opacity:1!important;
}
body.case--automation .case-hero__content .lead{
  color:#394043!important;
}
body.case--automation .case-hero__content .kicker{
  color:#5b4318!important;
  opacity:1!important;
}
body.case--automation .case-meta{
  background:rgba(17,21,22,.14)!important;
}
body.case--automation .case-meta>div{
  color:#111516!important;
  background:#fbfaf6!important;
}
body.case--automation .case-meta small{
  color:#41494b!important;
  opacity:1!important;
}
body.case--automation .automation-repeat{
  color:rgba(17,21,22,.08)!important;
}
body.case--automation .case-hero .rc-word{
  color:inherit!important;
  opacity:1!important;
}


/* V6.1 — purely decorative automation repeat is removed from the release surface. */
body.case--automation .automation-repeat{display:none!important}




/* V7 — mobile optical legibility.
   Metadata remains visually secondary, but no release microcopy is allowed to
   collapse into 7–9px text on a 390px viewport. */
@media(max-width:700px){
  body.home :is(
    .home-room__frame span,.home-entry__bar-meta,.home-entry__cover-copy>span,
    .home-entry__cover-copy>p,.home-entry__interstitial small,.home-entry__midcopy>span,
    .home-entry__midcopy p,.home-entry__hint
  ){
    font-size:max(.625rem,10px)!important;
  }
  body.home .home-entry__actions a{
    font-size:max(.6875rem,11px)!important;
  }

  body.experience-moto :is(
    .xm-hero__meta,.xm-hero__copy>p,.xm-pass small,.xm-pass span,.xm-pass i,
    .xm-intro__inner>span,.xm-gallery__top,.xm-context-card__num,
    .xm-context-card small,.xm-gallery__handoff>span,.xm-statement__copy>span,
    .xm-feature__small,.xm-ticker,.xm-access__copy>span
  ){
    font-size:max(.625rem,10px)!important;
  }
  body.experience-moto .xm-context-card a{
    font-size:max(.625rem,10px)!important;
  }

  body.journey-3d :is(
    .j3d-world__top,.j3d-kicker,.j3d-card__meta,.j3d-card__open,
    .j3d-controls,.j3d-progress button,.j3d-detail__kicker,.j3d-entry>span
  ){
    font-size:max(.625rem,10px)!important;
  }

  body.about :is(
    .about-gateway__meta,.about-gateway__copy>span,.about-id-card>span,
    .about-id-card>small,.about-team__number>span
  ){
    font-size:max(.625rem,10px)!important;
  }
  body.about .about-gateway__enter{
    font-size:max(.6875rem,11px)!important;
  }

  body.contact-modular :is(
    .ct-meta,.ct-portrait__label,.ct-readouts span,.ct-readouts b,
    .ct-kicker,.ct-panel>small,.ct-channel span,.ct-tags span,
    .ct-rail span,.ct-rail small
  ){
    font-size:max(.625rem,10px)!important;
  }
  body.contact-modular :is(.ct-primary,.ct-next a){
    font-size:max(.6875rem,11px)!important;
  }
}



/* V8 — final cross-engine contrast surfaces.
   These selectors remove ambiguous inherited colours that WebKit resolved
   differently from Chromium/Firefox in reduced-motion audits. */

/* HOME final work hand-off belongs to the dark Selected Work chapter. */
body.home .home-work-link{
  color:#f4f0e8!important;
  background:#0d1113!important;
  border-color:rgba(244,240,232,.18)!important;
}
body.home .home-work-link>span{
  color:#c2c7c8!important;
}
body.home .home-work-link>strong,
body.home .home-work-link>b{
  color:#d9a23b!important;
}

/* CASE process/result cards use one authoritative dark editorial treatment.
   Alternation remains at chapter level rather than inside readable cards. */
body.case .process-sequence article,
body.case .objective-result article{
  color:#f4f0e8!important;
  background:#171d20!important;
  border-color:rgba(244,240,232,.14)!important;
}
body.case .process-sequence article :is(h3,strong),
body.case .objective-result article :is(h3,strong){
  color:#f4f0e8!important;
}
body.case .process-sequence article p,
body.case .objective-result article p{
  color:#c2c7c8!important;
}
body.case .process-sequence article>span,
body.case .objective-result article>span{
  color:#d9a23b!important;
}

/* Newsletter evidence pages sit on a dark chapter; only the image has a paper
   backing. Captions therefore use light text on a transparent figure surface. */
body.case--newsletter .newsletter-proof__page{
  background:transparent!important;
  color:#f4f0e8!important;
}
body.case--newsletter .newsletter-proof__page img{
  background:#e8e3da!important;
}
body.case--newsletter .newsletter-proof__page figcaption{
  color:#c8cdce!important;
  opacity:1!important;
}



/* V10 — final human visual review: mobile ABOUT, EXPERIENCE / 02 and case contrast. */

/* CASE STUDIES — WebKit computes the process-card paragraph colour more
   conservatively than Chromium/Firefox. Make the chapter surface explicit
   rather than relying on inherited custom properties. */
body.case main > .case-block:nth-of-type(2) .process-sequence article,
body.case main > .case-block:nth-of-type(4) .process-sequence article{
  color:#f7f4ed!important;
  background:#171c1e!important;
  border-color:rgba(255,255,255,.14)!important;
}
body.case main > .case-block:nth-of-type(2) .process-sequence article h3,
body.case main > .case-block:nth-of-type(4) .process-sequence article h3{
  color:#f7f4ed!important;
}
body.case main > .case-block:nth-of-type(2) .process-sequence article p,
body.case main > .case-block:nth-of-type(4) .process-sequence article p{
  color:#c7cdce!important;
  opacity:1!important;
}
body.case main > .case-block:nth-of-type(2) .process-sequence article>span,
body.case main > .case-block:nth-of-type(4) .process-sequence article>span{
  color:#d9a23b!important;
}
body.case main > .case-block:nth-of-type(1) .process-sequence article p,
body.case main > .case-block:nth-of-type(3) .process-sequence article p{
  color:#454d50!important;
  opacity:1!important;
}

/* EXPERIENCE / 02 — the focal card should read as a destination, not a
   decorative carousel tile. Active card gains a clearer frame and the entire
   card is keyboard/click navigable. */
.experience-moto .xm-context-card[role="button"]{
  cursor:pointer;
  outline:none;
}
.experience-moto .xm-context-card[role="button"]:focus-visible .xm-context-card__face{
  box-shadow:
    0 3.5rem 8rem rgba(0,0,0,.62),
    0 0 0 2px rgba(217,162,59,.75)!important;
}
.experience-moto .xm-context-card.is-active .xm-context-card__face{
  border-color:rgba(217,162,59,.34)!important;
}
.experience-moto .xm-context-card.is-active a{
  color:#f2c15f!important;
}

/* ABOUT mobile — remove the last desktop two-column constraint. Text is the
   primary object; portrait and facts follow it in a deliberate editorial stack. */
@media(max-width:700px){
  body.about .about-cinematic-profile{
    min-height:auto!important;
    padding:calc(var(--header,70px) + 1.75rem) 0 2.5rem!important;
  }
  body.about .about-cinematic-profile .about-profile__grid{
    position:relative!important;
    top:auto!important;
    min-height:0!important;
    width:100%!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:1.35rem!important;
    padding:0 var(--gutter)!important;
  }
  body.about .about-cinematic-profile .about-profile__copy{
    order:1;
    width:100%!important;
    max-width:100%!important;
    transform:none!important;
  }
  body.about .about-cinematic-profile .about-profile__copy h1{
    max-width:100%!important;
    width:100%!important;
    margin-right:0!important;
    font-size:clamp(2.7rem,12.8vw,4.05rem)!important;
    line-height:.86!important;
    letter-spacing:-.065em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  body.about .about-cinematic-profile .about-profile__copy h1 em{
    display:block!important;
    max-width:100%!important;
    font-size:.84em!important;
  }
  body.about .about-cinematic-profile .about-profile__lead{
    max-width:31rem!important;
    font-size:.86rem!important;
    line-height:1.6!important;
  }
  body.about .about-cinematic-profile .about-profile__availability{
    width:100%!important;
    margin-top:1.3rem!important;
    padding:1rem 0!important;
  }
  body.about .about-cinematic-profile .about-profile__portrait{
    order:2;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    margin:0!important;
    transform:none!important;
    box-shadow:none!important;
    border:1px solid rgba(17,21,22,.13)!important;
  }
  body.about .about-cinematic-profile .about-profile__portrait img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:4/5!important;
    object-fit:cover!important;
    object-position:center 16%!important;
    transform:none!important;
  }
  body.about .about-cinematic-profile .about-profile__facts{
    order:3;
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:1px!important;
    margin:0!important;
    transform:none!important;
    opacity:1!important;
  }
  body.about .about-cinematic-profile .about-profile__facts article{
    min-height:0!important;
    display:grid!important;
    grid-template-columns:4.2rem minmax(0,1fr)!important;
    align-items:center!important;
    gap:1rem!important;
    padding:1rem!important;
  }
  body.about .about-cinematic-profile .about-profile__facts article>strong{
    font-size:2rem!important;
    line-height:1!important;
  }
  body.about .about-cinematic-profile .about-profile__facts article>span{
    font-size:.72rem!important;
    line-height:1.45!important;
  }

  /* EXPERIENCE / 02 — slightly larger active canvas and legible microcopy. */
  body.experience-moto .xm-context-card{
    width:min(82vw,20.2rem)!important;
    max-width:calc(100vw - 2rem)!important;
  }
  body.experience-moto .xm-context-card__face{
    padding:1.15rem!important;
  }
  body.experience-moto .xm-context-card small,
  body.experience-moto .xm-context-card__num,
  body.experience-moto .xm-context-card a{
    font-size:max(.56rem,9px)!important;
    line-height:1.35!important;
  }
  body.experience-moto .xm-context-card p{
    font-size:max(.72rem,11.5px)!important;
    line-height:1.45!important;
  }
}



/* V11 — microtypography + EXPERIENCE white-chapter cleanup after visual review. */

/* EXPERIENCE: preserve the reference's floating vocabulary on desktop, but
   keep the actual statement as the only focal object on small screens. */
@media(max-width:700px){
  body.experience-moto .xm-statement__ghost{
    display:none!important;
  }
  body.experience-moto .xm-statement__copy{
    width:calc(100% - 2rem)!important;
    transform:none!important;
  }
  body.experience-moto .xm-statement__copy h2{
    max-width:9.5ch!important;
    margin:0 auto .9rem!important;
    font-size:clamp(2.65rem,10.8vw,3.9rem)!important;
    line-height:.89!important;
    letter-spacing:-.058em!important;
  }
  body.experience-moto .xm-statement__copy>span,
  body.experience-moto .xm-statement__copy>p{
    font-size:max(.62rem,10px)!important;
    line-height:1.35!important;
  }
}

/* JOURNEY: the 3D environment can use small interface labels, but none of the
   readable metadata should collapse to 7–8px on a real phone. */
@media(max-width:760px){
  body.journey-3d .j3d-card__meta,
  body.journey-3d .j3d-card__meta span,
  body.journey-3d .j3d-card__open,
  body.journey-3d .j3d-controls,
  body.journey-3d .j3d-controls span,
  body.journey-3d .j3d-progress button,
  body.journey-3d .j3d-progress button span,
  body.journey-3d .j3d-world__top,
  body.journey-3d .j3d-kicker{
    font-size:max(.625rem,10px)!important;
    line-height:1.25!important;
  }
  body.journey-3d .j3d-card__media--type small{
    font-size:max(.625rem,10px)!important;
    line-height:1.35!important;
  }
  body.journey-3d .j3d-card__meta{
    gap:.65rem!important;
  }
}

/* ABOUT/CONTACT/EXPERIENCE: all intentional microcopy remains at least 10px
   on mobile; visual hierarchy comes from weight/spacing, not illegibility. */
@media(max-width:700px){
  body.about .about-team__number span,
  body.about .about-team__terms span,
  body.contact-modular :is(.ct-kicker,.ct-meta,.ct-readouts,.ct-panel>small,.ct-channel span,.ct-next__inner>span),
  body.experience-moto :is(.xm-gallery__top,.xm-context-card small,.xm-context-card__num,.xm-context-card a,.xm-ticker span,.xm-feature__small){
    font-size:max(.625rem,10px)!important;
  }
}



/* V12 — palette discipline. Legacy project accents may not reintroduce the
   old blue/purple multi-colour system into the approved black/paper/amber UI. */
body.case--automation .automation-visual::before{
  background:linear-gradient(90deg,rgba(217,162,59,.18),#d9a23b,rgba(217,162,59,.18))!important;
}
body.case--automation .automation-visual div::before{
  background:#d9a23b!important;
  box-shadow:0 0 0 3px rgba(217,162,59,.08);
}
body.case--automation .automation-visual .mark{
  color:#d9a23b!important;
}
body.case--automation .automation-visual div{
  border-color:rgba(217,162,59,.18)!important;
}



/* Release legibility pass — Journey microcopy must remain editorial, not microscopic. */
body.journey-3d :is(
  .j3d-world__top,
  .j3d-kicker,
  .j3d-card__meta,
  .j3d-card__meta span,
  .j3d-card__open,
  .j3d-controls,
  .j3d-controls span,
  .j3d-progress button,
  .j3d-progress button span,
  .j3d-card__media--type small,
  .j3d-detail__kicker,
  .j3d-entry>span
){
  font-size:max(.75rem,12px)!important;
  line-height:1.35!important;
}
body.journey-3d .j3d-card__meta{
  letter-spacing:.08em!important;
}
body.journey-3d .j3d-card__open,
body.journey-3d .j3d-progress button{
  letter-spacing:.09em!important;
}
@media(max-width:760px){
  body.journey-3d :is(
    .j3d-world__top,.j3d-kicker,.j3d-card__meta,.j3d-card__open,
    .j3d-controls,.j3d-progress button,.j3d-card__media--type small
  ){
    font-size:12px!important;
  }
}



/* VFINAL.3 — interaction guidance legibility */
.journey-3d :is(.j3d-controls>p,.j3d-controls__mobile,.j3d-controls__desktop){
  font-size:max(.625rem,10px)!important;
  line-height:1.25!important;
}

/* VFINAL.5.6 — mobile legibility authority */
@media(max-width:760px){
  body.journey-3d :is(
    .j3d-controls,.j3d-controls span,.j3d-controls__mobile,
    .j3d-progress button,.j3d-progress button span,.j3d-world__top,
    .j3d-kicker,.j3d-card__meta,.j3d-card__meta span,.j3d-card__open,
    .j3d-detail__kicker,.j3d-detail__return,.j3d-entry>span
  ){
    font-size:max(.6875rem,11px)!important;
    line-height:1.3!important;
  }
}

/* VFINAL.5.7 — deterministic mobile label floor */
@media(max-width:760px){
  body.journey-3d .j3d-controls__mobile,
  body.journey-3d .j3d-controls>p,
  body.journey-3d .j3d-detail__return{font-size:11px!important;line-height:1.35!important}
}


/* VFINAL.7 — mobile Journey legibility.
   Preserve the gallery's fine editorial hierarchy without 10–11px metadata
   becoming too delicate on 390px devices. */
@media(max-width:760px){
  body.journey-3d .j3d-card__meta,
  body.journey-3d .j3d-card__meta span{
    font-size:max(.75rem,12px)!important;
    line-height:1.3!important;
  }
  body.journey-3d .j3d-card__open{
    font-size:max(.6875rem,11px)!important;
    line-height:1.25!important;
  }
  body.journey-3d .j3d-kicker,
  body.journey-3d .j3d-world__top,
  body.journey-3d .j3d-controls,
  body.journey-3d .j3d-controls span,
  body.journey-3d .j3d-progress button,
  body.journey-3d .j3d-progress button span{
    font-size:max(.6875rem,11px)!important;
    line-height:1.3!important;
  }
  body.journey-3d .j3d-card__media--type small{
    font-size:max(.6875rem,11px)!important;
    line-height:1.35!important;
  }
}
