:root {
  --acid: #D0D31A;
  --acid-soft: #F0F19D;
  --ink: #080908;
  --ink-2: #10110f;
  --ink-3: #171915;
  --paper: #f2f2ec;
  --muted: #a3a69b;
  --line: rgba(208, 211, 26, .25);
  --line-white: rgba(255, 255, 255, .12);
  --shadow: 0 24px 80px rgba(0, 0, 0, .35);
  --font-display: Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Black", sans-serif;
  --font-condensed: "Arial Narrow", "Bahnschrift Condensed", "Roboto Condensed", Arial, sans-serif;
  --font-mono: "Courier New", ui-monospace, monospace;
  --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --header-h: 88px;
  --radius: 2px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  min-width: 320px;
  color: var(--paper);
  background: var(--ink);
  font-family: var(--font-body);
  line-height: 1.55;
  overflow-x: hidden;
}
body.is-locked { overflow: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
address { font-style: normal; }
::selection { color: var(--ink); background: var(--acid); }

.skip-link {
  position: fixed;
  left: 14px;
  top: 14px;
  z-index: 9999;
  transform: translateY(-160%);
  background: var(--acid);
  color: var(--ink);
  padding: 10px 16px;
  font-weight: 800;
}
.skip-link:focus { transform: translateY(0); }

.pixel-canvas,
.scanlines,
.grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
}
.pixel-canvas { z-index: 0; opacity: .36; }
.scanlines {
  z-index: 90;
  opacity: .22;
  background: repeating-linear-gradient(to bottom, transparent 0 3px, rgba(0,0,0,.12) 3px 4px);
  mix-blend-mode: multiply;
}
.grain {
  z-index: 89;
  inset: -60%;
  width: 220%;
  height: 220%;
  opacity: .025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grainMove .45s steps(2) infinite;
}
@keyframes grainMove {
  0% { transform: translate(0,0); }
  25% { transform: translate(-3%,2%); }
  50% { transform: translate(2%,-4%); }
  75% { transform: translate(4%,3%); }
  100% { transform: translate(-2%,-2%); }
}

main, .site-header, .site-footer { position: relative; z-index: 2; }
.container-wide { width: min(1480px, calc(100% - 64px)); margin-inline: auto; }
.container-narrow { width: min(920px, calc(100% - 48px)); margin-inline: auto; }
.section { position: relative; padding: clamp(96px, 10vw, 170px) 0; }
.micro-label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--acid);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.micro-label::before { content: ""; width: 24px; height: 1px; background: currentColor; }
.icon { width: 20px; height: 20px; flex: 0 0 auto; }
.icon--back { transform: rotate(180deg); }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--header-h);
  z-index: 120;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  padding: 0 clamp(20px, 3vw, 54px);
  border-bottom: 1px solid transparent;
  transition: background .35s ease, border-color .35s ease, height .35s ease;
}
.site-header::after {
  content: "";
  position: absolute;
  inset: auto 0 -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--acid), transparent);
  opacity: 0;
  transition: opacity .35s;
}
.site-header.is-scrolled {
  height: 72px;
  background: rgba(8,9,8,.92);
  backdrop-filter: blur(18px);
  border-color: rgba(255,255,255,.08);
}
.site-header.is-scrolled::after { opacity: .45; }
.brand { display: flex; align-items: center; width: 190px; height: 72px; overflow: hidden; }
.brand img { width: 190px; height: auto; filter: drop-shadow(0 0 16px rgba(208,211,26,.2)); }
.main-nav { display: flex; justify-content: center; gap: clamp(22px, 2.4vw, 46px); }
.main-nav > a {
  position: relative;
  color: rgba(255,255,255,.78);
  font-family: var(--font-condensed);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.main-nav > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -8px;
  height: 2px;
  background: var(--acid);
  transition: right .25s;
}
.main-nav > a:hover::after,
.main-nav > a:focus-visible::after { right: 0; }
.nav-services { display: none; }
.header-cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 13px 18px;
  color: var(--ink);
  background: var(--acid);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .1em;
  border: 1px solid var(--acid);
  transition: transform .2s, box-shadow .2s;
}
.header-cta:hover { transform: translateY(-2px); box-shadow: 0 0 34px rgba(208,211,26,.28); }
.nav-toggle { display: none; background: none; border: 0; cursor: pointer; }

