/* ============================================================
   ORYX SIGNATURE — Static site (HTML / CSS / JS)
   Theme tokens + corporate layout system.
   ============================================================ */

:root, [data-theme="light"] {
    --bg-primary: #ffffff;
    --bg-secondary: #f7f4ec;
    --text-primary: #14171c;
    --text-secondary: #5a6068;
    --gold-primary: #c7881a;
    --gold-secondary: #8e6d2a;
    --accent: #d4b872;
    --header-footer: #14171c;
    --on-header-footer: #f5f5f5;
    --border-color: rgba(20, 23, 28, 0.1);
    --card-bg: #ffffff;
    --hero-overlay: linear-gradient(90deg, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0.45) 55%, rgba(0,0,0,0.05) 100%);
}

[data-theme="dark"] {
    --bg-primary: #0b0d10;
    --bg-secondary: #14171c;
    --text-primary: #f5f5f5;
    --text-secondary: #a4abb4;
    --gold-primary: #c7881a;
    --gold-secondary: #a8883e;
    --accent: #d4b872;
    --header-footer: #0b0d10;
    --on-header-footer: #f5f5f5;
    --border-color: rgba(245, 245, 245, 0.08);
    --card-bg: #14171c;
    --hero-overlay: linear-gradient(90deg, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.55) 55%, rgba(0,0,0,0.18) 100%);
}

[data-theme="sand"] {
    --bg-primary: #f5f1e8;
    --bg-secondary: #ece5d4;
    --text-primary: #1f1a12;
    --text-secondary: #5b5240;
    --gold-primary: #c7881a;
    --gold-secondary: #806224;
    --accent: #c5a55a;
    --header-footer: #1f1a12;
    --on-header-footer: #f5f1e8;
    --border-color: rgba(31, 26, 18, 0.12);
    --card-bg: #fbf8f1;
    --hero-overlay: linear-gradient(90deg, rgba(31,26,18,0.82) 0%, rgba(31,26,18,0.45) 55%, rgba(31,26,18,0.05) 100%);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }

html, body {
    background: var(--bg-primary);
    color: var(--text-primary);
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    transition: background-color 0.5s ease, color 0.5s ease;
    scroll-behavior: smooth;
    line-height: 1.5;
}

h1, h2, h3, h4 {
    font-family: "Fraunces", "Spectral", Georgia, serif;
    font-variation-settings: "opsz" 144, "SOFT" 0, "WONK" 0;
    font-weight: 400;
    letter-spacing: -0.015em;
    margin: 0;
    line-height: 1.1;
}

[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3 { font-weight: 350; letter-spacing: -0.02em; }
[data-theme="sand"] h1, [data-theme="sand"] h2, [data-theme="sand"] h3 { font-weight: 450; font-variation-settings: "opsz" 144, "SOFT" 30, "WONK" 0; }

p { margin: 0; }

::selection { background: var(--gold-primary); color: #fff; }

/* ---------- Utilities ---------- */
.container { max-width: 80rem; margin: 0 auto; padding: 0 1.5rem; }
@media (min-width: 640px) { .container { padding: 0 2rem; } }

.section { padding: 6rem 0; position: relative; }
@media (min-width: 768px) { .section { padding: 8rem 0; } }

.eyebrow {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--gold-primary);
}

.eyebrow-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.eyebrow-row::before {
    content: "";
    width: 2.5rem;
    height: 1px;
    background: var(--gold-primary);
}

.editorial-meta {
    font-size: 0.68rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--gold-primary);
    display: inline-block;
    padding: 0.4rem 1rem;
    border: 1px solid var(--gold-primary);
}

.gold-rule {
    display: block;
    width: 3.5rem;
    height: 1px;
    background: var(--gold-primary);
    border: 0;
    margin: 1.5rem 0;
}
.gold-rule.center { margin-left: auto; margin-right: auto; }

.text-gold { color: var(--gold-primary); }
.text-secondary { color: var(--text-secondary); }
.text-light { color: var(--bg-primary); }

.font-serif { font-family: "Fraunces", serif; font-variation-settings: "opsz" 144; }

/* ---------- Buttons ---------- */
.btn-primary, .btn-secondary, .btn-ghost-light {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    padding: 1rem 1.75rem;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    border: 1px solid var(--gold-primary);
}
.btn-primary { background: #000000; color: var(--gold-primary); }
.btn-primary:hover { background: var(--gold-secondary); color: #000000; border-color: var(--gold-secondary); transform: translateY(-2px); }
[data-theme="dark"] .btn-primary { color: #0b0d10; }

.btn-secondary { background: transparent; color: var(--gold-primary); }
.btn-secondary:hover { background: var(--gold-primary); color: #fff; transform: translateY(-2px); }
[data-theme="dark"] .btn-secondary:hover { color: #0b0d10; }

.btn-ghost-light { background: transparent; color: #f5f5f5; border-color: rgba(245,245,245,0.4); }
.btn-ghost-light:hover { border-color: var(--gold-primary); color: var(--gold-primary); transform: translateY(-2px); }

.btn-primary svg, .btn-secondary svg, .btn-ghost-light svg { width: 1rem; height: 1rem; }

/* ---------- Cards ---------- */
.oryx-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    padding: 2rem;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    height: 100%;
}
.oryx-card:hover {
    transform: translateY(-4px);
    border-color: var(--gold-primary);
    box-shadow: 0 24px 60px -30px rgba(177, 138, 62, 0.3);
}

[data-theme="sand"] .oryx-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0;
    width: 2rem;
    height: 1px;
    background: var(--gold-primary);
}

/* ---------- Header / Nav ---------- */
.oryx-nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 50;
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    background: color-mix(in srgb, var(--bg-primary) 82%, transparent);
    border-bottom: 1px solid var(--border-color);
    padding: .5rem 0;
    transition: padding 0.3s ease;
}
.oryx-nav.scrolled { padding: 0.75rem 0; }
.nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.nav-links {
    display: none;
    align-items: center;
    gap: 2.5rem;
}
@media (min-width: 1024px) { .nav-links { display: flex; } }
.nav-link {
    position: relative;
    font-size: 0.74rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bg-primary);
    font-weight: 500;
    padding: 0.5rem 0;
    transition: color 0.25s ease;
}
.nav-link::after {
    content: "";
    position: absolute;
    left: 0; bottom: 0;
    height: 1px;
    width: 0;
    background: var(--gold-primary);
    transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.nav-link:hover, .nav-link.active { color: var(--gold-primary); }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }

.nav-right { display: flex; align-items: center; gap: 1.25rem; }
.theme-switcher { display: none; align-items: center; gap: 0.5rem; }
@media (min-width: 768px) { .theme-switcher { display: flex; } }
.theme-switcher-label {
    font-size: 0.65rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--text-secondary);
    margin-right: 0.5rem;
}
.theme-swatch {
    width: 1.375rem;
    height: 1.375rem;
    border: 1px solid var(--border-color);
    background: var(--swatch-color, #fff);
    cursor: pointer;
    transition: all 0.25s ease;
    padding: 0;
}
.theme-swatch.active {
    box-shadow: 0 0 0 2px var(--gold-primary);
    transform: scale(1.1);
}
.theme-swatch:hover { transform: scale(1.1); }

.mobile-menu-toggle {
    background: none;
    border: 0;
    padding: 0.5rem;
    color: #c7881a;
  width:40px;
    display: inline-flex;
}
@media (min-width: 1024px) { .mobile-menu-toggle { display: none; } }

/* Logo */
.logo {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}
.logo svg { width: 2rem; height: 2rem; }
.logo-text { display: flex; flex-direction: column; line-height: 1; }
.logo-text .name {
    font-family: "Fraunces", serif;
    font-size: 1.25rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    color: var(--text-primary);
}
.logo-text .sub {
    font-size: 0.6rem;
    letter-spacing: 0.4em;
    color: var(--gold-primary);
    margin-top: 0.25rem;
}

/* Mobile menu */
.mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 60;
    background: var(--bg-primary);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
    overflow-y: auto;
}
.mobile-menu.open { opacity: 1; pointer-events: auto; }
.mobile-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .5rem 1.5rem;
    border-bottom: 1px solid var(--border-color);
  background:#000000;
}
.mobile-menu-links { padding: 2.5rem 1.5rem; }
.mobile-menu-link {
    display: block;
    padding: 1.125rem 0;
    font-size: 1.5rem;
    font-family: "Fraunces", serif;
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-color);
    transition: color 0.25s ease;
}
.mobile-menu-link:hover { color: var(--gold-primary); }
.mobile-menu-theme { margin-top: 2.5rem; display: flex; align-items: center; gap: 0.75rem; }

