/* Dark tech refinement: final layer. Loaded last on every page; visual only, no structural changes. */
:root{
  --dt-bg:#09090b;--dt-surface:#141417;--dt-elevated:#1d1d21;--dt-text:#f4f4f2;--dt-muted:#a5a5ab;--dt-line:#303035;--dt-line-soft:rgba(48,48,53,.62);--dt-red:#d32f38;--dt-red-soft:rgba(211,47,56,.14);
  --dt-ease:cubic-bezier(.22,1,.36,1);
  /* Type scale */
  --dt-hero:clamp(46px,8.2vw,124px);
  --dt-h2:clamp(40px,6.1vw,96px);
  --dt-h2-statement:clamp(34px,5.2vw,82px);
  --dt-h3-case:clamp(34px,4.2vw,64px);
  --dt-h3-card:clamp(20px,1.7vw,26px);
  --dt-body:clamp(15px,1.05vw,17px);
  --dt-label:11px;
  --dt-btn:12px;
  --color-background:var(--dt-bg);--color-surface:var(--dt-surface);--color-text:var(--dt-text);--color-muted:var(--dt-muted);--color-accent:var(--dt-red)
}
html{background:var(--dt-bg)}
body.editorial-site{background:var(--dt-bg);color:var(--dt-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* ---------- Typography ---------- */
.editorial-site :is(h1,h2,h3){color:var(--dt-text)}
.editorial-site h3{text-wrap:balance}
.editorial-site .conversion-title em{font-style:normal;font-weight:inherit;color:var(--dt-red)}
.editorial-site .conversion-title em::after{content:none}
.editorial-site #hero-title{font-size:var(--dt-hero);font-weight:600;line-height:.94;letter-spacing:-.048em}
.editorial-site #hero-title .second-line{color:var(--dt-text)}
.editorial-site #hero-title .text-mask,.editorial-site #hero-title .title-line{padding-top:.16em;margin-top:-.16em;padding-bottom:.06em;margin-bottom:-.06em}
.editorial-site :is(#about-title,#capabilities-title,#work-title,#visual-break-title,#process-title,#faq-title,#conversion-title){font-size:var(--dt-h2);font-weight:500;line-height:.98;letter-spacing:-.045em}
.editorial-site #manifesto-title{font-size:var(--dt-h2-statement);line-height:1.04;letter-spacing:-.04em;max-width:16ch}
.editorial-site .manifesto-thought{display:block}
.editorial-site .portfolio-interlude p{font-size:var(--dt-h2-statement);line-height:1.04;letter-spacing:-.04em}
.editorial-site .directed-case h3,.editorial-site .project-detail-title{font-size:var(--dt-h3-case);line-height:1;letter-spacing:-.04em}
.editorial-site .process-v2-steps h3{font-size:clamp(30px,3.6vw,56px);line-height:1;letter-spacing:-.04em}
.editorial-site :is(.landing-grid-copy h3,.project-index-copy h3){font-size:var(--dt-h3-card);line-height:1.12;letter-spacing:-.025em;font-weight:600}
.editorial-site :is(p,li,dd,summary+div){text-wrap:pretty}
.editorial-site :is(.about-copy>p:not(.about-role):not(.section-marker),.portfolio-showcase-intro,.project-context,.faq-intro>p,.conversion-action>p,.faq-list details>:not(summary)){font-size:var(--dt-body);line-height:1.65;color:var(--dt-muted);max-width:52ch}
.editorial-site .faq-list summary{letter-spacing:-.02em}
/* Labels & markers: one consistent micro-type */
.editorial-site :is(.eyebrow,.section-marker,.manifesto-marker,.capabilities-marker,.process-marker,.conversion-marker,.project-category,.project-kicker,.project-detail-marker,.project-detail-kicker){font-family:var(--font-sans);font-size:var(--dt-label);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dt-muted)}
.editorial-site :is(.section-marker,.manifesto-marker,.capabilities-marker,.process-marker,.conversion-marker)>span{background:var(--dt-red);box-shadow:0 0 0 4px var(--dt-red-soft)}
.editorial-site :is(.supporting-copy,.about-role){font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--dt-muted);max-width:none}
.editorial-site .about-role{color:var(--dt-red)}
.editorial-site .project-number{font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--dt-red)}
.editorial-site .landing-grid-copy p,.editorial-site .project-index-copy p{font-size:10px;font-weight:600;letter-spacing:.16em;color:var(--dt-muted)}

