/* Base Reset & Variables */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --bg-color: #171719;
    --text-primary: #ffffff;
    --text-secondary: #a0a0a0;
    --accent-color: #FBBC05;
    --btn-bg: #2a2a2c;
    --font-main: 'Inter', sans-serif;
}

::selection {
    background-color: var(--accent-color);
    color: #171719;
}

/* overflow-x lives on html, not body: setting only overflow-x on body
   makes the UA compute its overflow-y as auto (per spec, a non-visible
   x-axis forces the other axis off "visible" too), turning body into an
   inert scroll container. That silently breaks position:sticky on every
   descendant, since the nearest "scrolling ancestor" becomes body
   (which never actually scrolls) instead of the real viewport. */
html {
    overflow-x: hidden;
}

body {
    background-color: var(--bg-color);
    color: var(--text-primary);
    font-family: var(--font-main);
    min-height: 100vh;
    position: relative;
    padding-top: 92px;
}

/* Subtle background glow on the left.
   Fixed 500px width + left:-10% pushes its right edge past the viewport
   on any screen narrower than ~460px, and since body has no overflow-x
   of its own (see the comment on html's overflow-x above), that silently
   widens the whole page's scrollable width — showing up as dead space
   on the right on mobile. Shrink it under 600px so it never overflows. */
.bg-glow {
    position: absolute;
    top: 20%;
    left: -10%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(251, 188, 5, 0.08) 0%, rgba(23, 23, 25, 0) 70%);
    z-index: -1;
    pointer-events: none;
}

@media (max-width: 600px) {
    .bg-glow {
        width: 220px;
        height: 220px;
        left: -60px;
    }
}

/* Header Styles */
header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 92px;
    padding: 0 9%;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    background-color: transparent;
    border-bottom: 1px solid transparent;
    z-index: 1000;
    transition: background-color 0.4s ease, backdrop-filter 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}

/* Transparent at rest (body's own background-color is identical to
   --bg-color, so this reads as solid until something actually scrolls
   underneath it) and condenses into a blurred glass bar once the page
   scrolls, so nav text stays legible over whatever content passes
   behind the fixed header (see initHeaderScrollState in script.js). */
header.is-scrolled {
    background-color: color-mix(in srgb, var(--bg-color) 72%, transparent);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
}

header > a {
    transition: opacity 0.25s ease;
}

header > a:hover {
    opacity: 0.8;
}

@media (prefers-reduced-motion: reduce) {
    header {
        transition: none;
    }
}

.logo {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: 1px;
    font-style: italic;
    display: flex;
    align-items: center;
}

.logo img {
    height: 82px;
    width: auto;
    display: block;
    flex-shrink: 0;
}

.logo-x {
    color: var(--accent-color);
}

nav ul {
    display: flex;
    list-style: none;
    gap: 38px;
}

nav a {
    color: var(--text-primary);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    transition: color 0.3s;
}

nav a:hover {
    color: var(--accent-color);
}

/* Desktop header nav only: gold underline grows in from the center on
   hover. Scoped to `header nav` (not the plain `nav` selector above)
   so it doesn't also apply to .mobile-nav, which already has its own
   full-width border-bottom per link. */
header nav a {
    position: relative;
    padding-bottom: 6px;
}

header nav a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background-color: var(--accent-color);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

header nav a:hover::after {
    transform: scaleX(1);
}

/* Current page's link (see initActiveNavLink in script.js) keeps the
   gold color + underline permanently, not just on hover. */
header nav a.is-active {
    color: var(--accent-color);
}

header nav a.is-active::after {
    transform: scaleX(1);
}

.mobile-nav ul li a.is-active {
    color: var(--accent-color);
}

/* Markets dropdown (desktop header nav): the "Markets" link still
   navigates normally; a separate chevron button toggles the region
   list open/closed (see initMarketsDropdown in script.js), which adds
   .is-open to the <li>. */
header nav li.nav-dropdown {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-dropdown-toggle {
    background: none;
    border: none;
    padding: 0;
    margin-left: 6px;
    width: 14px;
    height: 14px;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    color: inherit;
}

.nav-dropdown-toggle::before {
    content: "";
    position: absolute;
    left: 3px;
    top: 2px;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.25s ease;
}

.nav-dropdown.is-open .nav-dropdown-toggle::before {
    transform: rotate(225deg);
}

.nav-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(6px);
    list-style: none;
    display: flex;
    flex-direction: column;
    min-width: 190px;
    padding: 8px;
    margin: 0;
    background-color: #1c1c1e;
    border: 1px solid #2c2c2e;
    border-radius: 10px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
    z-index: 1200;
}

.nav-dropdown.is-open .nav-dropdown-menu {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.nav-dropdown-menu a {
    display: block;
    padding: 9px 14px;
    font-size: 0.85rem;
    border-radius: 6px;
    white-space: nowrap;
}

.nav-dropdown-menu a::after {
    display: none;
}

.nav-dropdown-menu a:hover {
    background-color: rgba(255, 255, 255, 0.06);
}

/* Markets submenu (mobile hamburger nav): collapsed by default, the
   chevron button expands it in place (same initMarketsDropdown logic,
   .is-open on the <li> drives the max-height reveal). */
.mobile-nav-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #2a2a2c;
}

.mobile-nav-row a {
    border-bottom: none;
    flex: 1;
}

.mobile-nav-toggle {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    width: 34px;
    height: 48px;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    color: var(--text-primary);
}

.mobile-nav-toggle::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translate(-50%, -65%) rotate(45deg);
    transition: transform 0.25s ease;
}

.mobile-nav-dropdown.is-open .mobile-nav-toggle::before {
    transform: translate(-50%, -35%) rotate(225deg);
}

.mobile-nav-submenu {
    list-style: none;
    display: flex;
    flex-direction: column;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.mobile-nav-dropdown.is-open .mobile-nav-submenu {
    max-height: 400px;
}

.mobile-nav-submenu li a {
    font-size: 0.95rem;
    font-weight: 500;
    padding: 10px 4px 10px 18px;
    border-bottom: 1px solid #242426;
    color: #a0a0a5;
}

/* Hamburger toggle (hidden on desktop, shown under the 900px breakpoint) */
.hamburger-btn {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 23px;
    height: 23px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    z-index: 1100;
    flex-shrink: 0;
}

.hamburger-btn span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: var(--text-primary);
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.hamburger-btn.is-active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.hamburger-btn.is-active span:nth-child(2) {
    opacity: 0;
}

.hamburger-btn.is-active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Mobile side-drawer nav */
.mobile-nav-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 1050;
}

.mobile-nav-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
}

.mobile-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(78%, 320px);
    background-color: #1c1c1e;
    border-left: 1px solid #2c2c2e;
    box-shadow: -20px 0 40px rgba(0, 0, 0, 0.45);
    transform: translateX(100%);
    transition: transform 0.35s ease;
    z-index: 1100;
    display: flex;
    flex-direction: column;
    padding: 24px;
}

.mobile-nav.is-open {
    transform: translateX(0);
}

.mobile-nav-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 40px;
}

.mobile-nav-header .logo img {
    height: 48px;
}

.mobile-nav-close {
    background: none;
    border: none;
    color: var(--text-primary);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px;
}

.mobile-nav ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.mobile-nav ul li a {
    display: block;
    color: var(--text-primary);
    text-decoration: none;
    font-size: 1.1rem;
    font-weight: 600;
    padding: 14px 4px;
    border-bottom: 1px solid #2a2a2c;
    transition: color 0.3s;
}

.mobile-nav ul li a:hover {
    color: var(--accent-color);
}

body.nav-open {
    overflow: hidden;
}

@media (max-width: 900px) {
    header nav {
        display: none;
    }

    .hamburger-btn {
        display: flex;
    }

    /* Desktop's 92px header carries an 82px logo mark meant to fill it;
       on phones that's a lot of fixed vertical space to give up
       permanently, so both shrink together. body's padding-top must
       track header's height 1:1 — it's the fixed header's only layout
       reservation, so a mismatch here reopens a gap (too small) or a
       seam (too big) between the header and whatever section is first. */
    header {
        height: 64px;
        padding: 0 6%;
    }

    .logo img {
        height: 44px;
    }

    body {
        padding-top: 64px;
    }
}

.auth-buttons {
    display: flex;
    gap: 15px;
}

button {
    cursor: pointer;
    font-family: var(--font-main);
    font-weight: 600;
    font-size: 0.95rem;
    border: none;
    border-radius: 6px;
    padding: 10px 20px;
    transition: all 0.3s ease;
}

.btn-signin {
    background-color: var(--btn-bg);
    color: var(--text-primary);
    border: 1px solid #333;
}

.btn-signin:hover {
    background-color: #3a3a3c;
}

.btn-signup {
    background-color: var(--accent-color);
    color: var(--bg-color);
}

.btn-signup:hover, .btn-cta:hover {
    background-color: #ffcc33;
    box-shadow: 0 4px 15px rgba(251, 188, 5, 0.3);
}

/* -------------------------------------
   Hero Section & Wireframe Globe
--------------------------------------- */
.hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 80px 5%;
    max-width: 1470px;
    margin: 0 auto;
    gap: 50px;
    position: relative;
    overflow: hidden; 
    min-height: 653px; 
}

/* 巨大半骨架地球容器：仅负责在 hero 里的定位/裁切范围，宽高可自由调整 */
.globe-wrapper {
    position: absolute;
    bottom: -669px;
    left: 50%;
    transform: translateX(-50%);
    width: 1828px;
    height: 1024px;
    z-index: 0;
    pointer-events: none;
}

/* 球体本体：固定为正方形，居中放在 wrapper 里，保证球面数学（translateZ/scale）不被拉伸变形 */
.globe-stage {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1700px;
    height: 1400px;
    transform: translate(-50%, -50%);
    perspective: 3200px;
    perspective-origin: 50% 100%;

    /* 边缘虚化渐变，让地球完美融入深色背景 */
    -webkit-mask-image: radial-gradient(circle at 50% 50%, rgba(0,0,0,1) 45%, rgba(0,0,0,0) 78%);
    mask-image: radial-gradient(circle at 50% 50%, rgba(0,0,0,1) 45%, rgba(0,0,0,0) 78%);

    /* 球体轮廓：明暗渐变 + 外边缘圆环，让网格线依附在一个"球"上而不是漂浮的线条 */
    border-radius: 50%;
    background: radial-gradient(circle at 38% 32%, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0) 55%),
                radial-gradient(circle at 50% 50%, rgba(23, 23, 25, 0) 0%, rgba(0, 0, 0, 0.35) 100%);
}

.globe-stage::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.35);
    box-shadow: 0 0 50px rgba(251, 188, 5, 0.08);
}

.globe {
    width: 100%;
    height: 100%;
    position: relative;
    transform-style: preserve-3d;
    /* 改为从右到左极慢自转 */
    animation: spinGlobe 120s linear infinite;
}

@keyframes spinGlobe {
    0% { transform: rotateX(70deg) rotateZ(0deg); }
    100% { transform: rotateX(70deg) rotateZ(-360deg); } /* 负角度实现从右到左旋转 */
}

.globe .ring {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.2);
}

/* 赤道高亮显示品牌色 */
.globe .ring.equator {
    border-color: rgba(251, 188, 5, 0.9);
    /* 增加内外发光效果让中间线更抢眼 */
    box-shadow: 0 0 24px rgba(251, 188, 5, 0.35) inset, 0 0 14px rgba(251, 188, 5, 0.35);
}

/* -------------------------------------
   Content Overlays
--------------------------------------- */
.hero-content {
    flex: 1;
    max-width: 650px;
    position: relative;
    z-index: 2;
}

.hero-content h1 {
    font-size: 3.0rem;
    line-height: 1.3;
    font-weight: 700;
    margin-bottom: 40px;
}

.highlight {
    color: var(--accent-color);
}

.cta-wrapper {
    display: flex;
    align-items: center;
    gap: 20px;
    position: relative;
}

.btn-cta {
    background-color: var(--accent-color);
    color: var(--bg-color);
    padding: 15px 30px;
    font-size: 1.1rem;
    border-radius: 8px;
}

.cta-arrow {
    margin-top: 20px;
}

.hero-illustration {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    position: relative;
    z-index: 2;
}

.diagram-container {
    position: relative;
    width: 644px;
    height: 450px;
}

.top-logos {
    position: relative;
    height: 56px;
    font-size: 1.15rem;
}

.google-row {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}

.brand-row {
    position: absolute;
    top: 30px;
    left: 0;
    width: 100%;
}

.brand-label {
    position: absolute;
    top: 0;
    font-weight: 700;
    white-space: nowrap;
}

.ahrefs-label {
    left: 209px;
    transform: translateX(-50%);
    color: #8f9ffa;
}

.linxact-label {
    left: 548px;
    transform: translateX(-50%);
    color: #fff;
}

.small-windows {
    display: flex;
    justify-content: space-between;
    margin-top: 20px;
    margin-bottom: 34px;
    z-index: 2;
    position: relative;
}

.window {
    background-color: #1a1a1c;
    border: 1px solid #444;
    border-radius: 6px;
    padding: 10px;
}

