/* ==========================================================================
   MANOJ KUMAR PORTFOLIO - LIGHT MODE ONLY (VIOLET & ORANGE LUXURY TECH)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=JetBrains+Mono:wght@400;500;600&display=swap');
@import url('theme-components.css?v=lightmode_v2');

:root {
  --font-main: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --font-heading: 'HelveticaNowDisplay-Medium', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'HelveticaNowDisplayW01-Rg', 'Helvetica Neue', Arial, sans-serif;

  /* Theme: Light Mode Only (#2F295A Deep Indigo & #F37221 Sunset Orange) */
  --bg-primary: #fcfbfe;
  --bg-secondary: #ffffff;
  --bg-card: rgba(255, 255, 255, 0.94);
  --bg-card-hover: #ffffff;
  --bg-glass: rgba(255, 255, 255, 0.9);
  --border-subtle: rgba(47, 41, 90, 0.14);
  --border-hover: rgba(243, 114, 33, 0.45);

  --text-primary: #0f172a;
  --text-secondary: #334155;
  --text-muted: #64748b;
  --text-accent: #2F295A;

  /* Brand Palette: #2F295A & #F37221 */
  --accent-violet: #2F295A;
  --accent-violet-deep: #241F48;
  --accent-orange: #F37221;
  --accent-orange-bright: #DE5B0E;
  --accent-amber: #f59e0b;
  --accent-emerald: #10b981;
  --accent-cyan: #0284c7;

  --shadow-card: 0 10px 30px -8px rgba(47, 41, 90, 0.08), 0 4px 12px -2px rgba(0, 0, 0, 0.04);
  --shadow-glow: 0 12px 35px -5px rgba(47, 41, 90, 0.16), 0 4px 15px -2px rgba(243, 114, 33, 0.14);
}

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5.5rem;
  font-family: var(--font-main);
  background-color: var(--bg-primary);
  color: var(--text-primary);
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-main);
  overflow-x: clip;
  max-width: 100vw;
  line-height: 1.6;
  background-color: #fbfaff;
  color: #0f172a;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

section[id] {
  scroll-margin-top: 5.5rem;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f0f7;
}
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #7C72A5, #F7B58A);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #2F295A, #DE5B0E);
}

/* Soft Ambient Blooms (#2F295A Deep Indigo + #F37221 Warm Sunset Orange) */
.ambient-glow-1 {
  position: absolute;
  top: -6%;
  left: 10%;
  width: 60vw;
  height: 60vw;
  max-width: 650px;
  max-height: 650px;
  background: radial-gradient(circle, rgba(47, 41, 90, 0.08) 0%, rgba(255, 255, 255, 0) 70%);
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}

.ambient-glow-2 {
  position: absolute;
  top: 30%;
  right: 5%;
  width: 50vw;
  height: 50vw;
  max-width: 550px;
  max-height: 550px;
  background: radial-gradient(circle, rgba(243, 114, 33, 0.07) 0%, rgba(255, 255, 255, 0) 70%);
  filter: blur(90px);
  pointer-events: none;
  z-index: 0;
}

.ambient-glow-3 {
  position: absolute;
  top: 70%;
  left: 8%;
  width: 45vw;
  height: 45vw;
  max-width: 500px;
  max-height: 500px;
  background: radial-gradient(circle, rgba(47, 41, 90, 0.06) 0%, rgba(255, 255, 255, 0) 70%);
  filter: blur(85px);
  pointer-events: none;
  z-index: 0;
}

/* Glassmorphism Classes for Light Mode */
.glass-panel {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(47, 41, 90, 0.12);
  border-radius: 1.25rem;
  box-shadow: 0 10px 30px -8px rgba(47, 41, 90, 0.07), 0 2px 8px -2px rgba(0, 0, 0, 0.04);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.glass-panel:hover {
  border-color: rgba(243, 114, 33, 0.45);
  box-shadow: 0 14px 35px -8px rgba(47, 41, 90, 0.14), 0 4px 15px -2px rgba(243, 114, 33, 0.12);
}

.glass-nav {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  border-left: none !important;
  border-right: none !important;
  box-shadow: none;
  transition: background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1),
              backdrop-filter 0.25s cubic-bezier(0.16, 1, 0.3, 1),
              -webkit-backdrop-filter 0.25s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.glass-nav.is-scrolled {
  background-color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  box-shadow: 0 4px 20px -2px rgba(47, 41, 90, 0.08);
}

/* Gradient Text - Signature Indigo to Orange */
.gradient-text {
  background: linear-gradient(135deg, #0f172a 0%, #2F295A 45%, #F37221 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.gradient-accent {
  background: linear-gradient(135deg, #2F295A 0%, #4E4482 40%, #DE5B0E 75%, #F37221 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ==========================================================================
   BUTTON SYSTEM (Strict Zero Gradient: #F37221 Normal, #2F295A Hover)
   ========================================================================== */

/* Primary Button */
.btn-primary {
  background-color: #F37221 !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1.5px solid #F37221 !important;
  box-shadow: 0 4px 14px -1px rgba(243, 114, 33, 0.38), 0 2px 6px -1px rgba(0, 0, 0, 0.04);
  transition: background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
}
.btn-primary:hover {
  background-color: #2F295A !important;
  background-image: none !important;
  border-color: #2F295A !important;
  color: #ffffff !important;
  box-shadow: 0 8px 22px -2px rgba(47, 41, 90, 0.42), 0 3px 8px -1px rgba(0, 0, 0, 0.06);
}
.btn-primary:active {
  background-color: #241F48 !important;
  border-color: #241F48 !important;
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(47, 41, 90, 0.35);
}
.btn-primary:focus-visible {
  outline: 2px solid #F37221;
  outline-offset: 2px;
}

/* Secondary Button */
.btn-secondary {
  background-color: #ffffff !important;
  background-image: none !important;
  color: #2F295A !important;
  border: 1.5px solid rgba(47, 41, 90, 0.24) !important;
  box-shadow: 0 2px 8px -1px rgba(0, 0, 0, 0.04);
  transition: background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
}
.btn-secondary:hover {
  background-color: #F4F3F8 !important;
  border-color: #F37221 !important;
  color: #F37221 !important;
  box-shadow: 0 6px 18px -2px rgba(243, 114, 33, 0.22);
}
.btn-secondary:active {
  background-color: #E9E7F1 !important;
  border-color: #2F295A !important;
  color: #2F295A !important;
  box-shadow: 0 2px 6px rgba(47, 41, 90, 0.15);
}
.btn-secondary:focus-visible {
  outline: 2px solid #2F295A;
  outline-offset: 2px;
}

/* Filter Badges */
.filter-btn {
  background-color: #ffffff !important;
  background-image: none !important;
  color: #475569 !important;
  border: 1.5px solid #e2e8f0 !important;
  transition: background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              color 0.22s cubic-bezier(0.16, 1, 0.3, 1), 
              box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
  cursor: pointer;
}
.filter-btn:hover {
  background-color: #F4F3F8 !important;
  color: #2F295A !important;
  border-color: rgba(47, 41, 90, 0.35) !important;
}
.filter-btn.active {
  background-color: #F37221 !important;
  background-image: none !important;
  color: #ffffff !important;
  border-color: #F37221 !important;
  box-shadow: 0 4px 14px -1px rgba(243, 114, 33, 0.38) !important;
}
.filter-btn.active:hover {
  background-color: #2F295A !important;
  background-image: none !important;
  border-color: #2F295A !important;
  color: #ffffff !important;
  box-shadow: 0 6px 18px -2px rgba(47, 41, 90, 0.40) !important;
}
.filter-btn:focus-visible {
  outline: 2px solid #F37221;
  outline-offset: 2px;
}

/* Unboxed Single-Line Filter Drag Slider */
.no-scrollbar::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.filter-drag-track {
  cursor: grab;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-x;
  scroll-behavior: smooth;
}

.filter-drag-track.is-dragging {
  cursor: grabbing !important;
  scroll-behavior: auto !important;
}

/* Floating Back to Top Button */
/* Floating Move-To-Top Button (Framer Architectural Button) */
.framer-1neiv2k-container {
  --token-e03f2732-f3ab-4928-8574-c73171a411f2: #0f172a;
  --token-bac74bb0-5962-4cb2-83f3-72a2f69e9bb4: #ffffff;
  z-index: 99999;
}

#backToTopBtn.framer-scroll-top-btn {
  background-color: var(--token-e03f2732-f3ab-4928-8574-c73171a411f2, #0f172a) !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0px !important;
  box-shadow: 0 10px 30px -5px rgba(15, 23, 42, 0.4), 0 4px 12px rgba(0, 0, 0, 0.1) !important;
  transition: background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.22s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.25s ease !important;
  cursor: pointer;
}

#backToTopBtn.framer-scroll-top-btn svg {
  stroke: var(--token-bac74bb0-5962-4cb2-83f3-72a2f69e9bb4, #ffffff) !important;
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), stroke 0.22s ease;
}

#backToTopBtn.framer-scroll-top-btn:hover {
  background-color: #F37221 !important;
  box-shadow: 0 12px 35px -5px rgba(243, 114, 33, 0.5), 0 4px 15px rgba(243, 114, 33, 0.25) !important;
  transform: translateY(-3px) scale(1.04) !important;
}

#backToTopBtn.framer-scroll-top-btn:hover svg {
  transform: translateY(-2px);
}

#backToTopBtn.framer-scroll-top-btn:active {
  transform: translateY(0) scale(0.96) !important;
}

#backToTopBtn.framer-scroll-top-btn:focus-visible {
  outline: 2px solid #F37221;
  outline-offset: 2px;
}

@media (max-width: 640px) {
  #backToTopContainer {
    bottom: 1.25rem !important;
    right: 1.25rem !important;
  }
  #backToTopBtn.framer-scroll-top-btn {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    border-radius: 12px !important;
  }
  #backToTopBtn.framer-scroll-top-btn svg {
    width: 18px !important;
    height: 18px !important;
  }
}

/* Mobile Case Studies Cards UX Polish (< 640px) */
@media (max-width: 639px) {
  .mobile-case-card {
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
    touch-action: manipulation;
    transition: transform 0.15s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.15s ease, border-color 0.15s ease;
  }
  .mobile-case-card:active {
    transform: scale(0.988);
  }
  .mobile-case-card button,
  .mobile-case-card a {
    touch-action: manipulation;
  }
  .mobile-tech-swipe {
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
  }
}

/* Generous breathing room & margin space between case study cards */
#projectsGrid,
#inHouseGrid {
  gap: 1.85rem !important; /* ~30px on mobile */
}
@media (min-width: 640px) {
  #projectsGrid,
  #inHouseGrid {
    gap: 2rem !important; /* 32px on tablet & desktop */
  }
}

/* Toast styling */
#toast {
  visibility: hidden;
  min-width: 250px;
  background-color: #ffffff;
  color: #2F295A;
  border: 1px solid #2F295A;
  text-align: center;
  border-radius: 9999px;
  padding: 12px 24px;
  position: fixed;
  z-index: 9999;
  left: 50%;
  bottom: 30px;
  transform: translateX(-50%) translateY(20px);
  opacity: 0;
  transition: opacity 0.3s, transform 0.3s;
  box-shadow: 0 12px 35px -5px rgba(47, 41, 90, 0.2), 0 4px 15px -2px rgba(0, 0, 0, 0.08);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}