.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: grid;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.hero__media {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(90deg, rgba(8,9,8,.99) 0%, rgba(8,9,8,.88) 44%, rgba(8,9,8,.25) 100%), var(--hero-image);
  background-size: cover;
  background-position: center;
  filter: saturate(.85) contrast(1.08);
  transform: scale(1.04);
  animation: heroZoom 12s ease-out forwards;
}
.hero__media::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 49.8%, rgba(208,211,26,.09) 50%, transparent 50.2%),
    linear-gradient(0deg, transparent 49.8%, rgba(208,211,26,.06) 50%, transparent 50.2%),
    radial-gradient(circle at 75% 35%, rgba(208,211,26,.14), transparent 30%);
  background-size: 120px 120px, 120px 120px, auto;
}
.hero__media span {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 61%;
  width: 1px;
  background: linear-gradient(transparent, var(--acid), transparent);
  box-shadow: 0 0 30px var(--acid);
  opacity: .35;
}
@keyframes heroZoom { to { transform: scale(1); } }
.hero__content {
  position: relative;
  z-index: 2;
  padding-top: calc(var(--header-h) + 50px);
  padding-bottom: 64px;
}
.hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: clamp(24px, 3vw, 44px);
  color: rgba(255,255,255,.65);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .18em;
}
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--acid); box-shadow: 0 0 18px var(--acid); animation: livePulse 1.4s infinite; }
@keyframes livePulse { 50% { opacity: .3; transform: scale(.7); } }
.hero__title {
  margin: 0;
  width: min(920px, 58vw);
  max-width: 100%;
  font-family: var(--font-display);
  font-size: clamp(64px, 8.6vw, 148px);
  font-weight: 900;
  line-height: .84;
  letter-spacing: -.028em;
  text-transform: uppercase;
  text-wrap: balance;
}
.hero__title > span { display: block; }
.reveal-text { animation: titleIn .9s cubic-bezier(.16,1,.3,1) both; }
.reveal-text:nth-child(2) { animation-delay: .12s; }
.reveal-text:nth-child(3) { animation-delay: .24s; }
@keyframes titleIn { from { opacity: 0; transform: translateY(70px) skewY(4deg); clip-path: inset(100% 0 0); } to { opacity: 1; transform: none; clip-path: inset(0); } }
.reveal-text--outline { color: transparent; -webkit-text-stroke: .6px rgba(255,255,255,.82); text-stroke: .6px rgba(255,255,255,.82); }
.reveal-text--acid { color: var(--acid); text-shadow: 0 0 26px rgba(208,211,26,.18); }
.glitch-word { position: relative; }
.glitch-word::before,
.glitch-word::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
}
.glitch-word::before { color: #f3f3ed; transform: translateX(3px); clip-path: inset(12% 0 56% 0); animation: glitchA 5s steps(1) infinite; }
.glitch-word::after { color: #ff275e; transform: translateX(-3px); clip-path: inset(62% 0 12% 0); animation: glitchB 5s .1s steps(1) infinite; }
@keyframes glitchA { 0%,92%,100% { opacity:0; } 93%,95% { opacity:.9; transform:translate(4px,-1px); } 94% { transform:translate(-4px,1px); } }
@keyframes glitchB { 0%,89%,100% { opacity:0; } 90%,92% { opacity:.75; transform:translate(-4px,2px); } 91% { transform:translate(4px,-2px); } }
.hero__bottom {
  display: grid;
  grid-template-columns: minmax(260px, 540px) auto;
  align-items: end;
  gap: 34px;
  margin-top: clamp(28px, 4vw, 52px);
}
.hero__bottom p { margin: 0; color: rgba(255,255,255,.72); font-size: clamp(16px, 1.35vw, 21px); max-width: 600px; }
.hero__actions { display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }
.btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 48px;
  padding: 13px 20px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-family: var(--font-condensed);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .2s, color .2s, background .2s, border-color .2s, box-shadow .2s;
}
.btn::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  transform: scaleX(0);
  transform-origin: right;
  background: var(--paper);
  transition: transform .28s cubic-bezier(.16,1,.3,1);
}
.btn:hover::before { transform: scaleX(1); transform-origin: left; }
.btn:hover { color: var(--ink); transform: translateY(-2px); }
.btn--primary { color: var(--ink); background: var(--acid); border-color: var(--acid); }
.btn--primary:hover { box-shadow: 0 0 34px rgba(208,211,26,.24); }
.btn--ghost { color: var(--paper); background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.2); backdrop-filter: blur(10px); }
.btn--outline { color: var(--paper); background: transparent; border-color: var(--acid); }
.btn--large { min-height: 56px; padding-inline: 26px; }
.hero__coordinates {
  position: absolute;
  right: 0;
  top: 35%;
  writing-mode: vertical-rl;
  color: rgba(255,255,255,.35);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .2em;
}
.hero__scroll {
  position: absolute;
  left: 0;
  bottom: 8px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(255,255,255,.35);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .16em;
}
.hero__scroll span { width: 56px; height: 1px; background: var(--acid); position: relative; overflow: hidden; }
.hero__scroll span::after { content:""; position:absolute; inset:0; background:#fff; transform:translateX(-100%); animation:scrollLine 2s infinite; }
@keyframes scrollLine { to { transform: translateX(100%); } }

.ticker { position:relative; z-index:3; overflow:hidden; background:var(--acid); color:var(--ink); border-block:1px solid var(--ink); }
.ticker__track { display:flex; width:max-content; padding:11px 0; animation:ticker 28s linear infinite; will-change:transform; font-family:var(--font-display); font-size:17px; letter-spacing:.04em; text-transform:uppercase; }
.ticker__group { display:flex; flex:0 0 auto; align-items:center; gap:24px; padding-right:24px; }
.ticker__track i { flex:0 0 auto; font-style:normal; font-size:9px; }
@keyframes ticker { from { transform:translate3d(0,0,0); } to { transform:translate3d(-50%,0,0); } }
@media (prefers-reduced-motion: reduce) { .ticker__track { animation:none; } }

.section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr);
  align-items: end;
  gap: 60px;
  margin-bottom: clamp(50px, 7vw, 92px);
}
.section-heading h2 {
  margin: 18px 0 0;
  max-width: 900px;
  font-family: var(--font-display);
  font-size: clamp(48px, 6vw, 96px);
  line-height: .93;
  letter-spacing: -.02em;
  text-transform: uppercase;
  text-wrap: balance;
}
.section-heading > p { margin: 0 0 8px; color: var(--muted); font-size: 17px; max-width: 520px; }
.section-heading--light { color: var(--paper); }
.text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--acid); font-family: var(--font-condensed); font-size: 13px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.text-link .icon { transition: transform .2s; }
.text-link:hover .icon { transform: translateX(6px); }

