/* =========================================================
   ROOT
========================================================= */

:root {
    --purple: #6f3cff;
    --purple-dark: #4c24c7;

    --blue: #168cff;
    --green: #20c763;
    --pink: #ff3f86;
    --orange: #ff7a00;
    --yellow: #ffd326;

    --ink: #20264f;
    --muted: #727792;

    --page: 1280px;

    --transition:
        0.28s cubic-bezier(
            0.2,
            0.8,
            0.2,
            1
        );
}


/* =========================================================
   RESET
========================================================= */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}


html {
    scroll-behavior: smooth;
    scroll-padding-top: 72px;
}


body {
    font-family:
        "Trebuchet MS",
        Arial,
        sans-serif;

    color: var(--ink);

    background: white;

    overflow-x: hidden;
}


body.modal-open {
    overflow: hidden;
}


a {
    color: inherit;
    text-decoration: none;
}


button,
input {
    font: inherit;
}


button {
    border: none;
}


button,
a {
    -webkit-tap-highlight-color: transparent;
}


.container {
    width:
        min(
            calc(100% - 48px),
            var(--page)
        );

    margin-inline: auto;
}


/* =========================================================
   HEADER
========================================================= */

.site-header {
    position: sticky;

    top: 0;

    z-index: 1000;

    background:
        rgba(
            238,
            248,
            255,
            0.58
        );

    backdrop-filter:
        blur(22px)
        saturate(1.3);

    -webkit-backdrop-filter:
        blur(22px)
        saturate(1.3);

    border-bottom:
        1px solid
        rgba(
            45,
            69,
            105,
            0.045
        );

    box-shadow:
        0 5px 18px
        rgba(
            36,
            55,
            90,
            0.025
        );
}


.navbar {
    min-height: 70px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;
}


.logo {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    flex-shrink: 0;
}


.custom-logo {
    display: block;

    width: auto;

    height: 58px;

    max-width: 120px;

    object-fit: contain;
}


.logo-word {
    color: #17204b;

    font-family:
        "Comic Sans MS",
        "Comic Sans",
        cursive;

    font-size: 31px;

    line-height: 1;

    font-weight: 700;

    letter-spacing: -1.5px;

    transform:
        rotate(-2deg);
}


.nav-menu {
    display: flex;

    align-items: center;

    justify-content: center;

    gap: 4px;
}


.nav-link {
    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    min-height: 40px;

    padding:
        9px 15px 11px;

    border:
        1px solid transparent;

    border-radius: 13px;

    color: #50556c;

    font-size: 14px;

    font-weight: 800;

    transition:
        color var(--transition),
        background var(--transition),
        border-color var(--transition),
        opacity var(--transition),
        transform var(--transition);
}


.nav-link::after {
    content: "";

    position: absolute;

    left: 15px;
    right: 15px;

    bottom: 4px;

    height: 3px;

    border-radius: 20px;

    background:
        linear-gradient(
            90deg,
            #ff4e82,
            #8c56f6,
            #31b5ea
        );

    transform:
        scaleX(0);

    transform-origin:
        left center;

    opacity: 0;

    transition:
        transform 0.35s ease,
        opacity 0.25s ease;
}


.nav-link:hover {
    color: #35285f;

    background:
        rgba(
            255,
            255,
            255,
            0.38
        );
}


.nav-link.active {
    color: #38276a;

    background:
        linear-gradient(
            120deg,
            rgba(255,255,255,0.49),
            rgba(236,228,255,0.4)
        );

    border-color:
        rgba(111,83,194,0.1);

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,0.65);
}


.nav-link.active::after {
    transform:
        scaleX(1);

    opacity: 1;
}


.nav-actions {
    display: flex;

    align-items: center;

    gap: 10px;
}


.parent-button {
    padding:
        10px 17px;

    border-radius: 13px;

    color: white;

    background: #20264f;

    border:
        2px solid #20264f;

    font-size: 13px;

    font-weight: 900;

    cursor: pointer;

    transition:
        opacity var(--transition),
        transform var(--transition),
        border-color var(--transition);
}


.parent-button:hover {
    opacity: 0.84;

    transform:
        translateY(-2px);

    border-color: #7662dc;
}


/* =========================================================
   HAMBURGER
========================================================= */

.hamburger {
    display: none;

    width: 42px;
    height: 42px;

    padding: 9px;

    border-radius: 12px;

    background:
        rgba(239,235,255,0.9);

    cursor: pointer;
}


.hamburger span {
    display: block;

    width: 100%;

    height: 3px;

    margin: 4px 0;

    border-radius: 3px;

    background: #232748;

    transition: var(--transition);
}


.hamburger.open
span:nth-child(1) {
    transform:
        translateY(7px)
        rotate(45deg);
}


.hamburger.open
span:nth-child(2) {
    opacity: 0;
}


.hamburger.open
span:nth-child(3) {
    transform:
        translateY(-7px)
        rotate(-45deg);
}


/* =========================================================
   HERO
========================================================= */

.hero {
    position: relative;

    overflow: hidden;
}


.hero-video-section {
    position: relative;

    overflow: hidden;

    min-height: 760px;

    display: flex;

    align-items: center;

    background: #a6def8;
}


.hero-section-video {
    position: absolute;

    inset: 0;

    width: 100%;

    height: 100%;

    object-fit: cover;

    object-position: center;

    z-index: 0;

    filter:
        saturate(1.14)
        contrast(1.06);
}


.hero-video-section
.hero-grid {
    position: relative;

    z-index: 2;

    width: 100%;

    display: grid;

    grid-template-columns:
        1fr 1fr;

    align-items: center;

    gap: 60px;

    min-height: 760px;
}


.hero-video-section
.hero-copy {
    position: relative;

    z-index: 3;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    text-align: center;

    padding:
        40px 10px;
}


.hero-video-section
.hero-copy h1 {
    max-width: 700px;

    margin:
        0 auto 25px;

    text-align: center;

    font-size:
        clamp(
            60px,
            7vw,
            98px
        );

    line-height: 0.96;

    letter-spacing: -5px;

    color: #121943;

    font-weight: 900;
}


.hero-video-section
.hero-copy h1 span {
    background:
        linear-gradient(
            90deg,
            #ff2675,
            #7d32ff 50%,
            #007fe9
        );

    -webkit-background-clip: text;

    background-clip: text;

    color: transparent;
}


.hero-video-section
.hero-copy p {
    max-width: 660px;

    margin-inline: auto;

    color: #313a61;

    font-size: 18px;

    font-weight: 700;

    line-height: 1.7;

    text-align: center;
}


.hero-actions {
    display: flex;

    justify-content: center;

    flex-wrap: wrap;

    gap: 14px;

    width: 100%;

    margin-top: 30px;
}


.primary-button,
.secondary-button {
    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    padding:
        15px 23px;

    border-radius: 18px;

    font-weight: 900;

    cursor: pointer;

    transition:
        opacity var(--transition),
        transform var(--transition),
        border-color var(--transition);
}


.primary-button {
    color: white;

    background:
        linear-gradient(
            #9169ff,
            #6f3cff 55%,
            #5a31d4
        );

    border:
        2px solid #5228c8;

    box-shadow:
        0 6px 0 #4c25bc,
        0 14px 28px
        rgba(93,55,214,0.3);
}


.primary-button span {
    width: 29px;

    height: 29px;

    display: grid;

    place-items: center;

    border-radius: 50%;

    background:
        rgba(255,255,255,0.18);
}


.secondary-button {
    color: #1e264f;

    background:
        rgba(255,255,255,0.94);

    border:
        2px solid #d4caf6;

    box-shadow:
        0 5px 0 #d8d0ed,
        0 11px 22px
        rgba(46,37,96,0.14);
}


.primary-button:hover,
.secondary-button:hover {
    opacity: 0.88;

    transform:
        translateY(-3px);
}


.hero-mini-stats {
    display: flex;

    justify-content: center;

    gap: 42px;

    width: 100%;

    margin-top: 38px;
}


.hero-mini-stats div {
    display: flex;

    flex-direction: column;

    text-align: center;
}


.hero-mini-stats strong {
    color: #121943;

    font-size: 25px;

    font-weight: 900;
}


.hero-mini-stats span {
    color: #414b70;

    font-size: 12px;

    font-weight: 800;
}


.hero-animation-space {
    min-height: 520px;
}


/* =========================================================
   SHARED SECTIONS
========================================================= */

.section,
.download-section {
    position: relative;

    overflow: hidden;

    isolation: isolate;
}


.section {
    padding:
        95px 0;
}


