/* ==========================================================================
   PLOT & PIXEL — brand portfolio page, told as a five-chapter journey.
   Monochrome: black, white and greys only. Colours/fonts here are defaults;
   Elementor Style settings override them.
   ========================================================================== */

:root {
    --pp-ink: #0E0E0E;
    --pp-muted: #5A5A5A;
    --pp-line: #E6E6E6;
    --pp-grey: #6B6B6B;
    --pp-paper: #F7F7F7;
}

/* ---------- Type ---------- */
.pp-eyebrow .elementor-heading-title {
    font-family: 'Lato', sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--pp-grey);
    margin: 0;
}
.pp-h2 .elementor-heading-title {
    font-family: 'Cormorant', Garamond, serif;
    font-size: clamp(2.1rem, 4.2vw, 3.4rem);
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -0.01em;
    color: var(--pp-ink);
    margin: 0;
}
.pp-h3 .elementor-heading-title {
    font-family: 'Cormorant', Garamond, serif;
    font-size: clamp(1.45rem, 2vw, 1.7rem);
    font-weight: 600;
    line-height: 1.15;
    color: var(--pp-ink);
    margin: 0;
}
.pp-label .elementor-heading-title {
    font-family: 'Lato', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    color: #8A8A8A;
    margin: 0;
}
.pp-body, .pp-body p { color: var(--pp-muted); font-size: 15.5px; line-height: 1.7; }
.pp-body p { margin: 0; }
.pp-lead, .elementor-widget .pp-lead {
    font-family: 'Cormorant', Garamond, serif;
    font-size: clamp(1.35rem, 2.1vw, 1.65rem) !important;
    line-height: 1.35 !important;
    color: var(--pp-ink) !important;
    margin: 0 0 16px;
}
.pp-intro { max-width: 640px; }

