/* CVeloz: tokens da marca sobre o piso do scrollcraft */
:root {
  --sc-canvas: #120c0a;
  --sc-surface: #1c1411;
  --sc-ink: #f7efe7;
  --sc-ink-soft: #b9a698;
  --sc-accent: #ed5202;
  --sc-accent-ink: #160b05;
  --accent-hi: #ff7a33;          /* laranja para texto pequeno sobre escuro */
  --sc-font-display: "Outfit", system-ui, sans-serif;
  --sc-font-text: "Geist", system-ui, sans-serif;
  --sc-shadow-color: 18 50% 3%;
  --r: 22px;
  color-scheme: dark;
}

html { scroll-behavior: smooth; }
body {
  background: var(--sc-canvas);
  color: var(--sc-ink);
  font-family: var(--sc-font-text);
  font-size: var(--sc-t-base);
  line-height: var(--sc-leading-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img { display: block; max-width: 100%; }
em { font-style: normal; color: var(--accent-hi); }
::selection { background: var(--sc-accent); color: var(--sc-accent-ink); }
:focus-visible { outline: 2px solid var(--accent-hi); outline-offset: 3px; border-radius: 6px; }

.skip { position: fixed; left: 1rem; top: -4rem; z-index: 100; background: var(--sc-accent); color: var(--sc-accent-ink); padding: .6rem 1rem; border-radius: 999px; }
.skip:focus { top: 1rem; }

/* ---------- tipografia ---------- */
.h-xl {
  font-family: var(--sc-font-display);
  font-weight: 500;
  font-size: var(--sc-t-2xl);
  line-height: 1.04;
  letter-spacing: var(--sc-track-tight);
  text-wrap: balance;
  margin: 0;
}
.lede { color: var(--sc-ink-soft); font-size: var(--sc-t-lg); line-height: 1.5; max-width: 46ch; text-wrap: pretty; margin: 0; }
.lede strong { color: var(--sc-ink); font-weight: 600; }
.eyebrow { font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--accent-hi); margin: 0; font-weight: 600; }

/* ---------- botões ---------- */
.btn {
  --h: 3.1rem;
  display: inline-flex; align-items: center; gap: .55rem;
  height: var(--h); padding: 0 1.4rem;
  border-radius: 999px;
  background: var(--sc-accent); color: var(--sc-accent-ink);
  font-weight: 600; font-size: var(--sc-t-sm); white-space: nowrap; text-decoration: none;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / .28), var(--sc-e2);
  transition: transform .16s var(--sc-ease-out), background-color .16s var(--sc-ease-out);
}
.btn::after { content: ""; width: .55rem; height: .55rem; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); margin-left: .1rem; }
.btn:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) { .btn:hover { background: var(--accent-hi); } }
.btn--ghost { background: rgb(255 255 255 / .06); color: var(--sc-ink); box-shadow: inset 0 0 0 1px var(--sc-hairline-strong); backdrop-filter: blur(8px); }
.btn--ghost::after { display: none; }
@media (hover: hover) and (pointer: fine) { .btn--ghost:hover { background: rgb(255 255 255 / .12); } }
.btn--sm { --h: 2.5rem; padding: 0 1.1rem; }
.btn--lg { --h: 3.6rem; padding: 0 2rem; font-size: var(--sc-t-base); }

/* ---------- barra ---------- */
.bar {
  position: fixed; inset: 0 0 auto 0; z-index: 50;
  display: flex; align-items: center; gap: 2rem;
  padding: 1rem var(--sc-gutter);
  padding-top: max(1rem, env(safe-area-inset-top));
  background: linear-gradient(to bottom, rgb(18 12 10 / .85), rgb(18 12 10 / 0));
}
.bar__mark img { height: 30px; width: auto; }
.bar__nav { display: flex; gap: 1.75rem; margin-left: auto; }
.bar__nav a { color: var(--sc-ink-soft); text-decoration: none; font-size: var(--sc-t-sm); transition: color .15s; }
.bar__nav a:hover { color: var(--sc-ink); }
@media (max-width: 760px) { .bar__nav { display: none; } .bar .btn { margin-left: auto; } }