.section-content {
    position: relative;

    z-index: 2;
}


.section-decoration {
    position: absolute;

    inset: 0;

    z-index: 0;

    pointer-events: none;

    overflow: hidden;
}


.section-heading {
    display: flex;

    justify-content: space-between;

    align-items: flex-end;

    gap: 45px;

    margin-bottom: 36px;
}


.section-heading.centered {
    display: block;

    text-align: center;
}


.section-heading.centered p {
    margin:
        15px auto 0;
}


.section-heading h2,
.band-heading h2 {
    color: #131838;

    font-size:
        clamp(
            41px,
            5vw,
            65px
        );

    line-height: 0.98;

    letter-spacing: -3px;
}


.section-heading p {
    max-width: 490px;

    color: #50566e;

    line-height: 1.65;
}


.eyebrow {
    display: inline-flex;

    padding:
        8px 14px;

    margin-bottom: 16px;

    border-radius: 999px;

    font-size: 13px;

    font-weight: 900;
}


/* =========================================================
   SCROLL REVEALS
========================================================= */

.reveal-left,
.reveal-right {
    opacity: 0;

    transition:
        opacity 0.7s ease,
        transform 0.85s
        cubic-bezier(
            0.16,
            1,
            0.3,
            1
        );
}


.reveal-left {
    transform:
        translateX(-60px);
}


.reveal-right {
    transform:
        translateX(60px);
}


.reveal-left.visible,
.reveal-right.visible {
    opacity: 1;

    transform:
        translateX(0);
}


/* =========================================================
   EXPLORE ACTIVITIES
========================================================= */

.activities-section {
    background:
        linear-gradient(
            135deg,
            #f8ee29 0%,
            #f8eb1c 48%,
            #f3df18 100%
        );
}


/* =========================================================
   ACTIVITY BACKGROUND ANIMATION
========================================================= */

.activity-orb {
    position: absolute;

    border-radius: 50%;

    animation:
        activityOrbFloat
        8s
        ease-in-out
        infinite;
}


.activity-orb-one {
    width: 190px;

    height: 190px;

    left: 5%;

    top: 9%;

    background:
        rgba(255,101,54,0.17);
}


.activity-orb-two {
    width: 130px;

    height: 130px;

    right: 8%;

    top: 12%;

    background:
        rgba(111,60,255,0.14);

    animation-delay:
        -3s;
}


.activity-orb-three {
    width: 150px;

    height: 150px;

    right: 24%;

    bottom: 6%;

    background:
        rgba(255,61,134,0.12);

    animation-delay:
        -5s;
}


.activity-ring {
    position: absolute;

    border-radius: 50%;

    border:
        3px solid
        rgba(255,255,255,0.24);

    animation:
        activityRingMove
        10s
        ease-in-out
        infinite;
}


.activity-ring-one {
    width: 390px;

    height: 390px;

    right: -150px;

    top: -130px;
}


.activity-ring-two {
    width: 300px;

    height: 300px;

    left: -140px;

    bottom: -100px;

    animation-delay:
        -5s;
}


/* =========================================================
   ACTIVITY FILTERS
========================================================= */

.filter-row {
    display: flex;

    flex-wrap: wrap;

    gap: 9px;

    margin-bottom: 31px;
}


.filter-chip {
    padding:
        9px 15px;

    border-radius: 999px;

    color: #49411d;

    background:
        rgba(255,255,255,0.36);

    border:
        1px solid
        rgba(255,255,255,0.55);

    backdrop-filter:
        blur(10px);

    font-size: 13px;

    font-weight: 800;

    cursor: pointer;

    transition:
        background var(--transition),
        transform var(--transition),
        border-color var(--transition);
}


.filter-chip:hover {
    transform:
        translateY(-2px);

    background:
        rgba(255,255,255,0.57);
}


.filter-chip.active {
    color: white;

    background:
        linear-gradient(
            135deg,
            #6f3cff,
            #9a52ef
        );

    border-color:
        rgba(255,255,255,0.5);

    box-shadow:
        0 7px 17px
        rgba(67,31,156,0.25);
}


/* =========================================================
   ACTIVITY CARDS
========================================================= */

.activity-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap: 28px;
}


.activity-card {
    position: relative;

    min-height: 340px;

    display: grid;

    grid-template-columns:
        minmax(0,1.04fr)
        minmax(190px,0.96fr);

    overflow: hidden;

    border-radius: 27px;

    border:
        1px solid
        rgba(255,255,255,0.36);

    box-shadow:
        0 18px 38px
        rgba(74,57,27,0.17);

    cursor: pointer;

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}


.activity-card:hover {
    transform:
        translateY(-6px);

    box-shadow:
        0 26px 48px
        rgba(70,50,28,0.21);
}


.activity-orange {
    background:
        linear-gradient(
            135deg,
            #ffbd72,
            #ff8f68
        );
}


.activity-purple {
    background:
        linear-gradient(
            135deg,
            #c0a4ff,
            #9c83e7
        );
}


.activity-green {
    background:
        linear-gradient(
            135deg,
            #99e882,
            #66ca77
        );
}


.activity-pink {
    background:
        linear-gradient(
            135deg,
            #ffb1d9,
            #ed79b7
        );
}


.activity-yellow {
    background:
        linear-gradient(
            135deg,
            #ffec72,
            #ffca4c
        );
}


.activity-blue {
    background:
        linear-gradient(
            135deg,
            #91e5f5,
            #59bde5
        );
}


.activity-card-copy {
    position: relative;

    z-index: 5;

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    min-width: 0;

    padding:
        31px 10px 29px 34px;
}


.activity-label {
    display: inline-flex;

    padding:
        5px 10px;

    margin-bottom: 44px;

    border-radius: 999px;

    color:
        rgba(28,27,38,0.65);

    background:
        rgba(255,255,255,0.14);

    border:
        1px solid
        rgba(255,255,255,0.24);

    backdrop-filter:
        blur(9px);

    font-size: 10px;

    font-weight: 900;

    letter-spacing: 1.2px;

    text-transform: uppercase;
}


.activity-card h3 {
    margin-bottom: 17px;

    color: #151527;

    font-size:
        clamp(
            29px,
            2.4vw,
            39px
        );

    line-height: 1.04;

    letter-spacing: -1.5px;
}


.activity-card p {
    max-width: 360px;

    color:
        rgba(30,30,43,0.7);

    font-size: 15px;

    line-height: 1.5;
}


/* =========================================================
   GLASS ACTIVITY BUTTON
========================================================= */

.activity-link,
.parent-card-button {
    position: relative;

    z-index: 6;

    overflow: hidden;

    display: inline-flex;

    align-items: center;

    gap: 11px;

    margin-top: auto;

    padding:
        11px 17px;

    border-radius: 999px;

    color: #181725;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,0.48),
            rgba(255,255,255,0.19)
        );

    border:
        1px solid
        rgba(255,255,255,0.62);

    backdrop-filter:
        blur(15px);

    -webkit-backdrop-filter:
        blur(15px);

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,0.65),
        0 7px 17px
        rgba(41,35,39,0.12);

    font-size: 13px;

    font-weight: 900;

    cursor: pointer;

    transition:
        transform var(--transition),
        background var(--transition);
}


.activity-link::before,
.parent-card-button::before {
    content: "";

    position: absolute;

    top: -90%;

    left: -65%;

    width: 54%;

    height: 280%;

    transform:
        rotate(25deg);

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,0.5),
            transparent
        );

    transition:
        left 0.5s ease;
}


.activity-link:hover::before,
.parent-card-button:hover::before {
    left: 125%;
}


.activity-link:hover,
.parent-card-button:hover {
    transform:
        translateY(-2px);

    background:
        rgba(255,255,255,0.61);
}


/* =========================================================
   ACTIVITY IMAGE AREA
   UPDATED FOR YOUR NEW PNGS
========================================================= */

.activity-image-slot {
    position: relative;

    min-width: 0;

    min-height: 340px;

    overflow: hidden;

    display: flex;

    align-items: center;

    justify-content: center;

    padding:
        22px 18px;

    z-index: 2;
}


/*
    Decorative glow stays BEHIND the image.
*/

.activity-image-slot::before {
    content: "";

    position: absolute;

    z-index: 0;

    width: 275px;

    height: 275px;

    left: 50%;

    top: 50%;

    transform:
        translate(-45%, -47%);

    border-radius: 50%;

    background:
        radial-gradient(
            circle at 40% 36%,
            rgba(255,255,255,0.73),
            rgba(255,255,255,0.15) 58%,
            transparent 73%
        );

    pointer-events: none;
}


