/* Shared marketing pages — services, technology, about, work, legal */
body.site-body--marketing {
    --site-ink: #111318;
    --site-ink-soft: #3a4150;
    --site-muted: #6b7385;
    --site-paper: #f4f5f7;
    --site-surface: #ffffff;
    --site-accent: #e11d48;
    --site-accent-soft: rgba(225, 29, 72, 0.1);
    --site-line: rgba(17, 19, 24, 0.1);
    --site-max: 1120px;
    color: var(--site-ink);
    background:
        radial-gradient(900px 480px at 0% 0%, rgba(225, 29, 72, 0.06), transparent 55%),
        radial-gradient(800px 500px at 100% 10%, rgba(17, 19, 24, 0.05), transparent 50%),
        var(--site-paper);
}

body.site-body--marketing .site-header {
    background: rgba(244, 245, 247, 0.88);
    border-bottom-color: var(--site-line);
}

body.site-body--marketing .site-nav__cta {
    border-color: var(--site-ink);
    color: var(--site-ink);
}

body.site-body--marketing .site-nav__cta:hover {
    background: var(--site-ink);
    color: #fff;
}

body.site-body--marketing .site-footer {
    background: var(--site-surface);
}

.mk-wrap {
    width: min(100% - 2.5rem, var(--site-max));
    margin-inline: auto;
}

.mk-hero {
    padding: 3.5rem 0 2rem;
    animation: mk-in 0.85s var(--site-ease) both;
}

.mk-hero__inner {
    max-width: 42rem;
}

.mk-label {
    margin: 0 0 0.85rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--site-accent);
}

.mk-crumbs {
    margin: 0 0 1rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--site-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.mk-crumbs a {
    color: var(--site-ink-soft);
    text-decoration: none;
}

.mk-crumbs a:hover {
    color: var(--site-accent);
}

.mk-title {
    margin: 0;
    font-family: var(--site-font-display);
    font-weight: 700;
    font-size: clamp(2.1rem, 4.5vw, 3.1rem);
    line-height: 1.12;
    letter-spacing: -0.03em;
    color: var(--site-ink);
}

.mk-lead {
    margin: 1rem 0 0;
    font-size: 1.0625rem;
    line-height: 1.65;
    color: var(--site-ink-soft);
}

.mk-meta {
    margin: 1rem 0 0;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--site-muted);
}

.mk-meta__sep {
    margin: 0 0.35rem;
    opacity: 0.55;
}

.mk-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.75rem;
}

.mk-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.8rem 1.25rem;
    border-radius: 999px;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    transition: transform 0.25s var(--site-ease), background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.mk-btn--solid {
    background: var(--site-ink);
    color: #fff;
}

.mk-btn--solid:hover {
    background: var(--site-accent);
    transform: translateY(-1px);
}

.mk-btn--ghost {
    border: 1px solid var(--site-line);
    color: var(--site-ink);
    background: rgba(255, 255, 255, 0.65);
}

.mk-btn--ghost:hover {
    border-color: var(--site-ink);
}

.mk-section {
    padding: 3rem 0;
}

.mk-section--alt {
    background: rgba(255, 255, 255, 0.45);
    border-block: 1px solid var(--site-line);
}

.mk-section__head {
    max-width: 36rem;
    margin-bottom: 1.5rem;
}

.mk-section__head h2 {
    margin: 0 0 0.5rem;
    font-size: clamp(1.5rem, 2.5vw, 1.85rem);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.mk-section__head p {
    margin: 0;
    color: var(--site-muted);
}

.mk-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.mk-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mk-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mk-compare-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--site-line, rgba(17, 19, 24, 0.1));
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.92);
}

.mk-compare-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92rem;
    line-height: 1.45;
}

.mk-compare-table th,
.mk-compare-table td {
    padding: 0.85rem 1rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--site-line, rgba(17, 19, 24, 0.1));
}

.mk-compare-table thead th {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--site-muted, #6b7385);
    background: rgba(244, 245, 247, 0.9);
}

.mk-compare-table tbody th {
    font-weight: 700;
    white-space: nowrap;
}

.mk-compare-list {
    margin: 0.35rem 0 0;
    padding-left: 1.1rem;
    color: var(--site-ink-soft, #3a4150);
    font-size: 0.92rem;
    line-height: 1.5;
}

.mk-compare-list li + li {
    margin-top: 0.35rem;
}

.mk-card {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 1.35rem 1.3rem;
    background: var(--site-surface);
    border: 1px solid var(--site-line);
    border-radius: 1rem;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s var(--site-ease), border-color 0.25s ease, box-shadow 0.3s ease;
}

.mk-card:hover {
    transform: translateY(-4px);
    border-color: rgba(225, 29, 72, 0.28);
    box-shadow: 0 16px 36px rgba(17, 19, 24, 0.07);
}

.mk-card__tag {
    margin: 0;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--site-accent);
}

.mk-card__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.015em;
}

.mk-card__summary {
    margin: 0;
    color: var(--site-muted);
    font-size: 0.9375rem;
    line-height: 1.55;
    flex: 1;
}

.mk-card__more {
    margin-top: 0.35rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--site-ink);
}

.mk-card:hover .mk-card__more {
    color: var(--site-accent);
}

.mk-prose {
    max-width: 44rem;
    display: grid;
    gap: 1.75rem;
}

.mk-prose--narrow {
    max-width: 40rem;
}

.mk-block h2 {
    margin: 0 0 0.55rem;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.015em;
}

.mk-block p {
    margin: 0;
    color: var(--site-ink-soft);
    font-size: 1.02rem;
    line-height: 1.65;
}

.mk-block ul {
    margin: 0.85rem 0 0;
    padding-left: 1.15rem;
    color: var(--site-ink-soft);
    font-size: 0.975rem;
    line-height: 1.55;
}

.mk-block li {
    margin-bottom: 0.35rem;
}

.mk-block li::marker {
    color: var(--site-accent);
}

/* CMS detail pages (/p/{slug}) — rich HTML from dashboard */
.mk-cms {
    max-width: 40rem;
    color: var(--site-ink-soft);
    font-size: 1.02rem;
    line-height: 1.7;
    animation: mk-in 0.9s var(--site-ease) 0.08s both;
}

.mk-cms > *:first-child {
    margin-top: 0;
}

.mk-cms h1,
.mk-cms h2,
.mk-cms h3,
.mk-cms h4,
.mk-cms h5,
.mk-cms h6 {
    margin: 2rem 0 0.65rem;
    color: var(--site-ink);
    font-family: var(--site-font-display);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
}

.mk-cms h1 {
    font-size: 1.75rem;
}

.mk-cms h2 {
    font-size: 1.35rem;
}

.mk-cms h3 {
    font-size: 1.15rem;
}

.mk-cms h4,
.mk-cms h5,
.mk-cms h6 {
    font-size: 1.05rem;
}

.mk-cms p {
    margin: 0 0 1rem;
}

.mk-cms ul,
.mk-cms ol {
    margin: 0 0 1.15rem;
    padding-left: 1.25rem;
}

.mk-cms li {
    margin-bottom: 0.4rem;
}

.mk-cms li::marker {
    color: var(--site-accent);
}

.mk-cms a {
    color: var(--site-accent);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.mk-cms a:hover {
    color: var(--site-ink);
}

.mk-cms strong,
.mk-cms b {
    color: var(--site-ink);
    font-weight: 700;
}

.mk-cms hr {
    margin: 2rem 0;
    border: 0;
    border-top: 1px solid var(--site-line);
}

.mk-cms blockquote {
    margin: 1.5rem 0;
    padding: 0.85rem 0 0.85rem 1.15rem;
    border-left: 3px solid var(--site-accent);
    color: var(--site-ink-soft);
    font-style: italic;
}

.mk-cms img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 1.5rem 0;
    border-radius: 0.75rem;
}