/* anel mini: progresso da página */
.ring-mini { position: fixed; right: var(--sc-gutter); bottom: max(1.25rem, env(safe-area-inset-bottom)); width: 40px; height: 40px; z-index: 40; transform: rotate(-90deg); }
.ring-mini circle { fill: none; stroke-width: 4; }
.ring-mini__track { stroke: rgb(255 255 255 / .1); }
.ring-mini__arc { stroke: var(--sc-accent); stroke-linecap: round; stroke-dasharray: var(--ring, 0) 100; }

/* ================= 1 · HERO ================= */
.hero__stage { overflow: hidden; isolation: isolate; }
.hero__plate { position: absolute; inset: -6% 0; z-index: 0;
  transform: translate3d(0, calc(var(--sc-p, 0) * -4%), 0) scale(calc(1.12 - var(--sc-p, 0) * .08)); }
.hero__plate img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.55) saturate(1.05); }
.hero__plate::after { content: ""; position: absolute; inset: 0;
  background: radial-gradient(120% 90% at 20% 40%, rgb(18 12 10 / .2), rgb(18 12 10 / .85) 70%), linear-gradient(to top, var(--sc-canvas), transparent 35%); }

.hero__moon { position: absolute; z-index: 1; width: min(72vh, 40vw); right: 7vw; top: 14vh;
  filter: drop-shadow(0 30px 60px rgb(237 82 2 / .25));
  transform: translate3d(0, calc(var(--sc-p, 0) * -10vh), 0) rotate(calc(-18deg + var(--sc-p, 0) * 80deg)); }
/* o "bite" sai de cima conforme rola: o crescente vai se fechando */
.hero__bite { transform: translate(calc(var(--sc-p, 0) * 70px), calc(var(--sc-p, 0) * -40px)); }

.hero__copy { position: absolute; z-index: 2; left: var(--sc-gutter); top: 52%; max-width: min(40rem, 50vw);
  transform: translate3d(0, calc(-50% - var(--sc-p, 0) * 22vh), 0);
  opacity: calc(1 - var(--sc-p, 0) * 1.9); }
.hero__title { font-family: var(--sc-font-display); font-weight: 400; font-size: clamp(3rem, 5.2vw, 5.6rem); line-height: .98; letter-spacing: -0.04em; margin: 0 0 1.5rem; text-wrap: balance; }
.hero__title em { font-weight: 600; }
.hero__sub { color: var(--sc-ink-soft); font-size: var(--sc-t-lg); max-width: 34ch; margin: 0 0 2rem; }
.hero__ctas { display: flex; gap: .75rem; flex-wrap: wrap; }

.hero__pos { position: absolute; z-index: 3; right: 0; bottom: 0; width: min(46vw, 84vh); height: auto;
  transform-origin: 100% 100%;
  transform: translate3d(calc(var(--sc-p, 0) * -10vw), calc(22% - var(--sc-p, 0) * 34%), 0) scale(calc(.94 + var(--sc-p, 0) * .26));
  filter: drop-shadow(-30px 40px 50px rgb(0 0 0 / .55)); }

.hero__fore { position: absolute; inset: 0; z-index: 4; pointer-events: none;
  transform: translate3d(0, calc(var(--sc-p, 0) * -55vh), 0); }
.hero__fore i { position: absolute; border-radius: 50%; background: radial-gradient(circle, rgb(255 140 60 / .55), rgb(255 110 30 / 0) 70%); filter: blur(6px); }
.hero__fore i:nth-child(1) { width: 180px; height: 180px; left: 4%; top: 78%; }
.hero__fore i:nth-child(2) { width: 90px; height: 90px; left: 40%; top: 92%; opacity: .7; }
.hero__fore i:nth-child(3) { width: 260px; height: 260px; left: 58%; top: 108%; opacity: .5; }
.hero__fore i:nth-child(4) { width: 60px; height: 60px; left: 26%; top: 18%; opacity: .5; filter: blur(3px); }
.hero__fore i:nth-child(5) { width: 120px; height: 120px; left: 88%; top: 6%; opacity: .45; }

.hero__beat { position: absolute; z-index: 5; left: var(--sc-gutter); bottom: 14vh; margin: 0;
  font-family: var(--sc-font-display); font-size: var(--sc-t-3xl); line-height: 1; letter-spacing: -0.035em; font-weight: 500; }

