@import "tailwindcss";

/* Scan theme PHP + JS for class usage */
@source "../../*.php";
@source "../../template-parts/*.php";
@source "../../inc/*.php";
@source "../js/*.js";

/* ── Fonts ── */
@font-face {
    font-family: "AzarMehr";
    src: url("../fonts/AzarMehr-FD-Variable.woff2") format("woff2");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Ravi VF";
    src: url("../fonts/RaviFaNum-VF.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@theme {
    /* ── Breakpoints ── */
    --breakpoint-*: initial;
    --breakpoint-xs: 700px;
    --breakpoint-sm: 800px;
    --breakpoint-md: 940px;
    --breakpoint-lg: 1310px;
    --breakpoint-xl: 1450px;

    /* ── Container sizes ── */
    --container-*: initial;
    --container-xxs: 400px;
    --container-xs: 700px;
    --container-sm: 800px;
    --container-md: 940px;
    --container-lg: 1310px;
    --container-xl: 1450px;

    /* ── Typography ── */
    --font-body: "AzarMehr", sans-serif;
    --font-display: "Ravi VF", "AzarMehr", sans-serif;

    /* ── Accent: Emerald Green (brand) ── */
    --color-accent-50: #ecfdf3;
    --color-accent-100: #d1fadf;
    --color-accent-200: #a6f4c5;
    --color-accent-300: #6ce9a6;
    --color-accent-400: #34d27f;
    --color-accent-500: #1bab5e;
    --color-accent: #168f4c;
    --color-accent-600: #15803d;
    --color-accent-700: #126b34;
    --color-accent-800: #0f5429;
    --color-accent-900: #0b3d20;
    --color-accent-950: #05230f;
    --color-accent-dark: #0f6b39;
    --color-accent-light: #ecfdf3;

    /* ── Gold (luxury secondary) ── */
    --color-gold-50: #fbf7e9;
    --color-gold-100: #f6ecc6;
    --color-gold-200: #efdb8f;
    --color-gold: #c8a44d;
    --color-gold-300: #e3c878;
    --color-gold-400: #d4af37;
    --color-gold-500: #c8a44d;
    --color-gold-600: #a8842f;
    --color-gold-700: #856626;
    --color-gold-dark: #856626;
    --color-gold-light: #f0d98a;

    /* ── "steel" neutrals — recolored to warm green-greys (keeps markup) ── */
    --color-steel-50: #f4f8f5;
    --color-steel-100: #e6efe9;
    --color-steel-200: #cfe0d6;
    --color-steel-300: #aac4b5;
    --color-steel-400: #7d9b8c;
    --color-steel-500: #5b7668;
    --color-steel-600: #41594e;
    --color-steel-700: #2a3f37;
    --color-steel-800: #16271f;
    --color-steel-900: #0a1812;
    --color-steel-950: #050d09;

    /* ── Brand / surfaces ── */
    --color-dark: #08160f;       /* deep green-black: hero / footer / dark */
    --color-darker: #04100a;
    --color-white: #ffffff;
    --color-cream: #faf8f1;

    /* ── Text ── */
    --color-heading: #0a2418;
    --color-body: #44574d;
    --color-muted: #6b8377;
    --color-light-text: #94a3b8;

    /* ── Borders ── */
    --color-border: #e4ece7;
    --color-border-medium: #cbd9d1;
    --color-border-dark: rgba(200, 164, 77, 0.18);

    /* ── Backgrounds ── */
    --color-bg-light: #f6faf7;
    --color-bg-section: #f6faf7;
    --color-bg-alt: #eef4f0;
    --color-bg-input: #f1f6f3;
    --color-bg-cream: #faf8f1;

    /* ── Design System: Border Radius (sharp / architectural) ── */
    --radius-none: 0px;
    --radius: 0px;
    --radius-sm: 0px;
    --radius-md: 0px;
    --radius-lg: 0px;
    --radius-xl: 0px;
    --radius-2xl: 0px;
    --radius-3xl: 0px;
    --radius-4xl: 0px;
}

@utility container {
    margin-inline: auto;
    padding-inline: 1.25rem;
    @media (width >= 800px) {
        padding-inline: 2.5rem;
    }
}

@layer base {
    body {
        font-family: var(--font-body);
        font-feature-settings: "ss02"; /* Persian numerals */
        color: var(--color-body);
        background: #fff;
    }

    h1, h2, h3, h4, h5, h6 {
        font-family: var(--font-display);
        font-feature-settings: "ss02";
        color: var(--color-heading);
        letter-spacing: -0.01em;
    }

    .font-dana { font-family: var(--font-display); }

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

/* ── Gold accents ── */
.gold-text {
    background: linear-gradient(115deg, #9a7b2e 0%, #e9d391 28%, #d4af37 50%, #b48a2c 72%, #f0d98a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.gold-bar {
    background: linear-gradient(90deg, #9a7b2e 0%, #e9d391 30%, #d4af37 55%, #b48a2c 80%, #f0d98a 100%);
}
.rule-gold {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
}

/* ── Display type (elegant, oversized) ── */
@utility display-hero {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.75rem, 8vw, 6.5rem);
    line-height: 1.02;
    letter-spacing: -0.03em;
}
@utility display-xl {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2rem, 5vw, 3.75rem);
    line-height: 1.08;
    letter-spacing: -0.025em;
}
@utility eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    color: var(--color-gold-dark);
}
.eyebrow::before {
    content: "";
    width: 1.75rem;
    height: 1px;
    background: var(--color-gold);
    display: inline-block;
}

/* ── Buttons ── */
@utility btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9375rem 1.75rem;
    background: var(--color-accent);
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    border: 1px solid var(--color-accent);
    transition: background-color 0.25s, border-color 0.25s, transform 0.1s, box-shadow 0.25s;
}
.btn-primary:hover {
    background: var(--color-accent-dark);
    border-color: var(--color-gold);
    box-shadow: 0 8px 24px -10px rgba(22, 143, 76, 0.6);
}
.btn-primary:active { transform: translateY(1px); }