.window.small {
    width: 96px;
    height: 69px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.window-bar {
    width: 45%;
    height: 5px;
    border-radius: 3px;
    background-color: #444;
}

.window.small.color-green .window-bar { background-color: #6fd6ae; }
.window.small.color-purple .window-bar { background-color: #b39ddb; }
.window.small.color-blue .window-bar { background-color: #8ec6f5; }
.window.small.color-pink .window-bar { background-color: #f2a7c4; }

.window-line {
    width: 100%;
    height: 4px;
    border-radius: 2px;
    background-color: #333;
}

.window-line:last-child {
    width: 65%;
}

.lines-container {
    position: absolute;
    top: 134px;
    left: 0;
    width: 100%;
    height: 137px;
    z-index: 1;
}

.main-window-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 75px;
    z-index: 2;
    position: relative;
}

.window.large {
    width: 350px;
    height: 200px;
    border-radius: 10px;
    border: 1px solid #555;
    background-color: #1a1a1c; 
}

.window-header {
    border-bottom: 1px solid #444;
    padding: 8px 15px;
    display: flex;
    gap: 6px;
}

.dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.dot.red { background-color: #ff5f56; }
.dot.yellow { background-color: #ffbd2e; }
.dot.green { background-color: #27c93f; }

.window-body {
    display: flex;
    padding: 20px;
    gap: 20px;
    height: 150px;
}

.box-left {
    width: 40%;
    background-color: #2a2a2c;
    border-radius: 4px;
}

.lines-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: center;
}

.line {
    height: 8px;
    background-color: #333;
    border-radius: 4px;
    width: 100%;
}
.line:last-child {
    width: 70%;
}

.illustration-caption {
    margin-top: 15px;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .hero {
        flex-direction: column;
        text-align: center;
        min-height: auto;
        padding: 60px 5% 50px;
    }

    .hero-content {
        max-width: 100%;
    }

    .hero-content h1 {
        font-size: 2.3rem;
    }

    .cta-wrapper {
        justify-content: center;
    }

    .cta-arrow {
        display: none;
    }

    .hero-illustration {
        /* .hero-illustration's base rule (line 410) sets `flex: 1`, i.e.
           flex-basis: 0%. Once .hero stacks into a column here, that
           basis can't resolve against .hero's indefinite height, so the
           browser falls back to sizing this item by its *content*
           (the unscaled 450px-tall diagram) instead of the explicit
           height the 760px/480px breakpoints below set — leaving a big
           blank gap under the (visually shrunk) diagram before the next
           section. Killing flex-grow here lets those height overrides
           actually apply. */
        flex: none;
        justify-content: center;
        margin-top: 40px;
    }
}

/* .diagram-container's children (Google/brand labels, connector lines,
   the browser-window mockup) are positioned with hardcoded pixel
   offsets built for its native 644x450 size. Shrinking it with a width
   override would leave those offsets mis-placed, so it's visually
   scaled instead (which scales every child's position together), and
   the wrapper is clipped down to the scaled height/width so the
   untransformed 644x450 box doesn't reserve blank space around it. */
@media (max-width: 760px) {
    .hero-content h1 {
        font-size: 1.9rem;
        margin-bottom: 24px;
    }

    .btn-cta {
        padding: 13px 26px;
        font-size: 1rem;
    }

    /* Dropped entirely on mobile (not just paused/scaled) — its 3D
       transforms, perspective, and mask-image are heavy to composite,
       and on some mobile browsers were blanking out the whole hero. */
    .globe-wrapper {
        display: none;
    }

    .hero-illustration {
        width: 100%;
        height: 383px; /* 450 * 0.85 */
        overflow: hidden;
    }

    .diagram-container {
        transform: scale(0.85);
        transform-origin: top center;
    }
}

@media (max-width:652px){
    .linxact-label{
        transform: translateX(-98%);
    }
}

@media (max-width: 480px) {
    .hero {
        padding: 40px 5% 30px;
        gap:3px;
    }

    .hero-content h1 {
        font-size: 1.6rem;
        line-height: 1.35;
        margin-bottom: 20px;
    }

    .btn-cta {
        padding: 12px 22px;
        font-size: 0.95rem;
    }

    .hero-illustration {
        height: 257px; /* 450 * 0.57, matching .diagram-container's scale below */
    }

    .diagram-container {
        transform: scale(0.57);
    }
}

/* -------------------------------------
   Part 2: Awards / Press Trust Bar
--------------------------------------- */
.awards-bar {
    max-width: 1382px;
    margin: -70px auto 0;
    padding: 0 5%;
    position: relative;
    z-index: 6;
    top:47px;
}

.awards-card {
    background-color: #1c1c1e;
    border: 1px solid #2c2c2e;
    border-radius: 14px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.45);
    padding: 28px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

/* Desktop: transparent wrappers so .award-item/.award-divider stay
   direct flex children of .awards-card and the space-between layout
   below is unaffected. They only become real elements on mobile,
   where they drive the auto-scrolling marquee (see max-width: 900px). */
.awards-marquee,
.awards-track {
    display: contents;
}

.awards-track-clone {
    display: none;
}

.award-divider {
    width: 1px;
    align-self: stretch;
    background-color: #333;
    flex-shrink: 0;
}

.award-item {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    justify-content: center;
    min-width: 0;
}

.award-mark {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 4px;
    background-color: #e8e8e8;
    color: #171719;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1rem;
}

.mark-chevron {
    background-color: transparent;
    color: #d8d8d8;
    font-size: 1.4rem;
    font-weight: 700;
    width: auto;
}

.award-text {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.award-name {
    color: #d8d8d8;
    font-weight: 800;
    font-size: 0.85rem;
    letter-spacing: 0.3px;
    white-space: nowrap;
}

.award-name-sm {
    color: #d8d8d8;
    font-weight: 700;
    font-size: 0.75rem;
    margin-top: 2px;
}

.drum-name {
    font-size: 1rem;
    font-style: italic;
}

.drum-name sup {
    font-size: 0.55rem;
    font-style: normal;
}

.award-sub {
    color: var(--text-secondary);
    font-weight: 500;
    font-size: 0.7rem;
    margin-top: 3px;
}

.award-sub.align-right {
    align-self: flex-end;
}

.uk-sm {
    font-size: 0.65em;
    margin-right: 2px;
}

@media (max-width: 900px) {
    .awards-bar {
        margin-top: 30px;
        /* Desktop's `top: 47px` fine-tunes the overlap created by this
           rule block's negative margin; once margin-top goes positive
           here that offset has nothing to compensate for and just adds
           stray blank space above the card, so it's zeroed out. */
        top: 0;
        /* Bleed past the section's own 5% side padding so the scroll
           strip runs edge-to-edge on mobile instead of being boxed in. */
        max-width: 100%;
        padding: 0;
    }

    .awards-card {
        justify-content: flex-start;
        overflow: hidden;
        border-radius: 0;
        padding: 24px 0;
    }

    /* script.js clones .awards-track into a second, identical
       .awards-track-clone so the two sit back to back inside
       .awards-marquee (total width = 2x one track). Animating from
       -50% (the clone showing) to 0% (the original showing) drifts the
       content left-to-right forever — the wrap-around is invisible
       because both halves are pixel-identical.
       --marquee-distance is set below as a 50% fallback (in case JS
       fails to load), but script.js overwrites it with the track's
       *actual measured pixel width*. A flex row of several fractional-
       width text items doesn't always sum to exactly 2x when read back
       as the parent's own max-content width — that few-px rounding gap
       made -50% land just short of the real seam, so the loop caught/
       stuttered once per cycle instead of looping seamlessly. */
    .awards-marquee {
        display: flex;
        width: max-content;
        --marquee-distance: 50%;
        animation: awards-marquee-scroll 22s linear infinite;
    }

    .awards-card.is-paused .awards-marquee {
        animation-play-state: paused;
    }

    .awards-track,
    .awards-track-clone {
        display: flex;
        flex-wrap: nowrap;
        flex-shrink: 0;
    }

    @keyframes awards-marquee-scroll {
        from {
            transform: translateX(calc(-1 * var(--marquee-distance)));
        }
        to {
            transform: translateX(0);
        }
    }

    .award-divider {
        display: block;
        width:0px;
    }

    .award-item {
        flex: 0 0 auto;
        justify-content: flex-start;
        padding-right: 41px;
    }

    /* Fixed px, not a %: these sit on a shrink-to-fit flex item
       (.awards-track has no definite width of its own), where a
       percentage margin/padding has no reliable containing-block width
       to resolve against. */
    .awards-track .award-item:first-child,
    .awards-track-clone .award-item:first-child {
        margin-left: 20px;
    }

    .awards-track .award-item:last-child,
    .awards-track-clone .award-item:last-child {
        padding-right: 20px;
    }
}

/* -------------------------------------
   Part 3: Network Section Styles
--------------------------------------- */
.network-section {
    padding: 168px 5% 80px;
    max-width: 1470px;
    margin: 0 auto;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 5;
}

/* Wrapper for the graph + toolbar (no outer frame, just layout) */
.network-card {
    position: relative;
    width: 100%;
    margin-bottom: 60px;
}

.network-title {
    font-size: 2.4rem;
    font-weight: 800;
    margin-bottom: 12px;
    text-align: left;
}

.network-desc {
    color: var(--text-secondary);
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 24px;
    text-align: left;
}

.network-viewport {
    position: relative;
    width: 100%;
    aspect-ratio: 1114 / 460;
    overflow: hidden;
    border-radius: 10px;
    cursor: grab;
}

.network-viewport.grabbing {
    cursor: grabbing;
}

.network-zoom-layer {
    position: absolute;
    inset: 0;
    transform-origin: 50% 50%;
    transition: transform 0.12s ease-out;
}

.network-lines {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    overflow: visible;
}

.network-lines line {
    transition: opacity 0.2s ease, stroke-width 0.2s ease;
}

.network-lines line.edge-dim {
    opacity: 0.15;
}

.network-lines line.edge-active {
    opacity: 1;
    stroke-width: 0.9;
}

/* Network Nodes (Mini Windows) */
.net-node {
    position: absolute;
    width: 70px;
    height: 48px;
    background-color: #1e1e20;
    border: 1px solid #444;
    border-radius: 5px;
    padding: 7px;
    transform: translate(-50%, -50%);
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 5px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.5);
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.net-node:hover {
    border-color: #777;
    transform: translate(-50%, -50%) scale(1.08);
}

.net-node.large {
    width: 96px;
    height: 68px;
    padding: 10px;
    gap: 7px;
    border-width: 1.5px;
}

.net-node.highlight {
    border-color: var(--accent-color);
    box-shadow: 0 0 15px rgba(251, 188, 5, 0.2), 0 4px 10px rgba(0,0,0,0.5);
}

.net-node.highlight:hover {
    border-color: #ffcc33;
}

.net-node.node-active {
    border-color: #fff;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15);
    z-index: 3;
}

.net-node.node-dim {
    opacity: 0.35;
}

/* Inner elements of the mini windows */
.n-bar {
    width: 40%;
    height: 4px;
    background-color: #555;
    border-radius: 2px;
}
.net-node.highlight .n-bar {
    background-color: #ffcc33;
}
.n-line {
    width: 100%;
    height: 3px;
    background-color: #333;
    border-radius: 1px;
}
.n-line:last-child {
    width: 70%;
}

/* Node click popover */
.node-popover {
    position: absolute;
    min-width: 190px;
    background-color: #1e1e20;
    border: 1px solid #444;
    border-radius: 8px;
    padding: 12px 14px;
    z-index: 5;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    pointer-events: auto;
}

.popover-close {
    position: absolute;
    top: 6px;
    right: 8px;
    background: none;
    border: none;
    color: var(--text-secondary);
    font-size: 1rem;
    padding: 0;
    line-height: 1;
}

.popover-domain {
    font-weight: 700;
    font-size: 0.85rem;
    margin-bottom: 8px;
    padding-right: 14px;
    word-break: break-all;
}

.popover-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 0.75rem;
    color: var(--text-secondary);
    margin-bottom: 4px;
}

.popover-row strong {
    color: var(--text-primary);
    font-weight: 600;
}

.popover-tag {
    margin-top: 8px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.popover-tag.tag-hidden { color: var(--accent-color); }
.popover-tag.tag-common { color: #888; }

/* -------------------------------------
   Data Comparison Legend
--------------------------------------- */
.data-legend-wrapper {
    width: 100%;
    max-width: 900px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.data-legend {
    display: flex;
    width: 100%;
    border-bottom: 1px solid #333; /* The line connecting them at the bottom */
    padding-bottom: 20px;
    gap: 15px;
}

.legend-box {
    position: relative;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.box-label {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--bg-color);
    padding: 0 10px;
    font-size: 0.75rem;
    color: var(--text-secondary);
    white-space: nowrap;
}

.box-label.highlight-label {
    background-color: #3a2d18; /* Dark tinted background for the overlapping text on right */
    color: #e0e0e0;
    border-radius: 10px;
    padding: 2px 12px;
    top: -12px;
}

/* Left Box (Common) */
.box-common {
    flex: 2;
    border: 1px solid #333;
    padding: 30px 20px;
    background: transparent;
}

.logos-group {
    display: flex;
    justify-content: space-around;
    align-items: center;
    width: 100%;
    gap: 10px;
}

.txt-logo {
    font-weight: 700;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 5px;
}

.ahrefs { color: #8f9ffa; }
.moz { color: #fff; letter-spacing: 1px; }
.semrush { color: #fff; font-size: 1rem; }
.majestic { color: #fff; font-size: 0.8rem; text-align: center; line-height: 1; }
.icon-fire { color: #ff5f56; font-size: 1.2rem; }
.icon-stars { font-size: 0.6rem; letter-spacing: 2px; }

/* Right Box (Hidden - SEOEMPEROR) */
.box-hidden {
    flex: 1;
    background: linear-gradient(135deg, var(--accent-color) 0%, #d49c00 100%);
    padding: 30px 20px;
    border: 1px solid var(--accent-color);
    box-shadow: 0 10px 30px rgba(251, 188, 5, 0.2);
}

.seoemperor-logo-box {
    font-size: 1.5rem;
    font-weight: 800;
    font-style: italic;
    color: #171719; /* Dark text for contrast against the yellow background */
    letter-spacing: 1px;
}

.emperor-text {
    color: #ffffff; /* White text pops nicely against the dark yellow/gold */
}

.legend-footer {
    margin-top: 15px;
    font-size: 0.8rem;
    color: #666;
}

/* Responsive adjustments for Network Section */
@media (max-width: 900px) {
    .data-legend {
        flex-direction: column;
        border-bottom: none;
        gap: 30px;
    }
    
    .legend-box {
        width: 100%;
        border-bottom: 1px solid #333;
    }
    
    .box-hidden {
        border: 1px solid var(--accent-color);
    }
    
    .logos-group {
        flex-wrap: wrap;
        gap: 20px;
    }
    
    .net-node {
        width: 52px;
        height: 38px;
        padding: 5px;
    }

    .net-node.large {
        width: 72px;
        height: 52px;
    }
    .network-section{
        padding: 41px 5% 80px;
    }
    .network-title{
        font-size: 1.8rem;
    }
    .network-desc{
        font-size: 0.9rem;
    }
}

/* -------------------------------------
   Part 4: Asia-Pacific Reach Section
--------------------------------------- */
:root {
    --map-grey: #5e5e5e;
}

.reach-section {
    background-color: var(--bg-color);
}

.reach-topbar {
    background-color: var(--bg-color);
    padding: 77px 5% 26px;
}

.reach-line1 {
    max-width: 1214px;
    margin: 0 auto;
    color: var(--text-primary);
    font-size: 2.6rem;
    font-weight: 800;
}

.reach-body {
    max-width: 1470px;
    margin: 0 auto;
    padding: 0 5% 80px;
    display: flex;
    align-items: flex-start;
    gap: 40px;
}

.reach-map {
    position: relative;
    flex: 4.0;
    aspect-ratio: 1000 / 780;
    min-width: 0;
}

.asia-map-svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

.asia-real-map {
    fill: var(--map-grey);
    d: path("M 554.8 1004.78 c -30.6 37.43 -112.43 54.39 -165.86 80.35 c -40.49 16.74 -29.32 -30.92 -45.15 -50.75 c 16.77 -32.68 -28.93 -60.25 -36.63 -91.13 c -8.53 -15.11 -35.22 -20.07 -34.35 -40.32 c -0.19 -59.29 -31.2 -46.66 -40.51 -84.58 c -16.9 -18.28 -24.92 -55.53 -49.1 -64 c -7.49 1.14 7.67 -24 5.25 -31.09 c 1 -2.89 -1.37 -0.46 -1.56 0.16 c -1.17 -3.19 -2.43 -8.46 -3.43 -11.7 c -20.12 -40.44 8.36 -65.58 25.1 -110.79 c -1.87 -18.88 -7.23 -36.77 4.31 -52.43 c -11.41 -12.4 -6.71 15.3 -27.87 -1.42 c -60.14 52.88 -57.91 -32.5 -91.39 12.83 c -7.28 1.67 -17.32 5.7 -23.31 -2.74 c -3.12 -14.33 -3 -2.4 -13.35 -10.2 c -3.71 -1.73 -5.7 4.41 -9.39 4.26 c 4.82 -8.26 -10.74 2.94 -11.18 -2.82 c 22.29 -4.79 15 -8.33 -2.39 -6.88 c -1.06 2.41 -2.38 0 -2 -1.5 c 0.37 -2.23 7.55 -0.27 5.47 -4.3 c -2.17 -2.18 -6.92 -2.19 -6.4 -6.14 c 0.45 -3.15 -6.72 -4.3 0.41 -6 c 1.19 -18.95 -20.73 0.18 -17.12 -23 c 6.58 -2 2.64 5.57 6 7.42 c 0.21 -1.13 0.81 -3 1.94 -1.35 c 3.75 1.32 11.47 -2.47 4.06 -1.53 a 11.44 11.44 0 0 1 -4.19 -6.75 c 2.63 -1.16 8 -6.11 2.08 -5.52 c -2.14 -1.2 -0.24 -3.25 -0.26 -5 c -1.32 -2.22 -5.4 -5.81 -0.81 -7.89 c 6.45 -9.66 -13.86 2.71 -14.52 -2.66 c 4.88 -41 39.36 -12 33.1 -25.28 c 1.08 -1.52 3.75 -0.6 5.22 -0.21 c -4.11 5.65 11.68 1.61 15.16 2.61 c 1.42 -0.23 5.73 0.81 6.4 -0.88 c -14.47 -6.55 11.92 -6.67 16.07 -8.92 c -45.18 -13.27 12.23 -11.86 28.44 -9.27 c 57.95 -73.67 148.75 55.57 212.55 -19.08 c 8.19 -28.58 -75 -59.29 -8.11 -41.53 c 14.67 6.77 42.46 2.48 49.94 21 c 11.34 -2.83 22.31 -9.13 30.72 1.14 c 16.36 -0.75 1.18 5.77 7.74 10.12 c 24.63 5.5 34.74 39.56 48.88 18.24 c 20.21 -25 16.44 26.71 40 25.38 c 4.44 2.4 7.67 8.74 0.49 5.6 c -109.2 93.23 149.55 137.68 61 27.75 c 0 -0.95 -1.18 -3.26 -0.66 -4.35 c 1.52 -0.73 1.53 -7 3.65 -3.26 c 3.77 1.68 9 -0.11 3.38 -2.92 c 3.45 -7.55 -8.57 -11.49 -10.52 -6 c -13.47 -47.35 10.11 -11.57 34.5 -25.48 c 6.33 -7.69 -8.76 -12.09 -11.38 -17.7 c -2.74 -4.84 -1.89 -13.74 -6.93 -16.51 c -29.16 -3.83 -13.44 33.13 -20.34 20.65 c -16.68 -17.64 12.21 -40.92 -14.74 -40.64 c -19.28 -6.08 -13.42 -35.8 -35.22 -41.59 c -5.47 -21.09 44.57 9.51 15.83 -12.92 c -0.33 -19.6 25.73 -18.63 40.9 -14.16 c 6.41 -0.5 -3.42 -4.46 -4.89 -5.44 c 3.59 -14 16.15 -56.77 -14.15 -38.79 c -27.09 -26.08 -54.81 32.12 -73.58 3.84 c 0.75 -5.5 9 3.87 9.25 -2.25 c -7.13 -12.88 -12 -32 -29.9 -30.61 c -14 4.81 -1.3 -15.69 -16.61 -18.38 c 17.9 -113.52 18.77 -30.91 44.16 -49.45 c -10.64 -22.55 13.7 -31.13 29.67 -41.67 c 5.42 -6.94 10.32 -18 19.44 -8.84 c 5.51 14 15.93 -15.14 27.27 3.69 c 32.69 -5.94 38.69 42.37 41.13 26.36 c -4.52 -23.76 9.75 0.69 21 2.46 c 15.27 -9.59 18.42 -21.83 37.88 -10 c 14.19 -16.9 19.18 4 32.64 7.9 c 4 0.75 7.76 0.42 7.12 4.93 c 8.21 1.48 6 -12.32 11.93 -10.87 c 7.21 11.43 28.89 3.6 28.33 -9.71 c 5 -20 -56.82 -15.55 -11.62 -37.26 c -14.44 -39.78 38.52 -13.14 16.76 -29.78 c -5.85 -1.5 -20.38 -7.42 -5.41 -10.49 c 3.44 -6.72 -10.59 0.68 -10.39 -5.88 c 8.17 -22.58 4.22 -7.44 21.35 -11.8 a 310.26 310.26 0 0 0 74.21 -21.32 c 9 -5.15 52.31 -4.26 50.56 -19 c 21.59 -16.56 30.9 3.82 51.23 -5.11 c 19.15 35.95 -1.93 36.21 12.11 40.1 c 35.75 -10.57 13.14 11.16 25.29 5.6 c -0.51 -14.43 15.43 10.08 20.88 -2.47 c 7.23 4.3 -9.25 9.33 -6.72 16 c 4 13 4.83 -6.36 18.7 0.75 c -1.46 7.44 62.73 -47.82 50.45 -20.76 c -18.67 2.21 35.51 35.81 35.86 52.3 c 11.13 14.08 33.54 85.26 39.92 47.62 c 6.1 -6.13 16.75 -1.53 12.62 6.89 c 13.26 -0.65 1.19 10.54 17.45 6.47 c 7.75 6.1 13.61 -3.25 19.93 -4.05 c 20.41 -13.3 25.46 22.9 32 21.43 c 12 0.59 8.73 17.53 17.65 18.64 c 20.82 10.68 24.33 -10.41 27.51 -2.24 c -5.83 4.49 1.74 3.38 4.49 11.61 c 13 13.46 19.45 3.92 28 -4.67 c 3.36 -2.14 10.64 3.88 10.64 -1.7 c 2.16 0.35 3.79 2.77 6.4 -0.15 c -0.11 -5.19 12.16 -1.93 9.19 -9.08 c 10.8 -13.6 39.74 -20.64 53.52 -31.25 c 1.66 -4.75 5.25 4.64 8.14 4.11 c 1.34 -1.91 5.21 -5.91 5.86 -0.93 c 7.4 11.23 30 -5.91 28 15.56 c 16.11 17.82 41.58 -0.2 57.76 15.41 c 48.51 -21.26 -11.75 -44.31 31.4 -69.48 c 4 -12.73 2.52 -4.07 13.09 -0.6 c 25.3 12.12 63.71 10.67 59.26 44.47 c 38.52 27.43 55.82 -13.19 112.93 18.83 c 35.11 70.88 116.58 -30.78 157.86 2.09 c 30.26 -12.44 31.47 36.56 73.36 -12.44 c -10.91 -22.86 55.34 -68.12 14.59 -76.27 c 51.5 -70.44 141.58 -9.31 146.51 69.45 c 6.34 49.48 36.64 16.21 55.23 47.52 c 2.12 4.83 11 1 11.74 6.11 c -4.94 6.51 5.41 9.57 3.44 15.79 c -7.11 53.73 84.27 -29.18 76.47 7 c 3.75 6.66 5.12 16.09 -4.59 17.79 c -9.1 16.78 -8.62 41.07 -20.84 55 c -10.29 34.43 -23.26 -7.3 -36.87 15.48 c -19.28 4.54 2.64 42.26 -8.48 59.14 c -15.47 4.53 -13.83 0.86 -8.44 14.52 c -36.67 23.81 -2.13 26.38 -31.2 50.6 c -86.68 21.47 81.78 133.3 -28.22 141.16 c -4.69 1.77 4.05 5.18 -1.67 6.49 c -8.21 -9.92 -0.7 1.53 -6.23 5.55 c -5.85 -2.52 -1.22 -2.77 -1.13 -6.29 c -1 -2 -6.86 5.19 -7.51 6.89 c -8.72 -3.48 -3.09 8.53 -11.43 -3.69 c -5.65 -5.76 7.22 -0.31 2.83 -4.08 c 5.2 -3.56 -2.26 0.92 -1.51 -4.33 c -7 -10.72 12.54 -19.72 4 -29 c 0.79 -20.18 -11 -10 -7.69 -19.19 c 2.09 -3.56 8.35 -3.89 11.48 -2 c 1 3.82 1.87 3.07 3.89 0.22 c -6.52 -1.69 -2.16 -8.6 -5.68 -11.91 c -4.77 -22.72 -8.64 -4.39 -13.07 -11.69 c -13 -7 -5.12 9.63 -21.48 -1.58 c 15.15 -8 -14.8 -0.34 -2.31 -7.72 c -3.72 -8.5 17.76 -11.9 11.13 -13.22 c -11.92 1.49 0.12 -10.9 -0.23 -15 c -23.33 -35.17 -55.12 3 -86.84 13.33 c -1.11 -4.83 8 -5.1 11.3 -7.67 c -3 -2.81 1.09 -5.53 2.8 -7.23 c -1.57 -1.47 -13 2.91 -10.5 -1.71 c -3.12 -4.76 7.24 -3.47 3.53 -7.92 c 31.11 -19.8 3.26 -51.55 -20.14 -12.53 c -24.2 5.13 -25.78 37.76 -52.88 27.24 c -27.37 35.13 36.71 15.45 22 47.75 c 15 16.77 23.3 -10.36 36.38 -12.78 c 15 13.83 53 4.81 30.84 25.35 c -6.46 -10.64 -19.56 8.73 -28.24 5 c -5.18 1.1 6.23 4.52 -3.38 5.56 c -3.93 18 -6.05 1.23 -12 6.57 c 7.71 10.15 -22.51 19.52 -18.54 34.67 c 38.74 13 25 53.39 53.26 68.68 c 2.66 10.2 -6.83 0.84 -11.46 0.88 c -9.58 0.12 -13.48 -10.11 -24.9 -1.74 c 36.53 0.27 49 28.65 3.89 39.66 c 4.16 -0.52 6.22 -1.78 8.2 2.71 c 5.42 1 11.41 -7.2 16.17 -2.18 c 8.12 10.16 17.08 7.12 1.48 17.23 c 0.87 -0.15 5.94 -1 6.4 -2.78 c 5 -2.56 1.9 8.75 1.94 10.85 c -2 -0.7 -5.77 -4.75 -8.72 -1.34 c -1.93 2.3 6.05 3.14 3.12 6.39 c -5 -1.22 0.28 0.62 0.43 1.48 c -5.5 4.52 -2 7.15 -1.06 12.82 c -17.86 -7.93 -31.71 54.17 -36.32 33.93 c 0.51 -3.15 -1.63 3 -3.31 1.14 c -5.5 -1.75 5 5.78 4.55 8.46 c -7 10.83 -20 2.94 -11 9.47 c 11.16 -5 1.92 7 5.88 12.45 c -2.55 0.68 -7 -3.71 -9.64 -0.51 c 0.48 1.82 4.12 3.4 1.81 4.64 c -9.84 -1.39 -4.1 1.83 -6.6 6.15 c -7.7 -0.08 -1.3 9.41 -10.07 7.27 c -11 -1.76 -4 1.62 -11.51 2.8 c 11 7.08 -7.62 10.5 -8.62 18.81 c -2.66 2.56 0.45 -5.46 -5.44 0.48 c -9.45 -2.13 -1.85 1 -7.86 4.75 c -5.84 0.55 1.08 0.89 -1.84 3.38 c -4.49 -0.71 -1.59 4.62 -4 6.17 c -5.16 -1.12 -10.79 4.8 -16.8 2 c -6.15 6.64 -8.69 -3.26 -15.92 5.17 c -3.12 0.66 -1.77 -2.76 -4.09 -3 c -2.8 0.72 -0.84 5.15 -3.14 5 c -8.24 -6.3 -0.14 8.18 -7.23 3.89 c -3.19 -0.91 -7.47 -0.29 -2.68 -3 c -0.92 -1.32 -4.69 -2.75 -5.1 -5.44 c -6.85 -5.2 -0.16 -13.56 -8.43 -3.39 c 8.24 11.16 5.11 18.32 -6.68 16.76 c -1.72 5.68 0.55 4.47 -5.72 4.7 c -6.15 7.87 -7.31 -8.85 -6.79 2.2 c -18 3.89 -59.54 12.76 -38 27.67 c 1.3 6.52 -17 7 -11 1.51 c -16.31 -18.43 7.56 -16.36 -7.57 -26.38 c -3.31 -2.41 -0.29 2.28 -1 2.9 c -2 1.13 -4.23 2.18 -6.54 2 c -5.54 1.66 0.52 -3 -3.84 -4 c -8 1.74 -6.3 -4.79 -11.15 -6 c 0.63 10.43 1.86 3 -6.76 7.36 c -14 0.93 -13.66 13.55 -24.47 12.76 c -3.46 1.82 -7.29 -4.21 -4 3.62 c -4.55 17.63 -18.64 14.65 -20.66 35.92 c 26 53.72 136.77 140.07 30.72 181.3 c -4.64 -1.75 -5.2 -8.32 -5.43 -0.43 c -2.26 3.73 -4.63 -4.59 -7.29 -0.49 c 1.67 -1.21 8.53 4.86 -2.87 3.4 c 1.32 1.12 6.45 1.62 6.5 3.72 c -3 1.69 -2.48 7.68 -6.8 3.61 c -0.26 0 -9 -9 -5.38 -4.14 c 14.23 12.44 5.59 16.31 -7.13 2.89 c 15 13.31 0.78 12.92 -8.7 21.16 c -7.83 11 -13.12 9.37 -11.87 -4.54 c 3.18 -29 14.22 -7.08 -11.18 -27.66 c -1.88 0.06 -7 -0.75 -7.92 -2.33 c -0.1 2.22 -4.41 3.54 -5.74 2.1 c -3.28 -3.62 7.72 -8.15 -1.11 -12.17 c -10.78 16.77 -8.17 -16.4 -19 -21.68 c 1.2 6.58 -9.88 -6.31 -9.31 -4.94 c -10.74 -10.72 -30.78 5.06 -24.44 -17.74 c 2.74 -6.66 -18.76 -6.35 -18.94 1.23 c 6.24 23.57 -17.13 47.32 -16.79 72 c 2.23 20 12.87 1.92 15.06 12.66 c -0.41 2.46 1.31 12.52 4.54 13.93 c 1.57 -2.5 0.4 -1.3 2 0.07 c 1.86 6.79 9.38 37.16 1.94 15.85 c -5.29 -8.31 -4 8.91 7.63 11.39 c 18.49 5.21 30.43 18.51 46.15 31.5 c 19.61 26.53 -1 46.51 25 76.58 c -54.31 35.61 -76.58 -111 -115.72 -133.16 c -16.08 10.51 8.69 -45.32 1.26 -35 c -4.13 -11 3.67 -25.07 5.61 -34.89 c -8.06 1.46 -2.39 -4.86 -2.91 -10 c -0.5 -9.28 -4.4 -23.8 -9.26 -35.29 c -2 -4.12 -0.65 9.88 -2.59 4.59 c 2.37 -3.94 -7.24 -21.26 -1.86 -19.49 c -9.27 -5 -4 -41.5 -10.39 -39.1 c -5.17 2.89 -9.46 -26.72 -13.24 -14.24 c 3.49 9 -9.42 21.16 -13.39 9.14 c 6 10.07 -4.34 8.29 -9.67 14.57 c -13.8 19.6 -3.1 -9 -9.82 4.11 c -9.51 5.54 -5.47 -7.44 -7.41 -4.72 c -7.23 13.23 -1.29 -15.2 -3.94 -4.89 c -24.46 25.64 19.78 -36.78 -23.72 -64.11 c 19.4 9.68 3.49 -16.75 -6.81 -14.35 c 3.12 9.39 -5.13 0.1 -1.78 -3.16 c -2.45 1 0.27 -3.31 0 -4.06 c -1 -1.31 -2.51 6.26 -4.82 4.3 c 1.62 -3.79 -2.45 -12.87 -2.14 -2.53 c -14.51 -13.33 -14.57 -34.61 -20.83 -47.75 c -8.81 -18.07 -16.2 18.45 -22.66 -23.47 c 0.26 4.47 -2.47 3.5 -6.16 2.69 c 3.19 1.77 11 5.52 4 8.8 c -0.45 2 3.56 3.49 -0.08 3.76 c -2.28 4.76 4.6 8.71 2.58 13.59 c -3.72 5.3 -15.14 15.13 -7.69 2.21 c -12.15 7.87 -2.34 -9.23 -6.63 -5 c -1.05 3.71 0.58 9.53 -4.33 11.07 c -3.47 8.17 -2.43 -12.09 -4 -7.28 c 3.69 10.14 -7.75 15.44 -8.45 2.6 c -3.79 9.5 5.45 5.65 -6.2 11 c -0.71 -9.84 -2.59 -18 -3.25 -1.63 c -3.79 2.72 -5.92 -3.37 -6.18 -0.8 c -8.35 6.76 2.35 -9.29 -6.84 -14.7 c 11.37 13.68 -12.21 14.81 -20 21.87 c -3.13 20.63 0.65 19.57 -14.94 31.59 c -21.82 10.47 -8.87 -8.59 -21.31 5.87 c 20.39 -7.45 -55.14 53.32 -58.3 56.88 c 6.84 17.32 -24.06 5.88 -23.26 20.43 c -45.53 8.44 0.32 41.81 -29.13 96.23 c 5.16 -0.76 4.27 18.53 1.3 20.64 c -12.09 -3.24 -21.83 21.22 -11 21.38 c -30.24 0.59 -14.29 14.34 -29.19 21.69 c -57.29 -18.59 -115.66 -274.88 -102.59 -287.84 c -6.62 1.18 -2.78 -6.18 2.19 -5.68 c -12.54 -3.48 -8.66 1.39 -15.62 8.91 c 13.49 6.5 -6.12 18 -13 20.58 c -20.9 11.21 -36.84 -18 -49.11 -30.72 c 0.44 -7.45 6.28 3.45 11.72 -2.58 c 9.13 2.9 24.45 -19.16 16.57 -12.32 c -12.13 9.31 -53.09 -3.78 -32.2 -19.27 c -5.79 0.69 -12 10.83 -12.37 -0.11 c 0.42 5 -6.34 -3.32 -7 0.64 c -23 -65.27 -126.45 -8.39 -213.66 -46.37 c -8.63 -66.6 -85.23 40.63 -144.31 -94.18 c -0.28 -10.06 -11.37 4.87 -14.15 -1.9 c -1 -0.56 -14.5 -7.69 -4.84 -5.71 c 5 -2.23 -6.16 -5 -3.11 -1.76 c -0.58 0.36 -3.48 1.46 -3 2.87 c 4.84 14.9 -20 3.08 -18.56 8.89 c 6.7 10.32 -0.67 5.66 -5.08 12.81 c 19.7 12.65 19 46.84 49.12 62.27 c -5 -2.43 -2.49 4.62 0.7 5.8 c -4.15 15.28 2.16 13.29 7.55 29.46 c 12.05 17 0 -6.78 6.29 -11.72 c 8.3 -32.82 23.46 16.93 8.07 22.35 c 8 2.66 -6.71 6.14 9.46 7.61 c 3 14 16.64 -0.26 26.13 2.55 c 32.39 19.42 72.81 -79.6 67.53 -31.54 c -5.3 44.4 59.74 39.45 70 71.89 c -31.14 62.24 -38.79 16.11 -43.47 72 c -29.17 0.1 -16 25.51 -44.46 23.62 c -13.72 32.26 -12.91 8.28 -48.41 25.21 Z m -212.38 28.13 c -1.44 1.41 -0.7 -2.48 0.24 -2.69 a 2.24 2.24 0 0 1 -0.24 2.69 Z m 3.35 33.22 c -2 1.12 -0.95 0.18 -0.43 -1 c 1.65 -0.77 1 0.09 0.43 1 Z m 0.64 -5.53 c -0.3 1.16 -1.47 -0.54 -1.89 -0.76 c 1.01 -1.47 2.47 -1.15 1.89 0.76 Z m 222.1 27.57 c 7.62 -1.14 21.76 0.37 7.41 5.69 c -10.27 5.51 -23.93 -10.17 -7.41 -5.69 Z m 1017.88 46.09 c 0.84 2.16 -0.18 5.6 -0.92 7.39 c -0.8 -3.74 -5.48 -9.5 0.92 -7.39 Z m 51.67 34.82 c -2.36 0 0.45 -1.22 0.84 -1.7 c -0.22 0.69 0.09 1.53 -0.84 1.7 Z m 11.14 -35 c -0.75 0.2 -2 2.33 -1.82 0.2 c 0.94 -0.08 3.19 -2.34 1.82 -0.15 Z m -6.11 -217.89 c -0.6 0.77 -2.53 -1.45 -1.43 -2.41 c 0.43 0.54 1.48 1.75 1.43 2.46 Z m 14.91 -8.64 c -2.08 2.16 -5.23 4.66 -3 -0.4 c 0.45 -1.58 1.99 0.79 2.99 0.45 Z m -1.65 6.25 a 3.45 3.45 0 0 1 -2.47 0.5 c 1.67 -0.75 4.32 -4.85 2.47 -0.45 Z m -9.91 3.87 c -0.85 0.55 -2 -1.23 -2.44 -1.66 c 0.9 -1.76 4.4 0.02 2.44 1.68 Z M 559.79 841.23 c -6.15 -0.3 0.65 -1.27 1.62 -3.37 c 1.39 1.09 -0.42 2.96 -1.62 3.37 Z m -14.48 -0.67 c -0.54 0.57 -0.69 -1.12 -0.67 -1.4 c 1.35 -1.19 1.83 0.63 0.67 1.4 Z m 26.53 2.46 c 0.22 1.27 -3.23 0.63 -4.29 0.71 c -4.08 -0.77 3.58 -3.99 4.29 -0.71 Z m 10.88 -5.86 c -0.23 1 -2.37 0.06 -2.64 -0.63 c 1.13 -1.48 1.62 -0.12 2.64 0.63 Z m -27.44 -341.2 c -0.14 3.2 -2.78 -6.56 -1.13 -7.6 c 0.54 -0.51 0.41 6.43 1.13 7.6 Z M 6.09 461.15 c -1.24 0.15 -5.14 1.35 -6.09 0 c 1.31 -2.23 6.74 -4.21 6.09 0 Z m 41.37 -49 c -2.53 11 12.82 17.29 21.1 19.93 c -1.33 15.73 -20.56 -9.8 -52.39 25.76 c -10.46 12.32 -3.83 -4.67 6.56 -9.67 c -25.81 2.18 -7.56 -2.84 -9.34 -16.34 c 16.36 -9.14 -19.96 -25.41 34.07 -19.67 Z m 1975.66 1096.32 l -1.34 3.49 c -2.79 -0.53 0.04 -2.81 1.34 -3.49 Z m -14.64 16.31 c 4.28 -11.9 67.88 -16.71 37.84 -3.81 c -23.64 5.21 -38.48 23 -59.38 32.39 c -4.93 0.33 -6.51 -1.54 -2.86 -5.42 c -9.22 -12.89 16.91 -17.44 24.4 -23.16 Z m -451.58 -416.86 l -0.34 2.15 c -1.49 -0.38 -1.31 -3.05 0.34 -2.15 Z m -3.64 -6.41 c -1.28 2.38 -5 -3.58 -2.18 -3.14 a 12.36 12.36 0 0 1 2.18 3.14 Z m -81.3 83.43 c -3.75 7.26 -2.82 -2.56 -2.18 -4.75 c 2.33 -0.76 2.33 2.7 2.21 4.75 Z m 33.69 -36.51 c -0.51 0.86 -1.76 -1.32 -1.83 -2 c 1.28 -0.24 2.03 0.78 1.83 2 Z m -0.07 2.26 c 0.76 1.8 -2 4.73 -2.82 2.24 c -0.27 -2.38 1.1 -1.99 2.82 -2.24 Z m -8.24 62.22 c -1.61 0 -0.77 -3 -0.19 -3.89 c 0.24 0.95 1.52 3.22 0.19 3.89 Z m -21.68 -28.61 c -0.38 1.46 -1.1 -3.66 -1.27 -3.55 c 1.6 0.51 1.6 2.17 1.27 3.55 Z m -5.76 -22.72 c -1.7 0.88 -1.24 -1.51 -0.12 -1.78 a 4.15 4.15 0 0 1 0.12 1.78 Z m 15.6 29.66 c -0.23 0.4 1.49 3.61 -0.21 1.94 c -0.74 -0.69 -1.07 -4.15 0.21 -1.94 Z m 443.78 -314.08 c -4.32 6 -1.55 26.52 -8.11 6.7 c -40.68 -48.71 66.08 -106.37 8.11 -6.7 Z m -52.64 -41.76 c 2.73 2.65 -2.17 3.06 -2.43 1 c 0.87 0.5 1.87 -0.45 2.43 -1 Z m -777.82 314.38 c -1.3 1 -3.61 -2.21 -1.64 -2.25 a 3.84 3.84 0 0 0 1.64 2.25 Z m -1.92 11.82 c 1.53 3 -1.07 0.26 -2.18 -0.39 c -1.4 -1.52 1.97 0.17 2.18 0.39 Z m 2.18 -15.53 c 105.45 76.75 -51.09 117.09 7.8 6.77 c 4.47 -2.68 -11.29 -2.27 -7.8 -6.77 Z m 986.67 -549.29 c -1.7 2.47 -4.05 0.33 -5.09 -1.64 c 4.33 -4.2 5.03 -4.94 5.09 1.64 Z m -13.66 -0.18 c 0.55 4.14 -4.08 1.78 -4.6 -0.19 c -0.91 -3.55 4.56 -2.65 4.6 0.19 Z m -37.1 10.65 c -5.67 1.39 1 -8.09 2.95 -3.11 a 6 6 0 0 1 -2.95 3.11 Z m 5.8 -83.92 c 0.2 1.85 -0.26 5.16 -2.29 2.23 c -1.46 -2.87 0.25 -6.38 2.32 -2.23 Z m 4.7 84.56 c 1.1 2.08 -1.7 1 -2.16 -0.17 c -0.06 -1.93 1.66 -0.81 2.19 0.17 Z m 21.17 -6.62 c -0.45 1.71 -1.7 -1 -0.24 -1.64 Z m -27.95 -46.5 c -0.48 4.13 -2.29 -1.59 -2 -3 a 4.16 4.16 0 0 1 2.03 3 Z m -5 43.66 c -1.58 2.19 -2 -3 -3.33 -3.35 c 2 -2.67 3.73 1.4 3.39 3.35 Z m 96 -68.52 c -0.66 0.83 -1.31 0.67 -2 0 c -0.65 -2.15 3.56 -2.58 2.06 0 Z m -92.87 105.14 c -10.56 -1.25 7.54 -10.69 11.62 -7 c 2.53 5.97 -7.61 6.88 -11.56 7 Z m -452.42 682.48 a 6.11 6.11 0 0 1 -6.46 0.11 c 0.3 -3.4 7.58 -2.59 6.52 -0.11 Z M 227.3 816.29 c -1.1 -0.92 -11.41 -8.18 -6.33 -5.28 c 1.59 0.58 8.79 4.21 6.33 5.28 Z m 102.92 187.07 c 1.27 0 1.89 0.57 0.78 -0.88 c 1.13 -2.33 3.58 1.88 2.85 3.39 s -1.21 -2.82 -4.1 -1.2 c -7.52 -4.31 -0.48 -3.63 -2.1 -7.33 c 3.28 -0.01 0.76 5.02 2.57 6.02 Z M 221.11 808.94 c -1.28 0.74 -1.35 -2.58 -0.26 -3.19 c -0.21 0.94 0.24 2.28 0.26 3.19 Z m 1710.05 154.32 c 5.91 1.08 14.14 10.73 19.74 5.17 c 9.66 -11.11 -4.8 21.81 9 26.33 c -3.51 22.84 -16.82 18 -18.8 28.24 c -8 17.37 2 11.29 0.77 25 c -1.5 7.77 15.42 20.21 11.57 9 c 5.68 -6.29 18.65 -3.21 17.34 6.28 c 0.15 5 7.86 0 4.1 -2.7 c -1 -3.08 15.31 3.27 11.06 5.26 c -12.23 0 3.41 7.51 -0.42 12.63 c 12.52 -3.62 4.68 19.88 2.21 6.31 c 1.47 -2.44 0.81 -3.41 -1.87 -2.08 c -9.91 3.15 -35.21 -43.65 -22.81 -7.17 c -7 -0.5 -16.7 -25.13 -26.93 -8.19 c -13.61 -2.44 -20.64 -7.79 -7.94 -18.84 c -2.56 -7.1 -10.85 -7.85 -7.34 1.55 c -3.3 3.5 -5.72 -4.13 -6.84 -6.44 c -8.57 -2 -3.81 -18.6 -9 -24.17 c -3.9 -14.93 4.75 -0.67 10.7 -2.39 c 3.04 -8.92 -6.36 -55.2 15.46 -53.79 Z m -76.7 210.77 c 3 -16.39 43.08 -35 44.31 -59.34 c -0.09 5.38 7.62 20.08 -1.58 20.32 c -14.73 11.15 -23.64 29.62 -42.73 39.02 Z m 104.92 -64.84 c 20.29 -1.38 12.61 16 -6 20.33 c -11.33 11 -1.27 -9.53 -2.79 -14.4 c 4.06 -9.35 -5.82 -8.17 -1.94 -11.73 a 23.63 23.63 0 0 1 10.73 5.8 Z m 12.85 52.13 c -33.52 -23.23 0.82 -11.85 -6.35 -29.37 c 11.49 -22 18.87 -1.61 7.47 11.66 c -3.91 8.65 8.28 12.6 -1.12 17.71 Z m 29.21 -46.55 c 14.38 -3.37 6.61 11.42 13.87 20.33 c -2.79 7.88 -7.12 -8.08 -4.72 6.47 c -7.54 -2.08 -4.84 -9.27 -4.85 -15.3 c -2.17 -5.58 -3.16 -2.59 -6.91 -2.91 c 0.49 -5.01 -7.35 -19.01 2.61 -8.59 Z m 13.46 -24.35 c 6.74 7.84 14.44 45.49 -5.95 21.55 c -0.71 -14.71 -31.91 -24.01 5.95 -21.55 Z m -91.77 -19.64 c 16.82 -3.75 22.93 22.25 9.12 25.64 c -5.24 -4.83 -7 -11.8 -9.61 -18.43 c -4.52 -3.67 -11.55 -10.25 0.49 -7.21 Z m 107.28 85.31 c 13.67 7.51 -2 15.61 5.59 15.91 c 7.78 15.45 7.11 26.2 -0.86 36.62 c -1.57 24.83 -4.07 -20 -11.53 -9.89 c -12.25 10.74 7.56 20.16 -4.33 31.52 c -6.8 4.48 -2.53 -6.23 -4.54 -8.19 c -5.71 9 -21.67 -1.65 -23.92 -9.36 c -4.23 -10.15 10.26 -20.45 -5.77 -24.52 c -8.75 -7.74 -5.2 17.17 -13.52 0.85 c -8.4 9.84 -7.46 -15.79 -19.3 15.22 c -20.43 -4.59 37.16 -54.67 34.62 -24.24 c -4.88 4.55 11 -2.72 9.54 -7.38 c 2 -5.12 8.38 3.68 8.84 -3.69 c 0.28 -7.13 2.42 -5.81 7.67 -3.64 c 1.35 -2.66 1.37 -4 4.75 -2.5 c 8.52 -0.17 -3.4 -14.27 2.94 -15.64 c 2.78 3.04 8.6 4.53 9.82 8.93 Z m -53.34 -2.62 c -3.91 -7.61 11.6 -27.88 13.53 -37.28 c 3.13 15.18 -6.82 24.95 -13.53 37.28 Z m -29.31 -196.14 c -2.41 3.28 -1.72 -0.3 -0.67 -2.06 c 1.96 -1.02 2.3 1.2 0.67 2.06 Z m -8.11 -10 c 1.32 3.35 -3.1 1.67 -2.94 -0.38 c 0.06 -0.87 2.56 0.46 2.94 0.43 Z m 8.88 -21.47 c -1.71 1.12 -0.44 -2.48 0.63 -2.44 c 1.83 -0.09 -0.58 1.93 -0.63 2.49 Z m -1.65 -8.94 c -0.36 0.5 -0.86 2.2 -1.77 1.73 c -0.01 -1.02 1.59 -4.76 1.77 -1.68 Z m -14.55 305 c 10.83 4.58 0.75 2.73 -4.63 3.62 c -3.08 -2.2 2.64 -4.71 4.63 -3.6 Z m -82.55 -36.62 c -1.52 3.38 -2.52 -1 -2.11 -2.7 c 2.59 -3.01 1.96 1.09 2.11 2.72 Z m 57.4 -53 c -3.27 1.6 -3.81 -1.45 -1.3 -3.16 c 2.28 0.72 4.2 1.49 1.3 3.18 Z m 3.71 -34.49 c 6.21 -0.94 5.48 5 -1.81 3.28 c -3.99 -4.27 -3.89 -9.18 1.81 -3.26 Z m -1.23 9.54 c -2.82 2.28 -2.26 -3.7 -3.6 -5.14 c 2.84 -1.52 5.49 2.72 3.6 5.16 Z m 52.83 25.22 c -5.74 3.56 -0.92 -7.68 1.61 -4.78 c 0.36 1.13 -0.62 4.17 -1.61 4.8 Z m 39.34 14 c -3.06 2.77 -14.35 7.37 -15.72 -0.62 c 4.44 -6.21 15.76 -10.67 15.72 0.64 Z m -87.84 91.91 c -1 3.06 -4.18 0.14 -5.92 3.58 c -8.08 2.06 5.46 -8.13 5.92 -3.58 Z m 37.28 -23.68 a 3.2 3.2 0 0 1 -4.46 -2.72 c -4.36 -5.02 17 -3.71 4.41 2.72 Z m 80.27 -67.78 c -2.48 -0.77 -0.85 -4.47 0.29 -6 c 0.54 1.9 3.43 6.67 -0.34 6 Z m -7.47 -3 c -3.45 -0.88 -5.38 -8.63 -0.47 -10.74 c -0.25 3.28 0.51 7.28 0.39 10.71 Z m -109.66 -78.82 c 1.11 3 -3.59 -0.64 -3.48 -1.37 c 0.14 -2.07 2.96 0.52 3.43 1.34 Z m 33.26 4.35 c 4.65 -0.61 5 4.52 1.82 6.93 c -4.33 -0.92 -4.92 -7.79 -1.87 -6.96 Z m 3.63 24.46 c -1.79 5.51 -1.4 6.37 -3.46 0.48 c 1.38 -6.26 5.81 -9.54 3.41 -0.51 Z m 11.34 0.94 c -1 1.22 -2.42 -1 -3.14 -1.53 c -4.89 -3.49 6.49 -2.94 3.09 1.5 Z m 12.69 -11.21 c 4.51 6.89 -4 -3 -6.73 -4.24 c 1.32 -4.3 4.74 3.89 6.68 4.19 Z m 10 8.23 c 0.71 4.53 -3.16 -2.65 -3.81 -3.69 c 1.38 -2.47 3.31 2.41 3.75 3.66 Z m -1.19 3.43 c 13.94 10.3 3.27 12.81 -3.75 1.86 c -2.71 -2.22 -6.51 7.36 -7.6 4.71 c 2.64 -9.88 1.2 -16.81 11.29 -6.6 Z m 12.89 -27.75 c -10 9 -4.47 -15.68 -0.92 -6.52 c 2.67 0.76 2.52 4.89 0.88 6.49 Z m -44.08 -8.63 c 0.75 2.27 -5.33 -2.77 -4.64 -3.24 c -0.13 -1.68 4.32 3.37 4.58 3.21 Z m -2.87 -19.86 c -1.84 1.45 1.29 7.87 -2.48 7 c 2.06 -3.14 -6.76 -10.37 2.39 -7.03 Z m 46.19 90.73 c -1.14 0.68 0.36 -2.93 1.11 -1.74 c 0.77 0.82 -0.39 1.54 -1.17 1.71 Z m 19.52 12.75 c 0.74 2.59 -3.3 -2.56 -3 -3.53 c 1.82 -0.33 2.51 2.2 2.94 3.5 Z m -47.42 52.33 c 1 1.2 -1.94 2 -2.68 1.89 c -0.9 -2.42 1.4 -2.32 2.62 -1.92 Z m 57.62 9 c -0.34 3 -1.23 -1.89 -2.06 -2.24 c 0.77 -4.76 2.52 0.06 2 2.26 Z m -23.8 -92.28 c -2.7 0.87 -4.21 -1.31 -5 -3.57 c 2.26 -1.7 5.8 0.99 4.94 3.57 Z m 4 48 c -0.24 2.11 -2.85 0.44 -3.39 -0.66 c 0.19 -2.34 3.19 -1.2 3.34 0.66 Z m -71.93 -206.38 c 0.22 2.78 -1.84 0.25 -1.26 -1.21 c 0.55 -1.94 1.2 0.29 1.21 1.24 Z M 1906.12 1111 c 0.79 0.86 -0.09 4.21 -1.27 2.39 c -3.16 -0.64 -0.32 -1.77 1.22 -2.36 Z m 78.83 5 l 1.18 2.72 c -1.78 0.67 -3.14 -2.19 -1.23 -2.73 Z m -29.27 -25.59 c -1.16 1.82 -1.76 -1.27 -0.47 -1.25 Z m 74.06 60.14 c -1.2 1.55 -1 -3 -0.06 -3.38 a 4.27 4.27 0 0 1 0.01 3.37 Z m -22.59 -40.94 c -0.61 2.7 -2.45 -1.31 -2.5 -2.47 c 1.13 0.32 1.61 1.74 2.45 2.46 Z m -151.75 69 c -1.8 1.11 -1.76 -0.65 -1.5 -2 c 1.32 -0.2 1.59 0.87 1.45 1.99 Z m 128.35 -20.8 c 1.82 5 -6.4 1.36 -3.29 0.48 c 0.96 -0.53 2.41 -2.07 3.24 -0.49 Z M 668.86 929.06 c -5.36 0.36 3 -7.39 3.28 -9.91 c 2.5 3.65 -1.69 6.75 -3.28 9.91 Z M 2008.13 476.9 c -2.17 2 -1.17 -2.19 0.6 -1.87 Z m -309.14 826.63 c 5.71 10.59 22 5.57 30.69 12.88 c 3.86 -0.13 -2.64 -1.29 -2.36 -3.44 c 2.21 -3.46 3.38 -7.71 4.84 -11.7 c -5.58 -11.54 5.12 0 3.49 -7.21 c -0.29 -11.79 25.3 -7.33 32.46 -14.23 c 15 -22.55 27.9 -33.1 50.8 -38.05 c 1.22 -4.83 -7.67 -3.42 1 -10.3 c 10 4.49 16.74 -26.46 24.87 -27.28 c 1.59 2.58 -3.35 9.17 1.63 5.92 c 2.22 -1.64 2.88 -7.74 6.4 -5.67 c -0.47 8.39 17.23 9.3 5.49 21.35 c 7.49 -6.44 61.3 20.26 16.57 17.62 c -3.65 1.37 -2.29 5.06 0.09 6.92 c 17.13 11.5 -14.22 3.78 -15.34 10.21 c -6.9 2 10.52 9.79 1.29 10.6 c -1.31 -0.31 -2.59 -3.21 -2.73 -0.59 c -23 -1.94 24.21 23.58 6 33 c 5.45 7.63 15.2 11.93 21.51 18.72 c 9.55 4.5 -12 9.53 -19 -0.06 c 3 3.46 -0.13 6 -3.37 7.42 c -11 11.68 3.2 29.49 -12.11 35 c -6.34 9.61 -7.56 0.28 -8.51 1.79 c 2.71 6.71 -5.87 9.42 -9.12 13.81 c 1.48 -0.21 3.58 -0.53 3.12 1.6 c -0.18 9.37 -5.07 1.76 2.75 8.76 c 1.76 4.62 -8.08 5.52 -3.85 5.6 c -0.54 9.56 -4.42 8.89 -7.61 19 c -48.8 29.83 -11 -10.94 -47.87 -2.08 c 0.2 -11.05 -3.36 2.58 -12.13 -9.8 c -0.64 10.73 -11.62 7.78 -18.36 9 c -14.17 12 6.15 -18.78 -24.22 -6.24 c -4 -1.46 0.78 -5.28 -4.59 -1 c -18.33 -2 -8.58 -24.82 -16.79 -38.62 c -17.43 -5.42 -29.83 -50.43 -5.04 -62.93 Z m -109.42 -14.17 c -2.42 1 -1.86 -1.77 -0.74 -2.82 c 0.23 0.58 0.99 2.15 0.75 2.82 Z m -79.58 -51.67 c -2.18 2.34 -2.66 -3.12 -0.88 -3.49 c 2.27 0.49 1.75 1.97 0.88 3.49 Z m -8.92 -23.66 c 3.23 2.38 -1.88 5.63 -2.9 2.59 c -3.42 -2.49 1.82 -0.93 2.91 -2.57 Z m 350 -14.23 c -2.46 2.72 -1.93 -2.76 0.11 -3.42 c 3.81 -1.51 3.26 3.8 -0.19 3.44 Z m -320.19 84.37 c -1.7 1 -1.11 -1 -0.15 -1.58 c 0.47 0.25 0.16 1.21 0.11 1.6 Z m 203.75 11.52 c -2.73 2 -2.11 -10.84 -0.23 -5.92 a 30 30 0 0 0 0.23 5.92 Z m 126.67 -35.31 c 0.13 -3.72 5.22 -1 5.44 1.58 c -0.06 2.64 -7.23 1.4 -5.44 -1.54 Z M 457.46 720.01 c -4.16 1.95 -4.24 -6.55 -1.83 -8.23 c 1.85 2.18 5.12 5.77 1.83 8.23 Z m 38.63 -388 c -3.67 3.79 -5 -8.48 -1.37 -5.8 c -2.73 1.6 -1.36 5.22 1.37 5.82 Z m 2.58 -3.34 c -1.48 1.14 -1.06 -2.32 -0.34 -3 c 1.99 -0.98 0.66 2.21 0.34 3.02 Z m 48 -12.59 c -0.8 0.81 -2.21 -1.11 -2.59 -1.78 c 1.28 -3.04 3.31 -0.41 2.56 1.8 Z m 1632.8 245.9 c -2.62 2.93 -5.44 -2.39 -1.52 -3.41 c 0.42 0.73 2.22 2.48 1.49 3.43 Z m 100.64 -40.84 c -4 0.55 -0.71 -0.93 -0.44 -3.77 c -4.05 -1.65 1.1 -6.81 3.67 -8.87 c -1.92 5.82 4.11 8.64 -3.26 12.66 Z m -69 88.1 c -7.89 6.95 -4.27 -6.31 1.45 -6.25 c -1.17 1.57 -2.57 4.37 -1.51 6.27 Z m -87.22 95.91 c -3.66 1.86 -6.4 -3 -2.54 -4.73 c 2 1.27 4.52 2.14 2.48 4.75 Z m 6.82 -3.13 c -4 1.19 0.64 -8.07 1.62 -9.87 c 2.66 1.21 -1.83 7.3 -1.68 9.89 Z m -17.75 -43.2 c -4.12 2.25 -0.62 -4.57 -1.47 -7 c 5.28 -2.13 4.5 4.87 1.41 7.02 Z m -16.25 -45.57 c -2.9 3 -1.39 -3.53 -1.31 -4.81 c 3.24 0.39 2.44 2.58 1.25 4.83 Z m 2.15 -5.61 c -3.45 3.62 -1.92 -7.76 1.32 -8.14 c 2.08 2.46 -1.84 5.6 -1.38 8.19 Z m -14.58 37.95 c 2.25 1.28 3.74 -1.24 4.64 3.15 c -3.61 1.46 -5.82 1.87 -4.7 -3.13 Z m 34.72 8.61 c -3.59 0.6 -2.94 -1.42 -0.31 -2.47 c 2.57 -0.04 1.55 1.08 0.3 2.49 Z m 216.36 -335.85 c -1.19 4.37 -2 -2.27 -2 -3.81 c 2.15 -0.29 1.9 2.29 1.94 3.83 Z m 4.5 6.12 c -2.33 0.85 -4.54 -2.24 -2 -3.68 c 1.21 0.32 3.48 2.52 1.94 3.7 Z m -36.71 84.63 c -2.63 0 -1.08 -4.76 1.56 -4.2 c -0.24 0.45 -1.01 4.16 -1.62 4.22 Z m -103.86 195.39 c -2.47 1.72 -1.27 1.39 -3.31 -0.32 c -0.66 -0.99 5.12 -1.57 3.31 0.32 Z m 103.3 -5.95 c 0.09 1.56 -1.26 1.24 -1.81 0.15 c -0.32 -1.91 1.4 -1.72 1.81 -0.15 Z m -210 45.72 c -2.63 -0.53 -0.06 -5 0.67 -7 c 1.59 5.81 1.48 1.88 -0.71 7 Z m 8.4 -9.2 c -4 4 -1.23 -3.69 1.58 -3.32 a 7.06 7.06 0 0 0 -1.58 3.32 Z m 6.15 -12.7 c -2.42 2.39 -2.78 -0.9 -1.59 -2.65 c 1.09 0.25 1.44 1.66 1.55 2.65 Z m 56.31 -8.89 c -0.27 1.23 -1.49 0.86 -2.38 0.68 c 1.25 -1.29 1.16 -2.96 2.34 -0.68 Z m -6.33 4.13 c 0.69 1.51 2.73 0.18 3.63 0.78 c -1.39 3.46 -7.91 -0.53 -3.67 -0.78 Z m -51.56 54.83 c -1.68 1.14 0.57 -2.77 1.41 -3.08 c 0.51 0.92 -0.98 2.43 -1.45 3.08 Z m 252.31 116.26 c -0.48 0.43 -1.44 -2.21 -1.64 -2.36 c 1.01 -0.43 2.29 1.53 1.64 2.36 Z m 33.12 -435.8 c 6.25 -1.29 11.92 5.92 18 5.3 c 3.69 0.78 14.51 -17.25 12.88 -8.48 c -7.27 7.77 -4.83 33.38 8.08 23.3 c 0.5 4.19 -15.83 10.2 -22.67 12.42 c -36.23 -3.07 -11.79 46.57 -56.25 10.1 c -15 -1.39 -14.18 12.8 -23.1 0.65 c -24.56 4.1 12.42 15.71 7.47 21.64 c -9.34 -1.59 -10.61 1 -16.36 8.2 c -11.09 3.54 -0.85 -11.87 -4.32 -16.53 c -17.21 -13.89 14 -18.93 6.53 -32.07 c 5 -7.15 24.42 13.72 20.6 -11.27 c 17.36 -79.74 -4.61 -53.39 49.14 -13.26 Z m -256 273 c 7.95 0.86 15.33 -3.83 7.34 7.93 c 9.13 -0.63 5.92 4.36 9.4 9.42 c -12.65 11 -8.67 35 -15.22 35 c -3.61 -2 -5.27 0.53 -3.06 3.62 c -1.77 2 -11.9 9.17 -6.88 2.36 c 1.56 -3.26 -0.61 -6.82 -1.1 -9.94 c 5.36 -2.68 -1.88 -5.89 -3 0.33 c -1.92 7.38 8.19 11.57 -7.19 6.4 c -2.15 -3.61 6.27 -5.93 0.48 -10.35 c -3.35 -15.42 17.51 -15 1.27 -34 c -4.6 -1.64 -2 4.69 -2.27 7.29 c 2 -0.2 3.92 -0.55 3.76 2.29 c -3.13 6.6 -2.94 -6.28 -12 4.42 c 3.61 -4.48 -3.88 -7 -1.81 -11.72 c 2.44 1.4 2.82 5.83 6.32 5 c -0.33 -5.43 -9.53 -6.85 -7.72 -11.83 c 10.17 1.89 20.95 -25.91 31.68 -6.21 Z m 64.41 -15.87 c 15.44 4.56 0.31 14.09 -3.08 22 c -0.24 6 -5.36 -5.62 -10.52 -4.08 c -8.3 -1.45 -18.78 29.07 -19.76 14.78 c -10.25 1.23 1 -18.75 -12.61 -10.53 c -3.61 -0.22 13.51 -5.81 14.13 -15.79 c 5.67 -5.83 3.63 1.37 8.27 1.44 c 11.8 -0.03 9.03 -16.26 23.58 -7.81 Z m 139 -181.78 c 8.56 -2.69 1.23 11.09 4.08 17.36 c 15.76 17.61 13.72 52.25 -6.52 62.34 c -6.75 16 2.27 30.75 -9.92 48 c 3 32.37 8 2.86 -5.34 31.4 c -24.37 21.72 3.64 -26.47 -11.87 -7.74 c -5.76 3.57 1.54 5 -1.88 8.53 c -10.34 -11 -10.19 4.19 -14 11.08 c -8.25 6.75 -1.13 -8.84 -3.27 -9.76 c -20.85 8.58 3 10.44 -35.6 12.58 c 3.5 -3.26 8.45 -4.85 -0.6 -4.48 c -1 -3 -2.5 -1 -1.78 1.09 c -4.15 -2.92 1 -16.46 -7.43 -1.66 c -3.52 5.16 6.16 6 6.16 10 c -13.56 1.3 -21.32 33.84 -31 16 c -12.5 -11.53 3.43 -15.93 0.17 -22.71 c -20.72 -8.73 -38.83 14.25 -59.37 7.37 c -12.32 20 -2.57 4.44 -25.72 9.18 c -15.91 -6.42 4.56 -10 9.26 -15.6 c 12.93 -5 18.68 -23.36 33.57 -23.17 c 17.39 6.08 32.79 -9.31 47.25 1 c 13.81 0.49 4.35 -14.19 13.35 -19.16 c 18.19 -15.43 0.54 -24.74 19 -30.48 c 7.75 -1.71 -2.68 7.65 -5.56 8.25 c 12.68 33.5 83.1 -56.34 57 -70.84 c 11.3 -7.09 -2.53 -19.77 10.92 -24.49 c 3.18 -5.58 -3.2 -12.14 7 -9.33 c 1 14.84 1.7 5.53 9.93 8.36 c 6.42 -7.25 1.45 -11.19 -6.43 -6.85 c -0.21 -6.48 1.93 -13.82 8.66 -6.26 Z m -342.71 407.29 c -0.46 2.71 -2.7 6.16 -4.22 1.77 c 2.88 -0.21 5.8 -5.21 4.28 -1.76 Z m -8.19 5.21 c -1.54 0.59 -6.53 -0.25 -2.76 -1.51 c -0.65 -2.83 5.95 -0.25 2.82 1.52 Z m 31.48 -10.24 c -2.86 1.4 -4.05 0 -3.25 -2.85 a 14.25 14.25 0 0 0 3.31 2.86 Z m 57 -42.65 c -8.42 2.33 -10.74 17.27 -12.33 11.19 c 1.22 -1.79 0.89 -6.19 3 -6.6 c 4.82 -3.76 1.66 -2.2 2.25 -5.51 c 3.98 3.9 10.91 -10.48 7.09 0.93 Z m 15 -24.17 c -2.43 1.79 -3.29 -4.19 -0.94 -4.31 c 0.18 1.32 1.71 3.08 0.95 4.32 Z m 9.19 -11.13 c -0.64 3.35 -7.16 -1.29 -4.76 -1.23 c 7.32 -4.98 14.58 -9.54 4.74 1.24 Z m -2.6 2.38 c 0 1.55 -2.8 -0.73 -2.66 -2 c 1.23 0.03 1.8 1.29 2.64 2.01 Z m 212.82 -115.86 c -0.32 0.6 -1 -0.39 -1.32 -0.54 c -0.91 -2.25 3.17 -0.69 1.3 0.55 Z M 617.58 781.81 c -4.3 6.2 -11.23 6 -17.74 7.4 c -1.33 -3 12.31 -2.45 8.82 -7.63 c 1.21 0.7 14.33 -3.24 8.92 0.23 Z m 835.61 533 c 1.41 4.27 10.17 7.18 8.51 11.68 c 1.15 18.12 -25.79 -19.1 -8.51 -11.65 Z m 34 65.19 c -13.94 0.91 -12 -29.84 -2 -10.8 c 0.11 3.49 7.74 9.91 2.04 10.83 Z m 353.67 138.07 c -0.71 1.55 -3.8 4.39 -1.1 5.53 c -2 1.75 -18.69 -0.64 -13.6 -2.6 c 6.73 1.35 0.1 -7.16 6.18 -9.41 c 4.79 -4.02 13.65 0.39 8.56 6.51 Z m -24.15 -9.32 c 11.88 6.15 -3.09 8.37 -6.12 14.1 c -5.3 -13.66 -28.8 -15.25 6.16 -14.07 Z m -190.22 -130.9 c 4.16 22.09 16.94 15.08 13.38 19.89 c -3.28 11.32 -0.19 8.39 -11.76 4 c -7.79 -1.91 -2.81 -20 -15.84 -14.69 c -9.77 0.25 5.72 -18.15 7.24 -7.93 c 0.3 -4.62 5.06 -7.06 6.98 -1.27 Z m 346.73 58 c 1.5 11.64 -1.54 -2.91 -3.91 8.31 c -3 5.07 9.55 5.51 1.15 9.21 c -2.8 -1.73 -2.54 3 -3.91 4.41 c -7.78 2.51 -4.63 -5.18 -1.67 -9.3 c 1.66 -4.79 1.63 -22.2 8.34 -12.61 Z m -10.82 14.49 c -10.11 11.11 -7.93 -17.16 1.91 -12 c 2.07 4.79 -3.39 8.04 -1.91 12.02 Z m -290 -180.28 c -3 1.46 -6.16 -0.46 -1.62 -1.92 c -14.33 -7.14 9.8 -12.34 1.66 1.94 Z m -2.21 134.49 c -0.64 5.47 -4.25 4.85 -7.06 1.79 c -3.26 4.46 -5.47 1.74 -5.55 -2.93 c -2.42 -11.72 18.21 -8.86 12.65 1.16 Z m 549.93 -47.19 c 28.92 2.53 15.79 23.1 7.36 3.46 c -2.12 1.87 -7.05 -0.61 -7.32 -3.44 Z m 1.85 18.91 c 9.2 1.42 20 1.25 28.7 4.18 c -8.75 3.1 -22.45 1.06 -28.68 -4.16 Z m -94.32 -31.92 c 7.73 0.23 16.2 7.74 3.88 7.17 c -1.8 0 -8.08 -8.6 -7.42 -4.38 c 18 12.4 -25.95 -0.74 3.58 -2.77 Z m -47.66 -41.31 c -10.75 2.42 0.14 -17.61 4.75 -8.49 c -0.81 2.69 -1.48 7.75 -4.75 8.49 Z m -6.09 74.63 c -3.84 1.29 -9.91 1 -14.07 0.73 c -5.08 -9.33 12.16 -7.48 14.02 -0.71 Z m -42.45 15.91 c -1.68 1 -6 -10.11 -1.87 -9.57 c 0.26 2.68 1.76 6.75 1.82 9.57 Z m -0.62 -13.31 c 15.6 1.38 -7.49 2.93 -12 3 c -2.53 -5.15 8.76 -1.58 11.95 -3 Z m -21.35 -1.69 c 1.38 0.73 2.55 0.93 3.57 -0.26 c 2.27 1.49 -0.58 1.33 3.23 2 c 0.18 4.14 -12.71 1.49 -15.88 4.28 c -10.58 -4.25 3.15 -10.17 9.03 -6.02 Z m 128.62 127 c -13.83 3.22 10.77 -31 7.4 -11.38 c -0.74 5.01 -6.2 6.91 -7.45 11.42 Z m -91.56 -6.73 c -2.27 6.36 -13.95 3.21 -19.72 6.31 c -3.4 -6.29 15.37 -8.75 19.67 -6.27 Z m -45 9.6 c 0.21 2 8.31 -0.74 11.11 1.3 c 1.85 7 -26.32 5.54 -11.19 -1.26 Z m 130 -137.75 c -4.07 2.23 -5.55 -4 -6.75 -6.67 c 6.49 -4.1 10.2 -0.72 6.71 6.71 Z m -698.32 -131.71 c 33 -5.4 24.59 13.53 43.83 26.24 c 10.62 3.18 48 48.54 43.69 34.91 c 4.88 -7 10.69 7 13.33 10.07 a 16.83 16.83 0 0 1 15.43 14.13 c 3.26 6.25 26.56 6.2 11.08 13.93 c -9.32 2.65 1.06 1.4 4.38 -0.69 c 3.49 -2.41 8.44 -5.8 11.65 -1.11 c 10.86 11.86 -4.78 3.31 -2.83 19.35 c 9.3 11.92 23.5 7.61 22.86 27.07 c 11.49 5.4 2.33 5.36 1.26 12.5 c 11.36 -7.12 22.67 -2.4 28.84 12.43 c -9.15 6.5 3.2 55.79 -9.67 52.42 c -8.58 -11.35 -3.84 6.46 -19 -4.85 c -1.52 3.19 4.15 11.83 -3.21 5.71 c -51 -41.19 -90.65 -92.32 -116.93 -151.06 c -13.03 -12.86 -114.1 -97.26 -44.75 -71.01 Z m 532 279 c -13 8.69 -95.54 6.17 -44 -7.54 c 8.6 2.9 16.4 8.27 25.35 5.15 c 6.16 -1.13 10.25 6.49 15 -1.86 c 12.05 -4.45 2 -2.91 3.83 -5.6 c 8.15 -2.24 1.3 8.11 -0.21 9.91 Z m -56.07 15.53 c 26.18 12.71 13.86 27 -1.65 12.08 c -28.46 -8.25 -22.04 -13.81 1.62 -12.02 Z m -35.82 -21.5 c 2.43 2.3 5.91 -3.33 8.67 0.12 c 1.45 3.09 6.86 -6 7.93 5.61 c 5.87 5.13 -11.19 0.23 -4.57 4.25 c -13.17 3.5 -5.83 -6.17 -13.09 0.65 c -10.33 3.84 -43.28 9.44 -22.79 -8.06 c 8.24 -6.43 13.64 9.49 21.05 4.19 c 7.81 -1.31 -6.05 -4.65 -6.83 -7.55 c -2.39 -4.98 7.98 -5.32 9.6 0.85 Z m 134.5 -187.8 c -18.19 34.64 -135.89 -21.75 -85.42 47.56 c 14.88 2 7.83 -4.43 18.37 -10.9 c 12.51 5.32 23.19 -5.6 34.52 -4.76 c 6.08 1.54 1.69 13.56 -2.6 6.34 c -9.23 -2.52 -24.13 24.74 -35.58 18.64 c 3.54 10.6 26 20.46 17.37 36 c 32.76 26.55 -4.44 6.74 -4.35 24.43 c -19 3.08 -3.62 -14.37 -12.59 -17.1 c -13.75 -6.17 -7.13 -13.72 -7.35 -24.82 c -24.2 -12 -12.08 44.83 -12.6 57.23 c -7.76 -3.44 -15.9 6.58 -21.32 -3.35 c 14.79 -65.32 -13.18 -18.63 -12 -54.5 c 16.66 -10.1 4.81 -29.1 18.78 -41 c 6.07 8.81 -0.36 -7.86 0.21 -11.9 c 20.94 -52.48 52 -7 92.11 -22.33 c 8.08 -11.46 28.61 -21.31 12.42 0.52 Z m -354.43 141 c 4.61 7.71 15.92 2.49 21.15 7.59 c 6 14.44 24.31 8.07 37.27 10.72 c 8.59 4.83 6.52 -14.38 15 -9.06 c 16.86 11.09 29.51 2.69 40.73 24.17 c 146.44 44.6 -275.56 -15.35 -114.18 -33.37 Z m 412 -138 c 7.87 0.3 5.67 -10.65 14 -13.45 c 11.17 -4.27 5.33 12.79 -2.54 12.87 c -3.49 4.47 5.25 5.07 7.22 7.41 c 11.9 16.38 -25.08 -16.06 -13.71 15.21 c 0.79 4.08 12.83 17.78 5.17 10.84 c -25.24 -6.6 -8.79 -92.08 -4.48 -42.6 c -0.68 3.92 -11.87 6.19 -5.71 9.74 Z m 40.92 74.68 c 17.82 0.54 30 23 16.7 17.78 c -15.26 -13.27 -23.22 -2.28 -32.83 -10.22 c -6.29 -0.82 -7 10.14 -13.72 0 c -4.38 -7.06 -7.85 12 -7.12 2 c -0.67 -15.61 28.03 -9.2 36.92 -9.54 Z m -58.56 4.47 c 21.57 11.63 -11.39 21.74 -16.74 5.39 c -2.03 -7.48 11.6 -5.51 16.69 -5.37 Z m 159.58 52.81 c 2 11.57 -4.34 19.25 -12 6.31 c 4.95 0.2 3.93 -4.38 1.06 -6.31 c 6.79 0.06 6.1 -11.92 10.89 0.02 Z m -4.25 14.86 c -1.78 13 -15.51 9.15 -6.93 0.35 c -5.6 -8.64 2.46 -3.34 6.88 -0.33 Z m 80.91 37.12 c -23.85 12.76 -18.22 -15.4 0.17 -18.14 c 14.38 0.06 7.47 13.04 -0.18 18.16 Z m 49.34 -114.41 a 65.31 65.31 0 0 0 3.46 16 c 3.35 9.48 6.85 12.28 8 18.65 c 1.71 9.26 -3.17 17 -5.63 21.67 c -16.16 30.57 -3.55 70.24 -10.24 71.56 c -2 0.4 -5.73 -2.77 -13 -20.53 c -2.56 4.08 -17.32 8.85 -17.57 1.19 c -0.51 1.88 -7.08 7.47 -7.77 4.26 c 10.57 -17.31 -10.45 -20.54 3.1 -19.61 c 7.84 -0.23 -8.52 -1.2 -8.46 -6.38 c 12.16 -0.75 -8.65 -12.44 -5.79 -20.7 c -9.76 -26.16 -57.35 -19.85 -73.4 -37.85 c 6.47 -4.45 -0.28 0.55 -4.44 -1.27 c -26.78 -3.49 -8.39 -24.53 -16.32 -15.37 c -15.15 38.27 -11 7.32 -26.56 -4.23 c -24.5 -6.14 30.36 -7.39 31.5 -11.76 c 0.94 -10.34 -22.19 2 -34.35 -4.33 c -12.13 -12.19 3.76 -9.86 -18.49 -15.73 c -21.68 -4.58 44.47 -39.78 59.77 -1.66 c -5.44 5.61 1.91 38.58 5.48 24.64 c 5.07 -2.62 0.58 11.56 6.58 7.51 c 5.43 31.26 44.59 -30.67 62.08 -28.67 c 10.77 -2.17 18 -0.4 22.71 1.65 c 7.91 3.47 10.17 8.53 19.2 13.92 a 55.33 55.33 0 0 0 20.09 7.06 Z m -42.06 116.75 c -1.21 0.5 -9.59 -0.08 -5.55 -2.44 c 1.94 -3.85 5.65 -0.66 5.5 2.46 Z m -752.51 -211 c 2.77 2.69 -0.32 8.52 -4.2 7 c -4.58 -3.81 -0.16 -9.22 4.15 -7 Z m 14.55 21.89 c -3 1.7 -4.86 -6.12 -3.46 -8.18 c 3.77 0.96 4.07 4.93 3.41 8.18 Z m 1.31 -9.43 c 1.63 4.65 -7.75 -0.93 -9.53 -2 c -1.46 -2.9 10.19 1.01 9.48 2 Z m 10.84 14.32 c -3.39 0.4 -15.92 -1.24 -9.68 -7.71 c 2.27 3.67 9.2 3.22 9.63 7.71 Z m 2.81 -2.48 c -1.77 1.83 -4 -1.89 -5.67 -2.55 c -9.62 -2.96 1.79 -5.76 5.62 2.55 Z m 2.39 6.6 c -2.85 0.71 -3.64 -0.91 -2 -3.18 c 1.53 -0.34 2.45 1.94 1.95 3.18 Z m 3.35 -2.47 c -1.09 0.54 -3 -3.36 -1.3 -4.12 c 1.11 1.1 3.12 2.79 1.27 4.12 Z m 11.63 -10.37 c 3 1.47 2.91 0 0.83 3.84 c -3.82 -0.5 -2.88 -2.12 -0.88 -3.84 Z m 11.34 -0.72 c 4 5.35 -2.31 11.51 -3 3.34 c -8.44 1.86 -1 -3.76 3 -3.34 Z m 3.91 28 c 9.64 2.63 -1.26 2.18 -6.17 0.72 c -0.19 -4.87 3.26 -4.95 6.12 -0.73 Z m -6.16 3.19 c 4.65 3.52 -0.14 4.68 -2.24 6.51 c -2.03 -4.52 -2.66 -4.85 2.19 -6.52 Z m -14.93 0.26 c -1.25 0.48 -6.56 1.46 -5.21 -1 c 0.73 -2.46 6.58 -0.92 5.16 0.99 Z m 120.89 16.74 c -5 3.53 -7 1.57 -4.74 -3.92 c 2.38 -0.75 8.03 1.01 4.69 3.91 Z m 83.66 119.46 c -6.8 1.16 -16.89 5.22 -22.64 -0.66 c 0.69 -6.45 37.43 -6.04 22.59 0.65 Z m 427.35 -120.8 c -3.57 2 -3.87 -5.5 -0.5 -2.75 c 0.34 1.42 1.55 1.12 0.5 2.75 Z m -156.13 -12.47 c -3.57 2.69 -3.93 -4.34 -1.22 -4.82 c 2.54 0.1 1.7 2.5 1.22 4.85 Z m 6.41 -3.53 c 1.85 1.76 2.71 3.77 0.76 5.86 c 0.53 2.58 7.58 1 4.81 4.77 c -9.23 0.96 -14.85 -10.85 -5.57 -10.63 Z m 108.45 112.44 c -4.25 6.11 3.36 -11.33 4.29 -11.8 c 2.48 3.78 -4.26 7.89 -4.28 11.81 Z m -2.42 -1 c -3.2 5.29 -2.22 -2.93 -3.58 -4.92 c 2.1 -0.38 3.55 3.08 3.55 4.89 Z m -91.7 -43.9 c -3.34 3.29 -1.74 -0.74 -3.33 0.24 c -1.33 0.42 -3.46 3 -3.76 0.26 c 1.63 -2.21 10.42 -6.53 7.1 -0.53 Z m -29.52 -155 c -4.53 1.64 1 -3.73 -2 -7.71 c 3.12 -7.56 4.4 5.07 2.01 7.63 Z m -23.44 12 c -2.91 1.94 -3 -3.22 -4.11 -5 c 0.9 -2.73 3.42 3.74 4.12 4.95 Z m 105.31 236.92 c -4.55 2.18 2.44 -3.69 3.19 -4.62 c 7.02 1.87 -2.11 1.45 -3.18 4.57 Z m -20.68 -7.46 c -1.26 5.06 -7.68 -2.27 -3.71 -3.24 c 1.92 0.12 4.5 0.65 3.71 3.24 Z m -40.78 2.93 c 1.43 0.86 5.28 0.17 6 1.46 c -0.92 2.85 -8.4 0.61 -6.02 -1.45 Z m 51.19 -129.35 c 8.62 12.1 -22.28 5.58 -7.28 1.37 c 2.22 -0.54 5.05 -0.77 7.26 -1.36 Z m -566.32 76.31 c -1.74 0.66 -4.31 -1.89 -5.19 -3.16 c 1.24 -1.73 7.6 0.94 5.17 3.17 Z m -39.3 -46.29 c 2.67 7.94 -5.65 -5.25 -5 -7.3 c 0.74 -2.66 7.99 4.51 4.98 7.31 Z m -4.48 -8.89 c -3.28 5 -6.1 -2.18 -3.89 -4.65 c 0.58 0.75 4.58 3.37 3.87 4.66 Z m -7.3 -8 c -0.27 0.89 -5.65 -2.13 -6.19 -3.65 c 1.18 -7.17 4.49 1.24 6.18 3.65 Z m -28 -36.45 c -6 2.79 1.72 -7.91 -2.77 -10.64 c 4.22 0.26 5.08 7.49 2.76 10.64 Z m -40.39 -58.11 c -4.37 -1.83 -13 -4.64 -15.1 -9.37 c 3.63 -3.46 13.93 5.12 15.08 9.37 Z m 517.62 156.92 c -3.79 1.21 -5.2 -4.45 -3.57 -6.9 c 3.76 -1.93 4.25 4.33 3.55 6.9 Z m 23.66 -85.92 c -1 9.69 3.88 -3.42 6.78 3.34 c -1 4.22 -2.73 3.57 -5.51 2 c -2.28 7 -2.36 1.44 -2.52 -2.67 c -7.87 12.87 -10.27 -5.71 1.23 -2.67 Z m -27.27 -15.37 c 3.39 1.93 -5.52 2.78 -3.89 1.45 c 0.91 -1.44 2.4 -1.3 3.87 -1.45 Z m -27 118.68 c -1.7 8.08 -1.62 -5.64 -1.65 -8.53 c 1.64 -5.75 2.24 6.69 1.59 8.53 Z m -104.24 13.61 c -3.54 1.4 -4.39 -2.83 -0.47 -2.68 c 4 0.61 4.45 1.87 0.41 2.68 Z m 18.75 -62.66 c -3.15 2.81 -5.89 6.13 -4.58 -1 c -3.56 -13.55 7.1 -12.36 4.52 1 Z m 134.48 142.83 c -8.38 -1 6.18 -6.38 7.9 -8.66 c 4.67 3.35 -4.46 7.25 -7.96 8.66 Z m 27.06 -52.61 c -1.69 1.78 -3.86 7.49 -5.45 2.32 c -2.21 0.37 -1.66 -0.24 -0.92 -1.82 c 2.69 0.23 7.91 -5.91 6.31 -0.5 Z m -7.32 -1.16 c -6.26 1.25 -6.82 8.41 -14.06 5.25 c 5.43 -4.72 8 -8.34 14 -5.25 Z m -12.29 1.67 l -0.41 0.89 c -12.98 1.33 1.95 -7.24 0.34 -0.89 Z m 230.66 -36.6 c -1.24 0.61 -1.37 -0.56 -1.66 -1.46 c 0.93 -0.88 2.23 0.41 1.6 1.46 Z m -633.22 -153 c 0.62 2.18 -1.76 0.55 -2.2 -0.46 c 1.14 -1.76 1.3 -0.94 2.14 0.45 Z m 8.19 5 c 0.61 1.34 -2.31 -0.76 -1.79 -1.42 c 0.28 -1.02 1.58 0.88 1.73 1.38 Z m 8.31 -0.66 c -1.09 1.38 -3.75 -1.25 -2.36 -2.21 c 0.52 1 2.35 0.88 2.35 2.17 Z m 9.1 15.56 c 0.07 1.47 -3.38 -2.64 -3.84 -3.46 c 1.27 -0.04 3.08 2.48 3.78 3.42 Z m 32.3 -62.29 c 0.4 2.62 -1.87 0.47 -1.7 -1 c 0.65 -1.15 1.66 0 1.64 0.96 Z m -10.62 5.92 c -1.78 0.46 -1 -2.87 -1.38 -4 c 1.85 1.12 4.1 2.15 1.32 3.93 Z m 63.28 -0.85 c -0.61 0.84 -1.19 1.23 -2 0.39 c 0.93 -1.15 2.22 -3.96 1.93 -0.43 Z m 1.33 91 c -1.62 0.71 -2.71 1.15 -3 -1 c 0.97 -0.73 3.6 -0.91 2.94 0.94 Z m -29.95 25.75 c -1 1.06 -1.83 -0.29 -1.09 -1.24 c 1.17 -0.24 1.92 -0.07 1.03 1.18 Z m -11.87 2.13 c -0.42 0.84 -1.76 0 -2.27 -0.38 c -2.5 -2.34 4.34 -2.21 2.21 0.28 Z m 152.29 83.32 c -0.07 2 -3.1 -0.51 -1.83 -1.07 c 0.84 -0.52 1.49 0.25 1.77 1.01 Z m -34.26 -26.75 c -0.12 1 -1.72 0.63 -2.37 0.66 c -1.24 -1.94 3.31 -3.74 2.31 -0.72 Z m -151.09 16.77 a 2.2 2.2 0 0 1 -2.23 0 c -1.15 -1.9 4.31 -3.85 2.17 -0.06 Z m -160.24 -175.51 c -0.36 0.78 -3.2 -2.89 -4.57 -2.84 c 1.94 -0.86 4.92 0.25 4.51 2.78 Z m -39.91 -75.3 c -0.54 1.76 -3.7 -1.43 -2.43 -1.92 c 1 0.29 2.98 0.29 2.37 1.86 Z m 571.37 151.29 c -3.76 1.88 -2.25 -6.47 -0.73 -3.06 c 0.58 0.94 1.34 1.76 0.67 3 Z m -7.19 48.49 c -1.74 5 -7.81 0.15 -4.4 -2.67 c 1.56 0.17 5.38 -0.25 4.34 2.61 Z m 12.26 -43.44 c 0.74 1.13 -0.13 0.73 -0.9 0.79 c -0.91 -2.05 -0.61 -2.94 0.84 -0.85 Z m -14.07 -2.79 l -1.5 1.66 c -0.67 -1.12 1.06 -3.84 1.44 -1.72 Z m -74.74 139.82 c -3 1.66 -0.95 -8.21 0.35 -5.45 c 4.54 0.76 -1.95 3.36 -0.35 5.45 Z m -7.9 -10.2 c -1.63 0.43 -1.17 -1.9 0.1 -2 c 1.4 0.09 1.32 1.76 -0.06 1.99 Z m -70.1 10.79 c -0.52 1.48 -2.09 -0.53 -2.62 -1.11 c 1.22 -1.33 3.12 -0.8 2.62 1.1 Z m 41.46 -243 c -0.21 1.64 -2.37 -1.47 -2.45 -2.13 c 1.05 -2.56 3.88 -0.11 2.49 2.16 Z m 129.36 186.28 c 0.11 2 -1.94 -1 -1.53 -1.89 c 0.89 0.13 1.38 1.21 1.57 1.92 Z m -8.59 -14.19 l -0.08 2 c -2 0.18 -2.28 -3.45 0.12 -1.97 Z m -57.72 37.36 c -1.84 0.3 -3.17 0.17 -2.85 -2 c 0.98 0.67 3.7 0.42 2.89 2.03 Z m -65.12 25.33 c -1.74 0.27 -1.31 -2.46 -1.33 -3.74 c 5.39 -2.38 3.28 1.18 1.37 3.77 Z m -22.91 -99.12 c -0.77 1.61 -0.06 5.4 -2 1.5 c 0.52 -0.63 2.52 -4.63 2.04 -1.47 Z m 221.55 -85.59 c -0.78 1.29 -2.05 0.13 -1.61 -1 c 0.86 -0.92 1.51 0.24 1.65 1.03 Z m 141.69 58.6 c -1.14 0.91 -0.69 -1.17 -0.48 -1.74 c 1.76 -0.65 1.25 1.01 0.52 1.77 Z m -16.22 42.74 c 3.2 2.44 -5.59 -1 -5.06 -2.71 a 29 29 0 0 0 5.06 2.71 Z m -53.94 -69.79 c 0.48 1.87 -13 4.46 -9.07 1.48 c 3.36 -0.69 6.51 -0.94 9.07 -1.46 Z m -5.64 -5 c -0.81 0.25 -2.54 -0.52 -3.26 -0.85 c 1.43 -1.56 6.2 -1.71 3.26 0.87 Z m -21.81 -6.87 c -1.72 -0.27 -4 -2.88 -4.86 -4.67 c 0.48 0.57 5.41 3.69 4.86 4.69 Z m -42.4 -3.64 c -0.32 1.59 -1.47 -1.7 -0.69 -2.62 c 0.52 -0.99 0.66 2.17 0.69 2.64 Z m -0.68 -13 c -1.55 0.84 -1.07 -1.24 -0.76 -2 c 1.51 -0.44 1.55 1.15 0.73 1.99 Z m -2.42 28.61 c -0.15 0.89 -2.45 -0.24 -2.91 -0.4 c 0.81 -3.84 2.65 -3.18 2.91 0.39 Z m 28.78 55.64 c 0.27 1.74 -1.07 0.65 -2.09 0.84 c -1.63 -2.45 0.7 -1.9 2.09 -0.85 Z m -3.24 0.78 l -3.46 1 c 0.31 -2.15 2.31 -3.32 3.46 -1.01 Z m -37.3 -150.06 c 0.23 2.27 -1.78 -2.56 -1.65 -3.37 c 0.8 0.7 2.63 2.25 1.65 3.36 Z m 2.68 2.14 c -0.59 0.57 -1.71 -0.85 -1.47 -1.51 c 0.66 -0.71 2.01 0.75 1.47 1.5 Z m -29.23 22.48 c -0.51 1.28 -1.7 -4.57 0.57 -2.66 c 0.5 0.75 -1.12 1.63 -0.57 2.65 Z m 133 198.47 c -0.17 2.31 -2.3 -1.52 -4.14 -1.17 c -1.16 -1.33 4.3 -0.98 4.19 1.16 Z m -67 -0.38 c -0.76 0.9 -1.76 -0.06 -2.43 -0.54 c -0.87 -1.98 3.33 -2.54 2.46 0.53 Z m -25.31 8.92 c -2.33 1.26 -0.44 -1 -1 -2.24 c 1.81 -0.06 3.27 1.21 1.01 2.23 Z m -81 54.54 c -3.68 2.09 -1.18 -2.93 0.86 -3.33 c 2.15 1.73 -2.15 1.03 -0.85 3.32 Z m -31 5.88 c -5.41 0.14 -2.78 -0.89 -0.33 -3.1 c 3.59 -0.88 2.92 2.09 0.34 3.09 Z m 261.78 -84.5 c -1.39 0.44 0.18 -2.75 1.34 -2.24 Z m -2.94 6.38 c -1.81 0.73 -0.25 -3.06 1.24 -2.56 a 6.42 6.42 0 0 1 -1.24 2.55 Z m -135.31 -76.94 c -0.43 1.32 -1.83 2.27 -3.11 1.37 a 19.37 19.37 0 0 1 3.11 -1.38 Z m -7.72 7.62 c 1.43 1.81 -2 0.18 -2.4 -0.54 c 1.01 -1 1.75 -0.47 2.4 0.53 Z m -93.67 105.72 c -3.17 3.58 -1.29 -2.94 2.27 -2.14 c 3.29 1.07 -1.85 0.63 -2.27 2.14 Z m -588.61 -310 c -1 4.61 -6 -6.06 -4.16 -7.14 c 4.48 -3.37 5.44 4.2 4.16 7.14 Z m -3.16 -10.64 c -1 0.65 -1.94 3 -2.76 0.76 c 0.51 -1.23 2.11 -2.53 2.76 -0.8 Z m -12 -18.12 c 1.51 1.62 -1.22 0.34 -1.55 -0.52 c 0.4 -2.6 1.04 -0.72 1.55 0.48 Z m 6.11 7.55 c -1.45 0.48 -3.27 -1.36 -2.19 -2.63 c 1.17 -0.75 2.5 1.56 2.19 2.59 Z m 1.91 -3.63 c -1.91 2.59 -2.36 -4.39 -0.11 -3.2 c -0.6 0.69 -0.13 2.38 0.11 3.16 Z m -15.17 -22 c -1.91 0.71 -1.9 -2.56 0 -2.12 c 0.22 0.59 0.62 1.61 0 2.12 Z m -5.76 -28.94 c -2.9 2.35 -2.5 -2.11 -3 -4 c 3.11 -6.28 5.92 0.67 3 4 Z m 3.85 -16.92 c -1 0.66 -2.68 0.09 -1.2 -0.94 c -0.1 -2.99 1.34 -0.73 1.2 0.94 Z m 0.6 -3.18 c -8.43 -5.38 3.36 -16.69 0.35 -25.58 c 10.5 -38.54 2.95 13.11 -0.35 25.58 Z m 6 -10.29 l 0.91 2.83 c -1.05 -0.72 -3.43 -2.33 -0.95 -2.83 Z m -6.06 -17 c -1.11 3.48 -0.84 -1.43 -0.47 -1.89 c 1.12 -0.58 0.43 1.39 0.43 1.84 Z m -403.49 34.17 c -0.41 0.42 0.07 -1.32 0.31 -1.19 a 3 3 0 0 1 -0.31 1.19 Z m 5.81 59.84 c -0.25 0.37 -1.06 0.54 -0.84 -0.13 c 0.68 0.66 1.68 -2.04 0.84 0.09 Z M 142.53 587.62 c 6.51 1.91 1.83 -7.83 8.32 -4.62 c 10.28 2.66 19.88 -4.43 29 -7.52 c -4.4 5.19 -18.34 8.24 -10.24 16.63 c -7.36 -1.63 -20.32 12.33 -23 8.66 c -11.42 0.84 -17.35 -12.47 -4.08 -13.15 Z M 1872.1 835.98 c -0.66 2.49 -2.76 0.77 -1.82 -1 c 0.26 -0.57 1.77 0.59 1.82 1 Z m 74.46 -159.65 c -4.23 1.33 -11.73 -3.13 -13.18 -7.41 c 4.86 0.27 9.24 4.77 13.18 7.41 Z m 8.77 35.81 c -1.66 0 -7.27 -0.9 -6.61 -4.18 c 2.16 -0.13 8.49 0.99 6.61 4.18 Z m -2.5 6.6 c 0.24 1.26 -1.59 -1.13 -1.79 -1.07 c -2.16 -1.28 1.62 -2.11 1.79 1.07 Z m 4.69 -4.95 c 0 2.73 -2 -0.84 -1.08 -1.46 c 1.11 -0.15 1.11 0.59 1.08 1.46 Z m -52.27 100.9 c -4 4.2 -2.52 -7 -0.48 -3.71 c 1.62 0.55 0.22 2.53 0.48 3.71 Z m -190.94 95.61 c 0.73 1.67 2.94 -0.84 3.12 1.17 c -0.03 2.79 -9.33 -0.04 -3.12 -1.21 Z m 219.88 -154.9 c -3.13 1.63 -2.92 -1.12 -0.93 -2.69 c 0.9 0.46 1.01 1.74 0.93 2.65 Z m -155.73 117.79 c 1.4 2.47 -5.42 -2.94 -1.83 -2.19 a 11.27 11.27 0 0 1 1.83 2.15 Z m -15.47 26.09 c -1.64 1.26 -1.74 -4.63 1 -3.52 c 0.82 0.2 -1.53 1.93 -1 3.52 Z m -3 -0.82 l -2 0.46 c -1.14 -0.56 3.14 -3.62 2 -0.46 Z m -35.51 35.46 c 7.3 7.3 -5.4 11.08 -6.6 18.29 c -42.15 57.77 -58.72 -34.62 6.62 -18.29 Z m 67.65 -47.84 c -0.55 0.95 -1.5 -1 -1.89 -1.26 c -0.25 -1.47 3.28 -0.05 1.91 1.26 Z m -4.74 0 c -5.77 0.35 -2 -2.05 0.94 -2.67 a 3.84 3.84 0 0 0 -0.92 2.67 Z m -221.64 229.88 c -1.43 1 -1.39 -2.29 -0.16 -2.16 Z m 5.52 11.6 c -0.72 1.62 -1.82 -0.46 -1.91 -1.3 Z m -103.36 -4.79 c 1.17 1.11 2.45 7.8 0.17 2.35 c -2.18 -1.19 -3.38 -2.93 -0.15 -2.35 Z m -0.55 20.83 c -2.36 3.11 -0.85 -1.76 0.77 -2.28 c 2.86 -0.71 0.66 1.97 -0.75 2.28 Z m 0.79 -31.61 c -1.83 1.11 0.83 -5.27 1.57 -6.25 c 0.27 1.95 -0.09 4.89 -1.55 6.25 Z m 6 -8.76 c -1.39 1 -1.22 -3.26 -1 -3.68 c 0.68 1.83 4.69 2.87 0.97 3.68 Z m 0.77 3.29 c -0.05 6.73 -3.13 3.82 -3.59 -1 c 1.07 0.04 3.44 -0.83 3.56 1 Z m -2.83 -17.55 c 2.31 0.82 0.22 5.32 -2 5.4 c 0.9 -1.9 -1.93 -10.59 1.97 -5.4 Z m -5.61 9.22 c -2 0.7 -2.78 -4 -0.29 -2.64 c 0.14 0.8 -0.34 1.84 0.26 2.64 Z m -74.06 -78.7 c -3.47 4.63 -0.51 -3.36 1.4 -4.32 c 2.9 -2.91 0.5 3.89 -1.43 4.32 Z m 62.69 -6.43 c -2.06 1 -2.08 -3.16 -2.14 -4.35 c 3.26 -2.94 2.4 2.53 2.11 4.35 Z m -78.6 -51.26 c -1.36 0.23 -3.31 -2.86 -4.11 -3.89 c 3.36 -1.16 7.12 0.16 4.08 3.89 Z m -4 -25.75 l 0.44 3 c -1.89 -0.79 -3.38 -6.01 -0.5 -3 Z m 4.52 7.14 c 2.38 1.85 8 3.34 2 5.54 c -1.26 -1.1 -4.91 -4.38 -2.04 -5.54 Z m 97.67 179.4 c -2.17 0.46 -0.61 -1.73 -0.3 -2.57 Z m -9.43 -15 c 0.27 3.19 -1.82 -2.34 -1.32 -3.45 c 0.18 0.96 1.61 2.55 1.26 3.46 Z m -0.19 -14.34 c -0.2 1.66 -1.72 3 -2.58 0.9 a 2.53 2.53 0 0 1 2.49 -0.89 Z m 5 -14.62 c -0.44 0.88 0.78 5.72 -1.13 1.76 c -0.35 -2.04 -0.25 -5.77 1.11 -1.7 Z m -71 -56.5 c -2.9 1.47 -0.1 -1.73 0.46 -2.37 c 0.37 0.62 -0.23 1.82 -0.55 2.38 Z m -36.32 -86.76 c 0.93 4.79 -2.7 -1.7 -1.93 -3.48 c 0.82 0.42 1.57 2.66 1.88 3.49 Z m -37.63 -48.53 c -4.62 5.39 -0.6 -6.46 -1.44 -7.5 c 1.07 2.1 2.57 5.14 1.39 7.51 Z m 8.22 -4.51 c -4.07 2.84 -3 -10 -0.69 -2.36 a 11.16 11.16 0 0 1 0.64 2.37 Z m -15.77 6.37 c -10.1 3 2.35 -5 -5.56 -16.24 c 5.6 -1.02 9.37 11.87 5.51 16.23 Z m 22.18 5.58 c -1.2 3.71 -1.25 -0.61 -0.47 -2.06 c 0.7 0.11 0.58 1.54 0.42 2.07 Z m 1.53 7 c -2.69 0.89 -1.25 -2.88 -1.87 -4.35 c 2.57 -1.4 2.01 2.86 1.82 4.38 Z m -26.51 -31.59 c 1.12 2 -1.88 -0.25 -2.13 -1.13 c 0.94 -1.04 1.58 0.55 2.13 1.13 Z m -810.13 -64.55 c -1.7 5.31 -5.56 -10.23 -0.43 -8 c -0.63 1.97 1.42 5.34 0.43 7.99 Z m 1115.34 751.27 c 0 2.87 -4.89 -0.68 -1.62 -0.83 c 1.17 -0.33 1.39 -0.5 1.62 0.83 Z m -179.79 34.63 c 1.17 0 0.24 0.64 -0.12 0 c -0.33 -1.35 0.05 -1.18 0.14 0 Z m 1.57 0.25 c -0.47 0.26 -0.69 -0.16 -0.1 -0.25 c 0.24 -0.69 0.37 -0.1 0.12 0.25 Z");
}

.map-pin {
    position: absolute;
    transform: translate(-50%, -100%) scale(0.4);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    opacity: 0;
    transition: opacity 0.7s ease, transform 0.9s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Pins pop in one by one as .reach-map scrolls into view (see
   initMapPinsReveal in script.js, which adds .is-visible). Delay is
   staggered via nth-of-type since every .map-pin is a <div> and the
   only other child of .reach-map (the map svg) is a different tag,
   so counting by type lines pins 1-9 up with delay-step 1-9. */
.reach-map.is-visible .map-pin {
    opacity: 1;
    transform: translate(-50%, -100%) scale(1);
}

.reach-map.is-visible .map-pin:nth-of-type(1) { transition-delay: 0s; }
.reach-map.is-visible .map-pin:nth-of-type(2) { transition-delay: 0.14s; }
.reach-map.is-visible .map-pin:nth-of-type(3) { transition-delay: 0.28s; }
.reach-map.is-visible .map-pin:nth-of-type(4) { transition-delay: 0.42s; }
.reach-map.is-visible .map-pin:nth-of-type(5) { transition-delay: 0.56s; }
.reach-map.is-visible .map-pin:nth-of-type(6) { transition-delay: 0.7s; }
.reach-map.is-visible .map-pin:nth-of-type(7) { transition-delay: 0.84s; }
.reach-map.is-visible .map-pin:nth-of-type(8) { transition-delay: 0.98s; }
.reach-map.is-visible .map-pin:nth-of-type(9) { transition-delay: 1.12s; }

@media (prefers-reduced-motion: reduce) {
    .map-pin {
        transition: none;
    }
}

.pin-dot {
    width: 16px;
    height: 20px;
    flex-shrink: 0;
    background-color: #ffffff;
    clip-path: path('M8 0C3.6 0 0 3.6 0 8c0 5.5 8 12 8 12s8-6.5 8-12c0-4.4-3.6-8-8-8z');
    box-shadow: 0 2px 4px rgba(0,0,0,0.35);
}

.pin-dot::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--map-grey);
}

.pin-label {
    background-color: var(--accent-color);
    color: #171719;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.3px;
    padding: 2px 7px;
    border-radius: 2px;
    white-space: nowrap;
}

.reach-content {
    flex: 1;
    padding-top: 20px;
    text-align: right;
}

.reach-heading-bottom {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--text-primary);
    margin-bottom: 20px;
}

.dot-accent {
    color: var(--map-grey);
}

.reach-subheading {
    color: var(--accent-color);
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 14px;
}

.reach-desc {
    color: var(--text-primary);
    font-size: 1rem;
    line-height: 1.6;
    max-width: 420px;
    margin-left: auto;
    margin-bottom: 50px;
}

.reach-teams-label {
    color: var(--map-grey);
    font-weight: 700;
    font-size: 0.9rem;
    margin-bottom: 8px;
}

.reach-teams-list {
    color: var(--text-primary);
    font-size: 1.3rem;
    line-height: 1.5;
    max-width: 480px;
    margin-left: auto;
}

@media (max-width: 900px) {
    .reach-line1 {
        font-size: 1.7rem;
        text-align: center;
    }

    .reach-body {
        flex-direction: column;
        align-items: center;
        gap:0px;
    }

    .reach-map {
        width: 100%;
        max-width: 500px;
    }

    .reach-content {
        text-align: center;
    }

    .reach-desc,
    .reach-teams-list {
        margin-left: auto;
        margin-right: auto;
    }
    .reach-topbar{
        padding: 26px 5% 26px;
    }
}

/* -------------------------------------
   Part 5: Our Services
--------------------------------------- */
/* Plain (non-sticky) flow wrapper — script.js reads its rect for the
   parallax scroll math, since the section itself is pinned via sticky
   and its own rect.top would otherwise freeze at 0.
   The padding-bottom is a "dwell" buffer: without extra room below the
   section, its containing block's bottom edge arrives at the same
   moment the section becomes stuck, so it releases instantly and never
   visibly freezes. This buffer holds it pinned/frozen while Case Study
   scrolls up from below and slides over it. */
.services-stack {
    position: relative;
}

.services-section {
    width: 100%;
    overflow: hidden;
    /* bottom:0 (not top:0) is the key: with top:0 the section freezes
       the instant it enters the viewport, cutting the 2nd row of cards
       off-screen forever. bottom:0 lets it scroll normally through all
       of its own content and only catches once its bottom edge reaches
       the viewport's bottom — i.e. exactly at "the end of Services". */
    position: sticky;
    bottom: 0;
    z-index: 1;
    background-color: var(--bg-color);
}

.services-inner {
    max-width: 1470px;
    margin: 0 auto;
    padding: 5% 5%;
}

.services-header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: start;
    gap: 40px;
    margin-bottom: 70px;
}

.services-label {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-secondary);
    white-space: nowrap;
    padding-top: 6px;
}

.services-title {
    font-size: 2.6rem;
    font-weight: 800;
    line-height: 1.25;
    max-width: 640px;
}

.services-desc {
    color: var(--text-secondary);
    font-size: 1rem;
    line-height: 1.6;
    max-width: 376px;
    padding-top: 6px;
}

/* Three-column staggered grid. The middle column sits higher than the
   outer two at rest (services-col--raised has no top offset), and
   script.js drops it further down as the section scrolls through the
   viewport (see initServicesParallax). The outer columns stay put. */
.services-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 21px;
    align-items: start;
}

.services-col {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.services-col--raised {
    will-change: transform;
}

.services-col:not(.services-col--raised) {
    margin-top: 70px;
}

.service-card {
    background-color: #1a1a1c;
    border: 1px solid #2c2c2e;
    padding: 24px;
    transition: border-color 0.3s ease, transform 0.3s ease;
}

.service-card:hover {
    border-color: var(--accent-color);
    transform: translateY(-4px);
}

.service-card-media {
    aspect-ratio: 4 / 3;
    background-color: #232325;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
    color: var(--text-secondary);
    overflow: hidden;
}

.service-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 10px;
}

.service-desc {
    color: var(--text-secondary);
    font-size: 0.95rem;
    line-height: 1.55;
    margin-bottom: 16px;
}

.service-link {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--accent-color);
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 900px) {
    .services-header {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-bottom: 22px;
    }

    .services-desc {
        max-width: none;
        text-align: left;
    }

    /* Two-per-row on mobile: .services-col switches to display:contents
       so its cards stop being wrapped in a vertical flex column and
       become direct children of .services-grid instead, letting the
       2-column grid below place all cards (across all three columns,
       in DOM order) into a single 2-up flow. */
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
        align-items: stretch;
    }

    .services-col {
        display: contents;
    }

    .service-card {
        display: flex;
        flex-direction: column;
        height: 100%;
    }

    .service-card-media {
        flex-shrink: 0;
    }

    .service-desc {
        flex-grow: 1;
    }

    .services-title {
        font-size: 2.0rem;
    }

    .service-card {
        padding: 16px;
    }

    .service-card-media {
        margin-bottom: 14px;
    }

    .service-title {
        font-size: 1rem;
        margin-bottom: 6px;
    }

    .service-desc {
        font-size: 0.85rem;
        line-height: 1.45;
        margin-bottom: 12px;
    }

    .service-link {
        font-size: 0.85rem;
    }
}

/* -------------------------------------
   Part 6: Case Study Section
--------------------------------------- */
.case-study-section {
    width: 100%;
    padding: 179px 72px 90px;
    background-color: var(--bg-color);
}

.case-study-inner {
    max-width: 1470px;
    margin: 0 auto;
}

.case-study-header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: start;
    gap: 48px;
    margin-bottom: 56px;
}

.case-study-title {
    font-size: 3.2rem;
    font-weight: 800;
    line-height: 1.25;
    max-width: 720px;
}

.case-study-desc {
    color: var(--text-secondary);
    font-size: 1.1rem;
    line-height: 1.65;
    max-width: 340px;
    text-align: right;
    padding-top: 8px;
}

.case-study-card {
    --gsc-clicks: #4C8DFF;
    --gsc-impr: #7C5CFC;
    --gsc-ctr: #12B886;
    --gsc-pos: #F2994A;
    width: calc(100% + 10%);
    margin-left: -5%;
    padding: 0 5%;
    background-image:
        repeating-linear-gradient(to right, rgba(255, 255, 255, 0.07) 0 1px, transparent 1px 45px),
        repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.07) 0 1px, transparent 1px 42px);
}

.gsc-toolbar {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 44px;
}

.gsc-stats-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    flex: 1;
}

.gsc-stat {
    flex: 1 1 170px;
    min-width: 170px;
    border-radius: 12px;
    border: none;
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: left;
    font-family: var(--font-main);
    color: #ffffff;
    position: relative;
    cursor: default;
}

.gsc-stat--clicks { background-color: var(--gsc-clicks); }
.gsc-stat--impressions { background-color: var(--gsc-impr); }
.gsc-stat--ctr { background-color: var(--gsc-ctr); }
.gsc-stat--position { background-color: var(--gsc-pos); }

.gsc-stat-top {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    font-weight: 600;
}

.gsc-checkbox {
    width: 17px;
    height: 17px;
    border-radius: 4px;
    border: 1.5px solid rgba(255, 255, 255, 0.85);
    position: relative;
    flex-shrink: 0;
    background: transparent;
}

.gsc-checkbox.checked {
    background-color: #ffffff;
}

.gsc-stat--clicks .gsc-checkbox.checked::after,
.gsc-stat--impressions .gsc-checkbox.checked::after,
.gsc-stat--ctr .gsc-checkbox.checked::after,
.gsc-stat--position .gsc-checkbox.checked::after {
    content: "";
    position: absolute;
    left: 5px;
    top: 1.5px;
    width: 4px;
    height: 8px;
    border-style: solid;
    border-width: 0 2px 2px 0;
    transform: rotate(40deg);
}

.gsc-stat--clicks .gsc-checkbox.checked::after { border-color: var(--gsc-clicks); }
.gsc-stat--impressions .gsc-checkbox.checked::after { border-color: var(--gsc-impr); }
.gsc-stat--ctr .gsc-checkbox.checked::after { border-color: var(--gsc-ctr); }
.gsc-stat--position .gsc-checkbox.checked::after { border-color: var(--gsc-pos); }

.gsc-stat-value {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
}

.gsc-stat-info {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.6);
    font-size: 0.7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.85;
}

.gsc-range-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: var(--btn-bg);
    color: var(--text-primary);
    border: 1px solid #333;
    border-radius: 8px;
    padding: 14px 20px;
    font-size: 1rem;
}

.gsc-range-btn:hover {
    background-color: #3a3a3c;
}

.gsc-range-btn svg {
    color: var(--text-secondary);
}

.gsc-range-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    background-color: #1e1e20;
    border: 1px solid #333;
    border-radius: 8px;
    padding: 6px;
    min-width: 120px;
    list-style: none;
    z-index: 5;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.gsc-range-menu li {
    padding: 8px 10px;
    border-radius: 6px;
    font-size: 0.85rem;
    cursor: pointer;
    color: var(--text-secondary);
}

.gsc-range-menu li:hover {
    background-color: #2a2a2c;
    color: var(--text-primary);
}

.gsc-range-menu li.active {
    color: var(--accent-color);
    font-weight: 700;
}



.browser-frame {
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #333;
    background-color: #1a1a1c;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.45);
}

.browser-frame-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background-color: #232325;
    border-bottom: 1px solid #333;
}

.browser-frame-url {
    flex: 1;
    max-width: 320px;
    margin: 0 auto;
    text-align: center;
    font-size: 0.75rem;
    color: var(--text-secondary);
    background-color: #171719;
    border-radius: 6px;
    padding: 4px 12px;
}

.gsc-chart {
    width: 100%;
    height: auto;
    display: block;
}

.gsc-x-axis {
    display: flex;
    justify-content: space-between;
    margin-top: 20px;
    padding: 0 2px;
}

.gsc-x-axis span {
    font-size: 0.8rem;
    color: var(--text-secondary);
    white-space: nowrap;
}

@media (max-width: 900px) {
    .case-study-header {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .case-study-desc {
        max-width: none;
        text-align: left;
    }

    .gsc-toolbar {
        flex-direction: column;
    }

    .gsc-stat {
        flex: 1 1 45%;
    }

    .gsc-x-axis span:nth-child(odd) {
        display: none;
    }

    .case-study-card {
        width: 100%;
        margin-left: 0;
        padding: 0;
    }
    .case-study-section {
        padding: 79px 24px 90px;
    }
    .case-study-title {
        font-size:2.2rem;
    }

}

/* -------------------------------------
   Services Subpage: Intro Hero
--------------------------------------- */
.services-page-hero {
    max-width: 1470px;
    margin: 0 auto;
    padding: 60px 5% 0;
}

.services-page-heading {
    font-size: 2.6rem;
    font-weight: 800;
    line-height: 1.25;
    max-width: 780px;
}

.services-page-heading .line-muted {
    display: block;
    color: var(--text-secondary);
}

.services-page-image {
    margin: 48px 0;
    overflow: hidden;
}

.services-page-image img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    display: block;
}

.services-page-intro {
    display: flex;
    justify-content: flex-end;
    padding-bottom: 90px;
}

.services-page-intro-inner {
    max-width: 460px;
}

.services-page-intro-title {
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.4;
    margin-bottom: 18px;
}

.services-page-intro-desc {
    color: var(--text-secondary);
    font-size: 0.95rem;
    line-height: 1.65;
}

@media (max-width: 900px) {
    .services-page-heading {
        font-size: 1.2rem;
    }

    .services-page-image img {
        height: 260px;
    }

    .services-page-intro {
        justify-content: flex-start;
    }

    .services-page-intro-inner {
        max-width: none;
    }
    .services-page-hero {
        padding:27px 5% 0;
    }
}

/* -------------------------------------
   Services Subpage: Full Service List
--------------------------------------- */
.services-detail-section {
    width: 100%;
    padding: 40px 0 40px;
    background-color: var(--bg-color);
}

.services-detail-header {
    padding-bottom: 40px;
    border-bottom: 1px solid #2c2c2e;
}

.services-detail-title {
    font-size: 3.2rem;
    font-weight: 800;
    line-height: 1.3;
}

.service-row {
    display: grid;
    grid-template-columns: 222px minmax(260px, 340px) 1fr;
    gap: 56px;
    align-items: start;
    padding: 56px 0;
    border-bottom: 1px solid #2c2c2e;
}

.service-row:last-child {
    border-bottom: none;
}

.service-row > .process-label {
    margin-bottom: 0;
    padding-top: 4px;
}

.service-row-media {
    position: relative;
    width: 300px;
    height: 400px;
    overflow: hidden;
    background-color: #1a1a1c;
    border: 1px solid #2c2c2e;
}

.service-row-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Black shutter sits over the image and slides off to the right as
   the row scrolls into view (see initMediaReveal in script.js, which
   adds .is-revealed to .service-row-media). */
.service-row-media-cover {
    position: absolute;
    inset: 0;
    background-color: #000;
    transform: translateX(0%);
    transition: transform 0.9s cubic-bezier(0.76, 0, 0.24, 1);
    z-index: 1;
}

.service-row-media.is-revealed .service-row-media-cover {
    transform: translateX(100%);
}

@media (prefers-reduced-motion: reduce) {
    .service-row-media-cover {
        transition: none;
    }
}

.service-row-title {
    font-size: 2.1rem;
    font-weight: 800;
    line-height: 1.4;
    margin-bottom: 16px;
}

.service-row-desc {
    color: var(--text-secondary);
    font-size: 0.95rem;
    line-height: 1.7;
    margin-bottom: 24px;
}

.service-capabilities-row {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    padding-top: 24px;
    border-top: 1px solid #2c2c2e;
}

.service-capabilities-label {
    flex-shrink: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-secondary);
    padding-top: 2px;
}

