/* Typography stays controlled; outer page gutters respond independently. */
:root {
  --layout-max: 1512px;
  --desktop-overspill: max(0px, calc((100vw - 1512px) / 2));
  --page-gutter: max(clamp(40px, 4.7vw, 72px), calc((var(--desktop-overspill) + 27.216px) * .3));
  --layout-vw: min(1vw, 15.12px);
}
.shell {
  max-width: none;
  margin-inline: auto;
}
.section.shell {
  max-width: none;
  padding-inline: var(--page-gutter);
}
.models .model-list {
  width: 100%;
  max-width: none;
  margin-inline: auto;
}
.guarantees {
  background-position: var(--guarantee-grid-origin, 0px) 0;
}
.hero-motion-canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.hero-motion-canvas[hidden] { display: none; }
.hero-art { animation: none; }
.text-unit { white-space: nowrap; }
.section-heading h2, .process-title h2, .contact h2,
.guarantee-layout h2, .case h3, .case-placeholder-card strong { text-wrap: balance; }
.section p { text-wrap: pretty; }
.process-list p span { display: inline; }
.process-list p { line-height: 1.13; }
.models .model-grid > h3, .models .model-grid > p { display: block; padding-left: 70px; align-content: center; }
.models .model-grid > h3::before, .models .model-grid > p::before {
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
}
.models .model-grid > h3:hover::before, .models .model-grid > p:hover::before { transform: translateY(-50%); }
@media (min-width: 901px) {
  .process-layout { grid-template-columns: 1fr 1.25fr; gap: clamp(52px, calc(var(--layout-vw) * 5.5), 84px); }
  .process-title h2 { font-size: clamp(58px, calc(var(--layout-vw) * 6.7), 102px); line-height: 1; }
}
@media (max-width: 720px) {
  .models .model-grid > h3, .models .model-grid > p { padding-left: 50px; }
}

