/* =====================================================
   PT PRINTWORK MULTIGRAPH INDONESIA
   Brand Theme — Navy & Lime
   ===================================================== */

:root {
  /* PT PRINTWORK BRAND COLORS (from Company Profile PDF) */
  --bg-primary: #1B2A4A;
  /* Dark navy */
  --bg-secondary: #243B5A;
  /* Lighter navy */
  --bg-deep: #0F1B33;
  /* Deepest navy for contrast */
  --text-primary: #FFFFFF;
  /* White text on dark */
  --text-secondary: rgba(255, 255, 255, 0.7);
  --accent: #98CA3F;
  /* Official brand lime green from PDF */
  --accent-hover: #82AD36;

  --font-family: 'Satoshi', sans-serif;
  --font-heading: 'Playfair Display', serif;

  --radius-btn: 44px;
  --radius-card: 20px;
  --ease: cubic-bezier(0.19, 1, 0.22, 1);
}

/* ── SECTION LABEL (uppercase tracked text) ────────── */
.section-label {
  font-family: var(--font-family);
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-size: 12px;
  font-weight: 500;
  color: var(--accent);
  margin-bottom: 16px;
}

/* ── COLOR THEMES (45% Navy / 40% Lime / 15% White) ── */

/* LIME SECTIONS — lime bg, navy text, white cards */
.color-lime {
  background: transparent !important;
  color: #FFFFFF !important;
}

.color-lime h1,
.color-lime h2,
.color-lime h3,
.color-lime h4 {
  color: #FFFFFF !important;
}

.color-lime p,
.color-lime li {
  color: rgba(255, 255, 255, 0.8) !important;
}

.color-lime strong {
  color: #FFFFFF !important;
}

/* Eco cards on lime bg */
.color-lime .eco-card {
  background: rgba(27, 42, 74, 0.4) !important;
  /* Clear navy glass */
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  color: #98CA3F !important;
  /* Lime green text */
  border-color: rgba(152, 202, 63, 0.3) !important;
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.3) !important;
}

.color-lime .eco-card:hover {
  background: rgba(27, 42, 74, 0.8) !important;
  border-color: #98CA3F !important;
}

.color-lime .eco-icon {
  background: rgba(152, 202, 63, 0.08) !important;
  border-color: rgba(152, 202, 63, 0.12) !important;
  box-shadow: inset 0 0 25px rgba(152, 202, 63, 0.05) !important;
}

.color-lime .eco-card p {
  color: rgba(152, 202, 63, 0.85) !important;
}

.color-lime .eco-card strong {
  color: #98CA3F !important;
}

/* ── RESET & BASE ──────────────────────────────────── */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-family: var(--font-family);
  background-color: var(--bg-primary);
  background-image: url('media/gradient_background.png');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-repeat: no-repeat;
  color: var(--text-primary);
  scroll-behavior: smooth;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

body {
  line-height: 1.5;
}

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

img {
  max-width: 100%;
  display: block;
}

.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 5%;
}

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

/* ── LOADING SCREEN ────────────────────────────────── */
.loader {
  position: fixed;
  inset: 0;
  background-color: var(--bg-deep);
  /* Use the deepest navy */
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.4s var(--ease), visibility 0.4s var(--ease);
}

.loader.hidden {
  opacity: 0;
  visibility: hidden;
}

.loader-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.loader-logo {
  height: 80px;
  animation: pulse 2s infinite ease-in-out;
}

.loader-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid rgba(152, 202, 63, 0.2);
  border-top-color: var(--accent);
  /* Lime green accent */
  border-radius: 50%;
  animation: spin 1s infinite linear;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes pulse {

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

  50% {
    opacity: 0.7;
    transform: scale(0.95);
  }
}

/* ── SCROLL PROGRESS (Optional, retained for scrolly) ── */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 3px;
  background: var(--text-primary);
  z-index: 10000;
}

/* ── NAVBAR ────────────────────────────────────────── */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  padding: 24px 0;
  transition: background 0.4s var(--ease), padding 0.4s var(--ease);
}

.navbar.scrolled {
  background: rgba(27, 42, 74, 0.9);
  /* Dark navy semi */
  backdrop-filter: blur(12px);
  padding: 16px 0;
}

.nav-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 4%;
}