.section--services { background: var(--paper); color: var(--ink); }
.section--services::before { content:""; position:absolute; inset:0; opacity:.14; background-image:linear-gradient(rgba(8,9,8,.12) 1px, transparent 1px),linear-gradient(90deg,rgba(8,9,8,.12) 1px,transparent 1px); background-size:40px 40px; }
.section--services .micro-label { color: #73750E; }
.section--services .section-heading > p { color: #5d6058; }
.services-grid { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#d4d5cc; border:1px solid #d4d5cc; }
.service-card { position:relative; min-height:530px; background:var(--paper); overflow:hidden; }
.service-card > a { height:100%; display:grid; grid-template-rows:280px 1fr; }
.service-card__visual { position:relative; overflow:hidden; background-image:linear-gradient(145deg,rgba(8,9,8,.2),rgba(8,9,8,.8)),var(--service-cover); background-size:cover; background-position:center; transition:transform .6s cubic-bezier(.16,1,.3,1),filter .5s; }
.service-card__visual::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(8,9,8,.72),transparent 55%); }
.service-card__visual--abstract { background:
  radial-gradient(circle at 76% 22%,rgba(208,211,26,.68),transparent 0 3%,transparent 4%),
  radial-gradient(circle at 20% 70%,rgba(208,211,26,.35),transparent 0 2%,transparent 3%),
  linear-gradient(135deg,#0a0b09 0 35%,#1a1d15 35% 56%,#D0D31A 56% 57%,#0c0e0a 57% 100%); }
.service-card__grid { position:absolute; inset:0; opacity:.24; background-image:linear-gradient(rgba(208,211,26,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(208,211,26,.2) 1px,transparent 1px); background-size:24px 24px; transform:perspective(500px) rotateX(58deg) scale(1.4) translateY(15%); }
.service-card__number { position:absolute; z-index:2; top:18px; right:22px; color:var(--acid); font-family:var(--font-mono); font-size:13px; letter-spacing:.12em; }
.service-card__body { position:relative; padding:32px 34px 34px; display:flex; flex-direction:column; }
.service-card__body::before { content:""; position:absolute; top:0; left:34px; width:56px; height:4px; background:var(--acid); }
.service-card h3 { margin:0 0 18px; font-family:var(--font-display); font-size:clamp(34px,3vw,52px); line-height:.95; text-transform:uppercase; }
.service-card p { margin:0 0 26px; color:#5f625a; font-size:15px; }
.service-card__link { margin-top:auto; display:flex; align-items:center; justify-content:space-between; border-top:1px solid #dadbd2; padding-top:18px; font-family:var(--font-condensed); font-size:12px; font-weight:900; letter-spacing:.1em; }
.service-card:hover .service-card__visual { transform:scale(1.04); filter:saturate(1.08); }
.service-card:hover .service-card__link { color:#6B6D0C; }
.service-card:hover .service-card__link .icon { transform:translateX(6px); }
.service-card__link .icon { transition:transform .2s; }

.section--showcase { background:var(--ink-2); overflow:hidden; }
.section--showcase::before { content:"PIXELS"; position:absolute; right:-3vw; top:2vw; color:transparent; -webkit-text-stroke:1px rgba(208,211,26,.08); font-family:var(--font-display); font-size:24vw; line-height:1; pointer-events:none; }
.featured-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:14px; width:min(100%,1240px); margin-inline:auto; }
.featured-grid .project-card { min-height:0; }
.featured-grid .project-card__button { min-height:0; aspect-ratio:4/3; }
.project-card { margin:0; min-height:300px; overflow:hidden; background:#151713; }
.project-card--1 { grid-column:span 5; }
.project-card--2 { grid-column:span 4; }
.project-card--3 { grid-column:span 3; }
.project-card--4 { grid-column:span 7; }
.project-card--5 { grid-column:span 5; }
.project-card__button { position:relative; width:100%; height:100%; min-height:inherit; padding:0; border:0; background:none; cursor:zoom-in; overflow:hidden; }
.project-card img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1),filter .5s; }
.project-card__overlay { position:absolute; inset:auto 0 0; display:flex; align-items:end; justify-content:space-between; gap:20px; padding:42px 24px 22px; background:linear-gradient(transparent,rgba(0,0,0,.88)); color:#fff; font-family:var(--font-condensed); font-size:13px; font-weight:800; letter-spacing:.06em; text-align:left; opacity:0; transform:translateY(8px); transition:.3s; }
.project-card__plus { display:grid; place-items:center; width:42px; height:42px; flex:0 0 auto; border-radius:50%; color:var(--ink); background:var(--acid); }
.project-card:hover img { transform:scale(1.045); filter:saturate(1.08) contrast(1.04); }
.project-card:hover .project-card__overlay { opacity:1; transform:none; }

.section--about { background:var(--ink); }
.about-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(50px,7vw,110px); align-items:center; }
.about-copy h2 { margin:22px 0 32px; font-family:var(--font-display); font-size:clamp(52px,6.8vw,108px); line-height:.91; letter-spacing:-.02em; text-transform:uppercase; text-wrap:balance; }
.about-copy p { max-width:700px; margin:0 0 20px; color:rgba(255,255,255,.64); font-size:17px; }
.about-copy .btn { margin-top:20px; }
.about-visual { position:relative; min-height:680px; }
.about-visual__image { position:absolute; inset:0 0 70px 80px; overflow:hidden; transform:rotate(2deg); border:1px solid rgba(208,211,26,.4); box-shadow:var(--shadow); }
.about-visual__image::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(135deg,transparent 50%,rgba(208,211,26,.18)); }
.about-visual__image img { width:100%; height:100%; object-fit:cover; }
.about-visual__stamp { position:absolute; left:0; bottom:0; width:190px; aspect-ratio:1; border:1px solid var(--acid); border-radius:50%; display:grid; place-items:center; overflow:hidden; background:var(--ink); color:var(--acid); font-family:var(--font-mono); animation:stampSpin 22s linear infinite; }
.about-visual__stamp::before { content:"PX"; position:absolute; z-index:2; font-family:var(--font-display); font-size:58px; line-height:1; color:var(--paper); }
.about-visual__stamp span { position:absolute; z-index:1; margin:0; white-space:nowrap; font-size:9px; font-weight:700; line-height:1; letter-spacing:.12em; }
.about-visual__stamp span:nth-child(1) { left:50%; bottom:17px; transform:translateX(-50%); }
.about-visual__stamp span:nth-child(2) { right:12px; top:50%; writing-mode:vertical-rl; transform:translateY(-50%); }
.about-visual__stamp span:nth-child(3) { left:50%; top:17px; transform:translateX(-50%); }
@keyframes stampSpin { to { transform:rotate(360deg); } }
.stats-grid { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-white); border-left:1px solid var(--line-white); }
.stat { min-height:180px; padding:30px; border-right:1px solid var(--line-white); border-bottom:1px solid var(--line-white); display:flex; flex-direction:column; justify-content:space-between; }
.stat strong { color:var(--acid); font-family:var(--font-display); font-size:70px; line-height:1; }
.stat span { color:rgba(255,255,255,.5); font-family:var(--font-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }

.section--process { color:var(--ink); background:var(--acid); }
.section--process .micro-label { color:var(--ink); }
.section--process .micro-label::before { background:var(--ink); }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(8,9,8,.35); border-left:1px solid rgba(8,9,8,.35); }
.process-step { min-height:340px; padding:34px; border-right:1px solid rgba(8,9,8,.35); border-bottom:1px solid rgba(8,9,8,.35); display:flex; flex-direction:column; }
.process-step__number { font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; }
.process-step h3 { margin:auto 0 18px; font-family:var(--font-display); font-size:38px; line-height:.95; text-transform:uppercase; }
.process-step p { margin:0; color:rgba(8,9,8,.7); font-size:15px; }

.contact-section { position:relative; padding:clamp(100px,10vw,170px) 0; background:#0e100d; overflow:hidden; }
.contact-section::after { content:""; position:absolute; width:650px; height:650px; right:-220px; bottom:-240px; border:1px solid rgba(208,211,26,.14); border-radius:50%; box-shadow:0 0 0 70px rgba(208,211,26,.025),0 0 0 140px rgba(208,211,26,.018); }
.contact-section > .container-wide { position:relative; z-index:2; display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,7vw,110px); }
.contact-intro h2 { margin:20px 0 26px; font-family:var(--font-display); font-size:clamp(55px,7vw,112px); line-height:.9; letter-spacing:-.02em; text-transform:uppercase; text-wrap:balance; }
.contact-intro > p { color:rgba(255,255,255,.62); max-width:580px; font-size:17px; }
.contact-direct { margin-top:44px; display:grid; gap:12px; }
.contact-direct a { display:flex; align-items:center; gap:18px; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.contact-direct a > .icon { width:28px; height:28px; color:var(--acid); }
.contact-direct small { display:block; color:var(--muted); font-family:var(--font-mono); font-size:9px; letter-spacing:.14em; }
.contact-direct span { font-size:17px; }
.contact-card { padding:clamp(26px,4vw,56px); background:var(--paper); color:var(--ink); box-shadow:var(--shadow); }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px 20px; }
.field { display:grid; gap:9px; }
.field--full { grid-column:1/-1; }
.field span { font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.field input,.field textarea,.field select { width:100%; border:0; border-bottom:1px solid #bfc1b8; border-radius:0; background:transparent; color:var(--ink); padding:10px 0 13px; outline:none; transition:border-color .2s,box-shadow .2s; }
.field textarea { resize:vertical; min-height:130px; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:#67690D; box-shadow:0 1px 0 #67690D; }
.check-field { display:flex; gap:10px; align-items:flex-start; margin:26px 0; color:#55584f; font-size:12px; }
.check-field input { margin-top:3px; accent-color:#67690D; }
.check-field a { color:#56580A; text-decoration:underline; }
.hp-field { position:absolute!important; left:-9999px!important; opacity:0!important; }
.form-notice { margin-bottom:24px; padding:14px 16px; border-left:4px solid; font-size:14px; }
.form-notice--success { border-color:#696B0C; background:#F4F5CE; }
.form-notice--error { border-color:#a12424; background:#f4d9d9; }

.location-section { display:grid; grid-template-columns:.72fr 1.28fr; min-height:620px; background:var(--paper); color:var(--ink); }
.location-info { padding:clamp(60px,8vw,130px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.location-info .micro-label { color:#67690D; }
.location-info h2 { margin:20px 0 24px; font-family:var(--font-display); font-size:clamp(50px,6vw,88px); line-height:.9; text-transform:uppercase; }
.location-info p { margin:0 0 28px; color:#5b5e56; font-size:18px; }
.location-info .btn--outline { color:var(--ink); }
.location-info .btn--outline:hover { color:var(--ink); }
.map-shell { min-height:620px; background:#11130f; overflow:hidden; }
.map-shell iframe { width:100%; height:100%; min-height:620px; border:0; filter:grayscale(1) contrast(1.05); }
.map-placeholder { position:relative; isolation:isolate; height:100%; min-height:620px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:13px; text-align:center; color:var(--paper); overflow:hidden; }
.map-placeholder::before { content:""; position:absolute; z-index:-1; width:280px; height:280px; border:1px solid var(--acid); border-radius:50%; box-shadow:0 0 0 40px rgba(208,211,26,.03),0 0 0 80px rgba(208,211,26,.02); }
.map-placeholder__grid { position:absolute; inset:0; z-index:-2; opacity:.22; background-image:linear-gradient(rgba(208,211,26,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(208,211,26,.2) 1px,transparent 1px); background-size:32px 32px; transform:perspective(600px) rotateX(62deg) scale(1.45); }
.map-placeholder > .icon { width:54px; height:54px; color:var(--acid); filter:drop-shadow(0 0 18px rgba(208,211,26,.4)); }
.map-placeholder strong { font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; }
.map-placeholder p { margin:0 0 10px; color:var(--muted); max-width:320px; font-size:13px; }

.site-footer { background:#050605; border-top:1px solid var(--line); }
.footer-top { width:min(1480px,calc(100% - 64px)); margin:auto; padding:74px 0; display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:50px; }
.footer-brand img { width:250px; margin-bottom:18px; }
.footer-brand p { color:rgba(255,255,255,.45); max-width:360px; margin:0; font-size:14px; }
.footer-col { display:flex; flex-direction:column; align-items:flex-start; gap:10px; color:rgba(255,255,255,.68); font-size:14px; }
.footer-label { margin-bottom:10px; color:var(--acid); font-family:var(--font-mono); font-size:10px; letter-spacing:.15em; }
.footer-col a,.link-button { display:inline-flex; align-items:center; gap:7px; transition:color .2s; }
.footer-col a:hover,.link-button:hover { color:var(--acid); }
.footer-col .icon { width:14px; height:14px; }
.link-button { border:0; padding:0; background:none; color:inherit; cursor:pointer; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08); padding:20px clamp(20px,3vw,54px); display:flex; justify-content:space-between; gap:20px; color:rgba(255,255,255,.28); font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.footer-bottom a { color:rgba(255,255,255,.5); }

.whatsapp-float { position:fixed; z-index:140; right:24px; bottom:24px; width:64px; height:64px; border-radius:50%; display:grid; place-items:center; color:var(--ink); background:var(--acid); box-shadow:0 12px 44px rgba(0,0,0,.45),0 0 28px rgba(208,211,26,.25); transition:transform .25s; }
.whatsapp-float:hover { transform:translateY(-5px) scale(1.03); }
.whatsapp-float .icon { width:32px; height:32px; display:block; filter:drop-shadow(0 1px 0 rgba(0,0,0,.08)); }
.whatsapp-float .icon--whatsapp { shape-rendering:geometricPrecision; }
.whatsapp-ping { position:absolute; inset:-7px; border:1px solid var(--acid); border-radius:50%; animation:waPing 2s infinite; }
@keyframes waPing { to { transform:scale(1.28); opacity:0; } }
.whatsapp-label { position:absolute; right:76px; white-space:nowrap; padding:9px 12px; color:var(--paper); background:#11130f; border:1px solid rgba(208,211,26,.3); font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; opacity:0; transform:translateX(8px); pointer-events:none; transition:.25s; }
.whatsapp-float:hover .whatsapp-label { opacity:1; transform:none; }
.social-drawer { position:fixed; z-index:138; right:0; left:auto; top:48%; transform:translateY(-50%); display:flex; flex-direction:row-reverse; align-items:stretch; }
.social-drawer__toggle { width:46px; min-height:130px; padding:12px 0; border:1px solid rgba(8,9,8,.55); border-right:0; background:var(--acid); color:var(--ink); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; cursor:pointer; box-shadow:-10px 12px 34px rgba(0,0,0,.26); }
.social-drawer__toggle:hover { background:var(--acid-soft); }
.social-drawer__toggle span:first-child { writing-mode:vertical-rl; font-family:var(--font-mono); font-size:9px; font-weight:900; letter-spacing:.18em; }
.social-drawer__mark { font-size:18px; transition:transform .25s; }
.social-drawer.is-open .social-drawer__mark { transform:rotate(45deg); }
.social-drawer__links { display:flex; flex-direction:column; gap:1px; padding:8px; background:rgba(8,9,8,.96); border:1px solid rgba(208,211,26,.48); transform:translateX(110%); opacity:0; pointer-events:none; transition:transform .28s cubic-bezier(.16,1,.3,1),opacity .2s; }
.social-drawer.is-open .social-drawer__links { transform:none; opacity:1; pointer-events:auto; }
.social-drawer__links a { width:40px; height:40px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.12); color:var(--paper); }
.social-drawer__links a:hover { color:var(--ink); background:var(--acid); border-color:var(--acid); }

.cookie-banner { position:fixed; z-index:300; left:20px; right:20px; bottom:20px; display:grid; grid-template-columns:auto minmax(300px,1fr) auto; align-items:center; gap:28px; padding:22px; background:rgba(10,11,9,.97); border:1px solid rgba(208,211,26,.45); box-shadow:0 24px 80px rgba(0,0,0,.6); backdrop-filter:blur(18px); }
.cookie-banner[hidden],.cookie-modal[hidden],.lightbox[hidden] { display:none!important; }
.cookie-banner__signal { display:grid; grid-template-columns:repeat(3,8px); gap:5px; align-items:end; height:34px; }
.cookie-banner__signal span { display:block; background:var(--acid); box-shadow:0 0 10px rgba(208,211,26,.45); animation:signal 1s infinite alternate; }
.cookie-banner__signal span:nth-child(1){height:12px}.cookie-banner__signal span:nth-child(2){height:22px;animation-delay:.2s}.cookie-banner__signal span:nth-child(3){height:34px;animation-delay:.4s}
@keyframes signal { to { opacity:.35; } }
.cookie-banner__copy h2 { margin:6px 0 2px; font-family:var(--font-display); font-size:28px; text-transform:uppercase; }
.cookie-banner__copy p { margin:0; color:rgba(255,255,255,.57); font-size:13px; }
.cookie-banner__actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.cookie-banner .btn { min-height:42px; padding:10px 15px; font-size:11px; }
.cookie-modal,.lightbox { position:fixed; z-index:350; inset:0; display:grid; place-items:center; padding:20px; }
.cookie-modal__backdrop,.lightbox__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.78); backdrop-filter:blur(8px); }
.cookie-modal__panel { position:relative; width:min(640px,100%); max-height:90vh; overflow:auto; padding:clamp(28px,5vw,52px); background:var(--paper); color:var(--ink); box-shadow:var(--shadow); }
.cookie-modal__panel h2 { margin:14px 0 28px; font-family:var(--font-display); font-size:52px; line-height:.95; text-transform:uppercase; }
.modal-close { position:absolute; z-index:4; top:15px; right:15px; width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(0,0,0,.22); background:transparent; cursor:pointer; }
.cookie-option { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 0; border-top:1px solid #d4d6cd; }
.cookie-option strong { font-family:var(--font-condensed); font-size:17px; text-transform:uppercase; }
.cookie-option p { margin:4px 0 0; color:#65685f; font-size:13px; }
.cookie-status { color:#5E600B; font-family:var(--font-mono); font-size:9px; letter-spacing:.1em; white-space:nowrap; }
.cookie-option--switch { cursor:pointer; }
.cookie-option--switch input { position:absolute; opacity:0; }
.switch { position:relative; width:54px; height:28px; flex:0 0 auto; border:1px solid #92958c; background:#d8dad1; transition:.2s; }
.switch::after { content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; background:#777b70; transition:.2s; }
.cookie-option--switch input:checked + .switch { background:var(--acid); border-color:#686A0D; }
.cookie-option--switch input:checked + .switch::after { left:29px; background:var(--ink); }
.cookie-modal__actions { display:flex; gap:10px; margin:28px 0 18px; flex-wrap:wrap; }
.cookie-modal .btn--ghost { color:var(--ink); border-color:#8d9087; }
.cookie-modal .text-link { color:#55570A; }

.lightbox__panel { position:relative; width:min(1280px,95vw); height:min(88vh,900px); display:grid; grid-template-rows:1fr auto; background:#090a08; border:1px solid rgba(208,211,26,.35); box-shadow:var(--shadow); }
.lightbox__panel .modal-close { color:#fff; border-color:rgba(255,255,255,.25); background:rgba(0,0,0,.35); }
.lightbox__image-wrap { min-height:0; display:grid; place-items:center; padding:22px; overflow:hidden; }
.lightbox__image-wrap img { max-width:100%; max-height:100%; object-fit:contain; }
.lightbox__caption { display:flex; justify-content:space-between; gap:20px; padding:18px 24px; border-top:1px solid rgba(255,255,255,.1); }
.lightbox__caption strong { font-family:var(--font-condensed); text-transform:uppercase; }
.lightbox__caption span { color:var(--muted); font-size:13px; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1); }
.reveal.is-visible { opacity:1; transform:none; }

.service-hero { position:relative; min-height:78svh; display:flex; align-items:flex-end; overflow:hidden; border-bottom:1px solid var(--line); }
.service-hero__media { position:absolute; inset:0; background-image:linear-gradient(to top,rgba(8,9,8,.98),rgba(8,9,8,.3)),linear-gradient(90deg,rgba(8,9,8,.7),transparent 70%),var(--service-image); background-size:cover; background-position:center; }
.service-hero--abstract .service-hero__media { background:
  radial-gradient(circle at 75% 34%,rgba(208,211,26,.28),transparent 0 5%,transparent 6%),
  linear-gradient(115deg,rgba(8,9,8,.96) 0 45%,rgba(208,211,26,.8) 45% 46%,#181b14 46% 100%); }
.service-hero--abstract .service-hero__media::before { content:""; position:absolute; inset:0; opacity:.25; background-image:linear-gradient(rgba(208,211,26,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(208,211,26,.18) 1px,transparent 1px); background-size:34px 34px; transform:perspective(700px) rotateX(56deg) scale(1.4) translateY(22%); }
.service-hero__content { position:relative; z-index:2; padding-top:calc(var(--header-h) + 50px); padding-bottom:70px; }
.back-link { display:inline-flex; align-items:center; gap:10px; color:var(--acid); font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.12em; }
.service-hero__number { display:block; margin:70px 0 12px; color:var(--acid); font-family:var(--font-mono); font-size:14px; letter-spacing:.2em; }
.service-hero h1 { margin:0; max-width:1150px; font-family:var(--font-display); font-size:clamp(78px,12vw,190px); line-height:.83; letter-spacing:-.028em; text-transform:uppercase; text-wrap:balance; }
.service-hero p { margin:36px 0 0; max-width:740px; color:rgba(255,255,255,.68); font-size:clamp(17px,1.5vw,22px); }
.service-intro-section { background:var(--paper); color:var(--ink); }
.service-intro-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(60px,8vw,130px); }
.service-intro-grid h2 { margin:20px 0 0; font-family:var(--font-display); font-size:clamp(48px,6vw,92px); line-height:.93; letter-spacing:-.018em; text-transform:uppercase; text-wrap:balance; }
.service-intro-grid .micro-label { color:#67690D; }
.service-intro-copy > p { margin:0 0 34px; color:#5f625a; font-size:18px; }
.feature-list { list-style:none; padding:0; margin:0 0 38px; }
.feature-list li { display:flex; align-items:center; gap:14px; padding:14px 0; border-bottom:1px solid #d7d8d0; font-family:var(--font-condensed); font-weight:800; text-transform:uppercase; }
.feature-list li span { width:8px; height:8px; background:#67690D; box-shadow:0 0 0 4px rgba(208,211,26,.12); }
.service-gallery-section { background:var(--ink-2); }
.gallery-toolbar { display:flex; align-items:center; gap:20px; margin:-40px 0 34px; color:var(--muted); font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.gallery-toolbar strong { color:var(--acid); }
.gallery-toolbar__line { height:1px; flex:1; background:rgba(255,255,255,.1); }
.masonry-gallery { columns:4 280px; column-gap:14px; }
.masonry-gallery .project-card { break-inside:avoid; min-height:0; margin:0 0 14px; }
.masonry-gallery .project-card__button { min-height:0; aspect-ratio:auto; }
.masonry-gallery .project-card img { height:auto; min-height:210px; object-fit:cover; }
.is-load-hidden { display:none; }
.load-more-wrap { display:flex; justify-content:center; margin-top:55px; }
.empty-gallery { min-height:480px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border:1px solid rgba(208,211,26,.24); background:radial-gradient(circle at 50% 50%,rgba(208,211,26,.08),transparent 35%); }
.empty-gallery__icon { display:grid; place-items:center; width:90px; height:90px; border:1px solid var(--acid); border-radius:50%; color:var(--acid); margin-bottom:24px; }
.empty-gallery__icon .icon { width:38px; height:38px; }
.empty-gallery h3 { margin:0 0 12px; font-family:var(--font-display); font-size:52px; text-transform:uppercase; }
.empty-gallery p { max-width:650px; color:var(--muted); margin:0 0 30px; }
.service-cta { padding:110px 0; background:var(--acid); color:var(--ink); }
.service-cta h2 { margin:18px 0 34px; max-width:12ch; font-family:var(--font-display); font-size:clamp(54px,7vw,118px); line-height:.88; letter-spacing:-.022em; text-transform:uppercase; text-wrap:balance; }
.service-cta .micro-label { color:var(--ink); }
.service-cta .btn--primary { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.service-cta .btn--ghost { color:var(--ink); border-color:rgba(8,9,8,.4); background:transparent; }
.service-cta > div > div { display:flex; gap:12px; flex-wrap:wrap; }

.legal-hero { padding:calc(var(--header-h) + 110px) 0 80px; background:linear-gradient(135deg,#090a08,#171a13); border-bottom:1px solid var(--line); }
.legal-hero .micro-label { margin-top:80px; }
.legal-hero h1 { margin:18px 0 0; font-family:var(--font-display); font-size:clamp(64px,9vw,130px); line-height:.89; letter-spacing:-.02em; text-transform:uppercase; text-wrap:balance; }
.legal-content { background:var(--paper); color:var(--ink); }
.legal-nav { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:50px; }
.legal-nav a { padding:10px 14px; border:1px solid #c5c7be; font-family:var(--font-condensed); font-size:12px; font-weight:900; text-transform:uppercase; }
.legal-nav a.is-active { color:var(--ink); background:var(--acid); border-color:#74760F; }
.legal-copy { font-size:16px; }
.legal-copy p { margin:0 0 24px; color:#4e514a; white-space:pre-line; }
.legal-copy p:first-child { color:var(--ink); font-family:var(--font-display); font-size:34px; text-transform:uppercase; }



@media (min-width: 901px) and (max-width: 1460px) {
  .service-cta h2 { max-width: 10.8ch; font-size: clamp(50px, 6.5vw, 94px); }
}

@media (min-width: 1440px) and (max-height: 1100px) {
  .hero { min-height: 100svh; }
  .hero__content { padding-top: calc(var(--header-h) + 34px); padding-bottom: 48px; }
  .hero__title { width: min(860px, 56vw); font-size: clamp(64px, 7.8vw, 142px); line-height: .84; }
  .hero__bottom { margin-top: 28px; }
}

@media (max-width: 1180px) {
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .main-nav { gap:20px; }
  .main-nav > a { font-size:12px; }
  .about-grid { grid-template-columns:1fr 1fr; }
  .contact-section > .container-wide { grid-template-columns:1fr; }
  .contact-intro { max-width:850px; }
  .footer-top { grid-template-columns:1.4fr 1fr 1fr; }
  .footer-col:last-child { grid-column:2; }
}

@media (max-width: 900px) {
  :root { --header-h: 74px; }
  .container-wide { width:min(100% - 34px,1480px); }
  .container-narrow { width:min(100% - 34px,920px); }
  .site-header { grid-template-columns:auto 1fr auto; padding-inline:17px; isolation:isolate; }
  .site-header.menu-open { background:#080908; border-color:rgba(255,255,255,.08); }
  .brand,.brand img { width:155px; }
  .brand { position:relative; z-index:3; }
  .header-cta { display:none; }
  .nav-toggle { position:relative; z-index:3; display:inline-flex; justify-self:end; align-items:center; gap:8px; color:var(--paper); font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; }
  .main-nav { position:fixed; inset:0; z-index:2; min-height:100vh; min-height:100dvh; padding:110px 28px 40px; background:#080908; flex-direction:column; justify-content:flex-start; gap:0; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-14px); transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .main-nav.is-open { opacity:1; visibility:visible; pointer-events:auto; transform:none; transition-delay:0s; }
  .main-nav > a { width:100%; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.1); font-family:var(--font-display); font-size:32px; }
  .main-nav > a::after { display:none; }
  .nav-services { display:grid; margin-top:20px; }
  .nav-services a { padding:10px 0; color:var(--muted); font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
  .hero__media { background-image:linear-gradient(90deg,rgba(8,9,8,.96),rgba(8,9,8,.53)),var(--hero-image); background-position:65% center; }
  .hero__title { width:100%; font-size:clamp(58px,14vw,116px); line-height:.83; }
  .hero__bottom { grid-template-columns:1fr; }
  .hero__actions { justify-content:flex-start; }
  .hero__coordinates { display:none; }
  .section-heading { grid-template-columns:1fr; gap:24px; }
  .section-heading h2 { font-size:clamp(46px,10vw,80px); }
  .featured-grid { grid-template-columns:repeat(2,1fr); }
  .project-card--1,.project-card--2,.project-card--3,.project-card--4,.project-card--5 { grid-column:span 1; }
  .project-card { min-height:300px; }
  .featured-grid { width:min(100%,820px); }
  .about-grid { grid-template-columns:1fr; }
  .about-visual { min-height:600px; }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .location-section { grid-template-columns:1fr; }
  .location-info { padding:80px 28px; }
  .map-shell,.map-placeholder,.map-shell iframe { min-height:520px; }
  .service-intro-grid { grid-template-columns:1fr; gap:48px; }
  .footer-top { width:min(100% - 34px,1480px); grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .footer-col:last-child { grid-column:auto; }
  .cookie-banner { grid-template-columns:auto 1fr; }
  .cookie-banner__actions { grid-column:1/-1; justify-content:stretch; }
  .cookie-banner__actions .btn { flex:1; }
}

@media (max-width: 640px) {
  .section { padding:82px 0; }
  .hero { min-height:850px; }
  .hero__content { padding-top:120px; }
  .hero__title { font-size:clamp(51px,15.5vw,88px); line-height:.86; }
  .reveal-text--outline { -webkit-text-stroke-width:.9px; }
  .hero__bottom { margin-top:36px; }
  .hero__actions { display:grid; width:100%; }
  .hero__actions .btn { width:100%; }
  .hero__scroll { display:none; }
  .ticker__track { font-size:14px; }
  .services-grid { grid-template-columns:1fr; }
  .service-card { min-height:500px; }
  .service-card > a { grid-template-rows:260px 1fr; }
  .featured-grid { display:block; }
  .featured-grid .project-card { min-height:0; margin-bottom:14px; }
  .featured-grid .project-card__button { aspect-ratio:4/3; }
  .about-copy h2 { font-size:52px; }
  .about-visual { min-height:470px; }
  .about-visual__image { inset:0 0 50px 24px; }
  .about-visual__stamp { width:140px; }
  .about-visual__stamp::before { font-size:42px; }
  .about-visual__stamp span { font-size:7px; letter-spacing:.1em; }
  .about-visual__stamp span:nth-child(1) { left:50%; bottom:11px; transform:translateX(-50%); }
  .about-visual__stamp span:nth-child(2) { right:7px; top:50%; transform:translateY(-50%); }
  .about-visual__stamp span:nth-child(3) { left:50%; top:11px; transform:translateX(-50%); }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .stat { min-height:140px; padding:20px; }
  .stat strong { font-size:48px; }
  .process-grid { grid-template-columns:1fr; }
  .process-step { min-height:250px; }
  .contact-intro h2 { font-size:56px; }
  .contact-card { margin-inline:-3px; padding:26px 20px; }
  .field-grid { grid-template-columns:1fr; }
  .field--full { grid-column:auto; }
  .footer-top { grid-template-columns:1fr; gap:34px; padding:58px 0; }
  .footer-brand,.footer-col:last-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
  .social-drawer { display:none; }
  .whatsapp-float { width:60px; height:60px; right:16px; bottom:16px; }
  .whatsapp-label { display:none; }
  .cookie-banner { left:10px; right:10px; bottom:10px; display:block; max-height:calc(100vh - 20px); overflow:auto; padding:18px; }
  .cookie-banner__signal { display:none; }
  .cookie-banner__actions { display:grid; grid-template-columns:1fr 1fr; margin-top:16px; }
  .cookie-banner__actions .btn:last-child { grid-column:1/-1; }
  .cookie-modal__panel h2 { font-size:42px; }
  .cookie-option { align-items:flex-start; }
  .cookie-status { white-space:normal; text-align:right; }
  .lightbox__caption { flex-direction:column; }
  .service-hero { min-height:680px; }
  .service-hero h1 { font-size:clamp(70px,20vw,112px); }
  .service-hero__number { margin-top:50px; }
  .masonry-gallery { columns:2 150px; column-gap:8px; }
  .masonry-gallery .project-card { margin-bottom:8px; }
  .masonry-gallery .project-card img { min-height:130px; }
  .empty-gallery { min-height:420px; padding:28px; }
  .empty-gallery h3 { font-size:40px; }
  .service-cta h2 { max-width:100%; font-size:58px; line-height:.92; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
  .grain,.pixel-canvas { display:none; }
  .reveal { opacity:1; transform:none; }
}
.legal-copy h2{margin:42px 0 12px;color:var(--acid);font-family:var(--font-mono);font-size:14px;line-height:1.35;letter-spacing:.08em;text-transform:uppercase}.legal-copy h2:first-child{margin-top:0}.legal-copy .legal-updated{margin-top:44px;padding-top:18px;border-top:1px solid var(--line);color:rgba(255,255,255,.45);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em}


/* Modo de rendimiento móvil: conserva la estética sin efectos pesados. */
@media (max-width: 900px), (pointer: coarse) {
  .pixel-canvas,
  .grain,
  .scanlines {
    display: none !important;
  }

  .hero__media {
    animation: none !important;
    transform: none !important;
  }

  .glitch-word::before,
  .glitch-word::after {
    content: none !important;
    display: none !important;
    animation: none !important;
  }

  .reveal-text {
    animation-name: mobileTitleIn;
    animation-duration: .58s;
    animation-timing-function: cubic-bezier(.22, 1, .36, 1);
    clip-path: none;
    will-change: opacity, transform;
  }

  .about-visual__stamp,
  .whatsapp-ping,
  .cookie-banner__signal span {
    animation: none !important;
  }
}

@keyframes mobileTitleIn {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
