/* ════════════════════════════════════════════════════════════════
   ISONAPSE · shared site styles (index / products / daemons)
   Design language: v6 "Panels". Dark #09090b, DM Sans + JetBrains Mono,
   yellow #F4D03F accent, hairline bento grid, blue flowing shader.
   ════════════════════════════════════════════════════════════════ */
* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  background-color: #09090b;
  color: #fafafa;
  overflow-x: hidden;
}

.grid-bg {
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 64px 64px;
}

.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.9s cubic-bezier(.16, 1, .3, 1), transform 0.9s cubic-bezier(.16, 1, .3, 1);
  will-change: opacity, transform;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
/* Line-stagger inside headings */
.reveal-line {
  display: block;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.95s cubic-bezier(.16, 1, .3, 1), transform 0.95s cubic-bezier(.16, 1, .3, 1);
  will-change: opacity, transform;
}
.reveal-line.visible {
  opacity: 1;
  transform: translateY(0);
}

.nav-blur {
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
}

.terminal-window {
  background: rgba(24, 24, 27, 0.4);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-bottom: none;
  overflow: hidden;
  box-shadow: 0 -20px 60px -15px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.04);
}
.terminal-dots {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 16px;
}
.terminal-dots .tdot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  flex-shrink: 0;
}

/* Terminal syntax colors */
.term-prompt   { color: #71717a; }
.term-bin      { color: #34d399; }
.term-cmd      { color: #fafafa; }
.term-flag     { color: #7dd3fc; }
.term-flag-val { color: #fde68a; }
.term-arg      { color: #d4d4d8; }
.term-bullet   { color: #52525b; }
.term-meta     { color: #a1a1aa; }
.term-num      { color: #fde68a; }
.term-ok       { color: #34d399; }

.gradient-text {
  background: linear-gradient(135deg, #fafafa 0%, #a1a1aa 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

::selection {
  background: rgba(244, 208, 63, 0.3);
  color: #fafafa;
}

/* Mobile-only fade for the hero unicorn scene so it dissolves into the dark below */
@media (max-width: 639px) {
  .unicorn-fade-mobile {
    -webkit-mask-image: linear-gradient(to bottom, #000 65%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 65%, transparent 100%);
  }
}

/* Fancy buttons with sharp corners */
.btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: color 0.5s cubic-bezier(.16, 1, .3, 1), border-color 0.5s cubic-bezier(.16, 1, .3, 1);
}
.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  transform: translateY(101%);
  transition: transform 0.55s cubic-bezier(.16, 1, .3, 1);
  background: #F4D03F;
}
.btn:hover::before { transform: translateY(0); }
.btn-primary {
  background: #fafafa;
  color: #0a0a0b;
  border: 1px solid #fafafa;
}
.btn-primary:hover { color: #0a0a0b; border-color: #F4D03F; }
.btn-ghost {
  background: transparent;
  color: #d4d4d8;
  border: 1px solid rgba(255,255,255,0.16);
}
.btn-ghost:hover { color: #0a0a0b; border-color: #F4D03F; }
/* Brand-yellow CTA (Daemons): the site accent exactly, dark text */
.btn-accent {
  background: #F4D03F;
  color: #191507;
  border: 1px solid #F4D03F;
}
.btn-accent::before { background: #fafafa; }
.btn-accent:hover { color: #0a0a0b; border-color: #fafafa; }
.btn-arrow {
  display: inline-block;
  transition: transform 0.5s cubic-bezier(.16, 1, .3, 1);
}
.btn:hover .btn-arrow { transform: translateX(3px); }

/* Mobile menu: full-screen overlay */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(9, 9, 11, 0.97);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s cubic-bezier(.16, 1, .3, 1), visibility 0.5s;
}
body.menu-open nav.fixed {
  z-index: 110;
}
.mobile-menu.active {
  opacity: 1;
  visibility: visible;
}
.mobile-menu .menu-item,
.mobile-menu .menu-cta,
.mobile-menu .menu-foot {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s cubic-bezier(.16, 1, .3, 1), transform 0.7s cubic-bezier(.16, 1, .3, 1);
}
.mobile-menu.active .menu-item,
.mobile-menu.active .menu-cta,
.mobile-menu.active .menu-foot {
  opacity: 1;
  transform: translateY(0);
}
.mobile-menu.active .menu-item:nth-child(1) { transition-delay: 0.18s; }
.mobile-menu.active .menu-item:nth-child(2) { transition-delay: 0.28s; }
.mobile-menu.active .menu-item:nth-child(3) { transition-delay: 0.38s; }
.mobile-menu.active .menu-item:nth-child(4) { transition-delay: 0.46s; }
.mobile-menu.active .menu-item:nth-child(5) { transition-delay: 0.54s; }
.mobile-menu.active .menu-cta  { transition-delay: 0.64s; }
.mobile-menu.active .menu-foot { transition-delay: 0.74s; }

.menu-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.menu-item-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #52525b;
  display: block;
  margin-bottom: 8px;
  transition: color 0.35s ease;
}
.menu-item-name {
  font-family: 'DM Sans', sans-serif;
  font-size: 32px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: #fafafa;
  display: block;
  transition: transform 0.4s cubic-bezier(.16, 1, .3, 1), color 0.35s ease;
  transform-origin: left;
}
.menu-item-arrow {
  display: inline-block;
  color: #52525b;
  transition: transform 0.4s cubic-bezier(.16, 1, .3, 1), color 0.35s ease;
}
.menu-item:hover .menu-item-num,
.menu-item:active .menu-item-num { color: #F4D03F; }
.menu-item:hover .menu-item-arrow,
.menu-item:active .menu-item-arrow {
  color: #F4D03F;
  transform: translate(4px, -4px);
}

/* Hamburger / X icon */
.hamburger {
  position: relative;
  width: 22px;
  height: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hamburger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transition: transform 0.45s cubic-bezier(.16, 1, .3, 1), opacity 0.3s ease;
}
.hamburger span:nth-child(1) { top: 2px; }
.hamburger span:nth-child(2) { top: 11px; }
body.menu-open .hamburger span:nth-child(1) {
  top: 6.5px;
  transform: rotate(45deg);
}
body.menu-open .hamburger span:nth-child(2) {
  top: 6.5px;
  transform: rotate(-45deg);
}

/* Animated nav links: word-swap */
.nav-link {
  position: relative;
  display: inline-block;
  overflow: hidden;
  height: 1.4em;
  line-height: 1.4em;
  vertical-align: middle;
  cursor: pointer;
}
.nav-link-inner {
  display: block;
  transition: transform 0.5s cubic-bezier(.16, 1, .3, 1);
}
.nav-link .nav-line {
  display: block;
  height: 1.4em;
  white-space: nowrap;
}
.nav-link .nav-line:first-child { color: #a1a1aa; }
.nav-link .nav-line:last-child  { color: #F4D03F; }
.nav-link:hover .nav-link-inner {
  transform: translateY(-1.4em);
}

.cmd-bin { color: #34d399; transition: color 0.3s ease; }
.cmd-sub { color: #e4e4e7; transition: color 0.3s ease; }

/* ════════════════════════════════════════════════════════════════
   PANELS layout (minimalist bento grid)
   ════════════════════════════════════════════════════════════════ */

.bento {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.08);
}
.tile {
  position: relative;
  background: #09090b;
  padding: clamp(22px, 3.2vw, 40px);
  min-height: 168px;
  display: flex;
  flex-direction: column;
  transition: background-color 0.4s ease;
}
.tile:hover { background: #0c0c0f; }

/* Span helpers (desktop) */
.col-2 { grid-column: span 2; }
.col-3 { grid-column: span 3; }
.col-4 { grid-column: span 4; }
.col-6 { grid-column: span 6; }
.row-2 { grid-row: span 2; }

/* Tile internals.
   Readability floor (client feedback): body text >= 14px, eyebrows >= 11px,
   muted copy no darker than #a1a1aa. Decorative metadata may go darker. */
.tile-num {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: #71717a;
}
.tile-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #a1a1aa;
}
.tile-title {
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #fafafa;
}
.tile-body {
  color: #b9b9c1;
  line-height: 1.62;
}

/* Status dots */
.status-dot {
  width: 7px; height: 7px; border-radius: 50%;
  display: inline-block; flex-shrink: 0;
}
.dot-live  { background: #34d399; box-shadow: 0 0 0 3px rgba(52,211,153,0.12); }

.status-label {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Layered architecture mini-stack inside a tile */
.layer-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,0.06);
  background: rgba(255,255,255,0.015);
  border-radius: 6px;
  transition: border-color 0.3s ease, background-color 0.3s ease;
}
.layer-row:hover {
  border-color: rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.03);
}
.layer-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: #8b8b94;
  white-space: nowrap;
}
.layer-name {
  font-size: 14px;
  color: #d4d4d8;
  letter-spacing: -0.005em;
}

/* Collapse the bento to a single column on mobile */
@media (max-width: 767px) {
  .bento { grid-template-columns: 1fr; }
  .col-2, .col-3, .col-4, .col-6 { grid-column: span 1; }
  .row-2 { grid-row: span 1; }
  .tile { min-height: 0; }
}

/* ════════════════════════════════════════════════════════════════
   COMPONENTS (badges, install block, flowing gradient, demo bits)
   ════════════════════════════════════════════════════════════════ */

.live-badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px;
  font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 500;
  letter-spacing: 0.16em; text-transform: uppercase;
  background-color: rgba(52,211,153,0.08); border: 1px solid rgba(52,211,153,0.32);
  color: #34d399; border-radius: 4px; line-height: 1.5; white-space: nowrap;
}

/* Copyable command chips */
.copy-cmd { cursor: pointer; }
.copy-cmd .copy-ic { color: #52525b; transition: color 0.3s ease; flex-shrink: 0; }
.copy-cmd:hover .copy-ic { color: #a1a1aa; }
.copy-cmd.copied .copy-ic { color: #34d399; }

/* Hero install block: the exact two-line command */
.install-block {
  background: rgba(24,24,27,0.38);
  backdrop-filter: blur(24px) saturate(150%);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: 10px;
  text-align: left;
  font-family: 'JetBrains Mono', monospace;
  transition: border-color 0.3s ease;
}
.install-block:hover { border-color: rgba(255,255,255,0.16); }
.install-line { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; }

/* Decide · Enforce · Prove strip (hero) */
.dep-strip {
  display: inline-flex; align-items: center; gap: 16px;
  font-family: 'JetBrains Mono', monospace;
  letter-spacing: 0.26em; text-transform: uppercase;
}
.dep-word { color: #d4d4d8; transition: color 0.7s ease, text-shadow 0.7s ease; }
.dep-word.lit { color: #F4D03F; text-shadow: 0 0 22px rgba(244,208,63,0.35); }
.dep-sep { color: #3f3f46; }

/* Flowing gradient + noise backdrop (top-weighted) */
.flow-bg {
  position: absolute; inset: 0;
  pointer-events: none; overflow: hidden;
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.55) 45%, transparent 85%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.55) 45%, transparent 85%);
}
.flow-bg::before {
  content: '';
  position: absolute; inset: -25% -12%;
  background:
    radial-gradient(42% 34% at 18% 10%, rgba(74,135,245,0.13), transparent 70%),
    radial-gradient(38% 30% at 80% 6%, rgba(102,201,245,0.08), transparent 70%),
    radial-gradient(55% 42% at 52% 22%, rgba(139,125,244,0.06), transparent 75%),
    radial-gradient(40% 36% at 38% 2%, rgba(215,232,255,0.04), transparent 70%);
  filter: blur(6px);
  animation: flow-drift 26s ease-in-out infinite alternate;
  will-change: transform;
}
.flow-bg::after {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/></svg>");
  background-size: 240px 240px;
  opacity: 0.12;
  mix-blend-mode: overlay;
}
@keyframes flow-drift {
  from { transform: translate3d(-2.5%, -1.5%, 0) scale(1); }
  to   { transform: translate3d(2.5%, 2%, 0) scale(1.07); }
}

/* WebGL shader upgrade for .flow-bg. The CSS gradient above stays as the
   automatic fallback when WebGL is unavailable or the context is lost. */
.flow-canvas {
  position: absolute; inset: -5%;
  width: 110%; height: 110%;
  display: block;
  filter: blur(11px) saturate(128%);
}
.flow-bg.has-canvas::before { display: none; }
.flow-bg.has-canvas::after  { opacity: 0.14; }
.tile .flow-bg {
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.55) 55%, rgba(0,0,0,0.18) 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.55) 55%, rgba(0,0,0,0.18) 100%);
}
/* Keeps the field present all the way down behind full-height tile content */
.tile .flow-bg.flow-strong {
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.88) 60%, rgba(0,0,0,0.58) 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.88) 60%, rgba(0,0,0,0.58) 100%);
}
/* Hero: flowing shader glow anchored top-centre of the section */
.hero-top-glow {
  inset: auto;
  top: -14%; left: 10%; right: 10%; height: 56%;
  mask-image: radial-gradient(closest-side at 50% 50%, #000 25%, transparent 100%);
  -webkit-mask-image: radial-gradient(closest-side at 50% 50%, #000 25%, transparent 100%);
}
.hero-top-glow::after { display: none; }   /* no grain in the hero */

/* Hero: edge vignette on all four sides */
.hero-vignette {
  background:
    linear-gradient(to bottom, rgba(9,9,11,0.92) 0%, rgba(9,9,11,0) 20%),
    linear-gradient(to top, rgba(9,9,11,0.95) 0%, rgba(9,9,11,0) 26%),
    linear-gradient(to right, rgba(9,9,11,0.85) 0%, rgba(9,9,11,0) 22%),
    linear-gradient(to left, rgba(9,9,11,0.85) 0%, rgba(9,9,11,0) 22%);
}

/* Halo variant: wraps a framed element so it glows with the gradient.
   closest-side guarantees the mask hits zero exactly at the box edges,
   so the glow can never end in a hard line. */
.flow-glow {
  inset: -130px;
  mask-image: radial-gradient(closest-side at 50% 50%, #000 22%, rgba(0,0,0,0.55) 55%, transparent 100%);
  -webkit-mask-image: radial-gradient(closest-side at 50% 50%, #000 22%, rgba(0,0,0,0.55) 55%, transparent 100%);
}

/* Demo terminal: caret + log rows */
.demo-caret {
  display: inline-block; width: 8px; height: 1.05em; vertical-align: text-bottom;
  background: #fafafa; margin-left: 2px;
  animation: caret-blink 1.05s steps(1) infinite;
}
@keyframes caret-blink { 0%, 50% { opacity: 1; } 50.01%, 100% { opacity: 0; } }
.demo-row { opacity: 0; }
.verdict-pill {
  display: inline-block; padding: 1px 7px; border-radius: 4px;
  font-size: 11px; font-weight: 500; letter-spacing: 0.1em;
  border: 1px solid currentColor;
}
.pill-allow { color: #34d399; background: rgba(52,211,153,0.08); }
.pill-ask   { color: #E48745; background: rgba(228,135,69,0.08); }
.pill-block { color: #f87171; background: rgba(248,113,113,0.08); }
.term-hash  { color: #52525b; }
.term-ask   { color: #E48745; }
.term-block { color: #f87171; }

/* Product level rows */
.level-tag {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
  color: #a1a1aa; white-space: nowrap;
}
.product-row {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr) auto;
  gap: 18px; align-items: baseline; padding: 18px 0;
  border-top: 1px solid rgba(255,255,255,0.05);
}
.product-row:first-of-type { border-top: none; }
@media (max-width: 767px) {
  .product-row { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; }
}

/* Daemon / checklist rows */
.daemon-li {
  display: flex; gap: 10px; align-items: baseline;
  font-size: 14px; color: #b9b9c1; line-height: 1.58;
  padding: 5px 0;
}
.daemon-li .d-mark { color: #71717a; flex-shrink: 0; font-family: 'JetBrains Mono', monospace; font-size: 12px; }

/* Interactive trust panel: pick an attack, watch it fail */
.trust-sc {
  display: block; width: 100%; text-align: left;
  padding: 18px 22px;
  background: transparent; border: none; cursor: pointer;
  border-left: 2px solid transparent;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: background-color 0.3s ease, border-color 0.3s ease;
  font-family: 'DM Sans', sans-serif;
}
.trust-sc:last-child { border-bottom: none; }
.trust-sc:hover { background: #0c0c0f; }
.trust-sc.active { background: #0c0c0f; border-left-color: #F4D03F; }
.trust-sc .ts-title {
  display: block; color: #fafafa; font-weight: 600;
  font-size: 14.5px; letter-spacing: -0.01em; margin-bottom: 4px;
  transition: color 0.3s ease;
}
.trust-sc.active .ts-title { color: #F4D03F; }
.trust-sc .ts-desc { display: block; color: #a1a1aa; font-size: 13px; line-height: 1.55; }

/* Thesis diagram: action pulses riding curved connectors agents → gate → tools.
   Stacking: wires (z1) under the frosted rows (z2), dots and pills on top (z5). */
.pulse-layer { position: absolute; inset: 0; pointer-events: none; z-index: 5; }
.pulse-wires { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none; }
#thesis-viz .th-src,
#thesis-viz .th-band,
#thesis-viz .th-tools {
  backdrop-filter: blur(6px) saturate(130%);
  -webkit-backdrop-filter: blur(6px) saturate(130%);
  background: rgba(14, 14, 17, 0.42);
}
.pulse-dot {
  position: absolute; top: 0; left: 0;
  width: 6px; height: 6px; border-radius: 50%;
  background: #e4e4e7; box-shadow: 0 0 10px rgba(228,228,231,0.55);
  will-change: transform, opacity;
}
.pulse-verdict { position: absolute; top: 0; left: 0; will-change: transform, opacity; }
/* Verdict badges: solid fills with dark text so they read at speed */
.pulse-verdict .pv {
  display: inline-block; padding: 1.5px 7px; border-radius: 4px;
  font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600;
  letter-spacing: 0.1em; color: #0a0a0b; white-space: nowrap;
}
.pv-allow { background: #34d399; }
.pv-ask   { background: #E48745; }
.pv-block { background: #f87171; }
/* The curved connectors replace the static arrows (kept as the no-JS fallback) */
.pulses-on .th-arrow { display: none; }

/* Mobile readability: lift the muted greys and floor the small sizes.
   Desktop is untouched; phones get stronger contrast and slightly larger body copy. */
@media (max-width: 767px) {
  .tile-body { color: #c9c9d1; line-height: 1.65; }
  .tile-eyebrow { color: #b4b4bd; font-size: 11.5px; }
  .layer-name { font-size: 15px; }
  .layer-tag { color: #9d9da6; font-size: 11.5px; }
  .daemon-li { font-size: 15px; color: #c9c9d1; }
  .level-tag { color: #b4b4bd; }
  .status-label { font-size: 11.5px; }
  .trust-sc .ts-title { font-size: 15px; }
  .trust-sc .ts-desc { font-size: 14px; color: #bcbcc4; }
  .text-zinc-400 { color: #c2c2ca !important; }
  .text-zinc-500 { color: #a4a4ad !important; }
  .text-\[12\.5px\] { font-size: 13px !important; }
  .text-\[13px\] { font-size: 14px !important; }
  .text-\[13\.5px\] { font-size: 14px !important; }
  .text-\[14px\] { font-size: 15px !important; }
  .text-\[14\.5px\] { font-size: 15px !important; }
}

/* Honor reduced motion */
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-line { transition: none !important; }
  .btn::before { transition: none !important; }
  html { scroll-behavior: auto; }
  .demo-caret { animation: none; opacity: 1; }
  .demo-row { opacity: 1 !important; }
  .animate-fade-up, .animate-fade-in { animation: none !important; opacity: 1 !important; transform: none !important; }
  .flow-bg::before { animation: none !important; }
  .dep-word { transition: none !important; }
  html.scroll-smooth { scroll-behavior: auto; }
}