/* ---------- Hero ---------- */
.hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.hero-bg { position: absolute; inset: 0; }
.hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.hero-bg::after { content: ""; position: absolute; inset: 0; background: var(--hero-overlay); }
.hero-inner {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: 8rem 0 6rem;
}
.hero-eyebrow {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 0.7rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--gold-primary);
    margin-bottom: 2rem;
    font-weight: 600;
}
.hero-eyebrow .line { width: 3rem; height: 1px; background: var(--gold-primary); }
.hero h1 {
    color: #fff;
    font-weight: 300;
    font-size: clamp(2.5rem, 7vw, 5rem);
    line-height: 1.02;
    max-width: 56rem;
    letter-spacing: -0.015em;
}
.hero-sub {
    margin-top: 2rem;
    max-width: 38rem;
    font-size: 1.05rem;
    color: rgba(255,255,255,0.8);
    font-weight: 300;
    line-height: 1.6;
}
.hero-ctas {
    margin-top: 3rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
@media (min-width: 640px) { .hero-ctas { flex-direction: row; } }

.scroll-indicator {
    position: absolute;
    bottom: 2.5rem;
    left: 1.5rem;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}
@media (min-width: 640px) { .scroll-indicator { left: 2rem; } }
.scroll-indicator .label {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 0.6rem;
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.6);
}
.scroll-indicator .line {
    width: 1px;
    height: 4rem;
    background: linear-gradient(to bottom, transparent 0%, var(--gold-primary) 50%, transparent 100%);
    position: relative;
    overflow: hidden;
}
.scroll-indicator .line::after {
    content: "";
    position: absolute;
    top: 0; left: 0;
    width: 1px;
    height: 1rem;
    background: var(--gold-primary);
    animation: scrollDot 2.2s cubic-bezier(0.16, 1, 0.3, 1) infinite;
}
@keyframes scrollDot {
    0% { transform: translateY(-100%); opacity: 0; }
    30% { opacity: 1; }
    100% { transform: translateY(400%); opacity: 0; }
}

/* ---------- Page hero (sub-pages) ---------- */
.page-hero {
    position: relative;
    padding-top: 13rem;
    padding-bottom: 6rem;
    border-bottom: 1px solid var(--border-color);
}
.page-hero-bg { display: none; }
[data-theme="dark"] .page-hero {
    min-height: 72vh;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    padding-top: 12rem;
}
[data-theme="dark"] .page-hero .page-hero-bg {
    display: block;
    position: absolute; inset: 0; z-index: 0;
}
[data-theme="dark"] .page-hero .page-hero-bg img {
    width: 100%; height: 100%; object-fit: cover; opacity: 0.55;
}
[data-theme="dark"] .page-hero .page-hero-bg::after {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(11,13,16,0.35) 0%, rgba(11,13,16,0.85) 78%, var(--bg-primary) 100%);
}
[data-theme="dark"] .page-hero > .container { position: relative; z-index: 1; }
[data-theme="dark"] .page-hero h1 { color: #f5f5f5; }
[data-theme="dark"] .page-hero .page-hero-img-wrap { display: none; }

.page-hero h1 {
    font-size: clamp(2.5rem, 5.5vw, 4.75rem);
    line-height: 1.04;
}
.page-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.68rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--gold-primary);
    font-weight: 600;
    margin-bottom: 1.75rem;
}
.page-hero-eyebrow::before {
    content: "";
    width: 1.75rem;
    height: 1px;
    background: var(--gold-primary);
}
.page-hero-lead {
    margin-top: 1.5rem;
    font-size: 1.05rem;
    color: var(--text-secondary);
    line-height: 1.65;
    max-width: 36rem;
}
[data-theme="dark"] .page-hero-lead { color: rgba(245,245,245,0.78); }

.page-hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    align-items: center;
}
@media (min-width: 1024px) {
    .page-hero-grid { grid-template-columns: repeat(12, 1fr); gap: 3rem; }
    .page-hero-grid > div:first-child { grid-column: span 6; }
    .page-hero-grid > div:last-child { grid-column: span 6; }
}
[data-theme="dark"] .page-hero-grid { grid-template-columns: 1fr; }