#toast.show {
  visibility: visible;
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Modal styles */
.modal-overlay {
  background: rgba(15, 12, 28, 0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* ==========================================================================
   INTERACTIVE ROADMAP & METHODOLOGY (HOW IT WORKS MODERN)
   ========================================================================== */

.how-it-works-modern {
  position: relative;
  width: 100%;
  background: transparent !important;
  color: #0f172a !important;
  padding: 2.5rem 0 2rem 0;
}

@media (min-width: 1024px) {
  .how-it-works-modern {
    padding: 3.5rem 0 3rem 0;
  }
}

.startup-journey-section {
  position: relative;
  width: 100%;
  background: transparent !important;
  padding: 0.5rem 0.25rem;
}

.roadmap-header {
  text-align: center;
  margin: 0 auto;
  margin-bottom: 1.1rem;
}

@media (min-width: 1024px) {
  .roadmap-header {
    margin-bottom: 1.25rem;
  }
}

.section-label-premium {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.32rem 0.95rem;
  border-radius: 9999px;
  background: #FEF7F2;
  border: 1px solid rgba(243, 114, 33, 0.3);
  color: #DE5B0E;
  transition: all 0.25s ease;
  margin-bottom: 0.55rem;
}

.journey-title {
  font-size: 1.875rem;
  line-height: 1.25;
  font-weight: 800;
  color: #0f172a !important;
  letter-spacing: -0.025em;
  word-break: break-word;
  margin-top: 0.25rem;
  margin-bottom: 0.55rem;
}

@media (min-width: 640px) {
  .journey-title {
    font-size: 2.25rem;
    line-height: 1.2;
    margin-top: 0.3rem;
    margin-bottom: 0.6rem;
  }
}

.journey-title-accent {
  position: relative;
  display: inline-block;
  color: #F37221;
}

.journey-title-underline {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 3px;
  background: #F37221;
  border-radius: 9999px;
  opacity: 0.85;
}

.journey-title .highlight {
  color: #F37221;
  background: none;
  -webkit-text-fill-color: initial;
}

.journey-subtitle {
  color: #475569;
  font-size: 0.875rem;
  line-height: 1.55;
  max-width: 48rem;
  margin: 0 auto;
}

@media (min-width: 640px) {
  .journey-subtitle {
    font-size: 1rem;
    line-height: 1.65;
  }
}

/* Roadmap Axis & Progress Tracker - Clean Light Theme */
.roadmap-container {
  position: relative;
  width: 100%;
}

.roadmap-axis {
  position: relative;
  width: 100%;
  max-width: 50rem;
  margin: 0.65rem auto 1.25rem auto;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 1024px) {
  .roadmap-axis {
    margin: 0.75rem auto 1.35rem auto;
    height: 42px;
  }
}

.roadmap-base-line {
  position: absolute;
  left: 20px;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  height: 3px;
  background: rgba(47, 41, 90, 0.1);
  border-radius: 9999px;
  z-index: 1;
}

.roadmap-flame-trail {
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
  height: 3px;
  background: #F37221;
  border-radius: 9999px;
  z-index: 2;
  box-shadow: 0 1px 6px rgba(243, 114, 33, 0.35);
  transition: width 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}

.rocket-pilot {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #F37221;
  border: 2px solid #ffffff;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(243, 114, 33, 0.35), 0 2px 4px rgba(0, 0, 0, 0.06);
  transition: left 0.45s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s ease, background-color 0.25s ease;
  cursor: pointer;
}

.rocket-pilot svg {
  transform: rotate(-45deg);
  transition: transform 0.3s ease;
  width: 17px;
  height: 17px;
}

.rocket-pilot:hover {
  transform: translate(-50%, -50%) scale(1.1);
  background: #2F295A;
  box-shadow: 0 6px 16px rgba(47, 41, 90, 0.3);
}

.roadmap-nodes-wrapper {
  position: absolute;
  left: 20px;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 3;
  pointer-events: none;
}

.roadmap-node-item {
  pointer-events: auto;
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #ffffff;
  border: 1.5px solid rgba(47, 41, 90, 0.16);
  color: #2F295A;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.04);
}

.roadmap-node-item:hover {
  border-color: rgba(243, 114, 33, 0.6);
  color: #F37221;
  background: #FEF7F2;
  transform: scale(1.08);
  box-shadow: 0 3px 10px rgba(243, 114, 33, 0.18);
}

.roadmap-node-item.active {
  background: #FEF7F2;
  border-color: rgba(243, 114, 33, 0.7);
  color: #F37221;
  box-shadow: 0 2px 8px rgba(243, 114, 33, 0.18);
}

.roadmap-node-item.current {
  background: #F37221;
  border-color: #F37221;
  color: #ffffff;
  outline: 1.5px solid rgba(243, 114, 33, 0.35);
  outline-offset: 2px;
  transform: scale(1.08);
  box-shadow: 0 3px 12px rgba(243, 114, 33, 0.3);
}

.node-tooltip {
  position: absolute;
  top: -30px;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%);
  background: #ffffff;
  color: #0f172a;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 9999px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  border: 1px solid rgba(47, 41, 90, 0.12);
  box-shadow: 0 4px 14px rgba(47, 41, 90, 0.08);
  z-index: 30;
}

.roadmap-node-item:hover .node-tooltip,
.roadmap-node-item.current .node-tooltip {
  opacity: 1;
  transform: translateX(-50%) translateY(-2px);
}

.roadmap-node-item:first-child .node-tooltip {
  left: 0;
  transform: translateX(0);
}
.roadmap-node-item:first-child:hover .node-tooltip,
.roadmap-node-item:first-child.current .node-tooltip {
  transform: translateX(0) translateY(-2px);
}

.roadmap-node-item:last-child .node-tooltip {
  left: auto;
  right: 0;
  transform: translateX(0);
}
.roadmap-node-item:last-child:hover .node-tooltip,
.roadmap-node-item:last-child.current .node-tooltip {
  transform: translateX(0) translateY(-2px);
}

/* Journey Card Grid & Cards - Clean Light Theme */
.journey-card-grid-wrapper {
  position: relative;
  width: 100%;
  overflow: visible;
}

.journey-card-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.25rem;
  padding: 10px 4px 16px 4px;
  overflow: visible;
}

@media (min-width: 768px) {
  .journey-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

@media (min-width: 1024px) {
  .journey-card-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
  }
}

.journey-card {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(47, 41, 90, 0.12);
  border-radius: 1.15rem;
  padding: 1.05rem 0.95rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  overflow: visible;
  cursor: pointer;
  box-shadow: 0 4px 14px -2px rgba(47, 41, 90, 0.05);
  opacity: 0.5;
  transform: scale(0.98);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

@media (min-width: 1280px) {
  .journey-card {
    padding: 1.15rem 1rem;
  }
}

.journey-card:hover {
  border-color: rgba(243, 114, 33, 0.48) !important;
  transform: translateY(-5px) scale(1.02) !important;
  box-shadow: 0 16px 32px -8px rgba(243, 114, 33, 0.16), 0 6px 14px -3px rgba(47, 41, 90, 0.08) !important;
  z-index: 10;
}

.step-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #F4F3F8;
  border: 1px solid rgba(47, 41, 90, 0.1);
  color: #2F295A;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.25s ease;
}

.journey-card:hover .step-card-icon,
.journey-card.focused .step-card-icon {
  background: #FEF7F2;
  border-color: rgba(243, 114, 33, 0.35);
  color: #F37221;
  transform: scale(1.05);
}

.journey-card-step-label {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: #F37221;
}

.journey-card-title {
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.3;
  color: #0f172a !important;
  margin-bottom: 0.45rem;
  transition: color 0.2s ease;
}

.journey-card:hover .journey-card-title,
.journey-card.focused .journey-card-title {
  color: #2F295A !important;
}

.journey-card-desc {
  font-size: 0.78rem;
  line-height: 1.42;
  color: #475569 !important;
  margin-bottom: 0.55rem;
}

.journey-card-accent-line {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 1.5px;
  background: #F37221;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.journey-card:hover .journey-card-accent-line,
.journey-card.focused .journey-card-accent-line {
  transform: scaleX(1) !important;
}

/* ==========================================================================
   ROADMAP & METHODOLOGY (NATURAL SCROLL & RESPONSIVE SLIDER)
   ========================================================================== */
.roadmap-pinned-track {
  position: relative;
  width: 100%;
  height: auto;
}

.roadmap-sticky-frame {
  position: relative;
  width: 100%;
  top: auto;
  height: auto;
  display: block;
  z-index: 1;
  overflow: visible;
}

.roadmap-sticky-frame .startup-journey-section {
  width: 100%;
  margin: 0 auto;
}

@media (min-width: 1024px) {
  .journey-card {
    opacity: 1 !important;
    transform: none !important;
  }
}

.journey-card.completed {
  opacity: 0.85;
  transform: scale(1);
  border-color: rgba(47, 41, 90, 0.2);
}

.journey-card.focused {
  opacity: 1 !important;
  transform: translateY(-5px) scale(1.025) !important;
  border-color: rgba(243, 114, 33, 0.48) !important;
  box-shadow: 0 16px 32px -8px rgba(243, 114, 33, 0.16),
              0 6px 14px -3px rgba(47, 41, 90, 0.08) !important;
  z-index: 10;
}

.journey-card.focused .step-card-icon {
  background: #FEF7F2 !important;
  border-color: rgba(243, 114, 33, 0.35) !important;
  color: #F37221 !important;
  transform: scale(1.05);
}

.journey-card.focused .journey-card-step-label {
  color: #F37221 !important;
  font-weight: 800 !important;
}

.journey-card.focused .journey-card-accent-line {
  transform: scaleX(1) !important;
}

/* Compact viewports: Screen height <= 820px (1366x768, laptops) */
@media (max-height: 820px) and (min-width: 641px) {
  .startup-journey-section {
    padding: 0.25rem 0 !important;
  }
  .roadmap-header {
    margin-bottom: 0.5rem !important;
  }
  .section-label-premium {
    margin-bottom: 0.35rem !important;
    padding: 0.2rem 0.75rem !important;
  }
  .journey-title {
    margin-top: 0.2rem !important;
    margin-bottom: 0.35rem !important;
  }
  .roadmap-axis {
    margin: 0.25rem auto 0.65rem auto !important;
    height: 36px !important;
  }
  .journey-card {
    padding: 0.85rem 0.8rem !important;
    border-radius: 0.95rem !important;
  }
  .journey-card-title {
    font-size: 0.92rem !important;
    margin-bottom: 0.25rem !important;
  }
  .journey-card-desc {
    font-size: 0.75rem !important;
    line-height: 1.35 !important;
    margin-bottom: 0.4rem !important;
  }
  .journey-card .mb-3,
  .journey-card .mb-3\.5 {
    margin-bottom: 0.5rem !important;
  }
  .step-card-icon {
    width: 34px !important;
    height: 34px !important;
    border-radius: 8px !important;
  }
  .roadmap-container > div:last-child {
    margin-top: 0.65rem !important;
    padding-top: 0.45rem !important;
  }
}

/* Mobile responsiveness (<= 640px) */
@media (max-width: 640px) {
  .startup-journey-section {
    padding: 0.2rem 0 !important;
  }
  .journey-card-grid-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding: 6px 0 10px 0;
    touch-action: pan-y;
  }
  .roadmap-header {
    margin-bottom: 0.45rem !important;
  }
  .section-label-premium {
    margin-bottom: 0.35rem !important;
  }
  .journey-title {
    margin-top: 0.2rem !important;
    margin-bottom: 0.35rem !important;
  }
  .roadmap-axis {
    margin: 0.25rem auto 0.75rem auto !important;
    height: 38px !important;
  }
  .node-tooltip {
    display: none !important;
  }
  .journey-card-grid {
    display: flex !important;
    flex-direction: row !important;
    width: 100% !important;
    transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
    overflow: visible !important;
    padding: 4px 0 !important;
    gap: 0 !important;
    will-change: transform;
  }
  .journey-card-grid > div {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    box-sizing: border-box !important;
    padding: 0 4px !important;
  }
  .journey-card {
    padding: 1rem 0.9rem !important;
    height: auto !important;
    opacity: 0.85;
    transform: scale(0.98);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                border-color 0.3s ease,
                box-shadow 0.3s ease !important;
  }
  .journey-card.focused {
    opacity: 1 !important;
    transform: scale(1) !important;
    border-color: rgba(243, 114, 33, 0.48) !important;
    box-shadow: 0 14px 28px -6px rgba(243, 114, 33, 0.16),
                0 4px 12px -2px rgba(47, 41, 90, 0.06) !important;
  }
  .journey-card-title {
    font-size: 1.05rem !important;
    margin-bottom: 0.35rem !important;
  }
  .journey-card-desc {
    font-size: 0.8rem !important;
    line-height: 1.45 !important;
    margin-bottom: 0.5rem !important;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .journey-card .mb-4,
  .journey-card .mb-3,
  .journey-card .mb-3\.5 {
    margin-bottom: 0.4rem !important;
  }
  .roadmap-container > div:last-child {
    margin-top: 0.65rem !important;
    padding-top: 0.45rem !important;
  }
}

/* Roadmap Mobile Slider Controls */
.roadmap-mobile-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.65rem;
  margin-bottom: 0.35rem;
  padding: 0 4px;
}

