/* ================================================================
   assets/css/style.css
   TUNAS TOYOTA CIPUTAT — IMMERSIVE LUXURY AUTOMOTIVE UI
   Design Direction: Dark Obsidian Showroom × 3D Cinematic Animation
   ================================================================ */

/* 1. GOOGLE FONTS */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@300;400;600;700;900&family=Rajdhani:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap');

/* 2. DESIGN TOKENS */
:root {
  --clr-red:      #EB0A1E;
  --clr-red-dark: #a50714;
  --clr-red-glow: rgba(235,10,30,0.35);
  --clr-black:    #060609;
  --clr-obsidian: #0D0D12;
  --clr-dark:     #141419;
  --clr-panel:    #1A1A22;
  --clr-border:   rgba(255,255,255,0.07);
  --clr-chrome:   #B8B8C0;
  --clr-white:    #F0F0F5;
  --clr-muted:    rgba(240,240,245,0.55);
  --font-display: 'Barlow Condensed', sans-serif;
  --font-body:    'Rajdhani', sans-serif;
  --font-mono:    'DM Mono', monospace;
  --ease-expo:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-back:    cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-circ:    cubic-bezier(0.77, 0, 0.18, 1);
  --shadow-red:   0 0 40px rgba(235,10,30,0.25), 0 8px 32px rgba(0,0,0,0.5);
  --shadow-card:  0 4px 24px rgba(0,0,0,0.4);
  --shadow-deep:  0 24px 64px rgba(0,0,0,0.7);
  --radius-sm:  6px; --radius-md:  12px; --radius-lg:  20px; --radius-xl:  32px;
}

/* 3. BASE RESET */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
  font-family: var(--font-body);
  background: var(--clr-black);
  color: var(--clr-white);
  cursor: none;
  overflow-x: hidden;
}

/* 4. CUSTOM SCROLLBAR */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--clr-black); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--clr-red), var(--clr-red-dark));
  border-radius: 2px;
}

/* 5. CUSTOM CURSOR */
#tt-cursor-dot, #tt-cursor-ring {
  position: fixed; top: 0; left: 0;
  pointer-events: none; z-index: 99999;
  mix-blend-mode: difference;
}
#tt-cursor-dot {
  width: 8px; height: 8px; background: #fff;
  border-radius: 50%; transform: translate(-50%, -50%);
  transition: transform 0.1s var(--ease-expo), width 0.3s, height 0.3s, opacity 0.3s;
}
#tt-cursor-ring {
  width: 36px; height: 36px;
  border: 1.5px solid rgba(235,10,30,0.8);
  border-radius: 50%; transform: translate(-50%, -50%);
  transition: transform 0.08s linear, width 0.35s var(--ease-back), height 0.35s var(--ease-back), border-color 0.3s;
}
body.cursor-hover #tt-cursor-dot { transform: translate(-50%,-50%) scale(2.5); opacity: 0.5; }
body.cursor-hover #tt-cursor-ring { width: 60px; height: 60px; border-color: var(--clr-red); }
body.cursor-click #tt-cursor-dot { transform: translate(-50%,-50%) scale(0.5); }
body.cursor-click #tt-cursor-ring { transform: translate(-50%,-50%) scale(1.5); opacity: 0; }

