:root {
  --ink: #f5f5f5;
  --muted: #a0a0a5;
  --night: #080808;
  --night-2: #101010;
  --panel: #121212;
  --panel-2: #191919;
  --line: rgba(255, 255, 255, 0.13);
  --cyan: #f02b30;
  --cyan-2: #bd1118;
  --lime: #f02b30;
  --orange: #ffffff;
  --wrap: min(1240px, calc(100vw - 48px));
  --radius: 4px;
  --ease: cubic-bezier(.2, .8, .2, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--night); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--night);
  font-family: Inter, Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.wrap { width: var(--wrap); margin-inline: auto; }
.site-shell { overflow: clip; }
.screen-reader-text, .skip-link {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link:focus { position: fixed; z-index: 999; top: 12px; left: 12px; width: auto; height: auto; padding: 10px 16px; clip: auto; background: white; color: #000; }
.eyebrow {
  display: flex; align-items: center; gap: 10px; margin: 0 0 22px; color: var(--cyan);
  font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase;
}
.eyebrow > span { width: 26px; height: 1px; background: var(--cyan); box-shadow: 0 0 12px var(--cyan); }
.page-section { position: relative; padding: 132px 0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: .98; letter-spacing: -.045em; }
h2 { margin-bottom: 0; font-size: clamp(42px, 5.2vw, 76px); font-weight: 650; }
h2 span { color: var(--muted); font-weight: 420; }
.button {
  position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 34px; min-height: 58px; padding: 0 25px; overflow: hidden;
  border: 1px solid var(--lime); border-radius: 9px; color: #fff; background: var(--lime);
  font-size: 12px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), background .3s var(--ease);
}
.button::before { content: ""; position: absolute; z-index: -1; top: -120%; left: -30%; width: 38%; height: 340%; transform: rotate(24deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent); transition: left .65s var(--ease); }
.button:hover::before { left: 110%; }
.button:hover { transform: translateY(-2px); background: #ff454a; box-shadow: 0 12px 40px rgba(240,43,48,.24); }
.button--small { min-height: 42px; gap: 12px; padding: 0 18px; font-size: 10px; }
.text-link { display: inline-flex; align-items: center; gap: 24px; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.text-link span { color: var(--cyan); }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

/* Header */
.site-header { position: fixed; z-index: 50; top: 0; left: 0; width: 100%; border-bottom: 1px solid transparent; transition: background .35s, border-color .35s, backdrop-filter .35s, box-shadow .35s; }
.site-header.is-scrolled { background: rgba(8,8,8,.82); border-color: var(--line); box-shadow: 0 18px 50px rgba(0,0,0,.2); backdrop-filter: blur(20px) saturate(1.15); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 104px; }
.brand { display: inline-flex; align-items: center; gap: 12px; position: relative; z-index: 2; }
.brand--image {
  isolation: isolate;
  padding: 9px 16px 10px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.88);
  border-top: 0;
  border-radius: 0 0 16px 16px;
  background: linear-gradient(145deg, #fff 0%, #f8f8f8 62%, #ececec 100%);
  box-shadow: 0 18px 48px rgba(0,0,0,.32), 0 0 0 1px rgba(240,43,48,.06) inset;
  transition: padding .35s var(--ease), box-shadow .35s var(--ease), transform .35s var(--ease);
}
.brand--image::before { content: ""; position: absolute; z-index: -1; inset: auto 13px 0; height: 2px; border-radius: 99px; background: linear-gradient(90deg, transparent, var(--cyan), transparent); box-shadow: 0 0 14px rgba(240,43,48,.55); }
.brand--image:hover { transform: translateY(2px); box-shadow: 0 13px 38px rgba(0,0,0,.3), 0 0 0 1px rgba(240,43,48,.08) inset; }
.brand__logo {
  width: 122px;
  height: auto;
  filter: none;
  transition: width .35s var(--ease);
}
.site-header.is-scrolled .brand--image { padding-block: 6px 7px; }
.site-header.is-scrolled .brand__logo { width: 104px; }
.custom-logo-link { padding: 4px 9px; border: 1px solid rgba(255,255,255,.16); border-radius: 2px; background: #fff; }
.brand__mark { position: relative; display: grid; place-items: center; width: 35px; height: 42px; transform: skew(-9deg); border: 2px solid var(--cyan); box-shadow: 0 0 24px rgba(240,43,48,.14) inset; }
.brand__mark::before, .brand__mark::after, .brand__mark span { content: ""; position: absolute; background: var(--cyan); }
.brand__mark::before { width: 2px; height: 18px; transform: rotate(34deg); }
.brand__mark::after { width: 15px; height: 2px; transform: rotate(-4deg); }
.brand__mark span { top: -5px; right: -5px; width: 8px; height: 8px; background: var(--lime); box-shadow: 0 0 15px var(--lime); }
.brand__text { display: flex; flex-direction: column; line-height: .95; letter-spacing: .12em; }
.brand__text b { font-size: 16px; }
.brand__text small { color: var(--cyan); font-size: 11px; font-weight: 800; }
.custom-logo { width: auto; max-height: 58px; }
.site-nav { display: flex; align-items: center; gap: 42px; }
.nav-list { display: flex; align-items: center; gap: 34px; margin: 0; padding: 0; list-style: none; }
.nav-list a { position: relative; color: #b6c4c9; font-size: 11px; font-weight: 760; letter-spacing: .08em; text-transform: uppercase; }
.nav-list a::after { content: ""; position: absolute; left: 0; bottom: -8px; width: 100%; height: 1px; transform: scaleX(0); transform-origin: right; background: var(--cyan); transition: transform .3s var(--ease); }
.nav-list a:hover::after { transform: scaleX(1); transform-origin: left; }
.menu-toggle { display: none; }

/* Hero */
.hero { position: relative; min-height: 900px; padding: 185px 0 0; isolation: isolate; background: radial-gradient(circle at 76% 42%, rgba(240,43,48,.13), transparent 31%), radial-gradient(circle at 18% 18%, rgba(255,255,255,.035), transparent 26%), linear-gradient(180deg, #111, #080808); }
.hero__grid, .contact__grid {
  position: absolute; inset: 0; z-index: -1; opacity: .2;
  background-image: linear-gradient(rgba(160,213,225,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(160,213,225,.16) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(to bottom, black, transparent 85%);
}
.hero__grid { animation: grid-drift 18s linear infinite alternate; }
.hero__glow { position: absolute; z-index: -1; width: 650px; height: 650px; border-radius: 50%; filter: blur(100px); opacity: .07; }
.hero__glow--one { top: 0; left: -320px; background: var(--cyan); }
.hero__glow--two { right: -280px; bottom: 40px; background: var(--lime); }
.hero__inner { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; min-height: 610px; }
.hero__copy { position: relative; z-index: 3; padding-bottom: 50px; }
.hero h1 { margin: 0 0 30px; font-size: clamp(58px, 6vw, 91px); font-weight: 630; line-height: .94; }
.hero h1 em { color: var(--cyan); font-family: Georgia, serif; font-weight: 400; }
.hero__lead { max-width: 610px; margin-bottom: 36px; color: #a5b5bb; font-size: 18px; }
.hero__actions { display: flex; align-items: center; gap: 38px; }
.hero__trust { display: flex; gap: 48px; margin-top: 58px; padding-top: 25px; border-top: 1px solid var(--line); }
.hero__trust div { display: flex; align-items: baseline; gap: 9px; }
.hero__trust b { color: var(--ink); font-size: 21px; }
.hero__trust span { color: #768a92; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.hero__visual { position: relative; height: 620px; perspective: 1100px; transform-style: preserve-3d; }
.hero__visual::before { content: ""; position: absolute; z-index: 0; inset: 7% 1% 7% 5%; border: 1px solid rgba(255,255,255,.075); border-radius: 48% 52% 46% 54% / 44% 48% 52% 56%; background: radial-gradient(circle at 50% 48%, rgba(240,43,48,.08), transparent 56%); box-shadow: inset 0 0 100px rgba(240,43,48,.035), 0 45px 90px rgba(0,0,0,.18); transform: translateZ(-40px) rotate(-3deg); animation: holo-shell 9s ease-in-out infinite; }
.hero__visual::after { content: ""; position: absolute; z-index: 0; top: 13%; right: 4%; width: 66px; height: 1px; background: linear-gradient(90deg, transparent, rgba(240,43,48,.9)); box-shadow: 0 0 15px rgba(240,43,48,.6); animation: scan-line 4s ease-in-out infinite; }
.scene { --scene-scale: 1; --scene-rx: 0deg; --scene-ry: 0deg; position: absolute; inset: 0; transform: scale(var(--scene-scale)) rotateY(var(--scene-ry)) rotateX(var(--scene-rx)); transform-style: preserve-3d; transition: transform .4s var(--ease); }
.scene::before { content: ""; position: absolute; inset: 4% 0 0 5%; border-radius: 50%; background: radial-gradient(circle, rgba(240,43,48,.14), transparent 61%); filter: blur(14px); }
.scene__core { position: absolute; z-index: 3; top: 50%; left: 50%; width: 190px; height: 190px; transform: translate(-50%,-50%) translateZ(80px) rotateX(-8deg); display: grid; place-items: center; border: 1px solid rgba(240,43,48,.48); border-radius: 28%; background: rgba(18,8,9,.68); box-shadow: 0 0 100px rgba(240,43,48,.2), inset 0 0 60px rgba(240,43,48,.09); backdrop-filter: blur(12px); animation: core-float 5s ease-in-out infinite; }
.scene__core::before, .scene__core::after { content: ""; position: absolute; inset: 15px; border: 1px solid rgba(240,43,48,.26); border-radius: inherit; transform: rotate(45deg); }
.scene__core::after { inset: 32px; border-color: rgba(240,43,48,.25); transform: rotate(22.5deg); }
.scene__shield { position: relative; z-index: 3; width: 76px; filter: drop-shadow(0 0 19px rgba(240,43,48,.45)); }
.scene__shield svg { width: 100%; fill: rgba(240,43,48,.1); stroke: var(--lime); stroke-width: 2.7; stroke-linecap: round; stroke-linejoin: round; }
.scene__orbit { position: absolute; z-index: 2; top: 50%; left: 50%; border: 1px solid rgba(240,43,48,.28); border-radius: 50%; transform-style: preserve-3d; }
.scene__orbit i { position: absolute; top: 50%; left: -5px; width: 9px; height: 9px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 18px var(--cyan); }
.scene__orbit--one { width: 360px; height: 360px; margin: -180px; transform: rotateX(64deg) rotateZ(13deg); animation: orbit-one 15s linear infinite; }
.scene__orbit--one i:nth-child(2) { top: 8%; left: 77%; background: #fff; box-shadow: 0 0 18px rgba(255,255,255,.8); }
.scene__orbit--one i:nth-child(3) { top: 88%; left: 67%; }
.scene__orbit--two { width: 455px; height: 455px; margin: -227px; border-color: rgba(240,43,48,.16); transform: rotateX(68deg) rotateY(18deg); animation: orbit-two 21s linear infinite reverse; }
.scene__orbit--two i:nth-child(2) { top: 25%; left: 94%; background: var(--lime); }
.scene__orbit--three { width: 550px; height: 550px; margin: -275px; border-color: rgba(240,43,48,.12); transform: rotateX(74deg) rotateZ(-20deg); animation: orbit-one 28s linear infinite reverse; }
.scene__beam { position: absolute; z-index: 1; top: 50%; left: 50%; width: 1px; height: 430px; transform: translate(-50%,-50%) rotate(30deg); background: linear-gradient(transparent, var(--cyan), transparent); box-shadow: 0 0 12px var(--cyan); opacity: .25; }
.scene__floor { position: absolute; bottom: 24px; left: 9%; width: 82%; height: 145px; transform: rotateX(69deg); border: 1px solid rgba(240,43,48,.17); border-radius: 50%; background: repeating-radial-gradient(circle, transparent 0 29px, rgba(240,43,48,.1) 30px 31px); box-shadow: 0 0 50px rgba(240,43,48,.06); }
.scene__label { position: absolute; z-index: 5; display: grid; grid-template-columns: 8px auto; column-gap: 10px; padding: 13px 18px; border: 1px solid rgba(240,43,48,.24); background: rgba(13,13,13,.78); backdrop-filter: blur(12px); box-shadow: 0 16px 35px rgba(0,0,0,.25); }
.scene__label > span { grid-row: 1 / 3; align-self: center; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 10px var(--lime); }
.scene__label b { font-size: 14px; line-height: 1.1; }
.scene__label small { color: #7d979f; font-size: 8px; letter-spacing: .14em; }
.scene__label--one { top: 14%; right: 2%; }
.scene__label--two { bottom: 16%; left: 1%; }
.scene__label--three { top: 25%; left: 0; }
.hero__ticker { position: relative; z-index: 3; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(10,10,10,.82); }
.hero__ticker-track { display: flex; width: max-content; align-items: center; animation: ticker 30s linear infinite; }
.hero__ticker-group { display: flex; flex: 0 0 max(100vw, 980px); align-items: center; justify-content: space-around; gap: 36px; height: 73px; padding-inline: 28px; }
.hero__ticker span { color: #758991; font-size: 10px; font-weight: 800; letter-spacing: .22em; }
.hero__ticker i { width: 5px; height: 5px; transform: rotate(45deg); background: var(--lime); box-shadow: 0 0 12px var(--lime); }
@keyframes core-float { 50% { transform: translate(-50%,-54%) translateZ(90px) rotateX(-8deg); } }
@keyframes orbit-one { to { transform: rotateX(64deg) rotateZ(373deg); } }
@keyframes orbit-two { to { transform: rotateX(68deg) rotateY(18deg) rotateZ(360deg); } }
@keyframes ticker { to { transform: translateX(-50%); } }
@keyframes grid-drift { to { background-position: 27px 18px, 18px 27px; } }
@keyframes holo-shell { 50% { transform: translateZ(-20px) rotate(2deg) scale(1.025); border-color: rgba(240,43,48,.17); } }
@keyframes scan-line { 0%, 100% { transform: translateY(0); opacity: .25; } 50% { transform: translate(-180px, 390px); opacity: .9; } }
@keyframes mobile-scene-drift { 0%, 100% { transform: rotateY(-4deg) rotateX(1deg) translateY(0); } 50% { transform: rotateY(4deg) rotateX(-2deg) translateY(-9px); } }
@keyframes icon-pulse { 50% { box-shadow: 0 0 32px rgba(240,43,48,.16), inset 0 0 24px rgba(240,43,48,.1); transform: translateZ(30px) rotate(3deg); } }

/* Section heading and services */
.section-heading { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 80px; margin-bottom: 70px; }
.section-heading > p { max-width: 490px; margin: 0 0 4px; color: #91a3aa; }
.services { background: #0d0d0d; }
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); perspective: 1400px; }
.service-card { position: relative; min-height: 350px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.008); overflow: hidden; transform-style: preserve-3d; transition: transform .42s var(--ease), background .42s var(--ease), box-shadow .42s var(--ease); }
.service-card::before { content: ""; position: absolute; inset: 0; transform: translateY(102%); background: linear-gradient(160deg, rgba(240,43,48,.1), transparent 62%); transition: transform .45s var(--ease); }
.service-card:hover::before { transform: none; }
.service-card:hover { z-index: 2; background: #121212; box-shadow: 0 28px 70px rgba(0,0,0,.32); transform: translateY(-8px) rotateX(1.5deg) rotateY(-1deg); }
.service-card__top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; margin-bottom: 46px; color: #61747c; font-size: 10px; letter-spacing: .15em; }
.service-card__icon { display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid rgba(240,43,48,.26); color: var(--cyan); background: rgba(240,43,48,.03); box-shadow: inset 0 0 24px rgba(240,43,48,.045); transform: translateZ(24px); transition: transform .42s var(--ease), box-shadow .42s var(--ease); }
.service-card:hover .service-card__icon { transform: translateZ(42px) rotate(4deg); box-shadow: 0 14px 30px rgba(240,43,48,.13), inset 0 0 24px rgba(240,43,48,.08); }
.service-card__icon svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.service-card h3 { position: relative; z-index: 1; max-width: 270px; margin-bottom: 20px; font-size: 27px; letter-spacing: -.025em; }
.service-card p { position: relative; z-index: 1; max-width: 330px; color: #869aa2; font-size: 14px; }
.service-card a { position: absolute; z-index: 1; bottom: 27px; left: 30px; display: flex; gap: 16px; color: #b7c6cb; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.service-card a span { color: var(--lime); }
.service-card--wide { grid-column: 1 / -1; min-height: 270px; }
.service-card--wide h3 { max-width: 520px; }
.service-card--wide p { max-width: 760px; }

/* About */
.about { background: #f1f1f1; color: #111; }
.about__grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 110px; }
.about__media { position: relative; min-height: 650px; }
.about__media img { width: 86%; height: 620px; object-fit: cover; filter: saturate(.78) contrast(1.05); }
.about__media::after { content: ""; position: absolute; top: 32px; left: 32px; width: 86%; height: 620px; border: 1px solid rgba(7,33,42,.28); pointer-events: none; }
.about__badge { position: absolute; z-index: 2; right: 0; bottom: 62px; display: flex; align-items: center; gap: 15px; min-width: 190px; padding: 24px; color: #fff; background: var(--lime); box-shadow: 0 18px 55px rgba(0,0,0,.22); }
.about__badge strong { font-size: 42px; line-height: 1; }
.about__badge span { font-size: 10px; font-weight: 800; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; }
.about__line { position: absolute; left: 18px; bottom: 0; width: 1px; height: 115px; background: #d21d23; }
.about .eyebrow { color: #c6161c; }
.about__copy h2 { margin-bottom: 34px; font-size: clamp(42px, 4.2vw, 67px); }
.about__copy h2 span { color: #607279; }
.about__lead { color: #223b45; font-size: 18px; }
.about__copy > p:not(.eyebrow):not(.about__lead) { color: #607077; }
.check-list { margin: 33px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(7,33,42,.16); }
.check-list li { display: flex; gap: 15px; padding: 14px 0; border-bottom: 1px solid rgba(7,33,42,.16); font-size: 13px; font-weight: 700; }
.check-list span { color: #d21d23; }

/* Projects */
.projects { background: var(--night); }
.projects-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; }
.project-card { position: relative; min-height: 360px; padding: 0; overflow: hidden; border: 0; color: inherit; background: var(--panel); font: inherit; text-align: left; cursor: pointer; }
.project-card:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.project-card--1, .project-card--4 { grid-column: span 7; min-height: 510px; }
.project-card--2, .project-card--3, .project-card--5, .project-card--6 { grid-column: span 5; }
.project-card--3, .project-card--6 { grid-column: span 7; }
.project-card--4, .project-card--5 { min-height: 420px; }
.project-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease), filter .8s var(--ease); }
.project-card__veil { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(3,10,13,.88)); }
.project-card__content { position: absolute; right: 28px; bottom: 26px; left: 28px; }
.project-card__content p { margin-bottom: 7px; color: var(--cyan); font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.project-card__content h3 { margin: 0; font-size: 28px; letter-spacing: -.02em; }
.project-card__content span { position: absolute; right: 0; bottom: 0; display: grid; place-items: center; width: 39px; height: 39px; border: 1px solid rgba(255,255,255,.35); }
.project-card:hover img { transform: scale(1.045); filter: saturate(1.08); }

/* Project gallery */
body.gallery-open { overflow: hidden; }
.gallery-modal[hidden] { display: none; }
.gallery-modal { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 24px; opacity: 0; pointer-events: none; transition: opacity .28s var(--ease); }
.gallery-modal.is-open { opacity: 1; pointer-events: auto; }
.gallery-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.88); backdrop-filter: blur(14px); }
.gallery-modal__dialog { position: relative; z-index: 1; width: min(1120px, 100%); border: 1px solid rgba(255,255,255,.16); background: #0d0d0d; box-shadow: 0 35px 100px rgba(0,0,0,.65); }
.gallery-modal__stage { position: relative; display: grid; place-items: center; height: min(72vh, 720px); min-height: 360px; overflow: hidden; background: #080808; }
.gallery-modal__stage img { width: 100%; height: 100%; object-fit: contain; }
.gallery-modal__close, .gallery-modal__nav { position: absolute; z-index: 3; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.24); color: #fff; background: rgba(10,10,10,.74); cursor: pointer; transition: background .2s, border-color .2s; }
.gallery-modal__close:hover, .gallery-modal__nav:hover { border-color: var(--cyan); background: var(--cyan); }
.gallery-modal__close { top: 16px; right: 16px; width: 45px; height: 45px; font-size: 28px; }
.gallery-modal__nav { top: 50%; width: 48px; height: 58px; transform: translateY(-50%); font-size: 20px; }
.gallery-modal__nav--prev { left: 16px; }
.gallery-modal__nav--next { right: 16px; }
.gallery-modal__meta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 20px 24px; }
.gallery-modal__meta h3 { margin: 0; font-size: 24px; }
.gallery-modal__meta span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .14em; }

/* Credentials */
.credentials { isolation: isolate; background: #111; }
.credentials__glow { position: absolute; z-index: -1; top: 15%; left: -200px; width: 500px; height: 500px; border-radius: 50%; background: var(--cyan); opacity: .05; filter: blur(100px); }
.credentials__grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 110px; }
.credentials__copy h2 { margin-bottom: 28px; font-size: clamp(40px, 4.3vw, 65px); }
.credentials__copy > p:not(.eyebrow) { max-width: 520px; color: var(--muted); }
.credentials__copy .text-link { margin-top: 22px; }
.credentials-list { border-top: 1px solid var(--line); }
.credentials-list > div { position: relative; display: grid; grid-template-columns: 100px 1fr 38px; align-items: center; min-height: 100px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.credentials-list b { color: var(--lime); font-size: 22px; letter-spacing: .05em; }
.credentials-list span { color: #acbbc0; font-size: 14px; }
.credentials-list i { color: #52666e; font-size: 10px; font-style: normal; letter-spacing: .1em; }

/* Process and partners */
.process { background: #f1f1f1; color: #111; }
.process .eyebrow { color: #c6161c; }
.process .section-heading { margin-bottom: 65px; }
.process-list { display: grid; grid-template-columns: repeat(4,1fr); margin: 0; padding: 0; border-top: 1px solid rgba(7,33,42,.18); list-style: none; }
.process-list li { min-height: 245px; padding: 28px 27px; border-right: 1px solid rgba(7,33,42,.18); }
.process-list li:first-child { border-left: 1px solid rgba(7,33,42,.18); }
.process-list > li > span { display: block; margin-bottom: 58px; color: #d21d23; font-size: 11px; font-weight: 800; letter-spacing: .13em; }
.process-list b { display: block; margin-bottom: 13px; font-size: 22px; }
.process-list p { margin: 0; color: #607279; font-size: 13px; }
.partners { padding: 65px 0; background: #e2e2e2; color: #111; }
.partners__label { margin-bottom: 35px; color: #718085; font-size: 9px; font-weight: 800; letter-spacing: .18em; text-align: center; text-transform: uppercase; }
.partners__marquee { overflow: hidden; padding-block: 4px; mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.partners__track { display: flex; width: max-content; animation: partner-scroll 38s linear infinite; }
.partners__group { display: flex; flex-shrink: 0; gap: 18px; padding-right: 18px; }
.partner-logo { display: grid; place-items: center; width: 205px; height: 104px; padding: 14px 18px; border: 1px solid rgba(10,10,10,.1); background: rgba(255,255,255,.72); box-shadow: 0 12px 26px rgba(0,0,0,.06); transition: transform .3s var(--ease), background .3s; }
.partner-logo img { width: 100%; max-height: 72px; object-fit: contain; filter: grayscale(1); opacity: .74; transition: filter .3s, opacity .3s; }
.partner-logo:hover { transform: translateY(-4px); background: #fff; }
.partner-logo:hover img { filter: none; opacity: 1; }
.partners__marquee:hover .partners__track { animation-play-state: paused; }
@keyframes partner-scroll { to { transform: translateX(-50%); } }

/* Contact */
.contact { isolation: isolate; padding: 145px 0; background: #0b0b0b; }
.contact__grid { opacity: .13; mask-image: linear-gradient(90deg, transparent, black, transparent); }
.contact__inner { display: grid; grid-template-columns: 1fr .85fr; gap: 110px; }
.contact__copy h2 { margin-bottom: 30px; font-size: clamp(42px, 4.6vw, 69px); }
.contact__copy > p:not(.eyebrow) { max-width: 570px; color: var(--muted); }
.contact__details { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--line); }
.contact__details small { display: block; margin-bottom: 8px; color: #667c84; font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.contact__details b { display: block; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.contact-form { padding: 42px; border: 1px solid rgba(240,43,48,.2); background: rgba(20,20,20,.88); box-shadow: 0 25px 80px rgba(0,0,0,.28); }
.contact-form label { display: block; margin-bottom: 22px; }
.contact-form label > span { display: block; margin-bottom: 8px; color: #80939a; font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-form input, .contact-form textarea { width: 100%; padding: 13px 0; border: 0; border-bottom: 1px solid rgba(190,220,229,.19); border-radius: 0; outline: 0; color: var(--ink); background: transparent; transition: border-color .2s; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--cyan); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: #566a72; }
.contact-form textarea { resize: vertical; }
.contact-form .consent { display: flex; align-items: flex-start; gap: 10px; margin-top: -4px; }
.contact-form .consent input { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 3px; accent-color: var(--lime); }
.contact-form .consent span { margin: 0; color: #6f838b; font-size: 10px; font-weight: 500; letter-spacing: 0; line-height: 1.5; text-transform: none; }
.contact-form .button { width: 100%; margin-top: 5px; }
.hp-field { position: absolute !important; left: -9999px; }
.form-status { margin: 16px 0 0; color: var(--lime); font-size: 13px; text-align: center; }

/* Footer and generic pages */
.site-footer { padding: 70px 0 30px; border-top: 1px solid var(--line); color: #888; background: #050505; }
.footer-grid { display: grid; grid-template-columns: 1.5fr .6fr 1fr; gap: 80px; }
.brand--footer { margin-bottom: 25px; color: var(--ink); border-top: 1px solid rgba(255,255,255,.88); border-radius: 14px; }
.brand--footer .brand__logo { width: 142px; }
.footer-grid p { max-width: 370px; font-size: 13px; }
.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; font-size: 12px; }
.footer-grid strong { margin-bottom: 10px; color: var(--ink); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.footer-grid a:hover { color: var(--cyan); }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 55px; padding-top: 25px; border-top: 1px solid var(--line); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.content-page { min-height: 70vh; padding-top: 170px; }
.prose { max-width: 850px; }
.prose h1 { font-size: clamp(42px,6vw,72px); }
.prose p { color: var(--muted); }

@media (max-width: 1080px) {
  :root { --wrap: min(100% - 40px, 960px); }
  .site-nav { gap: 22px; }
  .nav-list { gap: 20px; }
  .hero { min-height: auto; padding-top: 145px; }
  .hero__inner { grid-template-columns: 1fr .82fr; }
  .hero h1 { font-size: clamp(52px,7vw,78px); }
  .scene { --scene-scale: .85; }
  .section-heading { gap: 45px; }
  .about__grid, .credentials__grid, .contact__inner { gap: 60px; }
  .about__media img, .about__media::after { height: 560px; }
  .process-list { grid-template-columns: 1fr 1fr; }
  .process-list li:nth-child(3) { border-left: 1px solid rgba(7,33,42,.18); }
  .process-list li { border-bottom: 1px solid rgba(7,33,42,.18); }
}

@media (max-width: 820px) {
  :root { --wrap: min(100% - 32px, 720px); }
  .page-section { padding: 95px 0; }
  .site-header, .site-header.is-scrolled { background: rgba(8,8,8,.94); border-color: rgba(255,255,255,.075); backdrop-filter: none; }
  .site-header__inner { min-height: 90px; }
  .brand--image { padding: 7px 12px 8px; border-radius: 0 0 13px 13px; }
  .brand__logo, .site-header.is-scrolled .brand__logo { width: 104px; }
  .site-header.is-scrolled .brand--image { padding-block: 6px 7px; }
  .menu-toggle { position: relative; z-index: 3; display: grid; place-content: center; gap: 5px; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; color: var(--ink); background: rgba(255,255,255,.045); box-shadow: 0 12px 28px rgba(0,0,0,.18); }
  .menu-toggle > span:not(.screen-reader-text) { display: block; width: 18px; height: 1px; background: var(--ink); transition: transform .25s, opacity .25s; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-nav { position: fixed; top: 98px; right: 12px; bottom: 12px; left: 12px; z-index: 1; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 28px; padding: clamp(34px,8vh,70px) 26px 26px; overflow-y: auto; border: 1px solid rgba(255,255,255,.11); border-radius: 24px; opacity: 0; visibility: hidden; transform: translateY(-24px) scale(.97); transform-origin: top right; background: radial-gradient(circle at 90% 0, rgba(240,43,48,.15), transparent 32%), rgba(10,10,10,.965); box-shadow: 0 28px 80px rgba(0,0,0,.48); backdrop-filter: blur(24px); transition: opacity .32s, visibility .32s, transform .42s var(--ease); overscroll-behavior: contain; }
  .site-nav::before { content: "MENIU"; color: #606065; font-size: 9px; font-weight: 800; letter-spacing: .2em; }
  .site-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .nav-list { flex-direction: column; align-items: stretch; gap: 0; }
  .nav-list li { border-bottom: 1px solid rgba(255,255,255,.09); }
  .nav-list a { display: flex; align-items: center; min-height: 62px; color: #f2f2f2; font-size: 27px; font-weight: 620; letter-spacing: -.03em; text-transform: none; }
  .nav-list a::after { right: 0; bottom: auto; left: auto; width: 8px; height: 8px; border-top: 1px solid var(--cyan); border-right: 1px solid var(--cyan); background: transparent; transform: rotate(45deg); }
  .site-nav .button { width: 100%; min-height: 58px; margin-top: auto; }
  .hero__inner { display: block; }
  .hero__copy { padding-bottom: 0; }
  .hero__visual { height: 470px; margin: 42px 0 22px; overflow: hidden; border: 1px solid rgba(255,255,255,.075); border-radius: 28px; background: radial-gradient(circle at 50% 50%, rgba(240,43,48,.075), transparent 54%), rgba(255,255,255,.012); box-shadow: inset 0 0 80px rgba(240,43,48,.035), 0 35px 80px rgba(0,0,0,.24); }
  .hero__visual::before { inset: 2%; }
  .scene { --scene-scale: .82; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 30px; }
  .services-grid { grid-template-columns: 1fr 1fr; }
  .about__grid, .credentials__grid, .contact__inner { grid-template-columns: 1fr; }
  .about__media { min-height: 570px; }
  .about__media img, .about__media::after { height: 540px; }
  .about__copy { padding-top: 15px; }
  .credentials__copy { max-width: 650px; }
  .partner-logo { width: 175px; height: 92px; }
  .contact-form { max-width: 620px; }
}

@media (max-width: 560px) {
  :root { --wrap: calc(100% - 28px); }
  .site-header__inner { min-height: 82px; }
  .brand__mark { width: 30px; height: 36px; }
  .brand--image { padding: 6px 10px 7px; border-radius: 0 0 12px 12px; }
  .brand__logo, .site-header.is-scrolled .brand__logo { width: 94px; }
  .site-nav { top: 90px; right: 8px; bottom: 8px; left: 8px; border-radius: 20px; }
  .hero { padding-top: 128px; }
  .hero h1 { font-size: clamp(43px,13vw,58px); }
  .hero__lead { font-size: 16px; }
  .hero__actions { align-items: stretch; flex-direction: column; gap: 20px; }
  .hero__actions .button { width: 100%; }
  .hero__actions .text-link { justify-content: center; }
  .hero__trust { gap: 15px; justify-content: space-between; margin-top: 42px; }
  .hero__trust div { align-items: flex-start; flex-direction: column; gap: 2px; }
  .hero__trust span { max-width: 86px; line-height: 1.35; }
  .hero__visual { height: 360px; margin: 34px 0 18px; border-radius: 22px; }
  .hero__visual::after { top: 8%; right: 2%; }
  .scene { --scene-scale: .64; }
  .scene__label--one { top: 8%; right: -3%; }
  .scene__label--two { bottom: 8%; left: -3%; }
  .scene__label--three { top: 30%; left: -4%; }
  .hero__ticker-group { height: 62px; }
  h2 { font-size: 43px; }
  .section-heading { margin-bottom: 45px; }
  .services-grid { grid-template-columns: 1fr; gap: 14px; border: 0; }
  .service-card, .service-card--wide { min-height: 320px; border: 1px solid var(--line); border-radius: 20px; background: linear-gradient(145deg, rgba(255,255,255,.035), rgba(255,255,255,.008)); box-shadow: 0 22px 55px rgba(0,0,0,.16); }
  .service-card.is-visible .service-card__icon { animation: icon-pulse 4.8s ease-in-out infinite; }
  .about__grid { gap: 45px; }
  .about__media { min-height: 470px; }
  .about__media img { width: 92%; height: 450px; }
  .about__media::after { width: 92%; height: 450px; top: 18px; left: 18px; }
  .about__badge { right: -4px; bottom: 25px; }
  .project-card, .project-card--1, .project-card--2, .project-card--3, .project-card--4, .project-card--5, .project-card--6 { grid-column: 1 / -1; min-height: 380px; border-radius: 20px; box-shadow: 0 24px 60px rgba(0,0,0,.22); }
  .gallery-modal { padding: 10px; }
  .gallery-modal__stage { min-height: 280px; height: 62vh; }
  .gallery-modal__nav { width: 42px; height: 50px; }
  .gallery-modal__meta { padding: 16px; }
  .gallery-modal__meta h3 { font-size: 20px; }
  .credentials__grid { gap: 50px; }
  .credentials-list > div { grid-template-columns: 78px 1fr 24px; }
  .credentials-list span { font-size: 12px; }
  .process-list { grid-template-columns: 1fr; }
  .process-list li, .process-list li:nth-child(3) { border-left: 1px solid rgba(7,33,42,.18); }
  .process-list > li > span { margin-bottom: 30px; }
  .contact { padding: 100px 0; }
  .contact__details { grid-template-columns: 1fr; }
  .contact-form { padding: 28px 20px; border-radius: 20px; }
  .field-row { grid-template-columns: 1fr; gap: 0; }
  .footer-grid { grid-template-columns: 1fr; gap: 38px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