.mk-cms table {
    width: 100%;
    margin: 1.5rem 0;
    border-collapse: collapse;
    font-size: 0.95rem;
}

.mk-cms th,
.mk-cms td {
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--site-line);
    text-align: left;
}

.mk-cms th {
    background: rgba(255, 255, 255, 0.7);
    color: var(--site-ink);
    font-weight: 700;
}

.mk-cms figure {
    margin: 1.5rem 0;
}

.mk-cms figcaption {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    color: var(--site-muted);
}

/* Centered CMS detail pages (/p/{slug}) */
.mk-page-hero__inner {
    max-width: 46rem;
    margin-inline: auto;
    text-align: center;
}

.mk-page-hero .mk-lead,
.mk-page-hero .mk-meta {
    margin-inline: auto;
}

.mk-page-body__inner {
    max-width: 46rem;
    margin-inline: auto;
}

.mk-page-media-section {
    padding: 0 0 0.5rem;
}

.mk-page-media {
    margin: 0;
}

.mk-page-media img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 1rem;
    border: 1px solid var(--site-line);
    background: var(--site-surface);
}

.mk-page-body .mk-cms {
    max-width: none;
    text-align: left;
}

.mk-cta {
    padding: 2.5rem 0 4rem;
}

.mk-cta__box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.6rem 1.75rem;
    border: 1px solid var(--site-line);
    border-radius: 1.1rem;
    background:
        radial-gradient(420px 160px at 100% 0%, rgba(225, 29, 72, 0.08), transparent 60%),
        var(--site-surface);
}

.mk-cta__box > p {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 600;
    letter-spacing: -0.015em;
    max-width: 28rem;
}

.mk-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

/* Case study layout */
.cs-hero {
    padding: 3.25rem 0 2.25rem;
    border-bottom: 1px solid var(--site-line);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.55), transparent 70%),
        radial-gradient(700px 280px at 90% 0%, rgba(225, 29, 72, 0.08), transparent 55%);
    animation: mk-in 0.85s var(--site-ease) both;
}

.cs-hero__inner {
    max-width: 46rem;
}

.cs-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.75rem 0 0;
    padding: 1.15rem 0 0;
    border-top: 1px solid var(--site-line);
}

.cs-facts dt {
    margin: 0;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--site-muted);
}

.cs-facts dd {
    margin: 0.3rem 0 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--site-ink);
    line-height: 1.4;
}

.cs-facts__wide {
    grid-column: 1 / -1;
}

.cs-stack {
    list-style: none;
    margin: 1.25rem 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.cs-stack li {
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    border: 1px solid var(--site-line);
    background: rgba(255, 255, 255, 0.75);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--site-ink-soft);
}

.cs-highlights {
    background: var(--site-ink);
    color: #fff;
    padding: 1.75rem 0;
}

.cs-highlights__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.cs-highlights__item {
    text-align: center;
    padding: 0.35rem 0.5rem;
}

.cs-highlights__value {
    margin: 0;
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 700;
    letter-spacing: -0.03em;
}

.cs-highlights__label {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.65);
    line-height: 1.35;
}

.cs-overview {
    max-width: 44rem;
}

.cs-overview__label {
    margin: 0 0 0.65rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--site-accent);
}

.cs-overview__text {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: -0.01em;
    color: var(--site-ink);
}

.cs-story {
    display: grid;
    gap: 1.75rem;
    max-width: 48rem;
}

.cs-story__block {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.1rem;
    padding: 1.35rem 1.4rem;
    background: var(--site-surface);
    border: 1px solid var(--site-line);
    border-radius: 1rem;
}

.cs-story__num {
    margin: 0.15rem 0 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--site-accent);
}

.cs-story__block h2 {
    margin: 0 0 0.5rem;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.015em;
}

.cs-story__block p {
    margin: 0;
    color: var(--site-ink-soft);
    font-size: 1rem;
    line-height: 1.65;
}

.cs-story__block ul {
    margin: 0.9rem 0 0;
    padding-left: 1.1rem;
    color: var(--site-ink-soft);
    font-size: 0.95rem;
    line-height: 1.5;
}

.cs-story__block li {
    margin-bottom: 0.35rem;
}

.cs-story__block li::marker {
    color: var(--site-accent);
}

.cs-features {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cs-features__item {
    padding: 1.25rem 1.2rem;
    background: var(--site-surface);
    border: 1px solid var(--site-line);
    border-radius: 1rem;
}

.cs-features__item--link {
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s var(--site-ease), border-color 0.25s ease, box-shadow 0.3s ease;
}

a.cs-features__item--link:hover {
    transform: translateY(-3px);
    border-color: rgba(225, 29, 72, 0.28);
    box-shadow: 0 14px 32px rgba(17, 19, 24, 0.07);
}

.sv-faq {
    display: grid;
    gap: 0.65rem;
    max-width: 46rem;
    margin-inline: auto;
}

.sv-hub__ideal {
    margin: 0.85rem 0 0;
    font-size: 0.875rem;
    color: var(--site-ink-soft);
    line-height: 1.45;
}

.sv-hub__ideal span {
    display: inline-block;
    margin-right: 0.35rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--site-accent);
}

.sv-hub__hints {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.sv-hub__hint {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 1.25rem 1.2rem;
    border-radius: 1rem;
    border: 1px solid var(--site-line);
    background: var(--site-surface);
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s var(--site-ease), border-color 0.25s ease, box-shadow 0.3s ease;
}

.sv-hub__hint:hover {
    transform: translateY(-3px);
    border-color: rgba(225, 29, 72, 0.28);
    box-shadow: 0 14px 32px rgba(17, 19, 24, 0.07);
}

.sv-hub__hint strong {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    line-height: 1.35;
}

.sv-hub__hint span {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--site-accent);
}

.cs-features--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cs-features--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cs-timeline--5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.cs-timeline--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* How we work — detailed process */
.hww-process {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 1rem;
}

.hww-process__item {
    padding: 1.35rem 1.3rem;
    background: var(--site-surface);
    border: 1px solid var(--site-line);
    border-radius: 1.1rem;
    animation: mk-in 0.75s var(--site-ease) both;
}

.hww-process__item:nth-child(2) { animation-delay: 0.05s; }
.hww-process__item:nth-child(3) { animation-delay: 0.1s; }
.hww-process__item:nth-child(4) { animation-delay: 0.15s; }
.hww-process__item:nth-child(5) { animation-delay: 0.2s; }

.hww-process__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.hww-process__phase {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--site-accent);
}

.hww-process__duration {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--site-muted);
}

.hww-process__item h3 {
    margin: 0 0 0.45rem;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--site-ink);
}

.hww-process__item > p {
    margin: 0;
    color: var(--site-ink-soft);
    font-size: 1rem;
    line-height: 1.6;
}

