:root {
  --im-ink: #080c16;
  --im-paper: #f8f8f2;
  --im-line: rgba(8, 12, 22, .13);
  --im-lime: #5af116;
  --im-pink: #ff2aa1;
  --im-cyan: #09c9e8;
  --im-yellow: #ffd51c;
}

.impulse-am-case { color: var(--im-ink); background: var(--im-paper); overflow-x: clip; }
.impulse-am-case::before { content: ""; position: fixed; inset: 0; z-index: -2; background-image: linear-gradient(var(--im-line) 1px, transparent 1px), linear-gradient(90deg, var(--im-line) 1px, transparent 1px), radial-gradient(circle at 8% 18%, rgba(90,241,22,.16), transparent 28%), radial-gradient(circle at 92% 65%, rgba(255,42,161,.11), transparent 30%); background-size: 44px 44px, 44px 44px, auto, auto; }
.impulse-am-case .site-header { background: rgba(248,248,242,.91); backdrop-filter: blur(18px); }
.im-progress { position: fixed; z-index: 110; top: 0; left: 0; width: 0; height: 4px; background: linear-gradient(90deg, var(--im-lime), var(--im-cyan), var(--im-pink)); }
.im-breadcrumbs { display: flex; gap: 10px; flex-wrap: wrap; padding: 124px 4vw 28px; font-size: 12px; text-transform: uppercase; letter-spacing: .12em; }
.im-breadcrumbs a { color: inherit; }
.im-kicker { margin: 0 0 20px; color: #9e0568; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.im-hero { display: grid; grid-template-columns: minmax(0,.96fr) minmax(0,1.04fr); min-height: 690px; border-block: 1px solid var(--im-line); }
.im-hero > * { min-width: 0; }
.im-hero-copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: clamp(48px,6vw,92px) 4vw; border-right: 1px solid var(--im-line); }
.im-hero h1 { max-width: 14ch; margin: 0; font-size: clamp(48px,4.8vw,82px); line-height: .94; letter-spacing: -.06em; overflow-wrap: normal; text-wrap: balance; }
.im-lead { max-width: 760px; margin: 36px 0 0; color: rgba(8,12,22,.66); font-size: clamp(19px,1.45vw,28px); line-height: 1.48; }
.im-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }
.im-hero-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 42px 0 0; padding: 0; list-style: none; background: var(--im-line); border: 1px solid var(--im-line); }
.im-hero-facts li { min-width: 0; padding: 20px; background: var(--im-paper); }
.im-hero-facts strong { display: block; white-space: nowrap; font-size: clamp(22px,2.3vw,42px); letter-spacing: -.05em; }
.im-hero-facts span { display: block; margin-top: 6px; color: rgba(8,12,22,.56); font-size: 11px; line-height: 1.25; text-transform: uppercase; letter-spacing: .08em; }
.im-screen { display: block; width: 100%; padding: 0; overflow: hidden; color: inherit; background: #fff; border: 1px solid var(--im-ink); cursor: zoom-in; text-align: left; }
.im-screen img { display: block; width: 100%; height: auto; transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.im-screen:hover img { transform: scale(1.015); }
.im-screen--hero { align-self: center; min-width: 0; margin: 4vw 4vw 4vw 0; width: calc(100% - 4vw); box-sizing: border-box; box-shadow: 14px 14px 0 var(--im-lime); }
.im-screen-bar { display: flex; align-items: center; gap: 7px; height: 42px; padding: 0 15px; border-bottom: 1px solid var(--im-line); }
.im-screen-bar i { width: 9px; height: 9px; border-radius: 50%; background: var(--im-pink); }
.im-screen-bar i:nth-child(2) { background: var(--im-yellow); }
.im-screen-bar i:nth-child(3) { background: var(--im-lime); }
.im-screen-bar b { margin-left: 8px; color: rgba(8,12,22,.5); font-size: 11px; letter-spacing: .08em; }
.im-system-strip { display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 1px solid var(--im-line); }
.im-system-strip article { min-height: 220px; padding: 40px 4vw; border-right: 1px solid var(--im-line); }
.im-system-strip article:last-child { border-right: 0; }
.im-system-strip span { color: #9e0568; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.im-system-strip strong { display: block; margin-top: 32px; font-size: clamp(26px,2.4vw,43px); letter-spacing: -.04em; }
.im-system-strip p { max-width: 38ch; color: rgba(8,12,22,.6); line-height: 1.5; }
.im-section { padding: clamp(88px,11vw,180px) 4vw; border-bottom: 1px solid var(--im-line); }
.im-section-head { display: grid; grid-template-columns: .45fr 1fr; column-gap: 5vw; align-items: end; margin-bottom: 64px; }
.im-section-head .im-kicker { align-self: start; }
.im-section-head h2, .im-problem h2 { max-width: 17ch; margin: 0; font-size: clamp(44px,5vw,82px); line-height: .94; letter-spacing: -.055em; overflow-wrap: break-word; text-wrap: balance; }
.im-section-head > p:last-child { grid-column: 2; max-width: 58ch; margin: 24px 0 0; color: rgba(8,12,22,.62); font-size: 20px; line-height: 1.55; }
.im-problem { display: grid; grid-template-columns: 1fr .9fr; gap: 7vw; }
.im-copy-columns { align-self: end; columns: 2; column-gap: 38px; color: rgba(8,12,22,.66); font-size: clamp(18px,1.25vw,23px); line-height: 1.62; }
.im-copy-columns p { margin: 0 0 1.3em; break-inside: avoid; }
.im-architecture { background: #090e18; color: #fff; }
.im-architecture .im-kicker { color: var(--im-lime); }
.im-architecture .im-section-head > p:last-child { color: rgba(255,255,255,.62); }
.im-architecture-map { position: relative; display: grid; grid-template-columns: repeat(3,1fr); gap: 32px; max-width: 1400px; margin-inline: auto; padding-top: 250px; }
.im-map-core { position: absolute; top: 0; left: 50%; width: min(420px,80%); padding: 34px; border: 1px solid rgba(255,255,255,.24); background: var(--im-lime); color: var(--im-ink); transform: translateX(-50%); box-shadow: 14px 14px 0 var(--im-pink); }
.im-map-core span, .im-map-node span { display: block; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.im-map-core strong, .im-map-node strong { display: block; margin-top: 16px; font-size: clamp(27px,3vw,48px); line-height: .95; letter-spacing: -.045em; }
.im-map-core small, .im-map-node small { display: block; margin-top: 12px; opacity: .62; }
.im-map-node { position: relative; z-index: 2; min-height: 240px; padding: 34px; border: 1px solid rgba(255,255,255,.22); background: #111827; }
.im-map-node--pink { border-top: 8px solid var(--im-pink); }
.im-map-node--lime { border-top: 8px solid var(--im-lime); }
.im-map-node--cyan { border-top: 8px solid var(--im-cyan); }
.im-map-line { position: absolute; top: 195px; left: 50%; width: 1px; height: 100px; background: rgba(255,255,255,.34); transform-origin: top; }
.im-map-line--a { transform: rotate(68deg); height: 250px; }
.im-map-line--c { transform: rotate(-68deg); height: 250px; }
.im-routes { background: var(--im-yellow); }
.im-route-lab { padding: clamp(28px,4vw,58px); border: 2px solid var(--im-ink); background: var(--im-paper); box-shadow: 14px 14px 0 var(--im-ink); }
.im-route-tabs { display: flex; gap: 10px; flex-wrap: wrap; }
.im-route-tabs button { padding: 13px 20px; border: 1px solid var(--im-ink); border-radius: 999px; background: transparent; font: inherit; font-weight: 700; cursor: pointer; }
.im-route-tabs button.is-active { color: #fff; background: var(--im-ink); box-shadow: 5px 5px 0 var(--im-lime); }
.im-route-track { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 55px; }
.im-route-track span, .im-route-track strong { padding: 22px 26px; border: 1px solid var(--im-line); background: #fff; font-size: clamp(18px,1.8vw,30px); }
.im-route-track strong { background: var(--im-pink); color: #fff; }
.im-route-track i { font-size: 28px; font-style: normal; }
.im-route-lab > p { margin: 28px 0 0; color: rgba(8,12,22,.62); font-size: 18px; }
.im-catalog { display: grid; grid-template-columns: .7fr 1.3fr; gap: 5vw; align-items: center; }
.im-catalog h2 { max-width: 16ch; margin: 0; font-size: clamp(44px,4.7vw,76px); line-height: .94; letter-spacing: -.055em; text-wrap: balance; }
.im-catalog-copy > p:not(.im-kicker) { color: rgba(8,12,22,.64); font-size: 19px; line-height: 1.6; }
.im-fact-list { margin: 38px 0 0; }
.im-fact-list div { display: grid; grid-template-columns: 130px 1fr; gap: 18px; padding: 18px 0; border-top: 1px solid var(--im-line); }
.im-fact-list dt { font-weight: 800; }
.im-fact-list dd { margin: 0; color: rgba(8,12,22,.58); }
.im-catalog .im-screen { box-shadow: 16px 16px 0 var(--im-cyan); }
.im-gallery { background: #fff; }
.im-gallery-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 28px; }
.im-gallery figure { margin: 0; }
.im-gallery figure:first-child { transform: translateY(40px); }
.im-gallery figcaption { padding: 24px 0; }
.im-gallery figcaption span { display: block; color: #9e0568; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.im-gallery figcaption strong { display: block; max-width: 24ch; margin-top: 10px; font-size: clamp(24px,2vw,36px); line-height: 1.08; }
.im-seo { background: #e9fdf0; }
.im-seo-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--im-line); border: 1px solid var(--im-line); }
.im-seo-grid article { min-height: 320px; padding: 30px; background: var(--im-paper); }
.im-bubble { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--im-lime); font-weight: 800; }
.im-seo-grid article:nth-child(2) .im-bubble { background: var(--im-pink); color: #fff; }
.im-seo-grid article:nth-child(3) .im-bubble { background: var(--im-cyan); }
.im-seo-grid article:nth-child(4) .im-bubble { background: var(--im-yellow); }
.im-seo-grid h3 { margin: 54px 0 14px; font-size: clamp(25px,2vw,36px); letter-spacing: -.04em; }
.im-seo-grid p, .im-audit-note { color: rgba(8,12,22,.62); line-height: 1.55; }
.im-audit-note { max-width: 780px; margin: 34px 0 0 auto; font-size: 13px; }
.im-principle-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.im-principle-grid article { min-height: 280px; padding: 36px; border: 1px solid var(--im-ink); background: #fff; }
.im-principle-grid article:nth-child(2) { background: var(--im-lime); transform: rotate(1deg); }
.im-principle-grid strong { font-size: clamp(32px,3vw,52px); line-height: 1; letter-spacing: -.045em; overflow-wrap: break-word; }
.im-principle-grid p { margin-top: 70px; color: rgba(8,12,22,.62); line-height: 1.55; }
.im-final { display: grid; grid-template-columns: 1.25fr .75fr; gap: 6vw; padding: clamp(90px,12vw,190px) 4vw; color: #fff; background: var(--im-ink); }
.im-final .im-kicker { color: var(--im-lime); }
.im-final h2 { max-width: 18ch; margin: 0; font-size: clamp(44px,5vw,82px); line-height: .94; letter-spacing: -.055em; text-wrap: balance; }
.im-final p:not(.im-kicker) { max-width: 60ch; color: rgba(255,255,255,.62); font-size: 19px; line-height: 1.55; }
.im-final-actions { align-self: end; display: flex; flex-direction: column; gap: 12px; }
.im-final .button-ghost { color: #fff; border-color: rgba(255,255,255,.4); }
.im-next { display: grid; grid-template-columns: repeat(2,1fr); border-bottom: 1px solid var(--im-line); }
.im-next a { padding: 40px 4vw; color: inherit; border-right: 1px solid var(--im-line); }
.im-next a:last-child { text-align: right; border-right: 0; }
.im-next span { display: block; color: rgba(8,12,22,.5); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }
.im-next strong { display: block; margin-top: 8px; font-size: clamp(24px,2.6vw,42px); }
.im-lightbox { width: min(1500px,95vw); max-width: none; padding: 0; border: 0; background: transparent; }
.im-lightbox::backdrop { background: rgba(4,7,13,.91); backdrop-filter: blur(8px); }
.im-lightbox > button { position: fixed; z-index: 2; top: 20px; right: 24px; width: 48px; height: 48px; color: #fff; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: #080c16; font-size: 28px; cursor: pointer; }
.im-lightbox figure { margin: 0; }
.im-lightbox img { display: block; width: 100%; max-height: 84vh; object-fit: contain; }
.im-lightbox figcaption { padding: 14px; color: #fff; text-align: center; }
.im-reveal { opacity: 0; transform: translateY(34px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
.im-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1100px) {
  .im-hero { grid-template-columns: 1fr; }
  .im-hero-copy { border-right: 0; border-bottom: 1px solid var(--im-line); }
  .im-screen--hero { margin: 5vw; width: calc(100% - 10vw); }
  .im-section-head, .im-problem, .im-catalog, .im-final { grid-template-columns: 1fr; }
  .im-section-head > p:last-child { grid-column: 1; }
  .im-copy-columns { columns: 1; }
  .im-seo-grid { grid-template-columns: repeat(2,1fr); }
  .im-architecture-map { grid-template-columns: 1fr; padding-top: 230px; }
  .im-map-line { display: none; }
}

@media (min-width: 1101px) and (max-width: 1380px) {
  .im-hero { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .im-hero h1 { font-size: clamp(46px,5.2vw,68px); }
  .im-hero-facts { grid-template-columns: 1fr; }
  .im-hero-facts li { display: grid; grid-template-columns: 110px 1fr; align-items: baseline; gap: 14px; }
  .im-hero-facts span { margin-top: 0; }
}

@media (max-width: 720px) {
  .im-breadcrumbs { padding-top: 100px; }
  .im-hero h1, .im-section-head h2, .im-problem h2, .im-catalog h2, .im-final h2 { font-size: clamp(38px,11vw,58px); line-height: .96; letter-spacing: -.05em; }
  .im-hero-facts, .im-system-strip, .im-gallery-grid, .im-principle-grid, .im-seo-grid, .im-next { grid-template-columns: 1fr; }
  .im-system-strip article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--im-line); }
  .im-section-head { margin-bottom: 38px; }
  .im-gallery figure:first-child { transform: none; }
  .im-route-track { display: grid; grid-template-columns: 1fr; }
  .im-route-track i { transform: rotate(90deg); text-align: center; }
  .im-principle-grid article:nth-child(2) { transform: none; }
  .im-next a, .im-next a:last-child { text-align: left; border-right: 0; border-bottom: 1px solid var(--im-line); }
  .im-screen--hero, .im-catalog .im-screen { box-shadow: 8px 8px 0 var(--im-lime); }
}

@media (prefers-reduced-motion: reduce) {
  .im-reveal { opacity: 1; transform: none; transition: none; }
  .im-screen img { transition: none; }
}