/* ---------- Image card ---------- */
.image-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    padding: 0.5rem;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.image-card img {
    width: 100%;
    height: auto;
    aspect-ratio: 4/5;
    object-fit: cover;
}
.image-card.wide img { aspect-ratio: 16/9; }
.image-card.square img { aspect-ratio: 1/1; }
.image-card .caption {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 0.5rem 0.375rem;
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--text-secondary);
}
.image-card .caption .gold { color: var(--gold-primary); font-weight: 600; }
.image-card:hover {
    border-color: var(--gold-primary);
    transform: translateY(-4px);
    box-shadow: 0 30px 60px -36px rgba(0, 0, 0, 0.35);
}
[data-theme="sand"] .image-card { background: #fdfaf2; }
[data-theme="sand"] .image-card img { filter: saturate(0.92) contrast(1.02) sepia(0.05); }

/* ---------- Grids ---------- */
.grid-2 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.grid-3 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.grid-4 { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 640px) {
    .grid-2 { grid-template-columns: repeat(2, 1fr); }
    .grid-4 { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}
@media (min-width: 1024px) {
    .grid-3 { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
    .grid-4 { grid-template-columns: repeat(4, 1fr); gap: 1.75rem; }
}

/* Asymmetric two-col with content + image */
.split-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    align-items: center;
}
@media (min-width: 1024px) {
    .split-grid { grid-template-columns: repeat(12, 1fr); gap: 3.5rem; }
    .split-7-5 .col-image { grid-column: span 7; }
    .split-7-5 .col-text { grid-column: span 5; }
    .split-5-7 .col-image { grid-column: span 5; }
    .split-5-7 .col-text { grid-column: span 7; }
}

/* ---------- Reveal animation ---------- */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal[data-delay="100"] { transition-delay: 100ms; }
.reveal[data-delay="200"] { transition-delay: 200ms; }
.reveal[data-delay="300"] { transition-delay: 300ms; }
.reveal[data-delay="400"] { transition-delay: 400ms; }

/* ---------- Section title helpers ---------- */
.section-head { max-width: 48rem; }
.section-title {
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.05;
}
.section-lead {
    margin-top: 1.5rem;
    font-size: 1.05rem;
    color: var(--text-secondary);
    line-height: 1.65;
}

/* ---------- Why Oryx + cards generic ---------- */
.diff-card .num, .value-card .num, .why-card .num {
    font-family: "Fraunces", serif;
    font-size: 2.25rem;
    color: var(--gold-primary);
    line-height: 1;
}
.diff-card h3, .value-card h3, .why-card h3 {
    font-family: "Fraunces", serif;
    font-size: 1.4rem;
    margin-top: 1rem;
}
.diff-card p, .value-card p, .why-card p {
    margin-top: 0.75rem;
    color: var(--text-secondary);
    font-size: 0.92rem;
    line-height: 1.6;
}

/* ---------- Services teaser / blocks ---------- */
.service-card { display: flex; flex-direction: column; min-height: 20rem; }
.service-card .top { display: flex; align-items: flex-start; justify-content: space-between; }
.service-card .top .no { font-family: "Fraunces", serif; font-size: 1.5rem; color: var(--gold-primary); }
.service-card h3 { font-family: "Fraunces", serif; font-size: 1.5rem; /*margin-top: auto;*/ padding-top: 3rem; }
.service-card p { margin-top: 0.75rem; color: var(--text-secondary); font-size: 0.9rem; line-height: 1.6; }

.service-block { position: relative; margin: 8rem 0; }
.service-block:first-child { margin-top: 0; }
.service-block:last-child { margin-bottom: 0; }
.service-block .col-image { position: relative; }
.service-block .col-image .cinematic-frame {
    border: 1px solid var(--border-color);
    overflow: hidden;
    aspect-ratio: 4/3;
}
.service-block .col-image .cinematic-frame img { width: 100%; height: 100%; object-fit: cover; }
.service-block .section-num {
    font-family: "Fraunces", serif;
    font-size: 9rem;
    line-height: 0.85;
    font-weight: 300;
    color: var(--gold-primary);
    opacity: 0.16;
    position: absolute;
    top: -4rem;
    right: 0;
    pointer-events: none;
}
.service-block.alt .section-num { left: 0; right: auto; }
.service-block .inset-image {
    display: none;
    position: absolute;
    bottom: -3rem;
    right: -1.5rem;
    width: 11rem;
    aspect-ratio: 1/1;
    border: 1px solid var(--border-color);
    overflow: hidden;
    z-index: 2;
}
.service-block.alt .inset-image { right: auto; left: -1.5rem; }
.service-block .inset-image img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 640px) { .service-block .inset-image { display: block; } }

.service-block .bullets { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: 0.75rem; }
.service-block .bullets li { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.94rem; }
.service-block .bullets li svg { width: 1rem; height: 1rem; margin-top: 0.3rem; color: var(--gold-primary); flex-shrink: 0; }

/* ---------- Stats strip ---------- */
.stats-section {
    position: relative;
    padding: 6rem 0;
    overflow: hidden;
}
.stats-section .bg { position: absolute; inset: 0; }
.stats-section .bg img { width: 100%; height: 100%; object-fit: cover; }
.stats-section .bg::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,0.72); }
.stats-section .container { position: relative; z-index: 1; }
.stats-section .head { text-align: center; margin-bottom: 4rem; }
.stats-section .head h2 { color: #fff; font-weight: 300; font-size: clamp(1.75rem, 3vw, 2.25rem); margin-top: 1rem; }
.stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3rem 1.5rem; }
@media (min-width: 1024px) { .stats-grid { grid-template-columns: repeat(4, 1fr); } }
.stat-item { text-align: center; padding: 0 1rem; border-left: 1px solid rgba(197,165,90,0.3); }
.stat-item:first-child { border-left: 0; }
@media (max-width: 1023px) { .stat-item:nth-child(odd) { border-left: 0; } }
.stat-number {
    font-family: "Fraunces", serif;
    font-weight: 300;
    color: var(--gold-primary);
    font-size: clamp(3rem, 6vw, 6rem);
    line-height: 1;
    letter-spacing: -0.03em;
}
.stat-label {
    margin-top: 1rem;
    font-size: 0.7rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: rgba(245,245,245,0.75);
    font-weight: 500;
}

/* ---------- Markets ---------- */
.markets-section { position: relative; overflow: hidden; }
.dot-grid {
    position: absolute; inset: 0;
    background-image: radial-gradient(circle, var(--border-color) 1px, transparent 1px);
    background-size: 22px 22px;
    opacity: 0.6;
    pointer-events: none;
}
.market-pills { display: flex; flex-wrap: wrap; gap: 1rem; max-width: 64rem; margin-top: 4rem; }
.market-pill {
    border: 1px solid var(--border-color);
    padding: 0.75rem 1.375rem;
    font-size: 0.78rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--text-primary);
    background: var(--card-bg);
    transition: all 0.3s ease;
}
.market-pill:hover { border-color: var(--gold-primary); color: var(--gold-primary); transform: translateY(-2px); }

/* ---------- Markets numbers ---------- */
.markets-numbers {
    margin-top: 4rem;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    max-width: 56rem;
}
@media (min-width: 640px) { .markets-numbers { grid-template-columns: repeat(4, 1fr); } }
.markets-numbers .num { font-family: "Fraunces", serif; font-size: 2rem; color: var(--gold-primary); }
.markets-numbers .lbl { margin-top: 0.5rem; font-size: 0.7rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--text-secondary); }