/*
    =====================================================
    ALL SIX ACTIVITY IMAGES USE THIS CLASS.

    object-fit: contain means:
    - no cropping
    - no stretching
    - no overflow
    - keeps transparency
    =====================================================
*/

.activity-card-image {
    position: relative;

    z-index: 3;

    display: block;

    width: 100%;

    height: 100%;

    max-width: 280px;

    max-height: 285px;

    object-fit: contain;

    object-position: center;

    pointer-events: none;

    user-select: none;

    transform:
        translateZ(0);

    filter:
        drop-shadow(
            0 12px 13px
            rgba(48,35,39,0.12)
        );

    transition:
        transform
        0.35s ease;
}


/*
    Tiny image motion when card is hovered.
    It stays fully inside the image section.
*/

.activity-card:hover
.activity-card-image {
    transform:
        translateY(-4px)
        scale(1.025);
}


/* =========================================================
   OPTIONAL INDIVIDUAL IMAGE TUNING

   Your PNGs have different natural shapes, so these tiny
   adjustments keep their visual sizes balanced.

   This does NOT change the card structure.
========================================================= */


/* Move Mission - tall character */

.activity-card[data-title="Move Mission"]
.activity-card-image {
    max-width: 235px;

    max-height: 290px;
}


/* Puzzle Planet - smaller puzzle symbol */

.activity-card[data-title="Puzzle Planet"]
.activity-card-image {
    max-width: 215px;

    max-height: 220px;
}


/* Nature Quest - tree is tall */

.activity-card[data-title="Nature Quest"]
.activity-card-image {
    max-width: 240px;

    max-height: 290px;
}


/* Colour Quest - palette */

.activity-card[data-title="Colour Quest"]
.activity-card-image {
    max-width: 245px;

    max-height: 240px;
}


/* Story Spark - broad illustration */

.activity-card[data-title="Story Spark"]
.activity-card-image {
    max-width: 290px;

    max-height: 265px;
}


/* Team Quest - group illustration */

.activity-card[data-title="Team Quest"]
.activity-card-image {
    max-width: 265px;

    max-height: 285px;
}


.activity-card.hidden {
    display: none;
}


.empty-state {
    display: none;

    padding: 35px;

    text-align: center;
}


.empty-state.show {
    display: block;
}


/* =========================================================
   FIVE WAYS TO GROW
========================================================= */

.pillars-section {
    background:
        linear-gradient(
            135deg,
            #35ed27 0%,
            #24e831 50%,
            #1dd75c 100%
        );
}


.growth-eyebrow {
    color: #086019;

    background:
        rgba(255,255,255,0.37);

    border:
        1px solid
        rgba(255,255,255,0.49);
}


.growth-orb {
    position: absolute;

    border-radius: 50%;

    animation:
        growthOrbMove
        10s
        ease-in-out
        infinite;
}


.growth-orb-one {
    width: 440px;

    height: 440px;

    top: -170px;

    left: -130px;

    background:
        rgba(241,255,53,0.21);
}


.growth-orb-two {
    width: 370px;

    height: 370px;

    right: -130px;

    top: 22%;

    background:
        rgba(84,74,231,0.15);

    animation-delay:
        -4s;
}


.growth-orb-three {
    width: 270px;

    height: 270px;

    left: 44%;

    bottom: -130px;

    background:
        rgba(255,89,160,0.14);

    animation-delay:
        -7s;
}


.growth-particle {
    position: absolute;

    color:
        rgba(255,255,255,0.42);

    animation:
        growthParticleMove
        8s
        ease-in-out
        infinite;
}


.particle-one {
    left: 8%;

    top: 34%;

    font-size: 36px;
}


.particle-two {
    right: 10%;

    top: 17%;

    font-size: 23px;

    animation-delay:
        -2s;
}


.particle-three {
    right: 27%;

    bottom: 9%;

    font-size: 48px;

    animation-delay:
        -4s;
}


.particle-four {
    left: 33%;

    top: 12%;

    font-size: 20px;

    animation-delay:
        -6s;
}


.growth-card-grid {
    display: grid;

    grid-template-columns:
        repeat(
            5,
            minmax(0,1fr)
        );

    gap: 14px;
}


.growth-card {
    min-width: 0;

    min-height: 405px;

    display: flex;

    flex-direction: column;

    overflow: hidden;

    border-radius: 24px;

    border:
        1px solid
        rgba(255,255,255,0.4);

    box-shadow:
        10px 14px 0
        rgba(10,80,25,0.12),

        17px 22px 32px
        rgba(14,89,30,0.23),

        -7px -7px 17px
        rgba(255,255,255,0.21),

        inset 1px 1px 0
        rgba(255,255,255,0.46);

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}


.growth-card:hover {
    transform:
        translateY(-8px);
}


.growth-card-lime {
    background:
        linear-gradient(
            160deg,
            #d4f870,
            #88d95e
        );
}


.growth-card-purple {
    background:
        linear-gradient(
            160deg,
            #ceb4ff,
            #997ce5
        );
}


.growth-card-orange {
    background:
        linear-gradient(
            160deg,
            #ffd15d,
            #ff9765
        );
}


.growth-card-pink {
    background:
        linear-gradient(
            160deg,
            #ffb2dd,
            #e877b6
        );
}


.growth-card-cyan {
    background:
        linear-gradient(
            160deg,
            #a3efff,
            #5bc4df
        );
}


/* =========================================================
   GROWTH GIF AREA
========================================================= */

.growth-media {
    position: relative;

    height: 230px;

    margin:
        12px 12px 0;

    display: grid;

    place-items: center;

    overflow: hidden;

    border-radius: 18px;

    background:
        rgba(255,255,255,0.14);

    border:
        1px solid
        rgba(255,255,255,0.24);

    box-shadow:
        inset 7px 7px 14px
        rgba(33,66,53,0.12),

        inset -7px -7px 14px
        rgba(255,255,255,0.2);
}


.growth-media::after {
    content: "";

    position: absolute;

    z-index: 0;

    width: 175px;

    height: 175px;

    top: -40px;

    right: -45px;

    border-radius: 50%;

    background:
        rgba(255,255,255,0.16);

    pointer-events: none;
}


.growth-card-gif {
    position: relative;

    z-index: 2;

    display: block;

    width: 100%;

    height: 100%;

    max-width: 100%;

    max-height: 100%;

    object-fit: contain;

    object-position: center;

    border-radius: 14px;
}


.growth-placeholder {
    position: relative;

    z-index: 4;

    padding:
        7px 9px;

    border-radius: 7px;

    border:
        1px dashed
        rgba(25,35,34,0.28);

    background:
        rgba(255,255,255,0.24);

    color:
        rgba(27,31,40,0.45);

    font-size: 9px;

    font-weight: 900;
}


.growth-copy {
    flex: 1;

    padding:
        17px 17px 21px;
}


.growth-copy > span {
    color:
        rgba(24,28,40,0.45);

    font-size: 9px;

    font-weight: 900;

    letter-spacing: 2px;
}


.growth-copy h3 {
    margin:
        6px 0 8px;

    color: #17172b;

    font-size: 22px;

    letter-spacing: -0.8px;
}


.growth-copy p {
    color:
        rgba(28,30,42,0.67);

    font-size: 11.5px;

    line-height: 1.5;
}


/* =========================================================
   PERSONALIZED
========================================================= */

.personalized-section {
    background:
        linear-gradient(
            135deg,
            #a968ff 0%,
            #bc65ff 48%,
            #d36eff 100%
        );
}


.personalized-eyebrow {
    color: #54208c;

    background:
        rgba(255,255,255,0.37);

    border:
        1px solid
        rgba(255,255,255,0.48);
}


.lavender-orb {
    position: absolute;

    border-radius: 50%;

    animation:
        lavenderOrbMove
        10s
        ease-in-out
        infinite;
}


.lavender-orb-one {
    width: 440px;

    height: 440px;

    left: -170px;

    top: -150px;

    background:
        rgba(69,31,182,0.19);
}


.lavender-orb-two {
    width: 370px;

    height: 370px;

    right: -140px;

    top: 9%;

    background:
        rgba(255,102,197,0.2);

    animation-delay:
        -4s;
}


.lavender-orb-three {
    width: 260px;

    height: 260px;

    left: 42%;

    bottom: -130px;

    background:
        rgba(86,219,244,0.17);

    animation-delay:
        -7s;
}


.personalized-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap: 22px;
}