.service-capabilities-list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, auto);
    grid-template-rows: repeat(4, auto);
    grid-auto-flow: column;
    column-gap: 60px;
    row-gap: 14px;
}

.service-capabilities-list li {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--text-primary);
    padding-left: 16px;
    position: relative;
}

.service-capabilities-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--accent-color);
}

/* Capabilities reveal one by one as the list scrolls into view (see
   initCapabilitiesReveal in script.js, which adds .is-visible to the
   <ul>); each <li> is staggered via its own transition-delay below. */
.service-capabilities-list li {
    opacity: 0;
    transform: translateX(-14px);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.service-capabilities-list.is-visible li {
    opacity: 1;
    transform: translateX(0);
}

.service-capabilities-list li:nth-child(1) { transition-delay: 0s; }
.service-capabilities-list li:nth-child(2) { transition-delay: 0.1s; }
.service-capabilities-list li:nth-child(3) { transition-delay: 0.2s; }
.service-capabilities-list li:nth-child(4) { transition-delay: 0.3s; }
.service-capabilities-list li:nth-child(5) { transition-delay: 0.4s; }
.service-capabilities-list li:nth-child(6) { transition-delay: 0.5s; }
.service-capabilities-list li:nth-child(7) { transition-delay: 0.6s; }
.service-capabilities-list li:nth-child(8) { transition-delay: 0.7s; }

@media (max-width: 900px) {
    .services-detail-title {
        font-size: 1.9rem;
    }

    .service-row {
        grid-template-columns: 1fr;
    }

    .service-row-title,
    .service-row-desc {
        max-width: none;
    }

    .service-capabilities-row {
        flex-direction: column;
        gap: 14px;
    }

    .service-capabilities-list {
        grid-template-columns: 1fr;
        grid-auto-flow: row;
    }
    .service-row-title{
        font-size: 1.6rem;
    }
}

/* -------------------------------------
   Services Subpage: Process
--------------------------------------- */
.process-section {
    width: 100%;
    background-color: var(--bg-color);
}

.process-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text-secondary);
    margin-bottom: 20px;
}

