/* team.dominica1.com — Dominica1 Technology Cluster
   Дизайн-система перенесена с эталона владельца (kononenkogroup.com, разбор
   teardown/kononenko): двухслойная размерность root=.0520833333vw (1rem=0.75px
   при 1440), один вес 400 у обеих гарнитур, ахроматика, волосяные #ccc,
   шапка на mix-blend-mode:difference. Числа шкалы — донора: 400·175·118·80·40·30·19·16·14·12·9. */

:root { font-size: .0520833333vw; }
@media (max-width: 767.98px) { :root { font-size: .2666666667vw; } }

* { margin: 0; padding: 0; box-sizing: border-box; }

html {
  font-kerning: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scrollbar-width: none;
}
html::-webkit-scrollbar { display: none; }

body {
  background: #fff;
  color: #000;
  font-family: 'Instrument Sans', sans-serif;
  font-size: 16rem;
  font-weight: 400;
  letter-spacing: -.02em;
  line-height: 1.2;
}
@media (max-width: 767.98px) { body { font-size: 14rem; } }

a { color: inherit; text-decoration: none; }
.serif { font-family: 'Hedvig Letters Serif', serif; letter-spacing: 0; }

/* ── прелоадер ── */
.ldr {
  position: fixed; inset: 0; z-index: 10000;
  background: #fff; color: #000;
  transition: opacity .6s ease;
}
.ldr__n {
  position: absolute; left: 30rem; bottom: 20rem;
  font-size: 175rem; letter-spacing: -.03em; line-height: 1;
  font-variant-numeric: tabular-nums;
}
.ldr.is-done { opacity: 0; pointer-events: none; }
html.is-loading { overflow: hidden; }

/* ── шапка: текст на difference (как у донора), фирменная SVG — отдельным
   фиксированным слоем без наложения (fixed создаёт stacking context,
   и blend на детях шапки не действует) ── */
.hdr {
  position: fixed; inset: 0 0 auto 0; z-index: 9999;
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 20rem 30rem;
  mix-blend-mode: difference; color: #fff;
  pointer-events: none;
}
.hdr a { pointer-events: auto; }
.hdr__sec {
  font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0;
  min-height: 24rem;
}
.hdrlogo { position: fixed; top: 52rem; left: 30rem; z-index: 9999; }
.hdr__logo { display: block; position: relative; }
.hdr__logo img { display: block; height: 44rem; width: auto; }
.hdr__logo .lw { position: absolute; left: 0; top: 0; opacity: 0; }
.hdr__logo .lc, .hdr__logo .lw { transition: opacity .35s ease; }
html.hdr--inv .hdr__logo .lw { opacity: 1; filter: drop-shadow(0 0 6rem rgba(0,0,0,.55)); }
html.hdr--inv .hdr__logo .lc { opacity: 0; }
.hdr__nav a { margin-left: 6rem; }
.hdr__nav a:first-child { margin-left: 0; }
.hdr__nav a.is-active { text-decoration: underline; text-underline-offset: 4rem; }
.hdr__nav a:hover { text-decoration: underline; text-underline-offset: 4rem; }

