/* Premium motion system — restrained, editorial, and content-led.
   Inspired by the reference video's black/white pacing, masked media reveals,
   section shutters and fine-line transitions. */

:root{
  --pm-accent:#d9a23b;
  --pm-dark:#0a0d10;
  --pm-paper:#f4f0e8;
}

.pm-chapter{
  --pm-p:0;
  --pm-v:0;
  position:relative;
  isolation:isolate;
}

.pm-chapter::before{
  content:"";
  position:absolute;
  z-index:18;
  left:0;
  right:0;
  top:0;
  height:clamp(2.3rem,8vh,6rem);
  pointer-events:none;
  transform-origin:top;
  transform:translateY(calc((var(--pm-p) * -100%) + 0%));
  opacity:calc(1 - var(--pm-p));
}

.pm-chapter.pm-on-light::before{
  background:linear-gradient(180deg,var(--pm-dark),rgba(10,13,16,.92) 70%,transparent);
}

.pm-chapter.pm-on-dark::before{
  background:linear-gradient(180deg,var(--pm-paper),rgba(244,240,232,.9) 70%,transparent);
}

.pm-chapter::after{
  content:"";
  position:absolute;
  z-index:19;
  left:var(--gutter);
  right:var(--gutter);
  top:0;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,var(--pm-accent) 0 22%,rgba(127,127,127,.32) 22% 100%);
  transform-origin:left;
  transform:scaleX(calc(.18 + var(--pm-p) * .82));
  opacity:calc(.35 + var(--pm-p) * .65);
}

.pm-media{
  --pm-v:0;
  overflow:hidden!important;
}

.pm-media>img,
img.pm-media{
  clip-path:inset(calc((1 - var(--pm-v)) * 11%) calc((1 - var(--pm-v)) * 5%) calc((1 - var(--pm-v)) * 11%) calc((1 - var(--pm-v)) * 5%));
  filter:saturate(calc(.72 + var(--pm-v) * .28)) contrast(calc(1.08 - var(--pm-v) * .05));
  transition:clip-path .05s linear,filter .05s linear;
}

.pm-row{
  --pm-v:0;
  position:relative;
}

.pm-row::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  pointer-events:none;
  background:currentColor;
  opacity:.13;
  transform-origin:left;
  transform:scaleX(var(--pm-v));
}

.pm-hero{
  --pm-p:0;
  position:relative;
}

.pm-hero::after{
  content:"";
  position:absolute;
  z-index:4;
  left:var(--gutter);
  right:var(--gutter);
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,var(--pm-accent),rgba(127,127,127,.26) 28%,rgba(127,127,127,.08));
  transform-origin:left;
  transform:scaleX(calc(.25 + var(--pm-p) * .75));
}

.pm-hero :is(h1,.section-title){
  text-wrap:balance;
}

/* EXPERIENCE — a quieter Awwwards-like chapter rhythm. */
.experience .experience-block.pm-chapter .experience-year{
  opacity:calc(.13 + var(--pm-v) * .16)!important;
  letter-spacing:calc(-.06em + (1 - var(--pm-v)) * .02em);
}

.experience .experience-block.pm-chapter .experience-notes{
  position:relative;
}

.experience .experience-block.pm-chapter .experience-notes::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:clamp(.22rem,.4vw,.42rem);
  height:calc(var(--pm-v) * 100%);
  background:var(--pm-accent);
  opacity:.72;
}

/* ABOUT — use strong typography and sectional lines rather than decorative shapes. */
.about .about-statement.pm-chapter .lead{
  max-width:34ch;
  font-size:clamp(1.5rem,2.65vw,2.85rem)!important;
  line-height:1.03!important;
  letter-spacing:-.04em;
}

.about .about-team.pm-chapter .about-team__number strong{
  display:block;
  line-height:.7!important;
  transform-origin:left bottom;
  scale:calc(.88 + var(--pm-v) * .12);
}

.about .about-capabilities.pm-chapter .about-capabilities__grid article{
  border-top:1px solid rgba(127,127,127,.18)!important;
}

/* WORK — selected work reads like a moving index, not a static card grid. */
.page--ink .work-wall.pm-chapter .work-tile{
  transition:border-color .3s ease,background .3s ease;
}

@media(hover:hover) and (pointer:fine){
  .page--ink .work-wall .work-tile:hover{
    border-color:rgba(217,162,59,.62)!important;
  }
}

/* CASE STUDIES — cinematic image transitions from the reference. */
.case .case-block.pm-chapter .case-block__label{
  position:relative;
}

.case .case-block.pm-chapter .case-block__label::after{
  content:"";
  display:block;
  width:clamp(2.4rem,5vw,5.5rem);
  height:1px;
  margin-top:1rem;
  background:var(--pm-accent);
  transform-origin:left;
  transform:scaleX(var(--pm-v));
}