.process-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: var(--accent-color);
}

.process-title {
    font-size: 3.2rem;
    font-weight: 800;
    line-height: 1.25;
    margin-bottom: 60px;
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 19px;
}

.process-card {
    background-color: #1a1a1c;
    border: 1px solid #2c2c2e;
    padding: 28px 24px;
    min-height: 300px;
}

.process-num {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-secondary);
    margin-bottom: 60px;
}

.process-card-title {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: 16px;
}

.process-card-desc {
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--text-secondary);
}

.process-card--active {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

.process-card--active .process-num,
.process-card--active .process-card-title {
    color: var(--bg-color);
}

.process-card--active .process-card-desc {
    color: rgba(23, 23, 25, 0.7);
}

@media (max-width: 1024px) {
    .process-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .process-title {
        font-size: 1.8rem;
    }

    .process-grid {
        grid-template-columns: 1fr;
    }

    .process-card {
        min-height: auto;
    }

    .process-num {
        margin-bottom: 24px;
    }
}

/* -------------------------------------
   Services Subpage: Clients
--------------------------------------- */
.clients-section {
    width: 100%;
    background-color: var(--bg-color);
}

.clients-header {
    margin-bottom: 56px;
}

.clients-title-row {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: start;
    gap: 40px;
}

@media (max-width: 900px) {
    .clients-title-row {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .clients-title-row .services-desc {
        text-align: left;
        max-width: none;
    }
}

.clients-marquee {
    overflow: hidden;
}

.clients-marquee-row {
    overflow: hidden;
    border-bottom: 1px solid #2c2c2e;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.clients-marquee-row:last-child {
    border-bottom: none;
}

/* Track holds each logo set twice back-to-back; animating exactly
   one set's worth of translateX loops seamlessly since both halves
   are pixel-identical. */
.clients-marquee-track {
    display: flex;
    width: max-content;
    animation: clients-marquee-ltr 42s linear infinite;
}

.clients-marquee-row.reverse .clients-marquee-track {
    animation-name: clients-marquee-rtl;
}

@keyframes clients-marquee-ltr {
    from {
        transform: translateX(calc(-100% / 3));
    }
    to {
        transform: translateX(0%);
    }
}

@keyframes clients-marquee-rtl {
    from {
        transform: translateX(0%);
    }
    to {
        transform: translateX(calc(-100% / 3));
    }
}

@media (prefers-reduced-motion: reduce) {
    .clients-marquee-track {
        animation: none;
    }
}

.client-logo {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: clamp(160px, 22vw, 260px);
    aspect-ratio: 3 / 2;
    padding: 20px;
    border-right: 1px solid #2c2c2e;
}

.client-logo img {
    max-width: 70%;
    max-height: 32px;
    object-fit: contain;
    filter: grayscale(1) brightness(1.6);
    opacity: 0.6;
    transition: opacity 0.3s ease, filter 0.3s ease;
}

.client-logo:hover img {
    opacity: 1;
    filter: none;
}

.client-logo-word {
    font-family: var(--font-main);
    font-weight: 700;
    font-size: clamp(0.95rem, 1.1vw, 1.15rem);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #8a8a8e;
    opacity: 0.6;
    white-space: nowrap;
    transition: opacity 0.3s ease, color 0.3s ease;
}

.client-logo:hover .client-logo-word {
    opacity: 1;
    color: #fff;
}

@media (max-width: 900px) {
    .client-logo {
        width: clamp(130px, 40vw, 200px);
    }
}

@media (max-width: 700px) {
    .cta-band-title {
        font-size: 1.6rem;
    }
}

/* -------------------------------------
   Part 7: Footer
--------------------------------------- */
.site-footer {
    max-width: 1400px;
    margin: 0 auto;
    padding: 100px 5% 0;
    overflow: hidden;
}

.footer-top {
    display: flex;
    justify-content: space-between;
    gap: 60px;
    padding-bottom: 70px;
    border-bottom: 1px solid #2c2c2e;
}

.footer-promo-text {
    font-size: 1.4rem;
    font-weight: 700;
    max-width: 260px;
    margin-bottom: 20px;
}

.footer-promo-btn {
    border-radius: 24px;
    padding: 12px 22px;
}

.footer-nav {
    display: flex;
    gap: 70px;
}

.footer-nav-col {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.footer-nav-title {
    color: var(--text-primary);
    font-weight: 700;
    font-size: 0.95rem;
    margin-bottom: 4px;
}

.footer-nav-col a {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.9rem;
    transition: color 0.3s;
}

.footer-nav-col a:hover {
    color: var(--accent-color);
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    padding: 40px 0 30px;
    gap: 20px;
}

.footer-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1.1rem;
    font-weight: 800;
    font-style: italic;
    letter-spacing: 1px;
    white-space: nowrap;
}

.footer-brand-dot {
    width: 10px;
    height: 10px;
    background-color: var(--accent-color);
    transform: rotate(45deg);
    flex-shrink: 0;
}

.footer-wordmark {
    font-family: 'Silkscreen', var(--font-main);
    font-weight: 700;
    font-size: clamp(2.5rem, 9vw, 7rem);
    line-height: 1;
    color: var(--text-primary);
    white-space: nowrap;
    text-align: right;
}

.footer-wordmark-slash {
    color: var(--accent-color);
}

.footer-wordmark-ghost {
    color: #3a3a3d;
}

@media (max-width: 900px) {
    .footer-top {
        flex-direction: column;
        gap: 40px;
    }

    .footer-nav {
        flex-wrap: wrap;
        gap: 40px;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
    }

    .footer-wordmark {
        text-align: left;
        font-size: clamp(2rem, 10vw, 5rem);
    }
}

@media (max-width: 600px) {
    .site-footer {
        padding: 60px 6% 0;
    }

    .footer-promo-text {
        max-width: none;
        font-size: 1.2rem;
    }

    .footer-promo-btn {
        width: 100%;
    }

    /* Two per row instead of an uneven flex-wrap, since 4 columns at
       the desktop 70px gap won't fit a phone width. */
    .footer-nav {
        flex-wrap: wrap;
        gap: 28px 20px;
    }

    .footer-nav-col {
        flex: 1 1 calc(50% - 10px);
        min-width: 0;
    }

    .footer-brand {
        font-size: 1rem;
    }

    .footer-wordmark {
        font-size: clamp(1.6rem, 9vw, 3.2rem);
    }
}

/* -------------------------------------
   About Us: Hero
--------------------------------------- */
.about-hero {
    position: relative;
    max-width: 1470px;
    margin: 0 auto;
    padding: 100px 5% 120px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    min-height: 560px;
    overflow: hidden;
}

.about-hero-left {
    position: relative;
    flex: 1;
    max-width: 460px;
    z-index: 2;
    transform: translateX(123px);
}

.about-hero-ghost {
    position: absolute;
    top: 50%;
    left: 40px;
    transform: translateY(-50%) rotate(-90deg);
    transform-origin: center;
    font-family: 'Silkscreen', var(--font-main);
    font-weight: 700;
    font-size: clamp(3.5rem, 10vw, 7rem);
    color: #202022;
    white-space: nowrap;
    z-index: -1;
    pointer-events: none;
    user-select: none;
}

.about-hero-title {
    font-size: clamp(2.4rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 18px;
}

.about-hero-sub {
    color: var(--text-secondary);
    font-size: 1.05rem;
}

.about-hero-visual {
    position: relative;
    flex: 1.2;
    min-width: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(4px, 1vw, 14px);
    z-index: 1;
}

.ahv-word {
    position: relative;
    font-family: var(--font-main);
    font-weight: 800;
    font-size: clamp(9rem, 24vw, 9rem);
    line-height: 1;
    letter-spacing: -0.02em;
    background-image:
        linear-gradient(150deg, rgba(15, 12, 2, 0.6), rgba(251, 188, 5, 0.45)),
        url("/img/service.png");
    background-size: cover, cover;
    background-position: center, center;
    background-blend-mode: multiply, normal;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
}


@media (max-width: 900px) {
    .about-hero {
        flex-direction: column;
        text-align: center;
        padding: 31px 6% 30px;
        min-height: unset;
        gap: 19px;
    }

    .about-hero-left {
        max-width: 100%;
        transform: translateX(0px);
    }

    .about-hero-ghost {
        display: none;
    }

    .ahv-word {
        font-size: clamp(4.2rem, 19vw, 10rem);
    }
}

/* -------------------------------------
   About Us: Our Mission
--------------------------------------- */
.mission-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 94px 5% 53px;
}

.mission-collage {
    position: relative;
    min-height: 990px;
}

.mission-ring {
    position: absolute;
    top: 20px;
    left: 66px;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    border: 1px solid rgba(251, 188, 5, 0.16);
    z-index: 0;
}

/* Desktop: transparent wrapper so the three photos stay direct
   absolutely-positioned children of .mission-collage (their containing
   block regardless of nesting). It only becomes a real, scrollable row
   on mobile — see max-width: 900px. */
.mission-photos {
    display: contents;
}

.mission-photo {
    position: absolute;
    display: block;
    object-fit: cover;
    border-radius: 14px;
    background-color: var(--btn-bg);
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
    z-index: 1;
}

/* Explicit stacking order (rather than relying on DOM order) so photo3
   still paints above .mission-words/.mission-content where they overlap,
   matching the original markup order — regardless of the photos now
   being grouped together in .mission-photos ahead of them in the DOM. */
.mission-photo--1 {
    top: 0;
    left: 338px;
    width: 173px;
    height: 183px;
    z-index: 1;
}

.mission-photo--2 {
    top: 238px;
    left: 184px;
    width: 286px;
    height: 310px;
    z-index: 2;
}

.mission-photo--3 {
    top: 385px;
    right: 6%;
    width: 582px;
    height: 543px;
    z-index: 5;
}

.mission-words {
    position: absolute;
    top: 593px;
    left: 215px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    z-index: 3;
}

.mission-words span {
    font-family: var(--font-main);
    font-weight: 800;
    font-size: 4.1rem;
    line-height: 1.25;
    letter-spacing: 0.04em;
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.14);
}

.mission-content {
    position: absolute;
    top: 30px;
    right: 0;
    width: 46%;
    z-index: 4;
}

.mission-title {
    font-size: clamp(2rem, 3vw, 2.6rem);
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 22px;
}

.mission-desc {
    color: var(--text-secondary);
    font-size: 1rem;
    line-height: 1.7;
    max-width: 480px;
}

@media (max-width: 900px) {
    .mission-collage {
        min-height: unset;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }

    .mission-ring {
        display: none;
    }

    /* The three photos leave the absolute-positioned collage and become
       one horizontally scrollable row instead of stacking full-width.
       `order` (not a DOM move) pushes the row below the words/content
       text so the desktop markup order — and the z-index stacking that
       depends on it — stays untouched. */
    .mission-photos {
        order: 3;
        display: flex;
        width: 100%;
        gap: 14px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }

    .mission-photos::-webkit-scrollbar {
        display: none;
    }

    .mission-photo {
        position: static;
        flex: 0 0 auto;
        width: 220px;
        height: 220px;
        right: auto;
        scroll-snap-align: start;
    }

    .mission-content {
        position: static;
        width: 100%;
        max-width: 340px;
        height: auto;
        right: auto;
        text-align: center;
    }

    .mission-words {
        position: static;
        align-items: center;
        text-align: center;
    }

    .mission-desc {
        margin-left: auto;
        margin-right: auto;
    }
    .mission-section {
        padding: 19px 5% 53px;
    }
}

/* -------------------------------------
   About Us: shared head for the new editorial-list sections below
   (Journey / Numbers / Team) — same recipe as .markets-section-head,
   renamed per-page rather than shared cross-page, matching how every
   other section on this page already owns its own class names.
--------------------------------------- */
.about-section-head {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 50px;
}

.about-section-head .process-label {
    justify-content: center;
}

.about-section-title {
    font-size: clamp(2rem, 3.4vw, 2.6rem);
    font-weight: 800;
    line-height: 1.2;
}

/* -------------------------------------
   About Us: Our Journey (timeline) — a connected vertical line with a
   node per milestone (changelog/activity-feed style), not the row-list
   pattern reused below for Team, and not a traditional alternating
   left/right timeline either — every milestone sits on the same side
   of the line.

   The line is drawn per-row (.timeline-row::before, from that row's own
   node down to the next row's node) rather than one continuous element,
   so consecutive segments can light up gold independently as each row
   is scrolled past — the line "fills in" as you read down the page,
   reusing the existing is-risen scroll-reveal instead of new JS.
--------------------------------------- */
.about-timeline-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 30px 5% 60px;
}

