body.marketing.dark-header header{
  background-color: transparent;
}


.zoom-video-hero-marketing{
    background-color: #000000;
    position: relative;
    width: 100%;
}

.tl-zoom-video-animation{
    position: relative;
    overflow: hidden;
    height: 100vh;
    width: 100%;
    z-index: 1; /* keep this section's own stack contained, below the percent section */
}

.zoom-video-marketing{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    height: 100%;
    width: 100%;
    clip-path: inset(38% 42%);

    will-change: clip-path, transform;
  backface-visibility: hidden;
}

.zoom-video-content-before,
.zoom-video-content-after{
    position: absolute;
    bottom: 10vh;
    left: 50%;
    transform: translateX(-50%);
    max-width: 50rem;
    width: 100%;
}

.zoom-video-content-after .tl-banner-description{
    color: #ffffff;
    text-align: center;
    opacity: 0;
}

.zoom-video-content-after .tl-section-btn {
    display: flex;
    justify-content: center;
    margin-top: 2rem;
     opacity: 0;
     transform: translateY(25px);
}

.zoom-video-content-before{
    z-index: 1;
}
.zoom-video-content-after{
    z-index: 3;
}

.zoom-video-content-before h1{
    font-size: 5.6rem;
    line-height: 1.2;
    color: #ffffff;
    text-align: center;
    font-weight: 400;
}

.tl-zoom-marketing-vdo{
   width: 100%;
    height: 100%;
    object-fit: cover;
}
 

.tl-zoom-video-animation{
    height: 100vh;
}


@media (max-width: 1280px){
  .zoom-video-content-before h1{
      font-size: 3.2rem;
  }
}
@media (max-width: 768px){
  .zoom-video-content-before h1{
      font-size: 2.5rem;
  }

  .zoom-video-marketing{
    clip-path: inset(40% 35%);

  }

  .zoom-video-content-before,
  .zoom-video-content-after{
      bottom: 15vh;
  }
}





/* campaign click */
.tl-campaign-click{
  padding: 2rem 0;
  height: 100vh;
  background-color: #000000;
  overflow: hidden;
  position: relative;
}