.personalized-card {
    min-width: 0;

    min-height: 400px;

    padding:
        16px 18px 26px;

    border-radius: 27px;

    border:
        1px solid
        rgba(255,255,255,0.39);

    box-shadow:
        10px 12px 0
        rgba(65,25,110,0.11),

        17px 22px 34px
        rgba(63,28,108,0.28),

        -7px -7px 18px
        rgba(255,255,255,0.14),

        inset 1px 1px 0
        rgba(255,255,255,0.36);

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}


.personalized-card:hover {
    transform:
        translateY(-8px);
}


.personalized-orange {
    background:
        linear-gradient(
            160deg,
            #ffc47a,
            #ff9074
        );
}


.personalized-purple {
    background:
        linear-gradient(
            160deg,
            #d0b0ff,
            #9276df
        );
}


.personalized-pink {
    background:
        linear-gradient(
            160deg,
            #ffb4df,
            #e974b8
        );
}


.personalized-visual {
    position: relative;

    height: 225px;

    display: grid;

    place-items: center;

    overflow: hidden;

    margin-bottom: 20px;

    border-radius: 20px;

    background:
        rgba(255,255,255,0.14);

    box-shadow:
        inset 7px 7px 15px
        rgba(60,45,75,0.09),

        inset -7px -7px 15px
        rgba(255,255,255,0.18);
}


.personalized-circle {
    position: absolute;

    width: 205px;

    height: 205px;

    right: -50px;

    top: -42px;

    border-radius: 50%;

    background:
        rgba(255,255,255,0.18);
}


.personalized-visual strong {
    position: relative;

    z-index: 2;

    color:
        rgba(39,31,58,0.5);

    font-size: 78px;

    font-weight: 900;
}


.personalized-small-label {
    color:
        rgba(33,29,50,0.47);

    font-size: 10px;

    font-weight: 900;

    letter-spacing: 1.2px;

    text-transform: uppercase;
}


.personalized-card h3 {
    margin:
        8px 0 9px;

    color: #19172a;

    font-size: 27px;
}


.personalized-card p {
    color:
        rgba(31,28,45,0.68);

    font-size: 14px;

    line-height: 1.55;
}


/* =========================================================
   KRYDA BAND
========================================================= */

.band-section {
    background:
        linear-gradient(
            135deg,
            #4ecaf1 0%,
            #508ce9 48%,
            #6d58db 100%
        );
}


.band-heading {
    max-width: 760px;

    margin-bottom: 36px;
}


.band-heading p {
    max-width: 610px;

    margin-top: 18px;

    color:
        rgba(17,31,70,0.74);

    font-size: 17px;

    font-weight: 700;

    line-height: 1.7;
}


.band-orb {
    position: absolute;

    border-radius: 50%;

    animation:
        bandOrbFloat
        12s
        ease-in-out
        infinite;
}


.band-orb-one {
    width: 580px;

    height: 580px;

    left: -250px;

    bottom: -250px;

    background:
        rgba(31,42,130,0.22);
}


.band-orb-two {
    width: 460px;

    height: 460px;

    right: -170px;

    top: -170px;

    background:
        rgba(197,242,255,0.26);

    animation-delay:
        -5s;
}


.band-floating-dot {
    position: absolute;

    border-radius: 50%;

    background:
        rgba(255,255,255,0.2);

    animation:
        bandDotFloat
        8s
        ease-in-out
        infinite;
}


.band-dot-one {
    width: 65px;

    height: 65px;

    left: 42%;

    top: 13%;
}


.band-dot-two {
    width: 32px;

    height: 32px;

    right: 17%;

    bottom: 10%;

    animation-delay:
        -4s;
}


/* =========================================================
   BAND VIDEO
========================================================= */

.band-video-card {
    display: grid;

    grid-template-columns:
        1.2fr 0.8fr;

    overflow: hidden;

    min-height: 500px;

    margin-bottom: 28px;

    border-radius: 31px;

    background:
        rgba(231,244,255,0.69);

    border:
        1px solid
        rgba(255,255,255,0.47);

    box-shadow:
        11px 13px 0
        rgba(28,61,126,0.09),

        20px 27px 45px
        rgba(27,60,127,0.24),

        -9px -9px 22px
        rgba(255,255,255,0.14);

    backdrop-filter:
        blur(13px);
}


.band-video-wrapper {
    padding: 20px;
}


.band-video {
    width: 100%;

    height: 455px;

    display: block;

    object-fit: cover;

    object-position: center;

    border-radius: 23px;

    background: #bfe4f8;
}


.band-video-copy {
    display: flex;

    flex-direction: column;

    justify-content: center;

    padding:
        45px 42px;

    background:
        rgba(255,255,255,0.2);
}


.band-product-label {
    align-self: flex-start;

    padding:
        7px 10px;

    margin-bottom: 25px;

    border-radius: 8px;

    background:
        rgba(255,255,255,0.43);

    border:
        1px solid
        rgba(255,255,255,0.44);

    color: #225e9a;

    font-size: 10px;

    font-weight: 900;

    letter-spacing: 1.3px;
}


.band-video-copy h3 {
    color: #131942;

    font-size:
        clamp(
            38px,
            4vw,
            54px
        );

    line-height: 1.02;

    letter-spacing: -2px;
}


.band-video-copy > p {
    margin:
        19px 0 24px;

    color:
        rgba(23,37,74,0.7);

    line-height: 1.65;
}


.band-warning {
    display: block;

    padding-top: 15px;

    border-top:
        1px solid
        rgba(38,62,102,0.13);

    color:
        rgba(22,39,76,0.55);

    font-size: 11px;

    font-weight: 800;
}


/* =========================================================
   BAND FEATURE CARDS
========================================================= */

.band-feature-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0,1fr)
        );

    gap: 22px;
}


.band-feature-card {
    min-height: 390px;

    padding:
        17px 19px 27px;

    border-radius: 27px;

    border:
        1px solid
        rgba(255,255,255,0.4);

    box-shadow:
        10px 13px 0
        rgba(26,57,115,0.1),

        17px 22px 33px
        rgba(24,56,117,0.25),

        -7px -7px 18px
        rgba(255,255,255,0.14),

        inset 1px 1px 0
        rgba(255,255,255,0.38);

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}


.band-feature-card:hover {
    transform:
        translateY(-8px);
}


.band-card-orange {
    background:
        linear-gradient(
            160deg,
            #ffc979,
            #ff9569
        );
}


.band-card-purple {
    background:
        linear-gradient(
            160deg,
            #c7aeff,
            #9078db
        );
}


.band-card-green {
    background:
        linear-gradient(
            160deg,
            #9ce999,
            #62c781
        );
}


.band-feature-visual {
    position: relative;

    height: 210px;

    display: grid;

    place-items: center;

    overflow: hidden;

    margin-bottom: 20px;

    border-radius: 20px;

    background:
        rgba(255,255,255,0.14);

    box-shadow:
        inset 7px 7px 14px
        rgba(50,45,66,0.09),

        inset -7px -7px 14px
        rgba(255,255,255,0.18);
}


.band-feature-circle {
    position: absolute;

    width: 210px;

    height: 210px;

    top: -45px;

    right: -55px;

    border-radius: 50%;

    background:
        rgba(255,255,255,0.2);
}


.band-feature-visual strong {
    position: relative;

    z-index: 2;

    color:
        rgba(37,32,54,0.51);

    font-size: 77px;

    font-weight: 900;
}


.band-feature-label {
    color:
        rgba(29,28,44,0.48);

    font-size: 10px;

    font-weight: 900;

    letter-spacing: 1.2px;

    text-transform: uppercase;
}


.band-feature-card h3 {
    margin:
        8px 0 9px;

    color: #17172c;

    font-size: 25px;
}


.band-feature-card p {
    color:
        rgba(30,30,44,0.67);

    font-size: 14px;

    line-height: 1.55;
}


/* =========================================================
   GROWTH PASSPORT
========================================================= */

.passport-section {
    background:
        linear-gradient(
            135deg,
            #ff4e91 0%,
            #ff579b 38%,
            #f45bab 70%,
            #e95db2 100%
        );
}


/* =========================================================
   PASSPORT BACKGROUND
========================================================= */

.passport-orb {
    position: absolute;

    border-radius: 50%;

    animation:
        passportOrbFloat
        10s
        ease-in-out
        infinite;
}


.passport-orb-one {
    width: 460px;

    height: 460px;

    left: -190px;

    top: -160px;

    background:
        rgba(255,221,103,0.18);
}


.passport-orb-two {
    width: 370px;

    height: 370px;

    right: -130px;

    top: 11%;

    background:
        rgba(124,63,223,0.18);

    animation-delay:
        -4s;
}


