/* TPR Unified compositional utilities. Keep these single-purpose. */
.tpr-flow > * + * {
    margin-block-start: var(--tpr-flow-space, var(--tpr-space-5));
}

.tpr-stack {
    display: flex;
    flex-direction: column;
    gap: var(--tpr-stack-gap, var(--tpr-space-5));
}

.tpr-cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--tpr-cluster-gap, var(--tpr-space-4));
}

.tpr-cluster--between {
    justify-content: space-between;
}

.tpr-grid {
    display: grid;
    grid-template-columns: repeat(var(--tpr-grid-columns, 3), minmax(0, 1fr));
    gap: var(--tpr-grid-gap);
}

.tpr-grid--2 {
    --tpr-grid-columns: 2;
}

.tpr-grid--3 {
    --tpr-grid-columns: 3;
}

.tpr-grid--4 {
    --tpr-grid-columns: 4;
}

.tpr-grid--auto {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.tpr-surface {
    background: var(--tpr-surface);
}

.tpr-surface--paper {
    background: var(--tpr-section-paper);
}

.tpr-surface--dark {
    background: var(--tpr-section-header);
    color: var(--tpr-white);
}

.tpr-text-accent {
    color: var(--tpr-accent-strong) !important;
}

.tpr-text-muted {
    color: var(--tpr-muted) !important;
}

.tpr-text-center {
    text-align: center;
}

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

.tpr-display {
    font-family: var(--tpr-font-display);
    font-size: var(--tpr-text-4xl);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 0.9;
}

.tpr-measure {
    max-width: 68ch;
}

.tpr-measure--narrow {
    max-width: 48ch;
}

.tpr-rounded {
    border-radius: var(--tpr-radius-md);
}

.tpr-shadow {
    box-shadow: var(--tpr-shadow-md);
}

.tpr-bleed {
    width: 100vw;
    margin-inline: calc(50% - 50vw);
}

.tpr-aspect-video {
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.tpr-aspect-card {
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.tpr-aspect-square {
    aspect-ratio: 1;
    object-fit: cover;
}

.tpr-mt-0 {
    margin-top: 0 !important;
}

.tpr-mb-0 {
    margin-bottom: 0 !important;
}

.tpr-hide-mobile {
    display: initial;
}

.tpr-show-mobile {
    display: none;
}

@media (max-width: 1000px) {
    .tpr-grid--4 {
        --tpr-grid-columns: 2;
    }
}

@media (max-width: 720px) {
    .tpr-grid,
    .tpr-grid--2,
    .tpr-grid--3,
    .tpr-grid--4 {
        --tpr-grid-columns: 1;
    }

    .tpr-hide-mobile {
        display: none !important;
    }

    .tpr-show-mobile {
        display: initial;
    }
}


/* Layout primitives */
.tpr-container{width:min(calc(100% - (var(--tpr-gutter)*2)),var(--tpr-shell));margin-inline:auto}.tpr-container--wide{max-width:var(--tpr-shell-wide)}.tpr-container--content{max-width:var(--tpr-content)}
.tpr-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(1.5rem,5vw,5rem)}
.tpr-sidebar{display:grid;grid-template-columns:minmax(220px,.35fr) minmax(0,1fr);gap:var(--tpr-grid-gap);align-items:start}
.tpr-cover{display:grid;min-height:min(720px,85vh);place-items:center;padding-block:var(--tpr-space-16)}
.tpr-pad-4{padding:var(--tpr-space-4)!important}.tpr-pad-6{padding:var(--tpr-space-6)!important}.tpr-pad-8{padding:var(--tpr-space-8)!important}.tpr-gap-2{gap:var(--tpr-space-2)!important}.tpr-gap-4{gap:var(--tpr-space-4)!important}.tpr-gap-8{gap:var(--tpr-space-8)!important}
.tpr-motion-fade{animation:tpr-fade var(--tpr-duration-slow) var(--tpr-ease) both}.tpr-motion-lift{transition:transform var(--tpr-duration) var(--tpr-ease),box-shadow var(--tpr-duration) var(--tpr-ease)}.tpr-motion-lift:hover{transform:translateY(-4px);box-shadow:var(--tpr-shadow-md)}.tpr-motion-scale{transition:transform var(--tpr-duration) var(--tpr-ease)}.tpr-motion-scale:hover{transform:scale(1.02)}@keyframes tpr-fade{from{opacity:0}to{opacity:1}}
@media(max-width:780px){.tpr-split,.tpr-sidebar{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.tpr-motion-fade,.tpr-spinner{animation:none}.tpr-motion-lift,.tpr-motion-scale{transition:none}.tpr-motion-lift:hover,.tpr-motion-scale:hover{transform:none}}