.timeline-list {
    max-width: 640px;
    margin: 0 auto;
}

.timeline-row {
    position: relative;
    padding: 0 0 48px 40px;
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity 0.6s ease,
        transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.timeline-row:last-child {
    padding-bottom: 0;
}

.timeline-row.is-risen {
    opacity: 1;
    transform: translateY(0);
}

.timeline-row-node {
    position: absolute;
    top: 4px;
    left: 14px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: var(--bg-color);
    border: 2px solid rgba(255, 255, 255, 0.25);
    z-index: 1;
    transition: border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.timeline-row::before {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 0;
    left: 19px;
    width: 2px;
    background-color: rgba(255, 255, 255, 0.08);
    transition: background-color 0.4s ease;
}

.timeline-row:last-child::before {
    display: none;
}

.timeline-row.is-risen .timeline-row-node {
    border-color: var(--accent-color);
}

.timeline-row.is-risen::before {
    background-color: var(--accent-color);
    opacity: 0.35;
}

.timeline-row.is-risen:hover .timeline-row-node {
    background-color: var(--accent-color);
    box-shadow: 0 0 0 5px rgba(251, 188, 5, 0.15);
}

.timeline-row.is-risen:hover .timeline-row-title {
    color: var(--accent-color);
}

.timeline-row:nth-child(1) { transition-delay: 0s; }
.timeline-row:nth-child(2) { transition-delay: 0.06s; }
.timeline-row:nth-child(3) { transition-delay: 0.12s; }
.timeline-row:nth-child(4) { transition-delay: 0.18s; }
.timeline-row:nth-child(5) { transition-delay: 0.24s; }
.timeline-row:nth-child(6) { transition-delay: 0.3s; }

.timeline-row-year {
    display: block;
    font-family: 'Silkscreen', var(--font-main);
    font-size: 0.85rem;
    color: var(--accent-color);
    letter-spacing: 0.02em;
    margin-bottom: 8px;
}

.timeline-row-title {
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    margin-bottom: 8px;
    transition: color 0.3s ease;
}

.timeline-row-desc {
    color: var(--text-secondary);
    font-size: 0.92rem;
    line-height: 1.65;
}

@media (max-width: 560px) {
    .timeline-row {
        padding: 0 0 40px 30px;
    }

    .timeline-row-node {
        left: 8px;
    }

    .timeline-row::before {
        left: 13px;
    }

    .timeline-row-title {
        font-size: 1.15rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .timeline-row {
        transition: none;
        opacity: 1;
        transform: none;
    }

    .timeline-row-node,
    .timeline-row::before,
    .timeline-row-title {
        transition: none;
    }
}

/* -------------------------------------
   About Us: The Numbers — reuses .results-panel/.results-item/
   .results-value/.results-label as-is (defined earlier, Markets page).
   Count-up animation already runs globally via initResultsCounters.
--------------------------------------- */
.about-stats-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 30px 5% 60px;
}

/* -------------------------------------
   About Us: The Team — same editorial index list as .timeline-row,
   with an index number, a placeholder initials avatar (swap for a real
   <img> later without touching layout), name, role, and a bio line.
--------------------------------------- */
.about-team-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 30px 5% 100px;
}

.team-list {
    max-width: 900px;
    margin: 0 auto;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.team-row {
    position: relative;
    padding: 32px 0 32px 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity 0.6s ease,
        transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
        padding-left 0.3s ease;
}

.team-row::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 2px;
    background-color: var(--accent-color);
    transform: scaleY(0);
    transform-origin: center;
    transition: transform 0.35s ease;
}

.team-row.is-risen {
    opacity: 1;
    transform: translateY(0);
}

.team-row.is-risen:hover {
    padding-left: 36px;
}

.team-row.is-risen:hover::before {
    transform: scaleY(1);
}

.team-row.is-risen:hover .team-row-name {
    color: var(--accent-color);
}

.team-row:nth-child(1) { transition-delay: 0s; }
.team-row:nth-child(2) { transition-delay: 0.06s; }
.team-row:nth-child(3) { transition-delay: 0.12s; }
.team-row:nth-child(4) { transition-delay: 0.18s; }
.team-row:nth-child(5) { transition-delay: 0.24s; }

.team-row-head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 14px;
}