.passport-orb-three {
    width: 260px;

    height: 260px;

    left: 46%;

    bottom: -120px;

    background:
        rgba(255,220,239,0.18);

    animation-delay:
        -7s;
}


.passport-ring {
    position: absolute;

    border-radius: 50%;

    border:
        3px solid
        rgba(255,255,255,0.17);

    animation:
        passportRingPulse
        9s
        ease-in-out
        infinite;
}


.passport-ring-one {
    width: 360px;

    height: 360px;

    right: -110px;

    bottom: -80px;
}


.passport-ring-two {
    width: 220px;

    height: 220px;

    left: 8%;

    bottom: 7%;

    animation-delay:
        -4s;
}


/* =========================================================
   PASSPORT HEADING
========================================================= */

.passport-heading-new {
    display: grid;

    grid-template-columns:
        minmax(0,1.15fr)
        minmax(270px,0.65fr);

    align-items: end;

    gap: 55px;

    margin-bottom: 39px;

    width: 100%;
}


.passport-title-accent {
    position: relative;

    display: inline-flex;

    align-items: center;

    gap: 7px;

    margin-bottom: 14px;

    color:
        rgba(68,22,66,0.71);

    font-size: 13px;

    font-weight: 900;

    letter-spacing: 0.4px;
}


.passport-title-accent::after {
    content: "";

    width: 42px;

    height: 2px;

    margin-left: 5px;

    border-radius: 99px;

    background:
        rgba(74,27,67,0.31);
}


.passport-heading-new h2 {
    max-width: 760px;

    color: #2c1735;

    font-size:
        clamp(
            46px,
            6vw,
            72px
        );

    line-height: 0.96;

    letter-spacing: -4px;
}


.passport-heading-new h2 span {
    color:
        rgba(255,255,255,0.9);
}


.passport-heading-new > p {
    max-width: 430px;

    padding-bottom: 5px;

    color:
        rgba(60,29,54,0.72);

    font-size: 16px;

    font-weight: 700;

    line-height: 1.65;
}


/* =========================================================
   PASSPORT CARD GRID
========================================================= */

.passport-card-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap: 26px;

    width: 100%;
}


.passport-activity-card {
    position: relative;

    min-width: 0;

    width: 100%;

    min-height: 330px;

    display: grid;

    grid-template-columns:
        minmax(0,1.08fr)
        minmax(190px,0.92fr);

    overflow: hidden;

    border-radius: 28px;

    border:
        1px solid
        rgba(255,255,255,0.4);

    box-shadow:
        9px 12px 0
        rgba(111,38,77,0.10),

        18px 24px 39px
        rgba(104,31,70,0.23),

        -7px -7px 17px
        rgba(255,255,255,0.13),

        inset 1px 1px 0
        rgba(255,255,255,0.38);

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}


.passport-activity-card:hover {
    transform:
        translateY(-7px);

    box-shadow:
        10px 16px 0
        rgba(111,38,77,0.09),

        21px 29px 44px
        rgba(104,31,70,0.27),

        -8px -8px 20px
        rgba(255,255,255,0.16);
}


.passport-card-purple {
    background:
        linear-gradient(
            135deg,
            #d9b7ff,
            #a77fe5
        );
}


.passport-card-orange {
    background:
        linear-gradient(
            135deg,
            #ffd07d,
            #ff9578
        );
}


.passport-card-blue {
    background:
        linear-gradient(
            135deg,
            #a3eaf9,
            #69bfe8
        );
}


.passport-card-yellow {
    background:
        linear-gradient(
            135deg,
            #fff27e,
            #ffc85c
        );
}


.passport-card-green {
    background:
        linear-gradient(
            135deg,
            #b3ec8c,
            #6bc98a
        );
}


.passport-card-wide {
    grid-column:
        1 / -1;
}


/* =========================================================
   PASSPORT CARD COPY
========================================================= */

.passport-card-copy {
    position: relative;

    z-index: 3;

    min-width: 0;

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    padding:
        30px 10px 28px 32px;
}


.passport-card-label {
    display: inline-flex;

    padding:
        5px 10px;

    margin-bottom: 34px;

    border-radius: 999px;

    color:
        rgba(42,28,46,0.57);

    background:
        rgba(255,255,255,0.15);

    border:
        1px solid
        rgba(255,255,255,0.24);

    backdrop-filter:
        blur(9px);

    font-size: 10px;

    font-weight: 900;

    letter-spacing: 1.15px;

    text-transform: uppercase;
}


.passport-activity-card h3 {
    max-width: 380px;

    margin-bottom: 13px;

    color: #23172b;

    font-size:
        clamp(
            29px,
            3vw,
            39px
        );

    line-height: 1.04;

    letter-spacing: -1.4px;
}


.passport-activity-card p {
    max-width: 390px;

    color:
        rgba(43,31,46,0.68);

    font-size: 14px;

    line-height: 1.55;
}


/* =========================================================
   PASSPORT PROFILE
========================================================= */

.passport-profile-pill {
    display: inline-flex;

    align-items: center;

    gap: 10px;

    margin-top: auto;

    padding:
        9px 14px 9px 9px;

    border-radius: 999px;

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,0.45),
            rgba(255,255,255,0.18)
        );

    border:
        1px solid
        rgba(255,255,255,0.55);

    backdrop-filter:
        blur(13px);

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,0.58),

        0 7px 17px
        rgba(59,37,64,0.10);
}


.passport-small-avatar {
    width: 34px;

    height: 34px;

    display: grid;

    place-items: center;

    border-radius: 50%;

    background:
        rgba(255,255,255,0.5);

    font-size: 19px;
}


.passport-profile-pill div {
    display: flex;

    flex-direction: column;
}


.passport-profile-pill strong {
    color: #2d2436;

    font-size: 12px;
}


.passport-profile-pill small {
    margin-top: 1px;

    color:
        rgba(42,35,49,0.56);

    font-size: 9px;
}


/* =========================================================
   PASSPORT MAIN VISUAL
========================================================= */

.passport-progress-visual {
    position: relative;

    min-width: 0;

    min-height: 330px;

    display: grid;

    place-items: center;

    overflow: hidden;
}


.passport-progress-visual::before {
    content: "";

    position: absolute;

    width: 280px;

    height: 280px;

    right: -20px;

    top: 34px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(255,255,255,0.69),
            rgba(255,255,255,0.13) 62%,
            transparent 73%
        );
}


.passport-big-circle {
    position: relative;

    z-index: 3;

    width: 155px;

    height: 155px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,0.67),
            rgba(255,255,255,0.23)
        );

    border:
        1px solid
        rgba(255,255,255,0.66);

    backdrop-filter:
        blur(12px);

    box-shadow:
        0 18px 30px
        rgba(74,44,89,0.17),

        inset 0 1px 0
        rgba(255,255,255,0.75);
}


.passport-big-circle span {
    color: #543177;

    font-size: 40px;

    font-weight: 900;

    letter-spacing: -2px;
}


.passport-big-circle small {
    color:
        rgba(64,43,77,0.53);

    font-size: 10px;

    font-weight: 900;

    letter-spacing: 1px;

    text-transform: uppercase;
}


.passport-decoration-circle {
    position: absolute;

    right: 16px;

    bottom: -50px;

    width: 150px;

    height: 150px;

    border-radius: 50%;

    background:
        rgba(112,73,187,0.2);
}


/* =========================================================
   PASSPORT PROGRESS
========================================================= */

.passport-inline-progress {
    width: 100%;

    max-width: 330px;

    margin-top: auto;

    padding-top: 23px;
}


.passport-inline-progress > div:first-child {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 8px;

    color:
        rgba(39,31,44,0.67);

    font-size: 11px;
}


.passport-inline-progress span {
    font-weight: 900;
}


.passport-track {
    width: 100%;

    height: 9px;

    overflow: hidden;

    border-radius: 999px;

    background:
        rgba(255,255,255,0.35);

    box-shadow:
        inset 0 1px 2px
        rgba(40,30,42,0.08);
}


.passport-track span {
    display: block;

    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            #f34086,
            #7646ed,
            #248de8
        );

    box-shadow:
        0 3px 8px
        rgba(88,55,165,0.16);
}


/* =========================================================
   PASSPORT CARD ART
========================================================= */

.passport-card-art {
    position: relative;

    min-width: 0;

    min-height: 330px;

    display: grid;

    place-items: center;

    overflow: hidden;
}


.passport-card-art::before {
    content: "";

    position: absolute;

    width: 270px;

    height: 270px;

    right: -23px;

    top: 40px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(255,255,255,0.65),
            rgba(255,255,255,0.11) 64%,
            transparent 74%
        );
}