/* 6. LOADING SCREEN */
#loader {
  position: fixed; inset: 0;
  background: var(--clr-black);
  z-index: 9999;
  display: flex; align-items: center; justify-content: center; flex-direction: column;
  overflow: hidden;
}
#loader::before {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg,transparent,transparent calc(12.5% - 1px),rgba(255,255,255,0.02) calc(12.5% - 1px),rgba(255,255,255,0.02) 12.5%);
}
#loader .loader-inner { display:flex; flex-direction:column; align-items:center; gap:28px; z-index:1; }
#loader img { filter: brightness(0) invert(1); animation: loaderPulse 1.5s ease infinite alternate; }
#loader .loader-bar-wrap { width: 200px; height: 2px; background: rgba(255,255,255,0.08); border-radius: 1px; overflow: hidden; }
#loader .loader-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--clr-red), #ff4d5e);
  border-radius: 1px;
  animation: loaderBar 1.8s var(--ease-circ) forwards;
  box-shadow: 0 0 12px var(--clr-red-glow);
}
#loader p { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.3em; color: rgba(255,255,255,0.3); animation: loaderPulse 1s ease infinite alternate; }
#loader.hide-loader { animation: loaderExit 0.9s var(--ease-circ) forwards 0.2s; }
#loader .text-center { display: flex; flex-direction: column; align-items: center; gap: 16px; }
#loader .animate-bounce { animation: loaderPulse 1.5s ease infinite alternate !important; }
#loader .animate-pulse { animation: loaderPulse 1s ease infinite alternate !important; font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.3em; color: rgba(255,255,255,0.3); }

