/* =========================================================
   Manuel Machado — Digital Portfolio
   Identidade: Blauer Nue, monocromático, fundo líquido WebGL,
   tema escuro "original" + tema claro creme.
========================================================= */

@font-face{
  font-family: "Blauer Nue";
  src: url("data:font/ttf;base64,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AAEECQAEACQAvgADAAEECQAFABoA4gADAAEECQAGACIA/AADAAEECQAIAB4BHgADAAEECQAJABoBPAADAAEECQALACgBVgADAAEECQAMACgBfgADAAEECQAQABQBpgADAAEECQARAA4BugBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMgA0ACAAYgB5ACAAVwBlAGIAaABhAG4AYwBlAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4AQgBsAGEAdQBlAHIAIABOAHUAZQBSAGUAZwB1AGwAYQByADEALgAwADAAMAA7AFcAQgBIAEUAOwBCAGwAYQB1AGUAcgBOAHUAZQAtAFIAZQBnAHUAbABhAHIAQgBsAGEAdQBlAHIAIABOAHUAZQAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMABCAGwAYQB1AGUAcgBOAHUAZQAtAFIAZQBnAHUAbABhAHIAVwBlAGIAaABhAG4AYwBlACAAUwB0AHUAZABpAG8AQQBsAHcAaQBuACAASgBvAGgAbgBzAG8AbgBoAHQAdABwAHMAOgAvAC8AdwBlAGIAaABhAG4AYwBlAC4AbgBlAHQAaAB0AHQAcABzADoALwAvAHcAZQBiAGgAYQBuAGMAZQAuAG4AZQB0AEIAbABhAHUAZQByACAATgB1AGUAUgBlAGcAdQBsAGEAcgAAAAIAAAAAAAD/nAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAywAAAAMABACjAAYABwCEAQIAhQCWAAkACwAMAA0ADgCCAPAACAAPABAAswAgABEAwwCHAIMAEgEDAQQBBQATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8BBgBAAEEAQgCdAJ4ARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAKIAsgC2ALcABQAKAMQAtAC1AMUAqwCpAL4AvwCqAIsAigCMAIYAxwBiAMkArQBjAK4AkABkAGUAyADKAMsAzADNAM4AzwBmANAA0QBnANMAkQCv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") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root{
  /* --vw é 1% da largura real da página. O main.js mede-a sem a barra de scroll (que o 1vw inclui
     nas janelas de desktop estreitas); sem JS fica 1vw. --page-w é a largura útil entre as margens,
     usada para os títulos grandes nunca saírem da margem em ecrãs estreitos. */
  --vw: 1vw;
  --pad-x: clamp(16px, 2.4vw, 64px);
  --page-w: calc(var(--vw) * 100 - 2 * var(--pad-x));
  --pad-y: clamp(14px, 2vh, 40px);
  --header-h: 84px;

  --bg: #0e0e0e;
  --text: #ffffff;
  --text-soft: rgba(255,255,255,.72);
  --text-mute: rgba(255,255,255,.48);

  --border: rgba(255,255,255,.18);
  --border-strong: rgba(255,255,255,.34);

  --surface: rgba(255,255,255,.06);
  --surface-strong: rgba(255,255,255,.1);

  --invert-bg: rgba(255,255,255,.94);
  --invert-text: #060010;

  --preloader-bg: #000000;

  --glitch-a: rgba(255,255,255,.55);
  --glitch-b: rgba(255,255,255,.35);

  --figure-glow: rgba(255,255,255,.11);

  --radius: 28px;
  --radius-sm: 16px;
  --ease: cubic-bezier(.2,.8,.2,1);
  --ease-io: cubic-bezier(.76,0,.24,1);

  color-scheme: dark;
}

html[data-theme="light"]{
  --figure-glow: transparent;
  --bg: #f4f1ea;
  --text: #111111;
  --text-soft: rgba(17,17,17,.72);
  --text-mute: rgba(17,17,17,.5);

  --border: rgba(17,17,17,.16);
  --border-strong: rgba(17,17,17,.3);

  --surface: rgba(255,255,255,.62);
  --surface-strong: rgba(255,255,255,.8);

  --invert-bg: rgba(17,17,17,.94);
  --invert-text: #f4f1ea;

  --preloader-bg: #f4f1ea;

  --glitch-a: rgba(17,17,17,.28);
  --glitch-b: rgba(17,17,17,.18);

  color-scheme: light;
}

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

html{
  -webkit-text-size-adjust: 100%;
  background: var(--bg);
  /* rede de segurança: no Chrome do telemóvel, algo que saia de lado alargava o ecrã todo
     (o cabeçalho, o menu e o preloader ficavam mais largos do que o telemóvel) */
  overflow-x: clip;
}

body{
  margin: 0;
  color: var(--text);
  background: transparent;
  font-family: "Blauer Nue", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 17px;
  line-height: 1.45;
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  transition: color .4s ease;
}

img{ display: block; max-width: 100%; }
a{ color: inherit; }
button{ font: inherit; color: inherit; }
dl, dd{ margin: 0; }
::selection{ background: var(--text); color: var(--bg); }

:focus-visible{
  outline: 2px solid var(--text);
  outline-offset: 4px;
  border-radius: 6px;
}

.skip-link{
  position: fixed;
  left: var(--pad-x);
  top: 10px;
  z-index: 10001;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--invert-bg);
  color: var(--invert-text);
  transform: translateY(-160%);
  transition: transform .3s var(--ease);
}
.skip-link:focus{ transform: none; }

/* Canvas do fundo líquido */
.bg-canvas{
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
  display: block;
}

.section{
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}

/* =========================================================
   Sublinhado (mesmo comportamento do site atual)
========================================================= */
.u-link{
  position: relative;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.u-link::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .32s var(--ease);
}
.u-link:focus-visible::after,
.u-link[aria-current="true"]::after{
  transform: scaleX(1);
  transform-origin: left center;
}
/* só com rato: num ecrã tátil o hover ficava preso depois de tocar */
@media (hover: hover){
  .u-link:hover::after{
    transform: scaleX(1);
    transform-origin: left center;
  }
}

/* =========================================================
   Preloader (machadodm.com + contador)
========================================================= */
.preloader{
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: var(--preloader-bg);
  color: var(--text);
  display: grid;
  place-items: center;
  clip-path: inset(0 0 0 0);
  transition: clip-path 1s var(--ease-io);
}
.pl-skip .preloader,
.preloader.is-gone{ display: none; }
.preloader.is-done{ clip-path: inset(0 0 100% 0); }

.preloader__domain{
  margin: 0;
  overflow: hidden;
  font-size: clamp(14px, 1.2vw, 22px);
  line-height: 1.1;
}
.preloader__domain span{
  display: inline-block;
  transform: translateY(120%);
  animation: plIn 1s var(--ease) .2s forwards;
}
.preloader.is-done .preloader__domain span{
  animation: plOut .6s ease forwards;
}
@keyframes plIn{ to{ transform: translateY(0); } }
@keyframes plOut{ from{ transform: translateY(0); } to{ transform: translateY(-120%); } }

.preloader__foot{
  position: absolute;
  left: var(--pad-x);
  right: var(--pad-x);
  bottom: calc(var(--pad-y) + 18px);
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16px;
}
.preloader__label{ font-size: 17px; color: var(--text-soft); white-space: nowrap; }
.preloader__count{
  flex: none;
  /* em ecrãs estreitos encolhe para o "100%" caber ao lado de "Digital Portfolio" (~141px com o espaço) */
  font-size: min(clamp(64px, 12vw, 200px), calc((var(--page-w) - 141px) / 2.55));
  line-height: .8;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
}
.preloader__bar{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--border);
}
.preloader__bar span{
  display: block;
  height: 100%;
  background: var(--text);
  transform-origin: left;
  transform: scaleX(var(--p, 0));
}

/* =========================================================
   Cortina das transições de página
========================================================= */
.curtain{
  position: fixed;
  inset: 0;
  z-index: 9998;
  background: var(--preloader-bg);
  color: var(--text);
  display: grid;
  place-items: center;
  pointer-events: none;
  clip-path: inset(100% 0 0 0);
  transition: clip-path .75s var(--ease-io);
}
.curtain__label{
  font-size: clamp(14px, 1.2vw, 22px);
  opacity: 0;
  transition: opacity .3s ease;
}
html.is-leaving .curtain{ clip-path: inset(0 0 0 0); pointer-events: auto; }
html.is-leaving .curtain__label{ opacity: 1; transition-delay: .35s; }
html.from-transition .curtain{ clip-path: inset(0 0 0 0); transition: none; }
html.from-transition .curtain__label{ opacity: 1; }
html.from-transition.is-entering .curtain{ clip-path: inset(0 0 100% 0); transition: clip-path .85s var(--ease-io); }
html.from-transition.is-entering .curtain__label{ opacity: 0; }