/* ── заглушка под фотографию ── */
.ph {
  background: #E3E1DC;
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.ph::before, .ph::after {
  content: ""; position: absolute; background: #D3D1CB;
}
.ph::before { left: 0; top: 50%; width: 100%; height: 1px; }
.ph::after { left: 50%; top: 0; width: 1px; height: 100%; }
.ph__t {
  position: relative; z-index: 1;
  background: #E3E1DC; padding: 8rem 14rem;
  font-size: 12rem; color: #8A8880; letter-spacing: 0;
  text-align: center; line-height: 1.4;
}

/* ── герой ── */
.hero { position: relative; height: 100vh; }
.hero__img { position: absolute; inset: 0; overflow: hidden; }
.hero__img .ph { width: 100%; height: 100%; }
.hero__img .himg { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero__title {
  position: absolute; left: 30rem; bottom: 30rem;
  font-size: 175rem; letter-spacing: -.03em; line-height: 1.02;
  color: #fff;
}
.hero__title .serif { letter-spacing: -.01em; }

/* ── общие секции ── */
.sec { padding: 0 30rem; }

/* центральное заявление */
.statement { padding-top: 300rem; padding-bottom: 280rem; text-align: center; }
.statement h2 {
  font-size: 175rem; font-weight: 400; letter-spacing: -.03em; line-height: 1.04;
}
.statement h2 .serif { letter-spacing: -.01em; }
.statement__cols {
  display: flex; justify-content: center; gap: 180rem;
  margin-top: 120rem; text-align: left;
}
.statement__cols p { width: 330rem; color: #999; }

/* полноширинный кадр */
.bleed { height: 100vh; }
.bleed .ph { width: 100%; height: 100%; }

/* ── мета: таблица + большой абзац ── */
.meta { display: flex; padding-top: 130rem; padding-bottom: 300rem; }
.meta__table { width: 34%; }
.meta__row { display: flex; margin-bottom: 40rem; }
.meta__row dt { width: 40%; font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0; }
.meta__row dd { width: 60%; line-height: 1.5; }
.meta__text {
  width: 66%;
  font-family: 'Hedvig Letters Serif', serif; letter-spacing: 0;
  font-size: 40rem; line-height: 1.3;
}

/* ── леджер (учредители, хроника-индекс) ── */
.ledger { display: flex; padding-bottom: 340rem; }
.ledger__label {
  width: 34%; padding-left: 27%;
  font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0;
}
.ledger__rows { width: 60%; }
.ledger__row {
  display: flex; align-items: baseline;
  padding: 16rem 0 14rem;
  border-top: 1px solid #ccc;
  position: relative;
}
.ledger__rows > :last-child { border-bottom: 1px solid #ccc; }
.ledger__row .c1 { width: 30%; }
.ledger__row .c2 { width: 30%; color: #B8B8B8; }
.ledger__row .c3 { flex: 1; color: #B8B8B8; }
.ledger__row .arr {
  color: #000; font-size: 14rem;
  transition: transform .35s cubic-bezier(.22,1,.36,1);
}
a.ledger__row:hover .arr { transform: translate(6rem, -6rem); }
.ledger__row .cd { width: 22%; font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0; color: #B8B8B8; }
.ledger__row .ct { flex: 1; padding-right: 40rem; }

/* страница /news/ */
.pagehead { padding-top: 260rem; padding-bottom: 180rem; }
.pagehead h1 { font-size: 175rem; font-weight: 400; letter-spacing: -.03em; line-height: 1.02; }
.pagehead h1 .serif { letter-spacing: -.01em; }
.pagehead p { margin-top: 40rem; color: #999; max-width: 420rem; }
.news--page { padding-top: 0; }

/* ── гигантский центральный заголовок ── */
.midline { padding-top: 60rem; padding-bottom: 240rem; text-align: center; }
.midline h2 {
  font-size: 175rem; font-weight: 400; letter-spacing: -.03em; line-height: 1.04;
}

/* ── направления: антиква-дисплей + колонка корпуса ── */
.dir { padding-bottom: 320rem; }
.dir__display {
  font-family: 'Hedvig Letters Serif', serif; letter-spacing: 0; font-weight: 400;
  font-size: 118rem; line-height: 1.08;
  text-indent: 2.2em;
}
.dir__below { display: flex; margin-top: 110rem; }
.dir__side {
  width: 34%;
  font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0;
  line-height: 1.4; color: #000;
}
.dir__body { width: 44%; }
.dir__body.serif { font-size: 30rem; line-height: 1.35; }
.dir--alt .dir__below { flex-direction: row-reverse; justify-content: flex-end; }
.dir--alt .dir__side { text-align: left; }

/* ── инициативы: асимметричная сетка ── */
.works { padding-bottom: 200rem; }
.work { margin-bottom: 260rem; }
.work .ph { width: 100%; }
.work a { display: block; }
.work__cap { display: flex; justify-content: space-between; margin-top: 14rem; }
.work__cap .m { font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0; }
.work--a { width: 46%; margin-left: 0; }    .work--a .ph { height: 640rem; }
.work--b { width: 44%; margin-left: 52%; margin-top: -520rem; } .work--b .ph { height: 480rem; }
.work--c { width: 38%; margin-left: 31%; } .work--c .ph { height: 560rem; }
.work--d { width: 25%; margin-left: 2%; margin-top: -300rem; } .work--d .ph { height: 620rem; }
.work--e { width: 35%; margin-left: 55%; margin-top: -140rem; } .work--e .ph { height: 460rem; }

/* ── лучевая диаграмма ── */
.spokes { position: relative; height: 1200rem; margin-bottom: 140rem; }
.spokes svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.spokes line { stroke: #ccc; stroke-width: 1; vector-effect: non-scaling-stroke; }
.spokes text { font-size: 12rem; fill: #000; font-family: 'Instrument Sans', sans-serif; }
.spokes__c {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  background: #fff; padding: 10rem 30rem;
  font-size: 80rem; letter-spacing: -.03em; line-height: 1.1; text-align: center;
}

/* ── чёрный блок: полароиды и числа ── */
.dark { background: #000; color: #fff; padding: 160rem 30rem 220rem; }
.dark__display {
  font-family: 'Hedvig Letters Serif', serif; letter-spacing: 0; font-weight: 400;
  font-size: 118rem; line-height: 1.06; text-indent: 1.6em;
  max-width: 1050rem;
}
/* лента фотографий вьётся сквозь секцию; статистика — правой колонкой, как у донора */
.dark__flow { position: relative; margin-top: 120rem; }
.pola {
  position: absolute; width: 400rem; height: 400rem;
  will-change: transform;
}
.pola .ph { width: 100%; height: 100%; background: #1C1C1A; }
.pola .ph::before, .pola .ph::after { background: #2A2A27; }
.pola .ph__t { background: #1C1C1A; color: #6A6A64; }
.pola--1 { right: -1%; top: -170rem; width: 460rem; height: 460rem; transform: rotate(-7deg); }
.pola--2 { left: 60%; top: 70rem;   transform: rotate(5deg); }
.pola--3 { left: 40%; top: 280rem;  transform: rotate(-8deg); }
.pola--4 { left: 19%; top: 470rem;  transform: rotate(4deg); }
.pola--5 { left: 1%;  top: 690rem;  transform: rotate(-6deg); }
.pola--6 { left: 23%; top: 1060rem; transform: rotate(6deg); }
.pola--7 { left: 7%;  top: 1470rem; transform: rotate(-5deg); }
.pola--8 { left: 27%; top: 1860rem; transform: rotate(8deg); }
.dstats { position: relative; margin-left: 52%; padding-top: 60rem; }
.dstat { margin-bottom: 330rem; }
.dstats > :last-child { margin-bottom: 80rem; }
.dstat__n { font-size: 175rem; letter-spacing: -.03em; line-height: 1; }
.dstat__l {
  font-family: 'Hedvig Letters Serif', serif; letter-spacing: 0;
  font-size: 118rem; line-height: 1.05; color: #4A4A4A;
  text-indent: 1.1em;
}

/* ── хроника ── */
.news { display: flex; padding-top: 300rem; padding-bottom: 300rem; }
.news__label {
  width: 27%; padding-left: 0;
  font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0;
}
.news__list { width: 66%; }
.news__item { border-top: 1px solid #ccc; padding: 40rem 0 90rem; }
.news__date { font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0; color: #B8B8B8; }
.news__title {
  font-family: 'Hedvig Letters Serif', serif; letter-spacing: 0; font-weight: 400;
  font-size: 40rem; line-height: 1.25;
  margin: 26rem 0 30rem; max-width: 900rem;
}
.news__body { max-width: 620rem; line-height: 1.5; color: #444; }

/* ── подвал ── */
.ftr { background: #000; color: #fff; padding: 120rem 30rem 20rem; overflow: hidden; }
.ftr__cols { display: flex; }
.ftr__brand { width: 27%; line-height: 1.2; }
.ftr__brand .serif { display: block; }
.ftr__col { display: flex; width: 24.3%; }
.ftr__col dt { width: 34%; font-family: 'Hedvig Letters Serif', serif; font-size: 19rem; letter-spacing: 0; }
.ftr__col dd { width: 66%; line-height: 1.65; }
.ftr__col dd a { display: inline-block; }
.ftr__col dd a:hover { text-decoration: underline; text-underline-offset: 3rem; }
.ftr__col dd .gap { display: block; height: 20rem; }
.ftr__col dd .dim { color: #8A8A8A; }
.ftr__mark { margin-top: 300rem; padding: 0 10rem; }
.ftr__mark img { display: block; width: 100%; height: auto; }
.ftr__legal {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: 60rem;
  font-family: 'Hedvig Letters Serif', serif; font-size: 14rem; letter-spacing: 0;
  color: #B8B8B8;
}
.ftr__legal b { font-weight: 400; color: #fff; }

/* ── проявление при прокрутке ──
   Скрытые состояния существуют только под html.js (класс ставится инлайн-скриптом
   в head): без JS страница целиком видима — страховка по построению.
   Режимы: .rv — проявление с лёгким сносом; .rv-up — подъём; .rv-lines — строки
   подъезжают одна за другой (пословная разбивка, задержка по строке);
   .rv-img — кадр проявляется из лёгкого увеличения. */
html.js .rv { opacity: 0; transform: translateY(26rem); }
html.js .rv.is-in {
  opacity: 1; transform: none;
  transition: opacity 1s ease var(--d, 0s), transform 1s cubic-bezier(.22,1,.36,1) var(--d, 0s);
}

html.js .rv-up { opacity: 0; transform: translateY(64rem); }
html.js .rv-up.is-in {
  opacity: 1; transform: none;
  transition: opacity 1s ease, transform 1.1s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--d, 0s);
}

html.js .rv-lines { opacity: 0; }
html.js .rv-lines.w-ready { opacity: 1; }
html.js .rv-lines.is-in { opacity: 1; transition: opacity 1s ease; }
html.js .rv-lines .w { display: inline-block; opacity: 0; transform: translateY(.6em); text-indent: 0; }
html.js .rv-lines.is-in .w {
  opacity: 1; transform: none;
  transition: opacity .7s ease var(--wd, 0s), transform .85s cubic-bezier(.22,1,.36,1) var(--wd, 0s);
}

html.js .rv-img { opacity: 0; transform: scale(1.05); }
html.js .rv-img.is-in {
  opacity: 1; transform: none;
  transition: opacity 1.1s ease var(--d, 0s), transform 1.7s cubic-bezier(.22,1,.36,1) var(--d, 0s);
}

/* загрузочная секвенция: шапка, кадр героя, заголовок — после счётчика */
html.js .hdr, html.js .hdrlogo { opacity: 0; transform: translateY(-14rem); }
html.js.is-open .hdr, html.js.is-open .hdrlogo {
  opacity: 1; transform: none;
  transition: opacity .9s ease .25s, transform .9s ease .25s;
}
html.js .hero .ph, html.js .hero .himg { opacity: 0; transform: scale(1.06); }
html.js.is-open .hero .ph, html.js.is-open .hero .himg {
  opacity: 1; transform: none;
  transition: opacity 1.1s ease, transform 2s cubic-bezier(.22,1,.36,1);
}
html.js .hero__title { opacity: 0; transform: translateY(70rem); }
html.js.is-open .hero__title {
  opacity: 1; transform: none;
  transition: opacity 1.2s ease .15s, transform 1.3s cubic-bezier(.22,1,.36,1) .15s;
}

/* Lenis */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }

/* лучи диаграммы прорисовываются, номера догоняют */
html.js .spokes line { stroke-dasharray: 1; stroke-dashoffset: 1; }
html.js .spokes.is-in line {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 1.4s ease var(--d, 0s);
}
html.js .spokes text { opacity: 0; }
html.js .spokes.is-in text {
  opacity: 1;
  transition: opacity .6s ease calc(var(--d, 0s) + .9s);
}

@media (prefers-reduced-motion: reduce) {
  html.js .rv, html.js .rv-up, html.js .rv-lines, html.js .rv-lines .w,
  html.js .rv-img, html.js .hdr, html.js .hero .ph,
  html.js .hero__title { opacity: 1; transform: none; transition: none; }
  html.js .spokes line { stroke-dashoffset: 0; }
  html.js .spokes text { opacity: 1; }
  .ldr { display: none; }
}

/* ── мобильный ── */
@media (max-width: 767.98px) {
  .hdr { padding: 16rem 16rem; }
  .hdr__nav { max-width: 55%; text-align: right; line-height: 1.5; }
  .hdr__nav a { margin-left: 4rem; }
  .sec { padding-left: 16rem; padding-right: 16rem; }
  .hero__title { left: 16rem; bottom: 20rem; font-size: 44rem; }
  .ldr__n { left: 16rem; font-size: 96rem; }
  .statement { padding-top: 140rem; padding-bottom: 140rem; }
  .statement h2 { font-size: 44rem; }
  .statement__cols { flex-direction: column; gap: 24rem; margin-top: 60rem; }
  .statement__cols p { width: 100%; }
  .meta { flex-direction: column; padding-bottom: 140rem; }
  .meta__table, .meta__text { width: 100%; }
  .meta__text { font-size: 26rem; margin-top: 40rem; }
  .ledger { flex-direction: column; padding-bottom: 160rem; }
  .ledger__label { width: 100%; padding-left: 0; margin-bottom: 24rem; }
  .ledger__rows { width: 100%; }
  .ledger__row { flex-wrap: wrap; }
  .ledger__row .c1 { width: 55%; }
  .ledger__row .c2 { width: 40%; }
  .ledger__row .c3 { width: 90%; margin-top: 6rem; }
  .ledger__row .arr { position: absolute; right: 0; top: 18rem; }
  .midline { padding-bottom: 120rem; }
  .midline h2 { font-size: 40rem; }
  .dir { padding-bottom: 160rem; }
  .dir__display { font-size: 34rem; text-indent: 1.4em; }
  .dir__below { flex-direction: column !important; margin-top: 50rem; }
  .dir__side { width: 100%; margin-bottom: 24rem; }
  .dir__body { width: 100%; }
  .dir__body.serif { font-size: 20rem; }
  .work, .work--a, .work--b, .work--c, .work--d, .work--e {
    width: 100%; margin-left: 0; margin-top: 0; margin-bottom: 80rem;
  }
  .work .ph { height: 320rem !important; }
  .spokes { height: 560rem; }
  .spokes__c { font-size: 32rem; padding: 8rem 16rem; }
  .dark { padding: 100rem 16rem 120rem; }
  .dark__display { font-size: 34rem; }
  .dark__flow { display: flex; flex-wrap: wrap; gap: 20rem; margin-top: 60rem; }
  .pola { position: static; width: 46%; height: 200rem; transform: rotate(0) !important; }
  .pola--1 { width: 46%; height: 200rem; }
  .dstats { margin-left: 0; padding-top: 60rem; width: 100%; }
  .dstat { margin-bottom: 90rem; }
  .dstat__n { font-size: 80rem; }
  .dstat__l { font-size: 34rem; }
  .hdr__sec { display: none; }
  .hdrlogo { top: 16rem; left: 16rem; }
  .hdr__logo img { height: 30rem; }
  .ftr__mark { margin-top: 120rem; padding: 0; }
  .news { flex-direction: column; padding-top: 140rem; padding-bottom: 140rem; }
  .news__label { width: 100%; margin-bottom: 30rem; }
  .news__list { width: 100%; }
  .news__title { font-size: 26rem; }
  .ledger__row .cd { width: 100%; margin-bottom: 6rem; }
  .ledger__row .ct { width: 90%; flex: none; padding-right: 0; }
  .pagehead { padding-top: 140rem; padding-bottom: 90rem; }
  .pagehead h1 { font-size: 44rem; }
  .ftr { padding: 80rem 16rem 16rem; }
  .ftr__cols { flex-wrap: wrap; }
  .ftr__brand { width: 100%; margin-bottom: 50rem; }
  .ftr__col { width: 100%; margin-bottom: 40rem; }
  .ftr__legal { flex-wrap: wrap; gap: 10rem; }
}