/* ---------- Final CTA ---------- */
.final-cta { position: relative; overflow: hidden; padding: 8rem 0; }
.final-cta .bg { position: absolute; inset: 0; }
.final-cta .bg img { width: 100%; height: 100%; object-fit: cover; }
.final-cta .bg::after {
    content: "";
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.65) 50%, rgba(0,0,0,0.4) 100%);
}
.final-cta .container { position: relative; z-index: 1; text-align: center; max-width: 60rem; }
.final-cta .eyebrow { font-weight: 600; letter-spacing: 0.4em; }
.final-cta h2 {
    color: #fff;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    line-height: 1.05;
    font-weight: 300;
    margin-top: 1.5rem;
}
.final-cta p {
    margin-top: 2rem;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.05rem;
    color: rgba(255,255,255,0.78);
    font-weight: 300;
    line-height: 1.65;
}
.final-cta .ctas { margin-top: 3rem; display: flex; flex-direction: column; gap: 1rem; align-items: center; justify-content: center; }
@media (min-width: 640px) { .final-cta .ctas { flex-direction: row; } }

/* ---------- Footer ---------- */
.oryx-footer { background: var(--header-footer); color: var(--on-header-footer); padding: 5rem 0 2rem; }
.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: repeat(12, 1fr); } }
.footer-grid .col-brand { grid-column: span 4; }
.footer-grid .col-links { grid-column: span 2; }
.footer-grid .col-services { grid-column: span 3; }
.footer-grid .col-contact { grid-column: span 3; }
.oryx-footer .col-brand .logo .name, .oryx-footer .col-brand .logo .sub { color: #f5f5f5; }
.oryx-footer .col-brand .logo .sub { color: var(--gold-primary); }
.oryx-footer p.tagline {
    margin-top: 1.5rem;
    font-size: 0.9rem;
    line-height: 1.65;
    color: rgba(245,245,245,0.65);
    max-width: 18rem;
    font-weight: 300;
}
.oryx-footer .social {
    margin-top: 1.5rem;
    display: flex;
    gap: 0.75rem;
}
.oryx-footer .social a {
    width: 2.5rem; height: 2.5rem;
    display: inline-flex;
    align-items: center; justify-content: center;
    border: 1px solid rgba(245,245,245,0.15);
    color: rgba(245,245,245,0.65);
    transition: all 0.25s ease;
}
.oryx-footer .social a:hover { border-color: var(--gold-primary); color: var(--gold-primary); }
.oryx-footer .col-title {
    font-size: 0.7rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--gold-primary);
    font-weight: 600;
    margin-bottom: 1.25rem;
}
.oryx-footer ul { list-style: none; padding: 0; margin: 0; }
.oryx-footer ul li { margin-bottom: 0.75rem; }
.oryx-footer .footer-link {
    color: rgba(245,245,245,0.65);
    font-size: 0.88rem;
    transition: color 0.25s ease;
}
.oryx-footer .footer-link:hover { color: var(--gold-primary); }
.oryx-footer .contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    color: rgba(245,245,245,0.65);
    font-size: 0.88rem;
    font-weight: 300;
    line-height: 1.5;
}
.oryx-footer .contact-list svg { width: 1rem; height: 1rem; margin-top: 0.2rem; color: var(--gold-primary); flex-shrink: 0; }
.oryx-footer .bottom-bar {
    margin-top: 4rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(245,245,245,0.1);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    justify-content: space-between;
}
@media (min-width: 640px) { .oryx-footer .bottom-bar { flex-direction: row; align-items: center; } }
.oryx-footer .bottom-bar p { font-size: 0.75rem; color: rgba(245,245,245,0.45); font-weight: 300; }
.oryx-footer .bottom-bar p.italic { font-family: "Fraunces", serif; }

/* ---------- Forms ---------- */
.oryx-input, .oryx-textarea, .oryx-select {
    width: 100%;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--border-color);
    padding: 1rem 0;
    font-size: 1rem;
    font-family: "Inter", sans-serif;
    color: var(--text-primary);
    outline: none;
    transition: border-color 0.3s ease;
}
.oryx-textarea { resize: none; }
.oryx-input:focus, .oryx-textarea:focus, .oryx-select:focus { border-bottom-color: var(--gold-primary); }
.oryx-input::placeholder, .oryx-textarea::placeholder { color: var(--text-secondary); opacity: 0.55; }
.input-label {
    display: block;
    font-size: 0.65rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--text-secondary);
    font-weight: 600;
    margin-bottom: 0.25rem;
}
[data-theme="sand"] .oryx-input, [data-theme="sand"] .oryx-textarea, [data-theme="sand"] .oryx-select {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    padding: 1rem;
}
[data-theme="sand"] .oryx-input:focus, [data-theme="sand"] .oryx-textarea:focus, [data-theme="sand"] .oryx-select:focus {
    border-color: var(--gold-primary);
}
.form-wrap {
    border: 1px solid var(--border-color);
    background: var(--card-bg);
    padding: 2rem;
}
@media (min-width: 640px) { .form-wrap { padding: 3rem; } }
.form-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem 2rem;
}
@media (min-width: 640px) { .form-grid { grid-template-columns: repeat(2, 1fr); } .form-grid .span-2 { grid-column: span 2; } }
.form-submit-row {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
}
@media (min-width: 640px) { .form-submit-row { flex-direction: row; align-items: center; justify-content: space-between; } }
.form-submit-row .small { font-size: 0.75rem; color: var(--text-secondary); font-weight: 300; }