@media (max-width: 860px) {
  .hero__copy { top: 15vh; transform: translate3d(0, calc(var(--sc-p, 0) * -18vh), 0); max-width: none; right: var(--sc-gutter); }
  .hero__title { font-size: var(--sc-t-2xl); }
  .hero__sub { font-size: var(--sc-t-base); }
  .hero__moon { width: 70vw; right: -10vw; top: 48vh; }
  .hero__pos { width: 108vw; right: -8vw; }
  .hero__beat { font-size: var(--sc-t-2xl); bottom: auto; top: 18vh; }
}

/* ================= 2 · MANIFESTO ================= */
.manifesto { padding: clamp(6rem, 18vh, 12rem) 0; }
.manifesto__text { font-family: var(--sc-font-display); font-weight: 400; font-size: var(--sc-t-3xl); line-height: 1.12; letter-spacing: -0.03em; max-width: 22ch; margin: 0; text-wrap: pretty; }
.manifesto__text .w { opacity: clamp(.16, calc((var(--sc-p, 0) * 1.9 - .35) * var(--n) - var(--i) + 1), 1); transition: opacity .12s linear; }
@media (prefers-reduced-motion: reduce) { .manifesto__text .w { opacity: 1; } }
@media (max-width: 860px) { .manifesto__text { font-size: var(--sc-t-xl); line-height: 1.2; } }

/* ================= 3 · SOLUÇÕES (pan) ================= */
.servicos__stage { display: flex; align-items: center; overflow: hidden; }
.rail { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2rem); padding: 0 var(--sc-gutter); width: max-content; }
.rail__lead { width: min(30rem, 80vw); flex: none; display: grid; gap: 1.25rem; padding-right: 2rem; }
.svc { flex: none; width: clamp(16rem, 26vw, 23rem); color: inherit; text-decoration: none; display: grid; gap: .7rem; }
.svc__img { aspect-ratio: 4 / 5; border-radius: var(--r); overflow: hidden; background: var(--sc-surface); box-shadow: var(--sc-e3), inset 0 1px 0 rgb(255 255 255 / .08); }
.svc__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--sc-ease-out); }
.svc h3 { font-family: var(--sc-font-display); font-weight: 500; font-size: var(--sc-t-xl); letter-spacing: -0.02em; margin: .6rem 0 0; display: flex; align-items: center; gap: .6rem; }
.svc h3::after { content: ""; width: .6rem; height: .6rem; border-top: 2px solid var(--accent-hi); border-right: 2px solid var(--accent-hi); transform: rotate(45deg); transition: transform .18s var(--sc-ease-out); }
.svc p { color: var(--sc-ink-soft); margin: 0; max-width: 32ch; }
@media (hover: hover) and (pointer: fine) {
  .svc:hover .svc__img img { transform: scale(1.04); }
  .svc:hover h3::after { transform: translateX(4px) rotate(45deg); }
}