@utility btn-gold {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9375rem 1.75rem;
    background: linear-gradient(115deg, #9a7b2e, #d4af37 45%, #b48a2c 70%, #e9d391);
    color: #08160f;
    font-weight: 700;
    font-size: 0.9375rem;
    cursor: pointer;
    border: 1px solid transparent;
    transition: filter 0.25s, transform 0.1s, box-shadow 0.25s;
}
.btn-gold:hover { filter: brightness(1.06); box-shadow: 0 8px 24px -10px rgba(212, 175, 55, 0.7); }
.btn-gold:active { transform: translateY(1px); }

@utility btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9375rem 1.75rem;
    background: transparent;
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    border: 1px solid rgba(200, 164, 77, 0.45);
    transition: background-color 0.25s, border-color 0.25s, color 0.25s;
}
.btn-ghost:hover { background: rgba(200, 164, 77, 0.1); border-color: var(--color-gold); color: var(--color-gold-light); }

@utility btn-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9375rem 1.75rem;
    background: var(--color-dark);
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    border: 1px solid var(--color-gold);
    transition: background-color 0.25s, color 0.25s;
}
.btn-dark:hover { background: var(--color-gold); color: var(--color-dark); }

/* ── Surfaces / patterns ── */
.bg-grid {
    background-image:
        linear-gradient(to right, rgba(200, 164, 77, 0.06) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(200, 164, 77, 0.06) 1px, transparent 1px);
    background-size: 56px 56px;
}
.bg-grid-dark {
    background-image:
        linear-gradient(to right, rgba(10, 36, 24, 0.05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(10, 36, 24, 0.05) 1px, transparent 1px);
    background-size: 56px 56px;
}
/* refined gold bar (replaces industrial hazard) */
.hazard {
    background: linear-gradient(90deg, #9a7b2e 0%, #e9d391 30%, #d4af37 55%, #b48a2c 80%, #f0d98a 100%);
}
.steel-gradient {
    background:
        radial-gradient(120% 120% at 100% 0%, rgba(212, 175, 55, 0.16) 0%, transparent 46%),
        radial-gradient(80% 80% at 0% 100%, rgba(22, 143, 76, 0.18) 0%, transparent 50%),
        linear-gradient(155deg, #08160f 0%, #0f2a1d 55%, #08160f 100%);
}

/* ── Section rhythm ── */
@utility section { padding-block: clamp(4rem, 8vw, 7rem); }

/* ── Service card ── */
.service-card {
    position: relative;
    overflow: hidden;
    transition: border-color 0.25s, background-color 0.25s, transform 0.25s, box-shadow 0.25s;
}
.service-card::after {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    bottom: 0;
    height: 3px;
    width: 100%;
    background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light));
    transform: scaleX(0);
    transform-origin: inline-end;
    transition: transform 0.35s ease;
}
.service-card:hover::after { transform: scaleX(1); }
.service-card:hover { box-shadow: 0 24px 50px -28px rgba(10, 36, 24, 0.28); transform: translateY(-2px); }

/* ── Stat counter ── */
.stat-num {
    font-family: var(--font-display);
    font-weight: 800;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

/* ── Marquee (capabilities ticker) ── */
.marquee { overflow: hidden; white-space: nowrap; }
.marquee__track {
    display: inline-flex;
    align-items: center;
    gap: 2.5rem;
    will-change: transform;
    animation: marquee 36s linear infinite;
}
@keyframes marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.marquee:hover .marquee__track { animation-play-state: paused; }

/* ── Post / Page rich content (prose) ── */
.prose-iliya { color: var(--color-body); line-height: 2; font-size: 0.9375rem; }
.prose-iliya h1 { font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; margin: 0 0 1.25rem; }
.prose-iliya h2 {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 600;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--color-border);
}
.prose-iliya h3 { font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; margin-top: 2rem; margin-bottom: 0.75rem; }
.prose-iliya p { margin-bottom: 1rem; }
.prose-iliya a { color: var(--color-accent); }
.prose-iliya a:hover { text-decoration: underline; }
.prose-iliya ul, .prose-iliya ol { padding-inline-start: 1.5rem; margin-bottom: 1.25rem; }
.prose-iliya ul { list-style-type: disc; }
.prose-iliya ol { list-style-type: decimal; }
.prose-iliya li { margin-bottom: 0.5rem; }
.prose-iliya strong { color: var(--color-dark); font-weight: 600; }
.prose-iliya blockquote {
    border-inline-start: 4px solid var(--color-gold);
    padding-inline-start: 1.25rem;
    color: var(--color-muted);
    font-style: italic;
    margin: 1.5rem 0;
}
.prose-iliya img { width: 100%; height: auto; margin: 1.5rem 0; }
.prose-iliya table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.875rem; }
.prose-iliya table th, .prose-iliya table td { border: 1px solid var(--color-border); padding: 0.75rem 1rem; text-align: start; }
.prose-iliya table th { background: var(--color-bg-light); color: var(--color-dark); font-weight: 600; }
.prose-iliya hr { border: none; border-top: 1px solid var(--color-border); margin: 2rem 0; }