/* ── SCROLL REVEAL ANIMATIONS ─────────────────────── */
.reveal,
.reveal-up,
.reveal-left,
.reveal-right,
.reveal-scale {
  opacity: 0;
  transition: all 0.8s cubic-bezier(0.19, 1, 0.22, 1);
  will-change: transform, opacity;
}

.reveal-up {
  transform: translateY(40px);
}

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

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

.reveal-scale {
  transform: scale(0.85);
}

.reveal.active,
.reveal-up.active,
.reveal-left.active,
.reveal-right.active,
.reveal-scale.active {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

/* .stagger-reveal handled by JS inline styles */

.nav-logo-img {
  height: 64px;
  /* Increased from 48px */
  /* filter: brightness(0) invert(1); Removed to keep original colors */
}

.nav-center {
  flex-grow: 1;
  display: flex;
  justify-content: center;
}

.nav-links {
  display: flex;
  gap: 32px;
}

.nav-links a {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.05em;
  opacity: 0.8;
  position: relative;
  transition: opacity 0.3s;
}

.nav-links a:hover {
  opacity: 1;
}

.nav-links a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0%;
  height: 1px;
  background: var(--text-primary);
  transition: width 0.3s var(--ease);
}

.nav-links a:hover::after {
  width: 100%;
}


.nav-right {
  display: flex;
  align-items: center;
  gap: 20px;
}

.lang-switch {
  font-size: 14px;
  text-transform: uppercase;
  font-weight: 500;
  opacity: 0.8;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 44px;
  padding: 8px 18px;
  transition: border-color 0.3s;
}

.lang-switch:hover {
  border-color: rgba(255, 255, 255, 0.6);
}

.lang-switch .active {
  opacity: 1;
  font-weight: 700;
}

.nav-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  flex-direction: column;
  gap: 4px;
}

.nav-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--text-primary);
}

/* Responsive nav breakpoint removed — PC layout preserved on all devices */

/* ── HERO SCROLLY SECTION ───────────────────────────── */
.hero {
  position: relative;
  width: 100%;
  height: 400vh;
  /* Scroll length */
  background: #0F1B33;
  /* Deep navy behind canvas */
  color: var(--text-primary);
}

.scrolly-container {
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: 1;
  overflow: hidden;
}

#hero-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-fit: cover;
  opacity: 1;
}

.hero-vignette {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(15, 27, 51, 0.95) 0%, transparent 35%, transparent 65%, rgba(15, 27, 51, 0.95) 100%);
  pointer-events: none;
  z-index: 2;
}