.hww-boundaries {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.hww-boundaries__col {
    padding: 1.35rem 1.3rem;
    background: var(--site-surface);
    border: 1px solid var(--site-line);
    border-radius: 1.1rem;
}

.hww-boundaries__col--muted {
    background: rgba(255, 255, 255, 0.45);
}

.hww-boundaries__col h3 {
    margin: 0 0 0.85rem;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.015em;
}

@media (min-width: 901px) {
    .hww-process {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hww-process__item:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
}

.mk-include-list {
    margin: 1rem 0 0;
    padding: 0 0 0 1.1rem;
    color: var(--site-ink-soft);
    font-size: 0.9rem;
    line-height: 1.5;
}

.mk-include-list li {
    margin-bottom: 0.35rem;
}

.mk-include-list li::marker {
    color: var(--site-accent);
}

.mk-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}

.mk-split__col h3 {
    margin: 0 0 0.85rem;
    font-size: 1.05rem;
    font-weight: 700;
}

.mk-team-card .mk-card__tag {
    margin-bottom: 0.5rem;
}

.cs-hub__card--static {
    cursor: default;
    pointer-events: none;
}

.cs-hub__card--static:hover {
    transform: none;
    border-color: var(--site-line);
    box-shadow: none;
}

.sv-faq__item {
    border: 1px solid var(--site-line);
    border-radius: 0.85rem;
    background: var(--site-surface);
    padding: 0 1.1rem;
}

.sv-faq__item[open] {
    border-color: rgba(225, 29, 72, 0.35);
}

.sv-faq__item summary {
    cursor: pointer;
    list-style: none;
    padding: 1rem 0;
    font-weight: 700;
    font-size: 0.975rem;
    letter-spacing: -0.01em;
}

.sv-faq__item summary::-webkit-details-marker {
    display: none;
}

.sv-faq__item summary::after {
    content: "+";
    float: right;
    color: var(--site-accent);
    font-weight: 700;
}

.sv-faq__item[open] summary::after {
    content: "–";
}

.sv-faq__item p {
    margin: 0 0 1rem;
    color: var(--site-muted);
    font-size: 0.9375rem;
    line-height: 1.6;
}

.sv-faq-more {
    margin: 1.25rem 0 0;
    text-align: center;
    font-size: 0.9rem;
}

.sv-faq-more a {
    color: var(--site-accent);
    font-weight: 700;
    text-decoration: none;
}

.sv-faq-more a:hover {
    text-decoration: underline;
}

.cs-features__item h3 {
    margin: 0 0 0.45rem;
    font-size: 1.05rem;
    font-weight: 700;
}

.cs-features__item p {
    margin: 0;
    color: var(--site-muted);
    font-size: 0.9375rem;
    line-height: 1.55;
}

.cs-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.cs-timeline__item {
    padding: 1.2rem 1.15rem;
    background: var(--site-surface);
    border: 1px solid var(--site-line);
    border-radius: 1rem;
    position: relative;
}

.cs-timeline__phase {
    display: block;
    margin-bottom: 0.55rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--site-accent);
}

.cs-timeline__item h3 {
    margin: 0 0 0.4rem;
    font-size: 1.05rem;
    font-weight: 700;
}

.cs-timeline__item p {
    margin: 0;
    color: var(--site-muted);
    font-size: 0.9rem;
    line-height: 1.5;
}

.cs-outcome {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 1.75rem;
    align-items: start;
    max-width: 52rem;
}

.cs-outcome h2 {
    margin: 0 0 0.65rem;
    font-size: clamp(1.5rem, 2.5vw, 1.85rem);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.cs-outcome > div > p {
    margin: 0;
    color: var(--site-ink-soft);
    font-size: 1.05rem;
    line-height: 1.65;
}

.cs-outcome__list {
    margin: 0;
    padding: 1.25rem 1.25rem 1.25rem 1.4rem;
    background: var(--site-surface);
    border: 1px solid var(--site-line);
    border-radius: 1rem;
    color: var(--site-ink-soft);
    font-size: 0.975rem;
    line-height: 1.5;
}

.cs-outcome__list li {
    margin-bottom: 0.55rem;
}

.cs-outcome__list li:last-child {
    margin-bottom: 0;
}

.cs-outcome__list li::marker {
    color: var(--site-accent);
}

.cs-quote {
    padding: 0 0 1rem;
}

.cs-quote__inner {
    max-width: 44rem;
}

.cs-quote blockquote {
    margin: 0;
    padding: 1.75rem 1.85rem;
    border-radius: 1.1rem;
    border: 1px solid rgba(225, 29, 72, 0.2);
    background:
        radial-gradient(400px 160px at 0% 0%, rgba(225, 29, 72, 0.08), transparent 60%),
        var(--site-surface);
}

.cs-quote blockquote p {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: -0.015em;
    color: var(--site-ink);
}

.cs-quote footer {
    margin-top: 1.1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.75rem;
    align-items: baseline;
}

.cs-quote cite {
    font-style: normal;
    font-weight: 700;
    font-size: 0.9rem;
}

.cs-quote footer span {
    font-size: 0.85rem;
    color: var(--site-muted);
}

.cs-related {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.cs-related--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cs-cta__eyebrow {
    margin: 0 0 0.35rem !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--site-accent);
}

.cs-hub__intro {
    margin: 1rem 0 0;
    font-size: 0.975rem;
    line-height: 1.6;
    color: var(--site-muted);
    max-width: 36rem;
}

.cs-hub__list {
    display: grid;
    gap: 1.15rem;
}

.cs-hub__card {
    display: block;
    padding: 1.5rem 1.5rem 1.4rem;
    background: var(--site-surface);
    border: 1px solid var(--site-line);
    border-radius: 1.1rem;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s var(--site-ease), border-color 0.25s ease, box-shadow 0.3s ease;
}

.cs-hub__card:hover {
    transform: translateY(-3px);
    border-color: rgba(225, 29, 72, 0.28);
    box-shadow: 0 16px 36px rgba(17, 19, 24, 0.07);
}

.cs-hub__card-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.cs-hub__duration {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--site-muted);
}

.cs-hub__card-title {
    margin: 0;
    font-size: clamp(1.35rem, 2.5vw, 1.65rem);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.cs-hub__card-summary {
    margin: 0.55rem 0 0;
    color: var(--site-ink-soft);
    font-size: 1rem;
    line-height: 1.6;
    max-width: 46rem;
}

.cs-hub__metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 1.2rem 0 0;
    padding: 1rem 0 0;
    border-top: 1px solid var(--site-line);
}

.cs-hub__metric-value {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.cs-hub__metric-label {
    margin: 0.2rem 0 0;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--site-muted);
    line-height: 1.3;
}

.cs-stack--compact {
    margin-top: 1rem;
}

.cs-hub__card .mk-card__more {
    display: inline-block;
    margin-top: 1.1rem;
}

/* Industries page */
.ind-stage {
    position: relative;
    isolation: isolate;
}

.ind-ambient {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.ind-ambient__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(17, 19, 24, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(17, 19, 24, 0.04) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: radial-gradient(ellipse 70% 55% at 50% 20%, #000 20%, transparent 75%);
}

.ind-ambient__blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(48px);
    opacity: 0.55;
    animation: ind-blob 18s ease-in-out infinite alternate;
}

.ind-ambient__blob--a {
    width: min(42vw, 420px);
    height: min(42vw, 420px);
    top: -4%;
    right: 8%;
    background: rgba(225, 29, 72, 0.16);
}

.ind-ambient__blob--b {
    width: min(36vw, 360px);
    height: min(36vw, 360px);
    top: 18%;
    left: -6%;
    background: rgba(17, 19, 24, 0.08);
    animation-delay: -6s;
    animation-duration: 22s;
}

.ind-ambient__glow {
    position: fixed;
    width: 280px;
    height: 280px;
    margin: -140px 0 0 -140px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(225, 29, 72, 0.14), transparent 68%);
    opacity: 0;
    transition: opacity 0.4s ease;
    left: 50%;
    top: 30%;
    z-index: 0;
}

