/* protocol hero — layout only, theme-free */
.protocol-hero__glow {
    width: 40rem;
    height: 40rem;
    transform: translate(40%, -45%);
    filter: blur(6rem);
}

.protocol-hero__band {
    min-height: min(80vh, 52rem);
    padding: 6rem 1.5rem 4rem;
}

@media (min-width: 768px) {
    .protocol-hero__band {
        padding-top: 10rem;
        padding-bottom: 8rem;
    }
}

@media (min-width: 1024px) {
    .protocol-hero__band {
        padding-left: 15%;
        padding-right: 15%;
    }
}

.protocol-hero__inner {
    max-width: 64rem;
}

.protocol-hero__kicker {
    font-size: 0.875rem;
    line-height: 1.25rem;
    letter-spacing: 0.1em;
}

.protocol-hero__title {
    font-size: clamp(2.5rem, 8vw, 5rem);
    line-height: 0.9;
    letter-spacing: -0.05em;
}

.protocol-hero__lead {
    font-size: 1.25rem;
    line-height: 1.625;
}

@media (min-width: 768px) {
    .protocol-hero__lead {
        font-size: 1.5rem;
    }
}

.protocol-hero__stamp {
    width: 100%;
    border-left-width: 6px;
    border-left-style: solid;
    box-shadow: 4px 4px 0 0;
}

@media (min-width: 768px) {
    .protocol-hero__stamp {
        width: auto;
    }
}

.protocol-hero__stamp-label {
    font-size: 0.75rem;
    line-height: 1rem;
    letter-spacing: 0.1em;
}

.protocol-hero__stamp-value {
    font-size: 1.5rem;
    line-height: 2rem;
}

/* protocol pillars — layout only, theme-free */
.protocol-pillars__band {
    padding: 4rem 1.5rem;
}

@media (min-width: 768px) {
    .protocol-pillars__band {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }
}

@media (min-width: 1024px) {
    .protocol-pillars__band {
        padding-left: 15%;
        padding-right: 15%;
    }
}

.protocol-pillars__list {
    max-width: 72rem;
}

.protocol-pillars__item {
    padding: 2rem;
}

.protocol-pillars__item + .protocol-pillars__item {
    border-top-width: 1px;
    border-top-style: solid;
}

@media (min-width: 768px) {
    .protocol-pillars__item {
        padding: 3rem;
    }
}

.protocol-pillars__icon {
    width: 4rem;
    height: 4rem;
}

.protocol-pillars__text {
    line-height: 1.625;
}

/* protocol loop — layout, sizes and reveal motion only, theme-free */
.protocol-loop__panel {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.protocol-loop__band {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

@media (min-width: 1024px) {
    .protocol-loop__band {
        padding-left: 15%;
        padding-right: 15%;
    }
}

.protocol-loop__stat-label {
    font-size: 0.75rem;
    line-height: 1rem;
    letter-spacing: 0.1em;
}

.protocol-loop__frame {
    width: 100%;
    height: 100%;
    transform: translate(1rem, 1rem);
    transition: transform 300ms ease;
}

.protocol-loop__reveal--left:hover .protocol-loop__frame {
    transform: translate(0.5rem, 0.5rem);
}

.protocol-loop__img {
    height: 500px;
    object-fit: cover;
}

.protocol-loop__reveal {
    transition: opacity 800ms ease, transform 800ms ease;
}

.protocol-loop__reveal.is-pending {
    opacity: 0;
}

.protocol-loop__reveal--right.is-pending {
    transform: translateX(-3rem);
}

.protocol-loop__reveal--left.is-pending {
    transform: translateX(3rem);
}

@media (prefers-reduced-motion: reduce) {
    .protocol-loop__reveal,
    .protocol-loop__frame {
        transition: none;
    }
}

.protocol-loop__title {
    font-size: 2.25rem;
    line-height: 1;
}

@media (min-width: 768px) {
    .protocol-loop__title {
        font-size: 3rem;
    }
}

.protocol-loop__text {
    line-height: 1.625;
}

/* protocol metrics — layout and type sizes only, theme-free */
.protocol-metrics {
    padding: 6rem 1.5rem;
}

@media (min-width: 1024px) {
    .protocol-metrics {
        padding-left: 15%;
        padding-right: 15%;
    }
}

.protocol-metrics__inner {
    max-width: 56rem;
}

.protocol-metrics__title {
    border-bottom-width: 8px;
    border-bottom-style: solid;
}

.protocol-metrics__th {
    font-size: 0.75rem;
    line-height: 1.25;
    letter-spacing: 0.1em;
    vertical-align: bottom;
}

.protocol-metrics__td {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

@media (min-width: 768px) {
    .protocol-metrics__td {
        font-size: 1rem;
        line-height: 1.5rem;
    }
}

.protocol-metrics__note {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

/* protocol audit — layout, sizes and button motion only, theme-free */
.protocol-audit {
    padding: 0 1.5rem 6rem;
}

@media (min-width: 1024px) {
    .protocol-audit {
        padding-left: 15%;
        padding-right: 15%;
    }
}

.protocol-audit__panel {
    padding: 3rem;
}

@media (min-width: 768px) {
    .protocol-audit__panel {
        padding: 5rem;
    }
}

.protocol-audit__copy {
    max-width: 36rem;
}

.protocol-audit__btn {
    padding: 1.25rem 2.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    letter-spacing: 0.1em;
    box-shadow: 8px 8px 0 0;
    transition: transform 300ms ease, box-shadow 300ms ease, background-color 300ms ease;
}

.protocol-audit__btn:hover {
    box-shadow: 0 0 0 0;
    transform: translate(0.5rem, 0.5rem);
}

.protocol-audit__mark {
    font-size: 25rem;
    line-height: 1;
    opacity: 0.05;
    transform: translate(5rem, 5rem);
    pointer-events: none;
    user-select: none;
}

@media (prefers-reduced-motion: reduce) {
    .protocol-audit__btn {
        transition: none;
    }
}

.protocol-audit__text {
    line-height: 1.625;
}

.protocol-audit__title {
    font-size: 2.25rem;
    line-height: 1.25;
}

/* protocol trust strip — layout and type only, theme-free */
.protocol-trust {
    padding: 3rem 1.5rem;
}

@media (min-width: 1024px) {
    .protocol-trust {
        padding-left: 15%;
        padding-right: 15%;
    }
}

.protocol-trust__inner {
    max-width: 72rem;
    font-size: 0.75rem;
    line-height: 1rem;
    letter-spacing: 0.2em;
}