/* ---------- Hero ---------- */
.pp-hero { border-bottom: 1px solid #EAEAEA; overflow: hidden; }
.pp-hero-title .elementor-heading-title {
    font-family: 'Cormorant', Garamond, serif;
    font-size: clamp(2.1rem, 4.9vw, 4.5rem);
    font-weight: 600;
    line-height: 0.98;
    letter-spacing: -0.02em;
    color: var(--pp-ink);
    margin: 0;
}
.pp-hero-title em { font-style: italic; font-weight: 500; color: var(--pp-grey); }
.pp-hero-title .pp-line { display: block; white-space: nowrap; }
.pp-hero-copy { max-width: 560px; }
.pp-hero-copy p { color: var(--pp-muted); font-size: 16px; line-height: 1.75; margin: 0; }
.pp-hero-img img {
    width: 100%;
    height: auto;
    display: block;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
}
.pp-hero-visual { position: relative; }

/* ---------- Buttons ---------- */
.elementor-widget.pp-btn-dark .elementor-button { background: var(--pp-ink); color: #FFF; border: 1px solid var(--pp-ink) !important; }
.elementor-widget.pp-btn-dark .elementor-button:hover { background: #333333; border-color: #333333 !important; color: #FFF; }
.elementor-widget.pp-btn-line .elementor-button { background: transparent; color: var(--pp-ink); border: 1px solid rgba(0, 0, 0, 0.3) !important; box-shadow: none !important; }
.elementor-widget.pp-btn-line .elementor-button:hover { background: var(--pp-ink); color: #FFF; border-color: var(--pp-ink) !important; }
.elementor-widget.pp-btn-text .elementor-button {
    background: transparent;
    color: var(--pp-ink);
    padding: 6px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--pp-ink) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    letter-spacing: 1.8px !important;
}
.elementor-widget.pp-btn-text .elementor-button:hover { color: var(--pp-grey); border-bottom-color: var(--pp-grey) !important; transform: translateX(4px) !important; box-shadow: none !important; }
.elementor-widget.pp-btn-light .elementor-button { background: #FFF; color: var(--pp-ink); border: 1px solid #FFF !important; }
.elementor-widget.pp-btn-light .elementor-button:hover { background: transparent; border-color: #FFF !important; color: #FFF; }
.elementor-widget.pp-btn-ghost .elementor-button { background: transparent; color: #FFF; border: 1px solid rgba(255, 255, 255, 0.35) !important; box-shadow: none !important; text-transform: none !important; letter-spacing: 0.4px !important; }
.elementor-widget.pp-btn-ghost .elementor-button:hover { border-color: #FFF !important; }
.pp-hero .elementor-button .elementor-button-text,
.pp-begin .elementor-button .elementor-button-text { color: inherit; }

/* ---------- Journey map ---------- */
.pp-map-head { text-align: center; }
.pp-map-head .elementor-heading-title { text-align: center; }
.pp-map-track { position: relative; }
.pp-map-stop { position: relative; text-align: center; align-items: center; }
.pp-map-stop:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 26px; left: calc(50% + 34px); width: calc(100% - 52px);
    border-top: 1px dashed #C8C8C8;
    pointer-events: none;
}
.pp-map-stop.is-active:not(:last-child)::after { border-top-style: solid; border-top-color: var(--pp-ink); }
.pp-map-num .elementor-heading-title {
    display: inline-flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; border-radius: 50%;
    background: #FFF; border: 1px solid var(--pp-ink);
    font-family: 'Cormorant', serif; font-size: 20px; font-weight: 600; color: var(--pp-ink);
    transition: background 0.3s, color 0.3s, border-color 0.3s;
    margin: 0;
}
.pp-map-num a, .pp-map-title a { color: inherit; }
.pp-map-stop:hover .pp-map-num .elementor-heading-title,
.pp-map-stop.is-active .pp-map-num .elementor-heading-title { background: var(--pp-ink); color: #FFF; }
.pp-map-title .elementor-heading-title { font-family: 'Cormorant', serif; font-size: 1.6rem; font-weight: 600; margin: 10px 0 0; color: var(--pp-ink); }
.pp-map-title a:hover { color: var(--pp-grey); }
.pp-map-sub .elementor-heading-title { font-size: 13.5px; color: #8A8A8A; margin: 0; font-family: 'Lato', sans-serif; }

/* ---------- 01 Vision ---------- */
.pp-belief { border-top: 1px solid var(--pp-line); }
.pp-belief:last-child { border-bottom: 1px solid var(--pp-line); }
.pp-belief-num .elementor-heading-title {
    font-family: 'Cormorant', serif; font-style: italic; font-size: 2rem; font-weight: 500;
    color: #9A9A9A; line-height: 1; min-width: 44px; margin: 0;
}
.pp-beliefs > .e-con-inner, .pp-beliefs { gap: 0; }
.pp-beliefs .pp-label { margin-bottom: 8px; }

/* ---------- 02 Craft ---------- */
.pp-services { border-top: 1px solid var(--pp-line); border-left: 1px solid var(--pp-line); }
.pp-service {
    border-right: 1px solid var(--pp-line);
    border-bottom: 1px solid var(--pp-line);
    background: #FFF;
    transition: background 0.35s ease;
}
.pp-service:hover { background: var(--pp-paper); }
.pp-service-icon .elementor-icon { font-size: 22px; color: var(--pp-ink); transition: color 0.3s; }
.pp-service-icon .elementor-icon svg { width: 22px; height: 22px; fill: currentColor; }
.pp-service:hover .pp-service-icon .elementor-icon { color: var(--pp-grey); }
.pp-service-num .elementor-heading-title { font-family: 'Lato', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; color: #B5B5B5; margin: 0; }
.pp-service .pp-h3 { margin-top: 18px; }

/* ---------- 03 Path ---------- */
.pp-steps { position: relative; }
.pp-steps::before {
    content: "";
    position: absolute;
    left: 0; right: 0; top: 22px;
    border-top: 1px solid var(--pp-ink);
    opacity: 0.18;
}
.pp-step { position: relative; }
.pp-step-dot .elementor-heading-title {
    display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%;
    background: var(--pp-paper); border: 1px solid var(--pp-ink);
    font-family: 'Lato', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 1px; color: var(--pp-ink);
    margin: 0 0 8px;
}
.pp-step:last-child .pp-step-dot .elementor-heading-title { background: var(--pp-ink); border-color: var(--pp-ink); color: #FFF; }

/* ---------- 04 Work ---------- */
.pp-case-img img {
    width: 100%; height: auto; display: block;
    border-radius: 24px;
    box-shadow: 0 30px 70px -40px rgba(0, 0, 0, 0.28);
    transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.pp-case-visual { overflow: visible; }
.pp-case:hover .pp-case-img img { transform: translateY(-6px); }
.pp-case-title .elementor-heading-title {
    font-family: 'Cormorant', serif; font-size: clamp(2.2rem, 3.6vw, 3rem); font-weight: 600; line-height: 1; margin: 0; color: var(--pp-ink);
}
.pp-facts { border-top: 1px solid var(--pp-line); padding-top: 22px !important; }
.pp-fact .pp-body p { font-size: 14.5px; line-height: 1.6; }

/* ---------- 05 Begin ---------- */
.pp-begin .pp-eyebrow .elementor-heading-title { color: #9A9A9A; }
.pp-begin-title .elementor-heading-title {
    font-family: 'Cormorant', serif; font-size: clamp(2.4rem, 5vw, 4.2rem); font-weight: 600; line-height: 1.02; color: #FFF; margin: 0;
}
.pp-begin-copy { max-width: 560px; }
.pp-begin-copy p { color: #BDBDBD; font-size: 16.5px; line-height: 1.7; margin: 0; }

/* ---------- Chapter rail (desktop, built by plot-pixel.js) ---------- */
.pp-rail {
    position: fixed; left: 26px; top: 50%; transform: translateY(-50%);
    z-index: 50; display: flex; flex-direction: column; gap: 18px;
    opacity: 0; pointer-events: none; transition: opacity 0.4s ease;
}
.pp-rail.is-visible { opacity: 1; pointer-events: auto; }
.pp-rail a {
    display: flex; align-items: center; gap: 12px; text-decoration: none;
    font: 700 10.5px/1 'Lato', sans-serif; letter-spacing: 2px; text-transform: uppercase; color: #9A9A9A;
}
.pp-rail a i {
    width: 9px; height: 9px; border-radius: 50%; border: 1px solid #9A9A9A; background: #FFF; flex: none;
    transition: all 0.3s ease;
}
.pp-rail a span { opacity: 0; transform: translateX(-6px); transition: all 0.3s ease; background: rgba(255, 255, 255, 0.92); padding: 5px 8px; border-radius: 20px; }
.pp-rail:hover a span, .pp-rail a.is-active span { opacity: 1; transform: none; }
.pp-rail a.is-active { color: var(--pp-ink); }
.pp-rail a.is-active i { background: var(--pp-ink); border-color: var(--pp-ink); transform: scale(1.35); }
.pp-rail.on-dark a { color: #9A9A9A; }
.pp-rail.on-dark a.is-active { color: #FFF; }
.pp-rail.on-dark a span { background: rgba(0, 0, 0, 0.6); }
.pp-progress { position: fixed; left: 0; top: 0; height: 2px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: var(--pp-ink); z-index: 9999; }
@media (max-width: 1279px) { .pp-rail { display: none; } }

/* ---------- Reveal on scroll (only when JS is running) ---------- */
.pp-js .pp-reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1); }
.pp-js .pp-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .pp-js .pp-reveal { opacity: 1; transform: none; transition: none; }
    .pp-case-img img, .pp-rail a span { transition: none; }
}

/* ---------- Breadcrumbs flow straight into the hero ---------- */
body:has(.pp-hero) .lwala-crumbs-bar { border-bottom-color: transparent; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
    .pp-steps::before { left: 22px; right: auto; top: 0; bottom: 0; border-top: 0; border-left: 1px solid var(--pp-ink); }
    .pp-step { padding-left: 64px !important; }
    .pp-step .pp-step-dot { position: absolute; left: 0; top: 0; }
}
@media (max-width: 767px) {
    .pp-map-stop:not(:last-child)::after { top: 56px; left: 26px; width: 0; height: calc(100% - 44px); border-top: 0; border-left: 1px dashed #C8C8C8; }
    .pp-map-stop.is-active:not(:last-child)::after { border-left-style: solid; border-left-color: var(--pp-ink); }
    .pp-map-stop { flex-direction: row !important; align-items: center !important; text-align: left; gap: 16px !important; flex-wrap: wrap; }
    .pp-map-stop .pp-map-title .elementor-heading-title { margin: 0; }
    .pp-map-stop .pp-map-sub { width: 100%; padding-left: 68px; margin-top: -14px; }
    .pp-map-head, .pp-map-head .elementor-heading-title { text-align: left; }
    .pp-map-head { align-items: flex-start !important; }
    .pp-hero-ctas .elementor-button { width: 100%; }
    .pp-begin-ctas .elementor-widget, .pp-begin-ctas .elementor-button { width: 100%; }
    .pp-service { padding: 28px 22px !important; }
}

/* ---------- Hero: faint motion artwork (rings, journey line, pixels) ---------- */
.pp-hero { position: relative; isolation: isolate; }
.pp-hero > .e-con-inner { position: relative; z-index: 1; }
.pp-hero::before,
.pp-hero::after,
.pp-hero > .e-con-inner::before {
    content: "";
    position: absolute;
    pointer-events: none;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 0;
}
/* concentric rings, slowly turning (top left) */
.pp-hero::before {
    width: 640px; height: 640px;
    left: -220px; top: -200px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' fill='none' stroke='%23000'%3E%3Ccircle cx='300' cy='300' r='90' stroke-opacity='0.16'/%3E%3Ccircle cx='300' cy='300' r='150' stroke-opacity='0.13' stroke-dasharray='2 10'/%3E%3Ccircle cx='300' cy='300' r='210' stroke-opacity='0.11'/%3E%3Ccircle cx='300' cy='300' r='270' stroke-opacity='0.09' stroke-dasharray='1 14'/%3E%3Ccircle cx='300' cy='30' r='4' fill='%23000' fill-opacity='0.32' stroke='none'/%3E%3Ccircle cx='510' cy='300' r='3' fill='%23000' fill-opacity='0.25' stroke='none'/%3E%3C/svg%3E");
    animation: ppSpin 120s linear infinite;
}
/* dotted journey line drifting across the bottom */
.pp-hero::after {
    width: 130%; height: 320px;
    left: -15%; bottom: -40px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 360' fill='none'%3E%3Cpath d='M-20 250 C 220 90, 420 330, 700 200 S 1180 40, 1620 190' stroke='%23000' stroke-opacity='0.16' stroke-dasharray='3 11'/%3E%3Cpath d='M-20 300 C 260 170, 520 360, 820 260 S 1300 140, 1620 250' stroke='%23000' stroke-opacity='0.09'/%3E%3Cg fill='%23000' fill-opacity='0.22'%3E%3Crect x='300' y='176' width='6' height='6'/%3E%3Crect x='700' y='196' width='6' height='6'/%3E%3Crect x='1120' y='96' width='6' height='6'/%3E%3Crect x='1460' y='160' width='6' height='6'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 100% 100%;
    animation: ppDrift 26s ease-in-out infinite alternate;
}
/* little pixel cluster, softly breathing (behind the heading) */
.pp-hero > .e-con-inner::before {
    width: 220px; height: 220px;
    left: 38%; top: 6%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240' fill='%23000'%3E%3Crect x='0' y='0' width='8' height='8' fill-opacity='0.18'/%3E%3Crect x='16' y='0' width='8' height='8' fill-opacity='0.11'/%3E%3Crect x='0' y='16' width='8' height='8' fill-opacity='0.11'/%3E%3Crect x='120' y='60' width='6' height='6' fill-opacity='0.16'/%3E%3Crect x='200' y='24' width='5' height='5' fill-opacity='0.14'/%3E%3Crect x='60' y='150' width='6' height='6' fill-opacity='0.13'/%3E%3Crect x='180' y='200' width='8' height='8' fill-opacity='0.11'/%3E%3Crect x='196' y='200' width='8' height='8' fill-opacity='0.18'/%3E%3C/svg%3E");
    animation: ppBreathe 7s ease-in-out infinite alternate;
    z-index: -1;
}
@keyframes ppSpin { to { transform: rotate(360deg); } }
@keyframes ppDrift { from { transform: translateX(-3%); } to { transform: translateX(3%); } }
@keyframes ppBreathe { from { opacity: 0.35; transform: translateY(0); } to { opacity: 1; transform: translateY(-14px); } }
@media (max-width: 767px) {
    .pp-hero::before { width: 420px; height: 420px; left: -200px; top: -150px; }
    .pp-hero::after { height: 200px; bottom: -30px; }
    .pp-hero > .e-con-inner::before { width: 140px; height: 140px; left: auto; right: 0; top: 2%; }
}
@media (prefers-reduced-motion: reduce) {
    .pp-hero::before, .pp-hero::after, .pp-hero > .e-con-inner::before { animation: none; }
}

/* ==========================================================================
   HEART TO TABLE — same journey system, page-specific pieces (h2t-*)
   ========================================================================== */
.h2t-hero-title .elementor-heading-title { font-size: clamp(2rem, 4.2vw, 3.9rem); }
.h2t-rotator .elementor-headline {
    font-family: 'Cormorant', Garamond, serif;
    font-size: clamp(1.45rem, 2.4vw, 2.1rem);
    font-weight: 500;
    line-height: 1.2;
    color: var(--pp-ink);
    margin: 0;
}
.h2t-rotator .elementor-headline-dynamic-text { font-style: italic; color: var(--pp-grey); }
.h2t-rotator .elementor-headline-dynamic-wrapper::after { background-color: var(--pp-ink) !important; }
.h2t-hero-sub p { font-size: 17px; color: var(--pp-muted); margin: 0; }
.h2t-hero-art img { max-width: 560px; margin: 0 auto; }

.h2t-sep { color: #C4C4C4; font-weight: 400; padding: 0 0.2em; }
.h2t-map-title .elementor-heading-title { letter-spacing: 0.14em; }

/* 01 Story */
.h2t-pull .elementor-heading-title { font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 1.08; }
.h2t-pull-sub .elementor-heading-title {
    font-family: 'Cormorant', serif; font-style: italic; font-weight: 500;
    font-size: clamp(1.3rem, 2vw, 1.6rem); line-height: 1.35; color: var(--pp-grey); margin: 0;
}
.h2t-story-body { border-left: 1px solid var(--pp-line); padding-left: 40px !important; }

/* 02 Seasons along one path */
.h2t-path { position: relative; }
.h2t-path::before {
    content: ""; position: absolute; left: 27px; top: 64px; bottom: 64px;
    border-left: 1px solid rgba(0, 0, 0, 0.18);
}
.h2t-season { position: relative; padding: 56px 0 56px 96px !important; border-bottom: 1px solid var(--pp-line); }
.h2t-season:last-child { border-bottom: 0; }
.h2t-season-head { position: relative; }
.h2t-node { position: absolute !important; left: -96px; top: 0; width: auto !important; }
.h2t-node .elementor-heading-title {
    display: inline-flex; align-items: center; justify-content: center;
    width: 56px; height: 56px; border-radius: 50%;
    background: var(--pp-ink); color: #FFF; border: 1px solid var(--pp-ink);
    font-family: 'Lato', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 1px; margin: 0;
}
.h2t-season--ground .h2t-node .elementor-heading-title { background: #FFF; color: var(--pp-ink); }
.h2t-season-name .elementor-heading-title {
    font-family: 'Cormorant', serif; font-weight: 600; font-size: clamp(3.2rem, 6vw, 5.2rem);
    letter-spacing: 0.14em; line-height: 1; color: var(--pp-ink); margin: 0;
}
.h2t-season-title .elementor-heading-title { font-family: 'Cormorant', serif; font-size: 1.5rem; font-weight: 600; color: var(--pp-ink); margin: 0; }
.h2t-season-quote .elementor-heading-title { font-family: 'Cormorant', serif; font-style: italic; font-weight: 500; font-size: 1.3rem; color: var(--pp-grey); margin: 0; }
.h2t-ul ul { list-style: none; margin: 0; padding: 0; }
.h2t-ul li { padding: 10px 0; border-top: 1px solid var(--pp-line); font-size: 14.5px; line-height: 1.5; color: #3A3A3A; }
.h2t-ul li:last-child { border-bottom: 1px solid var(--pp-line); }
.elementor-widget.h2t-explore-btn { align-self: flex-start; }

/* 03 The table */
.h2t-acts { border-bottom: 1px solid var(--pp-line); }
.h2t-act { border-top: 1px solid var(--pp-line); padding: 16px 12px 16px 0 !important; }
.h2t-act-icon .elementor-icon { font-size: 17px; color: var(--pp-ink); }
.h2t-act-icon .elementor-icon svg { width: 17px; height: 17px; fill: currentColor; }
.h2t-act-title .elementor-heading-title { font-family: 'Cormorant', serif; font-weight: 600; font-size: 1.35rem; color: var(--pp-ink); margin: 0; }
.h2t-centered .elementor-heading-title { font-family: 'Cormorant', serif; font-style: italic; font-weight: 500; font-size: 1.35rem; color: var(--pp-grey); margin: 0; }

@media (max-width: 767px) {
    .h2t-story-body { border-left: 0; padding-left: 0 !important; border-top: 1px solid var(--pp-line); padding-top: 28px !important; }
    .h2t-path::before { left: 21px; }
    .h2t-season { padding: 40px 0 40px 64px !important; }
    .h2t-node { left: -64px; }
    .h2t-node .elementor-heading-title { width: 44px; height: 44px; font-size: 12px; }
    .elementor-widget.h2t-explore-btn, .elementor-widget.h2t-explore-btn .elementor-button { width: 100%; }
}

/* Heart to Table hero: HEAL / GROUND / RISE orbiting the centre */
.h2t-orbit-widget { width: 100%; }
.h2t-orbit {
    position: relative; width: 100%; max-width: 540px; aspect-ratio: 1; margin: 0 auto;
    container-type: inline-size;
}
.h2t-orbit-rings { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.h2t-orbit-rings circle { fill: none; stroke: #0E0E0E; stroke-opacity: 0.12; stroke-width: 1; }
.h2t-orbit-rings .is-path { stroke-opacity: 0.55; stroke-dasharray: 2 10; stroke-linecap: round; stroke-width: 1.4; }
.h2t-orbit-rings .is-inner { stroke-opacity: 0.08; stroke-dasharray: 1 12; }
.h2t-orbit-center {
    position: absolute; left: 50%; top: 50%; width: 38cqw; height: 38cqw; transform: translate(-50%, -50%);
    border-radius: 50%; background: #FFF; border: 1px solid rgba(0, 0, 0, 0.12);
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.25);
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2.2cqw; text-align: center;
}
.h2t-orbit-name { font-family: 'Cormorant', Garamond, serif; font-weight: 600; font-size: 6.2cqw; line-height: 0.95; color: #0E0E0E; }
.h2t-orbit-meta { font: 700 1.9cqw/1 'Lato', sans-serif; letter-spacing: 0.35cqw; text-transform: uppercase; color: #8A8A8A; }
.h2t-orbit-track { position: absolute; inset: 0; animation: h2tOrbit 48s linear infinite; }
.h2t-orbit-node {
    position: absolute; left: 50%; top: 50%; width: 19cqw; height: 19cqw; margin: -9.5cqw 0 0 -9.5cqw;
    transform: rotate(var(--a)) translate(42cqw) rotate(calc(-1 * var(--a)));
    text-decoration: none;
}
.h2t-orbit-node span {
    display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: 50%;
    background: #0E0E0E; color: #FFF; border: 1px solid #0E0E0E;
    font-family: 'Cormorant', Garamond, serif; font-weight: 600; font-size: 3.6cqw; letter-spacing: 0.5cqw;
    animation: h2tOrbit 48s linear infinite reverse; /* keeps the words upright */
    transition: background 0.3s, color 0.3s, box-shadow 0.3s;
    box-shadow: 0 16px 30px -16px rgba(0, 0, 0, 0.4);
}
.h2t-orbit-node--ground span { background: #FFF; color: #0E0E0E; font-size: 3.1cqw; letter-spacing: 0.3cqw; }
.h2t-orbit-node:hover span { background: #FFF; color: #0E0E0E; }
.h2t-orbit-node--ground:hover span { background: #0E0E0E; color: #FFF; }
.h2t-orbit:hover .h2t-orbit-track, .h2t-orbit:hover .h2t-orbit-node span { animation-play-state: paused; }
@keyframes h2tOrbit { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .h2t-orbit-track, .h2t-orbit-node span { animation: none; }
}