@media (min-width: 769px) {
  .roadmap-mobile-controls {
    display: none !important;
  }
}

.roadmap-slider-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.35rem 0.85rem;
  border-radius: 9999px;
  background: #ffffff;
  border: 1px solid rgba(47, 41, 90, 0.15);
  color: #2F295A;
  box-shadow: 0 2px 5px rgba(47, 41, 90, 0.04);
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
}

.roadmap-slider-btn:active {
  transform: scale(0.95);
  background: #FEF7F2;
  border-color: #F37221;
  color: #F37221;
}

.roadmap-dots-indicator {
  display: flex;
  align-items: center;
  gap: 6px;
}

.roadmap-dot {
  display: block;
  width: 8px;
  height: 8px;
  padding: 0;
  margin: 0;
  border-radius: 9999px;
  border: none;
  background: rgba(47, 41, 90, 0.2);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.roadmap-dot.active {
  width: 22px;
  background: #F37221;
}

/* Reduced Motion Accessibility */
@media (prefers-reduced-motion: reduce) {
  .roadmap-pinned-track {
    height: auto !important;
  }
  .roadmap-sticky-frame {
    position: static !important;
    height: auto !important;
  }
  .journey-card {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ==========================================================================
   CLIENT PARTNERSHIPS (#PROJECTS)
   ========================================================================== */
#projectsGrid {
  position: relative;
}

/* ==========================================================================
   FIELDS OF EXPERTISE (COLLABORATION FRAMEWORK COMPONENT)
   ========================================================================== */

.iec-container {
  position: relative;
  width: 100%;
}

.collab-header {
  text-align: center;
  max-width: 48rem;
  margin: 0 auto 3rem auto;
}

.collab-title {
  font-size: 2.25rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.025em;
  line-height: 1.25;
  margin-bottom: 1rem;
}

@media (min-width: 640px) {
  .collab-title {
    font-size: 2.75rem;
  }
}

.collab-title-accent {
  position: relative;
  display: inline-block;
  color: #F37221;
}

.collab-title-underline {
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 4px;
  background: #F37221;
  border-radius: 9999px;
  opacity: 0.85;
}

.collab-subtitle {
  font-size: 1rem;
  line-height: 1.65;
  color: #475569;
}

@media (min-width: 640px) {
  .collab-subtitle {
    font-size: 1.1rem;
  }
}

.collab-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .collab-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .collab-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .collab-card-row1 {
    grid-column: span 2 / span 2;
  }
  .collab-card-row2 {
    grid-column: span 3 / span 3;
  }
}

.collab-card {
  position: relative;
  background: #ffffff;
  border: 1px solid rgba(47, 41, 90, 0.12);
  border-radius: 1.25rem;
  padding: 2rem 1.75rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  box-shadow: 0 10px 30px -8px rgba(47, 41, 90, 0.06), 0 2px 8px -2px rgba(0, 0, 0, 0.04);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  transform-style: preserve-3d;
}

.collab-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(400px circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(243, 114, 33, 0.08), transparent 65%);
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
  z-index: 1;
}

.collab-card:hover {
  transform: translateY(-4px);
  border-color: rgba(243, 114, 33, 0.45);
  box-shadow: 0 18px 40px -8px rgba(47, 41, 90, 0.12), 0 4px 16px -2px rgba(243, 114, 33, 0.15);
}

.collab-card:hover::before {
  opacity: 1;
}

.collab-step-badge {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.25rem 0.65rem;
  border-radius: 9999px;
  background: #F4F3F8;
  color: #2F295A;
  border: 1px solid rgba(47, 41, 90, 0.15);
  transition: all 0.25s ease;
  z-index: 2;
}

.collab-card:hover .collab-step-badge {
  background: #FEF7F2;
  color: #F37221;
  border-color: rgba(243, 114, 33, 0.35);
}

.collab-icon-box {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F4F3F8;
  color: #2F295A;
  border: 1px solid rgba(47, 41, 90, 0.12);
  margin-bottom: 1.25rem;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 2;
}

.collab-card:hover .collab-icon-box {
  background: #FEF7F2;
  color: #F37221;
  border-color: rgba(243, 114, 33, 0.4);
  transform: scale(1.06);
}

.collab-card-content {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.collab-tagline {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #F37221;
  margin-bottom: 0.4rem;
}

.collab-card-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.75rem;
  letter-spacing: -0.015em;
  line-height: 1.3;
  transition: color 0.2s ease;
}

.collab-card:hover .collab-card-title {
  color: #2F295A;
}

.collab-card-desc {
  font-size: 0.88rem;
  line-height: 1.65;
  color: #475569;
  margin-bottom: 1.25rem;
}

.collab-read-more {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: #2F295A;
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(47, 41, 90, 0.08);
  transition: all 0.25s ease;
  cursor: pointer;
}

.collab-read-more svg {
  transition: transform 0.25s ease;
}

.collab-card:hover .collab-read-more {
  color: #F37221;
}

.collab-card:hover .collab-read-more svg {
  transform: translateX(4px);
}

/* Collab CTA Footer */
.collab-cta-footer {
  margin-top: 2.5rem;
  width: 100%;
}

.collab-cta-card {
  background: #ffffff;
  border: 1px solid rgba(47, 41, 90, 0.15);
  border-radius: 1.5rem;
  padding: 2rem 2.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  box-shadow: 0 10px 30px -8px rgba(47, 41, 90, 0.08);
  position: relative;
  overflow: hidden;
}

@media (min-width: 768px) {
  .collab-cta-card {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 2.25rem 2.75rem;
  }
}

.collab-cta-card::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 250px;
  height: 250px;
  background: radial-gradient(circle, rgba(243, 114, 33, 0.1) 0%, transparent 70%);
  pointer-events: none;
}

.collab-cta-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 0.35rem;
}

@media (min-width: 640px) {
  .collab-cta-title {
    font-size: 1.5rem;
  }
}

.collab-cta-desc {
  font-size: 0.85rem;
  color: #64748b;
  font-family: var(--font-mono);
}

.collab-cta-btn {
  background-color: #F37221 !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1.5px solid #F37221 !important;
  box-shadow: 0 4px 14px -1px rgba(243, 114, 33, 0.38), 0 2px 6px -1px rgba(0, 0, 0, 0.04);
  padding: 0.85rem 1.75rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  cursor: pointer;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
  white-space: nowrap;
}

.collab-cta-btn:hover {
  background-color: #2F295A !important;
  background-image: none !important;
  border-color: #2F295A !important;
  color: #ffffff !important;
  box-shadow: 0 8px 22px -2px rgba(47, 41, 90, 0.42);
}

.collab-cta-btn:active {
  background-color: #241F48 !important;
  border-color: #241F48 !important;
}

/* ==========================================================================
   TRUSTED BY / ECOSYSTEM PARTNERS & CLIENTS MARQUEE (TP-SECTION)
   ========================================================================== */

.tp-section {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 3.5rem 0 2.5rem 0;
}

.tp-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.55;
  background-image: radial-gradient(rgba(47, 41, 90, 0.08) 1px, transparent 1px);
  background-size: 26px 26px;
}

.tp-rgb-glow {
  position: absolute;
  top: 15%;
  left: 50%;
  transform: translateX(-50%);
  width: 580px;
  height: 240px;
  background: radial-gradient(ellipse at center, rgba(243, 114, 33, 0.12) 0%, rgba(47, 41, 90, 0.08) 50%, transparent 70%);
  filter: blur(55px);
  pointer-events: none;
  border-radius: 50%;
}

.tp-orb {
  position: absolute;
  top: 25%;
  left: 5%;
  width: 240px;
  height: 240px;
  background: radial-gradient(circle, rgba(47, 41, 90, 0.07) 0%, transparent 70%);
  filter: blur(50px);
  pointer-events: none;
  border-radius: 50%;
}

.tp-rgb-orb {
  position: absolute;
  bottom: 15%;
  right: 5%;
  width: 240px;
  height: 240px;
  background: radial-gradient(circle, rgba(243, 114, 33, 0.08) 0%, transparent 70%);
  filter: blur(50px);
  pointer-events: none;
  border-radius: 50%;
}

.tp-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 80rem;
  margin: 0 auto;
  text-align: center;
}

.tp-badge-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 0.85rem;
}

.tp-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 15px;
  border-radius: 9999px;
  background: linear-gradient(90deg, rgba(243, 114, 33, 0.14) 0%, rgba(47, 41, 90, 0.08) 100%);
  border: 1px solid rgba(243, 114, 33, 0.35);
  color: #DE5B0E;
  font-size: 0.72rem;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 0 20px rgba(243, 114, 33, 0.18);
}

