.section-bg {
            background:
                radial-gradient(ellipse 60% 40% at 15% 20%, rgba(20, 35, 102, 0.5) 0%, transparent 60%),
                radial-gradient(ellipse 55% 45% at 85% 80%, rgba(30, 58, 138, 0.4) 0%, transparent 60%),
                linear-gradient(165deg, #050B26 0%, #0A1647 55%, #0B1B5C 100%);
        }

        /* ---------- Title / display typography ---------- */
        .title-display {
            font-family: var(--font-display);
            letter-spacing: -0.005em;
            line-height: 1;
        }
        .title-underline {
            display: inline-block;
            height: 3px;
            background: linear-gradient(90deg,
                rgba(255, 255, 255, 0.95) 0%,
                rgba(127, 200, 248, 0.85) 40%,
                rgba(127, 200, 248, 0) 100%);
            border-radius: 2px;
            box-shadow: 0 0 18px rgba(127, 200, 248, 0.55);
        }

        /* ---------- Eyebrow chip ---------- */
        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            padding: 0.4rem 0.85rem;
            border-radius: 9999px;
            background: rgba(127, 200, 248, 0.08);
            border: 1px solid rgba(127, 200, 248, 0.35);
            color: var(--c-accent);
            font-weight: 700;
            font-size: 0.72rem;
            letter-spacing: 0.12em;
            text-transform: uppercase;
        }
        .eyebrow::before {
            content: "";
            width: 6px; height: 6px;
            border-radius: 9999px;
            background: var(--c-accent);
            box-shadow: 0 0 10px var(--c-accent);
        }

        /* ---------- Meta row (date, location, read time) ---------- */
        .meta-pill {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            padding: 0.4rem 0.85rem;
            border-radius: 9999px;
            background: rgba(184, 220, 251, 0.06);
            border: 1px solid rgba(127, 200, 248, 0.18);
            color: rgba(255, 255, 255, 0.85);
            font-size: 0.78rem;
            font-weight: 600;
        }
        .meta-pill svg { color: var(--c-accent); }

        /* ---------- Image frame (re-used pattern) ---------- */
        .img-frame {
            position: relative;
            border-radius: 18px;
            overflow: hidden;
            border: 1.5px solid rgba(127, 200, 248, 0.22);
            background: linear-gradient(180deg, #0B1640 0%, #060F33 100%);
            box-shadow:
                0 24px 60px rgba(0, 0, 0, 0.4),
                0 0 0 1px rgba(255, 255, 255, 0.03) inset;
        }
        .img-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }
        .img-frame .placeholder {
            width: 100%;
            display: flex; align-items: center; justify-content: center;
            color: rgba(184, 220, 251, 0.55);
            font-family: var(--font-display);
            font-size: 0.85rem;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            position: relative;
        }
        .img-frame .placeholder-art {
            position: absolute; inset: 0;
            opacity: 0.4;
            pointer-events: none;
        }
        .img-frame.is-hero { aspect-ratio: 16/9; }
        .img-frame.is-hero .placeholder { aspect-ratio: 16/9; }
        .img-frame.is-wide { aspect-ratio: 16/9; }
        .img-frame.is-wide .placeholder { aspect-ratio: 16/9; }
        .img-frame.is-square { aspect-ratio: 1/1; }
        .img-frame.is-square .placeholder { aspect-ratio: 1/1; }
        .img-frame.is-portrait { aspect-ratio: 3/4; }
        .img-frame.is-portrait .placeholder { aspect-ratio: 3/4; }
        .img-frame.is-clickable { cursor: zoom-in; transition: transform 0.3s ease; }
        .img-frame.is-clickable:hover { transform: translateY(-2px); }

        .img-caption {
            display: block;
            margin-top: 0.7rem;
            color: rgba(184, 220, 251, 0.8);
            font-size: 0.85rem;
            font-weight: 500;
            line-height: 1.5;
            font-style: italic;
        }

        /* ---------- Article prose ---------- */
        .prose {
            color: rgba(255, 255, 255, 0.88);
            font-weight: 500;
            line-height: 1.75;
            font-size: 1rem;
        }
        @media (min-width: 768px) {
            .prose { font-size: 1.05rem; line-height: 1.8; }
        }
        .prose p { margin: 0 0 1.1em 0; }
        .prose p:last-child { margin-bottom: 0; }
        .prose strong { color: #fff; font-weight: 700; }
        .prose a {
            color: var(--c-accent);
            border-bottom: 1px solid currentColor;
            transition: color 0.2s ease;
        }
        .prose a:hover { color: #fff; }
        .prose h2 {
            font-family: var(--font-display);
            color: #fff;
            font-size: 1.5rem;
            line-height: 1.2;
            margin: 2.2rem 0 1rem;
            letter-spacing: 0.005em;
            text-transform: uppercase;
        }
        @media (min-width: 768px) {
            .prose h2 { font-size: 1.85rem; }
        }
        .prose h3 {
            color: #fff;
            font-weight: 800;
            font-size: 1.15rem;
            margin: 1.8rem 0 0.6rem;
        }
        .prose ul, .prose ol {
            margin: 0 0 1.1em 0;
            padding: 0;
            list-style: none;
        }
        .prose ul li,
        .prose ol li {
            position: relative;
            padding: 0.3rem 0 0.3rem 1.5rem;
        }
        .prose ul li::before {
            content: "";
            position: absolute;
            left: 0.1rem;
            top: 0.9rem;
            width: 7px; height: 7px;
            border-radius: 9999px;
            background: var(--c-accent);
            box-shadow: 0 0 10px rgba(127, 200, 248, 0.6);
        }
        .prose ol { counter-reset: ol-counter; }
        .prose ol li {
            counter-increment: ol-counter;
        }
        .prose ol li::before {
            content: counter(ol-counter) ".";
            position: absolute;
            left: 0;
            top: 0.3rem;
            color: var(--c-accent);
            font-weight: 800;
            font-size: 0.95rem;
        }

        /* ---------- Pull-quote ---------- */
        .pull-quote {
            position: relative;
            margin: 2.4rem 0;
            padding: 1.6rem 1.8rem;
            border-left: 3px solid var(--c-accent);
            background: linear-gradient(90deg, rgba(127, 200, 248, 0.08) 0%, transparent 70%);
            border-radius: 0 14px 14px 0;
        }
        .pull-quote::before {
            content: "“";
            position: absolute;
            top: -0.6rem;
            left: 0.4rem;
            font-family: 'Archivo Black', serif;
            color: var(--c-accent);
            font-size: 3.5rem;
            line-height: 1;
            opacity: 0.35;
        }
        .pull-quote p {
            color: #fff;
            font-style: italic;
            font-size: 1.05rem;
            line-height: 1.6;
            font-weight: 500;
            margin: 0;
        }
        @media (min-width: 768px) {
            .pull-quote p { font-size: 1.2rem; }
        }
        .pull-quote-cite {
            margin-top: 0.85rem;
            color: var(--c-accent);
            font-size: 0.78rem;
            font-weight: 700;
            letter-spacing: 0.08em;
            text-transform: uppercase;
        }

        /* ---------- Two-column image+text block ---------- */
        .split-block {
            display: grid;
            grid-template-columns: 1fr;
            gap: 1.4rem;
            margin: 2rem 0;
            align-items: center;
        }
        @media (min-width: 768px) {
            .split-block {
                grid-template-columns: 5fr 6fr;
                gap: 2rem;
            }
            .split-block.reverse > :first-child { order: 2; }
        }

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

        /* ---------- Lightbox ---------- */
        .lightbox {
            position: fixed;
            inset: 0;
            z-index: 100;
            background: rgba(5, 11, 38, 0.92);
            backdrop-filter: blur(6px);
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.3s ease;
        }
        .lightbox.is-open {
            opacity: 1;
            pointer-events: auto;
        }
        .lightbox-content {
            position: relative;
            max-width: min(1100px, 92vw);
            max-height: 88vh;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.85rem;
        }
        .lightbox-img-wrap {
            position: relative;
            border-radius: 16px;
            overflow: hidden;
            border: 1px solid rgba(127, 200, 248, 0.3);
            background: #0a1340;
            max-height: 78vh;
            box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
        }
        .lightbox-img-wrap img,
        .lightbox-img-wrap .placeholder {
            max-width: min(1100px, 92vw);
            max-height: 78vh;
            display: block;
        }
        .lightbox-img-wrap .placeholder {
            width: 80vw;
            max-width: 800px;
            aspect-ratio: 16/9;
        }
        .lightbox-caption {
            color: rgba(255, 255, 255, 0.85);
            font-size: 0.9rem;
            text-align: center;
            max-width: min(900px, 90vw);
        }
        .lightbox-close,
        .lightbox-prev,
        .lightbox-next {
            position: absolute;
            background: rgba(11, 22, 64, 0.85);
            border: 1px solid rgba(127, 200, 248, 0.4);
            color: #fff;
            width: 44px; height: 44px;
            border-radius: 9999px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.25s ease;
            z-index: 2;
        }
        .lightbox-close:hover,
        .lightbox-prev:hover,
        .lightbox-next:hover {
            background: rgba(127, 200, 248, 0.18);
            border-color: var(--c-accent);
            color: var(--c-accent);
        }
        .lightbox-close { top: -18px; right: -18px; }
        .lightbox-prev  { top: 50%; left: -22px; transform: translateY(-50%); }
        .lightbox-next  { top: 50%; right: -22px; transform: translateY(-50%); }
        @media (max-width: 768px) {
            .lightbox-close { top: 0.5rem; right: 0.5rem; }
            .lightbox-prev  { left: 0.5rem; }
            .lightbox-next  { right: 0.5rem; }
        }
        .lightbox-counter {
            color: var(--c-accent);
            font-weight: 700;
            font-size: 0.78rem;
            letter-spacing: 0.1em;
        }

        /* ---------- Back link ---------- */
        .back-link {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            color: rgba(184, 220, 251, 0.85);
            font-weight: 600;
            font-size: 0.85rem;
            transition: all 0.25s ease;
        }
        .back-link:hover {
            color: var(--c-accent);
            gap: 0.75rem;
        }

        /* ---------- Animations ---------- */
        @keyframes riseIn {
            from { opacity: 0; transform: translateY(16px); }
            to   { opacity: 1; transform: translateY(0); }
        }
        @keyframes drawLine { from { transform: scaleX(0); } to { transform: scaleX(1); } }
        .anim-rise { opacity: 0; animation: riseIn 0.85s cubic-bezier(.2,.7,.2,1) forwards; }
        .anim-line { transform-origin: left center; transform: scaleX(0); animation: drawLine 0.9s cubic-bezier(.2,.7,.2,1) 0.35s forwards; }

        body.no-scroll { overflow: hidden; }

        .title-size { font-size: clamp(1.8rem, 4.8vw, 3.75rem); }