.team-row-index {
    font-family: 'Silkscreen', var(--font-main);
    font-size: 0.85rem;
    color: var(--text-secondary);
    flex-shrink: 0;
}

.team-row-avatar {
    flex-shrink: 0;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: linear-gradient(145deg, rgba(251, 188, 5, 0.22), rgba(251, 188, 5, 0.06));
    border: 1px solid rgba(251, 188, 5, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Silkscreen', var(--font-main);
    font-size: 0.9rem;
    color: var(--accent-color);
}

.team-row-titles {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.team-row-name {
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    transition: color 0.3s ease;
}

.team-row-role {
    font-size: 0.85rem;
    color: var(--text-secondary);
    font-weight: 600;
}

.team-row-bio {
    color: var(--text-secondary);
    font-size: 0.92rem;
    line-height: 1.65;
    max-width: 640px;
}

@media (max-width: 560px) {
    .team-row {
        padding-left: 16px;
    }

    .team-row.is-risen:hover {
        padding-left: 24px;
    }

    .team-row-avatar {
        width: 44px;
        height: 44px;
        font-size: 0.8rem;
    }

    .team-row-name {
        font-size: 1.1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .team-row {
        transition: none;
        opacity: 1;
        transform: none;
    }

    .team-row::before,
    .team-row-name {
        transition: none;
    }
}

/* -------------------------------------
   About Us: Endless Opportunities
--------------------------------------- */
.possibilities-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 27px 140px;
    text-align: center;
}

.possibilities-title {
    font-size: clamp(2rem, 3.4vw, 2.6rem);
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 30px;
}

.possibilities-copy p {
    color: var(--text-secondary);
    font-size: 1rem;
    line-height: 1.8;
    margin: 0 auto;
}

.possibilities-copy p + p {
    margin-top: 24px;
}

.possibilities-photo {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: cover;
    border-radius: 18px;
    margin-top: 55px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);
}

@media (max-width: 900px) {
    .possibilities-copy p br {
        display: none;
    }

    .possibilities-photo {
        max-height: 320px;
        margin-top: 40px;
    }
    .possibilities-section {
        padding: 40px 27px 55px;
    }
}

/* -------------------------------------
   About Us: 4D Methodology
--------------------------------------- */
.d4-section {
    max-width: 1470px;
    margin: 0 auto ;
    padding: 40px 5% 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 60px;
}

.d4-header {
    flex-shrink: 0;
    max-width: 371px;
    transform: translate(170px, -101px);
}

.d4-title {
    font-size: clamp(1.9rem, 3vw, 2.7rem);
    font-weight: 800;
    margin-bottom: 10px;
}

.d4-subtitle {
    color: var(--text-secondary);
    font-size: 0.95rem;
}

.d4-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(170px, 274px));
    grid-template-rows: repeat(2, auto);
    gap: 28px;
    transform: translateX(-75px);
}