.ind-ambient__glow.is-on {
    opacity: 1;
}

.ind-ambient__canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.ind-hero,
.ind-section,
.ind-stage > .mk-cta {
    position: relative;
    z-index: 1;
}

.ind-hero {
    padding: 3.25rem 0 2.25rem;
    animation: mk-in 0.85s var(--site-ease) both;
}

.ind-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 2rem;
    align-items: center;
}

.ind-hero__brand {
    margin: 0 0 0.65rem;
    font-family: var(--site-font-display);
    font-size: clamp(1.75rem, 3.5vw, 2.35rem);
    font-weight: 700;
    letter-spacing: -0.04em;
    line-height: 1.1;
    color: var(--site-ink);
}

.ind-hero__title {
    font-size: clamp(1.55rem, 3.2vw, 2.15rem);
    font-weight: 600;
    letter-spacing: -0.025em;
    color: var(--site-ink-soft);
}

.ind-hero__copy .mk-lead {
    max-width: 36rem;
}

.ind-icon {
    display: block;
}

.ind-icon--lg {
    width: 2.25rem;
    height: 2.25rem;
}

.ind-icon--xl {
    width: 2.75rem;
    height: 2.75rem;
}

.ind-orbit {
    position: relative;
    width: min(100%, 380px);
    aspect-ratio: 1;
    margin-inline: auto;
    animation: mk-in 1s var(--site-ease) both;
    animation-delay: 0.12s;
}

.ind-orbit__ring {
    position: absolute;
    inset: 8%;
    border-radius: 50%;
    border: 1px dashed rgba(17, 19, 24, 0.12);
    animation: ind-spin 48s linear infinite;
}

.ind-orbit__node {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 2.75rem;
    height: 2.75rem;
    margin: -1.375rem;
    padding: 0;
    border: 1px solid var(--site-line);
    border-radius: 50%;
    background: var(--site-surface);
    color: var(--site-ink-soft);
    cursor: pointer;
    display: grid;
    place-items: center;
    box-shadow: 0 6px 18px rgba(17, 19, 24, 0.06);
    transform:
        rotate(calc(var(--i) * 360deg / var(--n)))
        translateY(calc(-1 * min(38vw, 148px)))
        rotate(calc(var(--i) * -360deg / var(--n)));
    animation: ind-spin-rev 48s linear infinite;
    transition: color 0.25s var(--site-ease), border-color 0.25s var(--site-ease), background 0.25s var(--site-ease), box-shadow 0.25s var(--site-ease), scale 0.25s var(--site-ease);
}

.ind-orbit__node:hover,
.ind-orbit__node.is-active {
    color: var(--site-accent);
    border-color: var(--site-accent);
    background: #fff;
    box-shadow: 0 8px 22px rgba(225, 29, 72, 0.18);
    scale: 1.12;
    z-index: 2;
}

.ind-orbit__node.is-active .ind-icon {
    animation: ind-icon-pop 0.55s var(--site-ease);
}

.ind-orbit:hover .ind-orbit__ring,
.ind-orbit:focus-within .ind-orbit__ring,
.ind-orbit:hover .ind-orbit__node,
.ind-orbit:focus-within .ind-orbit__node {
    animation-play-state: paused;
}

.ind-orbit__core {
    position: absolute;
    inset: 32%;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, rgba(225, 29, 72, 0.12), transparent 55%),
        var(--site-surface);
    border: 1px solid var(--site-line);
    display: grid;
    place-items: center;
    color: var(--site-accent);
    box-shadow: 0 12px 36px rgba(17, 19, 24, 0.08);
    z-index: 1;
}

.ind-orbit__core.is-swap .ind-icon {
    animation: ind-icon-pop 0.5s var(--site-ease);
}

.ind-orbit__pulse {
    position: absolute;
    inset: 28%;
    border-radius: 50%;
    border: 1px solid rgba(225, 29, 72, 0.35);
    animation: ind-pulse 2.8s var(--site-ease) infinite;
    pointer-events: none;
}

.ind-section {
    padding-top: 1rem;
}

.ind-explorer {
    animation: mk-in 0.85s var(--site-ease) both;
    animation-delay: 0.06s;
}

.ind-explorer__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.ind-filter {
    margin: 0;
    padding: 0.45rem 0.9rem;
    border: 1px solid var(--site-line);
    border-radius: 0.35rem;
    background: rgba(255, 255, 255, 0.82);
    color: var(--site-ink-soft);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    backdrop-filter: blur(6px);
    transition: border-color 0.2s var(--site-ease), color 0.2s var(--site-ease), background 0.2s var(--site-ease), transform 0.2s var(--site-ease);
}

.ind-filter:hover {
    border-color: var(--site-ink);
    color: var(--site-ink);
}

.ind-filter.is-active {
    border-color: var(--site-accent);
    background: var(--site-accent-soft);
    color: var(--site-accent);
    transform: translateY(-1px);
}

.ind-explorer__body {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 1.25rem;
    align-items: start;
}

.ind-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--site-line);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(8px);
    overflow: hidden;
}

.ind-list__item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.85rem;
    align-items: start;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--site-line);
    cursor: pointer;
    animation: mk-in 0.55s var(--site-ease) both;
    animation-delay: calc(0.04s * var(--stagger, 0));
    transition: background 0.2s var(--site-ease), box-shadow 0.2s var(--site-ease);
}

.ind-list__item:last-child {
    border-bottom: none;
}

.ind-list__item:hover {
    background: rgba(225, 29, 72, 0.04);
}

.ind-list__item.is-selected {
    background: var(--site-accent-soft);
    box-shadow: inset 3px 0 0 var(--site-accent);
}

.ind-list__item:focus-visible {
    outline: 2px solid var(--site-accent);
    outline-offset: -2px;
}

.ind-list__item.is-filtered-out {
    display: none;
}

.ind-list__icon {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.65rem;
    border: 1px solid var(--site-line);
    background: var(--site-surface);
    color: var(--site-ink-soft);
    display: grid;
    place-items: center;
    transition: color 0.25s var(--site-ease), border-color 0.25s var(--site-ease), background 0.25s var(--site-ease), transform 0.25s var(--site-ease);
}

.ind-list__item.is-selected .ind-list__icon {
    color: var(--site-accent);
    border-color: rgba(225, 29, 72, 0.35);
    background: #fff;
    transform: scale(1.06);
}

.ind-list__item.is-selected .ind-list__icon .ind-icon {
    animation: ind-icon-pop 0.45s var(--site-ease);
}

.ind-list__name {
    display: block;
    font-family: var(--site-font-display);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--site-ink);
}

.ind-list__summary {
    display: block;
    margin-top: 0.3rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--site-muted);
}

.ind-list__mobile-detail {
    grid-column: 1 / -1;
    margin-top: 0.35rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--site-line);
}

.ind-list__mobile-detail[hidden] {
    display: none;
}

.ind-panel {
    padding: 1.5rem 1.6rem;
    border: 1px solid var(--site-line);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(8px);
    position: sticky;
    top: 5.5rem;
    overflow: hidden;
}

.ind-panel.is-changing .ind-panel__title,
.ind-panel.is-changing .ind-panel__detail,
.ind-panel.is-changing .ind-panel__builds {
    animation: ind-fade-up 0.4s var(--site-ease);
}