.tl-campagin-content{
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.tl-campaign-headline{
  color: #ffffff;
  font-size: 3.125rem;
  line-height: 1.2;
  font-weight: 400;
  margin-left: 2.5rem;
}

.tl-camnpagin-big-text{
  font-size: 23vw;
  font-weight: 400;
  line-height: 1.1;
  color: #ffffff;
  font-family: 'Apparel It', sans-serif !important;
  text-transform: uppercase;
  text-align: center;
}

.tl-campaign-middle-text{
  font-size: 2.5rem;
  font-weight: 400;
  line-height: 1.2;
  color: #ffffff;
  text-align: center;
}

.tl-campagin-description{
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;
  color: #ffffff;
  max-width: 22rem;
  margin: 0 auto;
  margin-top: 2.5rem;
}

.tl-campaign-canvas-bubles{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.tl-campaign-click .tl-base-container{
  position: relative;
  z-index: 1;
}



@media (max-width: 768px){
  .tl-campaign-headline{
    font-size: 2.3rem;
    margin-left: 0rem;
  }
  .tl-camnpagin-big-text{
    font-size: 23vw;
    text-align: center;
    margin-top: 1.5rem;
  }

  .tl-campaign-middle-text{
    font-size: 1.7rem;
    text-align: center;
    margin-top: 2rem;
  }

  .tl-campagin-description{
    font-size: 1rem;
    margin-top: 2.5rem;
  }

  /* 30rem x 35rem cards overflow phone screens — scale down, keep the aspect */
  .card-appear-video,
  .single-appeared-card{
    width: calc(100vw - 3rem);
    height: calc((100vw - 3rem) * 1.167); /* 35 / 30 aspect */
  }

  .tl-ap-card-top-text h3{
    font-size: 2.4rem;
  }
}





/* card appear on video — reference: onewhale.io stack-section */
.tl-card-appear-on-video{
  position: relative;
  width: 100%;
}

.card-appear-animation {
  position: relative;
  height: 100vh;
  width: 100%;
  overflow: hidden;
}

.card-appear-animation .tl-base-container {
  position: relative;
  width: 100%;
  height: 100%;
}

.tl-card-appear-on-video-wrapper{
  position: absolute;
  inset: 0;
}

.card-appear-video,
.single-appeared-card {
  width: 29rem;
  height: 34rem;
  position: absolute;
  top: 50%;
  left: 50%;
}

.card-appear-video {
  z-index: 0;
}

.card-appear-video video{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tl-ap-card-top-text h3{
  font-size: 4rem;
  font-weight: 400;
  line-height: 1;
  color: #ffffff;
}

.tl-ap-card-top-text h3 span{
  font-family: 'Apparel It', sans-serif !important;
}

.single-appeared-card {
  background-color: #000000;
  padding: 1.9rem 1.75rem;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  z-index: 1;
  will-change: transform;
  box-shadow: 0 18px 60px #00000059, inset 0 1px 0 0 #ffffff14;
}

.tl-ap-card-bottom-text{
  display: flex;
  justify-content: end;

}

.tl-ap-card-bottom-text ul{
  border-left: 1px solid #FFFFFF;
  padding-left: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.tl-ap-card-bottom-text ul li{
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  color: #ffffff;
}



@media (max-width: 1366px){
  .card-appear-video,
  .single-appeared-card{
    width: 26rem;
    height: 30rem;
  }
}

@media (max-width: 1024px){
  .card-appear-video,
  .single-appeared-card{
    width: 20rem;
    height: 23.34rem;
  }
}

@media (max-width: 768px){
  .card-appear-video,
  .single-appeared-card{
    width: 15rem;
    height: 17.5rem;
  }
}

@media (max-width: 450px){
  .card-appear-video,
  .single-appeared-card{
    width: 320px;
    height: 400px;
  }
  .tl-ap-card-bottom-text ul{
    gap: .8rem;
  }

  .tl-ap-card-top-text h3{
    font-size: 2.4rem;
  }
}






/* build text opportunity text effect */
.build-around-text-effect {
  width: 100%;
  overflow: hidden;
  background-color: #ffffff;
}


.build-text-inner-content {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.tl-build-main-text {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}

.tl-build-main-text h2 {
  font-size: 5.6rem;
  font-weight: 400;
  line-height: 1;
  font-family: 'Apparel It', serif, sans-serif !important;
  max-width: 42rem;
  margin: 0;
}

.tl-build-currency-number {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.tl-build-currency-number p {
  font-size: 12.5rem;
  font-weight: 400;
  line-height: 1;
  font-family: 'Apparel It', serif, sans-serif !important;
  margin: 0;
  white-space: nowrap;
}

.tl-build-bottom-content {
  position: absolute;
  right: 0;
  bottom: 10%;
  max-width: 20rem;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}

.build-bottom-inital {
  grid-area: 1 / 1 / 2 / 2;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;
  margin: 0;
  align-self: end;
}

.tl-build-content-list {
  grid-area: 1 / 1 / 2 / 2;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  align-self: end;
}

.build-content-list-single {
  grid-area: 1 / 1 / 2 / 2;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;
  opacity: 0;
  visibility: hidden;
  align-self: end;
}

.build-content-list-single h3 {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  margin-bottom: 1.25rem;
  color: #828282;
  will-change: transform, opacity;
}

/* Blur & Brightness Typography Utilities */
.blur-text .word {
  display: inline-block;
  white-space: nowrap;
  opacity: 0;
  filter: blur(8px) brightness(30%);
  will-change: filter, opacity;
}




@media (max-width: 1024px){
 .tl-build-currency-number p{
  font-size: 10.5rem;
 }
}

@media (max-width: 1024px){
 .tl-build-main-text h2{
  font-size: 4rem;
 }
 .tl-build-currency-number p{
  font-size: 9rem;
 }
}

@media (max-width: 768px){
 .tl-build-main-text h2{
  font-size: 3.2rem;
 }
 .tl-build-currency-number p{
  font-size: 7rem;
 }
 .tl-build-bottom-content{
  right: 50%;
  transform: translateX(50%);
  bottom: 15%;
  width: 100%;
 }
}

@media (max-width: 450px){
 .tl-build-main-text h2{
  font-size: 2.2rem;
 }
 .tl-build-currency-number p{
  font-size: 4.5rem;
 }
}





/*==========================================================
    INTERACTIVE GLASS STAT CARDS (from Interactive Glass.html)
    All classes scoped with tl-stats-glass- to avoid conflicts
========================================================== */
.tl-stats-cards {
    position: relative;
    height: 100vh; /* fallback (no-JS/mobile) — the stream JS overrides this inline */
}

.stats-cards-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    height: 100%;
    transform-style: preserve-3d;
}

.stats-group {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 48px;
    flex-wrap: wrap;
    transform-style: preserve-3d;
    will-change: transform;
}

/* Stream stage — created by JS on desktop only (ported from
   "Interactive Glass copy.html"). position:sticky holds the viewport
   for the section's JS-set height while the world slides along the
   33° diagonal. Mobile / no-JS never sees it and gets the static
   stacked grid above instead. */
/* pinned by ScrollTrigger (initStatsCardsScroll) instead of CSS sticky —
   sticky silently breaks when a template wrapper has overflow set,
   while a GSAP pin keeps working everywhere */
.stats-stage {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    height: 100vh;
    height: 100lvh; /* largest viewport height — covers phones when the URL bar collapses, so no gap at the bottom */
    overflow: hidden;
    perspective: 1600px;
}

.stats-stage-blobs {
    position: absolute;
    inset: -22vmax;
    z-index: 0;
    pointer-events: none;
    will-change: transform;
}

.stats-world {
    position: absolute;
    inset: 0;
    z-index: 2;
    transform-style: preserve-3d;
}

.stats-item {
    position: absolute;
    left: 0;
    top: 0;
    transform-origin: 0 0;
    will-change: transform;
    backface-visibility: hidden;
}

.stats-item.is-off { visibility: hidden; }

.stats-jf-logo img,
.stats-zara-logo img {
    width: 150px;
    display: block;
}

.stats-zara-img {
    width: 220px;
    overflow: hidden;
    box-shadow: 0 18px 60px rgba(0,0,0,.15);
}

.stats-zara-img:hover img {
    transform: scale(1.1);
    transition: .8s ease-in-out;
}

.stats-zara-img img {
    width: 100%;
    display: block;
      transition: .8s ease-in-out;

}

/* Static stacked-grid fallback — only while the stream JS has NOT
   initialised (it adds .stats-stream-on and takes over on all sizes) */
@media (max-width: 768px) {
    .tl-stats-cards:not(.stats-stream-on) {
        height: auto;
        padding: 80px 20px;
    }

    .tl-stats-cards:not(.stats-stream-on) .stats-group { gap: 24px; }
    .tl-stats-cards:not(.stats-stream-on) .stats-jf-logo img,
    .tl-stats-cards:not(.stats-stream-on) .stats-zara-logo img { width: 110px; }
    .tl-stats-cards:not(.stats-stream-on) .stats-zara-img { width: 160px; }
}

.single-glass-card {
    --mx: 50%;
    --my: 50%;
    --gx: 50%;
    --gy: 0%;
    --active: 0;
    --rx: 0deg;
    --ry: 0deg;
    --tx: 0px;
    --ty: 0px;
    --lift: 0px;
    --scale: 1;

    position: relative;
    isolation: isolate;
    width: min(390px, calc(100vw - 40px));
    aspect-ratio: .82;
    padding: 54px;
    border-radius: 36px;
    overflow: hidden;

    display: flex;
    align-items: center;

    background:
        linear-gradient(
            138deg,
            rgba(255,255,255,.38) 0%,
            rgba(255,255,255,.13) 27%,
            rgba(255,255,255,.055) 53%,
            rgba(255,255,255,.10) 74%,
            rgba(255,255,255,.29) 100%
        );

    border: 1px solid rgba(255,255,255,.78);

    backdrop-filter:
        blur(30px)
        saturate(145%)
        contrast(108%)
        brightness(1.035);
    -webkit-backdrop-filter:
        blur(30px)
        saturate(145%)
        contrast(108%)
        brightness(1.035);

    box-shadow:
        0 42px 100px rgba(36, 29, 20, .12),
        0 10px 35px rgba(36, 29, 20, .06),
        inset 0 2px 0 rgba(255,255,255,.98),
        inset 2px 0 0 rgba(255,255,255,.48),
        inset 0 -2px 0 rgba(93,74,53,.11),
        inset -2px 0 0 rgba(93,74,53,.06),
        inset 0 0 40px rgba(255,255,255,.04);

    transform:
        perspective(1050px)
        translate3d(var(--tx), calc(var(--ty) + var(--lift)), 0)
        rotateX(var(--rx))
        rotateY(var(--ry))
        scale(var(--scale));

    transform-style: preserve-3d;
    will-change: transform;
    transition: box-shadow 220ms ease;
}

.tl-stats-glass-inner {
    position: absolute;
    inset: 9px;
    z-index: 2;
    border-radius: 28px;
    pointer-events: none;
    border: 1px solid rgba(255,255,255,.22);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.28),
        inset 1px 0 0 rgba(255,255,255,.11),
        inset 0 -1px 0 rgba(76,60,43,.055),
        inset -1px 0 0 rgba(76,60,43,.035);
}

.tl-stats-glass-lens {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
    pointer-events: none;
    background:
        radial-gradient(
            160% 115% at 46% 42%,
            rgba(255,255,255,.09) 0%,
            rgba(255,255,255,.025) 46%,
            rgba(105,87,65,.025) 68%,
            rgba(255,255,255,.09) 100%
        );
}

.tl-stats-glass-reflection {
    position: absolute;
    z-index: 3;
    pointer-events: none;
    width: 170%;
    height: 46%;
    left: -35%;
    top: -14%;
    background:
        linear-gradient(
            112deg,
            transparent 0%,
            rgba(255,255,255,.015) 27%,
            rgba(255,255,255,.12) 37%,
            rgba(255,255,255,.35) 43%,
            rgba(255,255,255,.11) 49%,
            rgba(255,255,255,.025) 58%,
            transparent 72%
        );
    transform: rotate(-9deg);
    filter: blur(2px);
    mix-blend-mode: screen;
}

.tl-stats-glass-reflection-2 {
    position: absolute;
    z-index: 3;
    pointer-events: none;
    width: 32%;
    height: 135%;
    right: -9%;
    top: -15%;
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.05),
            rgba(255,255,255,.19),
            rgba(255,255,255,.04),
            transparent
        );
    transform: rotate(8deg);
    filter: blur(4px);
    mix-blend-mode: screen;
}

.tl-stats-glass-chromatic-rim {
    position: absolute;
    inset: 1px;
    z-index: 5;
    border-radius: inherit;
    pointer-events: none;
    box-shadow:
        inset 1px 0 0 rgba(109,191,255,.09),
        inset -1px 0 0 rgba(255,131,111,.08),
        inset 0 1px 0 rgba(255,255,255,.18);
}

.tl-stats-glass-edge-aura {
    position: absolute;
    inset: -40px;
    z-index: -4;
    border-radius: 64px;
    pointer-events: none;

    background:
        radial-gradient(
            165px circle at calc(var(--gx) + 40px) calc(var(--gy) + 40px),
            rgba(255, 94, 0, .90) 0%,
            rgba(255, 126, 10, .66) 20%,
            rgba(255, 157, 47, .34) 42%,
            rgba(255, 190, 108, .12) 62%,
            transparent 80%
        );

    filter: blur(25px);
    opacity: var(--active);
}

.tl-stats-glass-edge-halo {
    position: absolute;
    inset: -70px;
    z-index: -5;
    border-radius: 82px;
    pointer-events: none;

    background:
        radial-gradient(
            235px circle at calc(var(--gx) + 70px) calc(var(--gy) + 70px),
            rgba(255, 120, 14, .34),
            rgba(255, 155, 60, .15) 38%,
            transparent 74%
        );

    filter: blur(42px);
    opacity: calc(var(--active) * .95);
}

.tl-stats-glass-static-rim {
    position: absolute;
    inset: 0;
    z-index: 6;
    border-radius: inherit;
    pointer-events: none;
    box-shadow:
        inset 1.5px 1.5px 0 rgba(255,255,255,.72),
        inset -1.5px -1.5px 0 rgba(92,72,51,.09),
        inset 0 0 0 1px rgba(255,255,255,.16),
        inset 0 0 14px rgba(255,255,255,.04);
}

.tl-stats-glass-edge-light {
    position: absolute;
    inset: -1px;
    z-index: 8;
    border-radius: inherit;
    padding: 3px;
    pointer-events: none;

    background:
        radial-gradient(
            190px circle at var(--gx) var(--gy),
            rgba(255, 90, 0, 1) 0%,
            rgba(255, 116, 6, 1) 12%,
            rgba(255, 148, 32, 1) 25%,
            rgba(255, 188, 91, .88) 40%,
            rgba(255, 225, 186, .56) 53%,
            rgba(255,255,255,.20) 65%,
            transparent 78%
        );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;

    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;

    opacity: var(--active);
    filter:
        drop-shadow(0 0 10px rgba(255,110,0,.58))
        drop-shadow(0 0 22px rgba(255,133,15,.32));
}

.tl-stats-glass-edge-glint {
    position: absolute;
    inset: -1px;
    z-index: 9;
    border-radius: inherit;
    padding: 1px;
    pointer-events: none;

    background:
        radial-gradient(
            96px circle at var(--gx) var(--gy),
            rgba(255,255,255,1),
            rgba(255,248,233,.74) 22%,
            rgba(255,184,91,.28) 47%,
            transparent 74%
        );

    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;

    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;

    opacity: calc(var(--active) * .98);
}

.tl-stats-glass-light-spill {
    position: absolute;
    inset: 0;
    z-index: 4;
    border-radius: inherit;
    pointer-events: none;
    background:
        radial-gradient(
            280px circle at var(--mx) var(--my),
            rgba(255, 118, 10, .24) 0%,
            rgba(255, 148, 34, .13) 24%,
            rgba(255, 183, 91, .055) 48%,
            transparent 72%
        );
    opacity: var(--active);
}

.tl-stats-glass-specular {
    position: absolute;
    inset: 0;
    z-index: 5;
    border-radius: inherit;
    pointer-events: none;
    background:
        radial-gradient(
            125px circle at var(--mx) var(--my),
            rgba(255,255,255,.36) 0%,
            rgba(255,255,255,.13) 30%,
            rgba(255,255,255,.03) 52%,
            transparent 73%
        );
    opacity: calc(.30 + (var(--active) * .70));
    mix-blend-mode: screen;
}

.tl-stats-glass-caustic {
    position: absolute;
    inset: -25%;
    z-index: 4;
    border-radius: inherit;
    pointer-events: none;

    background:
        conic-gradient(
            from 145deg at var(--mx) var(--my),
            transparent 0deg 115deg,
            rgba(255,255,255,.09) 135deg,
            rgba(255,255,255,.27) 151deg,
            rgba(255,255,255,.05) 164deg,
            transparent 182deg 360deg
        );

    filter: blur(12px);
    opacity: calc(.18 + (var(--active) * .38));
    mix-blend-mode: screen;
}

.tl-stats-glass-content {
    position: relative;
    z-index: 20;
    transform: translateZ(32px);
}

.tl-stats-glass-number {
    margin: 0;
    font-size: clamp(74px, 8vw, 104px);
    line-height: .86;
    font-weight: 420;
    letter-spacing: -.075em;
    color: rgba(16,15,14,.96);
    text-shadow:
        0 1px 0 rgba(255,255,255,.46),
        0 8px 28px rgba(0,0,0,.025);
}

.tl-stats-glass-label {
    margin-top: 30px;
    font-size: 25px;
    line-height: 1.25;
    letter-spacing: -.035em;
    color: #000000;
}

.tl-stats-glass-accent {
    width: 3rem;
    height: 3px;
    margin-top: 36px;
    border-radius: 999px;
    background: #ff7900;
    box-shadow:
        0 0 14px rgba(255,121,0,.42),
        0 0 34px rgba(255,121,0,.18);
}

.stats-zara-img{
  width: 25vw;
  height: auto;
}

.stats-zara-img img{
  width: 100%;
  height: 100%;
}

@media (max-width: 1100px) {
  .stats-zara-img{
    width: 40vw;
  }
}

@media (max-width: 768px) {
  .stats-zara-img{
    width: 320px;
  }
}

@media (max-width: 520px) {
    .single-glass-card {
        padding: 42px;
        border-radius: 28px;
    }

    .tl-stats-glass-inner { border-radius: 21px; }
    /* .tl-stats-glass-label { font-size: 20px; } */
}

@media (prefers-reduced-motion: reduce) {
    .single-glass-card {
        transition: none;
        transform: none !important;
    }
}

/* The hover-glow layers (aura/halo/spill/specular/caustic/edge-light/glint) are
   only ever animated by the desktop mouse loop (initGlassHoverCards). On touch
   --active stays 0, so they render invisible but still cost blur + blend every
   frame while the cards stream. Removing them on touch is visually identical. */
@media (pointer: coarse) {
    .tl-stats-glass-edge-aura,
    .tl-stats-glass-edge-halo,
    .tl-stats-glass-light-spill,
    .tl-stats-glass-specular,
    .tl-stats-glass-caustic,
    .tl-stats-glass-edge-light,
    .tl-stats-glass-edge-glint {
        display: none;
    }
}