/* ---------- Toast ---------- */
.toast-container {
    position: fixed;
    top: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    pointer-events: none;
}
.toast {
    background: var(--card-bg);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
    border-left: 3px solid var(--gold-primary);
    padding: 1rem 1.5rem;
    font-size: 0.9rem;
    box-shadow: 0 20px 50px -20px rgba(0,0,0,0.3);
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: auto;
    min-width: 18rem;
    max-width: 26rem;
}
.toast.show { opacity: 1; transform: translateY(0); }
.toast.error { border-left-color: #c0392b; }

/* ---------- Portfolio filter & cards ---------- */
.filter-row {
    margin-top: 3rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.filter-btn {
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    font-size: 0.75rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 500;
    padding: 0.75rem 1.25rem;
    transition: all 0.25s ease;
}
.filter-btn.active, .filter-btn:hover {
    border-color: var(--gold-primary);
    color: var(--gold-primary);
}

.portfolio-grid {
    margin-top: 3rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem 1.5rem;
}
@media (min-width: 640px) { .portfolio-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .portfolio-grid { grid-template-columns: repeat(3, 1fr); gap: 4rem 2rem; } }
.portfolio-card { display: block; }
.portfolio-card .img {
    overflow: hidden;
    aspect-ratio: 4/5;
    border: 1px solid var(--border-color);
}
.portfolio-card .img img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
.portfolio-card:hover .img img { transform: scale(1.04); }
.portfolio-card .meta {
    margin-top: 1.25rem;
}
.portfolio-card .discipline {
    font-size: 0.65rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--gold-primary);
    font-weight: 600;
}
.portfolio-card h3 { font-family: "Fraunces", serif; font-size: 1.4rem; margin-top: 0.5rem; }
.portfolio-card .client { font-size: 0.85rem; color: var(--text-secondary); margin-top: 0.25rem; }
.portfolio-card .result { font-size: 0.92rem; color: var(--text-secondary); margin-top: 0.75rem; line-height: 1.6; }

/* ---------- Contact page panel ---------- */
.contact-panel .img { overflow: hidden; border: 1px solid var(--border-color); aspect-ratio: 4/5; }
.contact-panel .img img { width: 100%; height: 100%; object-fit: cover; }
.contact-panel ul { list-style: none; padding: 0; margin-top: 2rem; display: grid; gap: 1.5rem; }
.contact-panel li { display: flex; gap: 1rem; align-items: flex-start; }
.contact-panel .icon-box {
    width: 2.5rem; height: 2.5rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.contact-panel .icon-box svg { width: 1rem; height: 1rem; color: var(--gold-primary); }
.contact-panel .label { font-size: 0.65rem; letter-spacing: 0.28em; text-transform: uppercase; color: var(--gold-primary); font-weight: 600; }
.contact-panel .value { margin-top: 0.25rem; color: var(--text-primary); font-weight: 300; }

/* ---------- In-Numbers banner (About) ---------- */
.in-numbers {
    display: grid;
    grid-template-columns: 1fr;
}
@media (min-width: 1024px) { .in-numbers { grid-template-columns: 1fr 1fr; } }
.in-numbers > div { position: relative; min-height: 26rem; overflow: hidden; }
@media (min-width: 1024px) { .in-numbers > div { min-height: 35rem; } }
.in-numbers img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.in-numbers .right::after {
    content: "";
    /*position: absolute; inset: 0;*/
    background: linear-gradient(to right, rgba(0,0,0,0.85), rgba(0,0,0,0.55) 50%, rgba(0,0,0,0.35));
}
.in-numbers .content {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; justify-content: center;
    padding: 2rem;
}
@media (min-width: 640px) { .in-numbers .content { padding: 3rem; } }
@media (min-width: 1024px) { .in-numbers .content { padding: 4rem; } }
.in-numbers h2 { color: #000000; font-size: clamp(2rem, 3vw, 2.75rem); font-weight: 300; max-width: 24rem; margin-top: 1rem; }
.in-numbers .stats-mini { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem 1.5rem; margin-top: 2.5rem; max-width: 28rem; }
.in-numbers .stats-mini .k { font-family: "Fraunces", serif; font-size: clamp(2rem, 3vw, 2.5rem); color: var(--gold-primary); line-height: 1; }
.in-numbers .stats-mini .v { margin-top: 0.5rem; font-size: 0.65rem; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(0,0,0,0.7); font-weight: 500; }

.stats-mini .k { font-family: "Fraunces", serif !important; font-size: clamp(2rem, 3vw, 2.5rem) !important; color: var(--gold-primary) !important; line-height: 1 !important; }
.stats-mini .v { margin-top: 0.5rem !important; font-size: 0.65rem !important; letter-spacing: 0.28em !important; text-transform: uppercase !important; color: rgba(0,0,0,0.7) !important; font-weight: 500 !important; font-family: "Inter", -apple-system, BlinkMa; }


/* ---------- Team cards ---------- */
.team-card .img { overflow: hidden; aspect-ratio: 4/5; }
.team-card .img img { width: 100%; height: 100%; object-fit: cover; }
.team-card .info { margin-top: 1.5rem; display: flex; align-items: center; gap: 1rem; }
.monogram {
    width: 3rem; height: 3rem;
    background: var(--bg-secondary);
    color: var(--gold-primary);
    border: 1px solid var(--gold-primary);
    display: inline-flex;
    align-items: center; justify-content: center;
    font-family: "Fraunces", serif;
    font-size: 1rem;
    letter-spacing: 0.08em;
}
.team-card h3 { font-family: "Fraunces", serif; font-size: 1.2rem; }
.team-card .role { font-size: 0.65rem; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gold-primary); margin-top: 0.25rem; font-weight: 600; }
.team-card p { margin-top: 1.25rem; color: var(--text-secondary); font-size: 0.92rem; line-height: 1.65; }

/* ---------- Process strip ---------- */
.process-card .no { font-family: "Fraunces", serif; font-size: 2.5rem; color: var(--gold-primary); line-height: 1; }
.process-card h3 { margin-top: 1rem; font-family: "Fraunces", serif; font-size: 1.25rem; }
.process-card p { margin-top: 0.5rem; color: var(--text-secondary); font-size: 0.9rem; line-height: 1.6; }

/* ---------- Audience cards ---------- */
.audience-card .top { display: flex; align-items: center; gap: 1rem; }
.audience-card .icon {
    width: 3rem; height: 3rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    display: inline-flex; align-items: center; justify-content: center;
}
.audience-card .icon svg { width: 1.25rem; height: 1.25rem; color: var(--gold-primary); }
.audience-card h3 { font-family: "Fraunces", serif; font-size: 1.25rem; }
.audience-card p { margin-top: 1.25rem; color: var(--text-secondary); font-size: 0.92rem; line-height: 1.65; }

/* ---------- Helpers ---------- */
.text-center { text-align: center; }
.mx-auto { margin-left: auto; margin-right: auto; }
.mt-12 { margin-top: 3rem; }
.mt-16 { margin-top: 4rem; }
.mt-8 { margin-top: 2rem; }
.mt-6 { margin-top: 1.5rem; }
.mb-6 { margin-bottom: 1.5rem; }
.flex-center { display: flex; justify-content: center; }
.editorial-rule { border-top: 1px solid var(--gold-primary); width: 3.5rem; margin: 2rem auto; }

/* Cinematic page hero (dark theme) — show image as bg */
[data-theme="dark"] .page-hero .page-hero-img-wrap { display: none; }

/* Light theme page hero centered */
[data-theme="light"] .page-hero { text-align: center; padding-top: 11rem; padding-bottom: 5rem; }
[data-theme="light"] .page-hero .page-hero-img-wrap { display: block; margin-top: 4rem; max-width: 56rem; margin-left: auto; margin-right: auto; }
[data-theme="light"] .page-hero .page-hero-img-wrap img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
[data-theme="light"] .page-hero-grid { grid-template-columns: 1fr; }
[data-theme="light"] .page-hero-grid > div:first-child { grid-column: 1 / -1; }
[data-theme="light"] .page-hero-grid > div:last-child { grid-column: 1 / -1; }
[data-theme="light"] .page-hero-eyebrow { justify-content: center; }
[data-theme="light"] .page-hero-eyebrow::before { display: none; }
[data-theme="light"] .page-hero h1 { max-width: 64rem; margin-left: auto; margin-right: auto; }
[data-theme="light"] .page-hero-lead { margin-left: auto; margin-right: auto; }
[data-theme="light"] .page-hero .page-hero-eyebrow {
    background: transparent;
    border: 1px solid var(--gold-primary);
    padding: 0.4rem 1rem;
}

/* ============================================================
   SAND THEME — Annual Report / Corporate Magazine Layout
   A fundamentally different visual architecture from light + dark.
   Hero halves, oversized chapter numerals, borderless gold-accent
   cards, horizontal stats strip, and editorial section markers.
   ============================================================ */

/* Visibility utilities */
.sand-only { display: none; }
[data-theme="sand"] .sand-only { display: block; }
[data-theme="sand"] .hide-on-sand { display: none !important; }

/* ---------- Hero (Home) ---------- */
[data-theme="sand"] .hero {
    min-height: 92vh;
    align-items: stretch;
    background: var(--bg-primary);
}
[data-theme="sand"] .hero .hero-bg { display: none; }
[data-theme="sand"] .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--bg-secondary);
    z-index: 0;
}
[data-theme="sand"] .hero .hero-inner {
    position: relative;
    z-index: 1;
    padding: 8rem 0 4rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    align-items: center;
}
@media (min-width: 1024px) {
    [data-theme="sand"] .hero .hero-inner {
        grid-template-columns: 7fr 5fr;
        gap: 4rem;
        padding: 9rem 0 5rem;
    }
}
[data-theme="sand"] .hero h1 {
    color: var(--text-primary);
    font-weight: 450;
    font-size: clamp(2.5rem, 5.5vw, 4.75rem);
}
[data-theme="sand"] .hero-sub { color: var(--text-secondary); }
[data-theme="sand"] .hero-eyebrow { color: var(--gold-primary); }
[data-theme="sand"] .hero-eyebrow .line { background: var(--gold-primary); }
[data-theme="sand"] .hero .hero-ctas a.btn-ghost-light {
    color: var(--gold-primary);
    border-color: var(--gold-primary);
}
[data-theme="sand"] .hero .hero-ctas a.btn-ghost-light:hover {
    background: var(--gold-primary);
    color: #fff;
}
[data-theme="sand"] .hero .scroll-indicator { display: none; }
[data-theme="sand"] .hero .scroll-indicator .label { color: var(--text-secondary); }