.hero-narrative {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
  width: 95%;
  max-width: 1600px;
  height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.narrative-slide {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1s var(--ease), visibility 1s, transform 1s var(--ease);
  transform: translateY(20px);
}

.narrative-slide.active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.ecosystem-slide {
  width: 100%;
  height: 100%;
  padding-bottom: 5vh;
}

.hero-motto {
  font-size: clamp(14px, 2vw, 18px);
  margin-bottom: 24px;
  letter-spacing: 0.02em;
  opacity: 0.8;
  max-width: 600px;
}

.hero-tagline {
  font-size: clamp(40px, 6vw, 84px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 32px;
}

/* ── BUTTONS ───────────────────────────────────────── */
.btn {
  display: inline-block;
  padding: 16px 32px;
  border-radius: var(--radius-btn);
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), opacity 0.3s;
  text-align: center;
}

.btn-primary {
  background-color: var(--accent);
  color: #1B2A4A;
  font-weight: 600;
}

.btn-primary:hover {
  background-color: var(--accent-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(165, 199, 39, 0.3);
}

.btn-outline {
  background-color: transparent;
  color: var(--text-primary);
  border: 1px solid var(--text-primary);
}

.btn-outline:hover {
  background-color: rgba(255, 255, 255, 0.1);
  transform: translateY(-2px);
}


/* ── SECTIONS BASE ─────────────────────────────────── */
.content-wrapper-blurred {
  /* Removed heavy backdrop-filter (40px) which was killing performance */
  background: rgba(15, 27, 51, 0.85);
  /* Slightly darker to maintain contrast without blur */
  position: relative;
  z-index: 10;
}

.section {
  position: relative;
  z-index: 10;
  background: transparent;
  padding: 120px 0;
}


.theme-light .bento-concentric-1 .r1,
.theme-light .bento-concentric-1 .r2,
.theme-light .bento-concentric-2 .a1,
.theme-light .bento-concentric-2 .a2 {
  background: rgba(0, 0, 0, 0.02);
}


/* ── ECOSYSTEM (Floating Square) ───────────────────── */
.section-ecosystem {
  position: relative;
  height: 100vh;
  min-height: 800px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.ecosystem-container {
  position: relative;
  width: 100%;
  max-width: 1400px;
  /* Balanced for 1366 layout */
  height: 85vh;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Center items removed based on user request */

.eco-wrapper {
  position: absolute;
  z-index: 3;
}

.eco-card {
  width: 460px;
  /* Reverted to 460px to prevent overlapping on 1366px screens */
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 32px;
  padding: 36px;
  /* Optimized padding */
  display: flex;
  align-items: center;
  gap: 28px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
  transition: transform 0.4s var(--ease), border-color 0.4s, background 0.4s;
}

.eco-card:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(165, 199, 39, 0.5);
  transform: translateY(-8px) scale(1.02) !important;
}

.eco-icon {
  width: 84px;
  /* Optimized size */
  height: 84px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 38px;
  box-shadow: inset 0 0 25px rgba(255, 255, 255, 0.1);
}

.eco-card p {
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
  color: var(--text-secondary);
}

.eco-card strong {
  color: var(--text-primary);
  font-weight: 500;
  font-size: 19px;
}

/* Spread positions to match ERTQA more closely */
.eco-top-left {
  top: 8%;
  left: 2%;
}

.eco-top-left .eco-card {
  animation: floatApp 7s ease-in-out infinite alternate;
}

.eco-top-right {
  top: 22%;
  right: 2%;
}

.eco-top-right .eco-card {
  animation: floatApp 8s ease-in-out infinite alternate-reverse;
}

.eco-bottom-left {
  bottom: 18%;
  left: 2%;
}

.eco-bottom-left .eco-card {
  animation: floatApp 9s ease-in-out infinite alternate;
}

.eco-bottom-right {
  bottom: 8%;
  right: 2%;
}

.eco-bottom-right .eco-card {
  animation: floatApp 10s ease-in-out infinite alternate-reverse;
}

@keyframes floatApp {
  0% {
    transform: translate(0, 0);
  }

  100% {
    transform: translate(10px, -10px);
  }
}

/* Responsive ecosystem breakpoint removed — PC layout preserved on all devices */

/* ── HORIZONTAL SCROLL SERVICES ────────────────────── */
.section-horizontal {
  background: transparent;
  padding: 0;
}

.sticky-container {
  height: 500vh;
  /* Creates scrolling space */
  position: relative;
}

/* This container holds the sticky view */
.horizontal-track-container {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  display: block;
  overflow: hidden;
}

/* This is the track that actually slides horizontally */
.horizontal-track {
  display: flex;
  width: max-content;
  /* Ensure track is as wide as its children */
  padding-left: 10vw;
  padding-right: 10vw;
  /* End padding */
  gap: 40px;
  height: 100%;
  align-items: center;
  will-change: transform;
  flex-shrink: 0;
}

.hz-card {
  flex-shrink: 0;
  width: 75vw;
  max-width: 1100px;
  height: 70vh;
  min-height: 500px;
  background: rgba(15, 27, 51, 0.6);
  backdrop-filter: blur(12px);
  /* Reduced from 20px */
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(152, 202, 63, 0.15);
  border-radius: 20px;
  display: flex;
  overflow: hidden;
}

.hz-content {
  flex: 1;
  padding: 60px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.hz-icon {
  width: 56px;
  height: 56px;
  background: rgba(152, 202, 63, 0.08);
  border: 1px solid rgba(152, 202, 63, 0.3);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin-bottom: 32px;
}

.hz-title {
  font-family: var(--font-heading);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.1;
  margin-bottom: 24px;
}

.hz-desc {
  font-size: 16px;
  opacity: 0.8;
  margin-bottom: 24px;
  line-height: 1.6;
}

.hz-list {
  padding-left: 20px;
}

.hz-list li {
  font-size: 14px;
  color: var(--accent) !important;
  opacity: 1;
  margin-bottom: 12px;
  position: relative;
}

.hz-list li::before {
  content: '';
  position: absolute;
  left: -24px;
  top: 6px;
  width: 14px;
  height: 8px;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='8' viewBox='0 0 14 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4.5C2.5 3.5 4 3.5 5.5 4.5C7 5.5 8.5 5.5 10 4.5C11.5 3.5 13 3.5 14 4.5' stroke='%2398CA3F' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

.hz-image {
  flex: 1;
  overflow: hidden;
}

.hz-image img,
.hz-image video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--ease);
}

.hz-card:hover .hz-image img,
.hz-card:hover .hz-image video {
  transform: scale(1.03);
}

@media (max-width: 1024px) {
  .hz-card {
    width: 90vw;
    height: 80vh;
    flex-direction: column;
  }

  .hz-content {
    padding: 40px;
  }

  .hz-title {
    font-size: 28px;
  }
}

/* ── APPROACH (Cards) ─────────────────────────────── */
.section-approach {
  background: transparent;
  padding: 120px 0;
}

.section-title {
  font-family: var(--font-heading);
  font-size: clamp(32px, 4vw, 52px);
  margin-bottom: 60px;
  text-align: center;
  font-weight: 400;
  font-style: italic;
}

.approach-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

.approach-item {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 40px;
  min-height: 380px;
  background: rgba(15, 27, 51, 0.4);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(152, 202, 63, 0.12);
  transition: border-color 0.4s;
}

.approach-item:hover {
  border-color: rgba(152, 202, 63, 0.3);
}

.approach-item .approach-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  opacity: 0.4;
  transition: transform 1s var(--ease), opacity 0.5s;
}

.approach-item:hover .approach-bg {
  transform: scale(1.05);
  opacity: 0.6;
}

.approach-item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--bg-deep) 0%, transparent 70%);
  z-index: 2;
  opacity: 0.9;
}