.ind-panel__visual {
    position: relative;
    width: 4.5rem;
    height: 4.5rem;
    margin-bottom: 1.1rem;
    display: grid;
    place-items: center;
}

.ind-panel__icon-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px solid rgba(225, 29, 72, 0.25);
    animation: ind-spin 16s linear infinite;
}

.ind-panel__icon-ring::before {
    content: "";
    position: absolute;
    top: -3px;
    left: 50%;
    width: 6px;
    height: 6px;
    margin-left: -3px;
    border-radius: 50%;
    background: var(--site-accent);
}

.ind-panel__icon {
    position: relative;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--site-accent);
    background: var(--site-accent-soft);
    border: 1px solid rgba(225, 29, 72, 0.2);
}

.ind-panel__icon.is-swap {
    animation: ind-icon-pop 0.5s var(--site-ease);
}

.ind-panel__group {
    margin: 0 0 0.55rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--site-accent);
}

.ind-panel__title {
    margin: 0;
    font-family: var(--site-font-display);
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.ind-panel__detail {
    margin: 0.85rem 0 0;
    font-size: 0.975rem;
    line-height: 1.65;
    color: var(--site-ink-soft);
}

.ind-panel__builds-label {
    margin: 1.25rem 0 0.55rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--site-muted);
}

.ind-panel__builds li {
    animation: ind-fade-up 0.4s var(--site-ease) both;
}

.ind-panel__builds li:nth-child(2) { animation-delay: 0.05s; }
.ind-panel__builds li:nth-child(3) { animation-delay: 0.1s; }

.ind-panel__cta {
    margin-top: 1.35rem;
}

.ind-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1.35rem;
}

.ind-panel__actions .ind-panel__cta {
    margin-top: 0;
}

.ind-list__open {
    display: inline-block;
    margin-top: 0.45rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--site-accent);
    text-decoration: none;
}

.ind-list__open:hover {
    text-decoration: underline;
}

/* Industry detail experience */
.ix {
    --ix-accent: #e11d48;
    --ix-accent-soft: rgba(225, 29, 72, 0.12);
    --ix-deep: #0f1218;
    position: relative;
    isolation: isolate;
    color: var(--site-ink);
    overflow: clip;
}

.ix[data-industry="education"] { --ix-accent: #e11d48; --ix-tint: rgba(225, 29, 72, 0.14); }
.ix[data-industry="healthcare"] { --ix-accent: #0d9488; --ix-tint: rgba(13, 148, 136, 0.14); }
.ix[data-industry="fintech"] { --ix-accent: #2563eb; --ix-tint: rgba(37, 99, 235, 0.12); }
.ix[data-industry="retail"] { --ix-accent: #ea580c; --ix-tint: rgba(234, 88, 12, 0.12); }
.ix[data-industry="real-estate"] { --ix-accent: #0f766e; --ix-tint: rgba(15, 118, 110, 0.14); }
.ix[data-industry="logistics"] { --ix-accent: #0891b2; --ix-tint: rgba(8, 145, 178, 0.12); }
.ix[data-industry="food-restaurants"] { --ix-accent: #c2410c; --ix-tint: rgba(194, 65, 12, 0.12); }
.ix[data-industry="travel-hospitality"] { --ix-accent: #0284c7; --ix-tint: rgba(2, 132, 199, 0.12); }
.ix[data-industry="on-demand"] { --ix-accent: #ea580c; --ix-tint: rgba(234, 88, 12, 0.12); }
.ix[data-industry="saas-b2b"] { --ix-accent: #e11d48; --ix-tint: rgba(225, 29, 72, 0.12); }

.ix .mk-btn--solid {
    background: var(--ix-accent);
    border-color: var(--ix-accent);
}

.ix .mk-btn--solid:hover {
    filter: brightness(0.92);
}

.ix .mk-label {
    color: var(--ix-accent);
}

.ix-ambient {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.ix-ambient__mesh {
    position: absolute;
    inset: -10%;
    background:
        radial-gradient(ellipse 50% 40% at 70% 10%, var(--ix-tint), transparent 60%),
        radial-gradient(ellipse 45% 35% at 10% 30%, rgba(17, 19, 24, 0.06), transparent 55%),
        linear-gradient(180deg, #f7f8fa 0%, #eef0f4 40%, #f4f5f7 100%);
    animation: ix-mesh 16s ease-in-out infinite alternate;
}

.ix-ambient__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(50px);
    opacity: 0.55;
    animation: ix-orb 20s ease-in-out infinite alternate;
}

.ix-ambient__orb--a {
    width: min(48vw, 460px);
    height: min(48vw, 460px);
    top: -8%;
    right: -4%;
    background: var(--ix-tint);
}

.ix-ambient__orb--b {
    width: min(36vw, 340px);
    height: min(36vw, 340px);
    top: 35%;
    left: -8%;
    background: rgba(17, 19, 24, 0.08);
    animation-delay: -7s;
}

.ix-ambient__orb--c {
    width: min(28vw, 260px);
    height: min(28vw, 260px);
    bottom: 12%;
    right: 18%;
    background: var(--ix-tint);
    animation-delay: -12s;
    animation-duration: 24s;
}

.ix-ambient__canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.ix-ambient__glow {
    position: fixed;
    width: 320px;
    height: 320px;
    margin: -160px 0 0 -160px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--ix-tint), transparent 70%);
    opacity: 0;
    transition: opacity 0.35s ease;
    z-index: 0;
    left: 50%;
    top: 30%;
}

.ix-ambient__glow.is-on {
    opacity: 1;
}

.ix-ambient__scan {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        105deg,
        transparent 40%,
        rgba(255, 255, 255, 0.18) 50%,
        transparent 60%
    );
    background-size: 200% 100%;
    animation: ix-scan 9s linear infinite;
    opacity: 0.35;
    mix-blend-mode: soft-light;
}

.ix-motifs {
    position: absolute;
    inset: 0;
}

.ix-motif {
    position: absolute;
    width: 2.25rem;
    height: 2.25rem;
    color: var(--ix-accent);
    opacity: 0.22;
    animation: ix-float 12s ease-in-out infinite;
}

.ix-motif svg {
    width: 100%;
    height: 100%;
    display: block;
}

.ix-hero,
.ix-rail,
.ix-block,
.ix-cta {
    position: relative;
    z-index: 1;
}

.ix-hero {
    padding: 3.5rem 0 2.5rem;
    min-height: min(88vh, 760px);
    display: flex;
    align-items: center;
}

.ix-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 2.5rem;
    align-items: center;
    width: min(100% - 2.5rem, var(--site-max));
}

.ix-hero__crumbs a {
    color: var(--site-ink-soft);
}

.ix-hero__brand {
    margin: 0.35rem 0 0.5rem;
    font-family: var(--site-font-display);
    font-size: clamp(2rem, 4.5vw, 3rem);
    font-weight: 700;
    letter-spacing: -0.045em;
    line-height: 1.05;
    color: var(--site-ink);
    animation: ix-rise 0.9s var(--site-ease) both;
}

.ix-hero__title {
    margin: 0.35rem 0 0;
    font-family: var(--site-font-display);
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 600;
    letter-spacing: -0.03em;
    line-height: 1.2;
    color: var(--site-ink-soft);
    animation: ix-rise 0.9s var(--site-ease) 0.08s both;
}

.ix-hero__lead {
    margin: 1rem 0 0;
    max-width: 36rem;
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--site-ink-soft);
    animation: ix-rise 0.9s var(--site-ease) 0.14s both;
}

.ix-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin: 1.35rem 0 0;
    animation: ix-rise 0.9s var(--site-ease) 0.2s both;
}

.ix-chip {
    display: inline-flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.55rem 0.8rem;
    border: 1px solid var(--site-line);
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(8px);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--site-ink);
}

.ix-chip em {
    font-style: normal;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ix-accent);
}

.ix-hero__copy .mk-actions {
    margin-top: 1.5rem;
    animation: ix-rise 0.9s var(--site-ease) 0.26s both;
}

.ix-hero__stage {
    position: relative;
    aspect-ratio: 1;
    width: min(100%, 400px);
    margin-inline: auto;
    animation: ix-rise 1s var(--site-ease) 0.12s both;
}

.ix-hero__ring {
    position: absolute;
    inset: 8%;
    border-radius: 50%;
    border: 1px dashed color-mix(in srgb, var(--ix-accent) 45%, transparent);
    animation: ix-spin 28s linear infinite;
}

.ix-hero__ring--delay {
    inset: 18%;
    animation-direction: reverse;
    animation-duration: 36s;
    opacity: 0.55;
}

.ix-hero__core {
    position: absolute;
    inset: 30%;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--ix-accent);
    background:
        radial-gradient(circle at 32% 28%, var(--ix-tint), transparent 55%),
        rgba(255, 255, 255, 0.92);
    border: 1px solid var(--site-line);
    box-shadow: 0 18px 48px rgba(17, 19, 24, 0.1);
    animation: ix-pulse-core 3.2s var(--site-ease) infinite;
}

.ix-hero__core .ind-icon {
    width: 3rem;
    height: 3rem;
    animation: ix-icon-bob 3.6s ease-in-out infinite;
}

.ix-hero__float {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ix-hero__float-item {
    position: absolute;
    top: 50%;
    left: 50%;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    border: 1px solid var(--site-line);
    background: rgba(255, 255, 255, 0.9);
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--site-ink-soft);
    white-space: nowrap;
    box-shadow: 0 8px 20px rgba(17, 19, 24, 0.06);
    transform:
        rotate(calc(var(--i) * 60deg))
        translateY(-11.5rem)
        rotate(calc(var(--i) * -60deg));
    animation: ix-float-tag 5s ease-in-out infinite;
    animation-delay: calc(var(--i) * 0.35s);
}

.ix-rail {
    border-block: 1px solid var(--site-line);
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: blur(8px);
    overflow: hidden;
}

.ix-rail__track {
    display: flex;
    gap: 2.5rem;
    width: max-content;
    padding: 1rem 0;
    animation: ix-marquee 32s linear infinite;
}

.ix-rail:hover .ix-rail__track {
    animation-play-state: paused;
}

.ix-rail__item {
    display: flex;
    align-items: baseline;
    gap: 0.65rem;
    white-space: nowrap;
}

.ix-rail__value {
    font-family: var(--site-font-display);
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--ix-accent);
}

.ix-rail__label {
    font-size: 0.875rem;
    color: var(--site-muted);
}

.ix-block {
    padding: 4rem 0;
}

.ix-block--tint {
    background: rgba(255, 255, 255, 0.4);
}

.ix-kicker {
    margin: 0 0 0.55rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--ix-accent);
}