/* ── Pagination ── */
.page-numbers { display: flex; justify-content: center; list-style: none; margin: 0; padding: 0; gap: 0.375rem; }
.page-numbers li a,
.page-numbers li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    font-size: 0.875rem;
    padding: 0 0.625rem;
    color: var(--color-dark);
    background: white;
    border: 1px solid var(--color-border);
    transition: all 0.2s;
}
.page-numbers li a:hover,
.page-numbers li span.current {
    color: white;
    background: var(--color-accent);
    border-color: var(--color-accent);
}
.page-numbers li .dots { background: transparent; border-color: transparent; color: var(--color-muted); }

/* ── First-load logo loader ── */
.iliya-loader {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(70% 70% at 50% 42%, rgba(212, 175, 55, 0.1) 0%, transparent 55%),
        radial-gradient(circle at 50% 45%, #0c1a12 0%, #04100a 52%, #010604 100%);
}
.iliya-loader.is-done {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.7s ease, visibility 0.7s ease;
}
.iliya-loader__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
}
/* Brand wordmark — stroke-draws then fills (Motion pathLength) */
.iliya-loader__svg {
    width: min(72vw, 380px);
    height: auto;
    display: block;
    color: var(--color-gold-light);
    filter: drop-shadow(0 14px 40px rgba(0, 0, 0, 0.5)) drop-shadow(0 0 24px rgba(212, 175, 55, 0.2));
}
.iliya-loader__svg .il-p {
    fill: var(--color-gold);
    fill-opacity: 0;
    stroke: currentColor;
    stroke-width: 1.1;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
    /* hidden from first paint (pathLength=1 normalizes dash units) → no static flash */
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
}
@media (prefers-reduced-motion: reduce) {
    .iliya-loader__svg .il-p { stroke-dashoffset: 0; }
}
.iliya-loader__name {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
    opacity: 0;
    will-change: opacity, transform;
}
.iliya-loader__fa {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.25rem, 3.6vw, 1.75rem);
    color: var(--color-gold-light);
}
.iliya-loader__en {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 0.72rem;
    letter-spacing: 0.42em;
    text-indent: 0.42em;
    color: var(--color-steel-300);
}
@media (prefers-reduced-motion: reduce) { .iliya-loader__name { opacity: 1; } }
.iliya-loader__bar {
    position: relative;
    width: 160px;
    height: 2px;
    background: rgba(200, 164, 77, 0.18);
    overflow: hidden;
}
.iliya-loader__bar span {
    position: absolute;
    inset-block: 0;
    inset-inline-start: -40%;
    width: 40%;
    background: linear-gradient(90deg, transparent, var(--color-gold-light), transparent);
    animation: loader-sweep 1.1s ease-in-out infinite;
}
@keyframes loader-sweep {
    to { inset-inline-start: 100%; }
}
/* lock scroll while loader visible */
body:has(.iliya-loader:not(.is-done)) { overflow: hidden; }