.approach-content {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.approach-icon {
  margin-bottom: auto;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(152, 202, 63, 0.3);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  background: rgba(152, 202, 63, 0.08);
  margin-top: -10px;
}

.approach-item h4 {
  font-family: var(--font-heading);
  font-size: 26px;
  font-weight: 400;
  font-style: italic;
  margin: 0 0 12px;
}

.approach-item p {
  font-size: 15px;
  opacity: 0.7;
  margin: 0;
  max-width: 90%;
  line-height: 1.6;
}

@media (max-width: 768px) {
  .approach-grid {
    grid-template-columns: 1fr;
  }
}

/* ── TESTIMONIALS / PRODUCTS GALLERY ─────────── */
.section-testimonials {
  padding: 100px 0;
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 60px;
}

.test-card {
  background: rgba(15, 27, 51, 0.4);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 28px;
  overflow: hidden;
  transition: transform 0.4s var(--ease), border-color 0.4s;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.test-card:hover {
  transform: translateY(-10px);
  border-color: var(--accent);
}

.test-img-box {
  width: 100%;
  height: 240px;
  overflow: hidden;
  position: relative;
}

.test-img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease);
}

.test-card:hover .test-img-box img {
  transform: scale(1.1);
}

.test-content {
  padding: 30px;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.test-quote {
  font-family: var(--font-heading);
  font-size: 20px;
  font-style: italic;
  color: var(--text-primary);
  line-height: 1.4;
  margin-bottom: 20px;
  position: relative;
}

.test-quote::before {
  content: '"';
  font-size: 40px;
  color: var(--accent);
  position: absolute;
  top: -20px;
  left: -10px;
  opacity: 0.3;
}

.test-info {
  margin-top: auto;
}

.test-author {
  font-weight: 600;
  color: var(--accent);
  font-size: 16px;
  margin-bottom: 4px;
}

.test-role {
  font-size: 13px;
  color: var(--text-secondary);
}

@media (max-width: 992px) {
  .testimonial-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .testimonial-grid {
    grid-template-columns: 1fr;
  }
}

/* ── BRANDS ─────────────────────────────── */
.section-brands-bento {
  padding: 80px 0;
  overflow: hidden;
}

.brands-bento-card {
  position: relative;
  background: rgba(15, 27, 51, 0.4);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(152, 202, 63, 0.12);
  border-radius: 32px;
  padding: 100px 40px;
  min-height: 800px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.brands-text-center {
  text-align: center;
  z-index: 2;
  max-width: 500px;
}

.brands-text-center h2 {
  font-family: var(--font-heading);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 400;
  font-style: italic;
  margin-bottom: 20px;
}

.brands-text-center p {
  font-size: 14px;
  opacity: 0.6;
  line-height: 1.6;
}

.brands-3d-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  perspective: 1200px;
  overflow: hidden;
  z-index: 1;
}

.sponsor-spinner-layer {
  position: absolute;
  top: 42%;
  left: 50%;
  width: 200vw;
  height: 200vw;
  transform: translate(-50%, -50%) rotateX(55deg);
  transform-style: preserve-3d;
  display: flex;
  align-items: center;
  justify-content: center;
}

@keyframes spin-slow {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes spin-slow-reverse {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(-360deg);
  }
}

@keyframes counter-spin-slow {
  from {
    transform: translate(-50%, -50%) rotate(0deg) rotateX(-55deg);
  }

  to {
    transform: translate(-50%, -50%) rotate(-360deg) rotateX(-55deg);
  }
}

@keyframes counter-spin-slow-reverse {
  from {
    transform: translate(-50%, -50%) rotate(0deg) rotateX(-55deg);
  }

  to {
    transform: translate(-50%, -50%) rotate(360deg) rotateX(-55deg);
  }
}

.sponsor-spinner {
  position: absolute;
  border-radius: 50%;
  border: 1px dashed rgba(255, 255, 255, 0.1);
  transform-style: preserve-3d;
}

.sponsor-spinner-1 {
  width: 880px;
  height: 880px;
  animation: spin-slow 40s linear infinite;
}

.sponsor-logo-wrapper {
  position: absolute;
  width: 140px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform-style: preserve-3d;
  filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.2));
}