/* ---------- Header & navigation ---------- */
.editorial-site .header.is-scrolled,.editorial-site .header{border-bottom-color:var(--dt-line-soft)}
.editorial-site .header.is-scrolled{background:rgba(9,9,11,.82);-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px)}
.editorial-site .desktop-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--dt-muted);transition:color .25s ease}
.editorial-site .desktop-nav a:after{content:"";position:absolute;left:0;right:0;bottom:12px;height:1px;background:var(--dt-red);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--dt-ease)}
.editorial-site .desktop-nav a[href]:hover,.editorial-site .desktop-nav a[aria-current]{color:var(--dt-text)}
.editorial-site .desktop-nav a[href]:hover:after,.editorial-site .desktop-nav a[aria-current]:after{transform:scaleX(1);transform-origin:left}
.editorial-site .language-switcher{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-sans)}
.editorial-site .language-switcher button{min-width:36px;min-height:40px;padding:0 6px;font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--dt-muted);background:none;border:0;transition:color .2s ease}
.editorial-site .language-switcher button[aria-pressed=true]{color:var(--dt-text)}
.editorial-site .language-switcher button:hover{color:var(--dt-text)}
.editorial-site .language-switcher span{color:var(--dt-line)}
.editorial-site .header-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:42px;padding:0 18px;border:1px solid var(--dt-line);border-radius:0;background:transparent;color:var(--dt-text);font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.14em;line-height:1;transition:border-color .25s ease,background-color .25s ease,color .25s ease}
.editorial-site .header-cta span[aria-hidden]{color:var(--dt-red);font-size:13px;line-height:1;transition:transform .3s var(--dt-ease)}
.editorial-site .header-cta:hover{border-color:var(--dt-red);background:var(--dt-red-soft)}
.editorial-site .header-cta:hover span[aria-hidden]{transform:translate(2px,2px)}