/* ================= 4 · MAQUININHA ================= */
.maq__grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.maq__fig { position: relative; margin: 0; aspect-ratio: 620 / 900; }
.maq__arc { position: absolute; width: 118%; left: -9%; top: 4%; z-index: 0; }
.maq__person { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; object-position: top;
  -webkit-mask-image: linear-gradient(to bottom, #000 72%, transparent); mask-image: linear-gradient(to bottom, #000 72%, transparent); }
.maq__copy { display: grid; gap: 1.5rem; }
.ticks { list-style: none; padding: 0; margin: .5rem 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 2rem; }
.ticks li { position: relative; padding-left: 1.9rem; color: var(--sc-ink-soft); line-height: 1.45; }
.ticks li strong { color: var(--sc-ink); font-weight: 600; }
.ticks li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.15rem; height: 1.15rem; border-radius: 50%; border: 2px solid var(--sc-accent); }
.ticks li::after { content: ""; position: absolute; left: .38rem; top: .42em; width: .32rem; height: .55rem; border-right: 2px solid var(--accent-hi); border-bottom: 2px solid var(--accent-hi); transform: rotate(45deg); }
.flags { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding-top: 1.25rem; border-top: 1px solid var(--sc-hairline); }
.flags__label { font-size: var(--sc-t-xs); color: var(--sc-ink-soft); text-transform: uppercase; letter-spacing: var(--sc-track-wide); margin-right: .5rem; }
.flag { padding: .4rem .9rem; border-radius: 999px; background: var(--sc-surface); box-shadow: inset 0 0 0 1px var(--sc-hairline-strong); font-weight: 600; font-size: var(--sc-t-sm); }
@media (max-width: 860px) {
  .maq__grid { grid-template-columns: 1fr; }
  .maq__fig { max-width: 22rem; margin-inline: auto; aspect-ratio: 620 / 760; }
  .ticks { grid-template-columns: 1fr; }
}

/* ================= 5 · TEF ================= */
.tef__grid { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.tef__fig { margin: 0; border-radius: var(--r); overflow: hidden; box-shadow: var(--sc-e3); aspect-ratio: 4 / 3.4; }
.tef__fig img { width: 100%; height: 100%; object-fit: cover; }
.tef__copy { display: grid; gap: 1.5rem; }
.cols { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--sc-hairline); }
.cols li { padding: .85rem 0; border-bottom: 1px solid var(--sc-hairline); font-weight: 500; }
.cols li:nth-child(odd) { padding-right: 1rem; }
.cols li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.pull { margin: 0; font-family: var(--sc-font-display); font-size: var(--sc-t-xl); line-height: 1.2; letter-spacing: -0.02em; color: var(--sc-ink); }
.pull::before { content: ""; display: block; width: 2.5rem; height: 3px; background: var(--sc-accent); border-radius: 3px; margin-bottom: 1rem; }
@media (max-width: 860px) { .tef__grid { grid-template-columns: 1fr; } .cols { grid-template-columns: 1fr; } }

/* ================= 6 · CONCILIAÇÃO ================= */
.conc { padding-bottom: 0; }
.conc__head { display: grid; gap: 1.25rem; max-width: 52rem; margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.bento { display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: auto auto; gap: 1rem; }
.bento__img { grid-row: span 2; margin: 0; border-radius: var(--r); overflow: hidden; min-height: 26rem; }
.bento__img img { width: 100%; height: 100%; object-fit: cover; }
.bento__cell { background: var(--sc-surface); border-radius: var(--r); padding: clamp(1.5rem, 2.5vw, 2.25rem); box-shadow: inset 0 1px 0 rgb(255 255 255 / .06), var(--sc-e1); display: grid; align-content: end; gap: .75rem; }
.bento__cell:nth-of-type(1) { grid-column: span 2; }
.bento__cell h3 { font-family: var(--sc-font-display); font-weight: 500; font-size: var(--sc-t-xl); letter-spacing: -0.02em; margin: 0; }
.bento__cell p { margin: 0; color: var(--sc-ink-soft); }
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin: clamp(3rem, 6vw, 5rem) 0 0; }
.pillars dt { font-family: var(--sc-font-display); font-size: var(--sc-t-lg); font-weight: 600; color: var(--accent-hi); margin-bottom: .4rem; }
.pillars dd { margin: 0; color: var(--sc-ink-soft); max-width: 34ch; }
@media (max-width: 860px) {
  .bento { grid-template-columns: 1fr; }
  .bento__img { grid-row: auto; min-height: 16rem; }
  .bento__cell:nth-of-type(1) { grid-column: auto; }
  .pillars { grid-template-columns: 1fr; gap: 1.5rem; }
}

.marquee { margin-top: clamp(4rem, 8vw, 7rem); padding: 2.5rem 0 var(--sc-section); border-top: 1px solid var(--sc-hairline); overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent); }
.marquee__label { text-align: center; font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-ink-soft); margin: 0 0 1.75rem; }
.marquee__track { display: flex; width: max-content; animation: marq 48s linear infinite; }
.marquee ul { display: flex; gap: 3.5rem; padding: 0 1.75rem; margin: 0; list-style: none; }
.marquee li { font-family: var(--sc-font-display); font-size: var(--sc-t-xl); font-weight: 500; letter-spacing: -0.02em; color: rgb(247 239 231 / .55); white-space: nowrap; }
@keyframes marq { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee__track { animation: none; } }