.ix-head {
    max-width: 40rem;
    margin-bottom: 2rem;
}

.ix-head h2 {
    margin: 0;
    font-family: var(--site-font-display);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    letter-spacing: -0.03em;
}

.ix-head p {
    margin: 0.75rem 0 0;
    color: var(--site-ink-soft);
    line-height: 1.6;
}

.ix-overview__text {
    margin: 0;
    max-width: 48rem;
    font-size: clamp(1.15rem, 2.2vw, 1.45rem);
    line-height: 1.65;
    letter-spacing: -0.015em;
    color: var(--site-ink);
}

.ix-challenge-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.ix-challenge {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    align-items: start;
    padding: 1.1rem 1.25rem;
    border: 1px solid var(--site-line);
    border-radius: 1rem;
    background: rgba(255, 255, 255, 0.85);
    transition: transform 0.25s var(--site-ease), border-color 0.25s var(--site-ease), box-shadow 0.25s var(--site-ease);
    animation: ix-rise 0.6s var(--site-ease) both;
    animation-delay: calc(var(--i) * 0.06s);
}

.ix-challenge:hover {
    transform: translateX(6px);
    border-color: color-mix(in srgb, var(--ix-accent) 40%, var(--site-line));
    box-shadow: 0 12px 28px rgba(17, 19, 24, 0.06);
}

.ix-challenge__n {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--ix-accent);
}

.ix-challenge p {
    margin: 0;
    color: var(--site-ink-soft);
    line-height: 1.55;
}

.ix-caps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.ix-cap {
    position: relative;
    overflow: hidden;
    padding: 1.35rem 1.4rem;
    border: 1px solid var(--site-line);
    border-radius: 1.15rem;
    background: rgba(255, 255, 255, 0.88);
    transition: transform 0.3s var(--site-ease), border-color 0.3s var(--site-ease);
    animation: ix-rise 0.65s var(--site-ease) both;
    animation-delay: calc(var(--i) * 0.05s);
}

.ix-cap:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--ix-accent) 45%, var(--site-line));
}

.ix-cap::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(180px circle at var(--mx, 80%) var(--my, 80%), var(--ix-tint), transparent 55%);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.ix-cap:hover::after {
    opacity: 1;
}

.ix-cap__tag {
    margin: 0 0 0.55rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ix-accent);
}

.ix-cap h3 {
    margin: 0;
    font-size: 1.05rem;
}

.ix-cap p {
    margin: 0.55rem 0 0;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--site-ink-soft);
}

.ix-cap__glow {
    position: absolute;
    width: 140px;
    height: 140px;
    right: -40px;
    bottom: -50px;
    border-radius: 50%;
    background: var(--ix-tint);
    filter: blur(20px);
    opacity: 0;
    transition: opacity 0.35s ease;
}

.ix-cap:hover .ix-cap__glow {
    opacity: 1;
}

.ix-scenarios {
    display: grid;
    gap: 0.75rem;
}

.ix-scenario {
    border: 1px solid var(--site-line);
    border-radius: 1.1rem;
    background: rgba(255, 255, 255, 0.88);
    overflow: hidden;
    transition: border-color 0.25s var(--site-ease);
}

.ix-scenario.is-active {
    border-color: color-mix(in srgb, var(--ix-accent) 50%, var(--site-line));
    box-shadow: 0 14px 36px rgba(17, 19, 24, 0.07);
}

.ix-scenario__tab {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin: 0;
    padding: 1rem 1.2rem;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.ix-scenario__n {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--ix-accent);
}

.ix-scenario__title {
    font-weight: 700;
    color: var(--site-ink);
}

.ix-scenario__panel {
    display: none;
    padding: 0 1.2rem 1.2rem;
    border-top: 1px solid var(--site-line);
}

.ix-scenario.is-active .ix-scenario__panel {
    display: grid;
    gap: 0.75rem;
    animation: ix-rise 0.4s var(--site-ease);
}

.ix-scenario__panel p {
    margin: 0.85rem 0 0;
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--site-ink-soft);
}

.ix-scenario__panel span {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ix-accent);
}

.ix-scenario__out span {
    color: var(--site-ink);
}

.ix-cases {
    display: grid;
    gap: 1.25rem;
}