.tp-title {
  font-size: 2.15rem;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.15;
  letter-spacing: -0.025em;
  margin: 0;
}

@media (min-width: 640px) {
  .tp-title {
    font-size: 2.65rem;
  }
}

.tp-highlight {
  font-size: 2.15rem;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.025em;
  background: linear-gradient(135deg, #2F295A 0%, #7C72A5 30%, #DE5B0E 70%, #F37221 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0.25rem 0 0.85rem 0;
}

@media (min-width: 640px) {
  .tp-highlight {
    font-size: 2.65rem;
  }
}

.tp-desc {
  font-size: 0.95rem;
  color: #475569;
  max-width: 38rem;
  margin: 0 auto 2.5rem auto;
  line-height: 1.6;
}

.tp-slider-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 1rem 0 1.5rem 0;
  mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}

.tp-slider-track {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  width: max-content;
  animation: tpMarquee 42s linear infinite;
  will-change: transform;
}

.tp-slider-wrap:hover .tp-slider-track {
  animation-play-state: paused;
}

@keyframes tpMarquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.tp-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 76px;
  min-width: 140px;
  padding: 0.75rem 1.75rem;
  background: rgba(255, 255, 255, 0.95);
  border: 1.5px solid rgba(47, 41, 90, 0.1);
  border-radius: 1.25rem;
  box-shadow: 0 4px 14px -2px rgba(47, 41, 90, 0.05);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              background 0.35s ease;
  cursor: pointer;
  text-decoration: none;
}

.tp-logo:hover {
  border-color: #F37221;
  background: #ffffff;
  transform: translateY(-4px) scale(1.04);
  box-shadow: 0 14px 30px -6px rgba(47, 41, 90, 0.14), 0 0 22px -2px rgba(243, 114, 33, 0.28);
}

.tp-logo img,
.tp-logo svg,
.tp-logo-img {
  height: 46px;
  max-width: 165px;
  width: auto;
  object-fit: contain;
  transition: transform 0.35s ease;
}

.tp-logo:hover img,
.tp-logo:hover svg,
.tp-logo:hover .tp-logo-img {
  transform: scale(1.05);
}

@media screen and (max-width: 768px) {
  .tp-logo {
    height: 62px;
    min-width: 110px;
    padding: 0.5rem 1.25rem;
    border-radius: 1rem;
  }

  .tp-logo img,
  .tp-logo svg,
  .tp-logo-img {
    height: 38px;
    max-width: 130px;
  }
}

.tp-footer {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: #64748b;
  font-weight: 600;
  margin-top: 2rem;
  letter-spacing: 0.02em;
}

/* ==========================================================================
   MAINTENANCE PAGE (THEMED FOR LUXURY VIOLET & SUNSET ORANGE)
   ========================================================================== */

.maintenance-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse at 50% 20%, #1A1636 0%, #0E0C1B 65%, #08070F 100%);
  color: #ffffff;
  position: relative;
  overflow: hidden;
  padding: 24px;
  font-family: var(--font-main, 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
}

.maintenance-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
}

.gradient-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  opacity: 0.35;
  animation: float 20s ease-in-out infinite;
  pointer-events: none;
}