.passport-art-circle {
    position: absolute;

    width: 190px;

    height: 190px;

    right: -30px;

    bottom: -35px;

    border-radius: 50%;

    background:
        rgba(255,255,255,0.13);
}


.passport-card-art > strong {
    position: relative;

    z-index: 3;

    color:
        rgba(43,33,53,0.43);

    font-size: 88px;

    font-weight: 900;
}


.passport-trophy-art > strong {
    font-size: 82px;
}


/* =========================================================
   PASSPORT BADGES
========================================================= */

.passport-badge-list {
    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-top: auto;

    padding-top: 23px;
}


.passport-badge-list span {
    padding:
        8px 11px;

    border-radius: 999px;

    color:
        rgba(33,34,40,0.75);

    background:
        rgba(255,255,255,0.35);

    border:
        1px solid
        rgba(255,255,255,0.48);

    backdrop-filter:
        blur(9px);

    font-size: 10px;

    font-weight: 900;

    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,0.5);
}


/* =========================================================
   FOR PARENTS
========================================================= */

.parents-section {
    background:
        linear-gradient(
            135deg,
            #ffae56,
            #ff906c 50%,
            #f8759d
        );
}


.parents-eyebrow {
    color: #9c3e23;

    background:
        rgba(255,255,255,0.36);

    border:
        1px solid
        rgba(255,255,255,0.48);
}


.parents-orb {
    position: absolute;

    border-radius: 50%;

    animation:
        parentsOrbFloat
        10s
        ease-in-out
        infinite;
}


.parents-orb-one {
    width: 480px;

    height: 480px;

    left: -190px;

    top: -160px;

    background:
        rgba(255,226,104,0.19);
}


.parents-orb-two {
    width: 380px;

    height: 380px;

    right: -140px;

    bottom: -140px;

    background:
        rgba(117,60,213,0.15);

    animation-delay:
        -5s;
}


.parents-card-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap: 25px;
}


.parent-activity-card {
    position: relative;

    min-height: 320px;

    display: grid;

    grid-template-columns:
        1.08fr 0.92fr;

    overflow: hidden;

    border-radius: 27px;

    border:
        1px solid
        rgba(255,255,255,0.39);

    box-shadow:
        0 19px 38px
        rgba(100,49,38,0.18);

    transition:
        transform var(--transition),
        box-shadow var(--transition);
}


.parent-activity-card:hover {
    transform:
        translateY(-6px);

    box-shadow:
        0 27px 48px
        rgba(89,43,35,0.22);
}


.parent-orange {
    background:
        linear-gradient(
            135deg,
            #ffca75,
            #ff956c
        );
}


.parent-purple {
    background:
        linear-gradient(
            135deg,
            #c7adff,
            #957cdf
        );
}


.parent-green {
    background:
        linear-gradient(
            135deg,
            #a0eb92,
            #66ca84
        );
}


.parent-pink {
    background:
        linear-gradient(
            135deg,
            #ffb0d8,
            #ed79b7
        );
}


.parent-blue {
    background:
        linear-gradient(
            135deg,
            #96e5f8,
            #5dbce5
        );
}


.parent-wide {
    grid-column:
        1 / -1;
}


.parent-card-copy {
    position: relative;

    z-index: 3;

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    padding:
        30px 10px 28px 31px;
}


.parent-card-label {
    padding:
        5px 10px;

    margin-bottom: 35px;

    border-radius: 999px;

    color:
        rgba(32,29,42,0.57);

    background:
        rgba(255,255,255,0.14);

    border:
        1px solid
        rgba(255,255,255,0.25);

    backdrop-filter:
        blur(9px);

    font-size: 10px;

    font-weight: 900;

    letter-spacing: 1.2px;

    text-transform: uppercase;
}


.parent-activity-card h3 {
    margin-bottom: 13px;

    color: #19162b;

    font-size:
        clamp(
            28px,
            3vw,
            36px
        );

    line-height: 1.05;

    letter-spacing: -1.2px;
}


.parent-activity-card p {
    max-width: 370px;

    color:
        rgba(35,31,43,0.68);

    line-height: 1.55;
}


.parent-card-art {
    position: relative;

    min-height: 320px;

    display: grid;

    place-items: center;

    overflow: hidden;
}


.parent-card-art::before {
    content: "";

    position: absolute;

    width: 245px;

    height: 245px;

    right: -30px;

    top: 38px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(255,255,255,0.66),
            rgba(255,255,255,0.13) 64%,
            transparent 73%
        );
}


.parent-art-symbol {
    position: relative;

    z-index: 3;

    color:
        rgba(36,31,51,0.46);

    font-size: 94px;

    font-weight: 900;
}


.parent-mini-chart {
    position: relative;

    z-index: 3;

    width: 72%;

    height: 150px;

    display: flex;

    align-items: flex-end;

    gap: 9px;
}


.parent-mini-chart span {
    flex: 1;

    min-height: 18px;

    border-radius:
        8px 8px 2px 2px;

    background:
        linear-gradient(
            #fff070,
            #ff5e6f
        );
}


/* =========================================================
   DOWNLOAD APP
========================================================= */

.download-section {
    padding:
        95px 0;

    background:
        linear-gradient(
            135deg,
            #ffe82f 0%,
            #ffc743 48%,
            #ff9f55 100%
        );
}


.download-orb {
    position: absolute;

    border-radius: 50%;

    animation:
        downloadOrbFloat
        11s
        ease-in-out
        infinite;
}


.download-orb-one {
    width: 440px;

    height: 440px;

    left: -170px;

    top: -160px;

    background:
        rgba(255,69,127,0.14);
}


.download-orb-two {
    width: 370px;

    height: 370px;

    right: -140px;

    bottom: -150px;

    background:
        rgba(111,60,230,0.15);

    animation-delay:
        -5s;
}


.download-card {
    display: grid;

    grid-template-columns:
        1.1fr 0.9fr;

    min-height: 500px;

    overflow: hidden;

    border-radius: 35px;

    border:
        1px solid
        rgba(255,255,255,0.55);

    background:
        rgba(255,255,255,0.28);

    backdrop-filter:
        blur(15px);

    box-shadow:
        12px 15px 0
        rgba(134,82,12,0.08),

        23px 29px 48px
        rgba(139,83,10,0.18),

        -8px -8px 19px
        rgba(255,255,255,0.16);
}


.download-copy {
    display: flex;

    flex-direction: column;

    justify-content: center;

    padding:
        53px;
}


.download-label {
    align-self: flex-start;

    padding:
        7px 11px;

    margin-bottom: 25px;

    border-radius: 999px;

    color: #745000;

    background:
        rgba(255,255,255,0.38);

    border:
        1px solid
        rgba(255,255,255,0.48);

    font-size: 10px;

    font-weight: 900;

    letter-spacing: 1.1px;

    text-transform: uppercase;
}


.download-copy h2 {
    max-width: 620px;

    color: #292039;

    font-size:
        clamp(
            47px,
            6vw,
            74px
        );

    line-height: 0.97;

    letter-spacing: -4px;
}


.download-copy > p {
    max-width: 560px;

    margin:
        20px 0 30px;

    color: #5e4d27;

    line-height: 1.65;
}


.store-buttons {
    display: flex;

    flex-wrap: wrap;

    gap: 12px;
}


.store-button {
    min-width: 190px;

    display: flex;

    align-items: center;

    gap: 12px;

    padding:
        11px 17px;

    border-radius: 15px;

    color: white;

    background:
        rgba(24,25,42,0.94);

    border:
        1px solid
        rgba(255,255,255,0.12);

    box-shadow:
        0 8px 18px
        rgba(43,33,23,0.2);

    transition:
        transform var(--transition),
        opacity var(--transition);
}


.store-button:hover {
    transform:
        translateY(-3px);

    opacity: 0.86;
}


.store-logo {
    font-size: 27px;
}


.play-logo {
    font-size: 21px;
}


.store-button div {
    display: flex;

    flex-direction: column;
}


.store-button small {
    font-size: 9px;

    opacity: 0.82;
}


.store-button strong {
    font-size: 17px;
}


.download-phone-area {
    position: relative;

    display: grid;

    place-items: center;

    background:
        rgba(255,255,255,0.12);
}


.download-glow {
    position: absolute;

    width: 360px;

    height: 360px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(255,255,255,0.69),
            rgba(255,255,255,0)
        );
}


.phone-preview {
    position: relative;

    z-index: 2;

    width: 235px;

    height: 440px;

    padding: 10px;

    border-radius: 42px;

    background: #181929;

    border:
        5px solid #222337;

    transform:
        rotate(7deg);

    box-shadow:
        22px 27px 40px
        rgba(73,48,22,0.25);
}