/* ================= 7 · AUDITORIA (pico) ================= */
.aud__stage { overflow: hidden; isolation: isolate; }
.aud__bg { position: absolute; inset: 0; z-index: 0; transform: scale(calc(1.15 - var(--sc-p, 0) * .12)); }
.aud__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; filter: brightness(.38); }
.aud__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(11 7 6 / .96) 0%, rgb(11 7 6 / .75) 45%, rgb(11 7 6 / .35)); }
.aud__intro, .aud__stat, .aud__steps { position: absolute; z-index: 2; left: var(--sc-gutter); top: 0; bottom: 0; display: flex; flex-direction: column; justify-content: center; }
.aud__intro { max-width: 40rem; gap: 1.5rem; }
.aud__stat { max-width: 46rem; }
.aud__num { margin: 0; font-family: var(--sc-font-display); font-weight: 300; font-size: clamp(7rem, 22vw, 17rem); line-height: .8; letter-spacing: -0.06em; color: var(--sc-accent); }
.aud__numtxt { font-family: var(--sc-font-display); font-size: var(--sc-t-xl); line-height: 1.2; letter-spacing: -0.02em; max-width: 24ch; margin: 1.5rem 0 0; }
.aud__steps { width: min(40rem, calc(100% - 2 * var(--sc-gutter))); padding-top: 4rem; }
.aud__steps-in { position: relative; }
.aud__stepsh { font-family: var(--sc-font-display); font-weight: 500; font-size: var(--sc-t-2xl); letter-spacing: -0.03em; margin: 0 0 1.75rem; }
.aud__ring { position: absolute; right: 0; top: 0; width: 64px; height: 64px; transform: rotate(-90deg); }
.aud__ring circle { fill: none; stroke-width: 8; }
.aud__ring-track { stroke: rgb(255 255 255 / .1); }
.aud__ring-arc { stroke: var(--sc-accent); stroke-linecap: round; stroke-dasharray: var(--aud, 0) 100; }
.steps { list-style: none; margin: 0; padding: 0; counter-reset: s; display: grid; gap: .25rem; }
.steps li { counter-increment: s; display: grid; grid-template-columns: 3rem 1fr; column-gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--sc-hairline); opacity: .32; transition: opacity .35s var(--sc-ease-out); }
.steps li::before { content: "0" counter(s); grid-row: span 2; font-family: var(--sc-font-display); font-size: var(--sc-t-xl); font-weight: 300; color: var(--accent-hi); line-height: 1.1; }
.steps li b { font-family: var(--sc-font-display); font-weight: 600; font-size: var(--sc-t-lg); }
.steps li span { color: var(--sc-ink-soft); }
.steps li.on { opacity: 1; }
.aud__person { position: absolute; z-index: 1; right: 0; bottom: 0; height: 88vh; width: auto;
  transform: translate3d(calc(8% - var(--sc-p, 0) * 6%), calc(6% - var(--sc-p, 0) * 4%), 0);
  opacity: calc(1 - max(0, var(--sc-p, 0) - .4) * 2.2);
  -webkit-mask-image: linear-gradient(to bottom, #000 80%, transparent); mask-image: linear-gradient(to bottom, #000 80%, transparent);
  filter: brightness(.92) sepia(.08); }
@media (max-width: 860px) {
  .aud__person { height: 46vh; opacity: calc(.28 - var(--sc-p, 0) * .28); }
  .aud__intro, .aud__stat { right: var(--sc-gutter); }
  .steps li { padding: .6rem 0; grid-template-columns: 2.4rem 1fr; }
  .steps li span { font-size: var(--sc-t-sm); }
  .aud__stepsh { font-size: var(--sc-t-xl); margin-bottom: 1rem; }
}

.aud-notes__grid { display: grid; grid-template-columns: 1fr 1fr auto; gap: clamp(2rem, 5vw, 4rem); align-items: end; }
.aud-notes h3 { font-family: var(--sc-font-display); font-weight: 500; font-size: var(--sc-t-xl); letter-spacing: -0.02em; margin: 0 0 .75rem; }
.aud-notes p { margin: 0; color: var(--sc-ink-soft); max-width: 40ch; }
@media (max-width: 860px) { .aud-notes__grid { grid-template-columns: 1fr; align-items: start; } .aud-notes .btn { justify-self: start; } }

/* ================= 8 · DIFERENCIAIS ================= */
.dif__grid { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.dif__list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.dif__list div { padding: 1.75rem 1.5rem 1.75rem 0; border-top: 1px solid var(--sc-hairline); }
.dif__list dt { font-family: var(--sc-font-display); font-size: var(--sc-t-xl); font-weight: 500; letter-spacing: -0.02em; margin-bottom: .5rem; }
.dif__list dd { margin: 0; color: var(--sc-ink-soft); }
@media (max-width: 860px) { .dif__grid, .dif__list { grid-template-columns: 1fr; } }

/* ================= 9 · DÚVIDAS ================= */
.faq__grid { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.faq__list { display: grid; gap: .6rem; }
.faq details { background: var(--sc-surface); border-radius: 16px; box-shadow: inset 0 1px 0 rgb(255 255 255 / .05); }
.faq summary { list-style: none; cursor: pointer; padding: 1.2rem 3.5rem 1.2rem 1.4rem; position: relative; font-weight: 500; font-size: var(--sc-t-base); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 1.4rem; top: 50%; width: .6rem; height: .6rem; border-right: 2px solid var(--accent-hi); border-bottom: 2px solid var(--accent-hi); transform: translateY(-70%) rotate(45deg); transition: transform .2s var(--sc-ease-out); }
.faq details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.faq details p { margin: 0; padding: 0 1.4rem 1.3rem; color: var(--sc-ink-soft); max-width: 62ch; }
@media (max-width: 860px) { .faq__grid { grid-template-columns: 1fr; } }

/* ================= 10 · CONTATO ================= */
.close__stage { display: grid; place-items: center; overflow: hidden;
  background: radial-gradient(40rem 40rem at calc(var(--sc-mx, .5) * 100%) calc(var(--sc-my, .5) * 100%), rgb(237 82 2 / .14), transparent 70%); }
.close__inner { position: relative; text-align: center; display: grid; justify-items: center; gap: 1.5rem; padding: 0 var(--sc-gutter); margin-top: -6vh; }
.close__ring { width: clamp(6rem, 14vh, 9rem); transform: rotate(-90deg); }
.close__ring circle { fill: none; stroke-width: 14; }
.close__track { stroke: rgb(255 255 255 / .08); }
.close__arc { stroke: var(--sc-accent); stroke-linecap: round; stroke-dasharray: calc(55 + min(var(--sc-p, 0) * 1.6, 1) * 45) 100; }
.close__check { fill: none; stroke: var(--sc-ink); stroke-width: 12; stroke-linecap: round; stroke-linejoin: round; transform: rotate(90deg); transform-origin: 100px 100px;
  stroke-dasharray: 100; stroke-dashoffset: calc(100 - clamp(0, (var(--sc-p, 0) - .55) * 3.5, 1) * 100); }
.close__title { font-family: var(--sc-font-display); font-weight: 400; font-size: var(--sc-t-4xl); line-height: .95; letter-spacing: -0.045em; margin: 0; }
.close__title em { font-weight: 600; }
.close__contacts { list-style: none; padding: 0; margin: .5rem 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1.75rem; }
.close__contacts a { color: var(--sc-ink-soft); text-decoration: none; font-variant-numeric: tabular-nums; }
.close__contacts a:hover { color: var(--sc-ink); }
.close__mascot { position: absolute; width: clamp(7rem, 12vw, 11rem); height: auto; left: 8vw; bottom: 18vh;
  transform: translate3d(calc(-40vw + min(var(--sc-p, 0) * 2, 1) * 40vw), 0, 0) rotate(-6deg); }
.foot { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.25rem calc(var(--sc-gutter) + 56px) 1.25rem var(--sc-gutter); padding-bottom: max(1.25rem, env(safe-area-inset-bottom));
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 2rem; border-top: 1px solid var(--sc-hairline); font-size: var(--sc-t-xs); color: var(--sc-ink-soft); }
.foot img { height: 20px; width: auto; }
.foot p { margin: 0; }
.foot p:last-child { margin-left: auto; }
.foot a { color: inherit; }
@media (max-width: 860px) {
  .close__title { font-size: var(--sc-t-3xl); }
  .close__mascot { left: auto; right: 6vw; top: 12vh; bottom: auto; width: 5.5rem; }
  .foot p:last-child { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__plate, .hero__moon, .hero__copy, .hero__pos, .hero__fore, .aud__bg, .aud__person, .close__mascot { transform: none !important; }
  .hero__copy { opacity: 1; }
  html { scroll-behavior: auto; }
}

/* ================= CENTRAL TEF ================= */
.ctef { border-block: 1px solid var(--sc-hairline); }
.ctef__grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.ctef__marks { display: grid; justify-items: start; gap: 1.75rem; }
.ctef__marks img { height: clamp(2.6rem, 4.5vw, 4rem); width: auto; }
.ctef__plus { width: 1.6rem; height: 1.6rem; position: relative; margin-left: .4rem; }
.ctef__plus::before, .ctef__plus::after { content: ""; position: absolute; inset: 45% 0 auto; height: 2px; background: var(--sc-ink-soft); }
.ctef__plus::after { transform: rotate(90deg); }
.ctef__copy { display: grid; gap: 1.5rem; }
.ctef__list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.ctef__list li { padding: .45rem 1rem; border-radius: 999px; background: var(--sc-surface); box-shadow: inset 0 0 0 1px var(--sc-hairline-strong); font-size: var(--sc-t-sm); font-weight: 500; }
@media (max-width: 860px) { .ctef__grid { grid-template-columns: 1fr; } }

.by { display: flex; align-items: center; gap: .6rem; margin: 0; font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-ink-soft); }
.by img { height: 1.5rem; width: auto; }
.foot__ctef { height: 18px !important; }
@media (max-width: 860px) { .foot { font-size: .7rem; } }
.bar__portal { margin-left: 1.75rem; }
@media (max-width: 760px) { .bar .bar__portal { margin-left: auto; } .bar .bar__portal + .btn { margin-left: .5rem; } .bar .btn { --h: 2.25rem; padding: 0 .8rem; font-size: .8rem; } .bar .btn::after { display: none; } }
.bar__mark { flex-shrink: 0; }
@media (max-width: 760px) { .bar__long { display: none; } }
.bar__portal { gap: 0; }
@media (max-width: 380px) { .bar .btn { padding: 0 .6rem; font-size: .75rem; } .bar .bar__portal + .btn { margin-left: .4rem; } }
.aud-why { margin-bottom: clamp(3rem, 7vw, 6rem); }
.aud-why__h { font-family: var(--sc-font-display); font-weight: 500; font-size: var(--sc-t-xl); letter-spacing: -0.02em; margin: 0; }
.aud-why .pillars { margin-top: 1.75rem; }
.aud-facts { margin-bottom: clamp(3rem, 7vw, 6rem); }
.aud-facts .pillars { margin: 0; }
.aud-facts dt { font-size: var(--sc-t-xl); }
button.btn { border: 0; font-family: inherit; cursor: pointer; }
.linkish { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; cursor: pointer; }
.close__contacts .linkish { text-decoration: none; }
.portal { position: fixed; inset: 4.5rem var(--sc-gutter, 1rem) auto auto; margin: 0; width: min(24rem, calc(100vw - 2rem)); padding: 1.25rem; border: 1px solid var(--sc-hairline-strong); border-radius: 1.25rem; background: var(--sc-surface); color: var(--sc-ink); box-shadow: 0 24px 60px rgb(0 0 0 / .5); }
.portal::backdrop { background: rgb(0 0 0 / .45); }
.portal__head { display: flex; align-items: center; justify-content: space-between; }
.portal__title { margin: 0; font-family: var(--sc-font-display); font-size: var(--sc-t-lg); font-weight: 600; }
.portal__x { background: none; border: 0; color: var(--sc-ink-soft); font-size: 1.6rem; line-height: 1; cursor: pointer; padding: .25rem .5rem; }
.portal__x:hover { color: var(--sc-ink); }
.portal__sub { margin: .25rem 0 1rem; color: var(--sc-ink-soft); font-size: var(--sc-t-sm); }
.portal__opt { display: grid; gap: .2rem; padding: .9rem 1rem; margin-top: .5rem; border-radius: .9rem; background: rgb(255 255 255 / .04); box-shadow: inset 0 0 0 1px var(--sc-hairline); color: var(--sc-ink); text-decoration: none; transition: background-color .15s, box-shadow .15s; }
.portal__opt span { color: var(--sc-ink-soft); font-size: var(--sc-t-sm); }
.portal__opt:hover, .portal__opt:focus-visible { background: rgb(237 82 2 / .12); box-shadow: inset 0 0 0 1px var(--sc-accent); }
@media (max-width: 760px) { .portal { inset: auto 1rem 1rem 1rem; width: auto; } }