.case .newsletter-proof.pm-chapter,
.case .case-block.pm-chapter{
  scroll-margin-top:var(--header);
}

/* CONTACT — keep image and copy as two deliberate editorial planes. */
.contact .contact-main.pm-hero{
  --pm-p:1;
}

.contact .contact-main.pm-hero::after{
  bottom:var(--gutter);
}

@media(max-width:760px){
  .pm-chapter::before{height:2.5rem}
  .pm-chapter::after{left:var(--gutter);right:var(--gutter)}
  .about .about-statement.pm-chapter .lead{font-size:clamp(1.35rem,7vw,2.1rem)!important}
}

@media(prefers-reduced-motion:reduce){
  .pm-chapter,
  .pm-media,
  .pm-row,
  .pm-hero{
    --pm-p:1!important;
    --pm-v:1!important;
  }
  .pm-chapter::before{display:none!important}
  .pm-media>img,
  img.pm-media{
    clip-path:none!important;
    filter: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;
}


/* VFINAL.5.5 — case-study contrast authority */
.case .case-block:not(.section--ink),
.case .case-block.section--white,
.case .newsletter-proof{
  color:#0b0e10!important;
  background:#f4f0e8!important;
}
.case .case-block:not(.section--ink) :is(h2,h3,.section-title,strong),
.case .case-block.section--white :is(h2,h3,.section-title,strong),
.case .newsletter-proof :is(h2,h3,.section-title,strong){
  color:#0b0e10!important;
}
.case .case-block:not(.section--ink) :is(p,.lead,figcaption),
.case .case-block.section--white :is(p,.lead,figcaption),
.case .newsletter-proof :is(p,.lead,figcaption){
  color:#4e575a!important;
}
.case .case-block:not(.section--ink) :is(.kicker,.mark),
.case .case-block.section--white :is(.kicker,.mark),
.case .newsletter-proof :is(.kicker,.mark){
  color:#76561f!important;
}
.case .case-block.section--ink{
  color:#f4f0e8!important;
  background:#0d1113!important;
}
.case .case-block.section--ink :is(h2,h3,.section-title,strong){
  color:#f4f0e8!important;
}
.case .case-block.section--ink :is(p,.lead,figcaption){
  color:#b8bebe!important;
}
.case .case-block.section--ink :is(.kicker,.mark){
  color:#d9a23b!important;
}


/* VFINAL.5.6 — measured WCAG contrast corrections */
body.case :is(#context,#challenge,#scope,#impact).case-block{
  background:#f4f0e8!important;
  color:#0b0e10!important;
}
body.case :is(#context,#challenge,#scope,#impact).case-block .case-block__content{
  color:#0b0e10!important;
  opacity:1!important;
}
body.case :is(#context,#challenge,#scope,#impact).case-block .case-block__content h2{
  color:#050708!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.case :is(#context,#challenge,#scope,#impact).case-block .case-block__content :is(p,.lead){
  color:#3f4749!important;
  opacity:1!important;
}
body.case :is(#context,#challenge,#scope,#impact).case-block .case-block__label :is(.kicker,.mark){
  color:#6c4c16!important;
  opacity:1!important;
}

body.case #output.section--ink{
  color:#f4f0e8!important;
  background:#0b0e10!important;
}
body.case #output.section--ink :is(.kicker,.mark){
  color:#f0bd5b!important;
  opacity:1!important;
}
body.case #output.section--ink :is(h2,h3,.section-title){
  color:#fbfaf6!important;
  opacity:1!important;
}

body.case--automation #process.case-block{
  color:#0b0e10!important;
  background:#f4f0e8!important;
}
body.case--automation #process :is(.kicker,.mark){
  color:#6c4c16!important;
  opacity:1!important;
}
body.case--automation #process .section-title{
  color:#050708!important;
  opacity:1!important;
}
body.case--automation #process .automation-visual p{
  color:#394144!important;
  opacity:1!important;
}

body.case--newsletter .newsletter-proof{
  color:#0b0e10!important;
  background:#f4f0e8!important;
}
body.case--newsletter .newsletter-proof__head :is(h2,strong){
  color:#050708!important;
  opacity:1!important;
}
body.case--newsletter .newsletter-proof__head>p{
  color:#394144!important;
  opacity:1!important;
}
body.case--newsletter .newsletter-proof__head .kicker{
  color:#6c4c16!important;
  opacity:1!important;
}

/* Motion may translate readable text, but never dilute its contrast. */
body.case.premium-ready :is(
  .case-block__content,.case-block__content *,
  .newsletter-proof__head,.newsletter-proof__head *,
  .automation-visual,.automation-visual *
){
  opacity:1!important;
}

/* VFINAL.5.7 — shared profile microcopy floor used by Skills */
@media(max-width:760px){
  body.skills .about-team__number span,
  body.skills .about-team__number small,
  body.skills .about-team__terms span,
  body.competencias .about-team__number span,
  body.competencias .about-team__number small,
  body.competencias .about-team__terms span{font-size:11px!important;line-height:1.35!important}
}


