:root {
    --accent-brown:#1c160c;
    --accent-cream:#fef9f4;
    --accent-cream-dark:#fff2e7;
    --accent-peach:#ffbb88;
    --accent-gold:#dba103;
    --accent-green:#0d8742;
    --accent-green-light:#0f9b4b;
    --accent-orange:#bb5816;
    --accent-orange-light:#e6752b;
    --border-radius:1.75rem;
    --brand-gold:var(--accent-gold);
    --brand-blue:var(--accent-brown);
    --brand-blue-dark:var(--accent-brown);
    --link-blue:var(--accent-orange);
}

.page-btt { display:none; grid-row:1; }
.is-stepped .barometer-image-list { display:none; width:100%; background:url('images/bg-counter.svg') 0 0 / contain no-repeat; }

@media screen {
    body { background:var(--accent-cream); }
    body[data-theme=light] { color-scheme:light !important; }
    body[data-theme=dark] { color-scheme:light !important; }

    h4, .h4 { color:inherit; font-weight:400; }
    p, li { font-weight:400; }

    .bg--cream { background-color:var(--accent-cream); color:var(--accent-brown); }
    .bg--cream-dark { background-color:var(--accent-cream-dark); color:var(--accent-brown); }
    .bg--peach { background-color:var(--accent-peach); color:var(--accent-brown); }
    .bg--gold { background-color:var(--accent-gold); color:white; }
    .bg--green { background-color:var(--accent-green); color:white; }
    .bg--orange { background-color:var(--accent-orange); }
    .bg--brown { color-scheme:dark; background-color:var(--accent-brown); color:var(--accent-cream); background-image:url('images/bg-brown-grain.jpg'); background-size:6rem; background-repeat:repeat; }
    .bg--brown.bg--full-bleed::before { background-image:inherit; background-repeat:inherit; background-size:inherit; }

    .bg--gradient-gold-peach { background:linear-gradient(90deg, var(--accent-gold) 0%, var(--accent-peach) 100%); }

    @media screen and (width >= 60em) {
        .page-btt { display:grid; }
    }

    .border { border:1px solid var(--accent-brown); }
    .border--white { border-color:white; }
    .border--cream { border-color:var(--accent-cream); }
    .border--gold { border-color:var(--accent-gold); }
    .border--green { border-color:var(--accent-green); }
    .border--green-light { border-color:var(--accent-green-light); }
    .border--orange { border-color:var(--accent-orange); }
    .border--orange-light { border-color:var(--accent-orange-light); }

    .text--gradient-peach { --gradient-from:var(--accent-peach); --gradient-to:white; }
    .text--gradient-gold-green { --gradient-from:var(--accent-gold); --gradient-to:var(--accent-green-light); }
    .text--gradient-gold-peach { --gradient-from:var(--accent-gold); --gradient-to:var(--accent-peach); }
    .text--gradient-orange-peach { --gradient-from:var(--accent-orange); --gradient-to:var(--accent-peach); }

    [class*="text--gradient-"] {
        background:linear-gradient(90deg, var(--gradient-from) 10%, var(--gradient-to) 50%, var(--gradient-from) 90%) 100% 0% / 200% 100%;
        background-clip:text;
        -webkit-background-clip:text;
        -webkit-text-fill-color:transparent;
        width:fit-content;
    }

    @media (prefers-reduced-motion:no-preference) {
        @keyframes gradient-shift {
            from { background-position:100% 0%; }
            to { background-position:0% 0%; }
        }
        @supports (animation-timeline:view()) {
            [class*="text--gradient-"] {
                animation:gradient-shift linear both;
                animation-timeline:view();
                animation-range:cover;
            }
        }
    }

    .text-uppercase { text-transform:uppercase; letter-spacing:0.1em; }

    .section-title { font-style:italic; }

    blockquote { margin:0; padding:0; }
    blockquote p:last-of-type { margin-bottom:0; display:inline; }
    blockquote cite { font-weight:300; display:block; line-height:1.5; margin-inline-start:0.5rem; text-indent:-0.5rem; margin-block:1rem 0.5rem; opacity:0.8; text-wrap:balance; }
    blockquote, blockquote p { font-family:var(--font-default); font-weight:700; }

    /* Header */
    .header-nav .weglot-language-switcher { --border-radius:4px; }
    .page-header--screen { margin-block-end:0; }
    .page-header--screen .page-title-wrapper { display:flex; flex-direction:column; justify-content:space-between; margin-block-start:-50vw; z-index:1; }
    .page-header--screen .page-title-wrapper p { color:inherit; }
    .page-header--screen .page-image { position:relative; z-index:0; }
    .page-header--screen .page-image:after { content:''; display:block; position:absolute; inset:0; background:linear-gradient(transparent 80%, var(--accent-brown) 100%); z-index:2; pointer-events:none; }
    .page-header--screen:has(.page-image) .page-image img { max-height:none; height:100%; }
    @media (prefers-reduced-motion:no-preference) {
        .page-header--screen .page-title, .page-header--screen .page-lede, .page-header--screen .dialog-item { animation:reveal cubic-bezier(0.25, 0.46, 0.45, 0.94) both; animation-duration:0.5s; animation-delay:calc(sibling-index() * 200ms); }
        .page-header--screen .page-header_excerpt { animation:reveal cubic-bezier(0.25, 0.46, 0.45, 0.94) both; animation-duration:0.5s; animation-delay:800ms; }
    }
    @keyframes reveal { from { opacity:0; transform:translateY(1rem); } to { opacity:1; transform:translateY(0); } }

    .page-image-glass { position:absolute; inset:0; width:100%; height:100%; display:block; z-index:1; pointer-events:none; opacity:0; transition:display allow-discrete 0s,opacity .5s .1s; }
    /* .page-image.has-glass img { visibility:hidden; } */
    .page-image.has-glass .page-image-glass { opacity:1; }

    figure[data-fluted-glass] { border-radius:var(--border-radius); overflow:clip; }
    .has-fluted-glass { position:relative; }
    .fluted-glass-canvas { position:absolute; inset:0; width:100%; height:100%; display:block; pointer-events:none; }
    .has-fluted-glass img { visibility:hidden; }

    @media not (prefers-reduced-motion) and (width >= 60em) {
        @supports (animation-timeline:view()) {
            .page-header--screen.animate .page-image-glass { animation:parallax linear forwards; animation-timeline:view(); animation-range:exit; }
        }
    }

    /* Stats Section */
    .social-hand { max-width:38rem; height:100vh; min-height:50rem; margin-inline:auto; z-index:2; position:relative; place-content:bottom; display:grid; place-content:flex-end; }
    .social-hand img { height:auto; max-width:100%; position:relative; left:10%; border-radius:0; }
    .section--stats { position:relative; z-index:1; }
    .section--stats .section-intro { position:relative; z-index:2f; }
    .stats-wrapper { position:relative; height:100vh; min-height:50rem; view-timeline:--storm block; --size:3.2; --fs:1; }
    .stats-wrapper::before { background-image:url(images/bg-brown-gradient.webp); background-repeat:no-repeat; background-position:bottom center; }
    .stats { list-style:none; margin:0; padding:0; position:absolute; inset:0; }
    .stat { position:absolute; top:var(--y); z-index:var(--z); max-width:min(20rem, 84vw); --fs:1.25; --u:clamp(.62rem, 1.1vw + .45rem, 1rem); will-change:transform; }
    .stat .num { display:block; }
    .stat .lbl { display:block; font:400 max(.9rem, calc(var(--size) * var(--fs) * var(--u) * .17))/1.25 var(--font-default); margin-top:.4em; max-width:32ch; color:inherit; }

    .t-serif .num { font:500 calc(var(--size) * var(--fs) * var(--u))/.85 var(--font-heading); }
    .t-serif-it .num { font:italic 400 calc(var(--size) * var(--fs) * var(--u))/.85 var(--font-heading); }
    .t-serif-it .lbl { font:italic 400 max(1.1rem, calc(var(--size) * var(--fs) * var(--u) * .24))/1.2 var(--font-heading); }
    .t-sans .num { font:700 calc(var(--size) * var(--fs) * var(--u))/.9 var(--font-default); margin-block-end:0.125em; }
    .t-label .num { font:700 calc(var(--size) * var(--fs) * var(--u))/1 var(--font-default); margin-block-end:0.25em; }
    .t-label .lbl { font-size:.8rem; font-weight:700; text-transform:uppercase; }
    .t-block { background:var(--c); color:var(--on) !important; padding:.35em .55em .5em; }
    .t-block .num { font:700 calc(var(--size) * var(--fs) * var(--u))/.9 var(--font-default); }

    .c-cream { --c:var(--accent-cream); --on:var(--accent-brown); color:var(--accent-cream); }
    .c-gold { --c:var(--accent-gold); --on:var(--accent-brown); color:var(--accent-gold); }
    .c-green { --c:var(--accent-green-light); --on:var(--accent-brown); color:var(--accent-green-light); }
    .c-peach { --c:var(--accent-peach); --on:var(--accent-brown); color:var(--accent-peach); }
    .c-orange { --c:var(--accent-orange); --on:var(--accent-brown); color:var(--accent-orange); }

    .a-l { left:var(--x); }                                       
    .a-c { left:var(--x); translate:-50% 0; text-align:center; }
    .a-r { right:var(--x); text-align:right; justify-items:flex-end; }                   

    @keyframes drift {
    from { transform:translate3d(0, calc(var(--speed) * 45vh), 0) scale(var(--s0)); }
    to   { transform:translate3d(0, calc(var(--speed) * -45vh), 0) scale(var(--s1)); }
    }

    @supports (animation-timeline:view()) {
    .stat {
        animation:drift linear both;
        animation-timeline:view();
        animation-range:cover;
    }
    }

    /* Grid view on small screens and for reduced motion */
    @media (prefers-reduced-motion:reduce), (width < 80em) {
    .stats-wrapper { height:auto; padding-block-end:4rem; }
    .stats-wrapper .fade,
    .stats-wrapper .social-hand { display:none; }
    .stats-wrapper .stats { position:static; display:grid; gap:2rem 1.5rem; grid-template-columns:repeat(auto-fill, minmax(max(14rem, calc((100% - 3rem) / 2)), 1fr)); max-width:68rem; margin:0 auto; padding-inline:16px; }
    .stats-wrapper .stat .num { display:block; font-family:var(--font-default); font-weight:700; font-size:clamp(2rem, 4vw + 1rem, 3rem); letter-spacing:0; font-style:normal; background-color:var(--c); color:var(--on); padding:1.25rem; }
    .stats-wrapper .stat .lbl { display:block; font-family:var(--font-default); font-weight:300; font-size:1rem; letter-spacing:0.05em; text-transform:none; color:var(--accent-cream); max-width:none; margin:0; padding:1.25rem; }
    .stats-wrapper .stat { position:static; animation:none; transform:none; translate:none; text-align:left; max-width:none; min-width:0; --size:3.2; --fs:1; border:2px solid var(--c); align-self:start; border-radius:var(--border-radius); overflow:clip; }
    .stats-wrapper .a-r { justify-items:normal; text-align:left; }
    }

    /* Content */
    .block--excerpt { max-width:20rem; }
    .block--excerpt::before { content:''; display:block; height:0.5rem; width:0.5rem; border-radius:50%; position:absolute; bottom:0; left:50%; transform:translateX(-50%); background-color:var(--accent-cream); }
    .block--excerpt::after { content:''; display:block; height:10rem; width:1px; border-right:1px solid var(--accent-cream); margin-inline:auto; margin-block-end:1lh; }

    .section--introduction { margin-block-start:var(--section-margin); }

    .block--diagram { display:grid; grid-template-columns:repeat(8,1fr); grid-template-rows:repeat(8,1fr); justify-content:center; align-items:center; gap:12%; aspect-ratio:1; padding:3rem; }
    .block--diagram .diagram-item { width:100%; aspect-ratio:1/1; border-width:0.25rem; border-radius:50%; display:grid; place-items:center; text-transform:uppercase; font-weight:bold; font-size:0.9rem; padding:1.25rem; }
    .block--diagram .diagram-item:nth-child(1) { grid-column:2 / span 5; grid-row:1 / span 5; position:relative; left:12%; top:3%; }
    .block--diagram .diagram-item:nth-child(1) p { position:relative; top:-8%; }
    .block--diagram .diagram-item:nth-child(2) { grid-column:1 / span 5; grid-row:4 / span 5; }
    .block--diagram .diagram-item:nth-child(2) p { position:relative; left:-8%; top:3%; }
    .block--diagram .diagram-item:nth-child(3) { grid-column:4 / span 5; grid-row:4 / span 5; }
    .block--diagram .diagram-item:nth-child(3) p { position:relative; right:-8%; top:3%; }
    .block--diagram .diagram-item p { margin:0; text-align:center; }

    .section--fade { background:linear-gradient(180deg, var(--accent-cream) 30%, #ffbb88 100%); }

    .image--nitesh { max-width:32rem; margin-inline:auto; }
    .section--barometer { overflow:clip; view-timeline-name:--barometer; padding-block-start:calc(var(--section-padding)*1.5); }
    .section--barometer img { border-radius:0; width:100%; }
    .section--barometer::after { content:''; position:absolute; inset:0; z-index:-1; background:url('images/bg-lensflare.webp') 0 0 / cover no-repeat; pointer-events:none; }
    .section--barometer::before { content:''; display:block; position:absolute; left:0; right:0; bottom:0; top:calc(100% - 40rem); background:linear-gradient(transparent 0%, var(--accent-cream) 100%); z-index:1; }


    .fade--barometer { position:absolute; left:0; right:0; top:0; height:40vw; z-index:1; pointer-events:none; background:linear-gradient(180deg, #1c1408 3%, transparent 100%); }
    /* .grid--barometer { border-top:2px solid var(--accent-cream); } */
    .barometer-stat-list li { font-size:clamp(1.125rem, 1.125vw + 0.75rem, 1.5rem); font-weight:200; }
    .is-stepped .barometer-stat-list li { transition:opacity .4s ease; color:var(--accent-cream); margin-block-start:0.25em; }
    .is-stepped .barometer-stat-list li.is-active { opacity:1; }
    .is-stepped .barometer-image-list figure { grid-area:1 / 1; opacity:0; transition:opacity .4s ease; }
    .is-stepped .barometer-image-list figure.is-active { opacity:1; }
    @media (prefers-reduced-motion:reduce) {
        .is-stepped .barometer-stat-list li, .is-stepped .barometer-image-list figure { transition:none; }
    }
    @media only screen and (width >= 48em) {
        .barometer-stat-wrapper { padding-inline:1.5rem; }
    }

    .section--transition p { position:relative; z-index:1; overflow: visible; margin-block-end:25rem; }

    .section--ai-for-good { margin-block-start:-12rem; }

    .section--future { background:url(images/bg-lensflare2.webp) center center / cover no-repeat; }

    /* This story is locked to light mode (see story.js) — the toggle would let
    people flip the switch to no visible effect, so hide it here instead. */
    .footer--utils-lightdark { display:none; }

    .form-subscribe .flex-grow {
        flex:1 1 auto;
        min-width:0;
    }

    .form-subscribe input[type="email"] {
        width:100%;
        box-sizing:border-box;
    }

    @media only screen and (max-width:26em) {
        .form-subscribe .d-flex {
            flex-direction:column;
            align-items:stretch;
        }
    }

    @media only screen and (width >= 48em) {
        .section--stats, .section--barometer, .section--fade { padding-inline:0; }

        .image--nitesh-lab { width:calc(100% + 20vw); transform:translateX(-5vw); }
        @supports (animation-timeline:view()) {
            @media (prefers-reduced-motion:no-preference) {
                .image--nitesh-lab { animation:nitesh-lab-shift linear both; animation-timeline:view(); animation-range:cover; }
            }
        }
        @keyframes nitesh-lab-shift { to { transform:translateX(-15vw); } }

        .block--diagram .diagram-item { font-size:1.125rem; }
        .block--identify { margin-inline:4rem; }
    }

    @media only screen and (width >= 60em) {
        .page-header--screen .page-title-wrapper { padding-block-start:15rem; height:100%; margin-block-start:0; }
        .page-header--screen .page-lede,
        .page-header--screen .page-header_excerpt { width:55%; max-width:40rem; }
        .page-header--screen .page-image { height:100%; }
        .page-header--screen .page-image::after { display:none; }
        @media (prefers-reduced-motion:no-preference) {
            @keyframes scrub-down { 
            from { transform:translateY(-3rem); }
            to { transform:translateY(3rem); }
            }
            @supports (animation-timeline:view()) {
                .animate--scrub-down {
                    animation-range:cover;
                    transform:translateY(-3rem);
                    animation-name:scrub-down;
                }
            }
        }
        .block--diagram .diagram-item { font-size:1.25rem; }
        .barometer-stat-wrapper { border-right:1px solid var(--accent-cream); padding-inline:6vw; }
        .is-stepped .barometer-stat-list li { opacity:.6; }
        .is-stepped .barometer-image-list { display:grid; margin-block-end:4rem; }
        .section--transition p::before { content:''; display:block; position:absolute; left:0; bottom:100%; right:50%; height:5rem; border-right:1px solid var(--accent-cream); }
    }

    @media only screen and (width >= 80em) {
        .page-header--screen .page-title-wrapper { padding-block-start:12rem; }
    }
    /* ?embed URL parameter — see includes/_three_import.html */
    .is-embed .site-header,
    .is-embed .page-title-wrapper { display:none !important; }
}

@media print {
    .section { margin-block-start:1em; }
    .page-image-glass, .fluted-glass-canvas, .social-hand { display:none; }

    .bg--peach, .bg--gold, .bg--green, .bg--orange { background-color:var(--accent-cream) !important; color:var(--accent-brown) !important; }
}