.sponsor-logo-wrapper.astra-logo {
  width: 280px;
  height: 140px;
}

.sponsor-spinner-1 .sponsor-logo-wrapper {
  animation: counter-spin-slow 40s linear infinite;
}

.sponsor-logo-wrapper img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  opacity: 1;
}

.brands-gradient-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, var(--bg-deep) 0%, transparent 60%);
  pointer-events: none;
  z-index: 2;
}

/* ── LOGO MARQUEE ───────────────────────────────── */
.logo-marquee {
  margin-top: 60px;
  overflow: hidden;
  padding: 30px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.marquee-track {
  display: flex;
  align-items: center;
  animation: marquee-scroll 30s linear infinite;
  width: max-content;
}

.marquee-track img {
  height: 50px;
  margin-right: 100px;
  opacity: 1;
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

.marquee-track img:hover {
  opacity: 1;
  transform: scale(1.1);
}

@keyframes marquee-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-33.333%);
  }
}

@media (max-width: 768px) {
  .sponsor-spinner-1 {
    width: 380px;
    height: 380px;
  }

  .sponsor-logo-wrapper {
    width: 120px;
    height: 60px;
  }

  .sponsor-logo-wrapper.astra-logo {
    width: 180px;
    height: 90px;
  }

  .brands-bento-card {
    min-height: 400px;
  }
}

/* ── DETAILS STATS BENTO ─────────────────────────── */
.section-stats-bento {
  padding-bottom: 120px;
}

.grid-bento {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: minmax(200px, auto);
  gap: 16px;
}