/* ---------- Buttons: one system ---------- */
.editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button){position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:0 24px;border:1px solid var(--dt-line);border-radius:0;background:transparent;color:var(--dt-text);box-shadow:none;font-family:var(--font-sans);font-size:var(--dt-btn);font-weight:600;line-height:1;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-decoration:none;transition:border-color .3s ease,color .3s ease,background-color .3s ease,transform .3s var(--dt-ease)}
.editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button)::before{content:"";display:block;position:absolute;inset:0;z-index:-1;background:var(--dt-text);transform:translateY(101%);transition:transform .5s var(--dt-ease)}
.editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button) :is(svg,i,span[aria-hidden]){flex:none;font-style:normal;font-size:14px;line-height:1;color:var(--dt-red);transition:transform .35s var(--dt-ease),color .3s ease}
.editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button) svg{width:15px!important;height:15px!important}
@media(hover:hover){
  .editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button):hover{border-color:var(--dt-text);color:var(--dt-bg);background:transparent}
  .editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button):hover::before{transform:translateY(0)}
  .editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button):hover :is(svg,i,span[aria-hidden]){transform:translate(3px,-3px)}
}
/* Primary (solid red): WhatsApp CTAs and hero main action */
.editorial-site :is(.whatsapp-action--hero,.whatsapp-action--final){border-color:var(--dt-red);background:var(--dt-red);color:#fff}
.editorial-site :is(.whatsapp-action--hero,.whatsapp-action--final) :is(span[aria-hidden]){color:#fff}
@media(hover:hover){.editorial-site :is(.whatsapp-action--hero,.whatsapp-action--final):hover{border-color:var(--dt-text);color:var(--dt-bg)}.editorial-site :is(.whatsapp-action--hero,.whatsapp-action--final):hover span[aria-hidden]{color:var(--dt-red)}}
.editorial-site .whatsapp-action--final{min-height:60px;padding:0 30px}
.editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button,.header-cta,.desktop-nav a,.language-switcher button):focus-visible{outline:2px solid var(--dt-red);outline-offset:4px}
.editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action):active{transform:translateY(1px)}
.editorial-site .hero-actions,.editorial-site .dual-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
/* Carousel arrows */
.editorial-site :is(.landing-carousel-controls,.project-index-controls) button{display:inline-grid;place-items:center;width:52px;height:52px;border:1px solid var(--dt-line);border-radius:50%;background:transparent;color:var(--dt-text);transition:border-color .25s ease,background-color .25s ease,color .25s ease,transform .3s var(--dt-ease),opacity .25s ease}
.editorial-site :is(.landing-carousel-controls,.project-index-controls) button:hover:not(:disabled){border-color:var(--dt-red);background:var(--dt-red);color:#fff}
.editorial-site :is(.landing-carousel-controls,.project-index-controls) button:disabled{opacity:.32}
/* WhatsApp float: stays green & recognizable */
.editorial-site .whatsapp-float{background:#25d366;border-color:transparent;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 0 rgba(37,211,102,.35);transition:transform .3s var(--dt-ease),box-shadow .3s ease}
.editorial-site .whatsapp-float:hover{transform:translateY(-3px) scale(1.04);background:#25d366;box-shadow:0 14px 34px rgba(0,0,0,.5),0 0 0 6px rgba(37,211,102,.16)}

/* ---------- Hero atmosphere ---------- */
.editorial-site .hero-background{background:
  radial-gradient(60% 55% at 18% 22%,rgba(211,47,56,.11),transparent 62%),
  radial-gradient(42% 40% at 86% 78%,rgba(211,47,56,.06),transparent 70%),
  radial-gradient(80% 70% at 60% 40%,#141417 0,transparent 70%),
  linear-gradient(180deg,#0b0b0d 0,#09090b 100%)}
.editorial-site .hero-background::after{background:radial-gradient(ellipse at center,transparent 35%,rgba(0,0,0,.55) 100%)}
.editorial-site .technical-grid{opacity:1;background-image:linear-gradient(to right,rgba(244,244,242,.045) 1px,transparent 1px),linear-gradient(to bottom,rgba(244,244,242,.03) 1px,transparent 1px);background-size:calc((100vw - 2*var(--gutter))/12) 100%,100% 96px;background-position:var(--gutter) 0,0 0;-webkit-mask-image:radial-gradient(ellipse 75% 70% at 50% 40%,#000 20%,transparent 78%);mask-image:radial-gradient(ellipse 75% 70% at 50% 40%,#000 20%,transparent 78%)}
.editorial-site .hero-scene::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* technical hairlines + controlled red light points */
.editorial-site .hero-scene::after{content:"";position:absolute;z-index:-1;pointer-events:none;left:var(--gutter);right:var(--gutter);top:22%;height:1px;background:linear-gradient(90deg,transparent,rgba(244,244,242,.09) 18%,rgba(244,244,242,.09) 82%,transparent);transform:translate3d(calc(var(--ambient-x,0px) * -.4),0,0)}
.editorial-site .hero .signal{background:var(--dt-red);box-shadow:0 0 0 4px var(--dt-red-soft),0 0 18px rgba(211,47,56,.6);animation:dt-pulse 3.2s ease-in-out infinite}
@keyframes dt-pulse{0%,100%{box-shadow:0 0 0 4px var(--dt-red-soft),0 0 14px rgba(211,47,56,.45)}50%{box-shadow:0 0 0 7px rgba(211,47,56,.05),0 0 22px rgba(211,47,56,.7)}}
.editorial-site .hero .accent{color:var(--dt-red);text-shadow:0 0 28px rgba(211,47,56,.45)}
.editorial-site .hero-bottom-content{border-top:1px solid var(--dt-line-soft);padding-top:28px;margin-top:clamp(28px,4vw,48px);justify-content:space-between;flex-wrap:wrap;row-gap:24px}
.editorial-site .hero-baseline{color:#6c6c73;border-top:1px solid var(--dt-line-soft)}
.editorial-site .baseline-mark{font-family:var(--font-sans);font-size:10px;font-weight:600;letter-spacing:.18em}
.editorial-site .transition-line{opacity:.55}

/* ---------- Sections & components ---------- */
.editorial-site .identity-marquee{background:var(--dt-bg);border-color:var(--dt-line-soft);color:var(--dt-muted)}
.editorial-site .identity-marquee-group{font-family:var(--font-sans);font-weight:600}
.editorial-site .identity-marquee-group i{color:var(--dt-red)}
.editorial-site :is(.expertise-v2-list .service-item,.process-v2-steps .process-step,.faq-list details){border-color:var(--dt-line)!important}
.editorial-site .expertise-v2-list .service-item{transition:background-color .35s ease,padding .45s var(--dt-ease)}
@media(hover:hover){.editorial-site .expertise-v2-list .service-item:hover{background:linear-gradient(90deg,var(--dt-red-soft),transparent 60%)}.editorial-site .expertise-v2-list .service-item:hover>span{color:var(--dt-red)}}
.editorial-site .expertise-v2-list .service-item small{font-size:11px;letter-spacing:.08em;color:var(--dt-muted)}
.editorial-site .faq-list summary{cursor:pointer;transition:color .25s ease}
.editorial-site .faq-list summary:hover{color:#fff}
.editorial-site .faq-list summary:focus-visible{outline:2px solid var(--dt-red);outline-offset:6px}
.editorial-site .about-monogram{background:linear-gradient(155deg,var(--dt-elevated),var(--dt-surface) 60%,var(--dt-bg));border:1px solid var(--dt-line)}

/* ---------- Portfolio ---------- */
.editorial-site .directed-case .project-heading{border-top-color:var(--dt-line)}
.editorial-site :is(.project-protagonist,.project-secondary){overflow:hidden;background:var(--dt-surface);border:1px solid var(--dt-line-soft)}
.editorial-site :is(.project-protagonist,.project-secondary) img{transition:transform 1.2s var(--dt-ease),opacity .6s ease}
@media(hover:hover){.editorial-site .directed-case:hover .project-protagonist img{transform:scale(1.025)}.editorial-site .project-secondary:hover img{transform:scale(1.04)}}
.editorial-site :is(.landing-grid-card,.project-index-card)>a{display:block;color:inherit;text-decoration:none}
.editorial-site :is(.landing-grid-card,.project-index-card) figure{overflow:hidden;background:var(--dt-surface);border:1px solid var(--dt-line-soft);transition:border-color .35s ease}
.editorial-site :is(.landing-grid-card,.project-index-card) img{transition:transform .9s var(--dt-ease)}
@media(hover:hover){
  .editorial-site :is(.landing-grid-card,.project-index-card)>a:hover figure{border-color:rgba(211,47,56,.55)}
  .editorial-site :is(.landing-grid-card,.project-index-card)>a:hover img{transform:scale(1.035)}
  .editorial-site .landing-grid-card>a:hover .landing-grid-copy b{color:var(--dt-red)}
}
.editorial-site :is(.landing-grid-card,.project-index-card)>a:focus-visible{outline:2px solid var(--dt-red);outline-offset:4px}
.editorial-site .landing-grid-copy span,.editorial-site .project-index-copy span{color:var(--dt-red);font-size:11px;font-weight:600;letter-spacing:.12em}
.editorial-site .landing-carousel-track,.editorial-site .project-index-track{scroll-behavior:smooth}
.editorial-site .portfolio-progress button{min-width:36px;min-height:36px}
.editorial-site .portfolio-progress button[aria-current],.editorial-site .portfolio-progress button.is-active{color:var(--dt-red)}

/* ---------- Motion: masked title lines + depth ---------- */
html.motion-ready body.editorial-site .motion-reveal:is(.portfolio-title-line,.capability-title-line,.process-title-line,.faq-title-line,.conversion-title-line,.archive-title-line,.fit-title-line,.manifesto-thought){opacity:1!important;transform:none!important;overflow:hidden!important;padding-bottom:.08em;margin-bottom:-.08em}
html.motion-ready body.editorial-site .motion-reveal:is(.portfolio-title-line,.capability-title-line,.process-title-line,.faq-title-line,.conversion-title-line,.archive-title-line,.fit-title-line,.manifesto-thought)>span{display:inline-block;transform:translate3d(0,108%,0);transition:transform 1s var(--dt-ease) var(--reveal-delay,0ms);will-change:transform}
html.motion-ready body.editorial-site .motion-reveal.is-visible:is(.portfolio-title-line,.capability-title-line,.process-title-line,.faq-title-line,.conversion-title-line,.archive-title-line,.fit-title-line,.manifesto-thought)>span{transform:none;will-change:auto}
html.motion-ready body.editorial-site .hero .title-line.motion-reveal{--reveal-y:105%;--reveal-duration:1100ms;opacity:1!important}
html.motion-ready body.editorial-site .hero .title-line.motion-reveal.is-visible{transform:none!important}
html.motion-ready body.editorial-site .motion-reveal--media{--reveal-y:42px;--reveal-scale:.985;--reveal-duration:1100ms}
@media(max-width:760px){html.motion-ready body.editorial-site .motion-reveal--media{--reveal-y:24px}}
@media(prefers-reduced-motion:reduce){
  html.motion-ready body.editorial-site .motion-reveal>span{transform:none!important;transition:none!important}
  .editorial-site .hero .signal{animation:none}
  .editorial-site *,.editorial-site *::before,.editorial-site *::after{transition-duration:.01ms!important}
}

/* ---------- Responsive ---------- */
@media(max-width:1024px){
  .editorial-site .desktop-nav{gap:18px}
  .editorial-site .header-inner{gap:20px}
}
@media(min-width:761px) and (max-width:900px){
  .editorial-site .desktop-nav{gap:14px}
  .editorial-site .desktop-nav a{font-size:10px;letter-spacing:.1em}
  .editorial-site .header-inner>.header-cta{display:none}
}
.editorial-site .wordmark{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:760px){
  :root{--dt-btn:12px}
  .editorial-site .header-inner>.header-cta{display:none}
  .editorial-site #hero-title{font-size:clamp(42px,12.4vw,64px);line-height:.96}
  .editorial-site :is(#about-title,#capabilities-title,#work-title,#visual-break-title,#process-title,#faq-title,#conversion-title){font-size:clamp(38px,11vw,56px)}
  .editorial-site #manifesto-title,.editorial-site .portfolio-interlude p{font-size:clamp(30px,8.6vw,44px)}
  .editorial-site .directed-case h3,.editorial-site .project-detail-title{font-size:clamp(32px,9vw,44px)}
  .editorial-site .process-v2-steps h3{font-size:clamp(28px,8vw,40px)}
  .editorial-site :is(.supporting-copy,.about-role){font-size:11px;letter-spacing:.14em;line-height:1.8}
  .editorial-site :is(.primary-cta,.whatsapp-action,.project-view-action,.project-detail-button){min-height:52px;padding:0 20px;white-space:normal;text-align:center}
  .editorial-site .hero-actions>*{flex:1 1 100%}
  .editorial-site .language-switcher button{min-width:40px;min-height:44px}
  .editorial-site .whatsapp-float{right:16px;bottom:16px}
  .editorial-site .menu-toggle{min-width:44px;min-height:44px}
  .editorial-site .header-inner{gap:8px}
  .editorial-site .language-switcher button{min-width:36px;padding:0 4px}
}

/* ---------- Project page: horizontal gallery ---------- */
.project-detail-site .project-detail-gallery{padding:clamp(40px,5vw,72px) 0 clamp(64px,7vw,104px)}
.project-detail-site .project-gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:clamp(18px,2vw,28px);padding-top:20px;border-top:1px solid var(--dt-line)}
.project-detail-site .project-gallery-count{margin:0;font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--dt-muted)}
.project-detail-site .project-gallery-count b{color:var(--dt-red);font-weight:600}
.project-detail-site .project-gallery-controls{display:flex;gap:10px}
.project-detail-site .project-gallery-controls button{display:inline-grid;place-items:center;width:52px;height:52px;border:1px solid var(--dt-line);border-radius:50%;background:transparent;color:var(--dt-text);font-size:18px;transition:border-color .25s ease,background-color .25s ease,opacity .25s ease}
.project-detail-site .project-gallery-controls button:hover:not(:disabled){border-color:var(--dt-red);background:var(--dt-red)}
.project-detail-site .project-gallery-controls button:disabled{opacity:.3;cursor:default}
.project-detail-site .project-gallery-controls button:focus-visible{outline:2px solid var(--dt-red);outline-offset:4px}
.project-detail-site .project-detail-gallery-grid.is-carousel{position:relative;display:flex;grid-template-columns:none;gap:clamp(14px,1.6vw,24px);width:100%;max-width:none;margin:0;padding:0 var(--gutter) 14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:thin;scrollbar-color:var(--dt-line) transparent}
.project-detail-site .project-detail-gallery-grid.is-carousel::-webkit-scrollbar{height:4px}
.project-detail-site .project-detail-gallery-grid.is-carousel::-webkit-scrollbar-thumb{background:var(--dt-line)}
.project-detail-site .project-detail-gallery-grid.is-carousel:focus-visible{outline:2px solid var(--dt-red);outline-offset:-2px}
.project-detail-site .project-detail-gallery-grid.is-carousel figure{flex:none;height:min(78svh,860px,calc((100vw - 2*var(--gutter)) * 1.25));margin:0;scroll-snap-align:start;overflow:hidden;border:1px solid var(--dt-line-soft)}
.project-detail-site .project-detail-gallery-grid.is-carousel img{display:block;height:100%;width:auto;max-width:none;object-fit:contain}
@media(max-width:760px){
  .project-detail-site .project-detail-gallery-grid.is-carousel figure{height:auto;width:calc(100vw - 2*var(--gutter) - 28px)}
  .project-detail-site .project-detail-gallery-grid.is-carousel img{width:100%;height:auto}
  .project-detail-site .project-gallery-controls button{width:46px;height:46px}
}
.project-detail-site .project-detail-hero{padding:clamp(124px,11vw,156px) 0 clamp(28px,3vw,44px)}
.project-detail-site .project-detail-title{margin-bottom:0}
.project-detail-site .project-detail-hero .project-detail-button{margin-top:0}
.project-detail-site .project-detail-actions{margin-top:clamp(24px,2.6vw,36px)}
.project-detail-site .project-detail-kicker{margin-top:clamp(28px,3vw,44px)}
.project-detail-site .project-detail-title{margin-top:clamp(16px,1.6vw,24px)}
.project-detail-site .project-detail-gallery{padding-top:clamp(20px,2.4vw,32px)}
@media(min-width:761px){.project-detail-site .project-detail-gallery-grid.is-carousel figure{height:min(calc(100svh - 230px),860px)}}

/* ---------- About: profile photo ---------- */
.editorial-site .about-photo{position:relative;display:block;margin-top:0;overflow:hidden;aspect-ratio:4/5;border:1px solid var(--dt-line);background:var(--dt-surface)}
.editorial-site .about-photo::before{content:none}
.editorial-site .about-photo::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(9,9,11,.62),transparent 38%),linear-gradient(to right,rgba(9,9,11,.18),transparent 30%)}
.editorial-site .about-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 28%;filter:grayscale(.2) contrast(1.04) brightness(.96);transform:scale(1.06) translate3d(0,var(--photo-shift,0px),0);transition:filter .8s ease,transform 1.2s var(--dt-ease)}
@media(hover:hover){.editorial-site .about-photo:hover img{filter:grayscale(0) contrast(1.04) brightness(1);transform:scale(1.02) translate3d(0,var(--photo-shift,0px),0)}}
.editorial-site .about-photo i{position:absolute;z-index:2;left:24px;bottom:24px;width:44px;height:2px;background:var(--dt-red)}

/* ---------- Hero line field ---------- */
.editorial-site .hero-lines{position:absolute;inset:0;z-index:-2;display:block;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 14%,#000 82%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 14%,#000 82%,transparent 100%)}
.editorial-site .hero .ambient-position,.editorial-site .hero .wave-veil{opacity:0!important}

/* ---------- Folds & depth on scroll ---------- */
.editorial-site #arquivo{background:var(--dt-surface)}
.scroll-fx-ready .editorial-site .scroll-fold,.scroll-fx-ready body.editorial-site .scroll-fold{clip-path:inset(0 calc((1 - var(--fold,1)) * 5vw) 0 round calc((1 - var(--fold,1)) * 40px));will-change:clip-path}
.scroll-fx-ready body.editorial-site .scroll-lift{transform:translate3d(0,calc((1 - var(--fold,1)) * 80px),0);opacity:calc(.25 + .75 * var(--fold,1))}
@media(max-width:760px){.scroll-fx-ready body.editorial-site .scroll-fold{clip-path:inset(0 calc((1 - var(--fold,1)) * 3vw) 0 round calc((1 - var(--fold,1)) * 22px))}.scroll-fx-ready body.editorial-site .scroll-lift{transform:translate3d(0,calc((1 - var(--fold,1)) * 44px),0)}}
@media(prefers-reduced-motion:reduce){.scroll-fx-ready body.editorial-site :is(.scroll-fold,.scroll-lift){clip-path:none;transform:none;opacity:1}}
.project-detail-site .pp-reveal{opacity:0;transform:translate3d(0,34px,0);transition:opacity .9s var(--dt-ease) var(--pp-delay,0ms),transform 1.1s var(--dt-ease) var(--pp-delay,0ms)}
.project-detail-site .pp-reveal.is-in{opacity:1;transform:none}
.project-detail-site .project-detail-gallery-grid figure.pp-reveal{transform:translate3d(48px,0,0)}
.project-detail-site .project-detail-gallery-grid figure.pp-reveal.is-in{transform:none}

/* Horizontal scroll guard: hidden fallback for browsers without overflow:clip (Safari < 16), and carousels keep sideways gestures to themselves. */
html,body{overflow-x:hidden;max-width:100%}
@supports(overflow:clip){html,body{overflow-x:clip}}
.editorial-site :is(.visual-project-loop,#landing-project-carousel,.landing-carousel-track,.project-detail-gallery-grid,.preserved-case-strip){overscroll-behavior-x:contain}
/* Long CTA labels stay on one line on small phones. */
@media(max-width:480px){.editorial-site .whatsapp-action--bridge{font-size:10.5px;letter-spacing:.07em;padding:0 14px;gap:10px;white-space:nowrap}}
/* Project page titles: one scale that grows with the viewport, wide enough for full names, balanced when they wrap. */
.project-detail-site .project-detail-title{max-width:16ch;font-size:clamp(44px,7.2vw,116px);font-weight:500;line-height:.95;letter-spacing:-.05em;text-wrap:balance;padding-bottom:.06em;overflow-wrap:normal}
@media(max-width:760px){.project-detail-site .project-detail-title{max-width:100%;font-size:clamp(40px,11.5vw,58px);line-height:1}}

/* ---------- Text entrances (text-fx.js) ---------- */
html.tfx-ready .tfx .tfx-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .14em;margin:0 -.04em -.14em}
html.tfx-ready .tfx .tfx-i{display:inline-block;transform:translate3d(0,108%,0);opacity:0;transition:transform 1s var(--dt-ease) calc(min(var(--i) * 26ms, 780ms) + var(--tfx-delay,60ms)),opacity .6s ease calc(min(var(--i) * 26ms, 780ms) + var(--tfx-delay,60ms));will-change:transform}
html.tfx-ready .tfx.tfx-in .tfx-i{transform:none;opacity:1;will-change:auto}
/* The word mask carries the entrance, so the block-level fades on the same elements stand still. */
html.motion-ready body.editorial-site .motion-reveal.tfx,.portfolio-motion-ready .editorial-site .case-reveal.tfx,.project-detail-site .pp-reveal.tfx{opacity:1!important;transform:none!important}
html.tfx-ready :is(.project-heading h3,.project-detail-title).tfx{--tfx-delay:120ms}
html.tfx-ready :is(.project-heading h3,.project-detail-title).tfx .tfx-i{transform:translate3d(0,108%,0) rotate(5deg);transform-origin:0 100%;transition-duration:1.2s,.6s}
html.tfx-ready :is(.project-heading h3,.project-detail-title).tfx.tfx-in .tfx-i{transform:none}

/* Rules draw from the left as their block enters. */
html.tfx-ready .tfx-line{position:relative;border-top-color:transparent!important}
html.tfx-ready .tfx-line::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--dt-line,rgba(244,244,242,.14));transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--dt-ease)}
html.tfx-ready .tfx-line.tfx-in::before{transform:scaleX(1)}

/* Actions wipe open after their copy. */
html.tfx-ready .tfx-wipe{clip-path:inset(0 100% 0 0);transition:clip-path 1s var(--dt-ease) .35s,border-color .35s ease,background-color .35s ease,color .35s ease}
html.tfx-ready .tfx-wipe.tfx-in{clip-path:inset(-4px -4px -4px -4px)}

/* Case imagery drifts slightly against the scroll once revealed. */
.portfolio-motion-ready .editorial-site .directed-case figure.case-reveal.is-visible img{scale:1.08;translate:0 var(--par,0px);transition:transform 1.8s var(--dt-ease) var(--case-delay,0ms),translate .2s linear}

@media(prefers-reduced-motion:reduce){
  html.tfx-ready .tfx .tfx-i{transform:none!important;opacity:1!important;transition:none!important}
  html.tfx-ready .tfx-line::before{transform:none!important}
  html.tfx-ready .tfx-wipe{clip-path:none!important}
  .portfolio-motion-ready .editorial-site .directed-case figure img{scale:1;translate:none}
}

/* ---------- Custom cursor (cursor.js) ---------- */
html.has-cursor:not(.cursor-native),html.has-cursor:not(.cursor-native) *{cursor:none!important}
.cursor-dot,.cursor-ring{position:fixed;z-index:2147483000;top:0;left:0;pointer-events:none;opacity:0;transition:opacity .25s ease}
html.cursor-visible:not(.cursor-native) :is(.cursor-dot,.cursor-ring){opacity:1}
.cursor-dot::before{content:"";position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--dt-red,#d32f38);box-shadow:0 0 12px rgba(211,47,56,.9);transition:transform .25s var(--dt-ease)}
.cursor-ring-shape{position:absolute;left:-20px;top:-20px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(244,244,242,.5);transition:transform .45s var(--dt-ease),background-color .3s ease,border-color .3s ease}
.cursor-label{position:absolute;left:0;top:0;transform:translate(-50%,-50%) scale(.6);opacity:0;color:#fff;font:600 11px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:opacity .25s ease,transform .35s var(--dt-ease)}
.cursor-ring[data-mode="link"] .cursor-ring-shape{transform:scale(1.55);border-color:var(--dt-red,#d32f38);background:rgba(211,47,56,.14)}
.cursor-dot[data-mode="link"]::before{transform:scale(.6)}
.cursor-ring:is([data-mode="view"],[data-mode="drag"]) .cursor-ring-shape{transform:scale(2.3);border-color:transparent;background:var(--dt-red,#d32f38);box-shadow:0 0 40px rgba(211,47,56,.55)}
.cursor-ring:is([data-mode="view"],[data-mode="drag"]) .cursor-label{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cursor-dot:is([data-mode="view"],[data-mode="drag"])::before{transform:scale(0)}
html.cursor-down .cursor-ring-shape{transform:scale(.8)}
html.cursor-down .cursor-ring[data-mode="link"] .cursor-ring-shape{transform:scale(1.3)}
@media(hover:none),(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}
/* Gallery drag (project-page.js): free movement while held, snapping returns on release. */
.project-detail-site .project-detail-gallery-grid.is-carousel{cursor:grab}
.project-detail-site .project-detail-gallery-grid.is-carousel.is-dragging{scroll-snap-type:none!important;scroll-behavior:auto!important;cursor:grabbing;user-select:none}
.project-detail-site .project-detail-gallery-grid.is-carousel img{-webkit-user-drag:none;user-select:none}

/* ---------- Client profiles (clients.js) ---------- */
.client-verified{width:15px;height:15px;margin-left:5px;vertical-align:-2px;flex:none}
/* Hero proof badge */
.hero-proof{margin-bottom:clamp(18px,2.4vw,28px)}
.client-proof{display:inline-flex;align-items:center;gap:12px;padding:6px 16px 6px 6px;border:1px solid rgba(244,244,242,.14);border-radius:999px;background:rgba(20,20,23,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--dt-muted,#a5a5ab);font:500 12px/1.2 Inter,system-ui,sans-serif;letter-spacing:.02em;text-decoration:none;transition:border-color .35s ease,color .35s ease}
.client-proof b{color:var(--dt-text,#f4f4f2);font-weight:600}
.client-proof:hover{border-color:rgba(211,47,56,.6);color:var(--dt-text,#f4f4f2)}
.client-proof-faces{display:flex}
.client-proof-faces img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid #0e0e11;box-shadow:0 0 0 1px rgba(211,47,56,.55)}
.client-proof-faces img+img{margin-left:-10px}
/* Case heading line */
.client-mini{display:inline-flex;align-items:center;gap:12px;margin:clamp(14px,1.6vw,20px) 0 4px;padding:6px 16px 6px 6px;border:1px solid rgba(244,244,242,.12);border-radius:999px;color:var(--dt-text,#f4f4f2);text-decoration:none;transition:border-color .35s ease,background-color .35s ease}
.client-mini img{width:40px;height:40px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #0e0e11,0 0 0 3px rgba(211,47,56,.6)}
.client-mini span{display:grid;gap:3px}
.client-mini b{display:inline-flex;align-items:center;font:600 13px/1 Inter,system-ui,sans-serif}
.client-mini small{font:500 11px/1 Inter,system-ui,sans-serif;letter-spacing:.06em;color:var(--dt-muted,#a5a5ab)}
.client-mini:hover{border-color:rgba(211,47,56,.55);background:rgba(211,47,56,.08)}
/* Project page card */
.project-client{margin-top:clamp(22px,2.6vw,36px)}
.client-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(16px,2.2vw,32px);max-width:860px;padding:clamp(14px,1.6vw,20px) clamp(18px,2vw,28px) clamp(14px,1.6vw,20px) clamp(14px,1.6vw,20px);border:1px solid rgba(244,244,242,.12);border-radius:20px;background:linear-gradient(135deg,rgba(29,29,33,.9),rgba(14,14,17,.9));color:var(--dt-text,#f4f4f2);text-decoration:none;overflow:hidden;transition:border-color .4s ease,transform .6s cubic-bezier(.16,1,.3,1)}
.client-card::before{content:"";position:absolute;left:-10%;top:-60%;width:50%;height:220%;background:radial-gradient(closest-side,rgba(211,47,56,.22),transparent);pointer-events:none}
.client-card:hover{border-color:rgba(211,47,56,.55);transform:translateY(-2px)}
.client-card-avatar{position:relative;width:clamp(68px,7vw,96px);aspect-ratio:1;padding:3px;border-radius:50%;background:conic-gradient(from 210deg,#d32f38,#ff7a5c,#d32f38 60%,#5a1418,#d32f38)}
.client-card-avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid #111114}
.client-card-id{position:relative;display:grid;gap:6px;min-width:0}
.client-card-id small{font:600 10px/1 Inter,system-ui,sans-serif;letter-spacing:.24em;color:var(--dt-red,#d32f38)}
.client-card-id strong{display:inline-flex;align-items:center;font:600 clamp(20px,2vw,28px)/1.1 Inter,system-ui,sans-serif;letter-spacing:-.02em}
.client-card-id>span{font:400 13px/1.4 Inter,system-ui,sans-serif;color:var(--dt-muted,#a5a5ab)}
.client-card-stats{position:relative;display:flex;gap:clamp(16px,2vw,30px)}
.client-card-stats>span{display:grid;gap:5px}
.client-card-stats b{font:600 clamp(20px,2vw,28px)/1 Inter,system-ui,sans-serif;letter-spacing:-.03em}
.client-card-stats small{font:500 10px/1.2 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--dt-muted,#a5a5ab)}
.client-card-arrow{position:absolute;right:16px;top:12px;font-style:normal;color:var(--dt-red,#d32f38)}
@media(max-width:860px){.client-card{grid-template-columns:auto minmax(0,1fr)}.client-card-stats{grid-column:1/-1;justify-content:space-between;padding-top:14px;border-top:1px solid rgba(244,244,242,.08)}}
@media(max-width:420px){.client-proof{font-size:11px}.client-card-stats b{font-size:18px}}
/* Case images are full width; the client avatar inside a case heading keeps its own size. */
.editorial-site .directed-case .client-mini img{width:40px!important;height:40px!important;max-width:none;flex:none;transform:none!important;scale:1!important;translate:none!important;transition:none}
/* Header CTA hover: light label on the red tint (an older rule set dark text for a light fill). */
.editorial-site .header-cta:hover{color:var(--dt-text,#f4f4f2)!important;background:rgba(211,47,56,.18)}
.editorial-site .header-cta:hover span{color:inherit}
.editorial-site .header-cta:hover span[aria-hidden]{color:var(--dt-red,#d32f38)}