/* ── Motion: respect reduced-motion ── */
@media (prefers-reduced-motion: reduce) {
    [data-motion] { opacity: 1 !important; transform: none !important; }
    .marquee__track { animation: none; }
    .iliya-loader__bar span { animation: none; }
}

/* ═══════════════════════════════════════════════════════════
   FLAGSHIP HOMEPAGE (front-page.php) — art-directed, motion-driven
   All radius-0, RTL logical props, green/gold tokens.
   ═══════════════════════════════════════════════════════════ */

/* ---- Cinematic hero ---- */
.hero-flag {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 100svh;
    overflow: hidden;
    background: var(--color-dark);
}
.hero-flag__bg { position: absolute; inset: 0; z-index: 0; will-change: transform; }
.hero-flag__bg img { width: 100%; height: 100%; object-fit: cover; transform-origin: center; }
.hero-flag__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        radial-gradient(120% 90% at 82% 8%, rgba(212, 175, 55, 0.16) 0%, transparent 46%),
        radial-gradient(90% 90% at 0% 100%, rgba(22, 143, 76, 0.18) 0%, transparent 52%),
        linear-gradient(155deg, rgba(4, 16, 10, 0.86) 0%, rgba(8, 22, 15, 0.66) 45%, rgba(4, 16, 10, 0.94) 100%);
}
.hero-flag__canvas { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; pointer-events: none; }
.hero-flag__inner { position: relative; z-index: 3; width: 100%; will-change: transform, opacity; }

.kenburns { transform: scale(1.1); }
@media (prefers-reduced-motion: no-preference) {
    .kenburns { animation: kenburns 26s ease-in-out infinite alternate; }
}
@keyframes kenburns {
    from { transform: scale(1.08) translate3d(0, 0, 0); }
    to   { transform: scale(1.2) translate3d(-2%, -2%, 0); }
}

/* scroll cue — thin gold line drop (radius-0) */
.scroll-cue { position: relative; width: 1px; height: 52px; overflow: hidden; background: linear-gradient(var(--color-gold), transparent); }
.scroll-cue span { position: absolute; inset-inline-start: 0; top: -50%; width: 100%; height: 50%; background: var(--color-gold-light); }
@media (prefers-reduced-motion: no-preference) { .scroll-cue span { animation: cuedrop 1.9s ease-in-out infinite; } }
@keyframes cuedrop { 0% { top: -50%; } 100% { top: 100%; } }

/* ---- Scroll-tilt showcase (Aceternity effect, ported) ---- */
.tilt-stage { perspective: 900px; }
.tilt-card {
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
    will-change: transform;
    border: 6px solid var(--color-steel-800);
    background: var(--color-steel-900);
    box-shadow:
        0 9px 20px rgba(0, 0, 0, 0.29), 0 37px 37px rgba(0, 0, 0, 0.26),
        0 84px 50px rgba(0, 0, 0, 0.15), 0 149px 60px rgba(0, 0, 0, 0.04);
}
.tilt-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: reduce) { .tilt-card { transform: none !important; } }
[data-tilt-title] { will-change: transform; }

/* ---- Pinned services (sticky-column scroll chapters) ---- */
@media (min-width: 940px) {
    .svc-sticky { position: sticky; top: 14vh; }
    .svc-block { opacity: 0.32; transition: opacity 0.5s ease; }
    .svc-block.is-active { opacity: 1; }
}
.svc-panel { transition: opacity 0.6s ease; }
.svc-dot { transition: all 0.4s ease; }
.svc-dot.is-active { background: var(--color-gold); transform: scaleX(2.4); }