/* =========================================================
   Cursor
========================================================= */
.cursor{ display: none; }
@media (hover: hover) and (pointer: fine){
  html.has-cursor .cursor{ display: block; }
  /* html.has-cursor .cursor__dot, */
  html.has-cursor .cursor__ring{
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9997;
    pointer-events: none;
    border-radius: 999px;
  }
  /* Pontinho do meio comentado a pedido do Manuel (ver também o main.js e o _build/build.mjs)
  .cursor__dot{
    width: 6px;
    height: 6px;
    margin: -3px 0 0 -3px;
    background: #fff;
    mix-blend-mode: difference;
    transition: opacity .2s ease;
  }
  */
  .cursor__ring{
    width: 38px;
    height: 38px;
    margin: -19px 0 0 -19px;
    border: 1px solid rgba(255,255,255,.9);
    mix-blend-mode: difference;
    display: grid;
    place-items: center;
    transition: width .35s var(--ease), height .35s var(--ease), margin .35s var(--ease), background-color .35s var(--ease), border-color .35s var(--ease), opacity .3s ease;
  }
  .cursor__label{
    font-size: 13px;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--invert-text);
    opacity: 0;
    transform: scale(.6);
    transition: opacity .25s ease, transform .35s var(--ease);
    white-space: nowrap;
  }
  /* Bolha rebentada: por cima de botões e links o anel some (a animação do rebentar está no main.js) */
  html.cursor--pop .cursor__ring
  /* , html.cursor--pop .cursor__dot */{ opacity: 0; }
  html.cursor--label .cursor__ring{
    width: 96px;
    height: 96px;
    margin: -48px 0 0 -48px;
    background: var(--invert-bg);
    border-color: transparent;
    mix-blend-mode: normal;
  }
  html.cursor--label .cursor__label{ opacity: 1; transform: none; }
  /* html.cursor--label .cursor__dot{ opacity: 0; } */
  html.cursor--hidden .cursor__ring
  /* , html.cursor--hidden .cursor__dot */{ opacity: 0; }
}

/* =========================================================
   Header
========================================================= */
.site-header{
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 900;
  height: var(--header-h);
  padding: 0 var(--pad-x);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  color: #fff;
  mix-blend-mode: difference;
  transition: transform .6s var(--ease);
}
.site-header.is-hidden{ transform: translateY(-100%); }
html.menu-open .site-header{ transform: none; mix-blend-mode: normal; color: var(--invert-text); }
/* fundo do menu por trás do cabeçalho, para os links não passarem por baixo do nome quando o menu tem scroll
   (ecrãs muito baixos). Aparece depois de a cortina do menu já cobrir o topo. */
.site-header::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(var(--invert-bg), var(--invert-bg)), var(--bg);
  opacity: 0;
  pointer-events: none;
}
/* ao fechar some logo: com o cabeçalho de volta em mix-blend-mode difference, faria uma faixa escura */
html.menu-open .site-header::before{ opacity: 1; transition: opacity .2s ease .45s; }

.brand{ font-size: 17px; justify-self: start; white-space: nowrap; }
.nav{ display: flex; gap: clamp(18px, 2.4vw, 40px); }
.nav a{ text-decoration: none; }
.header__right{
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 18px;
}
.header__clock{ font-variant-numeric: tabular-nums; }

.theme-toggle{
  width: 42px;
  height: 42px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  display: inline-grid;
  place-items: center;
}
.bolt{ width: 100%; height: 100%; display: block; }
.bolt path{
  fill: transparent;
  stroke: currentColor;
  stroke-width: 1.3;
  stroke-linejoin: round;
  transition: fill .3s ease;
}
.theme-toggle .bolt{
  width: 34px;
  height: 34px;
  transform: skewX(-10deg);
  transition: transform .35s var(--ease);
}
html[data-theme="light"] .theme-toggle .bolt path{ fill: currentColor; }
@media (hover: hover){
  .theme-toggle:hover .bolt{ transform: skewX(-10deg) scale(1.1) rotate(-8deg); }
  .theme-toggle:hover .bolt path{ fill: currentColor; }
}

.menu-toggle{
  display: none;
  width: 42px;
  height: 42px;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  position: relative;
}
.menu-toggle span{
  position: absolute;
  left: 9px;
  right: 9px;
  height: 1.5px;
  background: currentColor;
  transition: transform .45s var(--ease), top .45s var(--ease);
}
.menu-toggle span:nth-child(1){ top: 16px; }
.menu-toggle span:nth-child(2){ top: 25px; }
html.menu-open .menu-toggle span:nth-child(1){ top: 20px; transform: rotate(45deg); }
html.menu-open .menu-toggle span:nth-child(2){ top: 20px; transform: rotate(-45deg); }

/* Menu mobile */
.menu{
  position: fixed;
  inset: 0;
  z-index: 800;
  /* opaco: a cor de --invert-bg pintada sobre o fundo, para o topo da página não transparecer */
  background: linear-gradient(var(--invert-bg), var(--invert-bg)), var(--bg);
  overflow-y: auto;
  overscroll-behavior: contain;
  color: var(--invert-text);
  padding: calc(var(--header-h) + 20px) var(--pad-x) var(--pad-y);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  clip-path: inset(0 0 100% 0);
  visibility: hidden;
  transition: clip-path .8s var(--ease-io), visibility 0s linear .8s;
}
html.menu-open .menu{
  clip-path: inset(0 0 0 0);
  visibility: visible;
  transition: clip-path .8s var(--ease-io), visibility 0s;
}
.menu__nav{ display: flex; flex-direction: column; }
.menu__link{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  /* cabe sempre: "CONTACT" (a palavra mais comprida) na largura útil e os quatro links na altura do ecrã */
  font-size: min(clamp(48px, 15vw, 96px), calc((var(--page-w) - 32px) / 5), 11svh);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -0.03em;
  text-decoration: none;
  padding: 6px 0;
  border-bottom: 1px solid currentColor;
  transform: translateY(40px);
  opacity: 0;
  transition: transform .8s var(--ease), opacity .6s ease;
}
html.menu-open .menu__link{
  transform: none;
  opacity: 1;
  transition-delay: calc(.25s + var(--i) * .07s);
}
.menu__num{ font-size: 14px; letter-spacing: 0; margin-top: .6em; }
.menu__foot{ display: flex; flex-direction: column; align-items: flex-start; font-size: 16px; }
/* links com 44px de altura para se acertar com o dedo; o sublinhado fica junto ao texto */
.menu__foot .u-link{ min-height: 44px; }
.menu__foot .u-link::after{ bottom: calc(50% - .8em); }
.menu :focus-visible{ outline-color: currentColor; }

/* =========================================================
   Hero
========================================================= */
.hero{
  position: relative;
  min-height: 100svh;
  padding: calc(var(--header-h) + 2vh) var(--pad-x) var(--pad-y);
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
}

.hero__title{
  position: absolute;
  inset: calc(var(--header-h) + 1vh) var(--pad-x) auto var(--pad-x);
  bottom: clamp(120px, 20vh, 200px);
  margin: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  font-weight: 400;
  font-size: clamp(60px, 15.2vw, 310px);
  line-height: .82;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  color: #fff;
  mix-blend-mode: difference;
  pointer-events: none;
}
.hero__line{
  display: block;
  white-space: nowrap;
  will-change: transform;
}
.hero__line--2{ align-self: flex-end; }

/* Entrada das letras */
.hero__line .char{
  display: inline-block;
  transform: translateY(105%);
  clip-path: inset(0 0 0 0);
}
.hero__line .char-mask{ display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .02em; }
html.is-ready .hero__line .char{
  transform: none;
  transition: transform 1.2s var(--ease);
  transition-delay: calc(.05s + var(--ci) * .12s);
}

.hero__portrait{
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: clamp(220px, 23vw, 420px);
  aspect-ratio: 3 / 4;
  margin: 0;
  transform: translate(-50%, -54%);
  perspective: 1000px;
}
.hero__portrait-inner{
  width: 100%;
  height: 100%;
  border-radius: var(--radius);
  overflow: hidden;
  background: #151515;
  transform-style: preserve-3d;
  clip-path: inset(100% 0 0 0 round var(--radius));
  transition: clip-path 1.4s var(--ease-io) .25s;
}
html.is-ready .hero__portrait-inner{ clip-path: inset(0 0 0 0 round var(--radius)); }
.hero__portrait-inner img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.25);
  transition: transform 1.8s var(--ease) .25s;
}
html.is-ready .hero__portrait-inner img{ transform: scale(1.06); }
.hero__caption{
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 12px);
  text-align: center;
  font-size: 13px;
  color: var(--text-soft);
  opacity: 0;
  transition: opacity .8s ease 1.2s;
}
html.is-ready .hero__caption{ opacity: 1; }