/* Sand hero gets a right-side image collage (magazine cover feel) */
[data-theme="sand"] .hero-inner::after {
    content: "";
    display: none;
}
[data-theme="sand"] .sand-hero-collage {
    display: none;
}
[data-theme="sand"] .sand-only.sand-hero-collage {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 1rem;
    aspect-ratio: 1/1;
    max-width: 32rem;
    margin-left: auto;
}
[data-theme="sand"] .sand-hero-collage > div {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border-color);
    background: var(--card-bg);
}
[data-theme="sand"] .sand-hero-collage > div:first-child {
    grid-row: span 2;
}
[data-theme="sand"] .sand-hero-collage img {
    width: 100%; height: 100%; object-fit: cover;
    filter: saturate(0.92) contrast(1.02);
    transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-theme="sand"] .sand-hero-collage > div:hover img { transform: scale(1.05); }

/* ---------- Page hero (Sand) ---------- */
[data-theme="sand"] .page-hero {
    padding-top: 11rem;
    padding-bottom: 5rem;
    background: var(--bg-primary);
    position: relative;
    border-bottom: 1px solid var(--border-color);
}
[data-theme="sand"] .page-hero::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(180deg, var(--bg-secondary) 0%, transparent 60%);
    pointer-events: none;
}
[data-theme="sand"] .page-hero .container { position: relative; }
[data-theme="sand"] .page-hero-grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
}
@media (min-width: 1024px) {
    [data-theme="sand"] .page-hero-grid {
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
    }
}
[data-theme="sand"] .page-hero-grid > div:first-child { grid-column: auto; }
[data-theme="sand"] .page-hero-grid > div:last-child { grid-column: auto; }
[data-theme="sand"] .page-hero h1 {
    font-size: clamp(2.5rem, 5vw, 4.25rem);
    font-weight: 450;
}
[data-theme="sand"] .page-hero-eyebrow {
    color: var(--gold-primary);
    background: transparent;
    border: 0;
    padding: 0;
}
[data-theme="sand"] .page-hero-img-wrap {
    display: block;
    position: relative;
    margin-top: 0;
    max-width: none;
}
[data-theme="sand"] .page-hero-img-wrap::after {
    content: "";
    position: absolute;
    inset: -1.5rem -1.5rem 1.5rem 1.5rem;
    border: 1px solid var(--gold-primary);
    z-index: -1;
    pointer-events: none;
}

/* ---------- Cards (Sand) — borderless with gold accent ---------- */
[data-theme="sand"] .oryx-card {
    background: transparent;
    border: 0;
    padding: 2rem 0 2rem 2rem;
    position: relative;
    box-shadow: none;
    transition: transform 0.3s ease;
}
[data-theme="sand"] .oryx-card::before {
    content: "";
    position: absolute;
    top: 0; left: 0; bottom: 0;
    width: 2px;
    background: var(--gold-primary);
    opacity: 0.6;
    transition: opacity 0.3s ease;
}
[data-theme="sand"] .oryx-card:hover {
    transform: translateX(6px);
    box-shadow: none;
}
[data-theme="sand"] .oryx-card:hover::before { opacity: 1; }

/* Service teaser cards stay readable as link cards */
[data-theme="sand"] .service-card { min-height: 10rem; }

/* ---------- Why Oryx cards (sand) ---------- */
[data-theme="sand"] .diff-card .num,
[data-theme="sand"] .value-card .num,
[data-theme="sand"] .why-card .num {
    font-size: 1.5rem;
    color: var(--gold-secondary);
    letter-spacing: 0.2em;
}

/* ---------- Service block (Sand) — stacked chapter ---------- */
[data-theme="sand"] .service-block { margin: 6rem 0; padding-top: 2rem; }
[data-theme="sand"] .service-block .split-grid {
    grid-template-columns: 1fr !important;
    gap: 2rem;
}
[data-theme="sand"] .service-block .col-image {
    width: 100%;
}
[data-theme="sand"] .service-block .col-image .cinematic-frame {
    aspect-ratio: 21/9;
    border: 0;
}
[data-theme="sand"] .service-block .col-image .cinematic-frame img {
    filter: saturate(0.92) contrast(1.02);
}
[data-theme="sand"] .service-block .inset-image {
    display: none;
}
[data-theme="sand"] .service-block .section-num {
    position: static;
    display: block;
    font-size: 5rem;
    opacity: 0.85;
    margin-bottom: 0.5rem;
    color: var(--gold-primary);
        margin-top: -66px;
}
[data-theme="sand"] .service-block .col-text { max-width: 56rem; }
[data-theme="sand"] .service-block .bullets {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
}
@media (min-width: 640px) {
    [data-theme="sand"] .service-block .bullets {
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem 2rem;
    }
}