/* 7. NAVIGATION */
nav[role="navigation"] {
  background: rgba(6,6,9,0.88) !important;
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border-bottom: 1px solid var(--clr-border);
  box-shadow: none !important;
  transition: all 0.4s var(--ease-expo);
}
nav[role="navigation"].nav-scrolled {
  background: rgba(6,6,9,0.97) !important;
  box-shadow: 0 1px 0 var(--clr-border), 0 8px 40px rgba(0,0,0,0.6) !important;
}
.nav-link {
  font-family: var(--font-display) !important;
  font-size: 13px; font-weight: 600; letter-spacing: 0.12em;
  color: rgba(240,240,245,0.65) !important;
  border-bottom: 2px solid transparent;
  transition: color 0.2s var(--ease-expo), border-color 0.2s var(--ease-expo);
  position: relative;
}
.nav-link:hover, .nav-link.active { color: #fff !important; border-color: var(--clr-red) !important; }
nav .text-gray-600 { color: rgba(240,240,245,0.7) !important; }
nav button.bg-toyota-red {
  font-family: var(--font-display) !important; font-weight: 700 !important; letter-spacing: 0.08em !important;
  background: linear-gradient(135deg, #EB0A1E 0%, #c00015 100%) !important;
  box-shadow: var(--shadow-red) !important; border-radius: 8px !important;
  transition: transform 0.2s var(--ease-expo), box-shadow 0.2s var(--ease-expo) !important;
}
nav button.bg-toyota-red:hover { transform: translateY(-2px) scale(1.03); box-shadow: 0 0 50px rgba(235,10,30,0.45), 0 8px 20px rgba(0,0,0,0.5) !important; }
#mobile-menu { background: rgba(6,6,9,0.98) !important; border-top: 1px solid var(--clr-border) !important; }
#mobile-menu button { font-family: var(--font-display) !important; font-size: 14px; letter-spacing: 0.15em; color: rgba(240,240,245,0.7) !important; border-bottom: 1px solid var(--clr-border) !important; }
#mobile-menu button:last-child { background: linear-gradient(135deg, #EB0A1E, #a50714) !important; color: #fff !important; }

/* 8. HERO SECTION */
.hero-section {
  min-height: 100svh;
  background-attachment: scroll; background-position: center;
  background-repeat: no-repeat; background-size: cover;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
@media (min-width: 1024px) { .hero-section { background-attachment: fixed; } }
.hero-section .absolute.inset-0.bg-black\/55 {
  background: linear-gradient(135deg,rgba(6,6,9,0.88) 0%,rgba(6,6,9,0.65) 50%,rgba(235,10,30,0.12) 100%) !important;
}
.hero-section::after {
  content: ''; position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none; z-index: 11;
}
.hero-section .relative.z-20 h1 {
  font-family: var(--font-display) !important; font-weight: 900 !important;
  line-height: 0.9 !important; letter-spacing: -0.01em !important;
  font-size: clamp(4rem, 12vw, 9rem) !important;
  animation: heroTitleReveal 1.2s var(--ease-expo) 0.6s both;
}
.hero-section .relative.z-20 p.text-white\/80 {
  font-family: var(--font-mono) !important; font-size: 11px !important;
  letter-spacing: 0.4em !important; color: rgba(240,240,245,0.5) !important;
  animation: heroFadeUp 0.8s var(--ease-expo) 0.3s both;
}
.hero-section .relative.z-20 .text-gray-200 {
  font-family: var(--font-body) !important;
  font-size: clamp(1rem, 2.2vw, 1.25rem) !important;
  animation: heroFadeUp 0.8s var(--ease-expo) 1.1s both;
}
.hero-section .relative.z-20 .flex.gap-4 { animation: heroFadeUp 0.8s var(--ease-expo) 1.4s both; }
.hero-section button {
  font-family: var(--font-display) !important; font-weight: 700 !important;
  letter-spacing: 0.08em !important; font-size: 15px !important;
  padding: 16px 40px !important; border-radius: var(--radius-sm) !important;
  transition: transform 0.2s var(--ease-expo), box-shadow 0.2s var(--ease-expo) !important;
}
.hero-section button.bg-toyota-red {
  background: linear-gradient(135deg, #EB0A1E 0%, #c00015 100%) !important;
  box-shadow: var(--shadow-red) !important;
}
.hero-section button.bg-toyota-red:hover { transform: translateY(-3px) !important; box-shadow: 0 0 60px rgba(235,10,30,0.5), 0 20px 40px rgba(0,0,0,0.4) !important; }
.hero-section button.bg-white\/10:hover { background: rgba(255,255,255,0.12) !important; transform: translateY(-3px) !important; }

/* 9. REVEAL ANIMATIONS */
.tt-reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.8s var(--ease-expo), transform 0.8s var(--ease-expo); }
.tt-reveal.tt-revealed { opacity: 1; transform: translateY(0); }
.tt-reveal-left { opacity: 0; transform: translateX(-60px); transition: opacity 0.8s var(--ease-expo), transform 0.8s var(--ease-expo); }
.tt-reveal-left.tt-revealed { opacity: 1; transform: translateX(0); }
.tt-reveal-right { opacity: 0; transform: translateX(60px); transition: opacity 0.8s var(--ease-expo), transform 0.8s var(--ease-expo); }
.tt-reveal-right.tt-revealed { opacity: 1; transform: translateX(0); }
.tt-reveal-scale { opacity: 0; transform: scale(0.85); transition: opacity 0.8s var(--ease-expo), transform 0.8s var(--ease-expo); }
.tt-reveal-scale.tt-revealed { opacity: 1; transform: scale(1); }
.tt-reveal-clip { clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0 100%); transition: clip-path 0.9s var(--ease-expo); }
.tt-reveal-clip.tt-revealed { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.tt-d1 { transition-delay: 0.1s !important; } .tt-d2 { transition-delay: 0.2s !important; }
.tt-d3 { transition-delay: 0.3s !important; } .tt-d4 { transition-delay: 0.4s !important; }
.tt-d5 { transition-delay: 0.5s !important; } .tt-d6 { transition-delay: 0.6s !important; }

/* 10. 3D SLIDER */
.tt-slider-wrap { width: 100%; overflow: hidden; position: relative; padding: 60px 0; }
.tt-slider-stage {
  perspective: 1200px; perspective-origin: 50% 40%;
  width: 100%; display: flex; justify-content: center;
  position: relative; height: 420px;
}
.tt-slider-track {
  position: absolute; width: 100%; height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.9s var(--ease-expo);
}
.tt-slide {
  position: absolute; width: 320px; top: 50%; left: 50%;
  margin-left: -160px; margin-top: -175px;
  background: var(--clr-panel); border: 1px solid var(--clr-border);
  border-radius: var(--radius-lg); overflow: hidden;
  transition: opacity 0.5s, filter 0.5s;
  backface-visibility: hidden; cursor: none;
}
.tt-slide.is-active { border-color: rgba(235,10,30,0.5); box-shadow: var(--shadow-red); }
.tt-slide:not(.is-active) { filter: brightness(0.55) saturate(0.4); }
.tt-slide img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; background: linear-gradient(135deg, #0f0f14, #1a1a22); }
.tt-slide-info { padding: 16px 20px; }
.tt-slide-name { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; color: var(--clr-white); letter-spacing: 0.05em; }
.tt-slide-price { font-family: var(--font-mono); font-size: 0.8rem; color: var(--clr-red); margin-top: 4px; }
.tt-slider-controls { display: flex; justify-content: center; align-items: center; gap: 16px; margin-top: 32px; position: relative; z-index: 10; }
.tt-slider-btn {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,0.05); border: 1px solid var(--clr-border);
  color: var(--clr-white); display: flex; align-items: center; justify-content: center;
  cursor: none; transition: all 0.2s var(--ease-expo); font-size: 14px;
}
.tt-slider-btn:hover { background: var(--clr-red); border-color: var(--clr-red); box-shadow: var(--shadow-red); transform: scale(1.1); }
.tt-slider-dots { display: flex; gap: 8px; }
.tt-slider-dot { width: 6px; height: 6px; border-radius: 3px; background: rgba(255,255,255,0.2); transition: all 0.3s var(--ease-expo); cursor: none; }
.tt-slider-dot.active { width: 24px; background: var(--clr-red); box-shadow: 0 0 10px var(--clr-red-glow); }

/* 11. EXPLODING OBJECT OVERLAY */
#tt-explode-overlay {
  position: fixed; inset: 0; z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none; transition: opacity 0.4s var(--ease-expo);
}
#tt-explode-overlay.active { opacity: 1; pointer-events: all; }
#tt-explode-overlay .tt-explode-backdrop {
  position: absolute; inset: 0;
  background: rgba(6,6,9,0.92); backdrop-filter: blur(12px);
}
#tt-explode-overlay .tt-explode-content {
  position: relative; z-index: 1;
  width: min(92vw, 900px);
  background: var(--clr-panel);
  border: 1px solid rgba(235,10,30,0.3);
  border-radius: var(--radius-xl); overflow: hidden;
  box-shadow: var(--shadow-red), var(--shadow-deep);
  transform: scale(0.85) translateY(40px);
  transition: transform 0.6s var(--ease-back);
}
#tt-explode-overlay.active .tt-explode-content { transform: scale(1) translateY(0); }
.tt-explode-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 20px 28px; border-bottom: 1px solid var(--clr-border);
  background: rgba(235,10,30,0.05);
}
.tt-explode-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 900; letter-spacing: 0.05em; text-transform: uppercase; color: var(--clr-white); }
.tt-explode-close {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.05); border: 1px solid var(--clr-border);
  color: var(--clr-chrome); display: flex; align-items: center; justify-content: center;
  cursor: none; transition: all 0.2s var(--ease-expo); font-size: 16px;
}
.tt-explode-close:hover { background: var(--clr-red); color: #fff; }
.tt-explode-body { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
@media (max-width: 600px) { .tt-explode-body { grid-template-columns: 1fr; } }
.tt-explode-visual {
  position: relative; background: linear-gradient(135deg, #0a0a10, #141420);
  min-height: 260px; overflow: hidden;
}
.tt-explode-visual img { width: 100%; height: 100%; object-fit: cover; opacity: 0.9; }
.tt-hotspot { position: absolute; transform: translate(-50%, -50%); z-index: 5; }
.tt-hotspot-pin {
  width: 16px; height: 16px; border-radius: 50%; background: var(--clr-red);
  box-shadow: 0 0 0 4px rgba(235,10,30,0.3), 0 0 20px rgba(235,10,30,0.6);
  animation: hotspotPulse 2s ease infinite; cursor: none; position: relative; z-index: 1;
}
.tt-hotspot-pin::before {
  content: ''; position: absolute; inset: -6px; border-radius: 50%;
  border: 1px solid rgba(235,10,30,0.4); animation: hotspotRing 2s ease infinite;
}
.tt-hotspot-label {
  position: absolute; bottom: calc(100% + 12px); left: 50%;
  transform: translateX(-50%); white-space: nowrap;
  background: rgba(13,13,18,0.95); border: 1px solid var(--clr-border);
  border-radius: var(--radius-sm); padding: 6px 12px;
  font-family: var(--font-mono); font-size: 10px; color: var(--clr-red); letter-spacing: 0.1em;
  opacity: 0; pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  transform: translateX(-50%) translateY(4px);
}
.tt-hotspot:hover .tt-hotspot-label { opacity: 1; transform: translateX(-50%) translateY(0); }
.tt-explode-specs { padding: 28px; display: flex; flex-direction: column; overflow-y: auto; max-height: 400px; }
.tt-spec-item {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 14px 0; border-bottom: 1px solid var(--clr-border); gap: 16px;
  opacity: 0; transform: translateX(20px);
  transition: opacity 0.4s var(--ease-expo), transform 0.4s var(--ease-expo);
}
.tt-spec-item.revealed { opacity: 1; transform: translateX(0); }
.tt-spec-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.2em; color: rgba(240,240,245,0.4); text-transform: uppercase; flex-shrink: 0; }
.tt-spec-value { font-family: var(--font-display); font-weight: 600; font-size: 1rem; color: var(--clr-white); text-align: right; }
.tt-spec-value.highlight { color: var(--clr-red); }
.tt-explode-footer { padding: 20px 28px; border-top: 1px solid var(--clr-border); display: flex; gap: 12px; flex-wrap: wrap; }

/* 12. PARTICLES */
.tt-particle {
  position: fixed; pointer-events: none; z-index: 9998;
  border-radius: 50%; animation: particleFly 0.8s var(--ease-expo) forwards;
}

/* 13. STATS SECTION */
.tt-stats-wrap {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1px; background: var(--clr-border);
  border: 1px solid var(--clr-border); border-radius: var(--radius-lg); overflow: hidden;
}
.tt-stat-item { background: var(--clr-panel); padding: 32px 24px; text-align: center; transition: background 0.2s; }
.tt-stat-item:hover { background: rgba(235,10,30,0.05); }
.tt-stat-number { font-family: var(--font-display); font-size: 2.8rem; font-weight: 900; color: var(--clr-red); line-height: 1; display: block; }
.tt-stat-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.2em; color: rgba(240,240,245,0.4); text-transform: uppercase; margin-top: 8px; display: block; }

/* 14. DARK THEME OVERRIDES */
.bg-white, section.bg-white { background: var(--clr-dark) !important; }
.bg-gray-50 { background: var(--clr-obsidian) !important; }
.bg-gray-100 { background: rgba(255,255,255,0.04) !important; }
.bg-gray-900 { background: #0a0a0f !important; }
#app-content, .page-enter-placeholder { background: var(--clr-black) !important; color: var(--clr-white) !important; }
article.bg-white, .bg-white.rounded-2xl { background: var(--clr-panel) !important; border-color: var(--clr-border) !important; color: var(--clr-white) !important; }
article.bg-white h3, .bg-white.rounded-2xl h3, article.bg-white h2 { color: var(--clr-white) !important; }
.text-gray-900 { color: var(--clr-white) !important; }
.text-gray-800 { color: rgba(240,240,245,0.9) !important; }
.text-gray-700 { color: rgba(240,240,245,0.7) !important; }
.text-gray-600 { color: rgba(240,240,245,0.5) !important; }
.text-gray-500 { color: rgba(240,240,245,0.4) !important; }
.text-gray-400 { color: rgba(240,240,245,0.35) !important; }
.border-gray-100 { border-color: var(--clr-border) !important; }
.border-gray-200 { border-color: rgba(255,255,255,0.08) !important; }
.shadow-md, .shadow-xl { box-shadow: var(--shadow-card) !important; }
.text-toyota-red { color: var(--clr-red) !important; }
.bg-toyota-red { background: linear-gradient(135deg, #EB0A1E, #c00015) !important; }
.bg-toyota-dark { background: var(--clr-panel) !important; border: 1px solid var(--clr-border) !important; }
.border-toyota-red { border-color: rgba(235,10,30,0.5) !important; }
table { color: var(--clr-white) !important; }
th { background: rgba(235,10,30,0.08) !important; color: var(--clr-white) !important; border-color: var(--clr-border) !important; }
td { border-color: var(--clr-border) !important; color: rgba(240,240,245,0.8) !important; }
tr:nth-child(even) td { background: rgba(255,255,255,0.02) !important; }
input[type="text"], input[type="number"], input[type="email"], input[type="tel"], select, textarea {
  background: rgba(255,255,255,0.04) !important; border: 1px solid var(--clr-border) !important;
  color: var(--clr-white) !important; border-radius: var(--radius-sm) !important; font-family: var(--font-body) !important;
}
input:focus, select:focus, textarea:focus {
  border-color: rgba(235,10,30,0.5) !important;
  box-shadow: 0 0 0 3px rgba(235,10,30,0.1) !important; outline: none !important;
}
input::placeholder, textarea::placeholder { color: rgba(240,240,245,0.25) !important; }
label { color: rgba(240,240,245,0.6) !important; font-family: var(--font-mono) !important; font-size: 11px !important; letter-spacing: 0.1em !important; }
select option { background: var(--clr-panel); color: var(--clr-white); }
.section-header-text { font-family: var(--font-display) !important; font-weight: 900 !important; text-transform: uppercase; }
[aria-label] .text-center.mb-12 span.text-toyota-red { font-family: var(--font-mono) !important; font-size: 10px !important; letter-spacing: 0.3em !important; }
[aria-label] .text-center.mb-12 h2 { font-family: var(--font-display) !important; font-weight: 900 !important; text-transform: uppercase; font-size: clamp(2rem, 5vw, 3.5rem) !important; color: var(--clr-white) !important; }
[aria-label] .text-center.mb-12 p { color: rgba(240,240,245,0.4) !important; font-size: 0.9rem !important; }
.absolute.top-4.left-4 { font-family: var(--font-mono) !important; font-size: 9px !important; letter-spacing: 0.2em !important; border-radius: 4px !important; padding: 4px 10px !important; background: var(--clr-red) !important; box-shadow: 0 0 12px rgba(235,10,30,0.4) !important; }

/* 15. FOOTER */
footer[role="contentinfo"] {
  background: #040406 !important; border-top: 1px solid rgba(235,10,30,0.3) !important;
  position: relative; overflow: hidden;
}
footer[role="contentinfo"]::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--clr-red), transparent);
  box-shadow: 0 0 20px rgba(235,10,30,0.5);
}
footer .text-gray-400 { color: rgba(240,240,245,0.35) !important; }
footer .text-gray-300 { color: rgba(240,240,245,0.55) !important; }
footer .text-gray-500 { color: rgba(240,240,245,0.25) !important; }
footer .text-gray-600 { color: rgba(240,240,245,0.15) !important; }
footer .text-gray-700 { color: rgba(240,240,245,0.1) !important; }
footer .border-gray-800 { border-color: var(--clr-border) !important; }
footer h3 { font-family: var(--font-mono) !important; font-size: 10px !important; letter-spacing: 0.3em !important; }
footer button:hover, footer a:hover { color: var(--clr-red) !important; }
footer .w-9.h-9 { background: rgba(255,255,255,0.03) !important; border-color: var(--clr-border) !important; transition: all 0.2s !important; }
footer .w-9.h-9:hover { transform: translateY(-3px) !important; }

/* 16. HOVER CARD EFFECT */
.group:hover .group-hover\:scale-110 { transform: scale(1.08) !important; }
.hover\:-translate-y-1:hover { transform: translateY(-8px) !important; }
.hover\:shadow-xl:hover { box-shadow: var(--shadow-red) !important; }

/* 17. PROMO TIMER */
.promo-timer {
  font-family: var(--font-mono) !important; font-size: 13px;
  color: rgba(235,10,30,0.8); letter-spacing: 0.1em;
  background: rgba(235,10,30,0.08); border: 1px solid rgba(235,10,30,0.2);
  border-radius: var(--radius-sm); padding: 6px 14px; display: inline-block;
}

/* 18. ARTICLE CONTENT */
.article-content { color: rgba(240,240,245,0.75) !important; font-size: 1rem; line-height: 1.8; }
.article-content h1,.article-content h2,.article-content h3,.article-content h4 { font-family: var(--font-display) !important; font-weight: 700; color: var(--clr-white) !important; line-height: 1.3; margin-top: 1.75em; margin-bottom: 0.75em; }
.article-content h1 { font-size: 1.75rem; }
.article-content h2 { font-size: 1.4rem; padding-left: 0.75rem; border-left: 3px solid var(--clr-red); }
.article-content h3 { font-size: 1.2rem; } .article-content h4 { font-size: 1rem; }
.article-content p { margin-bottom: 1.25em; }
.article-content strong, .article-content b { font-weight: 700; color: var(--clr-white) !important; }
.article-content em, .article-content i { font-style: italic; }
.article-content ul, .article-content ol { padding-left: 1.5rem; margin-bottom: 1.25em; }
.article-content ul { list-style-type: disc; } .article-content ol { list-style-type: decimal; }
.article-content li { margin-bottom: 0.5em; }
.article-content blockquote { border-left: 4px solid var(--clr-red); padding: 0.75rem 1.25rem; background: rgba(235,10,30,0.05) !important; border-radius: 0 0.5rem 0.5rem 0; color: rgba(240,240,245,0.6) !important; font-style: italic; margin: 1.5em 0; }
.article-content a { color: var(--clr-red) !important; text-decoration: underline; text-underline-offset: 2px; }
.article-content a:hover { color: #ff4d5e !important; }
.article-content img { max-width: 100%; border-radius: 0.75rem; margin: 1.5em 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.article-content table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 0.9rem; }
.article-content th { background: rgba(235,10,30,0.08) !important; font-weight: 700; padding: 0.625rem 1rem; text-align: left; border: 1px solid var(--clr-border); color: var(--clr-white) !important; }
.article-content td { padding: 0.625rem 1rem; border: 1px solid var(--clr-border); }
.article-content tr:nth-child(even) { background: rgba(255,255,255,0.02) !important; }

/* 19. SKELETON */
@keyframes skeleton-pulse { 0%,100%{opacity:1}50%{opacity:0.35} }
.skeleton { animation: skeleton-pulse 1.5s ease-in-out infinite; background: rgba(255,255,255,0.06) !important; border-radius: 6px; }
.skeleton-card { background: var(--clr-panel) !important; border: 1px solid var(--clr-border) !important; border-radius: var(--radius-lg); }

/* 20. FLOATING WA */
#floating-wa a { box-shadow: 0 0 30px rgba(37,211,102,0.3), 0 8px 24px rgba(0,0,0,0.4) !important; }
#floating-wa a:hover { transform: scale(1.12) translateY(-4px) !important; box-shadow: 0 0 50px rgba(37,211,102,0.5), 0 16px 40px rgba(0,0,0,0.5) !important; }

/* 21. PAGE TRANSITIONS */
@keyframes slideInRight { from{opacity:0;transform:translateX(60px)} to{opacity:1;transform:translateX(0)} }
@keyframes slideOutLeft { from{opacity:1;transform:translateX(0)} to{opacity:0;transform:translateX(-60px)} }
@keyframes slideInLeft { from{opacity:0;transform:translateX(-60px)} to{opacity:1;transform:translateX(0)} }
@keyframes slideOutRight { from{opacity:1;transform:translateX(0)} to{opacity:0;transform:translateX(60px)} }
.page-enter-forward { animation: slideInRight 0.55s var(--ease-expo) forwards; }
.page-exit-forward  { animation: slideOutLeft 0.35s var(--ease-circ) forwards; }
.page-enter-backward { animation: slideInLeft 0.55s var(--ease-expo) forwards; }
.page-exit-backward  { animation: slideOutRight 0.35s var(--ease-circ) forwards; }

/* 22. ALL KEYFRAMES */
@keyframes loaderBar { from{width:0} to{width:100%} }
@keyframes loaderPulse { from{opacity:0.4} to{opacity:1} }
@keyframes loaderExit { 0%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)} 100%{opacity:0;clip-path:polygon(0 0,100% 0,100% 0,0 0)} }
@keyframes heroTitleReveal { from{opacity:0;transform:translateY(80px) skewY(3deg);filter:blur(8px)} to{opacity:1;transform:translateY(0) skewY(0);filter:blur(0)} }
@keyframes heroFadeUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes hotspotPulse { 0%,100%{box-shadow:0 0 0 4px rgba(235,10,30,0.3),0 0 20px rgba(235,10,30,0.6)} 50%{box-shadow:0 0 0 8px rgba(235,10,30,0.1),0 0 30px rgba(235,10,30,0.4)} }
@keyframes hotspotRing { 0%{transform:scale(1);opacity:0.8} 100%{transform:scale(2);opacity:0} }
@keyframes particleFly { 0%{transform:translate(0,0) scale(1);opacity:1} 100%{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0} }
@keyframes scrollPulse { 0%,100%{opacity:0.2;transform:scaleY(1)} 50%{opacity:0.8;transform:scaleY(1.2)} }
@keyframes glowPulse { 0%,100%{box-shadow:var(--shadow-red)} 50%{box-shadow:0 0 60px rgba(235,10,30,0.45),0 12px 40px rgba(0,0,0,0.6)} }