.phone-notch {
    position: absolute;

    z-index: 4;

    top: 18px;

    left: 50%;

    width: 90px;

    height: 22px;

    transform:
        translateX(-50%);

    border-radius: 999px;

    background: #181929;
}


.phone-screen {
    width: 100%;

    height: 100%;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    padding:
        25px;

    border-radius: 30px;

    background:
        linear-gradient(
            160deg,
            #89e4fc,
            #a77dff 47%,
            #ff8fb9
        );
}


.phone-app-logo {
    width: 72px;

    height: 72px;

    display: grid;

    place-items: center;

    margin-bottom: 9px;

    border-radius: 23px;

    color: white;

    background:
        linear-gradient(
            145deg,
            #8057f4,
            #ff4d91
        );

    font-size: 42px;

    font-weight: 900;

    box-shadow:
        0 9px 20px
        rgba(70,48,150,0.22);
}


.phone-screen > strong {
    color: #1b1d4a;

    font-family:
        "Comic Sans MS",
        cursive;

    font-size: 31px;
}


.phone-screen > span {
    color:
        rgba(27,34,75,0.68);

    font-size: 11px;

    font-weight: 800;
}


.phone-fake-card {
    width: 100%;

    margin-top: 27px;

    padding:
        15px;

    border-radius: 17px;

    background:
        rgba(255,255,255,0.5);

    border:
        1px solid
        rgba(255,255,255,0.6);

    backdrop-filter:
        blur(10px);
}


.phone-fake-card small {
    display: block;

    color:
        rgba(32,33,68,0.58);

    font-size: 9px;
}


.phone-fake-card b {
    display: block;

    margin-top: 4px;

    color: #20234f;
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer {
    padding:
        60px 0 25px;

    color: white;

    background:
        linear-gradient(
            #20264e,
            #151a35
        );
}


.footer-grid {
    display: grid;

    grid-template-columns:
        1.5fr
        repeat(3,1fr);

    gap: 45px;
}


.footer-custom-logo {
    filter:
        brightness(0)
        invert(1);
}


.footer-logo-word {
    color: white;
}


.footer-brand p {
    margin-top: 18px;

    color: #bfc4da;
}


.footer-column {
    display: flex;

    flex-direction: column;

    gap: 10px;
}


.footer-column h3 {
    margin-bottom: 5px;
}


.footer-column a {
    color: #bfc4da;
}


.footer-column a:hover {
    color: white;
}


.footer-bottom {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-top: 45px;

    padding-top: 22px;

    border-top:
        1px solid
        rgba(255,255,255,0.1);

    color: #9fa6c0;

    font-size: 13px;
}


.back-top {
    color: white;

    background: transparent;

    cursor: pointer;
}


/* =========================================================
   ACTIVITY MODAL
========================================================= */

.modal-overlay {
    position: fixed;

    inset: 0;

    z-index: 2000;

    display: grid;

    place-items: center;

    padding: 20px;

    background:
        rgba(17,20,45,0.68);

    backdrop-filter:
        blur(7px);

    opacity: 0;

    visibility: hidden;

    transition:
        0.25s ease;
}


.modal-overlay.open {
    opacity: 1;

    visibility: visible;
}


.activity-modal {
    position: relative;

    width:
        min(
            470px,
            100%
        );

    padding: 34px;

    border-radius: 30px;

    text-align: center;

    background: white;

    box-shadow:
        0 35px 90px
        rgba(14,10,45,0.3);

    transform:
        translateY(18px)
        scale(0.97);

    transition:
        transform 0.25s ease;
}


.modal-overlay.open
.activity-modal {
    transform:
        translateY(0)
        scale(1);
}


.modal-close {
    position: absolute;

    top: 18px;

    right: 18px;

    width: 40px;

    height: 40px;

    border-radius: 50%;

    cursor: pointer;
}


.modal-art {
    width: 120px;

    height: 120px;

    margin:
        5px auto 18px;

    display: grid;

    place-items: center;

    border-radius: 32px;

    background: #ddd4ff;

    font-size: 68px;
}


.modal-category {
    display: inline-block;

    padding:
        7px 10px;

    border-radius: 999px;

    background: #eee7ff;

    color: var(--purple);

    font-size: 12px;

    font-weight: 900;
}


.activity-modal h2 {
    margin:
        10px 0;

    font-size: 33px;
}


.activity-modal p {
    color: var(--muted);

    line-height: 1.6;
}


.modal-play {
    margin-top: 20px;

    padding:
        14px 22px;

    border-radius: 17px;

    background: var(--purple);

    color: white;

    font-weight: 900;

    cursor: pointer;
}


.loading-message {
    display: none;

    margin-top: 12px;
}


.loading-message.show {
    display: block;
}


/* =========================================================
   KEYFRAMES
========================================================= */

@keyframes activityOrbFloat {

    0%,
    100% {
        transform:
            translate(0,0)
            scale(1);
    }

    50% {
        transform:
            translate(24px,-32px)
            scale(1.08);
    }
}


@keyframes activityRingMove {

    0%,
    100% {
        transform:
            scale(0.9)
            rotate(0deg);

        opacity: 0.6;
    }

    50% {
        transform:
            scale(1.08)
            rotate(20deg);

        opacity: 0.25;
    }
}


@keyframes growthOrbMove {

    0%,
    100% {
        transform:
            translate(0,0)
            scale(1);
    }

    50% {
        transform:
            translate(30px,-27px)
            scale(1.08);
    }
}


@keyframes growthParticleMove {

    0%,
    100% {
        transform:
            translateY(0)
            rotate(0deg);

        opacity: 0.26;
    }

    50% {
        transform:
            translateY(-32px)
            rotate(30deg);

        opacity: 0.58;
    }
}


@keyframes lavenderOrbMove {

    0%,
    100% {
        transform:
            translate(0,0);
    }

    50% {
        transform:
            translate(32px,-30px);
    }
}


@keyframes bandOrbFloat {

    0%,
    100% {
        transform:
            translate(0,0)
            scale(1);
    }

    50% {
        transform:
            translate(30px,-30px)
            scale(1.08);
    }
}


@keyframes bandDotFloat {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(-35px);
    }
}


@keyframes passportOrbFloat {

    0%,
    100% {
        transform:
            translate(0,0)
            scale(1);
    }

    50% {
        transform:
            translate(31px,-29px)
            scale(1.07);
    }
}


@keyframes passportRingPulse {

    0%,
    100% {
        transform:
            scale(0.9)
            rotate(0deg);

        opacity: 0.4;
    }

    50% {
        transform:
            scale(1.08)
            rotate(17deg);

        opacity: 0.16;
    }
}


@keyframes parentsOrbFloat {

    0%,
    100% {
        transform:
            translate(0,0);
    }

    50% {
        transform:
            translate(28px,-30px);
    }
}


@keyframes downloadOrbFloat {

    0%,
    100% {
        transform:
            translate(0,0);
    }

    50% {
        transform:
            translate(32px,-27px);
    }
}


/* =========================================================
   DESKTOP WIDTH SAFETY
========================================================= */