/* Hero "figura": recorte a andar, com os pés na base do ecrã.
   Para voltar ao retrato, HERO_MODE = "retrato" em _build/build.mjs. */
.hero--figure .hero__title{ z-index: 1; }
/* DIGITAL desce e fica a meio do espaço acima de PORTFOLIO, que se mantém no sítio */
.hero--figure .hero__line--1{ margin-block: auto; }
.hero__figure{
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 0;
  height: min(calc(100svh - var(--header-h) - 2vh), 1180px);
  aspect-ratio: 455 / 1398;
  margin: 0;
  transform: translateX(-50%);
  transform-origin: 50% 100%;
  will-change: transform;
}
/* Luz suave atrás da figura, para o fato preto não se perder no fundo escuro */
.hero__figure::before{
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 6%;
  width: 260%;
  transform: translateX(-50%);
  /* acaba antes dos pés, para não haver corte na base do hero durante o scroll */
  background: radial-gradient(closest-side, var(--figure-glow), transparent);
  pointer-events: none;
  opacity: 0;
  transition: opacity 1.6s ease .6s;
}
html.is-ready .hero__figure::before{ opacity: 1; }
.hero__figure-inner{
  position: relative;
  height: 100%;
  transform: translateY(45%);
  opacity: 0;
  transition: transform 1.6s var(--ease) .2s, opacity .9s ease .2s;
}
html.is-ready .hero__figure-inner{ transform: none; opacity: 1; }
.hero__figure picture,
.hero__figure img{
  display: block;
  width: 100%;
  height: 100%;
}
.hero__figure img{
  object-fit: contain;
  object-position: 50% 100%;
}
.hero__tag{
  position: absolute;
  top: 5%; /* ao lado da cara, acima de DIGITAL */
  left: calc(100% + 4px);
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap;
  font-size: 13px;
  color: var(--text-soft);
  opacity: 0;
  transform: translateX(-10px);
  transition: opacity .8s ease 1.3s, transform .9s var(--ease) 1.3s;
}
html.is-ready .hero__tag{ opacity: 1; transform: none; }
.hero__tag-line{
  width: clamp(24px, 3vw, 56px);
  height: 1px;
  background: var(--border-strong);
}

.hero__meta{
  grid-row: 3;
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end;
  gap: 24px;
}
.hero__services{
  margin: 0;
}
.hero__services,
.hero__loc,
.hero__scroll{
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .8s ease, transform .9s var(--ease);
  transition-delay: calc(.9s + var(--i, 0) * .07s);
}
html.is-ready .hero__services,
html.is-ready .hero__loc,
html.is-ready .hero__scroll{ opacity: 1; transform: none; }
.hero__loc{
  margin: 0;
  justify-self: end;
  text-align: right;
  grid-column: 3;
  --i: 4;
}
.hero__loc span{ color: var(--text-soft); font-variant-numeric: tabular-nums; }
.hero__scroll{
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .08em;
  --i: 5;
}
.hero__scroll-line{
  width: 1px;
  height: 48px;
  background: var(--border);
  position: relative;
  overflow: hidden;
}
.hero__scroll-line::after{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--text);
  animation: scrollLine 2s var(--ease-io) infinite;
}
@keyframes scrollLine{
  0%{ transform: translateY(-100%); }
  50%{ transform: translateY(0); }
  100%{ transform: translateY(100%); }
}

