* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body { margin: 0; background: #080D1A; color: #F0F4FF; font-family: 'Inter', sans-serif; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
::selection { background: rgba(0,194,199,0.3); color: #fff; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #080D1A; }
::-webkit-scrollbar-thumb { background: #1c2a4a; border-radius: 10px; }
@keyframes nvHeroRise { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: translateY(0); } }
@keyframes nvShimmer { to { background-position: 200% center; } }
@keyframes nvMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes nvFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-20px); } }
@keyframes nvSpin { to { transform: rotate(360deg); } }
@keyframes nvSpin3d { from { transform: rotateY(0deg) rotateX(14deg); } to { transform: rotateY(360deg) rotateX(14deg); } }
@keyframes nvCorePulse { 0%,100% { transform: scale(1); opacity: .92; } 50% { transform: scale(1.12); opacity: 1; } }
@keyframes nvScrollDot { 0% { transform: translateY(0); opacity: 0; } 30% { opacity: 1; } 70% { opacity: 1; } 100% { transform: translateY(20px); opacity: 0; } }
@keyframes nvOrb { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(24px,-30px) scale(1.1); } }
@keyframes nvCaret { 0%,49% { opacity: 1; } 50%,100% { opacity: 0; } }
@keyframes nvNode { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
[data-reveal].nv-in { opacity: 1; transform: translateY(0); }
[data-navlinks] a:hover { color: #F0F4FF !important; }
[data-svc]:hover { transform: translateY(-6px); border-color: rgba(0,194,199,0.5) !important; }
[data-svc] { transition: transform .45s cubic-bezier(.22,1,.36,1), border-color .45s ease, box-shadow .45s ease; }
[data-svc]:hover { box-shadow: 0 24px 60px -20px rgba(0,194,199,0.35); }
@media (max-width: 880px) {
  [data-nav] { padding-inline: 16px !important; }
  [data-navlinks] { display: none !important; }
  [data-herogrid] { grid-template-columns: 1fr !important; gap: 28px !important; }
  [data-herovisual] { display: none !important; }
  [data-bento] { grid-template-columns: 1fr !important; grid-auto-rows: auto !important; gap: 18px !important; }
  [data-bento] > * { grid-column: auto !important; grid-row: auto !important; min-height: 220px !important; }
  [data-case] { grid-template-columns: 1fr !important; gap: 18px !important; }
  [data-case-rev] { direction: ltr !important; }
  [data-process] { grid-template-columns: 1fr 1fr !important; gap: 18px !important; }
  [data-2col] { grid-template-columns: 1fr !important; gap: 28px !important; }
  [data-carousel] { padding-left: 16px !important; padding-right: 16px !important; gap: 16px !important; }
  [data-carousel] figure { flex-basis: min(380px, 84vw) !important; }
}
@media (max-width: 680px) {
  [data-root] section { padding-left: 16px !important; padding-right: 16px !important; }
  [data-carousel] { padding-left: 12px !important; padding-right: 12px !important; }
  [data-carousel] figure { padding: 22px !important; flex-basis: 86vw !important; }
  [data-carousel] blockquote { font-size: 16px !important; }
  [data-carousel] figcaption { gap: 10px !important; }
  [data-parallax-img] { transform: none !important; }
  [data-process] { grid-template-columns: 1fr !important; }
  [data-2col] { grid-template-columns: 1fr !important; }
}
@media (max-width: 520px) {
  [data-nav] { padding: 12px 14px !important; }
  [data-nav] > a { gap: 8px !important; }
  [data-nav] > a > span:last-child { font-size: 13px !important; letter-spacing: 0.12em !important; }
  [data-root] section { padding-top: 64px !important; padding-bottom: 64px !important; }
  [data-herogrid] h1, [data-herogrid] h2 { font-size: clamp(34px, 12vw, 54px) !important; }
  [data-herogrid] p { font-size: 16px !important; }
  [data-bento] > * { min-height: 180px !important; }
  [data-carousel] { overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; }
  [data-carousel] figure { padding: 20px !important; flex-basis: 88vw !important; }
  [data-carousel] blockquote { font-size: 15px !important; }
  #contact h2 { font-size: clamp(34px, 12vw, 54px) !important; }
  #contact p { font-size: 16px !important; }
  #contact [style*="justify-content: center"] { flex-direction: column !important; align-items: stretch !important; }
  #contact [style*="justify-content: center"] a { width: 100% !important; justify-content: center !important; }
  footer > div > div:last-child { flex-direction: column !important; align-items: flex-start !important; gap: 12px !important; }
  footer > div > div:last-child > div:last-child { gap: 12px !important; }
}