/* ---------- Stats section (Sand) — horizontal split with image ---------- */
[data-theme="sand"] .stats-section {
    padding: 0;
    background: var(--bg-primary);
}
[data-theme="sand"] .stats-section .bg { display: none; }
[data-theme="sand"] .stats-section .container {
    max-width: none;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
    [data-theme="sand"] .stats-section .container { grid-template-columns: 1fr 1fr; }
}
[data-theme="sand"] .stats-section .head {
    text-align: left;
    margin: 0;
    padding: 5rem 1.5rem 4rem;
    background: var(--bg-secondary);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
@media (min-width: 640px) { [data-theme="sand"] .stats-section .head { padding: 5rem 2rem; } }
@media (min-width: 1024px) { [data-theme="sand"] .stats-section .head { padding: 6rem 4rem; } }
[data-theme="sand"] .stats-section .head .eyebrow { color: var(--gold-primary); display: inline-block; margin-bottom: 1rem; }
[data-theme="sand"] .stats-section .head h2 {
    color: var(--text-primary);
    font-weight: 450;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    max-width: 28rem;
    margin-top: 0;
}
[data-theme="sand"] .stats-section .stats-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0;
    background: var(--card-bg);
    padding: 0;
}
[data-theme="sand"] .stats-section .stat-item {
    border: 0;
    border-bottom: 1px solid var(--border-color);
    border-right: 1px solid var(--border-color);
    padding: 3rem 1.5rem;
    text-align: left;
}
[data-theme="sand"] .stats-section .stat-item:nth-child(2n) { border-right: 0; }
[data-theme="sand"] .stats-section .stat-item:nth-child(n+3) { border-bottom: 0; }
[data-theme="sand"] .stats-section .stat-label {
    color: var(--text-secondary);
    font-weight: 600;
    margin-top: 0.75rem;
}

/* ---------- Markets section (Sand) ---------- */
[data-theme="sand"] .markets-section { background: var(--bg-primary); }
[data-theme="sand"] .markets-section .dot-grid { display: none; }
[data-theme="sand"] .market-pills { gap: 0.5rem; }
[data-theme="sand"] .market-pill {
    border: 0;
    background: transparent;
    border-bottom: 1px solid var(--border-color);
    padding: 0.625rem 0;
    margin-right: 0.5rem;
    font-size: 0.85rem;
}
[data-theme="sand"] .market-pill:hover {
    background: transparent;
    border-bottom-color: var(--gold-primary);
}

/* ---------- Final CTA (Sand) ---------- */
[data-theme="sand"] .final-cta {
    background: var(--bg-secondary);
    padding: 7rem 0;
}
[data-theme="sand"] .final-cta .bg { display: none; }
[data-theme="sand"] .final-cta .container { text-align: left; max-width: 64rem; }
[data-theme="sand"] .final-cta h2 {
    color: var(--text-primary);
    font-weight: 450;
}
[data-theme="sand"] .final-cta p { color: var(--text-secondary); margin-left: 0; max-width: 38rem; }
[data-theme="sand"] .final-cta .ctas { justify-content: flex-start; align-items: flex-start; }
[data-theme="sand"] .final-cta .btn-ghost-light {
    color: var(--gold-primary);
    border-color: var(--gold-primary);
}
[data-theme="sand"] .final-cta .btn-ghost-light:hover {
    background: var(--gold-primary);
    color: #fff;
}

/* ---------- In Numbers banner (Sand) ---------- */
[data-theme="sand"] .in-numbers .right::after {
    background: linear-gradient(to right, rgba(31,26,18,0.85), rgba(31,26,18,0.55) 50%, rgba(31,26,18,0.35));
}

/* ---------- Section padding rhythm (Sand) ---------- */
[data-theme="sand"] .section { padding: 7rem 0; }
@media (min-width: 768px) { [data-theme="sand"] .section { padding: 5rem 0; } }

/* ---------- Sand-only corporate image strip ---------- */
.corporate-strip {
    margin-top: 4rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 640px) { .corporate-strip { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .corporate-strip { grid-template-columns: repeat(4, 1fr); gap: 1rem; } }
.corporate-strip .tile {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/5;
    border: 1px solid var(--border-color);
}
.corporate-strip .tile img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
    filter: saturate(0.92) contrast(1.02);
}
.corporate-strip .tile:hover img { transform: scale(1.05); }
.corporate-strip .tile .tag {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 1rem;
    background: linear-gradient(to top, rgba(31,26,18,0.85), transparent);
    color: #fff;
    font-size: 1.3rem;
    letter-spacing: 0em;
    /* text-transform: uppercase; */
    font-weight: 600;
     font-family: "Fraunces", serif;
}
.corporate-strip .tile .tag .gold { display: block; font-size: 1rem; letter-spacing: 0em; text-transform: none; margin-top: 0.25rem; font-weight: 400; font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;}

/* Sand chapter-heading helper */
.sand-chapter-no {
    display: block;
    font-family: "Fraunces", serif;
    font-weight: 300;
    font-size: clamp(3rem, 6vw, 5rem);
    color: var(--gold-primary);
    line-height: 0.85;
    margin-bottom: 0.5rem;
}

/* Sand portfolio offsets (subtle masonry) */
[data-theme="sand"] .portfolio-grid .portfolio-card:nth-child(3n+2) { transform: translateY(2.5rem); }
@media (max-width: 640px) { [data-theme="sand"] .portfolio-grid .portfolio-card:nth-child(3n+2) { transform: none; } }
[data-theme="sand"] .portfolio-card .img { border: 0; }
[data-theme="sand"] .portfolio-card .img img { filter: saturate(0.92) contrast(1.02); }

/* Sand team cards keep image full width without padding */
[data-theme="sand"] .team-card { padding: 0; }
[data-theme="sand"] .team-card::before { display: none; }
[data-theme="sand"] .team-card .info,
[data-theme="sand"] .team-card p { padding-left: 0; }
[data-theme="sand"] .team-card .img { margin-bottom: 1.5rem; }