/* Glitch (do hero-title.js do site atual) */
.glitch{
  position: relative;
  display: inline-block;
  isolation: isolate;
}
.glitch.is-glitching{ animation: glitchBase .34s steps(2, end) both; }
.glitch.is-glitching::before,
.glitch.is-glitching::after{
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.glitch.is-glitching::before{
  text-shadow: -2px 0 var(--glitch-a), -4px 0 rgba(0,229,255,.18);
  clip-path: inset(6% 0 54% 0);
  transform: translate3d(-4px,0,0);
  animation: glitchA .34s steps(2, end) both;
}
.glitch.is-glitching::after{
  text-shadow: 2px 0 var(--glitch-b), 4px 0 rgba(255,59,129,.16);
  clip-path: inset(54% 0 8% 0);
  transform: translate3d(4px,0,0);
  animation: glitchB .34s steps(2, end) both;
}
@keyframes glitchBase{
  0%{ transform: none; }
  25%{ transform: translate3d(-2px,1px,0) skewX(-2deg); }
  50%{ transform: translate3d(2px,-1px,0); }
  75%{ transform: translate3d(-1px,0,0) skewX(1deg); }
  100%{ transform: none; }
}
@keyframes glitchA{
  0%{ clip-path: inset(10% 0 60% 0); }
  50%{ clip-path: inset(40% 0 30% 0); transform: translate3d(-6px,0,0); }
  100%{ clip-path: inset(70% 0 5% 0); }
}
@keyframes glitchB{
  0%{ clip-path: inset(60% 0 10% 0); }
  50%{ clip-path: inset(20% 0 55% 0); transform: translate3d(6px,0,0); }
  100%{ clip-path: inset(5% 0 75% 0); }
}

/* =========================================================
   Ticker (faixas a passar)
========================================================= */
.ticker{
  position: relative;
  padding: clamp(60px, 10vw, 140px) 0;
  overflow: hidden;
}
.ticker__row{
  display: flex;
  white-space: nowrap;
  overflow: hidden;
  padding: .32em 0;
  font-size: clamp(30px, 5.4vw, 92px);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -0.03em;
}
.ticker__row--a{
  background: var(--invert-bg);
  color: var(--invert-text);
  transform: rotate(-3deg) scale(1.06);
  position: relative;
  z-index: 2;
}
.ticker__row--b{
  color: var(--text);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  transform: rotate(2deg) scale(1.06);
  margin-top: -.6em;
  -webkit-text-stroke: 1px var(--text);
  -webkit-text-fill-color: transparent;
}
.ticker__track{
  display: flex;
  align-items: center;
  gap: .4em;
  padding-right: .4em;
  will-change: transform;
}
.ticker__track .bolt{
  width: .8em;
  height: .8em;
  flex: 0 0 auto;
  transform: skewX(-10deg);
}
.ticker__row--a .bolt path{ fill: currentColor; stroke: none; }
.ticker__row--b .bolt path{ stroke: var(--text); }

/* =========================================================
   Cabeçalho das secções
========================================================= */
.section-head{
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 15px;
  margin-bottom: clamp(28px, 4vw, 56px);
}
.section-head__num{ color: var(--text-mute); }
.section-head__line{
  flex: 1;
  height: 1px;
  background: var(--border);
  transform-origin: left;
  transform: scaleX(0);
  transition: transform 1.4s var(--ease) .15s;
}
.section-head.is-in .section-head__line{ transform: none; }

.big-title{
  margin: 0;
  font-weight: 400;
  /* o segundo valor faz "SELECTED" (a palavra mais comprida) caber na largura útil */
  font-size: min(clamp(54px, 11vw, 220px), calc(var(--page-w) / 5.2));
  line-height: .86;
  letter-spacing: -0.035em;
  text-transform: uppercase;
}
.big-title__count{
  font-size: max(.16em, 12px);
  letter-spacing: 0;
  vertical-align: top;
  position: relative;
  top: .5em;
  color: var(--text-soft);
}

/* Linhas que sobem (data-lines) */
[data-lines] .line{ display: block; overflow: hidden; padding-bottom: .04em; }
[data-lines] .line > span{
  display: inline-block;
  transform: translateY(110%);
  transition: transform 1.2s var(--ease);
}
[data-lines] .line:nth-child(2) > span{ transition-delay: .1s; }
[data-lines] .line:nth-child(3) > span{ transition-delay: .2s; }
[data-lines].is-in .line > span{ transform: none; }

/* Revelação genérica */
[data-reveal]{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1s ease, transform 1.1s var(--ease);
}
[data-reveal].is-in{ opacity: 1; transform: none; }

/* Imagens com máscara */
[data-reveal-img]{
  clip-path: inset(18% 8% 18% 8% round var(--radius));
  transition: clip-path 1.4s var(--ease-io);
}
[data-reveal-img] img{
  transform: scale(1.18);
  transition: transform 1.8s var(--ease);
}
[data-reveal-img].is-in{ clip-path: inset(0 0 0 0 round var(--radius)); }
[data-reveal-img].is-in img{ transform: none; }

/* Palavras que acendem com o scroll */
[data-scrub-words] .w{
  opacity: .16;
  transition: opacity .35s ease;
}
[data-scrub-words] .w.is-lit{ opacity: 1; }

/* Letras (data-chars) */
[data-chars] .char-mask{ display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .04em; }
[data-chars] .char{
  display: inline-block;
  transform: translateY(110%);
}
html.is-ready [data-chars] .char{
  transform: none;
  transition: transform 1.1s var(--ease);
  transition-delay: calc(.1s + var(--ci) * .08s);
}

/* =========================================================
   About
========================================================= */
.about{ padding-top: clamp(80px, 12vw, 180px); padding-bottom: clamp(80px, 12vw, 180px); }
.about__statement{
  margin: 0 0 clamp(60px, 9vw, 140px);
  font-size: clamp(30px, 4.6vw, 84px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  max-width: 18ch;
  max-width: min(100%, 1500px);
  text-indent: 2.2em;
}
.about__grid{
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: clamp(28px, 6vw, 120px);
  align-items: start;
}
.about__photo{
  margin: 0;
  aspect-ratio: 4 / 5;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
}
.about__photo-inner{ height: 118%; margin-top: -9%; }
.about__photo-inner img{ width: 100%; height: 100%; object-fit: cover; }
.about__body{ display: flex; flex-direction: column; gap: 22px; padding-top: 4px; }
.about__text{
  margin: 0;
  font-size: clamp(19px, 1.6vw, 26px);
  line-height: 1.3;
  max-width: 34ch;
}

.rows{ border-top: 1px solid var(--border); margin-top: 12px; }
.rows__row{
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}
.rows__row dt{ color: var(--text-mute); }
.rows__row dd{ color: var(--text); min-width: 0; overflow-wrap: anywhere; }

/* =========================================================
   Works — scroll horizontal fixado
========================================================= */
.works{ padding-top: clamp(40px, 6vw, 80px); }
.works__head{ padding-bottom: clamp(40px, 6vw, 80px); }
.works__headrow{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
}
.works__intro{ max-width: 340px; color: var(--text-soft); }
.works__intro p{ margin: 0; }
.works__hint{ margin-top: 14px !important; color: var(--text); display: flex; gap: 8px; }
.works__hint span:last-child{ animation: nudge 1.6s var(--ease-io) infinite; }
@keyframes nudge{ 50%{ transform: translateX(8px); } }

.hscroll{ position: relative; }
.hscroll__sticky{
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hscroll__track{
  display: flex;
  gap: clamp(18px, 2vw, 32px);
  padding: 0 var(--pad-x);
  width: max-content;
  will-change: transform;
}
.hscroll__progress{
  position: absolute;
  left: var(--pad-x);
  right: var(--pad-x);
  bottom: calc(var(--pad-y) + 8px);
  height: 1px;
  background: var(--border);
}
.hscroll__progress span{
  display: block;
  height: 100%;
  background: var(--text);
  transform-origin: left;
  transform: scaleX(0);
}

.work-card{
  position: relative;
  flex: 0 0 auto;
  width: clamp(760px, 64vw, 1160px);
  /* a imagem do cartão fica quase quadrada, para não cortar demasiado dos lados */
  height: clamp(480px, min(66vh, 0.56 * clamp(760px, 64vw, 1160px)), 740px);
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr);
  border: 1px solid var(--border);
  background: var(--surface);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  transition: border-color .4s ease, background .4s ease;
}
.work-card:hover{ border-color: var(--border-strong); background: var(--surface-strong); }
.work-card__media{ position: relative; overflow: hidden; background: #111; }
.work-card__media img{
  position: absolute;
  inset: 0;
  width: 115%;
  max-width: none;
  height: 100%;
  left: -7.5%;
  object-fit: cover;
  will-change: transform;
}
.work-card__media::after{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0);
  transition: background .5s ease;
}
.work-card:hover .work-card__media img{ scale: 1.02; transition: scale 1.2s var(--ease); }
.work-card__media img{ transition: scale 1.2s var(--ease); }
.work-card__body{
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 2.4vw, 40px);
}
.work-card__top{
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: var(--text-soft);
}
.work-card__title{
  margin: 22px 0 16px;
  font-weight: 400;
  font-size: clamp(36px, 3.6vw, 64px);
  line-height: .95;
  letter-spacing: -0.03em;
}
.work-card__desc{
  margin: 0;
  max-width: 30ch;
  font-size: 15px;
  color: var(--text-soft);
}
.work-card__tags{
  list-style: none;
  margin: auto 0 0;
  padding: 0;
  font-size: 14px;
}
.work-card__tags li{ padding: 10px 0; }
.work-card__tags li + li{ border-top: 1px solid var(--border); }
.work-card__cta{
  margin-top: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
}
.arrow{
  width: 1em;
  height: 1em;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .45s var(--ease);
}
a:hover > .arrow,
button:hover > .arrow,
.work-card:hover .arrow{ transform: rotate(45deg); }

.work-card--more{
  width: clamp(360px, 30vw, 520px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(24px, 2.4vw, 40px);
  background: var(--invert-bg);
  color: var(--invert-text);
  border-color: transparent;
}
.work-card--more:hover{ background: var(--invert-bg); }
.work-card--more__label{ font-size: 15px; }
.work-card--more__end{ white-space: nowrap; }
.work-card--more__title{
  /* o segundo valor faz "See everything" caber no cartão em ecrãs estreitos */
  font-size: min(clamp(36px, 3.4vw, 60px), calc((var(--page-w) - 48px) / 7.25));
  line-height: .98;
  letter-spacing: -0.03em;
}

/* =========================================================
   Services — menu com marquee (FlowingMenu)
========================================================= */
.services{ padding-top: clamp(100px, 14vw, 200px); padding-bottom: clamp(60px, 8vw, 120px); }
.services .big-title{ margin-bottom: clamp(40px, 6vw, 90px); }
.flow{
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
}
.flow__item{
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}
.flow__link{
  display: grid;
  grid-template-columns: 80px 1fr minmax(200px, 340px);
  align-items: center;
  gap: 20px;
  padding: clamp(18px, 2.4vw, 36px) 0;
  text-decoration: none;
}
.flow__num{ font-size: 15px; color: var(--text-mute); }
.flow__title{
  font-size: clamp(38px, 6vw, 112px);
  line-height: .95;
  letter-spacing: -0.035em;
  text-transform: uppercase;
}
.flow__desc{ font-size: 15px; color: var(--text-soft); }

.flow__marquee{
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  /* opaco: a cor de --invert-bg pintada sobre o fundo, para o título fixo não transparecer por baixo */
  background: linear-gradient(var(--invert-bg), var(--invert-bg)), var(--bg);
  color: var(--invert-text);
  transform: translateY(101%);
}
.flow__marquee-inner{
  height: 100%;
  transform: translateY(-101%);
}
.flow__marquee,
.flow__marquee-inner{ transition: transform .6s var(--ease); }
.flow__item.is-active .flow__marquee,
.flow__item.is-active .flow__marquee-inner{ transform: translateY(0); }
/* A faixa vai de uma ponta à outra do ecrã, por cima das margens laterais da página.
   O item só corta em cima e em baixo (por onde a faixa entra) e o link estica-se até às bordas,
   para o hover não acabar antes da faixa. Browsers sem "overflow: clip" ficam como antes. */
@supports (overflow: clip){
  .flow__item{ overflow-x: visible; overflow-y: clip; }
  .flow__marquee{ left: calc(-1 * var(--pad-x)); right: calc(-1 * var(--pad-x)); }
  .flow__link{ margin: 0 calc(-1 * var(--pad-x)); padding-left: var(--pad-x); padding-right: var(--pad-x); }
}
.flow__track{
  display: flex;
  align-items: center;
  height: 100%;
  width: max-content;
  animation: flowMarquee 16s linear infinite;
}
.flow__track > span:not(.flow__img){
  font-size: clamp(38px, 6vw, 112px);
  line-height: 1;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  padding: 0 .35em;
  white-space: nowrap;
}
.flow__img{
  width: clamp(120px, 12vw, 220px);
  height: 70%;
  border-radius: 999px;
  background-size: cover;
  background-position: center;
  flex: 0 0 auto;
}
@keyframes flowMarquee{ to{ transform: translateX(-50%); } }

/* =========================================================
   Contact
========================================================= */
.contact{ padding-top: clamp(100px, 14vw, 200px); padding-bottom: clamp(80px, 10vw, 160px); }
.contact__eyebrow{
  display: flex;
  /* em cima: se o texto partir em duas linhas, o ponto fica ao lado da primeira */
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 18px;
  color: var(--text-soft);
}
.dot{
  flex: none;
  margin-top: calc(.725em - 4.5px);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--text);
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{ box-shadow: 0 0 0 0 var(--border-strong); }
  50%{ box-shadow: 0 0 0 7px transparent; }
}
.contact__title{
  margin: 0 0 clamp(48px, 7vw, 110px);
  font-weight: 400;
  /* o segundo valor faz "TOGETHER" caber na largura útil em ecrãs estreitos */
  font-size: min(clamp(54px, 12.4vw, 250px), calc(var(--page-w) / 5.45));
  line-height: .84;
  letter-spacing: -0.04em;
  text-transform: uppercase;
}
.contact__title .line:nth-child(2){ text-align: right; }
.contact__grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(28px, 6vw, 110px);
  align-items: start;
}
.contact__info{ display: flex; flex-direction: column; gap: 28px; }
.contact__text{ margin: 0; font-size: clamp(19px, 1.6vw, 26px); line-height: 1.3; max-width: 30ch; }
.contact__email-wrap{ display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.contact__email{
  display: inline-block;
  max-width: 100%;
  /* o segundo valor mantém o email numa só linha nos telemóveis estreitos */
  font-size: min(clamp(22px, 2.6vw, 44px), calc(var(--page-w) / 14.6));
  letter-spacing: -0.02em;
  text-decoration: none;
  border-bottom: 1px solid var(--border-strong);
  padding-bottom: 4px;
  transition: border-color .3s ease;
  overflow-wrap: anywhere;
}
.contact__email:hover{ border-color: var(--text); }
/* no mobile, "Copy" e "Copied" com a mesma largura, para o botão não saltar de linha ao copiar
   (no desktop isso empurrava o botão para baixo do email) */
@media (max-width: 900px){ .pill{ min-width: 6.4em; } }

.pill{
  text-align: center;
  border: 1px solid var(--border-strong);
  background: transparent;
  border-radius: 999px;
  padding: 7px 14px;
  font-size: 14px;
  cursor: pointer;
  transition: background .3s ease, color .3s ease;
}
.pill:hover{ background: var(--text); color: var(--bg); }

.form{
  border: 1px solid var(--border);
  background: var(--surface);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-radius: var(--radius);
  padding: clamp(22px, 2.6vw, 40px);
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.form__grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field{ display: flex; flex-direction: column; gap: 8px; }
.field label{ font-size: 14px; color: var(--text-soft); }
.field input,
.field textarea,
.field select{
  width: 100%;
  font: inherit;
  font-size: 16px;
  color: var(--text);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border-strong);
  border-radius: 0;
  padding: 10px 0;
  outline: none;
  transition: border-color .3s ease;
}
.field textarea{ resize: vertical; min-height: 120px; }
.field input::placeholder,
.field textarea::placeholder{ color: var(--text-mute); }
.field input:focus,
.field textarea:focus,
.field select:focus{ border-color: var(--text); }
/* ao tocar num serviço, o campo do formulário pisca para mostrar que ficou escolhido */
.field.is-flash label{ color: var(--text); }
.field.is-flash select{ border-color: var(--text); }
.field.is-invalid input,
.field.is-invalid textarea,
.field.is-invalid select{ border-color: #ff5a5a; }
.select{ position: relative; }
.field select{ appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 28px; }
.field select:invalid{ color: var(--text-mute); }
.field select option{ color: #111; background: #fff; }
.select > svg{
  position: absolute;
  right: 2px;
  top: 50%;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  pointer-events: none;
}
/* Lista de serviços personalizada (main.js). O select nativo continua no formulário, escondido. */
.select.is-enhanced > select,
.select.is-enhanced > svg{ display: none; }
/* fica por cima do botão Send também enquanto a lista desaparece */
.select.is-enhanced{ z-index: 20; }
/* a lista a desaparecer já não apanha cliques (iam escolher outro serviço sem querer) */
.select:not(.is-open) .select__list{ pointer-events: none; }
.select__trigger{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 16px;
  text-align: left;
  color: var(--text-mute);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border-strong);
  border-radius: 0;
  padding: 10px 0;
  cursor: pointer;
  outline: none;
  transition: border-color .3s ease, color .3s ease;
}
.select.has-value .select__trigger{ color: var(--text); }
.select__trigger:focus-visible,
.select.is-open .select__trigger{ border-color: var(--text); }
/* foco do teclado: a linha fica mais grossa (também quando está a vermelho) */
.select__trigger:focus-visible{ box-shadow: 0 1px 0 var(--text); }
.field.is-invalid .select__trigger:focus-visible{ box-shadow: 0 1px 0 #ff5a5a; }
.select__value{ min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.select__chevron{
  flex: none;
  width: 14px;
  height: 14px;
  margin-right: 2px;
  fill: none;
  stroke: var(--text);
  stroke-width: 1.5;
  transition: transform .5s var(--ease);
}
.select.is-open .select__chevron{ transform: rotate(180deg); }
.select__list{
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 10px);
  margin: 0;
  padding: 6px;
  list-style: none;
  /* opaco: a cor de --surface-strong pintada sobre o fundo, como o cartão mas sem deixar ver o que está por baixo */
  background: linear-gradient(var(--surface-strong), var(--surface-strong)), var(--bg);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  box-shadow: 0 30px 60px -28px rgba(0,0,0,.75);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-10px) scale(.98);
  transform-origin: 50% 0;
  transition: opacity .25s ease, transform .5s var(--ease), visibility 0s linear .5s;
}
html[data-theme="light"] .select__list{ box-shadow: 0 30px 60px -30px rgba(17,17,17,.35); }
.select.is-up .select__list{ top: auto; bottom: calc(100% + 10px); transform: translateY(10px) scale(.98); transform-origin: 50% 100%; }
.select.is-open .select__list{
  visibility: visible;
  opacity: 1;
  transform: none;
  transition: opacity .2s ease, transform .5s var(--ease), visibility 0s;
}
.select__option{
  position: relative;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 8px 14px 8px 12px;
  border-radius: 10px;
  font-size: 17px;
  letter-spacing: -0.01em;
  line-height: 1.2;
  color: var(--text);
  cursor: pointer;
  opacity: 0;
  transform: translateY(8px);
  transition: background-color .25s ease, color .25s ease, opacity .3s ease, transform .5s var(--ease);
}
/* as opções entram uma a uma */
.select.is-open .select__option{
  opacity: 1;
  transform: none;
  transition-delay: 0s, 0s, calc(var(--i) * 40ms + 60ms), calc(var(--i) * 40ms + 60ms);
}
.select__num{ font-size: 14px; color: var(--text-mute); font-variant-numeric: tabular-nums; transition: color .25s ease; }
.select__name{ transition: transform .5s var(--ease); }
/* opção ativa (rato ou setas): invertida, como a faixa dos Services */
.select__option.is-active{ background: var(--text); color: var(--bg); }
.select__option.is-active .select__num{ color: inherit; opacity: .7; }
.select__option.is-active .select__name{ transform: translateX(6px); }
/* a opção escolhida leva um ponto à direita */
.select__dot{ width: 8px; height: 8px; border-radius: 50%; background: currentColor; transform: scale(0); transition: transform .4s var(--ease); }
.select__option[aria-selected="true"] .select__dot{ transform: none; }
/* "Other" separado dos serviços por uma linha */
.select__option--other{ margin-top: 9px; }
.select__option--other::before{
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  top: -5px;
  height: 1px;
  background: var(--border);
}
/* ecrãs estreitos (a janela estreita do desktop incluída): cada serviço numa só linha */
@media (max-width: 340px){
  .select__list{ padding: 4px; }
  .select__option{ grid-template-columns: 22px minmax(0, 1fr) auto; gap: 6px; padding: 8px 10px; font-size: 16px; }
  .select__option--other::before{ left: 10px; right: 10px; }
}
@media (max-width: 310px){ .select__option{ font-size: 14px; } }
/* ecrãs baixos (telemóvel deitado): linhas mais baixas, para a lista caber inteira */
@media (max-height: 500px){ .select__option{ min-height: 40px; padding-block: 6px; } }
/* Alto contraste do Windows: os fundos desaparecem, por isso a linha ativa e o ponto usam as cores do sistema */
@media (forced-colors: active){
  .select__option.is-active{ forced-color-adjust: none; background: Highlight; color: HighlightText; }
  .select__option.is-active .select__num{ opacity: 1; }
  .select__dot{ background: CanvasText; }
  .select__option.is-active .select__dot{ background: HighlightText; }
  .select__option--other::before{ background: GrayText; }
}
.field.is-flash .select__trigger{ border-color: var(--text); color: var(--text); }
.field.is-invalid .select__trigger{ border-color: #ff5a5a; }

.form__actions{ display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 6px; }
.form__status{ margin: 0; font-size: 14px; color: var(--text-soft); }

.btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 26px;
  border-radius: 999px;
  border: 1px solid var(--text);
  background: var(--text);
  color: var(--bg);
  font-size: 16px;
  text-decoration: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: color .4s var(--ease);
}
.btn::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--bg);
  border-radius: inherit;
  transform: translateY(101%);
  transition: transform .5s var(--ease);
}
.btn:hover{ color: var(--text); }
.btn:hover::before{ transform: none; }
.btn[disabled]{ opacity: .6; cursor: progress; }
.btn--ghost{ background: transparent; color: var(--text); }
.btn--ghost::before{ background: var(--text); }
.btn--ghost:hover{ color: var(--bg); }