.orb-1 {
  width: 420px;
  height: 420px;
  background: linear-gradient(135deg, var(--accent-orange, #F37221), var(--accent-orange-bright, #DE5B0E));
  top: -180px;
  left: -180px;
  animation-delay: 0s;
}

.orb-2 {
  width: 520px;
  height: 520px;
  background: linear-gradient(135deg, #4E4482, var(--accent-violet, #2F295A));
  bottom: -220px;
  right: -220px;
  animation-delay: 5s;
}

.orb-3 {
  width: 380px;
  height: 380px;
  background: linear-gradient(135deg, #7C72A5, #F59253);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation-delay: 10s;
  opacity: 0.25;
}

@keyframes float {
  0%, 100% {
    transform: translate(0, 0) scale(1);
  }
  33% {
    transform: translate(50px, -50px) scale(1.1);
  }
  66% {
    transform: translate(-50px, 50px) scale(0.92);
  }
}

.grid-pattern {
  position: absolute;
  inset: 0;
  background-image: 
    linear-gradient(rgba(179, 172, 207, 0.05) 1px, transparent 0),
    linear-gradient(90deg, rgba(179, 172, 207, 0.05) 1px, transparent 0);
  background-size: 48px 48px;
  z-index: 1;
  pointer-events: none;
}

.maintenance-content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 720px;
  width: 100%;
}

.maintenance-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 140px;
  background: linear-gradient(135deg, rgba(243, 114, 33, 0.12), rgba(47, 41, 90, 0.25));
  border: 2px solid rgba(243, 114, 33, 0.35);
  border-radius: 50%;
  margin-bottom: 36px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 0 35px -5px rgba(243, 114, 33, 0.22), inset 0 0 20px rgba(243, 114, 33, 0.08);
}

.maintenance-icon svg {
  color: var(--accent-orange, #F37221);
  filter: drop-shadow(0 0 20px rgba(243, 114, 33, 0.55));
}

.maintenance-title {
  font-size: 56px;
  font-weight: 900;
  letter-spacing: -0.025em;
  margin-bottom: 18px;
  background: linear-gradient(135deg, #ffffff 40%, #FDECE1 80%, var(--accent-orange, #F37221) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.15;
}

.maintenance-subtitle {
  font-size: 22px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  margin-bottom: 16px;
  letter-spacing: -0.01em;
}

.maintenance-description {
  font-size: 16px;
  line-height: 1.75;
  color: rgba(211, 207, 227, 0.75);
  margin-bottom: 44px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.maintenance-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 44px;
}

.info-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 16px 28px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(179, 172, 207, 0.16);
  border-radius: 14px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.info-item:hover {
  background: rgba(243, 114, 33, 0.08);
  border-color: rgba(243, 114, 33, 0.45);
  box-shadow: 0 10px 30px -5px rgba(243, 114, 33, 0.18), 0 4px 12px -2px rgba(47, 41, 90, 0.25);
  transform: translateY(-2px);
}

.info-item svg {
  color: var(--accent-orange, #F37221);
  flex-shrink: 0;
}

.info-item span {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.88);
  font-weight: 500;
}

.loading-dots {
  display: flex;
  gap: 12px;
  justify-content: center;
  align-items: center;
}

.dot {
  width: 12px;
  height: 12px;
  background: var(--accent-orange, #F37221);
  border-radius: 50%;
  animation: pulse 1.5s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(243, 114, 33, 0.6);
}

.dot:first-child {
  animation-delay: 0s;
}

.dot:nth-child(2) {
  animation-delay: 0.3s;
}

.dot:nth-child(3) {
  animation-delay: 0.6s;
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.4);
    opacity: 0.45;
  }
}

.maintenance-footer {
  position: absolute;
  bottom: 28px;
  left: 0;
  right: 0;
  text-align: center;
  z-index: 2;
}

.maintenance-footer p {
  font-size: 13px;
  color: rgba(179, 172, 207, 0.5);
  font-family: var(--font-mono, 'JetBrains Mono', monospace);
  letter-spacing: 0.02em;
}

/* Light Mode Variation */
.maintenance-page.light-mode {
  background: radial-gradient(ellipse at 50% 20%, #ffffff 0%, #F4F3F8 60%, #E9E7F1 100%);
  color: var(--text-primary, #0f172a);
}

.maintenance-page.light-mode .grid-pattern {
  background-image: 
    linear-gradient(rgba(47, 41, 90, 0.05) 1px, transparent 0),
    linear-gradient(90deg, rgba(47, 41, 90, 0.05) 1px, transparent 0);
}

.maintenance-page.light-mode .gradient-orb {
  opacity: 0.16;
}

.maintenance-page.light-mode .maintenance-icon {
  background: linear-gradient(135deg, rgba(243, 114, 33, 0.12), rgba(47, 41, 90, 0.08));
  border-color: rgba(243, 114, 33, 0.3);
  box-shadow: 0 10px 30px -5px rgba(243, 114, 33, 0.15);
}

.maintenance-page.light-mode .maintenance-title {
  background: linear-gradient(135deg, #0f172a 35%, #2F295A 70%, #F37221 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.maintenance-page.light-mode .maintenance-subtitle {
  color: var(--text-secondary, #334155);
}

.maintenance-page.light-mode .maintenance-description {
  color: var(--text-muted, #64748b);
}

.maintenance-page.light-mode .info-item {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(47, 41, 90, 0.12);
  box-shadow: 0 4px 15px -2px rgba(47, 41, 90, 0.05);
}

.maintenance-page.light-mode .info-item:hover {
  background: #ffffff;
  border-color: rgba(243, 114, 33, 0.45);
  box-shadow: 0 10px 25px -4px rgba(243, 114, 33, 0.15);
}

.maintenance-page.light-mode .info-item span {
  color: var(--text-secondary, #334155);
}

.maintenance-page.light-mode .maintenance-footer p {
  color: var(--text-muted, #64748b);
}

@media (max-width: 768px) {
  .maintenance-title {
    font-size: 40px;
  }

  .maintenance-subtitle {
    font-size: 20px;
  }

  .maintenance-description {
    font-size: 14px;
    margin-bottom: 32px;
  }

  .maintenance-icon {
    width: 104px;
    height: 104px;
    margin-bottom: 28px;
  }

  .maintenance-icon svg {
    width: 60px;
    height: 60px;
  }

  .info-item {
    flex-direction: column;
    text-align: center;
    padding: 18px 20px;
    gap: 8px;
  }

  .info-item span {
    font-size: 14px;
  }

  .orb-1, .orb-2, .orb-3 {
    width: 260px;
    height: 260px;
  }
}

@media (max-width: 480px) {
  .maintenance-title {
    font-size: 32px;
  }

  .maintenance-subtitle {
    font-size: 17px;
  }

  .maintenance-info {
    gap: 12px;
  }
}

/* ==========================================================================
   KINETIC TYPOGRAPHY BANNER SECTION (IDI / AGENCY KICKOFF GUIDE STYLE)
   ========================================================================== */
.kinetic-banner-section.sc-elJkPf {
  position: relative;
  padding: 90px 0;
  border-top: 1px solid rgba(47, 41, 90, 0.1);
  border-bottom: 1px solid rgba(47, 41, 90, 0.1);
  overflow: hidden;
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  background: #ffffff;
  --highlight: 0.22;
  transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  isolation: isolate;
}

.kinetic-banner-section.sc-elJkPf:hover {
  --highlight: 1;
}

@media screen and (max-width: 766px) {
  .kinetic-banner-section.sc-elJkPf {
    padding: 60px 0;
  }
}

/* Kinetic Row */
.kinetic-row.sc-kTUwUJ {
  position: relative;
  width: 100%;
  max-width: 100vw;
  overflow: hidden;
  white-space: nowrap;
  margin: 7px 0;
  user-select: none;
}

/* Moving marquee track */
.kinetic-track {
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
}

.kinetic-track-left {
  animation: kineticMarqueeLeft 52s linear infinite;
}

.kinetic-track-right {
  animation: kineticMarqueeRight 52s linear infinite;
}

.kinetic-banner-section:hover .kinetic-track-left,
.kinetic-banner-section:hover .kinetic-track-right {
  animation-play-state: paused;
}

@keyframes kineticMarqueeLeft {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes kineticMarqueeRight {
  0% { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}

/* Individual phrase span matching .sc-dqBHgY.idArie */
.sc-dqBHgY.idArie {
  display: inline-block;
  margin: 0;
  color: #c4cbd4;
  font-size: 2.25rem;
  font-weight: 300;
  line-height: 1.35;
  white-space: nowrap;
  letter-spacing: -0.01em;
  font-family: var(--font-main);
  transition: color 0.4s ease;
}

.kinetic-banner-section:hover .sc-dqBHgY.idArie {
  color: #94a3b8;
}

@media screen and (max-width: 1079px) {
  .sc-dqBHgY.idArie {
    font-size: 1.7rem;
  }
}

@media screen and (max-width: 766px) {
  .sc-dqBHgY.idArie {
    font-size: 1.25rem;
    line-height: 1.6;
  }
}

.sc-dqBHgY.idArie::after {
  position: relative;
  content: "/";
  margin: 0 20px;
  color: #e2e8f0;
  font-weight: 200;
}

@media screen and (max-width: 766px) {
  .sc-dqBHgY.idArie::after {
    margin: 0 12px;
  }
}

/* Highlighted keywords matching .sc-gxMtzJ.jRDoGr */
.sc-gxMtzJ.jRDoGr {
  font-weight: 700;
  opacity: var(--highlight);
  transition: opacity 0.5s ease-in, color 0.3s ease;
  display: inline;
}

.sc-gxMtzJ.jRDoGr.highlight-orange {
  color: #F37221;
}

.sc-gxMtzJ.jRDoGr.highlight-violet {
  color: #2F295A;
}

.sc-gxMtzJ.jRDoGr.highlight-indigo {
  color: #6366F1;
}

.sc-gxMtzJ.jRDoGr.highlight-grey {
  color: #475569;
}

.sc-gxMtzJ.jRDoGr.highlight-slate {
  color: #64748B;
}

/* Fallbacks to ensure zero green and pure theme compliance */
.sc-gxMtzJ.jRDoGr.highlight-cyan {
  color: #6366F1;
}

.sc-gxMtzJ.jRDoGr.highlight-amber {
  color: #F37221;
}

.sc-gxMtzJ.jRDoGr.highlight-emerald {
  color: #475569;
}

.sc-gxMtzJ.jRDoGr.highlight-2 {
  transition-delay: 0.12s;
}

.sc-gxMtzJ.jRDoGr.highlight-3 {
  transition-delay: 0.24s;
}

.sc-gxMtzJ.jRDoGr.highlight-4 {
  transition-delay: 0.36s;
}

/* Centerpiece CTA Button matching .sc-bZQynM.iapQrB.sc-jtRfpW.rdvKw */
.sc-bZQynM.iapQrB.sc-jtRfpW.rdvKw.kinetic-cta-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 25;
  background-color: #2F295A;
  background-image: linear-gradient(135deg, #2F295A 0%, #3B3272 100%);
  color: #ffffff;
  padding: 18px 40px;
  border-radius: 9999px;
  border: 1.5px solid #F37221;
  box-shadow: 
    0 16px 40px -10px rgba(47, 41, 90, 0.45),
    0 0 35px 12px rgba(255, 255, 255, 0.95),
    0 0 25px rgba(243, 114, 33, 0.28);
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

@media screen and (max-width: 640px) {
  .sc-bZQynM.iapQrB.sc-jtRfpW.rdvKw.kinetic-cta-btn {
    padding: 14px 22px;
    width: 90%;
    max-width: 350px;
    justify-content: center;
  }
}

.sc-bZQynM.iapQrB.sc-jtRfpW.rdvKw.kinetic-cta-btn:hover {
  background-color: #241F48;
  background-image: linear-gradient(135deg, #241F48 0%, #362D68 100%);
  border-color: #F37221;
  transform: translate(-50%, -54%) scale(1.03);
  box-shadow: 
    0 24px 50px -10px rgba(47, 41, 90, 0.6),
    0 0 45px 16px rgba(255, 255, 255, 0.96),
    0 0 35px rgba(243, 114, 33, 0.45);
}

.sc-bZQynM.iapQrB.sc-jtRfpW.rdvKw.kinetic-cta-btn:active {
  transform: translate(-50%, -48%) scale(0.98);
}

@media (prefers-reduced-motion: reduce) {
  .kinetic-track-left,
  .kinetic-track-right {
    animation: none;
  }
  .kinetic-row:nth-of-type(even) {
    margin-left: 225px;
  }
  .kinetic-row:nth-of-type(2) {
    margin-left: -200px;
  }
}

/* ==========================================================================
   PROJECTS FULLY CRAFTED IN HOUSE SHOWCASE STYLES
   ========================================================================== */
.inhouse-card {
  position: relative;
  background-color: #ffffff;
  border-radius: 1.5rem;
  border: 1.5px solid rgba(47, 41, 90, 0.12);
  box-shadow: 0 10px 30px -10px rgba(47, 41, 90, 0.08), 0 2px 8px -2px rgba(0, 0, 0, 0.04);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, box-shadow, border-color;
}

.inhouse-card:hover {
  transform: translateY(-6px);
  border-color: #F37221;
  box-shadow: 0 20px 45px -12px rgba(243, 114, 33, 0.18), 0 8px 24px -4px rgba(47, 41, 90, 0.12);
}

.inhouse-card[data-project-id="mackstroke"]:hover {
  border-color: #F37221;
}

.inhouse-card[data-project-id="atomni"]:hover {
  border-color: #7C72A5;
}

/* ==========================================================================
   AGENCY STRUCTURED FOOTER (BORN DIGITAL DESIGN SYSTEM)
   ========================================================================== */
.Footer-module__i_fezG__footer {
  position: relative;
  background-color: #ffffff;
  border-top: 1.5px solid rgba(47, 41, 90, 0.08);
  padding: 5rem 0 3.5rem;
  overflow: hidden;
}

.Container-module__UGCI_q__container {
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

@media (min-width: 640px) {
  .Container-module__UGCI_q__container {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

/* Framer Portfolio Closing CTA Banner */
.framer-7l82y8 {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1.5rem;
  padding-bottom: 3.5rem;
  margin-bottom: 3.5rem;
  border-bottom: 1.5px solid rgba(47, 41, 90, 0.08);
  --token-bac74bb0-5962-4cb2-83f3-72a2f69e9bb4: #0f172a;
  --token-ae38e2d0-3b11-4ec3-a9e6-f2af7b6a5664: #64748b;
}

@media (min-width: 768px) {
  .framer-7l82y8 {
    flex-direction: row;
    align-items: center;
    gap: 2.5rem;
  }
}

.framer-1i1o8zz {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  max-width: 44rem;
}

.framer-1bo7zdl p,
.framer-styles-preset-14tsbbo {
  font-size: clamp(1.35rem, 2.3vw, 2.1rem);
  font-weight: 800;
  color: var(--extracted-r6o4lv, var(--token-bac74bb0-5962-4cb2-83f3-72a2f69e9bb4, #0f172a));
  letter-spacing: -0.025em;
  line-height: 1.25;
  margin: 0;
}

.framer-1wn5fsk p,
.framer-styles-preset-142flvo {
  font-size: 0.9375rem;
  color: var(--extracted-r6o4lv, var(--token-ae38e2d0-3b11-4ec3-a9e6-f2af7b6a5664, #64748b));
  line-height: 1.55;
  margin: 0;
}

.framer-g1ltcm-container {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.framer-tmdDT {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  text-decoration: none;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--token-bac74bb0-5962-4cb2-83f3-72a2f69e9bb4, #0f172a);
  padding: 0.85rem 1.65rem;
  border-radius: 9999px;
  border: 1.5px solid rgba(47, 41, 90, 0.14);
  background: #ffffff;
  box-shadow: 0 4px 14px -3px rgba(47, 41, 90, 0.08);
  cursor: pointer;
  transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

.framer-tmdDT:hover {
  border-color: #F37221;
  color: #F37221;
  box-shadow: 0 8px 25px -4px rgba(243, 114, 33, 0.22);
  transform: translateY(-2px);
}

.framer-193mxkg p,
.framer-5869p7 p {
  color: #F37221;
  font-weight: 800;
  font-size: 1.05rem;
  margin: 0;
  transition: transform 0.25s ease;
}

.framer-tmdDT:hover .framer-193mxkg p {
  transform: translateX(-3px);
}

.framer-tmdDT:hover .framer-5869p7 p {
  transform: translateX(3px);
}

.framer-pxsq0f {
  position: relative;
  overflow: hidden;
  height: 1.25em;
  display: flex;
  flex-direction: column;
}

.framer-1hsu82g p,
.framer-1x8kbrh p {
  margin: 0;
  font-weight: 700;
  color: inherit;
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
}

.framer-1x8kbrh {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  transform: none !important;
}

.framer-tmdDT:hover .framer-1hsu82g p {
  transform: translateY(-100%);
}

.framer-tmdDT:hover .framer-1x8kbrh {
  transform: translateY(-100%) !important;
}

.framer-tmdDT:hover .framer-1x8kbrh p {
  color: #F37221;
}

.Footer-module__i_fezG__footerTop {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  padding-bottom: 3.5rem;
  border-bottom: 1.5px solid rgba(47, 41, 90, 0.08);
}

@media (min-width: 1024px) {
  .Footer-module__i_fezG__footerTop {
    grid-template-columns: 1.4fr 1fr 0.85fr;
    gap: 3.5rem;
    align-items: start;
  }
}

.Footer-module__i_fezG__contactCol {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.Footer-module__i_fezG__email {
  font-size: clamp(1.25rem, 2.2vw, 1.95rem);
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.025em;
  line-height: 1.2;
  text-decoration: none;
  transition: color 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
}

@media (max-width: 640px) {
  .Footer-module__i_fezG__email {
    white-space: normal;
    font-size: 1.4rem;
    word-break: break-word;
  }
}

.Footer-module__i_fezG__email:hover {
  color: #F37221;
}

.Footer-module__i_fezG__address {
  margin-top: 1.25rem;
  font-size: 0.9375rem;
  color: #64748b;
  line-height: 1.65;
}

.Footer-module__i_fezG__navCol {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.85rem 1.75rem;
  align-content: flex-start;
}

.Footer-module__i_fezG__footerLink {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #475569;
  text-decoration: none;
  transition: all 0.22s ease;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}

.Footer-module__i_fezG__footerLink:hover {
  color: #F37221;
  transform: translateX(3px);
}

.Footer-module__i_fezG__socialCol {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  align-content: flex-start;
}

.Footer-module__i_fezG__ctaLink {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #F37221;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  transition: all 0.22s ease;
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
}

.Footer-module__i_fezG__ctaLink:hover {
  color: #2F295A;
  transform: translateX(4px);
}

.Footer-module__i_fezG__footerBottom {
  display: flex !important;
  flex-direction: column;
  gap: 2rem;
  padding-top: 3rem;
}

@media (min-width: 768px) {
  .Footer-module__i_fezG__footerBottom {
    flex-direction: row !important;
    align-items: center;
    justify-content: space-between;
  }
}

.Footer-module__i_fezG__logoWrapper {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.Footer-module__i_fezG__yearDesktop {
  font-size: 0.8125rem;
  font-family: "JetBrains Mono", monospace;
  color: #94a3b8;
  display: none;
}

@media (min-width: 768px) {
  .Footer-module__i_fezG__yearDesktop {
    display: block;
  }
}

.Footer-module__i_fezG__bottomTextWrapper {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  color: #64748b;
  font-size: 0.875rem;
  line-height: 1.6;
  max-width: 32rem;
}

.Footer-module__i_fezG__focLogo {
  height: 38px;
  width: auto;
  object-fit: contain;
}

.Footer-module__i_fezG__infoLink {
  color: #2F295A;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(47, 41, 90, 0.25);
  transition: all 0.2s ease;
}

.Footer-module__i_fezG__infoLink:hover {
  color: #F37221;
  text-decoration-color: #F37221;
}

.Footer-module__i_fezG__yearMobile {
  display: block;
  font-size: 0.8125rem;
  font-family: "JetBrains Mono", monospace;
  color: #94a3b8;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(47, 41, 90, 0.08);
}

@media (min-width: 768px) {
  .Footer-module__i_fezG__yearMobile {
    display: none;
  }
}

/* ==========================================================================
   OFFCANVAS OVERLAY MENU (Modeled after Every Day ® split-screen pattern)
   ========================================================================== */

.offcanvas {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.offcanvas:not(.offcanvas--active),
.offcanvas:not(.offcanvas--active) * {
  pointer-events: none !important;
  visibility: hidden !important;
}

.offcanvas.offcanvas--active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.offcanvas__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 1;
  transition: opacity 0.35s ease;
}

.offcanvas__container {
  position: relative;
  z-index: 2;
  width: 96vw;
  max-width: 1380px;
  height: 92vh;
  max-height: 900px;
  background: #FFFFFF;
  border-radius: 2rem;
  box-shadow: 0 30px 70px -15px rgba(15, 23, 42, 0.4), 0 0 0 1px rgba(47, 41, 90, 0.08);
  overflow: hidden;
  transform: scale(0.96) translateY(16px);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.offcanvas.offcanvas--active .offcanvas__container {
  transform: scale(1) translateY(0);
}

.offcanvas__grid {
  display: grid;
  grid-template-columns: 1fr;
  height: 100%;
}

@media (min-width: 1024px) {
  .offcanvas__grid {
    grid-template-columns: 46% 54%;
  }
}

/* ==================== LEFT TAB: SYNCHRONIZED PREVIEWS ==================== */
.left-tab {
  display: none;
  position: relative;
  height: 100%;
  background: #0B0F19;
  border-top-left-radius: 2rem;
  border-bottom-left-radius: 2rem;
  overflow: hidden;
  padding: 1.5rem;
}

@media (min-width: 1024px) {
  .left-tab {
    display: flex;
    flex-direction: column;
  }
}

.left-tab .images {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 1.5rem;
  overflow: hidden;
}

figure.media.cover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: scale(0.97) translateY(8px);
  transition: opacity 0.38s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.38s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0.38s cubic-bezier(0.16, 1, 0.3, 1);
}

figure.media.cover.active {
  opacity: 1;
  transform: scale(1) translateY(0);
  z-index: 2;
}

.offcanvas.offcanvas--active figure.media.cover.active {
  visibility: visible;
  pointer-events: auto;
}

.media-wrapper {
  width: 100%;
  height: 100%;
}

.preview-card {
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}

/* ==================== RIGHT TAB: NAVIGATION & CONTACT ==================== */
.right-tab {
  padding: 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  overflow-y: auto;
  background: #FFFFFF;
}

@media (min-width: 640px) {
  .right-tab {
    padding: 1.75rem 2.25rem;
  }
}

/* Custom Scrollbar for Right Tab */
.right-tab::-webkit-scrollbar {
  width: 6px;
}

.right-tab::-webkit-scrollbar-track {
  background: #f8fafc;
}

.right-tab::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 9999px;
}

.right-tab::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Top Bar & Close Button */
.offcanvas-top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.offcanvas-close-btn {
  cursor: pointer;
  border: 1px solid #e2e8f0;
  outline: none;
}

.offcanvas-close-btn:focus-visible {
  ring: 2px solid #F37221;
}

/* Main Menu List */
ul.menu.main-menu {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

li[data-offcanvas-item] {
  position: relative;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.offcanvas-nav-link {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
  padding: 0.45rem 0.75rem;
  border-radius: 0.875rem;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-idx {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #94a3b8;
  min-width: 1.75rem;
  transition: color 0.2s ease;
}

.menu-label {
  font-size: clamp(1.15rem, 2vw, 1.65rem);
  font-weight: 800;
  color: #334155;
  letter-spacing: -0.025em;
  line-height: 1.25;
  transition: color 0.2s ease;
}

.menu-badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 0.25rem 0.65rem;
  border-radius: 9999px;
  background: #f1f5f9;
  color: #64748b;
  border: 1px solid #e2e8f0;
  transition: all 0.2s ease;
  margin-left: auto;
  white-space: nowrap;
}

/* Active & Hover States for Menu Items */
li[data-offcanvas-item]:hover .offcanvas-nav-link,
li[data-offcanvas-item].active .offcanvas-nav-link {
  background: rgba(243, 114, 33, 0.06);
  transform: translateX(8px);
}

li[data-offcanvas-item]:hover .menu-idx,
li[data-offcanvas-item].active .menu-idx {
  color: #F37221;
}

li[data-offcanvas-item]:hover .menu-label,
li[data-offcanvas-item].active .menu-label {
  color: #0f172a;
}

li[data-offcanvas-item]:hover .menu-badge,
li[data-offcanvas-item].active .menu-badge {
  background: rgba(243, 114, 33, 0.12);
  color: #c2410c;
  border-color: rgba(243, 114, 33, 0.3);
}

/* Mobile & Touch Adjustments */
@media (max-width: 640px) {
  .offcanvas__container {
    width: 100vw;
    height: 100vh;
    max-height: 100vh;
    border-radius: 0;
  }
  
  .menu-badge {
    display: none;
  }
  
  .offcanvas-nav-link {
    gap: 0.75rem;
    padding: 0.55rem 0.65rem;
  }
}

/* ==========================================================================
   ABOUT ME & PHILOSOPHY SECTION (MODERN EDITORIAL & VIEWPORT ANIMATIONS)
   ========================================================================== */

.about-modern-section {
  position: relative;
  width: 100%;
  min-height: calc(100vh - 5rem);
  display: flex;
  align-items: center;
}

@media (min-width: 1024px) {
  .about-modern-section {
    min-height: 100vh;
  }
}

.about-ambient-orb,
.about-ambient-orb-1,
.about-ambient-orb-2 {
  display: none !important;
}

.about-card-container {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: calc(100vh - 5rem);
  display: flex;
  align-items: center;
}

@media (min-width: 1024px) {
  .about-card-container {
    min-height: 100vh;
  }
}

/* About Details Strip - White Styling */
.about-details-strip {
  background-color: transparent;
}

.about-details-line {
  background-color: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.04), 0 1px 2px -1px rgba(0, 0, 0, 0.04) !important;
}

.about-details-line:hover {
  border-color: rgba(243, 114, 33, 0.4) !important;
  box-shadow: 0 4px 14px -2px rgba(243, 114, 33, 0.12) !important;
}

/* Portrait Frame - Architectural (Clean, no borders, no roundness, no cards) */
.about-portrait-frame {
  border-radius: 0px !important;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

.about-portrait-frame:hover {
  transform: translateY(-4px);
  box-shadow: none !important;
}

.about-portrait-frame img {
  border-radius: 0px !important;
  border: none !important;
  box-shadow: none !important;
}

/* Viewport-based entrance animations - Safe Default Visible (Progressive Enhancement) */
.about-modern-section .about-portrait-frame {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
  transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.85s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.85s cubic-bezier(0.16, 1, 0.3, 1);
}

.about-modern-section .about-anim-reveal {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.about-modern-section.in-view .about-portrait-frame {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

.about-modern-section.in-view .about-anim-reveal:nth-child(1) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.1s;
}

.about-modern-section.in-view .about-anim-reveal:nth-child(2) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.2s;
}

.about-modern-section.in-view .about-anim-reveal:nth-child(3) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.3s;
}

.about-modern-section.in-view .about-anim-reveal:nth-child(4) {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 0.4s;
}

/* Dynamic Hover Preview Popover */
.about-preview-popover {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  opacity: 0;
  transform: translateY(8px) scale(0.96);
  transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  filter: drop-shadow(0 20px 25px rgba(0, 0, 0, 0.25));
}

.about-preview-popover.active {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.dynamic-link-preview {
  position: relative;
  cursor: pointer;
}

/* ==========================================================================
   FRAMER SERVICE SECTION & STACKING CARDS ANIMATION
   ========================================================================== */
.framer-1qe9dyv {
  position: relative;
  width: 100%;
  padding: 0;
  overflow: visible;
}

/* Horizontal Rolling Ticker Header */
.framer-iuw0i4 {
  width: 100%;
  overflow: hidden;
  position: sticky;
  top: 80px; /* sits below fixed navbar (h-20 = 80px) */
  z-index: 19;
  background: rgba(251, 250, 255, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 0.65rem 0 0.85rem;
  user-select: none;
  touch-action: pan-y;
  display: flex;
  justify-content: center;
  mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
  transition: box-shadow 0.3s ease;
}

/* Shadow when cards are actively stacking under the ticker */
.framer-iuw0i4.is-sticking {
  box-shadow: 0 4px 24px -4px rgba(47, 41, 90, 0.10);
}

.framer-ticker-container {
  width: 100%;
  overflow: hidden;
  display: flex;
}

.framer-ticker-track {
  display: flex;
  align-items: center;
  gap: clamp(40px, 6vw, 85px);
  width: max-content;
  animation: framerTickerTrackScroll 24s linear infinite;
  will-change: transform;
  list-style: none;
  padding: 0;
  margin: 0;
}

.framer-ticker-track:hover {
  animation-play-state: paused;
}

@keyframes framerTickerTrackScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.ticker-item {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  position: relative;
}

.framer-styles-preset-mh5cwb {
  font-size: clamp(2.8rem, 6.5vw, 5.75rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  color: #0f172a;
  line-height: 1.05;
  margin: 0;
  text-transform: lowercase;
  opacity: 0.92;
  transition: opacity 0.2s ease, color 0.2s ease;
}

.ticker-item:hover .framer-styles-preset-mh5cwb {
  color: #F37221;
}

/* Container & Content */
.framer-z97vhr {
  width: 100%;
  max-width: 78rem;
  margin: 2.5rem auto 0;
  padding: 0 1.25rem;
  transition: margin-top 0.3s ease;
}

/* Extra space between ticker and cards when ticker is actively stuck */
.framer-iuw0i4.is-sticking ~ .framer-z97vhr {
  margin-top: 4.5rem;
}

@media (min-width: 640px) {
  .framer-z97vhr {
    padding: 0 2rem;
  }
}

.framer-1xaj5w0 {
  width: 100%;
}

.framer-4u618a {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
}

/* Sticky Stack Card Containers — sit below the sticky ticker */
.framer-1x0xul4,
.framer-55h3ma,
.framer-w765cb,
.framer-9w2l9e {
  position: sticky;
  top: 175px; /* navbar(80) + ticker(~80) + gap(15) */
  width: 100%;
  margin-bottom: 26vh;
  will-change: transform, filter, box-shadow;
  transform-origin: center top;
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1),
              filter 0.22s ease,
              box-shadow 0.22s ease;
}

.framer-9w2l9e {
  margin-bottom: 2.5rem;
}

/* Tablet */
@media (max-width: 1024px) {
  .framer-1x0xul4,
  .framer-55h3ma,
  .framer-w765cb,
  .framer-9w2l9e {
    top: 155px; /* navbar(80) + ticker(~65) + gap(10) */
    margin-bottom: 20vh;
  }
}

/* Mobile */
@media (max-width: 640px) {
  .framer-1x0xul4,
  .framer-55h3ma,
  .framer-w765cb,
  .framer-9w2l9e {
    top: 140px; /* navbar(80) + ticker(~50) + gap(10) */
    margin-bottom: 16vh;
  }
  .framer-9w2l9e {
    margin-bottom: 2rem;
  }
}

/* Card Component */
.framer-3FYFk {
  display: block;
  width: 100%;
  background-color: #ffffff;
  border-radius: 28px;
  border: 1.5px solid rgba(47, 41, 90, 0.12);
  box-shadow: 0 10px 30px -5px rgba(15, 23, 42, 0.05),
              0 20px 45px -10px rgba(47, 41, 90, 0.08);
  padding: 2.25rem 1.75rem;
  text-decoration: none;
  color: inherit;
  box-sizing: border-box;
  transform-origin: center top;
  transition: border-color 0.28s ease,
              box-shadow 0.28s ease,
              transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (min-width: 768px) {
  .framer-3FYFk {
    padding: 3.25rem 3.5rem;
    border-radius: 32px;
  }
}

.framer-3FYFk:hover {
  border-color: rgba(243, 114, 33, 0.45);
}

/* Card Title */
.framer-obnvtj {
  width: 100%;
}

.framer-9lkc6r h5,
.framer-styles-preset-v3bmkm {
  font-size: clamp(1.85rem, 3.5vw, 3rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: #0f172a;
  margin: 0;
  transition: color 0.2s ease;
}

.framer-3FYFk:hover .framer-9lkc6r h5 {
  color: #0f172a;
}

/* Line Divider */
.framer-rn9oek {
  width: 100%;
  height: 1px;
  background-color: rgba(15, 23, 42, 0.1);
  margin: 1.75rem 0 2rem;
  transition: background-color 0.25s ease;
}

.framer-3FYFk:hover .framer-rn9oek {
  background-color: rgba(243, 114, 33, 0.35);
}

/* Text and Tags */
.framer-7g8nhj {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
  align-items: start;
}

@media (min-width: 768px) {
  .framer-7g8nhj {
    grid-template-columns: 1.35fr 1fr;
    gap: 3rem;
  }
}

.framer-1okz3ck p,
.framer-styles-preset-142flvo {
  font-size: clamp(0.95rem, 1.2vw, 1.1rem);
  line-height: 1.65;
  color: #475569;
  margin: 0;
}

/* Tags */
.framer-d9rynj {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}

.framer-RDyjY {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1.15rem;
  border-radius: 40px;
  border: 1px solid rgba(47, 41, 90, 0.14);
  background-color: #ffffff;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.framer-RDyjY:hover {
  border-color: #F37221;
  background-color: rgba(243, 114, 33, 0.05);
  transform: translateY(-1.5px);
}

.framer-11sief4 p,
.framer-styles-preset-9gvlr6 {
  font-size: 0.875rem;
  font-weight: 600;
  color: #0f172a;
  margin: 0;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.framer-RDyjY:hover .framer-11sief4 p {
  color: #F37221;
}

/* ==========================================================================
   FRAMER STACKING CARDS: ANIMATED HERO ICONS & TAG MICRO-INTERACTIONS
   ========================================================================== */
.framer-card-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  width: 100%;
}

.framer-service-icon-box {
  width: 64px;
  height: 64px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  color: #2F295A;
  box-shadow: 0 8px 24px -4px rgba(47, 41, 90, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, color 0.3s ease;
}

.framer-service-icon-box svg {
  width: 32px;
  height: 32px;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (max-width: 640px) {
  .framer-service-icon-box {
    width: 50px;
    height: 50px;
    border-radius: 16px;
  }
  .framer-service-icon-box svg {
    width: 26px;
    height: 26px;
  }
}

.framer-3FYFk:hover .framer-service-icon-box {
  transform: translateY(-4px) scale(1.06);
  box-shadow: 0 16px 36px -8px rgba(243, 114, 33, 0.25), 0 0 24px rgba(243, 114, 33, 0.15);
  border-color: rgba(243, 114, 33, 0.5);
}

.framer-3FYFk:hover .framer-service-icon-box svg {
  transform: scale(1.1);
}

/* Card 1: UI & UX Design */
.framer-icon-ui {
  background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 55%, #fae8ff 100%);
  border: 1.5px solid rgba(139, 92, 246, 0.28);
}

.ui-outline-accent {
  animation: uiPulseAccent 3s ease-in-out infinite alternate;
}
@keyframes uiPulseAccent {
  0% { transform: scale(1); transform-origin: 15px 15px; }
  100% { transform: scale(1.15); transform-origin: 15px 15px; }
}

/* Card 2: Logo & Branding */
.framer-icon-branding {
  background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 55%, #fed7aa 100%);
  border: 1.5px solid rgba(243, 114, 33, 0.32);
}

.brand-outline-accent {
  animation: brandPulseAccent 2.5s ease-in-out infinite alternate;
}
@keyframes brandPulseAccent {
  0% { transform: scale(1); transform-origin: 11px 11px; }
  100% { transform: scale(1.3); transform-origin: 11px 11px; }
}

.brand-outline-pen {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  transform-origin: 12px 19px;
}
.framer-3FYFk:hover .brand-outline-pen {
  transform: rotate(-8deg);
}

/* Card 3: Developer Support */
.framer-icon-dev {
  background: linear-gradient(135deg, #f0fdf4 0%, #e0e7ff 50%, #dbeafe 100%);
  border: 1.5px solid rgba(47, 41, 90, 0.25);
}

.dev-outline-cursor {
  animation: devBlinkCursor 1s step-end infinite;
}
@keyframes devBlinkCursor {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

/* Card 4: Branding Strategy */
.framer-icon-strategy {
  background: linear-gradient(135deg, #fef3c7 0%, #ffedd5 50%, #f3e8ff 100%);
  border: 1.5px solid rgba(243, 114, 33, 0.32);
}

.strat-outline-needle {
  animation: stratNeedleSway 4s ease-in-out infinite;
  transform-origin: 12px 12px;
}
@keyframes stratNeedleSway {
  0%, 100% { transform: rotate(0deg); }
  35% { transform: rotate(18deg); }
  75% { transform: rotate(-14deg); }
}

/* Tag Bullets Micro-Interaction */
.framer-tag-icon {
  width: 14px;
  height: 14px;
  margin-right: 6px;
  color: #4E4482;
  flex-shrink: 0;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), color 0.22s ease;
}

.framer-RDyjY:hover .framer-tag-icon {
  transform: scale(1.22) rotate(8deg);
  color: #F37221;
}

@media (prefers-reduced-motion: reduce) {
  .ui-outline-accent,
  .brand-outline-accent,
  .dev-outline-cursor,
  .strat-outline-needle {
    animation: none !important;
  }
}

/* Trigger Markers */
.framer-7vozfw,
.framer-19jpzpd,
.framer-1cx7s0t {
  height: 1px;
  width: 100%;
  pointer-events: none;
  opacity: 0;
}

/* ==========================================================================
   CODING GLITCH & TEXT SCRAMBLE ANIMATION (Hero Headline Word Switcher)
   ========================================================================== */
.glitch-text,
.anim-txt {
  display: inline-block;
  position: relative;
  font-family: inherit;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  transition: min-width 0.25s ease, filter 0.2s ease;
}

/* Coding glitch characters during transition */
.glitch-char {
  display: inline;
  font-family: inherit;
  color: #F37221;
  opacity: 0.88;
  transition: opacity 0.15s ease;
}

/* Refined, smooth & gentle glow effect during scramble (zero layout shift/jitter) */
.glitch-text.is-glitching {
  animation: glitchTextGlow 0.4s ease-in-out infinite alternate;
}

@keyframes glitchTextGlow {
  0% {
    filter: drop-shadow(0 0 6px rgba(243, 114, 33, 0.45));
  }
  100% {
    filter: drop-shadow(0 0 10px rgba(47, 41, 90, 0.35)) drop-shadow(0 0 4px rgba(243, 114, 33, 0.6));
  }
}


/* Coding Terminal Blinking Cursor */
.glitch-cursor {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-weight: 600;
  color: #F37221;
  margin-left: 1px;
  margin-right: 3px;
  vertical-align: baseline;
  animation: glitchCursorBlink 0.9s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  user-select: none;
  -webkit-text-fill-color: #F37221;
}

@keyframes glitchCursorBlink {
  0%, 45% {
    opacity: 1;
    transform: scaleY(1);
  }
  50%, 95% {
    opacity: 0;
    transform: scaleY(0.9);
  }
  100% {
    opacity: 1;
    transform: scaleY(1);
  }
}

/* ==========================================================================
   MOBILE & TOUCH DEVICE OPTIMIZATION SUITE (< 640px / 320px - 480px)
   ========================================================================== */
@media (max-width: 640px) {
  /* Prevent any horizontal page shaking or micro-scroll */
  html, body {
    overflow-x: clip !important;
    width: 100% !important;
    position: relative;
    -webkit-overflow-scrolling: touch;
  }

  /* Main content mobile padding */
  main {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  /* Hero Display Headline Fluid Scaling */
  #heroTextContainer h1 {
    font-size: clamp(1.85rem, 7.5vw, 2.5rem) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
  }

  /* Hero Paragraph Typography */
  #heroTextContainer p {
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
  }

  /* Hero CTA Buttons - Full-width touch targets */
  #heroTextContainer .btn-primary,
  #heroTextContainer .btn-secondary {
    width: 100% !important;
    justify-content: center !important;
    min-height: 48px !important;
    text-align: center !important;
    font-size: 0.9rem !important;
  }

  /* Touch Cards padding on mobile */
  .inhouse-card,
  .project-card,
  .glass-panel {
    border-radius: 1.25rem !important;
  }

  /* Case study modal mobile optimization */
  #projectModal > div,
  #resumeModal .modal-container {
    max-height: 94vh !important;
    margin: 0.75rem auto !important;
    border-radius: 1.25rem !important;
  }

  /* Ensure filter track has touch momentum */
  .filter-drag-track {
    -webkit-overflow-scrolling: touch !important;
  }

  .filter-drag-track .filter-btn {
    min-height: 38px !important;
  }
}

/* ==========================================================================
   PRINT / PDF EXPORT ENGINE - ATS OPTIMIZED (SINGLE-COLUMN MASTER RESUME)
   ========================================================================== */
@media print {
  /* Page geometry: standard A4 portrait with balanced margins */
  @page {
    size: A4 portrait;
    margin: 10mm 14mm 10mm 14mm;
  }

  /* Universal print resets */
  *, *::before, *::after {
    background: transparent !important;
    color: #0f172a !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    transition: none !important;
    animation: none !important;
  }

  html, body {
    width: 100% !important;
    min-width: 100% !important;
    height: auto !important;
    min-height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 8.5pt !important;
    line-height: 1.35 !important;
    overflow: visible !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* Completely suppress all background portfolio content, main layout, sections, navigation, headers, footers, and overlays */
  body > *:not(#resumeModal),
  header, footer, nav, main, section, aside,
  #portfolioNav,
  #scrollProgressBar,
  #hero,
  #in-house,
  #client-work,
  #services,
  #process,
  #vibe-coding,
  #skills,
  #experience,
  #about,
  #contact,
  #projects,
  #expertise,
  #clients,
  .tp-section,
  #projectModal,
  #toast,
  #backToTopContainer,
  #backToTopBtn,
  #offcanvasNav,
  .ambient-glow-1,
  .ambient-glow-2,
  .ambient-glow-3,
  .ambient-flare,
  .framer-cursor,
  .cursor-follower,
  .fixed:not(#resumeModal),
  [data-framer-name],
  .kinetic-cta-btn,
  .floating-pill-nav,
  .no-print {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
  }

  /* Make Resume Modal the sole root document for printing */
  #resumeModal {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: none !important;
    box-shadow: none !important;
    overflow: visible !important;
    z-index: 1 !important;
    opacity: 1 !important;
  }

  /* Remove modal container framing, rounded corners, max heights, scrollbars */
  #resumeModal .modal-container {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #ffffff !important;
    overflow: visible !important;
  }

  /* Hide interactive modal header (close button, score badge) and toolbar (tabs, copy/download/print buttons) */
  #resumeModalHeader,
  #resumeModalActions,
  #resumeRawView,
  .print\:hidden,
  button,
  .btn-primary,
  .btn-secondary {
    display: none !important;
    visibility: hidden !important;
  }

  /* Resume Modal Body resets */
  #resumeModalBody {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #ffffff !important;
  }

  /* Formatted ATS View becomes full printable document */
  #resumeFormattedView {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Header Section */
  .resume-header {
    text-align: center !important;
    border-bottom: 2pt solid #0f172a !important;
    padding-bottom: 6pt !important;
    margin-bottom: 8pt !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
  }

  .resume-header h1 {
    font-size: 19pt !important;
    font-weight: 800 !important;
    letter-spacing: 0.5pt !important;
    text-transform: uppercase !important;
    margin: 0 0 2pt 0 !important;
    color: #0f172a !important;
    line-height: 1.1 !important;
  }

  .resume-header .resume-title {
    font-size: 10pt !important;
    font-weight: 700 !important;
    color: #4338ca !important;
    margin: 0 0 3pt 0 !important;
    line-height: 1.2 !important;
  }

  .resume-header .resume-contact {
    font-size: 8pt !important;
    color: #475569 !important;
    line-height: 1.3 !important;
  }

  .resume-header .resume-contact a {
    color: #0f172a !important;
    text-decoration: none !important;
    font-weight: 600 !important;
  }

  /* Section Titles: Standard ATS recognized uppercase headers */
  .resume-section-title {
    font-size: 9.5pt !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.8pt !important;
    color: #0f172a !important;
    border-bottom: 1pt solid #94a3b8 !important;
    padding-bottom: 1.5pt !important;
    margin-top: 8pt !important;
    margin-bottom: 4pt !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
  }

  /* Text & Paragraphs */
  p, li, span {
    font-size: 8.2pt !important;
    line-height: 1.35 !important;
    color: #1e293b !important;
  }

  /* Bullet points: standard disc with clean indentation */
  ul.resume-bullets {
    margin: 2pt 0 3pt 12pt !important;
    padding: 0 !important;
    list-style-type: disc !important;
  }

  ul.resume-bullets li {
    font-size: 8.2pt !important;
    line-height: 1.32 !important;
    color: #1e293b !important;
    margin-bottom: 1.5pt !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  /* Smart Page Breaks: Prevent breaking inside jobs, projects, and education items */
  .resume-role-item,
  .resume-project-item,
  .resume-edu-item {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    margin-bottom: 5pt !important;
  }

  /* Clean up links for print */
  a {
    color: #0f172a !important;
    text-decoration: none !important;
  }

  /* Preserve subtle borders between project items */
  .resume-project-item {
    border-bottom: 0.5pt solid #e2e8f0 !important;
    padding-bottom: 3.5pt !important;
  }

  .resume-project-item:last-child {
    border-bottom: none !important;
  }
}

/* ==========================================================================
   GLOBAL VIEWPORT & MOUSE SCROLL ANIMATION SYSTEM
   Engineered for 60-120fps GPU performance, responsive on Desktop, Tab & Mob
   ========================================================================== */

/* 1. Top Dynamic Scroll Progress Bar */
#scrollProgressBar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, #2F295A 0%, #F37221 50%, #DE5B0E 100%);
  transform-origin: left center;
  transform: scaleX(0);
  z-index: 9999;
  pointer-events: none;
  box-shadow: 0 0 10px rgba(243, 114, 33, 0.45);
  transition: opacity 0.3s ease;
  will-change: transform;
}

/* 2. Core Reveal Base Classes (Activated only when .v-scroll-ready is attached to body) */
.v-scroll-ready .section-reveal-block,
.v-scroll-ready .reveal-item,
.v-scroll-ready [data-v-reveal] {
  opacity: 0;
  transform: translate3d(0, 32px, 0);
  will-change: transform, opacity;
  transition: opacity 0.72s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.72s cubic-bezier(0.16, 1, 0.3, 1);
  backface-visibility: hidden;
}

/* Revealed State: fully visible and neutral translation */
.v-scroll-ready .section-reveal-block.is-revealed,
.v-scroll-ready .reveal-item.is-revealed,
.v-scroll-ready [data-v-reveal].is-revealed {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
}

/* Specific Reveal Variants */
.v-scroll-ready [data-v-reveal="scale"],
.v-scroll-ready .reveal-scale {
  transform: translate3d(0, 20px, 0) scale(0.96);
}

.v-scroll-ready [data-v-reveal="fade"],
.v-scroll-ready .reveal-fade {
  transform: translate3d(0, 0, 0);
}

.v-scroll-ready [data-v-reveal="slide-left"],
.v-scroll-ready .reveal-slide-left {
  transform: translate3d(-32px, 0, 0);
}

.v-scroll-ready [data-v-reveal="slide-right"],
.v-scroll-ready .reveal-slide-right {
  transform: translate3d(32px, 0, 0);
}

/* Stagger Delay Rules for Multi-Card Containers */
.v-scroll-ready [data-v-stagger] > *:nth-child(1), .v-scroll-ready .reveal-stagger > *:nth-child(1) { transition-delay: 0.04s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(2), .v-scroll-ready .reveal-stagger > *:nth-child(2) { transition-delay: 0.09s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(3), .v-scroll-ready .reveal-stagger > *:nth-child(3) { transition-delay: 0.14s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(4), .v-scroll-ready .reveal-stagger > *:nth-child(4) { transition-delay: 0.19s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(5), .v-scroll-ready .reveal-stagger > *:nth-child(5) { transition-delay: 0.24s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(6), .v-scroll-ready .reveal-stagger > *:nth-child(6) { transition-delay: 0.29s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(7), .v-scroll-ready .reveal-stagger > *:nth-child(7) { transition-delay: 0.34s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(8), .v-scroll-ready .reveal-stagger > *:nth-child(8) { transition-delay: 0.39s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(9), .v-scroll-ready .reveal-stagger > *:nth-child(9) { transition-delay: 0.44s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(10), .v-scroll-ready .reveal-stagger > *:nth-child(10) { transition-delay: 0.49s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(11), .v-scroll-ready .reveal-stagger > *:nth-child(11) { transition-delay: 0.54s; }
.v-scroll-ready [data-v-stagger] > *:nth-child(12), .v-scroll-ready .reveal-stagger > *:nth-child(12) { transition-delay: 0.59s; }

/* 3. Desktop Interactive 3D Card Mouse Tilt (Hover: Hover only) */
@media (hover: hover) and (pointer: fine) {
  .mouse-tilt-card {
    transition: transform 0.24s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.24s cubic-bezier(0.16, 1, 0.3, 1);
    transform-style: preserve-3d;
  }
}

/* 4. Tablet Responsive Optimization (641px - 1024px) */
@media (max-width: 1024px) {
  .v-scroll-ready .section-reveal-block,
  .v-scroll-ready .reveal-item,
  .v-scroll-ready [data-v-reveal] {
    transform: translate3d(0, 22px, 0);
    transition-duration: 0.62s;
  }
  .v-scroll-ready [data-v-reveal="slide-left"],
  .v-scroll-ready .reveal-slide-left {
    transform: translate3d(-20px, 0, 0);
  }
  .v-scroll-ready [data-v-reveal="slide-right"],
  .v-scroll-ready .reveal-slide-right {
    transform: translate3d(20px, 0, 0);
  }
}

/* 5. Mobile Responsive Optimization (<= 640px) */
@media (max-width: 640px) {
  .v-scroll-ready .section-reveal-block,
  .v-scroll-ready .reveal-item,
  .v-scroll-ready [data-v-reveal] {
    transform: translate3d(0, 16px, 0);
    transition-duration: 0.48s;
    transition-timing-function: cubic-bezier(0.2, 0.9, 0.3, 1);
  }
  /* On mobile, tighten child staggers so fast thumb scrolling reveals content promptly */
  .v-scroll-ready [data-v-stagger] > *:nth-child(n),
  .v-scroll-ready .reveal-stagger > *:nth-child(n) {
    transition-delay: 0.03s !important;
  }
  #scrollProgressBar {
    height: 2.5px;
  }
}

/* 6. Accessibility: Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  .v-scroll-ready .section-reveal-block,
  .v-scroll-ready .reveal-item,
  .v-scroll-ready [data-v-reveal],
  .mouse-tilt-card {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  #scrollProgressBar {
    display: none !important;
  }
}


