@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;
}

.services__tile--lift {
  transition: transform 0.3s ease;
}

.services__tile--lift:hover {
  transform: scale(1.05);
}

.services__cta--lift {
  transition: transform 0.3s ease;
}

.services__cta--lift:hover {
  transform: scale(1.05);
}

.services__marker--offset {
  top: 0.5rem;
  inset-inline-end: 0.5rem;
}

.services__marker--reveal {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.services__tile:hover .services__marker--reveal {
  opacity: 1;
}

/* process natgeo — accent line, large icon cells (no colors) */
.process-natgeo__accent-line {
    width: 2.5rem;
    flex-shrink: 0;
}
.process-natgeo__icon-cell {
    aspect-ratio: 1 / 1;
    width: 8rem;
    height: 8rem;
    margin-inline: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.process-natgeo__icons {
    min-width: 0;
}
.process-natgeo__icons > * {
    min-width: 0;
}
.process-natgeo__icon {
    font-size: 3rem !important;
    line-height: 0 !important;
    width: auto;
    height: auto;
    display: inline-block;
}
@media (min-width: 768px) {
    .process-natgeo__icon {
        font-size: 3.75rem !important;
    }
}

/* Layout / motion only — colors stay in Blade utilities (CLAUDE.md) */

.perks-fourcol-glow__blob--a {
    position: absolute;
    width: 8rem;
    height: 8rem;
    top: 5rem;
    left: 2.5rem;
    filter: blur(64px);
}

.perks-fourcol-glow__blob--b {
    position: absolute;
    width: 10rem;
    height: 10rem;
    bottom: 5rem;
    right: 2.5rem;
    filter: blur(64px);
}

.perks-fourcol-glow__badge {
    position: absolute;
    top: -0.5rem;
    right: -0.5rem;
    width: 2rem;
    height: 2rem;
}

.perks-fourcol-glow__thumb {
    width: 5rem;
    height: 5rem;
}

.perks-fourcol-glow__card,
.perks-fourcol-glow__thumb {
    transition: transform 0.3s ease;
}

.perks-fourcol-glow__overlay {
    transition: opacity 0.5s ease;
}

.perks-fourcol-glow__accent {
    transition: opacity 0.5s ease;
}

@media (min-width: 640px) {
    .perks-fourcol-glow__group:hover .perks-fourcol-glow__card {
        transform: scale(1.05);
    }

    .perks-fourcol-glow__group:hover .perks-fourcol-glow__thumb {
        transform: scale(1.1);
    }
}

.perks-fourcol-glow__group:hover .perks-fourcol-glow__overlay {
    opacity: 1;
}

.perks-fourcol-glow__group:hover .perks-fourcol-glow__accent {
    opacity: 1;
}


.invite-boost__section {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

@keyframes invite-boost-flare-throb-cycle {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}
.invite-boost__flare--throb {
    animation: invite-boost-flare-throb-cycle 2s cubic-bezier(.4,0,.6,1) infinite;
}

@keyframes invite-boost-flare-rebound-cycle {
    0%, 100% { transform: translateY(0); animation-timing-function: cubic-bezier(.8,0,1,1); }
    50%       { transform: translateY(-25%); animation-timing-function: cubic-bezier(0,0,.2,1); }
}
.invite-boost__flare--rebound {
    animation: invite-boost-flare-rebound-cycle 1s infinite;
}

@keyframes invite-boost-flare-ping-cycle {
    75%, 100% { transform: scale(2); opacity: 0; }
}
.invite-boost__flare--ping {
    animation: invite-boost-flare-ping-cycle 1s cubic-bezier(0,0,.2,1) infinite;
}

@keyframes invite-boost-stroke-throb-cycle {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}
.invite-boost__stroke--throb {
    animation: invite-boost-stroke-throb-cycle 2s cubic-bezier(.4,0,.6,1) infinite;
}

.invite-boost__layer--lift:hover { transform: scale(1.05); transition: transform .2s ease; }

.invite-boost__flare--lift:hover { transform: scale(1.25); transition: transform .2s ease; }

.invite-boost__action--lift:hover { transform: scale(1.05); transition: transform .2s ease; }