/* =========================================================
   Footer
========================================================= */
.site-footer{
  padding: clamp(60px, 8vw, 120px) var(--pad-x) var(--pad-y);
  border-top: 1px solid var(--border);
  overflow: hidden;
}
.footer__cols{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.footer__col{ display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.footer__col--end{ align-items: flex-end; justify-content: flex-end; }
.footer__top{ gap: .35em; }
.footer__label{ margin: 0 0 8px; color: var(--text-mute); font-size: 14px; }
.footer__giant{
  margin: clamp(40px, 7vw, 120px) 0 clamp(10px, 1.6vw, 24px);
  line-height: .8;
  letter-spacing: -0.04em;
  white-space: nowrap;
  text-transform: uppercase;
  /* ocupa a largura útil; o main.js afina o valor depois de a fonte carregar */
  font-size: calc(var(--page-w) / 9.6);
  overflow: hidden;
}
.footer__giant span{
  display: inline-block;
  transform: translateY(100%);
  transition: transform 1.4s var(--ease);
}
.footer__giant.is-in span{ transform: none; }
.footer__bottom{
  /* três colunas, as das pontas com a mesma largura: o domínio fica mesmo ao centro */
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
  font-size: 15px;
}
.footer__domain{ color: var(--text-mute); }
.footer__bottom > :last-child{ justify-self: end; }

/* =========================================================
   Modal Terms
========================================================= */
.modal{
  position: fixed;
  inset: 0;
  z-index: 9990;
  display: grid;
  place-items: center;
  padding: var(--pad-x);
  visibility: hidden;
  transition: visibility 0s linear .6s;
}
.modal.is-open{ visibility: visible; transition: none; }
.modal__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity .5s ease;
}
.modal.is-open .modal__backdrop{ opacity: 1; }
.modal__panel{
  position: relative;
  width: min(760px, 100%);
  max-height: min(84svh, 860px);
  display: flex;
  flex-direction: column;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transform: translateY(40px) scale(.98);
  opacity: 0;
  transition: transform .6s var(--ease), opacity .4s ease;
}
.modal.is-open .modal__panel{ transform: none; opacity: 1; }
.modal__head{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 26px 28px 18px;
  border-bottom: 1px solid var(--border);
}
.modal__eyebrow{ margin: 0 0 6px; font-size: 14px; color: var(--text-mute); }
.modal__title{ margin: 0; font-weight: 400; font-size: clamp(34px, 4vw, 56px); line-height: 1; letter-spacing: -0.03em; }
.modal__close,
.lightbox__close{
  width: 44px;
  height: 44px;
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: transform .4s var(--ease);
}
.modal__close:hover,
.lightbox__close:hover{ transform: rotate(90deg); }
.modal__close svg,
.lightbox__close svg{ width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.modal__scroll{ overflow-y: auto; padding: 8px 28px 32px; overscroll-behavior: contain; }
.modal__text{ font-size: 15px; color: var(--text-soft); }
.modal__text h3{ margin: 26px 0 8px; font-weight: 400; font-size: 19px; color: var(--text); }

/* =========================================================
   Página de projeto
========================================================= */
.p-hero{
  /* contentor para o título medir a largura útil em cqi, também sem JavaScript */
  container-type: inline-size;
  padding: calc(var(--header-h) + clamp(40px, 10vh, 140px)) var(--pad-x) clamp(36px, 5vw, 70px);
}
.p-hero__eyebrow{ margin: 0 0 20px; color: var(--text-soft); }
.p-hero__title{
  margin: 0;
  font-weight: 400;
  /* em ecrãs estreitos encolhe um pouco, para METROBLACK caber numa linha (6.85 = largura de METROBLACK em em).
     --vw não conta a barra de scroll, ao contrário de vw */
  font-size: min(clamp(min(54px, calc(var(--vw) * 13)), calc(var(--vw) * 10.6), 230px), calc(100cqi / 6.85));
  line-height: .86;
  letter-spacing: -0.04em;
  text-transform: uppercase;
}
.p-hero__title .word{ display: inline-block; white-space: nowrap; }
.p-meta{
  margin-top: clamp(36px, 5vw, 70px);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--border);
}
.p-meta__item{ padding: 16px 16px 0 0; }
.p-meta__item dt{ font-size: 14px; color: var(--text-mute); margin-bottom: 4px; }

/* A capa mostra-se sempre inteira: a caixa tem a proporção da imagem e,
   em ecrãs largos, estreita para caber na altura do ecrã em vez de cortar. */
.p-cover{
  margin: 0 auto;
  width: min(calc(100% - 2 * var(--pad-x)), calc((100svh - 48px) * var(--ar, 3 / 2)));
  aspect-ratio: var(--ar, 3 / 2);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
  will-change: clip-path;
}
.p-cover__inner{ height: 100%; }
.p-cover__inner img{ display: block; width: 100%; height: 100%; object-fit: cover; }

.p-intro{
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(0, 3fr);
  gap: clamp(20px, 4vw, 80px);
  padding-top: clamp(80px, 12vw, 180px);
  padding-bottom: clamp(60px, 9vw, 140px);
}
.p-intro__label{ margin: 0; color: var(--text-mute); }
.p-intro__text{ display: flex; flex-direction: column; gap: 22px; max-width: 980px; }
.p-intro__text p{ margin: 0; font-size: clamp(17px, 1.3vw, 21px); color: var(--text-soft); max-width: 62ch; }
.p-intro__text .p-intro__lead{
  font-size: clamp(24px, 2.6vw, 46px);
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--text);
  max-width: none;
}
/* descrição com vários parágrafos: todos em letra grande, com uma pausa de meia linha entre eles */
.p-intro__text .p-intro__lead + .p-intro__lead{ margin-top: .5em; }