/* Give the full-height chapters an appropriately sized reading layer. */
@media (min-width: 721px) {
  .section-index { font-size: 12px; line-height: 1.4; }
  .section-heading > p { font-size: 17px; line-height: 1.6; }
  .cases-heading > p { color: #51545a; }
  .statement-note { max-width: 470px; font-size: 19px; line-height: 1.55; }
  .process-title > p { max-width: 410px; font-size: 19px; line-height: 1.55; }
  .models .model-grid > h3,
  .models .model-grid > p,
  .models .model-meta > span:not(:empty) {
    min-height: 140px;
    font-size: clamp(25px, calc(var(--layout-vw) * 2), 31px);
    gap: 24px;
  }
  .models .model-grid > h3::before,
  .models .model-grid > p::before,
  .models .model-meta > span:not(:empty)::before {
    width: 46px; height: 46px; flex-basis: 46px;
  }
  .guarantee-copy li { font-size: 16px; line-height: 1.4; }
  .guarantee-copy > p { font-size: 27px; line-height: 1.25; height: auto; min-height: var(--guarantee-cell); }
  .case-topline { font-size: 12px; line-height: 1.4; }
  .case-company { font-size: 13px; }
  .markets-intro { font-size: clamp(36px, calc(var(--layout-vw) * 3.4), 52px); }
  .markets-note { font-size: 19px; line-height: 1.55; }
  .contact-actions > p { font-size: 19px; line-height: 1.55; }
  .contact-field > span, .messenger-choice legend { font-size: 13px; }
  .contact-field input { font-size: 18px; min-height: 68px; }
  .messenger-choice label span { font-size: 16px; }
  .contact-submit { font-size: 18px; }
}

/* Center the phone icon and the circular accent on one shared axis. */
.statement {
  --statement-art-size: clamp(270px, calc(var(--layout-vw) * 29), 438.48px);
  --statement-art-right: max(30px, calc((100% - var(--layout-max)) / 2 + 60px));
}
.statement-mascot {
  width: calc(var(--statement-art-size) * .69);
  right: calc(var(--statement-art-right) + var(--statement-art-size) * .155);
  top: 50%;
  transform: translateY(-50%);
  opacity: .17;
}
.statement::after {
  width: var(--statement-art-size);
  right: var(--statement-art-right);
  top: 50%;
  transform: translateY(-50%);
}
.statement-orbit {
  position: absolute;
  width: var(--statement-art-size);
  aspect-ratio: 1;
  right: var(--statement-art-right);
  top: 50%;
  border: 2px solid transparent;
  border-top-color: #b68a315c;
  border-radius: 50%;
  pointer-events: none;
  animation: statement-orbit 32s linear infinite;
}
@keyframes statement-orbit {
  from { transform: translateY(-50%) rotate(-35deg); }
  to { transform: translateY(-50%) rotate(325deg); }
}
@media (prefers-reduced-motion: reduce) { .statement-orbit { animation: none; transform: translateY(-50%); } }
@media (max-width: 720px) {
  .statement { --statement-art-size: 240px; --statement-art-right: -20px; }
  .statement-mascot { opacity: .09; }
  .guarantee-copy li { font-size: 13px; }
}

/* Compact outer gutters without squeezing the content inside a section. */
:root { --section-left: var(--page-gutter); }
.shell, .section .shell, .footer .shell { padding-inline: var(--page-gutter); }
.section { padding-block: clamp(30px, calc(var(--layout-vw) * 3.6), 57px); }
.models.section { padding-block: 29px 26px; }
.statement.section { padding-block: 24px; }
.process.section, .markets.section { padding-block: clamp(22px, 2.4svh, 36px); }
.guarantees.section { padding-block: calc(var(--guarantee-cell) * .9); }
.section-heading { column-gap: 13px; margin-bottom: 27px; }
.models .section-heading { margin-bottom: 14px; }
.cases-heading { margin-bottom: 18px; }
.models .model-list { column-gap: clamp(7px, calc(var(--layout-vw) * .9), 17px); }
.process-layout { column-gap: clamp(16px, calc(var(--layout-vw) * 1.65), 25px); }
.markets-intro { margin-top: 18px; }
.markets-closing { margin-top: 19px; }
.hero { --hero-anchor: 0px; --hero-gutter: var(--section-left); }
.site-header { border-bottom: 0; }
.site-header::after { content: ''; position: absolute; bottom: 0; left: 50%; width: 100vw; height: 1px; background: #f0e5cf24; transform: translateX(-50%); pointer-events: none; }
.hero-copy.shell { padding-inline: var(--section-left); padding-block: 24px 20px; }
.hero .eyebrow { margin-bottom: 20px; }
.hero-art { top: 92px; bottom: 0; height: auto; background-position: right bottom; background-size: auto 100%; filter: none; }
.hero-motion-canvas { mix-blend-mode: lighten; }
.hero::before { background: linear-gradient(90deg, #030a17 0%, #030a17ef 26%, #030a1750 48%, transparent 65%); }
.hero-title { width: 57%; }
.hero-actions { gap: 18px; margin-top: 24px; }

/* The beam moves independently of canvas/WebGL availability. */
.hero-rays { position: absolute; z-index: 1; inset: 0; overflow: hidden; pointer-events: none; mix-blend-mode: screen; }
.hero-rays > span {
  position: absolute; inset: -28% -10% -25% 28%;
  transform-origin: 88% 0;
  background: linear-gradient(111deg, transparent 38%, #efac080a 43%, #f5bf007a 47%, #fff1b7a6 49%, #f5bf002e 53%, transparent 58%);
  opacity: .38; filter: blur(5px);
  animation: hero-ray-sweep 7s ease-in-out infinite alternate;
}
.hero-rays > span:nth-child(2) { inset-inline-start: 38%; animation-duration: 9s; animation-delay: -4s; opacity: .28; filter: blur(9px); }
.hero-rays > span:nth-child(3) { inset-inline-start: 48%; animation-duration: 11s; animation-delay: -7s; opacity: .2; }
@keyframes hero-ray-sweep { from { transform: rotate(-9deg) translateX(-20px); } to { transform: rotate(7deg) translateX(26px); } }
.statement { --statement-art-size: clamp(260px, calc(var(--layout-vw) * 27), 408px); --statement-art-right: max(var(--section-left), calc((100% - var(--layout-max)) / 2 + var(--section-left))); }
.statement-copy { position: relative; z-index: 1; width: 69%; }
.statement h2 { font-size: clamp(52px, calc(var(--layout-vw) * 6.2), 94px); }
.statement h2 > span { font-size: .68em; line-height: 1.05; margin-top: 18px; }
.statement-note { margin: 22px 0 0; max-width: none; }
.statement-note > span { display: block; }
.statement-mascot { width: calc(var(--statement-art-size) * .66); right: calc(var(--statement-art-right) + var(--statement-art-size) * .17); opacity: .28; }
.statement-orbit { z-index: 0; border-width: 3px; border-top-color: #9d7500; border-left-color: #9d750026; animation-duration: 14s; }
.statement-orbit::before { content: ''; position: absolute; width: 9px; height: 9px; border-radius: 50%; background: #9d7500; top: 12%; right: 12%; }
.statement::after { box-shadow: 0 0 0 22px #030a1704; }

@media (max-width: 1050px) and (min-width: 721px) {
  .statement-copy { width: 70%; }
  .statement h2 { font-size: clamp(46px, calc(var(--layout-vw) * 6.2), 65px); }
  .hero-title { width: 66%; }
  .hero-art { background-position: calc(100% + 110px) bottom; }
}
@media (max-width: 720px) {
  :root { --page-gutter: 20px; --section-left: 20px; }
  .section { padding-block: 27px; }
  .statement.section, .models.section { padding-block: 24px; }
  .section-heading .section-index, .models .section-heading .section-index { margin-bottom: 12px; }
  .section-heading > p { margin-top: 12px; }
  .hero-copy.shell { padding-block: 70px 24px; justify-content: flex-start; }
  .hero-title { width: 100%; }
  .hero-art { top: 72px; background-size: auto 83%; background-position: calc(100% + 88px) bottom; }
  .hero::before { background: linear-gradient(180deg, #030a17 0%, #030a17dd 24%, #030a1780 70%, #030a17cb 100%); }
  .hero-rays { opacity: .8; }
  .statement { --statement-art-size: 190px; --statement-art-right: 25px; }
  .statement-copy { width: 100%; padding-bottom: 225px; }
  .statement h2 { font-size: clamp(37px, calc(var(--layout-vw) * 10.7), 61px); }
  .statement-mascot, .statement-orbit, .statement::after { top: auto; bottom: 37px; transform: none; }
  .statement-mascot { bottom: 69px; opacity: .3; }
  .statement-orbit { animation-name: statement-orbit-mobile; }
  .statement-note { font-size: 16px; }
  .markets-intro { margin-top: 12px; }
  .markets-closing { margin-top: 16px; }
}
@keyframes statement-orbit-mobile { from { transform: rotate(-35deg); } to { transform: rotate(325deg); } }
.guarantees { background-image: linear-gradient(#030a171a 1px, transparent 1px), linear-gradient(90deg, #030a171a 1px, transparent 1px); background-position: var(--guarantee-grid-origin, 0px) var(--guarantee-grid-y, 0px); }
.guarantees::before { width: min(1100px, 86vw); top: 50%; bottom: auto; right: calc((100% - min(100%, var(--layout-max))) / 2 - 180px); transform: translateY(-50%); }
.guarantee-marquee { left: 0; right: 0; top: 22px; width: 100%; display: flex; justify-content: space-around; font-size: clamp(38px, 4.1vw, 90px); line-height: 1.2; }
.guarantee-layout { grid-template-columns: 1.08fr 1fr; column-gap: 36px; row-gap: 24px; align-items: center; }
.guarantee-layout > .section-index { grid-column: 1 / -1; }
.guarantee-layout h2 { margin: 0; font-size: clamp(58px, calc(var(--layout-vw) * 7), 106px); line-height: .95; }
.guarantee-layout h2 em { display: block; }
.guarantee-copy { margin-top: 0; row-gap: 22px; }
.guarantee-copy ul { position: relative; border: 0; width: var(--guarantee-rule-width, auto); }
.guarantee-copy ul::after { content: ''; position: absolute; height: 1px; background: var(--ink); left: 0; right: 0; bottom: 0; }
.guarantee-copy li { height: var(--guarantee-cell); min-height: var(--guarantee-cell); border-top: 1px solid var(--ink); border-bottom: 0; grid-template-columns: var(--guarantee-cell) minmax(0, 1fr); column-gap: 12px; padding: 0; }
.guarantee-copy li > span { justify-self: center; }
.guarantee-copy > p { padding-left: calc(var(--guarantee-cell) + 12px - var(--guarantee-line-inset)); font-size: 24px; }
@media (max-width: 900px) {
  .guarantee-layout { grid-template-columns: 1fr; gap: 24px; }
  .guarantee-layout h2 { max-width: 650px; }
  .guarantee-copy { margin-top: 26px; }
}
@media (max-width: 720px) {
  .guarantees.section { padding-block: 82px 32px; }
  .guarantee-marquee { font-size: 7vw; top: 18px; }
  .guarantee-marquee > span:nth-child(2) { display: none; }
  .guarantee-layout h2 { font-size: clamp(42px, 12vw, 70px); margin-block: 24px; }
  .guarantee-copy li { font-size: 12px; }
  .guarantee-copy > p { font-size: 22px; margin-top: 22px; }
}
@media (prefers-reduced-motion: reduce) { .hero-rays > span, .statement-orbit { animation: none; } }

/* Full-width artwork has no internal rectangular clipping edge. */
.hero-art, .hero::before { width: 100%; max-width: none; margin: 0; inset-inline: 0; }
.hero-art { background-position: right bottom; }
@media (min-width: 1513px) {
  .hero-line-one { font-size: clamp(100px, 6.6vw, 136px); }
  .hero-line-two { font-size: clamp(70px, 4.64vw, 96px); }
  .hero-line-three { font-size: clamp(46px, 3.1vw, 64px); }
  .hero-line-three em { font-size: clamp(68px, 4.5vw, 92px); }
}

/* All orbital details share the exact same SVG centre and radii. */
.statement { --statement-art-right: var(--page-gutter); --statement-art-size: clamp(400px, 38vw, 735px); }
.statement::after { display: none; }
.statement-orbit { border: 0; overflow: visible; animation: none; transform: translateY(-50%); color: var(--yellow); }
.statement-orbit::before { display: none; }
.statement-orbit circle { fill: none; stroke: currentColor; }
.statement-orbit .orbit-track { stroke: var(--ink); stroke-width: 1.2; opacity: .42; }
.statement-orbit .orbit-inner-track { stroke: var(--yellow); stroke-width: .8; opacity: .75; }
.statement-orbit .orbit-sweep { stroke: var(--yellow); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 230 1408; transform: rotate(-90deg); transform-origin: 250px 250px; }
.statement-orbit .orbit-node { fill: var(--yellow); stroke-width: 0; }
.statement-orbit .orbit-inner-sweep { stroke: var(--ink); stroke-width: 1.5; stroke-linecap: round; stroke-dasharray: 82 370 125 655; opacity: .85; }
.orbit-ticks { stroke-width: 3; stroke-dasharray: 1 63; opacity: .48; }
.orbit-rotor, .orbit-counter { transform-origin: 250px 250px; animation: orbit-turn 24s linear infinite; }
.orbit-counter { animation-duration: 38s; animation-direction: reverse; }
@keyframes orbit-turn { to { transform: rotate(360deg); } }
.statement-mascot { height: calc(var(--statement-art-size) * .66); width: auto; right: calc(var(--statement-art-right) + var(--statement-art-size) * .5); transform: translate(50%, -50%); opacity: .45; }

/* Restore breathing room within turnkey marketing. */
.models.section { padding-block: 72px; }
.models .section-heading { column-gap: 40px; margin-bottom: 54px; }
.models .model-list { max-width: none; column-gap: clamp(30px, 3vw, 64px); row-gap: 10px; }
.models .model-grid > h3, .models .model-grid > p,
.models .model-meta > span:not(:empty) { min-height: 164px; padding-top: 32px; padding-bottom: 32px; line-height: 1.25; }

/* Complete words and a caption sized to the same rules as the list. */
.guarantee-marquee { inset-inline: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; padding-inline: var(--page-gutter); font-size: clamp(26px, 3.5vw, 84px); line-height: 1.35; }
.guarantee-marquee > span { min-width: 0; text-align: center; }
.guarantees::before { right: calc(var(--page-gutter) - 180px); }
.guarantee-copy { grid-template-rows: auto auto; row-gap: 24px; }
.guarantee-copy > p { display: block; width: var(--guarantee-rule-width, 100%); min-height: 0; height: auto; margin: 0 0 0 calc(-1 * var(--guarantee-line-inset)); padding: 0; text-align: left; text-wrap: pretty; font-size: clamp(22px, 1.5vw, 28px); line-height: 1.3; }
@media (max-width: 1050px) and (min-width: 721px) {
  .models .model-list { column-gap: 32px; }
  .models .model-grid > h3, .models .model-grid > p,
  .models .model-meta > span:not(:empty) { min-height: 144px; }
  .statement { --statement-art-size: clamp(290px, 33vw, 355px); }
}
@media (max-width: 720px) {
  .hero-art { background-position: right bottom; }
  .statement { --statement-art-size: min(320px, calc(100vw - 40px)); --statement-art-right: calc((100% - var(--statement-art-size)) / 2); }
  .statement-copy { padding-bottom: 355px; }
  .statement-orbit { bottom: 25px; transform: none; }
  .statement-mascot { top: auto; bottom: calc(25px + var(--statement-art-size) * .17); transform: translateX(50%); opacity: .45; }
  .models.section { padding-block: 48px; }
  .models .section-heading { margin-bottom: 28px; }
  .models .model-list { row-gap: 0; }
  .models .model-grid > h3, .models .model-grid > p,
  .models .model-meta > span:not(:empty) { min-height: 106px; padding-top: 24px; padding-bottom: 24px; }
  .guarantee-marquee { grid-template-columns: 1fr; font-size: clamp(23px, 6.2vw, 42px); }
  .guarantee-copy > p { font-size: 22px; margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) { .orbit-rotor, .orbit-counter { animation: none; } }

/* Original portfolio composition from the first generated site. */
.cases .cases-heading { border-bottom: 0; padding-bottom: 0; margin-bottom: 76px; gap: 32px; }
.cases .cases-heading h2 { text-wrap: initial; }
.cases .case-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; gap: 28px; }
.cases .case { display: block; width: auto; border-top: 0; padding-top: 0; margin: 0; }
.cases .case-1 { grid-column: 1 / 7; }
.cases .case-2 { grid-column: 7 / 13; margin-top: 120px; }
.cases .case-3 { grid-column: 1 / 7; margin-top: 48px; }
.cases .case-4 { grid-column: 7 / 13; margin-top: 140px; }
.cases .case-5 { grid-column: 1 / 7; margin-top: 48px; }
.cases .case-6 { grid-column: 7 / 13; margin-top: 140px; }
.cases .case-7 { grid-column: 1 / -1; margin-top: 48px; }
.cases .case-row { display: block; min-height: 0; margin-top: 16px; }
.cases .case-visual { height: clamp(300px, 34vw, 500px); min-height: 0; max-height: none; aspect-ratio: auto; width: auto; margin: 0 10px 10px 0; box-shadow: 10px 10px 0 var(--yellow); }
.cases .case-copy { display: block; width: calc(100% - 10px); min-height: 0; margin: 18px 0 0; padding: clamp(24px, 3vw, 42px); border-top: 0; border-left: 8px solid var(--yellow); }
.cases .case h3 { font: 400 clamp(56px, calc(var(--layout-vw) * 6.4), 96px)/.94 var(--font-display); text-wrap: initial; }
.cases .case-detail { font: italic clamp(21px, calc(var(--layout-vw) * 2.1), 29px)/1.1 var(--font-serif); margin: 18px 0 0; }
.cases .case-placeholder-card { min-height: clamp(300px, 24vw, 420px); aspect-ratio: auto; margin: 16px 10px 10px 0; padding: clamp(30px, 4vw, 58px); border: 2px solid var(--ink); box-shadow: 10px 10px 0 var(--ink); }
.cases .case-placeholder-card strong { max-width: 16ch; font: 400 clamp(50px, calc(var(--layout-vw) * 6), 90px)/.98 var(--font-display); margin-top: auto; margin-bottom: 34px; text-wrap: initial; }
.cases .case-placeholder-plus { top: auto; bottom: clamp(18px, 2.2vw, 32px); right: clamp(24px, 3vw, 44px); width: clamp(72px, 7vw, 104px); font: 400 clamp(82px, 6.5vw, 104px)/1 var(--font-display); }
@media (max-width: 1050px) and (min-width: 901px) {
  .cases .case-2 { grid-column: 7 / 13; }
  .cases .case-3 { grid-column: 1 / 7; margin-top: 20px; }
  .cases .case-4 { margin-top: 80px; }
  .cases .case-5 { margin-top: 20px; }
  .cases .case-6 { margin-top: 80px; }
  .cases .case-7 { margin-top: 20px; }
}
@media (max-width: 900px) {
  .cases .case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cases .case { grid-column: auto; margin-top: 0; }
  .cases .case-7 { grid-column: 1 / -1; }
  .cases .case h3 { font-size: clamp(48px, 6.4vw, 64px); }
}
@media (max-width: 720px) {
  .cases .cases-heading { border: 0; padding-bottom: 0; margin-bottom: 50px; }
  .cases .case-grid { display: block; }
  .cases .case { margin: 0 0 58px; padding-top: 11px; }
  .cases .case-row { display: flex; flex-direction: column; }
  .cases .case-visual { width: auto; height: auto; aspect-ratio: 4 / 3; margin: 0 6px 6px 0; box-shadow: 6px 6px 0 var(--yellow); }
  .cases .case-copy { width: 100%; margin: 0; padding: 27px 22px; border-left-width: 6px; }
  .cases .case h3 { font-size: clamp(48px, 14vw, 62px); line-height: .98; }
  .cases .case-detail { font-size: clamp(20px, 6.3vw, 25px); margin-top: 14px; }
  .cases .case-placeholder-card { min-height: 330px; padding: 28px 24px; box-shadow: 6px 6px 0 var(--ink); }
  .cases .case-placeholder-card strong { max-width: none; font-size: clamp(43px, 12.5vw, 55px); line-height: .98; margin-bottom: 54px; }
  .cases .case-placeholder-plus { width: 68px; font-size: 78px; bottom: 14px; right: 20px; }
}

/* Vertically balance the process title while preserving the left text axis. */
.process-title { position: static; align-self: center; text-align: left; }
.process-title .section-index { margin-bottom: 38px; }
.process-title > p { width: min(410px, 100%); margin-inline: 0; }
.process-title h2 { line-height: 1.05; }

/* Continuous edge-to-edge lettering and a circle centred on the list. */
.guarantee-marquee { display: flex; justify-content: flex-start; gap: 0; width: max-content; min-width: 100%; padding: 0; inset-inline: 0 auto; font-size: clamp(52px, 5.6vw, 110px); line-height: 1.4; }
.guarantee-marquee > span { display: block; flex: 0 0 auto; text-align: left; }
.guarantee-copy { width: min(100%, 620px); justify-self: center; }
.guarantees::before { left: var(--guarantee-circle-x, 75%); right: auto; top: var(--guarantee-circle-y, 50%); width: var(--guarantee-circle-size, 800px); transform: translate(-50%, -50%); }

/* Two independent card stacks preserve the varied original composition. */
@media (min-width: 901px) {
  .cases .case-grid.is-packed { grid-auto-rows: 1px; row-gap: 0; }
  .cases .case-grid.is-packed > .case { margin-top: 0; }
}

/* A full-height chapter: upper heading, central ribbon, lower caption. */
.markets.section {
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: 'heading' 'track' 'note';
  grid-template-rows: auto minmax(420px, 1fr) auto;
  padding-block: clamp(48px, 7svh, 88px);
}
.markets-heading { grid-area: heading; align-self: start; margin: 0; }
.markets-intro { max-width: 960px; margin: 18px 0 0; font-size: clamp(36px, 3.2vw, 48px); line-height: 1.12; }
.market-playground { grid-area: track; align-self: center; --jump-room: 0px; padding-top: var(--jump-room); }
.markets-closing { grid-area: note; align-self: end; justify-self: end; width: min(470px, 100%); margin: 0; }
.markets-note { width: 100%; max-width: none; margin: 0; font-size: 18px; line-height: 1.5; }
@media (max-width: 900px) {
  .process-title { margin-bottom: 40px; }
  .guarantee-copy { justify-self: start; }
}
@media (max-width: 720px) {
  .guarantee-marquee > span:nth-child(2) { display: block; }
  .guarantee-marquee { font-size: 52px; }
  .markets.section { grid-template-rows: auto minmax(400px, 1fr) auto; padding-block: 48px; }
  .markets-closing { justify-self: start; width: min(340px, 100%); margin: 0; }
  .markets-intro { font-size: 34px; line-height: 1.15; }
  .markets-note { font-size: 16px; }
  .market-playground { --jump-room: 0px; }
}

@media (min-width: 1051px) and (max-width: 1550px) {
  .statement h2 > span { font-size: .6em; }
}

.markets-heading, .market-playground, .markets-closing { min-width: 0; }
.market-elvik-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.market-elvik-canvas { position: relative; }
.market-elvik.has-animation .market-elvik-poster { display: none; }
.models::before { display: none; }

@font-face {
  font-family: 'Oswald Market';
  src: url('/elvion-assets/oswald-market-straight-u.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0423;
}
/* Reuse the straight Cyrillic У throughout Oswald display typography. The
   unicode subset leaves every other glyph, body copy and serif accent intact. */
:root, body {
  --font-display: 'Oswald Market', var(--font-elvion-display, 'Arial Narrow'), 'Arial Narrow', Impact, sans-serif;
}
.market-sequence { font-family: var(--font-display); }

/* Decorative circles breathe independently of the reading layer. */
.process::before, .guarantees::before {
  pointer-events: none;
  transform-origin: center;
  animation: ambient-orbit-breathe 8.4s ease-in-out infinite;
}
.guarantees { --circle-anchor: translate(-50%, -50%); }
.guarantees::before { animation-delay: -2.1s; }
.process::after, .guarantees::after {
  content: '';
  position: absolute;
  pointer-events: none;
  aspect-ratio: 1;
  border-radius: 50%;
  transform-origin: center;
  opacity: 0;
  animation: ambient-orbit-wave 8.4s cubic-bezier(.18,.5,.42,1) infinite;
  animation-delay: -4.2s;
}
.process::after {
  width: calc(var(--layout-vw) * 48);
  bottom: calc(var(--layout-vw) * -23);
  left: calc(var(--layout-vw) * -11);
  border: 1px solid #f5bf0054;
  box-shadow: 0 0 32px #f5bf0008;
}
.guarantees::after {
  left: var(--guarantee-circle-x, 75%);
  top: var(--guarantee-circle-y, 50%);
  width: var(--guarantee-circle-size, 800px);
  border: 1px solid #030a1745;
  box-shadow: 0 0 30px #030a1707;
}
@keyframes ambient-orbit-breathe {
  0%, 100% { transform: var(--circle-anchor, translate(0, 0)) scale(.985); opacity: .72; }
  50% { transform: var(--circle-anchor, translate(0, 0)) scale(1.025); opacity: 1; }
}
@keyframes ambient-orbit-wave {
  0% { transform: var(--circle-anchor, translate(0, 0)) scale(.98); opacity: 0; }
  20% { opacity: .55; }
  100% { transform: var(--circle-anchor, translate(0, 0)) scale(1.24); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .process::before, .guarantees::before { animation: none; opacity: 1; }
  .process::after, .guarantees::after { display: none; }
}

/* Optical centre follows the ink of the seated figure, including its cape. */
.statement-mascot {
  opacity: .42;
  height: calc(var(--statement-art-size) * .60);
  transform: translate(40%, -51.5%);
  object-fit: contain;
}

/* Room around the editorial opening; the case stacks remain compact. */
.cases.section { padding-top: clamp(76px, 8svh, 110px); }
.hero .eyebrow { font-size: clamp(14px, 1.05vw, 17px); letter-spacing: .13em; margin-bottom: 26px; }
.hero-actions { gap: 28px; margin-top: 32px; }
.hero-actions .primary-cta { min-height: 66px; padding: 19px 30px; font-size: 17px; }
.hero-cases-link { font-size: 16px; padding-block: 15px; }
.hero-copy.shell { justify-content: center; padding-block: 36px; }
.statement-orbit .orbit-ticks { display: none; }
@media (min-width: 1181px) {
  .contact-layout > :first-child { transform: translateY(-48px); }
  .contact-mascot {
    width: clamp(350px, min(32vw, 52svh), 480px);
    left: var(--contact-mascot-left, 24%);
    top: var(--contact-mascot-top, 30%);
    bottom: auto;
    transform: none;
    mask-image: none;
    -webkit-mask-image: none;
    opacity: .88;
  }
}
@media (max-width: 720px) {
  .cases.section { padding-top: 56px; }
  .hero-copy.shell { justify-content: flex-start; padding-block: 66px 32px; }
  .hero .eyebrow { font-size: 11px; letter-spacing: .08em; margin-bottom: 24px; }
  .hero-actions { gap: 18px; margin-top: 30px; }
  .hero-actions .primary-cta { min-height: 46px; padding: 12px 15px; font-size: clamp(12px, 3.3vw, 14px); }
  .hero-cases-link { min-height: 44px; padding-block: 12px; font-size: clamp(12px, 3.2vw, 14px); }
}
@media (max-width: 720px) {
  .statement-mascot {
    bottom: calc(25px + var(--statement-art-size) * .209);
    transform: translateX(40%);
  }
}

/* Quiet chapter labels; ordered steps retain their numbers. */
.section-index { display: block; }
.models .models-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.28fr);
  align-items: center;
  gap: clamp(22px, 2.8vw, 42px);
  margin-bottom: clamp(28px, 3.2vw, 46px);
}
.models-heading-copy .section-index { margin-bottom: 30px; }
.models .models-intro h2 {
  font-size: clamp(34px, 4.4vw, 67px);
  line-height: 1.04;
  text-wrap: initial;
}
.models-heading-line { display: block; white-space: nowrap; }
@media (min-width: 1051px) {
  .models.section { padding-block: clamp(36px, 5.5svh, 64px); }
  .models .model-grid > h3, .models .model-grid > p,
  .models .model-meta > span:not(:empty) { min-height: clamp(120px, 15.5svh, 164px); }
}
@media (min-width: 1051px) and (max-height: 850px) {
  .models.section { padding-block: 36px; }
  .models .models-intro { margin-bottom: 24px; }
  .models-heading-copy .section-index { margin-bottom: 22px; }
  .models .models-heading-copy > p { margin-top: 16px; font-size: 16px; line-height: 1.45; }
  .models .model-grid > h3, .models .model-grid > p,
  .models .model-meta > span:not(:empty) { min-height: 120px; padding-block: 20px; font-size: 27px; }
}
.models-heading-copy > p { max-width: 480px; margin: 24px 0 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.models-mascot { display: block; width: 100%; height: auto; aspect-ratio: 3.2; object-fit: cover; max-width: 820px; justify-self: end; }
.contact::before {
  left: var(--contact-glow-x, 42%);
  top: var(--contact-glow-y, 62%);
  bottom: auto;
  width: calc(var(--contact-glow-width, 440px) * 1.4);
  height: calc(var(--contact-glow-height, 520px) * 1.25);
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, #edba4854 0%, #e8b23b2a 30%, #dcad2810 53%, transparent 72%);
  filter: none;
  pointer-events: none;
}
.contact::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 80% 40%, #f0d6a713 0%, #c49b3c08 24%, transparent 52%);
}
@media (max-width: 1180px) {
  .contact::before { display: block; left: 12%; top: 34%; width: 760px; height: 800px; opacity: .65; }
}
@media (max-width: 720px) {
  .models .models-intro { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .models .models-intro h2 { font-size: clamp(30px, 9.3vw, 66px); }
  .models-heading-copy .section-index { margin-bottom: 24px; }
  .models-heading-copy > p { font-size: 16px; margin-top: 20px; }
  .models-mascot { width: min(100%, 440px); justify-self: center; }
}

/* Deliberate paragraph breaks and balanced bookends around the country ribbon. */
.process-title > p { width: 100%; max-width: 590px; }
.process-note-line { display: block; }
.markets.section { padding-block: clamp(72px, 10svh, 116px); }
@media (max-width: 720px) {
  .markets.section { padding-block: 64px; }
}

/* Mobile: artwork gets its own space instead of sitting behind the offer. */
@media (max-width: 720px) {
  .hero { display: flex; flex-direction: column; min-height: 100svh; }
  .hero .site-header { order: 0; width: 100%; flex: 0 0 72px; }
  .hero-copy.shell { order: 1; width: 100%; height: auto; min-height: 0; padding-block: 38px 16px; flex: 0 0 auto; }
  .hero .hero-art {
    order: 2; position: relative; inset: auto; flex: 1 0 auto;
    height: clamp(290px, 84vw, 390px); min-height: 290px;
    background-size: auto 100%; background-position: right bottom;
    opacity: 1; transform: none;
    -webkit-mask-image: linear-gradient(transparent, #000 32px);
    mask-image: linear-gradient(transparent, #000 32px);
  }
  .hero::before { display: none; }
  .hero::after { height: 45px; }
  .hero .hero-actions { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 12px; margin-top: 24px; }
  .hero .hero-actions > a { width: auto; flex: 0 0 auto; white-space: nowrap; }
  .hero .hero-line-two, .hero .hero-line-three {
    display: block; margin: 0; white-space: nowrap;
    font: 400 clamp(26px, calc(var(--layout-vw) * 7.1), 47px)/1.08 var(--font-display);
    letter-spacing: -.035em;
  }
  .hero .hero-line-three em {
    display: inline; width: auto; margin: 0;
    font: italic 500 1.25em/.8 var(--font-serif);
    letter-spacing: -.045em; text-transform: none; white-space: inherit;
  }
  .hero .eyebrow { font-size: 10px; letter-spacing: .075em; margin-bottom: 22px; }
  .hero-rays { opacity: .45; }

  /* Every service shares one type scale and a fixed icon column. */
  .models .model-grid > h3,
  .models .model-grid > p,
  .models .model-meta > span:not(:empty),
  .models .model-row:nth-child(3) .model-meta > span:not(:empty) {
    display: block; grid-column: auto; width: 100%; min-width: 0;
    min-height: 96px; padding: 23px 0 23px 50px;
    font-size: 22px; line-height: 1.25; letter-spacing: -.025em;
    align-content: center; overflow-wrap: break-word;
  }
  .models .model-grid > h3::before,
  .models .model-grid > p::before,
  .models .model-meta > span:not(:empty)::before {
    position: absolute; left: 0; top: 50%; margin: 0;
    width: 32px; height: 32px; transform: translateY(-50%);
  }
  .models .model-meta > span:not(:empty):hover::before { transform: translateY(-50%); }
  .models .text-unit { white-space: normal; }
  .models-mascot { aspect-ratio: auto; object-fit: contain; }

}

/* Keep the mascot beside the fields on phones and compact tablet layouts. */
@media (max-width: 1180px) {
  .contact.section { padding: 56px var(--page-gutter); gap: 0; }
  .contact .contact-layout, .contact .contact-actions { display: contents; }
  .contact .contact-layout > :first-child { order: 0; }
  .contact .contact-actions > p { order: 1; margin: 24px 0 0; }
  .contact .contact-mascot {
    display: block; position: relative; inset: auto; order: 2;
    width: min(60vw, 240px); height: auto; max-width: 100%;
    align-self: flex-start; margin: 12px 0 16px;
    transform: none; mask-image: none; -webkit-mask-image: none; opacity: .95;
  }
  .contact .contact-form {
    order: 3; width: 100%; margin: 26px 0 0;
    display: grid; grid-template-columns: minmax(0, .38fr) minmax(0, .62fr);
    column-gap: 16px; row-gap: 0;
  }
  .contact-form .contact-mascot {
    order: 0; grid-column: 1; grid-row: span 2;
    width: 100%; height: auto; margin: 0; align-self: center;
  }
  .contact-form .contact-field {
    grid-column: 2; min-width: 0; grid-template-columns: minmax(0, 1fr);
    align-content: center; gap: 2px; padding: 8px 0;
  }
  .contact-form .contact-field input { width: 100%; min-width: 0; min-height: 40px; padding: 6px 0; }
  .contact-form .messenger-choice, .contact-form .contact-submit { grid-column: 1 / -1; }
  .contact-form .contact-field:last-of-type { border-bottom: 1px solid var(--line); }
  .contact-form .messenger-choice { margin-top: 24px; border-top: 0; padding-top: 0; }
  .contact-form .messenger-choice legend { transform: none; }

}

/* Phone controls stay easy to tap; the final heading fits compact screens. */
@media (max-width: 720px) {
  .mobile-nav-toggle { min-height: 44px; padding: 12px 0 12px 14px; }
  .contact h2 { font-size: clamp(46px, 15.5vw, 66px); }
  .contact-form .campaign-contact-summary { overflow-wrap: anywhere; }
}