.d4-card:nth-child(1) { grid-column: 2; grid-row: 1; }
.d4-card:nth-child(2) { grid-column: 3; grid-row: 1; }
.d4-card:nth-child(3) { grid-column: 1; grid-row: 2; }
.d4-card:nth-child(4) { grid-column: 2; grid-row: 2; }

.d4-card {
    background-color: #1a1a1c;
    border: 1px solid #2c2c2e;
    border-radius: 18px;
    padding: 37px 22px;
    text-align: center;
    transition: border-color 0.3s ease, transform 0.3s ease;
}

.d4-card:hover {
    border-color: var(--accent-color);
    transform: translateY(-4px);
}

.d4-card-icon {
    width: 58px;
    height: 58px;
    margin: 0 auto 20px;
    border-radius: 50%;
    background-color: #232325;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-color);
}

.d4-card-icon svg {
    width: 26px;
    height: 26px;
}

.d4-card-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 8px;
}

.d4-card-caption {
    color: var(--text-secondary);
    font-size: 0.85rem;
    line-height: 1.4;
}

@media (max-width: 900px) {
    .d4-section {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 40px;
    }

    .d4-header {
        max-width: 100%;
        transform: translate(0px);
    }

    .d4-cards {
        grid-template-columns: repeat(2, minmax(140px, 1fr));
        max-width: 400px;
        transform: none;
    }

    .d4-card:nth-child(1) { grid-column: 1; grid-row: 1; }
    .d4-card:nth-child(2) { grid-column: 2; grid-row: 1; }
    .d4-card:nth-child(3) { grid-column: 1; grid-row: 2; }
    .d4-card:nth-child(4) { grid-column: 2; grid-row: 2; }
}

/* -------------------------------------
   About Us: Map
--------------------------------------- */
.map-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 0 5% 140px;
}

.map-frame {
    position: relative;
    width: 100%;
    height: 420px;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);
}

/* Bing's embed renders at a fixed pixel size (the h/w in its src URL,
   mirrored in the width/height attributes below) rather than filling
   its parent responsively, so it's scaled via JS (initBingMapFit in
   script.js) to exactly cover .map-frame at any viewport size instead
   of leaving blank space or a scrollbar. */
.map-frame iframe {
    position: absolute;
    top: 0;
    left: 0;
    transform-origin: top left;
    border: 0;
    filter: invert(90%) hue-rotate(180deg) contrast(0.9) brightness(0.95);
}

@media (max-width: 900px) {
    .map-frame {
        height: 300px;
    }
}

/* -------------------------------------
   Case Studies Page
--------------------------------------- */
.case-studies-hero {
    max-width: 1470px;
    margin: 0 auto;
    padding: 60px 5% 0;
}

.case-studies-title {
    font-size: 2.6rem;
    font-weight: 800;
    line-height: 1.25;
    margin: 14px 0 12px;
    max-width: 780px;
}

.case-studies-sub {
    color: var(--text-secondary);
    font-size: 1.05rem;
    max-width: 620px;
    line-height: 1.6;
}

.case-carousel-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 80px 0 120px 5%;
    overflow: hidden;
}

.case-carousel-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 40px;
    padding-right: 5%;
}

.case-carousel-heading {
    font-size: 1.2rem;
    line-height: 1.4;
    font-weight: 700;
    max-width: 780px;
}

.ch-strong {
    color: var(--text-primary);
}

.ch-muted {
    color: var(--text-secondary);
    font-weight: 500;
}

.case-carousel-nav {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.case-nav-btn {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background-color: transparent;
    border: 1px solid #333;
    color: var(--text-secondary);
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: all 0.25s ease;
}

.case-nav-btn:hover {
    border-color: var(--accent-color);
    color: var(--accent-color);
}

.case-carousel-track {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    padding-bottom: 10px;
    padding-right: 5%;
    scrollbar-width: none;
}

.case-carousel-track::-webkit-scrollbar {
    display: none;
}

.case-card {
    flex: 0 0 300px;
    scroll-snap-align: start;
    border-radius: 14px;
    overflow: hidden;
    background-color: #1c1c1e;
    border: 1px solid #2c2c2e;
    display: flex;
    flex-direction: column;
}

.case-card[data-accent="green"] { --case-accent: #6fd6ae; --case-accent-soft: rgba(111, 214, 174, 0.18); }
.case-card[data-accent="purple"] { --case-accent: #b39ddb; --case-accent-soft: rgba(179, 157, 219, 0.18); }
.case-card[data-accent="blue"] { --case-accent: #8ec6f5; --case-accent-soft: rgba(142, 198, 245, 0.18); }
.case-card[data-accent="pink"] { --case-accent: #f2a7c4; --case-accent-soft: rgba(242, 167, 196, 0.18); }
.case-card[data-accent="gold"] { --case-accent: var(--accent-color); --case-accent-soft: rgba(251, 188, 5, 0.18); }

.case-card-visual {
    position: relative;
    aspect-ratio: 4 / 5;
    background: radial-gradient(circle at 30% 20%, var(--case-accent-soft) 0%, rgba(23, 23, 25, 0) 65%), #171719;
    overflow: hidden;
}

.case-card-tag {
    position: absolute;
    top: 16px;
    left: 16px;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-primary);
}

.case-card-num {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.9);
    color: #171719;
    font-size: 0.75rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.case-card-spark {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 45%;
}

.case-card-spark polyline {
    fill: none;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke: var(--case-accent);
    opacity: 0.85;
}

.case-card-info {
    padding: 18px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.case-card-title {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.case-card-desc {
    font-size: 0.78rem;
    color: var(--text-secondary);
    line-height: 1.45;
}

.case-card-stat {
    flex-shrink: 0;
    display: flex;
    align-items: baseline;
    gap: 2px;
}

.stat-num {
    font-size: 1.7rem;
    font-weight: 800;
}

.stat-unit {
    font-size: 0.85rem;
    color: var(--text-secondary);
    font-weight: 600;
}

@media (max-width: 900px) {
    .case-carousel-header {
        flex-direction: column;
        align-items: flex-start;
        padding-right: 0;
    }

    .case-card {
        flex: 0 0 240px;
    }

    .case-studies-hero {
        padding: 27px 5% 0;
    }
}

/* -------------------------------------
   Why SEO Emperor — radial callout circle
--------------------------------------- */
.why-us-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 60px 5% 200px;
}

.why-us-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.why-us-inner > .process-label {
    align-self: flex-start;
    margin-bottom: 60px;
}

/* Coordinate system for the 8 radial nodes: percentages are relative
   to this box, so the whole diagram scales if --why-size changes. */
.why-us-stage {
    --why-size: 661px;
    position: relative;
    width: var(--why-size);
    height: var(--why-size);
}

.why-us-photo-mask {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    overflow: hidden;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.05),
        inset 0 25px 50px rgba(0, 0, 0, 0.6),
        inset 0 -25px 50px rgba(0, 0, 0, 0.5);
}

.why-us-photo-mask img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.6);
}

.why-us-photo-mask::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 50%, rgba(23, 23, 25, 0.15) 0%, rgba(23, 23, 25, 0.55) 100%);
}

.why-us-center-label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 1.7rem;
    font-weight: 800;
    line-height: 1.3;
}

.why-us-node {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 12px;
    transform: translate(-50%, -50%);
}

.why-us-node .why-us-label {
    width: 150px;
    font-size: 0.8rem;
    line-height: 1.4;
    color: var(--text-secondary);
}

.why-us-badge {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.95);
    color: #171719;
    font-size: 0.8rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.why-us-node--top { top: -5%; left: 50%; flex-direction: column-reverse; text-align: center; }
.why-us-node--top .why-us-label { margin-bottom: 4px; }

.why-us-node--bottom { top: 105%; left: 50%; flex-direction: column; text-align: center; }
.why-us-node--bottom .why-us-label { margin-top: 4px; }

.why-us-node--right,
.why-us-node--upper-right,
.why-us-node--lower-right {
    flex-direction: row;
    text-align: left;
}

.why-us-node--left,
.why-us-node--upper-left,
.why-us-node--lower-left {
    flex-direction: row-reverse;
    text-align: right;
}

.why-us-node--upper-right { top: 14.7%; left: 98.3%; }
.why-us-node--right { top: 50%; left: 112%; }
.why-us-node--lower-right { top: 85.3%; left: 98.3%; }
.why-us-node--lower-left { top: 85.3%; left: 1.7%; }
.why-us-node--left { top: 50%; left: -13%; }
.why-us-node--upper-left { top: 14.7%; left: 1.7%; }

.why-us-list {
    display: none;
}

@media (max-width: 900px) {
    .why-us-stage {
        --why-size: 300px;
    }

    .why-us-node {
        display: none;
    }

    .why-us-center-label {
        font-size: 1.3rem;
    }

    .why-us-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
        list-style: none;
        margin-top: 50px;
        width: 100%;
        max-width: 640px;
    }

    .why-us-list li {
        display: flex;
        align-items: flex-start;
        gap: 12px;
    }

    .why-us-list .why-us-badge {
        background-color: var(--btn-bg);
        color: var(--text-primary);
        border: 1px solid #333;
    }

    .why-us-list .why-us-label {
        width: auto;
    }
    .why-us-section {
        padding:60px 5% 62px;
    }
}

@media (max-width: 560px) {
    .why-us-list {
        grid-template-columns: 1fr;
    }
}

/* -------------------------------------
   Organic Search Research — cascading stats
--------------------------------------- */
.research-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 40px 5% 160px;
}

.research-heading {
    font-size: 2.1rem;
    font-weight: 500;
    line-height: 1.45;
    max-width: 920px;
    margin-bottom: 90px;
}

.stat-cascade {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.stat-cascade-item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 32px;
}

.stat-cascade-item:not(:first-child) {
    margin-top: 46px;
}

.stat-cascade-item:nth-child(2) { margin-left: 34%; }
.stat-cascade-item:nth-child(3) { margin-left: 67%; }
.stat-cascade-item:nth-child(4) { margin-left: 26%; }

.stat-block {
    flex-shrink: 0;
    width: 157px;
    height: 139px;
    background: linear-gradient(160deg, rgba(251, 188, 5, 0.55) 0%, rgba(20, 18, 10, 0.9) 75%);
    opacity: 0;
    transform: translateY(50px);
    transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.7s ease;
}

.stat-block.is-risen {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered per row so the blocks rise one after another, following
   the staircase order rather than all popping up at once. */
.stat-cascade-item:nth-child(1) .stat-block { transition-delay: 0s; }
.stat-cascade-item:nth-child(2) .stat-block { transition-delay: 0.15s; }
.stat-cascade-item:nth-child(3) .stat-block { transition-delay: 0.3s; }
.stat-cascade-item:nth-child(4) .stat-block { transition-delay: 0.45s; }

.stat-number {
    font-size: 2.9rem;
    font-weight: 800;
    color: var(--accent-color);
    line-height: 1.1;
}

.stat-desc {
    font-size: 0.95rem;
    color: var(--text-secondary);
    max-width: 260px;
    line-height: 1.45;
    margin-top: 8px;
}

@media (max-width: 900px) {
    .research-heading {
        font-size: 1.6rem;
        margin-bottom: 60px;
    }

    .stat-cascade {
        gap: 30px;
    }

    .stat-cascade-item:not(:first-child) {
        margin-top: 0;
    }

    .stat-cascade-item:nth-child(2),
    .stat-cascade-item:nth-child(3),
    .stat-cascade-item:nth-child(4) {
        margin-left: 0;
    }
}

/* -------------------------------------
   Campaign Journey — full-bleed banner
--------------------------------------- */
.journey-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 0 5% 140px;
}