/* Coleções (Website Collection): lista de sites, cada um com a imagem inteira, nome, texto e link */
.p-sites{
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(0, 3fr);
  gap: clamp(20px, 4vw, 80px);
}
.p-sites__list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(60px, 8vw, 120px);
}
.p-site{ display: flex; flex-direction: column; gap: clamp(20px, 2.2vw, 32px); }
.p-site__media{
  display: block;
  width: min(100%, calc((100svh - 48px) * var(--grow, 1.5)));
  aspect-ratio: var(--ar, 3 / 2);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
}
.p-site__media img{ display: block; width: 100%; height: 100%; object-fit: cover; }
.p-site__info{
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) auto;
  align-items: baseline;
  column-gap: 20px;
  row-gap: 14px;
}
.p-site__num{ font-size: 15px; color: var(--text-mute); }
.p-site__name{
  margin: 0;
  font-weight: 400;
  font-size: clamp(30px, 3.4vw, 60px);
  line-height: 1;
  letter-spacing: -0.03em;
}
.p-site__year{ font-size: 15px; color: var(--text-mute); }
.p-site__text{ grid-column: 2 / -1; margin: 0; font-size: clamp(17px, 1.3vw, 21px); color: var(--text-soft); max-width: 62ch; }
.p-site__info .btn{ grid-column: 2 / -1; justify-self: start; margin-top: 6px; }