@media (max-width: 1180px) {

    .growth-card-grid {
        gap: 10px;
    }


    .growth-card {
        min-height: 385px;
    }


    .growth-media {
        height: 210px;
    }


    .growth-copy h3 {
        font-size: 19px;
    }


    .growth-copy p {
        font-size: 10.5px;
    }


    .activity-card-image {
        max-width: 245px;

        max-height: 255px;
    }


    .activity-card[data-title="Move Mission"]
    .activity-card-image {
        max-width: 205px;
    }


    .activity-card[data-title="Nature Quest"]
    .activity-card-image {
        max-width: 210px;
    }


    .activity-card[data-title="Story Spark"]
    .activity-card-image {
        max-width: 250px;
    }


    .activity-card[data-title="Team Quest"]
    .activity-card-image {
        max-width: 225px;
    }
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 950px) {

    .hamburger {
        display: block;
    }


    .nav-menu {
        position: absolute;

        top: 72px;

        left: 20px;

        right: 20px;

        display: none;

        flex-direction: column;

        align-items: stretch;

        padding: 10px;

        border-radius: 18px;

        background:
            rgba(255,255,255,0.94);

        backdrop-filter:
            blur(20px);

        box-shadow:
            0 20px 50px
            rgba(40,35,80,0.14);
    }


    .nav-menu.open {
        display: flex;
    }


    .nav-link {
        justify-content: flex-start;

        padding:
            12px 15px;
    }


    .hero-video-section
    .hero-grid {
        grid-template-columns:
            1fr;

        min-height: auto;

        padding:
            75px 0 20px;
    }


    .hero-animation-space {
        min-height: 340px;
    }


    .activity-grid {
        grid-template-columns:
            1fr;
    }


    .activity-card-image {
        max-width: 300px;

        max-height: 290px;
    }


    .growth-card-grid {
        grid-template-columns:
            repeat(
                3,
                1fr
            );

        gap: 18px;
    }


    .personalized-grid {
        grid-template-columns:
            repeat(
                3,
                1fr
            );

        gap: 14px;
    }


    .band-video-card {
        grid-template-columns:
            1fr;
    }


    .band-video {
        height: 420px;
    }


    .band-feature-grid {
        grid-template-columns:
            1fr;
    }


    .passport-heading-new {
        grid-template-columns:
            1fr;

        gap: 18px;
    }


    .passport-card-grid {
        grid-template-columns:
            1fr;
    }


    .passport-card-wide {
        grid-column:
            auto;
    }


    .parents-card-grid {
        grid-template-columns:
            1fr;
    }


    .parent-wide {
        grid-column:
            auto;
    }


    .download-card {
        grid-template-columns:
            1fr;
    }


    .download-phone-area {
        padding:
            45px 0;
    }


    .footer-grid {
        grid-template-columns:
            1.4fr 1fr 1fr;
    }
}


/* =========================================================
   SMALL TABLET
========================================================= */

@media (max-width: 700px) {

    .container {
        width:
            calc(
                100% - 28px
            );
    }


    .parent-button {
        display: none;
    }


    .custom-logo {
        height: 49px;
    }


    .logo-word {
        font-size: 26px;
    }


    .hero-copy h1 {
        font-size: 54px;

        letter-spacing: -3px;
    }


    .hero-copy p {
        font-size: 16px;
    }


    .hero-animation-space {
        min-height: 260px;
    }


    .hero-mini-stats {
        gap: 15px;
    }


    .section {
        padding:
            72px 0;
    }


    .section-heading {
        display: block;
    }


    .section-heading p {
        margin-top: 15px;
    }


    .activity-card {
        grid-template-columns:
            1.15fr 0.85fr;

        min-height: 310px;
    }


    .activity-card-copy {
        padding:
            25px 6px 24px 25px;
    }


    .activity-label {
        margin-bottom: 27px;
    }


    .activity-image-slot {
        min-height: 310px;

        padding:
            16px 12px;
    }


    .activity-card-image {
        max-width: 220px;

        max-height: 245px;
    }


    .activity-card[data-title="Move Mission"]
    .activity-card-image {
        max-width: 180px;
    }


    .activity-card[data-title="Puzzle Planet"]
    .activity-card-image {
        max-width: 170px;
    }


    .activity-card[data-title="Nature Quest"]
    .activity-card-image {
        max-width: 180px;
    }


    .activity-card[data-title="Colour Quest"]
    .activity-card-image {
        max-width: 190px;
    }


    .activity-card[data-title="Story Spark"]
    .activity-card-image {
        max-width: 215px;
    }


    .activity-card[data-title="Team Quest"]
    .activity-card-image {
        max-width: 190px;
    }


    .growth-card-grid {
        grid-template-columns:
            repeat(
                2,
                1fr
            );
    }


    .growth-card {
        min-height: 420px;
    }


    .growth-media {
        height: 245px;
    }


    .personalized-grid {
        grid-template-columns:
            1fr;
    }


    .band-video {
        height: 340px;
    }


    .band-video-copy {
        padding:
            34px 27px;
    }


    .passport-heading-new h2 {
        letter-spacing: -2.5px;
    }


    .passport-activity-card {
        min-height: 300px;
    }


    .passport-card-copy {
        padding:
            27px 7px 25px 27px;
    }


    .passport-progress-visual,
    .passport-card-art {
        min-height: 300px;
    }


    .parent-activity-card {
        grid-template-columns:
            1.12fr 0.88fr;
    }


    .download-copy {
        padding:
            39px 28px;
    }


    .footer-grid {
        grid-template-columns:
            1fr 1fr;
    }


    .reveal-left {
        transform:
            translateX(-40px);
    }


    .reveal-right {
        transform:
            translateX(40px);
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 500px) {

    .navbar {
        min-height: 66px;
    }


    .custom-logo {
        height: 45px;
    }


    .logo-word {
        font-size: 23px;
    }


    .hero-copy h1 {
        font-size: 46px;
    }


    .hero-actions {
        flex-direction: column;
    }


    .hero-actions button {
        width: 100%;
    }


    .hero-mini-stats {
        gap: 8px;
    }


    .filter-row {
        flex-wrap: nowrap;

        overflow-x: auto;

        padding-bottom: 7px;
    }


    .filter-chip {
        flex:
            0 0 auto;
    }


    /* =====================================================
       ACTIVITY CARDS ON MOBILE
    ====================================================== */

    .activity-card {
        grid-template-columns:
            1fr;

        min-height: 520px;
    }


    .activity-card-copy {
        min-height: 305px;

        padding: 26px;

        padding-bottom: 170px;
    }


    .activity-image-slot {
        position: absolute;

        z-index: 2;

        right: 0;

        bottom: 0;

        width: 58%;

        height: 225px;

        min-height: 0;

        padding:
            12px 14px;
    }


    /*
        Mobile images stay in the lower-right visual area.
    */

    .activity-card-image {
        width: 100%;

        height: 100%;

        max-width: 205px;

        max-height: 205px;

        object-fit: contain;

        object-position:
            center bottom;
    }


    .activity-card[data-title="Move Mission"]
    .activity-card-image {
        max-width: 165px;

        max-height: 205px;
    }


    .activity-card[data-title="Puzzle Planet"]
    .activity-card-image {
        max-width: 155px;

        max-height: 155px;
    }


    .activity-card[data-title="Nature Quest"]
    .activity-card-image {
        max-width: 160px;

        max-height: 205px;
    }


    .activity-card[data-title="Colour Quest"]
    .activity-card-image {
        max-width: 170px;

        max-height: 170px;
    }


    .activity-card[data-title="Story Spark"]
    .activity-card-image {
        max-width: 205px;

        max-height: 180px;
    }


    .activity-card[data-title="Team Quest"]
    .activity-card-image {
        max-width: 180px;

        max-height: 205px;
    }


    .growth-card-grid {
        grid-template-columns:
            1fr;
    }


    .growth-card {
        min-height: 455px;
    }


    .growth-media {
        height: 280px;
    }


    .band-video {
        height: 270px;
    }


    .band-feature-card {
        min-height: 360px;
    }


    .passport-heading-new h2 {
        font-size: 48px;
    }


    .passport-activity-card {
        grid-template-columns:
            1fr;

        min-height: 515px;
    }


    .passport-card-copy {
        min-height: 300px;

        padding: 26px;
    }


    .passport-progress-visual,
    .passport-card-art {
        position: absolute;

        right: 0;

        bottom: 0;

        width: 58%;

        height: 225px;

        min-height: 0;
    }


    .passport-big-circle {
        width: 120px;

        height: 120px;
    }


    .passport-big-circle span {
        font-size: 31px;
    }


    .passport-card-wide
    .passport-card-copy {
        min-height: 330px;
    }


    .parent-activity-card {
        grid-template-columns:
            1fr;

        min-height: 515px;
    }


    .parent-card-copy {
        min-height: 300px;

        padding: 26px;
    }


    .parent-card-art {
        position: absolute;

        right: 0;

        bottom: 0;

        width: 57%;

        height: 225px;

        min-height: 0;
    }


    .download-copy h2 {
        letter-spacing: -2.5px;
    }


    .store-buttons {
        flex-direction: column;
    }


    .store-button {
        width: 100%;
    }


    .phone-preview {
        transform:
            scale(0.88)
            rotate(5deg);
    }


    .footer-grid {
        grid-template-columns:
            1fr;
    }


    .footer-bottom {
        flex-direction: column;

        align-items: flex-start;

        gap: 13px;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (
    prefers-reduced-motion:
    reduce
) {

    .section-decoration *,
    .section-decoration *::before,
    .section-decoration *::after {
        animation:
            none !important;
    }


    .reveal-left,
    .reveal-right {
        opacity: 1;

        transform: none;

        transition: none;
    }


    .activity-card-image {
        transition: none;
    }


    .activity-card:hover
    .activity-card-image {
        transform: none;
    }


    html {
        scroll-behavior: auto;
    }
}