.ix-case {
    padding: 1.5rem;
    border: 1px solid var(--site-line);
    border-radius: 1.25rem;
    background:
        linear-gradient(135deg, var(--ix-tint), transparent 42%),
        rgba(255, 255, 255, 0.9);
    transition: transform 0.3s var(--site-ease);
    animation: ix-rise 0.65s var(--site-ease) both;
    animation-delay: calc(var(--i) * 0.08s);
}

.ix-case:hover {
    transform: translateY(-4px);
}

.ix-case__top h3 {
    margin: 0.4rem 0 0;
    font-size: 1.25rem;
    letter-spacing: -0.02em;
}

.ix-case__cols {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.15rem;
}

.ix-case__cols h4 {
    margin: 0 0 0.35rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--site-muted);
}

.ix-case__cols p {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--site-ink-soft);
}

.ix-stack {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    list-style: none;
    margin: 1.1rem 0 0;
    padding: 0;
}

.ix-stack li {
    padding: 0.3rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--site-line);
    background: rgba(255, 255, 255, 0.8);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--site-ink-soft);
}

.ix-process {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.ix-process__item {
    position: relative;
    padding: 1.25rem;
    border: 1px solid var(--site-line);
    border-radius: 1.1rem;
    background: rgba(255, 255, 255, 0.88);
    animation: ix-rise 0.6s var(--site-ease) both;
    animation-delay: calc(var(--i) * 0.08s);
}

.ix-process__item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 1.25rem;
    right: 1.25rem;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--ix-accent), transparent);
    transform-origin: left;
    animation: ix-bar 1.2s var(--site-ease) both;
    animation-delay: calc(0.2s + var(--i) * 0.1s);
}

.ix-process__phase {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--ix-accent);
}

.ix-process__item h3 {
    margin: 0.45rem 0 0;
    font-size: 1.05rem;
}

.ix-process__item p {
    margin: 0.5rem 0 0;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--site-ink-soft);
}

.ix-outcome {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 2rem;
    align-items: start;
}

.ix-outcome h2 {
    margin: 0;
    font-family: var(--site-font-display);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    letter-spacing: -0.03em;
}

.ix-outcome > div > p:last-child {
    margin: 0.75rem 0 0;
    color: var(--site-ink-soft);
    line-height: 1.6;
}

.ix-outcome__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.ix-outcome__list li {
    padding: 1rem 1.15rem;
    border-left: 3px solid var(--ix-accent);
    border-radius: 0 0.85rem 0.85rem 0;
    background: rgba(255, 255, 255, 0.85);
    color: var(--site-ink-soft);
    line-height: 1.5;
}

.ix-faq {
    display: grid;
    gap: 0.65rem;
    max-width: 48rem;
}

.ix-faq__item {
    border: 1px solid var(--site-line);
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.88);
    padding: 0.15rem 1rem;
}

.ix-faq__item summary {
    cursor: pointer;
    padding: 0.9rem 0;
    font-weight: 700;
    list-style: none;
}

.ix-faq__item summary::-webkit-details-marker {
    display: none;
}

.ix-faq__item p {
    margin: 0 0 1rem;
    color: var(--site-ink-soft);
    line-height: 1.55;
}

.ix-related {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.ix-related__card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.85rem;
    align-items: start;
    padding: 1.15rem;
    border: 1px solid var(--site-line);
    border-radius: 1.1rem;
    background: rgba(255, 255, 255, 0.88);
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s var(--site-ease), border-color 0.25s var(--site-ease);
}

.ix-related__card:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--ix-accent) 40%, var(--site-line));
}

.ix-related__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.7rem;
    display: grid;
    place-items: center;
    color: var(--ix-accent);
    background: var(--ix-tint);
}

.ix-related__body {
    display: grid;
    gap: 0.25rem;
}

.ix-related__body strong {
    font-size: 1rem;
}

.ix-related__body span {
    font-size: 0.875rem;
    color: var(--site-muted);
    line-height: 1.45;
}

.ix-cta {
    padding: 2.5rem 0 4rem;
}

.ix-cta__box {
    padding: 2.25rem;
    border-radius: 1.5rem;
    border: 1px solid var(--site-line);
    background:
        radial-gradient(circle at 20% 20%, var(--ix-tint), transparent 45%),
        rgba(255, 255, 255, 0.92);
    text-align: center;
}

.ix-cta__brand {
    margin: 0;
    font-family: var(--site-font-display);
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.03em;
}

.ix-cta__text {
    margin: 0.65rem auto 0;
    max-width: 34rem;
    color: var(--site-ink-soft);
    line-height: 1.55;
}

.ix-cta__actions {
    justify-content: center;
    margin-top: 1.35rem;
}

.ix-reveal {
    opacity: 0;
    transform: translateY(1.25rem);
    transition: opacity 0.7s var(--site-ease), transform 0.7s var(--site-ease);
}

.ix-reveal.is-in {
    opacity: 1;
    transform: none;
}

@keyframes ix-rise {
    from { opacity: 0; transform: translateY(0.9rem); }
    to { opacity: 1; transform: none; }
}

@keyframes ix-spin {
    to { transform: rotate(360deg); }
}

@keyframes ix-mesh {
    from { transform: scale(1) translate3d(0, 0, 0); }
    to { transform: scale(1.05) translate3d(-1.5%, 1%, 0); }
}

@keyframes ix-orb {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to { transform: translate3d(24px, 30px, 0) scale(1.08); }
}

@keyframes ix-scan {
    from { background-position: 120% 0; }
    to { background-position: -120% 0; }
}

@keyframes ix-float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-18px) rotate(8deg); }
}

@keyframes ix-float-tag {
    0%, 100% { translate: 0 0; }
    50% { translate: 0 -8px; }
}

@keyframes ix-pulse-core {
    0%, 100% { box-shadow: 0 18px 48px rgba(17, 19, 24, 0.1); }
    50% { box-shadow: 0 18px 48px rgba(17, 19, 24, 0.1), 0 0 0 12px var(--ix-tint); }
}

@keyframes ix-icon-bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}

@keyframes ix-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