.bento-box {
  background: rgba(15, 27, 51, 0.4);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(152, 202, 63, 0.15);
  border-radius: 24px;
  padding: 40px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Base text styles */
.bento-num {
  font-family: var(--font-heading);
  font-size: 52px;
  font-weight: 400;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 12px;
}

.bento-text {
  font-size: 15px;
  opacity: 0.7;
  line-height: 1.4;
  margin: 0;
}

.bento-text-large {
  font-family: var(--font-heading);
  font-size: 24px;
  font-weight: 400;
  font-style: italic;
  line-height: 1.3;
  margin-bottom: 8px;
}

.bento-subtext {
  font-size: 14px;
  opacity: 0.5;
  margin: 0;
}

.unit {
  font-size: 24px;
  vertical-align: super;
}

/* Content alignments */
.bento-content-center {
  margin: auto;
  text-align: center;
  position: relative;
  z-index: 2;
}

.bento-content-top {
  margin: 0 auto auto auto;
  text-align: center;
  position: relative;
  z-index: 2;
}

.bento-content-top-left {
  position: relative;
  z-index: 2;
}

/* Placements */
.bento-1 {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

.bento-2 {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
}

.bento-3 {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
}

.bento-4 {
  grid-column: 3 / 4;
  grid-row: 1 / 3;
}

.bento-5 {
  grid-column: 1 / 2;
  grid-row: 3 / 4;
}

.bento-6 {
  grid-column: 2 / 3;
  grid-row: 3 / 4;
}

.bento-7 {
  grid-column: 3 / 4;
  grid-row: 3 / 4;
}

/* Full height video for bento boxes */
.bento-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Background Graphics */
.bento-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bento-concentric-1 .ring {
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.bento-concentric-1 .r1 {
  width: 150px;
  height: 150px;
  background: rgba(0, 0, 0, 0.2);
}

.bento-concentric-1 .r2 {
  width: 250px;
  height: 250px;
  background: rgba(0, 0, 0, 0.1);
}

.bento-concentric-1 .r3 {
  width: 350px;
  height: 350px;
}

.bento-glow-center {
  background: radial-gradient(circle, rgba(165, 199, 39, 0.05) 0%, transparent 60%);
}

.bento-concentric-2 .arc {
  position: absolute;
  bottom: 0px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 50% 50% 0 0;
  left: 50%;
  transform: translateX(-50%);
}

.bento-concentric-2 .a1 {
  width: 200px;
  height: 100px;
  background: rgba(0, 0, 0, 0.1);
}

.bento-concentric-2 .a2 {
  width: 300px;
  height: 150px;
  background: rgba(0, 0, 0, 0.05);
}

.bento-concentric-2 .a3 {
  width: 400px;
  height: 200px;
}

.bento-infinity {
  background: radial-gradient(circle at bottom left, rgba(255, 255, 255, 0.05) 0%, transparent 50%);
}

.bento-rectangles .rect {
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 30px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.bento-rectangles .rt1 {
  width: 100px;
  height: 100px;
}

.bento-rectangles .rt2 {
  width: 160px;
  height: 160px;
}

.bento-rectangles .rt3 {
  width: 220px;
  height: 220px;
}

.bento-palm {
  font-size: 140px;
  opacity: 0.1;
  bottom: -20px;
  right: 0px;
  position: absolute;
  margin-left: auto;
  line-height: 1;
}

@media (max-width: 1024px) {
  .grid-bento {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }

  .bento-1,
  .bento-2,
  .bento-3,
  .bento-4,
  .bento-5,
  .bento-6,
  .bento-7 {
    grid-column: 1 / 2;
    grid-row: auto;
    min-height: 250px;
  }
}

/* ── CTA / FOOTER ──────────────────────────────────── */
.section-cta {
  background: rgba(15, 27, 51, 0.4);
  backdrop-filter: blur(10px);
  border-radius: 40px 40px 0 0;
  padding: 120px 0;
  position: relative;
  overflow: hidden;
}

.section-cta::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
}

.cta-title {
  font-family: var(--font-heading);
  font-size: clamp(36px, 5vw, 64px);
  font-weight: 400;
  font-style: italic;
  margin-bottom: 24px;
}

.cta-subtitle {
  font-size: 20px;
  opacity: 0.7;
  margin-bottom: 48px;
}

.cta-buttons {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.site-footer {
  background: rgba(15, 27, 51, 0.4);
  backdrop-filter: blur(10px);
  padding: 60px 0 40px;
  text-align: center;
  font-size: 14px;
  border-top: 1px solid rgba(152, 202, 63, 0.15);
}

.footer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.footer-logo {
  height: 64px;
  /* filter: brightness(0) invert(1); Removed to keep original colors */
  opacity: 1;
  /* Changed from 0.7 for full visibility */
}

.footer-tagline {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 16px;
  opacity: 0.5;
}

.footer-bottom {
  opacity: 0.4;
}

/* ── REVEAL ON SCROLL ──────────────────────────────── */
.reveal-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}

.reveal-up.active {
  opacity: 1;
  transform: translateY(0);
}