/* Sand footer keeps current treatment, just adds warm tint via vars */
[data-theme="sand"] .oryx-footer { background: #000000; }

/* Sand header — slightly different feel */
[data-theme="sand"] .oryx-nav {
    background: #000000;
    border-bottom: 1px solid var(--gold-primary);
    border-bottom-width: 0.5px;
}

/* Sand editorial-meta — change to filled gold */
[data-theme="sand"] .editorial-meta {
    background: var(--gold-primary);
    color: #fff;
    border-color: var(--gold-primary);
}

/* Sand process cards */
[data-theme="sand"] .process-card .no {
    font-size: 3.5rem;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 0.5rem;
    margin-bottom: 1rem;
}

/* ============================================================
   Subtle motion — text shimmer, image ken-burns, hover lift
   ============================================================ */

/* Soft floating animation for hero collage tiles */
@keyframes float-soft {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}
[data-theme="sand"] .sand-hero-collage > div {
    animation: float-soft 7s ease-in-out infinite;
}
[data-theme="sand"] .sand-hero-collage > div:nth-child(2) { animation-delay: 1.2s; }
[data-theme="sand"] .sand-hero-collage > div:nth-child(3) { animation-delay: 2.4s; }

/* Ken Burns — slow scale on hero & page-hero images */
@keyframes ken-burns {
    0%   { transform: scale(1) translate(0, 0); }
    100% { transform: scale(1.06) translate(-1%, -1%); }
}
.ken-burns {
    animation: ken-burns 18s ease-in-out infinite alternate;
    will-change: transform;
}

/* Gold accent shimmer — text-gold spans inside headlines */
@keyframes gold-shimmer {
    0%   { background-position: -150% 0; }
    60%  { background-position: 250% 0; }
    100% { background-position: 250% 0; }
}
h1 .text-gold, h2 .text-gold {
    background-image: linear-gradient(
        100deg,
        var(--gold-primary) 0%,
        var(--gold-primary) 38%,
        var(--accent) 50%,
        var(--gold-primary) 62%,
        var(--gold-primary) 100%
    );
    background-size: 250% 100%;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--gold-primary);
    animation: gold-shimmer 6s ease-in-out infinite;
    animation-delay: 1.2s;
}

/* Image card hover — gentle lift + inner zoom (in addition to existing) */
.image-card { will-change: transform; }
.image-card img {
    transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), filter 0.6s ease;
}
.image-card:hover img { transform: scale(1.04); }

/* Portfolio card hover — slow inner zoom (already exists; reinforced) */
.portfolio-card .img img { will-change: transform; }

/* Reveal — image clip-path sweep */
.reveal-clip { clip-path: inset(0 100% 0 0); transition: clip-path 1.1s cubic-bezier(0.65, 0, 0.35, 1); }
.reveal-clip.in { clip-path: inset(0 0 0 0); }

/* Subtle nav underline pulse on hover (already has width transition) */
.nav-link:hover::after { width: 100%; }

/* Stat number — fade-in on counter end (subtle blur lift) */
.stat-number { transition: filter 0.6s ease, opacity 0.6s ease; }
.stat-number.counting { filter: blur(0.5px); opacity: 0.85; }

/* Buttons — gentle inner shine sweep on hover */
.btn-primary, .btn-secondary {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.btn-primary::after, .btn-secondary::after {
    content: "";
    position: absolute;
    top: 0; bottom: 0;
    left: -120%;
    width: 60%;
    background: linear-gradient(
        100deg,
        transparent 0%,
        rgba(255, 255, 255, 0.35) 50%,
        transparent 100%
    );
    transform: skewX(-18deg);
    pointer-events: none;
    z-index: -1;
}
.btn-primary:hover::after, .btn-secondary:hover::after {
    transition: left 0.9s ease;
    left: 130%;
}

/* Service-block image — soft scale on viewport entry */
.service-block .cinematic-frame { overflow: hidden; }
.service-block .cinematic-frame img {
    transform: scale(1.02);
    transition: transform 1.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.in .cinematic-frame img,
.service-block.reveal.in .cinematic-frame img { transform: scale(1); }

/* In-numbers banner image — slow ken-burns by default */
.in-numbers .left img,
.in-numbers .right img {
    animation: ken-burns 22s ease-in-out infinite alternate;
}

/* Logo subtle hover */
.logo svg { transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.logo:hover svg { transform: translateY(-2px); }

/* Reduce-motion respect */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    .reveal { opacity: 1 !important; transform: none !important; }
    .reveal-clip { clip-path: inset(0 0 0 0) !important; }
}

/* ============================================================
   Portfolio — full-width alternating project sections
   ============================================================ */
.projects-list { display: grid; gap: 0; }
.project-block {
    padding: 5rem 0;
    border-bottom: 1px solid var(--border-color);
    position: relative;
}
.project-block:last-child { border-bottom: 0; }
@media (min-width: 1024px) { .project-block { padding: 7rem 0; } }

.project-block .split {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    align-items: center;
}
@media (min-width: 1024px) {
    .project-block .split { grid-template-columns: 6fr 6fr; gap: 5rem; }
    .project-block.alt .col-img { order: 2; }
}

.project-block .col-img { position: relative; }
.project-block .col-img .frame {
    overflow: hidden;
    aspect-ratio: 4/5;
    border: 1px solid var(--border-color);
}
.project-block .col-img .frame img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 1.3s cubic-bezier(0.16, 1, 0.3, 1);
    filter: saturate(0.92) contrast(1.02);
}
.project-block:hover .col-img .frame img { transform: scale(1.03); }
.project-block .col-img .no {
    position: absolute;
    top: -1.5rem;
    left: -1rem;
    font-family: "Fraunces", serif;
    font-size: 4rem;
    color: var(--gold-primary);
    line-height: 0.85;
    opacity: 0.55;
    pointer-events: none;
    z-index: 1;
}
.project-block.alt .col-img .no { left: auto; right: -1rem; }

.project-block .discipline-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.7rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--gold-primary);
    font-weight: 600;
    margin-bottom: 1.25rem;
}
.project-block .discipline-eyebrow::before {
    content: "";
    width: 2rem;
    height: 1px;
    background: var(--gold-primary);
}

.project-block h2 {
    font-family: "Fraunces", serif;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.05;
    color: var(--text-primary);
    font-weight: 450;
}
.project-block .client {
    margin-top: 0.75rem;
    font-family: "Fraunces", serif;
    font-style: italic;
    color: var(--gold-primary);
    font-size: 1.1rem;
}
.project-block .intro { margin-top: 1.75rem; display: grid; gap: 1rem; }
.project-block .intro p {
    color: var(--text-secondary);
    font-size: 1rem;
    line-height: 1.7;
    max-width: 34rem;
}

.project-block .outcome {
    margin-top: 2.25rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border-color);
}
.project-block .outcome-title {
    font-size: 0.68rem;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--gold-primary);
    margin-bottom: 1rem;
}
.project-block .outcome-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.75rem;
}
.project-block .outcome-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    color: var(--text-primary);
    font-size: 0.95rem;
    line-height: 1.55;
}
.project-block .outcome-list li::before {
    content: "";
    display: inline-block;
    width: 0.7rem;
    height: 1px;
    background: var(--gold-primary);
    margin-top: 0.75rem;
    flex-shrink: 0;
}

/* Sand-specific — alternate row backgrounds for editorial rhythm */
[data-theme="sand"] .project-block:nth-child(even) { background: var(--bg-secondary); }

/* Filter buttons need to keep working with the new section-based layout */
.filter-row.projects-filter { margin-bottom: 1rem; }