/* 23. ACTIVE STATES */
button:active, a[href]:active, [role="button"]:active { transform: scale(0.97); opacity: 0.9; }

/* 24. PRINT */
@media print {
  nav,footer,#loader,#floating-wa,#toast-container,.promo-timer,
  button:not(.print-visible),#tt-cursor-dot,#tt-cursor-ring,
  #tt-explode-overlay,[aria-label="Navigasi utama"],[role="navigation"] { display:none!important; }
  body,#app-content,.page-enter-placeholder,.bg-white,.bg-gray-50 { background:#fff!important; color:#000!important; }
  *{ color:#000!important; border-color:#ccc!important; }
  img{ max-width:100%!important; }
  article{ page-break-inside:avoid; }
  body::before{ content:attr(data-dealer-name); display:block; font-size:14pt; font-weight:bold; border-bottom:2pt solid #EB0A1E; padding-bottom:8pt; margin-bottom:16pt; }
  table{ width:100%!important; border-collapse:collapse; }
  th,td{ border:1pt solid #ccc!important; padding:6pt; }
  #res-dp,#res-monthly{ font-size:18pt!important; font-weight:bold!important; }
  a[href]::after{ content:" ("attr(href)")"; font-size:9pt; color:#666; }
  a[href^="javascript"]::after,a[href^="#"]::after{ content:""; }
}

/* 25. RESPONSIVE */
@media (max-width: 768px) {
  .tt-slider-stage { height: 300px; }
  .tt-slide { width: 260px; margin-left: -130px; margin-top: -145px; }
  .tt-explode-body { grid-template-columns: 1fr; }
  .tt-explode-content { width: min(96vw, 600px); }
  body { cursor: auto; }
  #tt-cursor-dot, #tt-cursor-ring { display: none; }
}