@keyframes ix-bar {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

@keyframes mk-in {
    from {
        opacity: 0;
        transform: translateY(0.75rem);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes ind-spin {
    to { transform: rotate(360deg); }
}

@keyframes ind-spin-rev {
    to {
        transform:
            rotate(calc(var(--i) * 360deg / var(--n) - 360deg))
            translateY(calc(-1 * min(38vw, 148px)))
            rotate(calc(var(--i) * -360deg / var(--n) + 360deg));
    }
}

@keyframes ind-pulse {
    0% { transform: scale(0.92); opacity: 0.7; }
    70% { transform: scale(1.18); opacity: 0; }
    100% { transform: scale(1.18); opacity: 0; }
}

@keyframes ind-blob {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to { transform: translate3d(18px, 24px, 0) scale(1.08); }
}

@keyframes ind-icon-pop {
    0% { transform: scale(0.7) rotate(-8deg); opacity: 0.4; }
    60% { transform: scale(1.12) rotate(3deg); opacity: 1; }
    100% { transform: scale(1) rotate(0); opacity: 1; }
}

@keyframes ind-fade-up {
    from { opacity: 0; transform: translateY(0.4rem); }
    to { opacity: 1; transform: none; }
}

@media (max-width: 900px) {
    .ind-hero__grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .ind-orbit {
        width: min(100%, 300px);
        order: -1;
    }

    .ind-orbit__node {
        width: 2.4rem;
        height: 2.4rem;
        margin: -1.2rem;
    }

    .ind-explorer__body {
        grid-template-columns: 1fr;
    }

    .ind-panel {
        display: none;
    }

    .ind-list__item.is-selected .ind-list__mobile-detail:not([hidden]) {
        display: block;
    }

    .ix-hero__grid,
    .ix-caps,
    .ix-case__cols,
    .ix-process,
    .ix-outcome,
    .ix-related {
        grid-template-columns: 1fr;
    }

    .ix-hero {
        min-height: 0;
        padding-top: 2.5rem;
    }

    .ix-hero__stage {
        width: min(100%, 300px);
        order: -1;
    }

    .ix-hero__float-item {
        transform:
            rotate(calc(var(--i) * 60deg))
            translateY(-8.5rem)
            rotate(calc(var(--i) * -60deg));
        font-size: 0.62rem;
    }

    .ix-caps {
        grid-template-columns: 1fr;
    }

    .mk-grid,
    .mk-grid--2,
    .mk-grid--3,
    .cs-highlights__grid,
    .cs-facts,
    .cs-features,
    .cs-timeline,
    .cs-timeline--5,
    .cs-timeline--4,
    .cs-outcome,
    .cs-related,
    .cs-related--3,
    .mk-split,
    .hww-boundaries {
        grid-template-columns: 1fr;
    }

    .cs-hub__metrics,
    .sv-hub__hints,
    .cs-features--3,
    .cs-features--2 {
        grid-template-columns: 1fr;
    }

    .cs-story__block {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }
}

@media (min-width: 641px) and (max-width: 900px) {
    .ix-caps,
    .ix-process,
    .ix-related {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ix-case__cols {
        grid-template-columns: 1fr;
    }

    .mk-grid,
    .mk-grid--2,
    .mk-grid--3,
    .cs-highlights__grid,
    .cs-facts,
    .cs-features,
    .cs-timeline,
    .cs-related,
    .mk-split,
    .cs-features--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cs-timeline--5,
    .cs-timeline--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hww-process {
        grid-template-columns: 1fr;
    }

    .cs-related--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cs-hub__metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sv-hub__hints,
    .cs-features--3 {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mk-hero,
    .cs-hero,
    .hww-process__item,
    .ind-explorer,
    .ind-hero,
    .ind-orbit,
    .ind-list__item,
    .ind-ambient__blob,
    .ind-orbit__ring,
    .ind-orbit__node,
    .ind-orbit__pulse,
    .ind-panel__icon-ring,
    .ix-ambient__mesh,
    .ix-ambient__orb,
    .ix-ambient__scan,
    .ix-motif,
    .ix-hero__ring,
    .ix-hero__core,
    .ix-hero__core .ind-icon,
    .ix-hero__float-item,
    .ix-rail__track,
    .ix-challenge,
    .ix-cap,
    .ix-case,
    .ix-process__item,
    .ix-process__item::before,
    .ix-hero__brand,
    .ix-hero__title,
    .ix-hero__lead,
    .ix-hero__meta,
    .ix-hero__copy .mk-actions,
    .ix-hero__stage {
        animation: none;
    }

    .ix-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .mk-card:hover {
        transform: none;
    }

    .ind-filter,
    .ind-list__item,
    .ind-orbit__node,
    .ind-list__icon {
        transition: none;
    }

    .ind-ambient__canvas,
    .ind-ambient__glow,
    .ix-ambient__canvas,
    .ix-ambient__glow,
    .ix-motifs {
        display: none;
    }
}

/* —— Locations hub —— */
.loc-hero {
    --loc-ink: #0f172a;
    --loc-blue: #1d4e89;
    --loc-line: rgba(29, 78, 137, 0.14);
    position: relative;
    overflow: hidden;
    padding: 3rem 0 3.5rem;
    border-bottom: 1px solid var(--loc-line);
    background: linear-gradient(180deg, #fbfcfe 0%, #f4f6f9 100%);
    animation: mk-in 0.9s var(--site-ease) both;
}

.loc-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, 460px);
    gap: 2.5rem 3.5rem;
    align-items: center;
}

.loc-hero__copy {
    max-width: 36rem;
}

.loc-hero .mk-label {
    color: var(--loc-blue);
}

.loc-hero__brand {
    margin: 0 0 0.5rem;
    font-family: var(--site-font-display);
    font-size: clamp(1.65rem, 3vw, 2.05rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--loc-ink);
}

.loc-hero__title {
    margin: 0;
    font-family: var(--site-font-display);
    font-weight: 700;
    font-size: clamp(2rem, 4vw, 2.75rem);
    line-height: 1.08;
    letter-spacing: -0.04em;
    color: var(--loc-ink);
}

.loc-hero__lead {
    margin: 1rem 0 0;
    max-width: 32rem;
    font-size: 1.05rem;
    line-height: 1.65;
    color: var(--site-ink-soft);
}

.loc-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 1.4rem 0 0;
    padding: 0;
    list-style: none;
}

.loc-hero__meta li {
    padding: 0.38rem 0.75rem;
    border: 1px solid var(--loc-line);
    border-radius: 0.25rem;
    background: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--loc-blue);
}

.loc-hero__meta strong {
    color: var(--loc-ink);
}

.loc-hero__actions {
    margin-top: 1.5rem;
}

.loc-globe-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.65rem;
    background: transparent;
}

.loc-globe {
    position: relative;
    width: 100%;
    max-width: 460px;
    aspect-ratio: 1;
    overflow: visible;
    background: transparent;
    border: 0;
    box-shadow: none;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.65s var(--site-ease), transform 0.65s var(--site-ease);
}

.loc-globe.is-ready {
    opacity: 1;
    transform: none;
}

.loc-globe__stage {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: transparent;
}

.loc-globe__stage canvas {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    background: transparent !important;
}

.loc-globe__labels {
    overflow: visible;
}

.loc-globe__label {
    --baseColor: rgb(255, 250, 250);
    box-sizing: border-box;
    width: 200px;
    height: 52px;
    margin-top: -26px;
    margin-left: 100px;
    padding: 0.45rem 1.75rem 0.45rem 0.65rem;
    overflow: hidden;
    color: var(--baseColor);
    font-size: 0.78rem;
    line-height: 1.25;
    background: rgba(15, 23, 42, 0.82);
    border: 1px solid rgba(255, 250, 250, 0.55);
    border-radius: 0.35rem;
}

.loc-globe__label.hidden {
    display: none;
}

.loc-globe__label-close {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 0.2rem;
    background: transparent;
    color: #fff;
    font-size: 0.85rem;
    line-height: 1;
    cursor: pointer;
}

.loc-globe__label-link {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    color: inherit;
    text-decoration: none;
}

.loc-globe__label-link strong {
    font-size: 0.85rem;
    font-weight: 700;
}

.loc-globe__label-link span {
    opacity: 0.8;
    font-size: 0.72rem;
}

.loc-globe__hint {
    margin: 0;
    text-align: center;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--site-muted);
}

.loc-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.loc-strip__item {
    padding: 1.25rem 1.3rem;
    border: 1px solid var(--loc-line);
    border-radius: 0.35rem;
    background: #fff;
}

.loc-strip__item h2 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--loc-ink);
}

.loc-strip__item p {
    margin: 0.45rem 0 0;
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--site-ink-soft);
}

@media (max-width: 900px) {
    .loc-hero {
        padding: 2.25rem 0 2.75rem;
    }

    .loc-hero__grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .loc-globe-panel {
        order: -1;
        width: 100%;
        max-width: 460px;
        margin-inline: auto;
    }

    .loc-strip {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .loc-hero,
    .loc-globe {
        animation: none;
        transition: none;
        opacity: 1;
        transform: none;
    }
}
