
        /* ===== CASE STUDY - editorial project story, not a blog article ===== */
        .cs-main { padding: calc(var(--nav-height, 80px) + 40px) clamp(1.25rem, 4vw, 2.5rem) 0; }
        .cs-article { max-width: 1200px; margin: 0 auto; }

        .cs-crumb { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 1.6px; font-weight: 700; color: #808080; margin-bottom: 2.5rem; }
        .cs-crumb a { color: #808080; text-decoration: none; transition: color 0.3s ease; }
        .cs-crumb a:hover { color: var(--brand-green); }
        .cs-crumb span { color: var(--brand-green); }

        .cs-head { max-width: 950px; margin-bottom: 2.5rem; }
        .cs-eyebrow { display: inline-block; font-size: 0.7rem; font-weight: 900; text-transform: uppercase; letter-spacing: 2.5px; color: var(--brand-green); margin-bottom: 1.1rem; }
        .cs-article h1 { font-size: clamp(2.1rem, 6vw, 4.4rem); font-weight: 900; line-height: 1.02; letter-spacing: -0.03em; text-transform: uppercase; color: #fff; margin: 0; transition: color 0.4s ease; }

        .cs-hero { margin: 0 0 0; border-radius: 20px; overflow: hidden; border: 1px solid rgba(255,255,255,0.07); background: #0d0d0d; }
        .cs-hero img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }

        /* facts strip */
        .cs-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr)); gap: 1px; margin: 0 0 4.5rem; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.08); border-top: none; border-radius: 0 0 16px 16px; overflow: hidden; }
        .cs-fact { background: #0b0b0b; padding: 1.4rem 1.5rem; transition: background-color 0.4s ease; }
        .cs-fact dt { font-size: 0.64rem; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; color: var(--brand-green); margin-bottom: 0.45rem; }
        .cs-fact dd { margin: 0; font-size: 0.98rem; font-weight: 600; color: #fff; line-height: 1.4; transition: color 0.4s ease; }

        .cs-block { max-width: 780px; margin: 0 auto 3.5rem; }
        .cs-block h2 { font-size: 0.75rem; font-weight: 900; text-transform: uppercase; letter-spacing: 2.5px; color: var(--brand-green); margin: 0 0 1.2rem; padding-bottom: 0.7rem; border-bottom: 1px solid rgba(255,255,255,0.09); }
        .cs-block p { font-size: 1.06rem; line-height: 1.85; color: var(--text-main); margin: 0 0 1.2rem; transition: color 0.4s ease; }
        .cs-block p:last-child { margin-bottom: 0; }
        .cs-block a { color: var(--brand-green); }

        .cs-deliver { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1.1rem; }
        .cs-deliver li { font-size: 1rem; line-height: 1.7; color: var(--text-main); padding-left: 1.1rem; border-left: 2px solid rgba(166,207,67,0.35); transition: color 0.4s ease; }
        .cs-deliver strong { display: block; font-size: 0.66rem; font-weight: 900; text-transform: uppercase; letter-spacing: 1.8px; color: var(--brand-green); margin-bottom: 0.35rem; }

        /* gallery breaks out wider than the prose column */
        .cs-block .cs-gallery { max-width: none; }
        .cs-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 1.1rem; }
        .cs-gallery figure { margin: 0; border-radius: 14px; overflow: hidden; border: 1px solid rgba(255,255,255,0.06); background: #0d0d0d; }
        .cs-gallery img { display: block; width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform 0.7s cubic-bezier(0.25,0.46,0.45,0.94); }
        .cs-gallery figure:hover img { transform: scale(1.05); }

        .cs-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.7rem; }
        .cs-chips a { display: inline-block; padding: 0.55rem 1.15rem; border: 1px solid rgba(255,255,255,0.14); border-radius: 50px; color: var(--text-main); text-decoration: none; font-size: 0.88rem; font-weight: 600; transition: all 0.3s ease; }
        .cs-chips a:hover { border-color: var(--brand-green); color: var(--brand-green); transform: translateY(-2px); }

        .cs-rel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 1.5rem; }
        .cs-rel-card { display: flex; flex-direction: column; text-decoration: none; border-radius: 14px; overflow: hidden; background: var(--bg-card, #111); border: 1px solid rgba(255,255,255,0.06); transition: transform 0.4s ease, border-color 0.4s ease; }
        .cs-rel-card:hover { transform: translateY(-6px); border-color: rgba(166,207,67,0.4); }
        .cs-rel-card img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }
        .cs-rel-cat { font-size: 0.62rem; font-weight: 900; text-transform: uppercase; letter-spacing: 1.6px; color: var(--brand-green); padding: 1.1rem 1.2rem 0.4rem; }
        .cs-rel-title { font-size: 1rem; font-weight: 700; color: #fff; padding: 0 1.2rem 1.3rem; line-height: 1.35; transition: color 0.4s ease; }

        .cs-cta { max-width: 780px; margin: 0 auto 3rem; text-align: center; padding: 3rem 2rem; border: 1px solid rgba(166,207,67,0.28); border-radius: 20px; background: linear-gradient(145deg, rgba(166,207,67,0.05), transparent); }
        .cs-cta h2 { font-size: clamp(1.6rem, 3.5vw, 2.3rem); font-weight: 900; text-transform: uppercase; color: #fff; margin: 0 0 0.8rem; border: none; padding: 0; letter-spacing: -0.01em; }
        .cs-cta p { color: var(--text-muted, #888); margin: 0 0 2rem; font-size: 1rem; }

        .cs-nav { max-width: 780px; margin: 0 auto; display: flex; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; padding-top: 2.5rem; border-top: 1px solid rgba(255,255,255,0.08); }
        .cs-nav a { max-width: 46%; color: #888; text-decoration: none; font-size: 0.92rem; font-weight: 600; transition: color 0.3s ease; }
        .cs-nav a:hover { color: var(--brand-green); }
        .cs-nav a span { display: block; font-size: 0.64rem; font-weight: 900; text-transform: uppercase; letter-spacing: 1.8px; color: var(--brand-green); margin-bottom: 0.4rem; }
        .cs-nav .csn-next { text-align: right; margin-left: auto; }

        .cs-back { display: inline-block; max-width: 780px; margin: 2.5rem auto 0; color: var(--brand-green); font-weight: 900; text-transform: uppercase; font-size: 0.76rem; letter-spacing: 1.8px; text-decoration: underline; text-underline-offset: 5px; }

        body.light-theme .cs-article h1, body.light-theme .cs-fact dd,
        body.light-theme .cs-rel-title, body.light-theme .cs-cta h2 { color: #111827; }
        body.light-theme .cs-fact { background: #f9fafb; }
        body.light-theme .cs-hero, body.light-theme .cs-gallery figure { background: #f4f4f5; }
        body.light-theme .cs-crumb, body.light-theme .cs-crumb a, body.light-theme .cs-nav a { color: #4b5563; }

        @media (max-width: 768px) {
            .cs-main { padding-top: calc(var(--nav-height, 80px) + 20px); }
            .cs-facts { border-radius: 0 0 12px 12px; }
            .cs-nav a { max-width: 100%; }
            .cs-nav .csn-next { text-align: left; }
        }
    
    /* Keyboard skip link: visually hidden until focused, then pinned top-left.
       Without it, every keyboard user tabs through the whole nav on every page. */
    .skip-link { position: absolute; left: -9999px; top: 0; z-index: 100001;
        background: var(--brand-green, #A6CF43); color: #000; font-weight: 900;
        padding: 12px 20px; border-radius: 0 0 8px 0; text-decoration: none;
        text-transform: uppercase; letter-spacing: 1px; font-size: 0.85rem; }
    .skip-link:focus { left: 0; outline: 3px solid #fff; outline-offset: -3px; }