.journey-banner {
    position: relative;
    width: 100%;
}

.journey-visual {
    position: relative;
    width: 100%;
    aspect-ratio: 2.1 / 1;
    overflow: hidden;
}

.journey-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.journey-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 28%, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, 0.8) 100%);
}

.journey-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding: 40px;
    z-index: 2;
}

.journey-title {
    font-size: 2.2rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 16px;
}

.journey-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.journey-tag {
    background-color: rgba(255, 255, 255, 0.92);
    color: #171719;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 7px 16px;
    border-radius: 999px;
}

.journey-steps {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.journey-step {
    padding: 28px 28px 32px;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.journey-step:last-child {
    border-right: none;
}

.journey-step-num {
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 56px;
}

.journey-step-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 8px;
}

.journey-step-desc {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.5;
    max-width: 220px;
}

@media (max-width: 900px) {
    .journey-visual {
        aspect-ratio: 4 / 5;
        border-radius: 18px 18px 0 0;
    }

    .journey-title {
        font-size: 1.6rem;
    }

    .journey-top {
        padding: 24px;
    }

    .journey-steps {
        position: static;
        grid-template-columns: 1fr;
        background-color: #1c1c1e;
        border-top: none;
        border-radius: 0 0 18px 18px;
        overflow: hidden;
    }

    .journey-step {
        border-right: none;
        border-bottom: 1px solid #2c2c2e;
    }

    .journey-step:last-child {
        border-bottom: none;
    }

    .journey-step-num {
        margin-bottom: 12px;
    }
}

/* -------------------------------------
   Scroll Reveal — headings/paragraphs fade + slide up
   as they enter the viewport (see initScrollReveal in script.js)
--------------------------------------- */
.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

/* Elements sitting in the left/right third of the viewport slide in
   from that side instead of straight up — set by initScrollReveal
   based on each element's horizontal position. */
.reveal-left {
    transform: translateX(-40px);
}

.reveal-right {
    transform: translateX(40px);
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .stat-block {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .service-capabilities-list li {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* -------------------------------------
   Markets Page — Big Skeleton Globe + Region Markers
--------------------------------------- */
.markets-hero {
    margin: 0 auto;
    padding: 70px 5% 40px;
    text-align: center;
}

.markets-eyebrow {
    color: var(--accent-color);
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 2px;
    margin-bottom: 16px;
}

.markets-title {
    font-size: 2.6rem;
    line-height: 1.3;
    font-weight: 700;
    margin-bottom: 18px;
}

.markets-subtitle {
    color: var(--text-secondary);
    font-size: 1.05rem;
    line-height: 1.6;
    max-width: 620px;
    margin: 0 auto;
}

/* Section that holds the big globe, centered below the intro copy */
.globe-section-lg {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 40px 0 60px;
}

/* Radius custom property — every ring/marker below is expressed as a
   ratio of --r, so shrinking it in the media queries rescales the
   whole sphere (and every marker's position on it) in one place. */
.globe-wrapper-lg {
    --r: 550px;
    position: relative;
    pointer-events: auto;
}

.globe-stage-lg {
    position: relative;
    width: calc(var(--r) * 2);
    height: calc(var(--r) * 2);
    perspective: 3200px;
    perspective-origin: 50% 50%;

    -webkit-mask-image: radial-gradient(circle at 50% 50%, rgba(0,0,0,1) 45%, rgba(0,0,0,0) 78%);
    mask-image: radial-gradient(circle at 50% 50%, rgba(0,0,0,1) 45%, rgba(0,0,0,0) 78%);

    border-radius: 50%;
    background: radial-gradient(circle at 38% 32%, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0) 55%),
                radial-gradient(circle at 50% 50%, rgba(23, 23, 25, 0) 0%, rgba(0, 0, 0, 0.35) 100%);
}

.globe-stage-lg::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, 0.35);
    box-shadow: 0 0 60px rgba(251, 188, 5, 0.08);
}

/* Pause the globe (and un-sync the marker counter-spin along with it)
   when a marker is hovered, so its label is easy to read/click. */
.globe-lg:has(.globe-marker:hover),
.globe-lg:has(.globe-marker:hover) .marker-counter {
    animation-play-state: paused;
}

/* One marker: positioned on the sphere surface via translate3d, riding
   the globe's own rotation. transform-style:preserve-3d so its child
   (.marker-counter) can carry a *real* 3D counter-rotation instead of
   being flattened into the marker's own (already-spinning) plane. */
.globe-marker {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    transform-style: preserve-3d;
}

/* Cancels the parent .globe's rotateX(70deg)+spin animation exactly
   (same duration/timing/start as spinGlobe, just inverted), so the
   dot+label always face the camera while still orbiting with the globe. */
.marker-counter {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
    animation: spinGlobeCounter 120s linear infinite;
}

@keyframes spinGlobeCounter {
    0%   { transform: translate(-50%, -50%) rotateZ(0deg)   rotateX(-70deg); }
    100% { transform: translate(-50%, -50%) rotateZ(360deg) rotateX(-70deg); }
}

/* Matches the .globe pause above (mobile, max-width: 760px) — kept here,
   after the unconditional `animation:` shorthand on .marker-counter, so
   this longhand isn't reset back to "running" by cascade order. */
@media (max-width: 760px) {
    .marker-counter {
        animation-play-state: paused;
    }
}

.marker-dot {
    position: relative;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background-color: var(--accent-color);
    box-shadow: 0 0 10px rgba(251, 188, 5, 0.8), 0 0 3px rgba(251, 188, 5, 0.9);
    flex-shrink: 0;
}

.marker-dot::after {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 1px solid rgba(251, 188, 5, 0.5);
    animation: markerPing 2.4s ease-out infinite;
}

@keyframes markerPing {
    0%   { transform: scale(0.6); opacity: 0.8; }
    100% { transform: scale(1.8); opacity: 0; }
}

.marker-label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-primary);
    background-color: rgba(23, 23, 25, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 5px;
    padding: 3px 9px;
    transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.globe-marker:hover .marker-dot {
    background-color: #ffcc33;
}

.globe-marker:hover .marker-label {
    color: var(--accent-color);
    border-color: rgba(251, 188, 5, 0.5);
    background-color: rgba(23, 23, 25, 0.92);
}

@media (max-width: 1200px) {
    .globe-wrapper-lg { --r: 420px; }
}

@media (max-width: 860px) {
    .globe-wrapper-lg { --r: 300px; }
    .markets-title { font-size: 2.1rem; }
    .marker-label { font-size: 0.7rem; padding: 2px 7px; }
    .markets-hero { padding: 26px 7% 18px; }

}

@media (max-width: 560px) {
    .globe-wrapper-lg { --r: 132px; }
    .marker-label { font-size: 0.62rem; padding: 2px 6px; }
}

/* -------------------------------------------------------------------
   Markets page: content sections below the globe (market grid, results
   stats, FAQ, closing CTA). Shared container/heading so the four
   sections read as one consistent block.
   ------------------------------------------------------------------- */
.markets-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 60px 5%;
}

.markets-section-head {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 50px;
}

.markets-section-title {
    font-size: 2.1rem;
    font-weight: 800;
    line-height: 1.3;
}

/* Editorial index list (not cards): each region is a full-width row
   separated by hairline dividers, in the spirit of a numbered
   table-of-contents rather than a dashboard grid. Hover states are
   quiet — a color shift + a thin accent rule growing in on the left
   edge — instead of card-lift/glow. */
.market-list {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    max-width: 900px;
    margin: 0 auto 54px;
}

.market-row {
    position: relative;
    padding: 40px 0 40px 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity 0.6s ease,
        transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
        padding-left 0.3s ease;
}

.market-row::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 2px;
    background-color: var(--accent-color);
    transform: scaleY(0);
    transform-origin: center;
    transition: transform 0.35s ease;
}

.market-row.is-risen {
    opacity: 1;
    transform: translateY(0);
}

.market-row.is-risen:hover {
    padding-left: 36px;
}

.market-row.is-risen:hover::before {
    transform: scaleY(1);
}

.market-row.is-risen:hover .market-row-title {
    color: var(--accent-color);
}

.market-row:nth-child(1) { transition-delay: 0s; }
.market-row:nth-child(2) { transition-delay: 0.06s; }
.market-row:nth-child(3) { transition-delay: 0.12s; }
.market-row:nth-child(4) { transition-delay: 0.18s; }
.market-row:nth-child(5) { transition-delay: 0.24s; }
.market-row:nth-child(6) { transition-delay: 0.3s; }
.market-row:nth-child(7) { transition-delay: 0.36s; }
.market-row:nth-child(8) { transition-delay: 0.42s; }

.market-row-head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin-bottom: 14px;
}

.market-row-index {
    font-family: 'Silkscreen', var(--font-main);
    font-size: 0.9rem;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
}

.market-row-title {
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    transition: color 0.3s ease;
}

.market-row--primary .market-row-title {
    font-size: 2rem;
}

.market-row-flag {
    margin: 0 0 0 auto;
    color: var(--accent-color);
}

.market-row-desc {
    color: var(--text-secondary);
    font-size: 0.95rem;
    line-height: 1.65;
    max-width: 640px;
    margin-bottom: 22px;
}

.market-row-meta {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px 32px;
}

.market-row-stats {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
}

.market-row-stat {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.market-row-stat strong {
    display: block;
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--accent-color);
    line-height: 1.3;
}

.market-row-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
}

.market-row-tag {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary);
}

.market-row-tag::before {
    content: "";
    display: inline-block;
    width: 4px;
    height: 4px;
    margin-right: 8px;
    border-radius: 50%;
    background-color: var(--text-secondary);
    vertical-align: middle;
}

@media (max-width: 560px) {
    .market-row {
        padding-left: 16px;
    }

    .market-row.is-risen:hover {
        padding-left: 24px;
    }

    .market-row-flag {
        margin-left: 0;
        flex-basis: 100%;
    }

    .market-row--primary .market-row-title {
        font-size: 1.5rem;
    }

    .market-row-title {
        font-size: 1.3rem;
    }

    .market-row-meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .markets-section-title { font-size: 1.8rem; }
}

@media (prefers-reduced-motion: reduce) {
    .market-row {
        transition: none;
        opacity: 1;
        transform: none;
    }

    .market-row::before,
    .market-row-title {
        transition: none;
    }
}

/* Results panel (markets page): one glass panel, count-up numbers
   (initResultsCounters in script.js) — a single unified bar instead of
   scattered staircase blocks, so it doesn't just look like the
   case-studies page's .stat-cascade section reused with different copy. */
.results-panel {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    overflow: hidden;
}

.results-item {
    padding: 36px 30px;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.results-item:last-child {
    border-right: none;
}

.results-value {
    font-size: 2.6rem;
    font-weight: 800;
    color: var(--accent-color);
    line-height: 1.1;
    letter-spacing: -0.01em;
}

.results-label {
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.5;
    margin-top: 10px;
    max-width: 220px;
}

@media (max-width: 860px) {
    .results-panel {
        grid-template-columns: repeat(2, 1fr);
    }
    .results-item {
        padding: 28px 22px;
    }
    .results-item:nth-child(odd) {
        border-right: 1px solid rgba(255, 255, 255, 0.08);
    }
    .results-item:nth-child(1),
    .results-item:nth-child(2) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }
}

@media (max-width: 560px) {
    .markets-section {
        padding: 26px 6% 44px;
    }

    .markets-section-head {
        margin-bottom: 34px;
    }

    /* Same bleed treatment as .status-strip: the data tables (reg-table)
       already scroll horizontally past their min-width, so widening the
       visible area past the section's own side padding means less of
       that scroll is needed before the table settles into view. */
    .reg-table-wrap {
        margin-left: -14px;
        margin-right: -14px;
    }

    .results-panel {
        grid-template-columns: 1fr;
    }
    .results-item {
        padding: 24px 4px;
        border-right: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }
    .results-item:last-child {
        border-bottom: none;
    }

    .results-value {
        font-size: 2.1rem;
    }

    .results-label {
        max-width: none;
    }
}

/* FAQ accordion: initMarketsFaq (script.js) toggles .is-open on
   .faq-item and expands .faq-answer via grid-template-rows so the
   collapse/expand animates without measuring heights in JS. */
.faq-list {
    max-width: 780px;
    margin: 0 auto;
}

.faq-item {
    border-bottom: 1px solid #2c2c2e;
}

.faq-item:first-child {
    border-top: 1px solid #2c2c2e;
}

.faq-question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: none;
    border: none;
    border-radius: 0;
    text-align: left;
    padding: 22px 4px;
    font-size: 1rem;
    color: var(--text-primary);
}

.faq-icon {
    flex-shrink: 0;
    font-size: 1.2rem;
    color: var(--accent-color);
    transition: transform 0.25s ease;
}

.faq-item.is-open .faq-icon {
    transform: rotate(45deg);
}

.faq-answer {
    display: grid;
    grid-template-rows: 0fr;
    overflow: hidden;
    transition: grid-template-rows 0.3s ease;
}

.faq-item.is-open .faq-answer {
    grid-template-rows: 1fr;
}

.faq-answer-inner {
    min-height: 0;
}

.faq-answer-inner p {
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--text-secondary);
    padding: 0 4px 22px;
}

/* Closing CTA */
.markets-cta-section {
    max-width: 1470px;
    margin: 0 auto;
    padding: 20px 5% 100px;
    text-align: center;
}

.markets-cta-title {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 12px;
}

.markets-cta-text {
    color: var(--text-secondary);
    font-size: 1rem;
    max-width: 480px;
    margin: 0 auto 26px;
}

/* -------------------------------------------------------------------
   Markets page: Regulatory & Ad-Rules Map (replaces the market-row
   cards / results-panel / FAQ below the globe hero). Reuses
   .markets-section / .markets-section-head / .markets-eyebrow /
   .markets-section-title so it reads as the same page, just with
   per-region tables instead of cards.
   ------------------------------------------------------------------- */
.reg-lede {
    max-width: 700px;
    margin: 0 auto 54px;
}

.reg-lede p {
    color: var(--text-secondary);
    font-size: 0.95rem;
    line-height: 1.75;
    margin-bottom: 18px;
}

.reg-lede p:last-child {
    margin-bottom: 0;
}

.reg-lede strong {
    color: var(--text-primary);
}

.reg-region {
    max-width: 1100px;
    margin: 0 auto 52px;
}

.reg-region:last-of-type {
    margin-bottom: 0;
}

.reg-region-title {
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.reg-table-wrap {
    overflow-x: auto;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.015);
}

.reg-table {
    width: 100%;
    min-width: 660px;
    border-collapse: collapse;
}

.reg-table th {
    text-align: left;
    padding: 16px 20px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent-color);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    white-space: nowrap;
}

.reg-table td {
    text-align: left;
    padding: 18px 20px;
    font-size: 0.85rem;
    line-height: 1.6;
    color: var(--text-secondary);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    vertical-align: top;
}

.reg-table tbody tr:last-child td {
    border-bottom: none;
}

.reg-table tbody tr:hover td {
    background: rgba(255, 255, 255, 0.025);
}

.reg-table td:first-child {
    color: var(--text-primary);
    font-weight: 700;
    white-space: nowrap;
}

.reg-table td:last-child {
    white-space: nowrap;
    color: var(--text-secondary);
    font-size: 0.78rem;
}

.reg-disclaimer {
    max-width: 820px;
    margin: 0 auto 54px;
    padding: 16px 20px;
    border: 1px solid rgba(251, 188, 5, 0.25);
    border-radius: 10px;
    background: rgba(251, 188, 5, 0.05);
}

.reg-disclaimer p {
    color: var(--text-secondary);
    font-size: 0.85rem;
    line-height: 1.65;
    margin: 0;
}

@media (max-width: 560px) {
    .reg-region-title {
        font-size: 1.1rem;
    }

    .reg-table th,
    .reg-table td {
        padding: 14px 16px;
        font-size: 0.8rem;
    }

    /* Column widths were left to auto table-layout, so each region
       table sized its own Status column from that table's own content
       — a paragraph-heavy row could squeeze Status while a
       short-content table gave it more room. table-layout: fixed makes
       every table honor the same explicit column shares instead, so
       Status is consistently wider everywhere (scoped off
       .reg-table--wide, whose deep-dive tables use a different column
       count/order). First/last columns drop their nowrap so long
       entries (e.g. "US — sweepstakes layer") wrap within their fixed
       share instead of overflowing it. */
    .reg-table:not(.reg-table--wide) {
        table-layout: fixed;
    }

    .reg-table:not(.reg-table--wide) th,
    .reg-table:not(.reg-table--wide) td {
        white-space: normal;
    }

    .reg-table:not(.reg-table--wide) th:nth-child(1),
    .reg-table:not(.reg-table--wide) td:nth-child(1) {
        width: 20%;
    }

    .reg-table:not(.reg-table--wide) th:nth-child(2),
    .reg-table:not(.reg-table--wide) td:nth-child(2) {
        width: 36%;
    }

    .reg-table:not(.reg-table--wide) th:nth-child(3),
    .reg-table:not(.reg-table--wide) td:nth-child(3) {
        width: 30%;
    }

    .reg-table:not(.reg-table--wide) th:nth-child(4),
    .reg-table:not(.reg-table--wide) td:nth-child(4) {
        width: 14%;
    }
}

/* Wider variant for tables with 5+ columns (region deep-dive pages) so
   long cells don't get crushed before overflow-x scroll kicks in. */
.reg-table--wide {
    min-width: 920px;
}

/* -------------------------------------------------------------------
   Market deep-dive pages (e.g. /markets/africa/) — editorial article
   layout: left-aligned hero (not the centered globe hero), a status
   strip as the page's one signature element, then .markets-section
   blocks reusing .reg-lede/.market-row/.faq-list so it still reads as
   the same site as the markets hub.
   ------------------------------------------------------------------- */
.region-hero {
    max-width: 900px;
    margin: 0 auto;
    padding: 70px 5% 10px;
}

.region-hero-title {
    font-size: 2.7rem;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -0.01em;
    margin-bottom: 22px;
}

.region-hero-lede {
    max-width: 700px;
}

.region-hero-lede p {
    color: var(--text-secondary);
    font-size: 1.02rem;
    line-height: 1.7;
    margin-bottom: 16px;
}

.region-hero-lede p:last-child {
    margin-bottom: 0;
}

.region-hero-lede strong {
    color: var(--text-primary);
}

/* Status strip: the page's signature element — three entry stories,
   not a decorative stat row, so it carries real page content. */
.status-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.015);
    overflow: hidden;
    margin-top: 44px;
}

.status-card {
    padding: 26px 24px;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.status-card:last-child {
    border-right: none;
}

.status-tag {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent-color);
    margin-bottom: 12px;
}

.status-market {
    font-size: 1.1rem;
    font-weight: 800;
    margin-bottom: 8px;
}

.status-desc {
    color: var(--text-secondary);
    font-size: 0.85rem;
    line-height: 1.55;
}

/* Four-market variant (e.g. Sweden/Denmark/Finland/Norway on the Nordics
   page) — same component, one modifier for the extra column. 2x2 on
   tablet before collapsing to one column with the base rule below. */
.status-strip--quad {
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1000px) {
    .status-strip--quad {
        grid-template-columns: repeat(2, 1fr);
    }

    .status-strip--quad .status-card:nth-child(2) {
        border-right: none;
    }

    .status-strip--quad .status-card:nth-child(1),
    .status-strip--quad .status-card:nth-child(2) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }
}

@media (max-width: 860px) {
    .status-strip {
        grid-template-columns: 1fr;
    }

    .status-card {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .status-card:last-child {
        border-bottom: none;
    }

    .region-hero-title {
        font-size: 2.2rem;
    }
}

@media (max-width: 560px) {
    .region-hero {
        padding: 40px 6% 6px;
    }

    .region-hero-title {
        font-size: 1.8rem;
    }

    /* Bleed the status-strip slightly past the hero's own side padding —
       the hero copy stays at a readable measure, but the card strip (this
       page's signature element) gets a bit more room on narrow phones. */
    .status-strip {
        margin-left: -14px;
        margin-right: -14px;
    }

    .status-card {
        padding: 22px 20px;
    }
}

/* Constraint blocks: three compared regimes (Kenya/Nigeria/South
   Africa), same accent-rule language as .market-row::before but static
   (this content is a comparison, not a scannable list to reveal). */
.constraint-list {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.constraint-block {
    padding: 22px 26px;
    border-left: 2px solid var(--accent-color);
    background: rgba(255, 255, 255, 0.015);
    border-radius: 0 10px 10px 0;
}

.constraint-block p {
    color: var(--text-secondary);
    font-size: 0.92rem;
    line-height: 1.7;
}

.constraint-block strong {
    color: var(--text-primary);
}

@media (max-width: 560px) {
    .constraint-block {
        padding: 18px 20px;
    }
}

/* Status-card rise-on-scroll: same recipe as .market-row (initStatusCardsReveal
   in script.js), so the hero's signature strip isn't inert on load. */
.status-card {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s ease, transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.status-card.is-risen {
    opacity: 1;
    transform: translateY(0);
}

.status-card:nth-child(1) { transition-delay: 0s; }
.status-card:nth-child(2) { transition-delay: 0.08s; }
.status-card:nth-child(3) { transition-delay: 0.16s; }
.status-card:nth-child(4) { transition-delay: 0.24s; }

/* Pull-quote: the one place on a region deep-dive page allowed to speak
   louder than body copy — a single sourced line, bracketed by hairline
   rules (not a colored border), breaking up long prose sections. */
.pull-quote {
    max-width: 620px;
    margin: 48px auto;
    padding: 28px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.7s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.pull-quote.is-risen {
    opacity: 1;
    transform: translateY(0);
}

.pull-quote p {
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: -0.01em;
    color: var(--text-primary);
}

.pull-quote p::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 12px;
    margin-bottom: 2px;
    border-radius: 50%;
    background-color: var(--accent-color);
    vertical-align: middle;
}

@media (max-width: 560px) {
    .pull-quote {
        margin: 34px auto;
        padding: 20px 0;
    }

    .pull-quote p {
        font-size: 1.15rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .status-card,
    .pull-quote {
        transition: none;
        opacity: 1;
        transform: none;
    }
}

/* Inline links inside region-page body copy: previously unstyled, so
   they rendered as the browser-default blue underline against the dark
   theme. Gold, with a low-opacity underline that solidifies on hover —
   readable inside gray body text without competing with real CTAs. */
.reg-lede a,
.region-hero-lede a,
.market-row-desc a,
.constraint-block a,
.pull-quote a,
.faq-answer-inner p a,
.reg-table a,
.markets-cta-text a {
    color: var(--accent-color);
    text-decoration: underline;
    text-decoration-color: rgba(251, 188, 5, 0.35);
    text-underline-offset: 3px;
    transition: text-decoration-color 0.2s ease;
}

.reg-lede a:hover,
.region-hero-lede a:hover,
.market-row-desc a:hover,
.constraint-block a:hover,
.pull-quote a:hover,
.faq-answer-inner p a:hover,
.reg-table a:hover,
.markets-cta-text a:hover {
    text-decoration-color: var(--accent-color);
}

.reg-lede a:focus-visible,
.region-hero-lede a:focus-visible,
.market-row-desc a:focus-visible,
.constraint-block a:focus-visible,
.pull-quote a:focus-visible,
.faq-answer-inner p a:focus-visible,
.reg-table a:focus-visible,
.markets-cta-text a:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 3px;
    border-radius: 2px;
}