/* ---- Horizontal projects (native slider: drag / arrows / scroll) ---- */
.hproj-viewport {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
}
.hproj-viewport::-webkit-scrollbar { display: none; }
.hproj-viewport.is-drag { cursor: grabbing; scroll-snap-type: none; }
.hproj-card { position: relative; overflow: hidden; scroll-snap-align: center; }
.hproj-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); user-select: none; }
.hproj-card:hover img { transform: scale(1.05); }
.hproj-fill { transform: scaleX(0); transform-origin: left; will-change: transform; }

/* ---- Image-backed dark section ---- */
.img-section { position: relative; isolation: isolate; }
.img-section__bg { position: absolute; inset: 0; z-index: -1; }
.img-section__bg img { width: 100%; height: 100%; object-fit: cover; }

/* ---- Magnetic + line-draw + chips ---- */
[data-magnetic] { will-change: transform; transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1); }
[data-line] { transform: scaleX(0); transform-origin: right; will-change: transform; }
@media (prefers-reduced-motion: reduce) { [data-line] { transform: scaleX(1); } }
.chip {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--color-border-medium);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-steel-700);
    transition: border-color 0.25s, color 0.25s, background-color 0.25s;
}
.chip:hover { border-color: var(--color-accent); color: var(--color-accent); background: var(--color-accent-50); }

/* Contact form status message */
.cf-status {
    display: none;
    margin: 0;
    padding: 0.85rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.7;
    border-inline-start: 3px solid transparent;
}
.cf-status--show { display: block; }
.cf-status--ok {
    color: var(--color-accent);
    background: var(--color-accent-50);
    border-inline-start-color: var(--color-accent);
}
.cf-status--err {
    color: #b91c1c;
    background: #fef2f2;
    border-inline-start-color: #b91c1c;
}

/* ═══════════════════════════════════════════════════════════
   ENGINEERED EDITORIAL — art-direction layer (anti-AI-slop)
   Luxury steel monograph: paper + green-black, gold = hairline only,
   asymmetry, outlined numerals, film grain, measurement spine.
   ═══════════════════════════════════════════════════════════ */

/* ---- Film grain (global atmosphere) ---- */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 9998;
    pointer-events: none;
    opacity: 0.05;
    mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- Warm paper surface + faint blueprint ---- */
.bg-paper { background: var(--color-cream); }
.blueprint {
    background-image:
        linear-gradient(to right, rgba(10, 36, 24, 0.035) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(10, 36, 24, 0.035) 1px, transparent 1px);
    background-size: 64px 64px;
}

/* ---- Outlined "ghost" numerals (section markers, bleed off-edge) ---- */
.index-ghost {
    font-family: var(--font-display);
    font-weight: 800;
    line-height: 0.78;
    letter-spacing: -0.04em;
    color: transparent;
    -webkit-text-stroke: 1px rgba(200, 164, 77, 0.32);
    text-stroke: 1px rgba(200, 164, 77, 0.32);
    user-select: none;
    pointer-events: none;
}
.index-ghost--ink { -webkit-text-stroke-color: rgba(10, 36, 24, 0.12); text-stroke-color: rgba(10, 36, 24, 0.12); }

/* ---- Plate caption (monograph annotation) ---- */
.plate-cap {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.68rem;
    letter-spacing: 0.18em;
    font-weight: 600;
    color: var(--color-gold-light);
    font-variant-numeric: tabular-nums;
}
.plate-cap::before { content: ""; width: 0.4rem; height: 0.4rem; background: var(--color-gold); display: inline-block; }

/* ---- Mask-up reveal (editorial line reveal) ---- */
.r-mask { overflow: hidden; display: block; }
.r-line { display: block; transform: translateY(110%); will-change: transform; }
@media (prefers-reduced-motion: reduce) { .r-line { transform: none; } }

/* ---- Hairline rule that draws in ---- */
.rule-draw { height: 1px; background: var(--color-gold); transform: scaleX(0); transform-origin: right; will-change: transform; }
@media (prefers-reduced-motion: reduce) { .rule-draw { transform: scaleX(1); } }