/* VFINAL.5.7 — WebKit-safe solid chapter contrast */
body.case :is(#context,#challenge,#scope,#impact,#contribution,#process,#criteria).case-block{
  opacity:1!important;
  filter:none!important;
}
body.case :is(#context,#challenge,#scope,#impact,#contribution,#process,#criteria).case-block:not(.section--ink){
  color:#0a0d10!important;
  background-color:#f4f0e8!important;
  background-image:none!important;
}
body.case :is(#context,#challenge,#scope,#impact,#contribution,#process,#criteria).case-block:not(.section--ink)
:is(.case-block__label,.case-block__content,.case-block__label *,.case-block__content *){
  opacity:1!important;
  filter:none!important;
}
body.case :is(#context,#challenge,#scope,#impact,#contribution,#process,#criteria).case-block:not(.section--ink) .case-block__content > :is(h2,h3,strong,.section-title){
  color:#050708!important;
}
body.case :is(#context,#challenge,#scope,#impact,#contribution,#process,#criteria).case-block:not(.section--ink) .case-block__content > :is(p,.lead){
  color:#30383b!important;
}
body.case :is(#context,#challenge,#scope,#impact,#contribution,#process,#criteria).case-block:not(.section--ink) .case-block__label :is(.kicker,.mark){
  color:#604313!important;
}

body.case--newsletter .newsletter-proof,
body.case--newsletter .newsletter-proof__head,
body.case--newsletter .newsletter-proof__head *{
  opacity:1!important;
  filter:none!important;
}
body.case--newsletter .newsletter-proof{
  background:#f4f0e8!important;
  color:#0a0d10!important;
}
body.case--newsletter .newsletter-proof__head .kicker{color:#5d4011!important}
body.case--newsletter .newsletter-proof__head>p{color:#263033!important}
body.case--newsletter .newsletter-proof__head h2{color:#050708!important}

body.case #output.section--ink .media-spread figcaption{
  color:#d6dada!important;
  opacity:1!important;
}


/* VFINAL.5.8 — Bastarda criteria chapter contrast. */
body.case--bastarda .case-block.section--white{
  color:#0b0e10!important;
  background:#f7f4ed!important;
}
body.case--bastarda .case-block.section--white .case-block__label .kicker{
  color:#7a551d!important;
}
body.case--bastarda .case-block.section--white .case-block__content :is(h2,h3,strong){
  color:#121617!important;
}
body.case--bastarda .case-block.section--white .case-block__content>p{
  color:#454d50!important;
  opacity:1!important;
}
body.case--bastarda .process-sequence article{
  color:#f7f4ed!important;
  background:#171c1e!important;
  border-color:rgba(255,255,255,.16)!important;
}
body.case--bastarda .process-sequence article h3{
  color:#f7f4ed!important;
}
body.case--bastarda .process-sequence article p{
  color:#d0d5d6!important;
  opacity:1!important;
}
body.case--bastarda .process-sequence article>span{
  color:#e0aa45!important;
}


/* VFINAL.5.9 — Bastarda readable copy remains fully opaque during reveal. */
body.case--bastarda :is(.case-block__label,.case-block__content,.process-sequence article),
body.case--bastarda :is(.case-block__label,.case-block__content,.process-sequence article) *{
  opacity:1!important;
}
body.case--bastarda :is(.motion-reveal,.motion-focus){
  opacity:1!important;
}


/* VFINAL.6 — exact Bastarda criteria-card contrast. */
body.case--bastarda section#criteria .process-sequence article{
  color:#f7f4ed!important;
  background:#111719!important;
  border-color:rgba(255,255,255,.18)!important;
  opacity:1!important;
  filter:none!important;
}
body.case--bastarda section#criteria .process-sequence article h3{
  color:#ffffff!important;
  opacity:1!important;
}
body.case--bastarda section#criteria .process-sequence article p{
  color:#e0e4e5!important;
  opacity:1!important;
}
body.case--bastarda section#criteria .process-sequence article>span{
  color:#e5ad43!important;
  opacity:1!important;
}
body.case--bastarda section#criteria :is(.motion-reveal,.motion-focus){
  opacity:1!important;
  filter:none!important;
}


/* VFINAL.6.1 — structural contrast scope.
   Chapter text rules apply to chapter copy only, never to text nested inside
   dark process/result cards. */
body.case--newsletter section.newsletter-proof>.shell,
body.case--newsletter section.newsletter-proof .newsletter-proof__head,
body.case--newsletter section.newsletter-proof .newsletter-proof__spread,
body.case section#output>.shell,
body.case section#output .media-spread,
body.case section#output .media-spread figure{
  opacity:1!important;
  filter:none!important;
}
