/* ========== MSRUS Common Styles ========== */

/* View Transitions */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) {
  animation-duration: 0.4s;
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Custom Properties */
:root {
  --ease-elastic: cubic-bezier(0.68, -0.55, 0.265, 1.55);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
  --gradient-primary: linear-gradient(135deg, #2EAB8B 0%, #24A8B4 100%);
  --gradient-gold: linear-gradient(135deg, #F2BC6E 0%, #E9A43D 100%);
}

html { 
  scroll-behavior: smooth; 
  overflow-x: hidden;
}
body { 
  font-family: 'Inter', sans-serif; 
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}
html, body {
  max-width: 100vw;
  width: 100%;
}
[x-cloak] { display: none !important; }

/* Fix double scroll on mobile/tablet */
@media (max-width: 1024px) {
  html {
    overflow-y: auto !important;
    height: auto !important;
  }
  body {
    overflow-y: visible !important;
    height: auto !important;
    min-height: 100vh;
  }
  .aurora,
  .cursor-glow { 
    display: none !important; 
  }
}

/* ========== ADAPTIVE CONTAINER ========== */
.container-adaptive {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 640px) { .container-adaptive { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 768px) { .container-adaptive { padding-left: 2rem; padding-right: 2rem; } }
@media (min-width: 1024px) { .container-adaptive { max-width: 95%; padding-left: 2.5rem; padding-right: 2.5rem; } }
@media (min-width: 1280px) { .container-adaptive { max-width: 1280px; } }
@media (min-width: 1536px) { .container-adaptive { max-width: 1440px; } }
@media (min-width: 1920px) { .container-adaptive { max-width: 95%; } }
@media (min-width: 2560px) { .container-adaptive { max-width: 95%; padding-left: 3rem; padding-right: 3rem; } }
@media (min-width: 3440px) { .container-adaptive { max-width: 95%; padding-left: 4rem; padding-right: 4rem; } }

/* Ultra-wide typography scaling */
@media (min-width: 1920px) { html { font-size: 17px; } }
@media (min-width: 2560px) { html { font-size: 19px; } }
@media (min-width: 3440px) { html { font-size: 21px; } }
@media (min-width: 3840px) { html { font-size: 23px; } }

/* Progress Bar */
.progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #2EAB8B, #24A8B4, #F2BC6E);
  z-index: 100;
  transform-origin: left;
  transform: scaleX(0);
}

/* Header */
.header-scrolled { 
  background: rgba(255,255,255,0.95) !important; 
  backdrop-filter: blur(20px);
  box-shadow: 0 4px 30px rgba(0,0,0,0.08); 
}

/* Buttons */
.btn { 
  display: inline-flex; 
  align-items: center; 
  justify-content: center; 
  gap: 0.5rem; 
  padding: 0.875rem 1.75rem; 
  border-radius: 0.75rem; 
  font-weight: 600; 
  transition: all 0.4s var(--ease-smooth);
  position: relative;
  overflow: hidden;
}
.btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, transparent 30%, rgba(255,255,255,0.3) 50%, transparent 70%);
  transform: translateX(-100%);
  transition: transform 0.6s;
}
.btn:hover::before { transform: translateX(100%); }

.btn-primary { 
  background: var(--gradient-primary); 
  color: white; 
  box-shadow: 0 4px 15px rgba(46,171,139,0.3);
}
.btn-primary:hover { 
  transform: translateY(-3px) scale(1.02); 
  box-shadow: 0 12px 35px rgba(46,171,139,0.4);
}

/* Gradient Text */
.gradient-text { 
  background: linear-gradient(135deg, #2EAB8B 0%, #24A8B4 50%, #F2BC6E 100%); 
  background-size: 200% auto;
  -webkit-background-clip: text; 
  -webkit-text-fill-color: transparent; 
  background-clip: text;
  animation: gradientText 3s ease infinite;
}
@keyframes gradientText {
  0%, 100% { background-position: 0% center; }
  50% { background-position: 100% center; }
}

/* Link Underline */
.link-underline { position: relative; }
.link-underline::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--gradient-primary);
  transition: width 0.4s var(--ease-smooth);
}
.link-underline:hover::after { width: 100%; }

/* Float Shapes */
.float-shape { 
  position: absolute; 
  border-radius: 50%; 
  filter: blur(60px); 
  opacity: 0.4; 
  animation: float 8s ease-in-out infinite;
  will-change: transform;
}
@keyframes float { 
  0%, 100% { transform: translateY(0) rotate(0deg); } 
  50% { transform: translateY(-30px) rotate(5deg); } 
}

/* Hover Lift */
.hover-lift { 
  transition: all 0.5s var(--ease-smooth);
  will-change: transform;
}
.hover-lift:hover { 
  transform: translateY(-12px) scale(1.02); 
  box-shadow: 0 35px 60px -15px rgba(0,0,0,0.2);
}

/* Magnetic */
.magnetic { 
  transition: transform 0.3s var(--ease-smooth);
  will-change: transform;
}

/* Aurora Effect */
.aurora {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: linear-gradient(180deg, 
    rgba(46,171,139,0.1) 0%, 
    rgba(36,168,180,0.05) 30%,
    transparent 60%);
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}

/* Glass Cards */
.glass-card {
  background: rgba(255,255,255,0.7);
  backdrop-filter: blur(40px);
  border: 1px solid rgba(255,255,255,0.5);
  box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}

/* Section Block Animation */
.section-block { opacity: 1; }

/* Cursor Glow */
.cursor-glow {
  position: fixed;
  width: 300px;
  height: 300px;
  background: radial-gradient(circle, rgba(46,171,139,0.12) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: opacity 0.3s;
  opacity: 0;
}
body:hover .cursor-glow { opacity: 1; }
