@keyframes rotateSquare {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.intro-pattern-overlay {
    background-image: repeating-linear-gradient(45deg, transparent, transparent 20px, currentColor 20px, currentColor 40px);
    opacity: 0.03;
    top: -20%;
    left: -30%;
    width: 100%;
    height: 100%;
    animation: rotateSquare 20s linear infinite;
}

.intro-pattern-content {
    max-width: 56rem;
}

.frame-scroll-container { -webkit-overflow-scrolling: touch; }

/* BS (прев’ю + експорт): картки ~вдвічі вужчі за w-72; TW без змін */
.about-frame-strip--bs .frame-scroll-container > li:not([aria-hidden="true"]),
#section-preview-root.section-preview--bootstrap .frame-scroll-container > li:not([aria-hidden="true"]),
[data-preview-framework="bootstrap"] .frame-scroll-container > li:not([aria-hidden="true"]) {
    flex: 0 0 16rem !important;
    width: 16rem !important;
    max-width: min(16rem, 85vw) !important;
}

.frame-sq-12 { width: 3rem; height: 3rem; flex-shrink: 0; }

.frame-card-hover {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.frame-card-hover:hover {
    transform: translateY(-0.25rem);
    box-shadow: var(--bs-box-shadow);
}

.frame-icon-hover {
    transition: transform 0.2s ease;
}

.frame-card-hover:hover .frame-icon-hover {
    transform: scale(1.05);
}

.frame-title-hover {
    transition: color 0.2s ease;
}

.frame-card-hover:hover .frame-title-hover {
    color: var(--bs-primary);
}

.values-circle-block__card {
    max-width: 24rem;
}

.values-circle-block__item {
    max-width: 24rem;
}

.values-circle-block__thumb {
    width: 5rem;
    height: 5rem;
}

.staircase-bauhaus-timeline__triangle-tr {
    width: 20rem;
    height: 20rem;
    clip-path: polygon(100% 0, 100% 100%, 0 0);
}

.staircase-bauhaus-timeline__triangle-bl {
    width: 14rem;
    height: 14rem;
    clip-path: polygon(0 100%, 100% 100%, 0 0);
}

.staircase-bauhaus-timeline__accent {
    width: 1.5rem;
    height: 8rem;
    top: 50%;
    left: 25%;
}

.staircase-bauhaus-timeline__sidebar {
    width: 36px;
}

.staircase-bauhaus-timeline__sidebar-title {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    letter-spacing: 0.25em;
}

.staircase-bauhaus-timeline__sidebar-line {
    width: 1px;
    min-height: 120px;
}

.staircase-bauhaus-timeline__stairs > * + * {
    margin-top: 1.5rem;
}

.staircase-bauhaus-timeline__stairs [data-indent] {
    margin-left: calc(var(--staircase-bauhaus-timeline__indent, 0) * 1px);
}

.staircase-bauhaus-timeline__number {
    width: 3.5rem;
    height: 3.5rem;
}

.staircase-bauhaus-timeline__connector {
    left: 1.75rem;
    top: 3.5rem;
    width: 1px;
    height: calc(100% + 1.5rem);
}

@keyframes staircase-bauhaus-timeline__draw {
    from { height: 0; }
    to { height: 100%; }
}

.staircase-bauhaus-timeline__line-animated {
    animation: staircase-bauhaus-timeline__draw 1.2s ease forwards;
}

.staircase-bauhaus-timeline__min-shrink {
  min-width: 0;
}

.diagonal-zigzag-split__portrait {
    width: 8rem;
    height: 8rem;
}

.diagonal-zigzag-split__portrait--tilt-left {
    transform: rotate(-5deg);
}

.diagonal-zigzag-split__portrait--tilt-right {
    transform: rotate(5deg);
}

.diagonal-zigzag-split__portrait:hover {
    transform: rotate(0);
}

.diagonal-zigzag-split__beacon {
    width: 2rem;
    height: 2rem;
    bottom: -0.25rem;
    right: -0.25rem;
}

.diagonal-zigzag-split__beacon-dot {
    width: 0.75rem;
    height: 0.75rem;
}

.diagonal-zigzag-split__frame {
    width: 4rem;
    height: 4rem;
}

.diagonal-zigzag-split__frame--tl {
    top: 0;
    left: 0;
}

.diagonal-zigzag-split__frame--br {
    bottom: 0;
    right: 0;
}

.diagonal-zigzag-split__frame--rotate-45 {
    transform: rotate(45deg);
}

.diagonal-zigzag-split__frame--rotate-minus-45 {
    transform: rotate(-45deg);
}

.diagonal-zigzag-split__wash {
    width: 8rem;
}

.diagonal-zigzag-split__corner {
    width: 5rem;
    height: 5rem;
}

.diagonal-zigzag-split__min-shrink {
    min-width: 0;
}

@media (min-width: 768px) {
    .diagonal-zigzag-split__band--reverse {
        flex-direction: row-reverse;
    }

    .diagonal-zigzag-split__portrait {
        width: 10rem;
        height: 10rem;
    }
}