.p-video{ padding: 0 var(--pad-x) clamp(40px, 6vw, 80px); }
.p-video__frame{
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--border);
  background: #000;
}
.p-video__frame iframe{ position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Galeria: cada imagem com a sua proporção; numa linha de duas, as larguras
   são proporcionais à proporção de cada uma, por isso ficam com a mesma altura. */
.p-gallery{
  --gap: clamp(14px, 1.6vw, 28px);
  display: flex;
  flex-direction: column;
  gap: var(--gap);
  padding: 0 var(--pad-x);
}
.p-row{ display: flex; gap: var(--gap); }
/* Uma imagem sozinha na linha nunca fica mais alta do que o ecrã */
.p-row > .p-shot:only-child{
  flex: none;
  width: min(100%, calc((100svh - 48px) * var(--grow, 1.5)));
  margin: 0 auto;
}
.p-shot{
  flex: var(--grow, 1.5) 1 0;
  min-width: 0;
  aspect-ratio: var(--ar, 3 / 2);
  margin: 0;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--surface);
}
.p-shot__btn{
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  padding: 0;
  background: none;
  cursor: zoom-in;
  overflow: hidden;
}
.p-shot__btn:focus-visible{ outline-offset: -4px; border-radius: var(--radius); }
.p-shot__inner{ display: block; height: 100%; }
.p-shot__inner img{ display: block; width: 100%; height: 100%; object-fit: cover; }

.p-info{
  display: grid;
  grid-template-columns: minmax(160px, 1fr) minmax(0, 3fr);
  gap: clamp(20px, 4vw, 80px);
  padding-top: clamp(80px, 10vw, 160px);
  padding-bottom: clamp(80px, 10vw, 160px);
}
.p-info__body{ display: flex; flex-direction: column; gap: 22px; max-width: 980px; }
.p-info__body .rows{ margin-top: 0; }
.p-info__note{ margin: 0; color: var(--text-soft); max-width: 62ch; }
.p-info__credits{ margin: 0; }
.p-info__links{ display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; }

.p-next{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
  padding: clamp(80px, 12vw, 180px) var(--pad-x);
  border-top: 1px solid var(--border);
  text-decoration: none;
  overflow: hidden;
}
.p-next__label{ color: var(--text-soft); }
.p-next__title{
  position: relative;
  z-index: 2;
  /* o segundo valor faz a palavra mais comprida dos títulos ("METROBLACK") caber na largura útil */
  font-size: min(clamp(48px, 9vw, 180px), calc(var(--page-w) / 7));
  line-height: .9;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  color: #fff;
  mix-blend-mode: difference;
}
.p-next__img{
  position: absolute;
  left: 50%;
  top: 50%;
  width: clamp(220px, 26vw, 460px);
  aspect-ratio: var(--ar, 3 / 2);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transform: translate(-50%, -50%) scale(.6) rotate(-6deg);
  opacity: 0;
  transition: transform .8s var(--ease), opacity .5s ease;
  pointer-events: none;
}
.p-next__img img{ width: 100%; height: 100%; object-fit: cover; }
.p-next:hover .p-next__img{ transform: translate(-50%, -50%) scale(1) rotate(0); opacity: 1; }