/* ---- Duotone-ish image (cohesive green grade on photos) ---- */
.duo { filter: saturate(0.85) contrast(1.05); }

/* ---- Refined eyebrow on light: ink line ---- */
.eyebrow--ink { color: var(--color-heading); }
.eyebrow--ink::before { background: var(--color-gold-dark); }

/* ---- Measurement spine (signature) — fixed blueprint margin ---- */
.spine {
    position: fixed;
    inset-block: 0;
    z-index: 40;
    display: none;
    align-items: center;
    pointer-events: none;
    mix-blend-mode: difference;
}
@media (min-width: 1310px) {
    .spine { display: flex; inset-inline-start: clamp(1rem, calc((100vw - 1180px) / 2 - 1.25rem), 4.5rem); }
}
.spine__inner { display: flex; flex-direction: column; gap: 0.85rem; align-items: flex-start; }
.spine__item { display: flex; align-items: center; gap: 0.65rem; opacity: 0.45; transition: opacity 0.45s ease; }
.spine__item.is-active { opacity: 1; }
.spine__num { font: 600 0.66rem/1 var(--font-body); letter-spacing: 0.12em; color: #fff; font-variant-numeric: tabular-nums; font-feature-settings: "ss02"; }
.spine__bar { width: 16px; height: 1px; background: #fff; transition: width 0.45s ease; }
.spine__item.is-active .spine__bar { width: 36px; }
.spine__label { font: 0.66rem/1 var(--font-body); color: #fff; max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width 0.45s ease, opacity 0.45s ease; }
.spine__item.is-active .spine__label { max-width: 120px; opacity: 1; }

/* ---- Header: transparent over hero → solid on scroll (front page) ---- */
.site-header[data-transparent] [data-header-main] {
    position: relative;
    background: transparent;
    border-color: transparent;
    transition: background-color 0.22s ease, border-color 0.22s ease;
}
/* soft top scrim for legibility over hero (no per-glyph glow); fades when solid */
.site-header[data-transparent] [data-header-main]::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: 0;
    height: 150px;
    background: linear-gradient(to bottom, rgba(4, 16, 10, 0.5), transparent);
    pointer-events: none;
    z-index: -1;
    opacity: 1;
    transition: opacity 0.22s ease;
}
.site-header[data-transparent] [data-header-main].is-solid::before { opacity: 0; }
.site-header[data-transparent] [data-header-main] .site-branding .text-accent-800 { color: #fff; }
.site-header[data-transparent] [data-header-main] .site-branding .text-gold-dark { color: var(--color-gold-light); }
.site-header[data-transparent] [data-header-main] .primary-nav a { color: var(--color-steel-200); }
.site-header[data-transparent] [data-header-main] .primary-nav a:hover { color: #fff; }
.site-header[data-transparent] [data-header-main] [data-menu-toggle] { color: #fff; }
.site-header[data-transparent] [data-header-main].is-solid {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    border-color: var(--color-border);
}
.site-header[data-transparent] [data-header-main].is-solid .site-branding .text-accent-800 { color: var(--color-accent-800); }
.site-header[data-transparent] [data-header-main].is-solid .site-branding .text-gold-dark { color: var(--color-gold-dark); }
.site-header[data-transparent] [data-header-main].is-solid .primary-nav a { color: var(--color-steel-700); }
.site-header[data-transparent] [data-header-main].is-solid [data-menu-toggle] { color: var(--color-dark); }

/* ---- Refined buttons: sharper, less "gradient casino" ---- */
.btn-line {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.9375rem 1.75rem;
    background: transparent;
    color: var(--color-heading);
    font-weight: 600;
    font-size: 0.9375rem;
    cursor: pointer;
    border: 1px solid var(--color-border-medium);
    transition: border-color 0.3s, color 0.3s, background-color 0.3s;
}
.btn-line:hover { border-color: var(--color-accent); color: var(--color-accent); }
.btn-line--light { color: #fff; border-color: rgba(255, 255, 255, 0.25); }
.btn-line--light:hover { border-color: var(--color-gold); color: var(--color-gold-light); background: rgba(200, 164, 77, 0.06); }

/* arrow micro-shift inside buttons/links */
.lnk-arrow svg { transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); }
.lnk-arrow:hover svg { transform: translateX(-0.35rem); }

/* ── Lenis smooth scroll ── */
html.lenis,
html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }
.lenis.lenis-smooth iframe { pointer-events: none; }