/* Lightbox */
.lightbox{
  position: fixed;
  inset: 0;
  z-index: 9995;
  background: rgba(0,0,0,.92);
  color: #fff;
  display: grid;
  /* célula com tamanho definido, para a imagem caber sempre inteira no ecrã */
  grid-template: minmax(0, 1fr) / minmax(0, 1fr);
  place-items: center;
  /* espaço dos lados para as setas não ficarem por cima da imagem */
  padding: 70px calc(var(--pad-x) + 68px);
  opacity: 0;
  visibility: hidden;
  transition: opacity .4s ease, visibility 0s linear .4s;
}
.lightbox.is-open{ opacity: 1; visibility: visible; transition: opacity .4s ease; }
.lightbox__img{
  max-width: 100%;
  max-height: 100%;
  border-radius: var(--radius-sm);
  object-fit: contain;
  transform: scale(.96);
  transition: transform .5s var(--ease);
}
.lightbox.is-open .lightbox__img{ transform: none; }
.lightbox__close{ position: absolute; top: 18px; right: var(--pad-x); border-color: rgba(255,255,255,.4); }
.lightbox__nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.4);
  background: transparent;
  color: #fff;
  font-size: 20px;
  cursor: pointer;
}
.lightbox__nav--prev{ left: var(--pad-x); }
.lightbox__nav--next{ right: var(--pad-x); }
.lightbox__count{ position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; margin: 0; font-size: 14px; color: rgba(255,255,255,.7); pointer-events: none; }
.lightbox :focus-visible{ outline-color: #fff; }
/* no telemóvel desliza-se com o dedo para mudar de imagem */
.lightbox{ touch-action: pan-y; }

/* 404 */
.nf{
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 24px;
  padding: var(--header-h) var(--pad-x);
}
.nf__title{
  margin: 0;
  font-weight: 400;
  font-size: clamp(120px, 30vw, 520px);
  line-height: .8;
  letter-spacing: -0.05em;
}
.nf__text{ margin: 0; font-size: clamp(19px, 1.6vw, 26px); max-width: 30ch; }

/* =========================================================
   Responsivo
========================================================= */
@media (max-width: 1100px){
  .work-card{ width: 78vw; grid-template-columns: 1fr; grid-template-rows: 1fr auto; height: min(74svh, 720px); }
  .work-card__desc{ display: none; }
  .work-card__tags{ display: none; }
  .work-card__title{ margin: 14px 0 6px; }
  .work-card__cta{ margin-top: 6px; }
  .work-card--more{ width: 60vw; }
}

@media (max-width: 900px){
  :root{ --header-h: 68px; }
  .site-header{ grid-template-columns: 1fr auto; }
  .nav{ display: none; }
  .header__clock{ display: none; }
  .menu-toggle{ display: block; }
  .header__right{ gap: 6px; }
  .site-header{ gap: 12px; }
  /* área de toque maior sem mexer no aspeto */
  .brand{ padding-block: 8px; margin-block: -8px; }
  .theme-toggle .bolt{ width: 28px; height: 28px; }

  .hero__title{ font-size: 15vw; bottom: clamp(150px, 26vh, 260px); }
  .hero__portrait{ width: min(52vw, 300px); transform: translate(-50%, -56%); }
  .hero__caption{ display: none; }
  .hero__tag{ display: none; }
  .hero__meta{ grid-template-columns: 1fr 1fr; }
  .hero__scroll{ display: none; }
  .hero__loc{ grid-column: 2; }
  /* no mobile só fica a cidade: sem as horas nem o (WEST), a pedido do Manuel */
  .hero__loc br, .hero__loc [data-clock-full]{ display: none; }

  .about__grid{ grid-template-columns: minmax(0, 1fr); }
  .about__statement{ text-indent: 0; }
  .rows__row{ grid-template-columns: 110px minmax(0, 1fr); }

  .works__headrow{ flex-direction: column; align-items: flex-start; }

  /* o número fica alinhado com a primeira linha do título */
  .flow__link{ grid-template-columns: 40px minmax(0, 1fr); row-gap: 6px; align-items: baseline; }
  /* "DEVELOPMENT" (a palavra mais comprida) cabe sempre na coluna do título: largura útil - número - espaço */
  .flow__title{ font-size: min(38px, calc((var(--page-w) - 60px) / 7.45)); }
  .flow__desc{ grid-column: 2; }
  .flow__marquee{ display: none; }

  .contact__grid{ grid-template-columns: 1fr; }
  .contact__title .line:nth-child(2){ text-align: left; }
  .form__grid{ grid-template-columns: 1fr; }

  .footer__cols{ grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
  /* a coluna Contact ocupa a linha toda, para o email não empurrar a coluna Social para fora do ecrã */
  .footer__col:nth-child(3){ grid-column: 1 / -1; }
  .footer__col a{ max-width: 100%; overflow-wrap: anywhere; }
  .footer__col--end{ align-items: flex-start; grid-column: 1 / -1; }
  /* links do rodapé com 40px de altura para o dedo; o sublinhado fica junto ao texto */
  .footer__col{ gap: 0; }
  .footer__col > .u-link, .footer__top, .footer__bottom .u-link{ min-height: 40px; }
  .footer__col > .u-link::after, .footer__top::after, .footer__bottom .u-link::after{ bottom: calc(50% - .8em); }
  .footer__bottom{ display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; row-gap: 0; }
  .footer__bottom [data-terms-open]{ margin-left: auto; }
  .footer__domain{ display: none; }

  .p-meta{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-intro, .p-info, .p-sites{ grid-template-columns: 1fr; }
  .p-site__info{ grid-template-columns: 36px minmax(0, 1fr) auto; column-gap: 12px; }
  .p-site__media{ margin-inline: auto; }
  .p-row{ flex-direction: column; }
  .p-shot{ flex: none; width: 100%; }
  .lightbox{ padding: 70px var(--pad-x); }
  .lightbox__nav{ top: auto; bottom: 14px; transform: none; width: 44px; height: 44px; }
}

/* Works em coluna no mobile e em ecrãs baixos (telemóvel deitado), sem scroll horizontal fixado.
   O main.js usa as mesmas condições (worksStatic). */
@media (max-width: 900px), (max-height: 500px){
  .hscroll{ height: auto !important; }
  .hscroll__sticky{ position: static; height: auto; overflow: visible; }
  .hscroll__track{ flex-direction: column; width: auto; transform: none !important; }
  .hscroll__progress{ display: none; }
  .works__hint{ display: none !important; }
  .work-card{ width: 100%; height: auto; grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .work-card__media{ aspect-ratio: 4 / 3; }
  /* sem o parallax do desktop, a imagem não precisa de ser mais larga do que o cartão */
  .work-card__media img{ width: 100%; left: 0; }
  .work-card__desc{ display: block; margin-bottom: 16px; }
  .work-card--more{ width: 100%; min-height: 220px; gap: 30px; }
}

/* Telemóvel deitado: cartões, About e galerias com imagem e texto lado a lado, como no desktop,
   para nada ficar mais alto do que o ecrã */
@media (max-width: 900px) and (orientation: landscape), (max-height: 500px) and (orientation: landscape){
  .work-card{ grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); grid-template-rows: auto; }
  .work-card__media{ aspect-ratio: auto; min-height: 240px; }
  /* a coluna do texto é estreita: o título encolhe para a palavra mais comprida (Metroblack, 5.25em) caber */
  .work-card__body{ container-type: inline-size; }
  .work-card__title{ font-size: min(clamp(36px, 3.6vw, 64px), 100cqi / 5.25); }
  /* a coluna do texto nunca fica mais estreita do que o email (250px); abaixo disso encolhe a foto */
  .about__grid{ grid-template-columns: minmax(0, 5fr) minmax(min(100%, 250px), 6fr); }
  .p-row{ flex-direction: row; }
  .p-row > .p-shot:not(:only-child){ flex: var(--grow, 1.5) 1 0; width: auto; }
}
/* na coluna estreita do About deitado, a etiqueta fica por cima do valor, para o email não partir */
@media (max-width: 800px) and (orientation: landscape){
  .about .rows__row{ grid-template-columns: minmax(0, 1fr); gap: 2px; }
}
/* o relógio também sai num telemóvel grande deitado (mais largo do que 900px) */
@media (hover: none) and (pointer: coarse) and (max-height: 500px){
  .hero__loc br, .hero__loc [data-clock-full]{ display: none; }
}

/* Ecrãs baixos (telemóvel deitado): menu, Terms e visualizador de imagens aproveitam a altura */
@media (max-height: 560px) and (orientation: landscape){
  .menu{ padding-top: calc(var(--header-h) + 4px); justify-content: flex-start; gap: 18px; }
  .menu__link{ padding: 3px 0; }
  .menu__foot{ flex-direction: row; flex-wrap: wrap; column-gap: 18px; }
}
@media (max-height: 500px){
  .modal{ padding: 8px var(--pad-x); }
  .modal__panel{ max-height: calc(100svh - 16px); }
  .modal__head{ padding: 12px 20px 10px; align-items: center; }
  .modal__eyebrow{ display: none; }
  .modal__title{ font-size: 26px; }
  .lightbox{ padding: 28px calc(var(--pad-x) + 60px); }
  .lightbox__nav{ top: 50%; bottom: auto; transform: translateY(-50%); width: 44px; height: 44px; }
  .lightbox__close{ top: 10px; }
  .lightbox__count{ bottom: 6px; }
}

/* Movimento reduzido em ecrãs largos: sem o scroll fixado, os Works passam a deslizar para o lado */
@media (prefers-reduced-motion: reduce) and (min-width: 901px) and (min-height: 501px){
  .hscroll{ height: auto !important; }
  .hscroll__sticky{ position: static; height: auto; overflow-x: auto; overflow-y: hidden; padding: 10px 0 24px; scroll-snap-type: x proximity; overscroll-behavior-x: contain; }
  .hscroll__track{ transform: none !important; }
  .hscroll__progress{ display: none; }
  /* "Keep scrolling" deixa de fazer sentido: a faixa desliza para o lado, não com o scroll da página */
  .works__hint{ display: none !important; }
  .work-card{ scroll-snap-align: center; }
}

/* Ecrãs táteis: links com área de toque maior e sublinhado sempre visível (não há hover) */
@media (hover: none){
  .nav a{ padding-block: 9px; margin-block: -9px; }
  .about__text .u-link, .rows .u-link{ padding-block: 8px; margin-block: -8px; }
  .about__text .u-link::after, .rows .u-link::after{ bottom: 7px; transform: scaleX(1); opacity: .45; }
  /* "Next project": sem hover, a imagem do próximo projeto aparece por baixo do título */
  .p-next__img,
  .p-next:hover .p-next__img{
    position: relative;
    left: auto;
    top: auto;
    width: min(100%, 260px);
    margin-top: 10px;
    transform: none;
    opacity: 1;
  }
}

/* Mobile e tablets na vertical: as duas palavras ficam juntas em cima e a figura ocupa o resto do ecrã */
@media (max-width: 900px), (orientation: portrait){
  .hero--figure .hero__title{ bottom: auto; justify-content: flex-start; }
  .hero--figure .hero__line--1{ margin-block: 0; }
  .hero__figure{ height: max(calc(100svh - var(--header-h) - 32vw), 60svh); max-height: 205vw; }
}

/* Ecrãs estreitos: a localização parte em linhas curtas para não passar por cima dos sapatos */
@media (max-width: 420px){
  .hero--figure .hero__loc{ width: min-content; }
}

@media (max-width: 520px){
  :root{ --radius: 18px; }
  .hero__meta{ font-size: 15px; }
  .ticker__row{ font-size: 34px; }
  .flow__title{ font-size: min(34px, calc((var(--page-w) - 60px) / 7.45)); }
  /* Scope ocupa a linha toda, em vez de ficar apertado na coluna da direita */
  .p-meta__item:last-child{ grid-column: 1 / -1; }
  /* número ao lado do nome; o texto e o botão usam a largura toda */
  .p-site__info{ grid-template-columns: 28px minmax(0, 1fr); column-gap: 10px; }
  .p-site__text, .p-site__info .btn{ grid-column: 1 / -1; }
  .modal{ padding: 10px; }
  .modal__head{ padding: 20px 18px 14px; }
  .modal__scroll{ padding: 6px 18px 24px; }
}
/* estreito e baixo ao mesmo tempo: mantém o cabeçalho compacto do Terms */
@media (max-width: 520px) and (max-height: 500px){
  .modal__head{ padding: 12px 18px 10px; }
}

/* ecrãs muito estreitos (menos de 280px): o email encolhe um pouco em vez de partir a meio */
.rows__row dd a[href^="mailto:"], .footer__col a[href^="mailto:"]{ font-size: min(1em, calc(var(--page-w) / 14.5)); }

/* Telemóveis: nas listas de detalhes (About, Contact, créditos dos projetos) o nome fica por cima do valor,
   para o email e os nomes compridos não partirem a meio */
@media (max-width: 480px){
  .rows__row{ grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

@media (max-width: 360px){
  .footer__bottom{ font-size: 14px; }
}

/* Movimento reduzido: tudo visível, sem animações longas */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    transition-delay: 0s !important;
  }
  [data-reveal], [data-reveal-img], [data-lines] .line > span, .hero__line .char, [data-chars] .char,
  .hero__services, .hero__loc, .hero__scroll, .footer__giant span,
  .hero__figure-inner, .hero__tag{
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
  }
  [data-scrub-words] .w{ opacity: 1; }
}

/* Sem JavaScript: mostrar tudo */
html:not(.js) .hero__figure::before{ opacity: 1; }
html:not(.js) [data-reveal],
html:not(.js) [data-reveal-img],
html:not(.js) [data-lines] .line > span,
html:not(.js) .hero__services,
html:not(.js) .hero__loc,
html:not(.js) .hero__scroll,
html:not(.js) .hero__portrait-inner,
html:not(.js) .hero__figure-inner,
html:not(.js) .hero__tag,
html:not(.js) .footer__giant span{
  opacity: 1;
  transform: none;
  clip-path: none;
}
