:root{
  --bg:#0b0f1a;
  --panel:#101829;
  --soft:#0e1526;
  --text:#dae0f7;
  --muted:#9aa3c7;
  --brand:#505fab; /* main color */
  --brand-2:#6f7bf3;
  --brand-3:#4a54a8;
  --accent:#bba15a;
  --accent-2:#d4c366;
  --success:#22c55e;
  --warning:#f59e0b;
  --error:#ef4444;
  --ring: color-mix(in hsl, var(--brand) 40%, white 0%);
  --glass: color-mix(in oklab, var(--panel) 60%, transparent 40%);
  --glass-border: color-mix(in oklab, var(--brand) 20%, transparent 80%);
  --shadow-soft: 0 4px 20px color-mix(in oklab, var(--bg) 90%, transparent 10%);
  --shadow-medium: 0 8px 30px color-mix(in oklab, var(--bg) 80%, transparent 20%);
  --shadow-strong: 0 20px 50px color-mix(in oklab, var(--bg) 70%, transparent 30%);
  --gradient-primary: linear-gradient(135deg, var(--brand) 0%, var(--brand-2) 50%, var(--brand-3) 100%);
  --gradient-accent: linear-gradient(45deg, var(--accent) 0%, var(--accent-2) 100%);
  --gradient-surface: linear-gradient(145deg, 
    color-mix(in oklab, var(--panel) 95%, white 5%) 0%, 
    color-mix(in oklab, var(--panel) 85%, black 15%) 100%);
}

/* Gradient animations */
@keyframes gradientShift {
  0% {
    background-position: 0% 0%, 100% 100%, 0% 0%;
  }
  25% {
    background-position: 100% 0%, 0% 50%, 0% 0%;
  }
  50% {
    background-position: 100% 100%, 0% 0%, 0% 0%;
  }
  75% {
    background-position: 0% 100%, 100% 0%, 0% 0%;
  }
  100% {
    background-position: 0% 0%, 100% 100%, 0% 0%;
  }
}

*{box-sizing:border-box}
*::before, *::after{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:4rem}
html,body{height:100%}
body{
  margin:0; 
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  background: 
    radial-gradient(ellipse 1400px 900px at 100% -20%, color-mix(in oklab, var(--brand) 15%, transparent 85%) 0%, transparent 50%),
    radial-gradient(ellipse 1200px 800px at 20% 80%, color-mix(in oklab, var(--accent) 8%, transparent 92%) 0%, transparent 50%),
    linear-gradient(180deg, var(--bg) 0%, color-mix(in oklab, var(--bg) 95%, var(--brand) 5%) 100%);
  background-size: 200% 200%, 200% 200%, 100% 100%;
  color:var(--text);
  line-height:1.6;
  font-optical-sizing:auto;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  transition:all 0.3s ease;
}

/* Apply gradient animation only if user prefers motion */
@media (prefers-reduced-motion: no-preference) {
  body {
    animation: gradientShift 20s ease-in-out infinite;
  }
}

/* Prevent scroll when mobile menu is open */
body.menu-open{
  overflow:hidden;
  position:fixed;
  width:100%;
  height:100vh;
  top:0;
  left:0;
}
img{max-width:100%; display:block; height:auto}
.container{width:min(1100px, 92vw); margin-inline:auto; container-type:inline-size}
.section{padding: clamp(3rem, 3vw + 2rem, 6rem) 0}

/* Container Queries */
@container (min-width: 600px){
  .card-grid-responsive{grid-template-columns:repeat(2,1fr)}
}
@container (min-width: 900px){
  .card-grid-responsive{grid-template-columns:repeat(3,1fr)}
}

/* Header */
.site-header{
  position:sticky; 
  top:0; 
  backdrop-filter:saturate(180%) blur(20px); 
  background:var(--glass); 
  z-index:100; 
  border-bottom:1px solid var(--glass-border);
  transition:all 0.3s ease;
}
.site-header.scrolled{
  background:color-mix(in oklab, var(--glass) 90%, var(--bg) 10%);
  border-bottom-color:var(--brand);
  box-shadow:var(--shadow-soft);
}
.site-header::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-surface);
  opacity:0.3;
  pointer-events:none;
}
.nav{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0; position:relative}

@media (max-width:860px){
  .nav{
    justify-content:space-between;
    position:relative;
  }
}
.brand{
  display:flex; 
  align-items:center;
  transition:transform 0.2s ease;
}
.brand:hover{transform:scale(1.05)}
.brand a{
  display:flex;
  align-items:center;
  text-decoration:none;
}
.brand img{
  height:40px; 
  width:auto; 
  filter:drop-shadow(0 0 8px color-mix(in oklab, var(--brand) 50%, transparent 50%));
  transition:filter 0.2s ease;
}
.brand:hover img,
.brand a:focus img{
  filter:drop-shadow(0 0 12px color-mix(in oklab, var(--brand) 70%, transparent 30%));
}
.brand a:focus{
  outline:2px solid var(--brand);
  outline-offset:4px;
  border-radius:8px;
}

/* Ensure the logo stays the same size on both mobile and desktop */
@media (max-width:860px){
  .brand img{
    height:36px;
  }
}
/* Desktop menu */
.menu{
  display:flex; 
  gap:.2rem; 
  list-style:none; 
  margin:0; 
  padding:0;
}

@media (min-width:861px){
  .menu{
    display:flex !important;
  }
  .nav-toggle{
    display:none !important;
  }
}
.menu a{
  color:var(--muted); 
  text-decoration:none; 
  padding:.6rem .8rem; 
  border-radius:12px;
  position:relative;
  transition:all 0.2s ease;
  font-weight:500;
}
.menu a::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:0;
  border-radius:12px;
  transition:opacity 0.2s ease;
}
.menu a:hover{
  color:var(--text); 
  transform:translateY(-1px);
}
.menu a:hover::before{opacity:0.1}
.nav-toggle{display:none}

/* Screen reader only text */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Skip links */
.skip-link{
  position:absolute; 
  left:-999rem;
  background:var(--brand);
  color:white;
  padding:0.5rem 1rem;
  border-radius:0 0 8px 8px;
  text-decoration:none;
  font-weight:600;
  z-index:1000;
}
.skip-link:focus{
  left:1rem; 
  top:0;
}

/* Hamburger menu */
.hamburger{
  display:flex;
  flex-direction:column;
  width:20px;
  height:16px;
  justify-content:space-between;
  position:relative;
  z-index:1002;
}
.hamburger span{
  display:block;
  height:2px;
  width:100%;
  background:currentColor;
  border-radius:2px;
  transition:all 0.3s ease;
  transform-origin:center;
}
.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(1){
  transform:rotate(45deg) translate(5px, 5px);
}
.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(2){
  opacity:0;
  transform:scaleX(0);
}
.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(3){
  transform:rotate(-45deg) translate(5px, -5px);
}

@media (max-width:860px){
  /* Hide desktop menu on mobile */
  .menu{
    display:none !important;
  }
  
  /* Ensure menu is hidden by default */
  .menu:not(.open){
    display:none !important;
  }
  
  /* Show mobile navigation toggle */
  .nav-toggle{
    display:inline-flex; 
    background:var(--glass); 
    color:var(--text); 
    border:1px solid var(--glass-border); 
    padding:.7rem; 
    border-radius:10px;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    z-index:1002;
    backdrop-filter:blur(10px);
    transition:all 0.2s ease;
    width:48px;
    height:48px;
  }
  
  .nav-toggle:hover{
    background:var(--brand);
    border-color:var(--brand);
  }
  
  /* Ensure hamburger is visible when menu is open */
  .menu.open ~ .nav-toggle,
  .nav-toggle[aria-expanded="true"]{
    background:var(--brand);
    border-color:var(--brand);
    color:white;
  }
  
  /* Mobile menu overlay */
  .menu.open{
    display:flex !important;
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    width:100vw;
    height:100vh;
    background:color-mix(in oklab, var(--bg) 96%, transparent 4%);
    backdrop-filter:blur(20px);
    z-index:1000;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:1.2rem;
    padding:2rem 1.5rem;
    animation:fadeIn 0.3s ease;
    list-style:none;
    margin:0;
    overflow-y:auto;
    box-sizing:border-box;
  }
  
  .menu.open li{
    opacity:0;
    transform:translateY(20px);
    animation:slideInUp 0.4s ease forwards;
    width:100%;
    max-width:280px;
  }
  
  .menu.open li:nth-child(1){animation-delay:0.1s}
  .menu.open li:nth-child(2){animation-delay:0.15s}
  .menu.open li:nth-child(3){animation-delay:0.2s}
  .menu.open li:nth-child(4){animation-delay:0.25s}
  .menu.open li:nth-child(5){animation-delay:0.3s}
  .menu.open li:nth-child(6){animation-delay:0.35s}
  
  .menu.open a{
    font-size:1.1rem;
    font-weight:600;
    padding:0.8rem 1.2rem;
    border-radius:14px;
    background:var(--glass);
    border:1px solid var(--glass-border);
    backdrop-filter:blur(10px);
    display:block;
    text-align:center;
    width:100%;
    transition:all 0.3s ease;
    text-decoration:none;
    color:var(--text);
    white-space:nowrap;
  }
  
  .menu.open a:hover,
  .menu.open a:focus{
    background:var(--brand);
    border-color:var(--brand);
    color:white;
    transform:translateY(-1px);
    box-shadow:var(--shadow-medium);
  }
}

/* Mobile menu animations */
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

@keyframes slideInUp{
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* Buttons */
.btn{
  display:inline-flex; 
  align-items:center; 
  justify-content:center; 
  padding:.8rem 1.2rem; 
  border-radius:14px; 
  border:1px solid var(--glass-border); 
  color:var(--text); 
  text-decoration:none; 
  gap:.6rem;
  font-weight:600;
  position:relative;
  transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow:hidden;
}
.btn::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:0;
  transition:opacity 0.3s ease;
}
.btn.primary{
  background:var(--gradient-primary); 
  border-color:transparent; 
  box-shadow:var(--shadow-medium), 0 0 20px color-mix(in oklab, var(--brand) 40%, transparent 60%);
  color:white;
}
.btn.primary::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(45deg, transparent 30%, color-mix(in oklab, white 20%, transparent 80%) 50%, transparent 70%);
  transform:translateX(-100%);
  transition:transform 0.6s ease;
}
.btn.primary:hover::after{transform:translateX(100%)}
.btn.ghost{
  background:var(--glass);
  backdrop-filter:blur(10px);
}
.btn.ghost::before{background:var(--gradient-surface)}
.btn:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-strong);
}
.btn.ghost:hover::before{opacity:0.8}
.btn.primary:hover{
  box-shadow:var(--shadow-strong), 0 0 30px color-mix(in oklab, var(--brand) 60%, transparent 40%);
}

/* Hero */
.hero{
  position:relative; 
  overflow:hidden;
  min-height:90vh;
  display:flex;
  align-items:center;
}
.hero-grid{
  display:grid; 
  grid-template-columns:1.1fr .9fr; 
  align-items:center; 
  gap:clamp(2rem,4vw,3rem);
  position:relative;
  z-index:2;
}
.hero-copy h1{
  font-size:clamp(2rem, 3vw + 1rem, 3.5rem); 
  line-height:1.1; 
  margin:.2rem 0 1.5rem;
  font-weight:800;
  letter-spacing:-0.02em;
}
.hero-copy p{
  font-size:clamp(1rem, 1.2vw + 0.8rem, 1.25rem);
  line-height:1.6;
  margin-bottom:2rem;
  color:var(--muted);
}
.accent{
  background:var(--gradient-accent);
  background-clip:text;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  position:relative;
}
.accent::after{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-accent);
  opacity:0.1;
  border-radius:4px;
  z-index:-1;
}
.hero .cta{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:2rem;
}
.hero .badges{
  display:flex; 
  gap:1rem; 
  list-style:none; 
  padding:0; 
  margin:2rem 0 0;
  flex-wrap:wrap;
}
.hero .badges li{
  background:var(--glass); 
  border:1px solid var(--glass-border); 
  border-radius:16px; 
  padding:.8rem 1.2rem;
  backdrop-filter:blur(10px);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.2rem;
  transition:all 0.3s ease;
}
.hero .badges li:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-medium);
}
.hero .badges strong{
  font-size:1.2rem;
  font-weight:700;
  color:var(--brand-2);
}
.hero .badges span{
  font-size:0.85rem;
  color:var(--muted);
  font-weight:500;
}
.hero-media{
  border-radius:20px; 
  overflow:hidden; 
  box-shadow:var(--shadow-strong); 
  border:1px solid var(--glass-border);
  position:relative;
  width:100%;
  height:auto;
}
.hero-media::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:0.1;
  z-index:1;
}
.hero-shape{
  position:absolute; 
  inset:auto -30vw -40% -30vw; 
  height:80%; 
  background:
    radial-gradient(ellipse 60% 80% at 70% 20%, color-mix(in oklab, var(--brand) 30%, transparent 70%) 0%, transparent 60%),
    radial-gradient(ellipse 40% 60% at 30% 80%, color-mix(in oklab, var(--accent) 20%, transparent 80%) 0%, transparent 50%);
  filter:blur(1px);
  z-index:1;
}

@media (max-width:900px){
  .hero{
    min-height:100vh;
    padding:1rem 0;
  }
  .hero-grid{
    grid-template-columns:1fr;
    gap:2rem;
    grid-template-rows:auto auto;
  }
  .hero-copy{
    order:1;
    text-align:center;
  }
  .hero-media{
    order:2;
    max-width:280px;
    margin:0 auto;
    aspect-ratio:4/3;
  }
  .hero-copy h1{
    font-size:clamp(1.8rem, 8vw, 2.5rem);
    margin-bottom:1rem;
  }
  .hero-copy p{
    font-size:1rem;
    margin-bottom:1.5rem;
  }
  .hero .cta{
    justify-content:center;
    margin-bottom:1.5rem;
  }
  .hero .badges{
    justify-content:center;
    margin-top:1.5rem;
    gap:0.8rem;
  }
  .hero .badges li{
    padding:0.6rem 1rem;
  }
}

@media (max-width:640px){
  .hero{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:2rem 0;
  }
  .hero-grid{
    gap:1.5rem;
    padding:0;
    max-width:100%;
  }
  .hero-media{
    max-width:260px;
    margin:1rem auto;
    border-radius:16px;
  }
  .hero-copy h1{
    font-size:clamp(2rem, 8vw, 2.8rem);
    line-height:1.1;
  }
  .hero-copy p{
    font-size:0.9rem;
    margin-bottom:1.5rem;
  }
  .hero .cta{
    flex-direction:row;
    justify-content:center;
    gap:0.8rem;
  }
  .hero .cta .btn{
    flex:1;
    max-width:160px;
    justify-content:center;
    font-size:0.9rem;
    white-space:nowrap;
  }
  .hero .badges{
    display: none;
  }
  .hero .badges strong{
    font-size:1rem;
  }
  .hero .badges span{
    font-size:0.75rem;
  }
}

/* Extra small screens */
@media (max-width:380px){
  .hero-media{
    max-width:220px;
  }
  .hero .badges{
    display: none;
  }
}

/* Sections */
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:clamp(1rem,3vw,2rem)}
.media-card{border-radius:16px; overflow:hidden; border:1px solid #263155; background:linear-gradient(180deg,#0f1627,#0b1222)}
.media-card img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 16px;
}
.pill-grid{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem}
.pill{background:#ffffff10; border:1px solid #2a3455; border-radius:999px; padding:.4rem .8rem; font-weight:600; color:var(--muted)}

@media (max-width:860px){
  .two-col{grid-template-columns:1fr}
}

/* Cards */
.grid{display:grid; gap:1.5rem}
.services-grid{grid-template-columns:repeat(3,1fr); container-type:inline-size}
.card{
  background:var(--gradient-surface); 
  border:1px solid var(--glass-border); 
  border-radius:20px; 
  padding:1.5rem; 
  box-shadow:var(--shadow-medium);
  position:relative;
  transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  overflow:hidden;
}
.card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:var(--gradient-primary);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.3s ease;
}
.card:hover::before{transform:scaleX(1)}
.card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-strong);
  border-color:var(--brand);
}
.card h3{
  margin-top:.5rem;
  color:var(--text);
  font-weight:600;
  font-size:1.15rem;
}
.card p{
  color:var(--muted);
  line-height:1.5;
}
.card ul{
  margin:.8rem 0 0 1.2rem;
  color:var(--muted);
}
.card ul li{
  margin-bottom:.3rem;
  position:relative;
}
.card ul li::marker{
  color:var(--brand);
}

/* Service card images */
.services-grid .card img{
  width: 64px;
  height: 64px;
  object-fit: contain;
  object-position: center;
  display: block;
  margin: 0 auto 1rem;
}

/* Hide showcase section temporarily */
.showcase {
  display: none;
}

@media (max-width:1020px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .services-grid{grid-template-columns:1fr}
}

/* Why */
.features{display:grid; gap:1rem; grid-template-columns:repeat(2,1fr)}
@media (max-width:640px){.features{grid-template-columns:1fr}}
.feature{background:#ffffff08; border:1px solid #2a3455; border-radius:14px; padding:1rem}

/* Showcase */
.section-head{
  display:flex; 
  align-items:center; 
  justify-content:space-between; 
  gap:1rem;
  margin-bottom:2rem;
}
.controls{
  display:flex;
  gap:.5rem;
}
.controls button{
  background:var(--glass);
  border:1px solid var(--glass-border);
  border-radius:12px;
  padding:.6rem;
  color:var(--text);
  cursor:pointer;
  transition:all 0.2s ease;
  backdrop-filter:blur(10px);
}
.controls button:hover{
  background:var(--brand);
  transform:scale(1.05);
}
.carousel{
  display:grid; 
  grid-auto-flow:column; 
  grid-auto-columns:80%; 
  gap:1.5rem; 
  overflow-x:auto; 
  overscroll-behavior-x:contain; 
  scroll-snap-type:x mandatory; 
  padding-bottom:1rem;
  scrollbar-width:thin;
  scrollbar-color:var(--brand) transparent;
}
.carousel::-webkit-scrollbar{height:6px}
.carousel::-webkit-scrollbar-track{background:transparent}
.carousel::-webkit-scrollbar-thumb{background:var(--brand); border-radius:3px}
.carousel .item{
  scroll-snap-align:center; 
  border:1px solid var(--glass-border); 
  border-radius:20px; 
  overflow:hidden; 
  background:var(--gradient-surface);
  transition:all 0.3s ease;
  position:relative;
}
.carousel .item::before{
  content:'';
  position:absolute;
  inset:0;
  background:var(--gradient-primary);
  opacity:0;
  transition:opacity 0.3s ease;
}
.carousel .item:hover{
  transform:scale(1.02);
  box-shadow:var(--shadow-medium);
}
.carousel .item:hover::before{opacity:0.05}
.carousel .item img{
  aspect-ratio:4/3;
  object-fit:cover;
  width:100%;
}
.carousel .cap{
  padding:1.2rem; 
  color:var(--muted);
  font-weight:500;
  position:relative;
  z-index:2;
}
.carousel .cap h4{
  margin:0 0 0.5rem 0;
  color:var(--text);
  font-size:1rem;
  font-weight:600;
}
.carousel .cap .category{
  display:inline-block;
  background:var(--brand);
  color:white;
  padding:0.2rem 0.6rem;
  border-radius:12px;
  font-size:0.75rem;
  font-weight:600;
  margin-bottom:0.5rem;
}
.carousel .cap .location,
.carousel .cap .year{
  display:block;
  font-size:0.8rem;
  color:var(--muted);
  margin-top:0.2rem;
}
.carousel .cap .location::before{
  content:'📍 ';
  margin-right:0.2rem;
}
.carousel .cap .year::before{
  content:'📅 ';
  margin-right:0.2rem;
}

@media (min-width:900px){
  .carousel{grid-auto-columns:32%}
}

/* Certificates */
.cert-grid{grid-template-columns:repeat(5,1fr)}
.cert{display:flex; flex-direction:column; gap:.5rem; background:#ffffff08; border:1px solid #2a3455; border-radius:12px; padding:.6rem; text-decoration:none; color:var(--text)}
.cert span{font-size:.9rem; color:var(--muted)}
@media (max-width:1000px){.cert-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.cert-grid{grid-template-columns:repeat(2,1fr)}}

.lightbox{width:min(1000px,92vw); border:1px solid #2a3455; background:#0e1526; border-radius:16px; padding:0}
.lightbox img{max-height:80vh; margin:auto; display:block}
.lightbox .close{position:absolute; right:.75rem; top:.5rem}

/* Forms */
.form label{display:grid; gap:.35rem; margin:.6rem 0}
input,select,textarea{background:#0e1526; border:1px solid #2a3455; color:var(--text); padding:.7rem .8rem; border-radius:10px; outline:none}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px #505fab55; border-color:var(--brand)}
.muted{color:var(--muted)}

/* Footer */
.site-footer{
  border-top:1px solid var(--glass-border); 
  padding:2rem 0; 
  color:var(--muted);
  background:var(--glass);
  backdrop-filter:blur(10px);
}
.footer-content{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
}
.dev-credit{
  font-size:0.85rem;
  margin-top:0.5rem;
  opacity:0.8;
}
.dev-credit a{
  color:var(--brand);
  text-decoration:none;
  transition:color 0.3s ease;
}
.dev-credit a:hover{
  color:var(--brand-2);
  text-decoration:underline;
}
.footer-actions{
  display:flex;
  align-items:center;
  gap:1rem;
}
.site-footer .to-top{
  text-decoration:none; 
  color:var(--muted); 
  border:1px solid var(--glass-border); 
  padding:.5rem .7rem; 
  border-radius:10px;
  transition:all 0.2s ease;
  background:var(--glass);
  backdrop-filter:blur(10px);
}
.site-footer .to-top:hover{
  color:var(--text);
  border-color:var(--brand);
  background:var(--brand);
  transform:translateY(-2px);
}

/* Footer install button */
.site-footer .install{
  background:var(--gradient-primary);
  border:none;
  color:white;
  padding:.6rem 1rem;
  border-radius:12px;
  font-weight:600;
  transition:all 0.3s ease;
  box-shadow:var(--shadow-soft);
  position:relative;
  overflow:hidden;
}
.site-footer .install::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(45deg, transparent 30%, rgba(255,255,255,0.2) 50%, transparent 70%);
  transform:translateX(-100%);
  transition:transform 0.6s ease;
}
.site-footer .install:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-medium);
}
.site-footer .install:hover::before{
  transform:translateX(100%);
}

@media (max-width:640px){
  .footer-content{
    flex-direction:column;
    text-align:center;
    gap:1.5rem;
  }
  .footer-content p{
    font-size:0.9rem;
    line-height:1.5;
  }
  .footer-actions{
    justify-content:center;
    flex-wrap:wrap;
  }
}

/* Enhanced form styles */
.error-msg{
  color:var(--error);
  font-size:0.85rem;
  margin-top:0.25rem;
  display:block;
}
input.error, textarea.error, select.error{
  border-color:var(--error);
  box-shadow:0 0 0 3px color-mix(in oklab, var(--error) 20%, transparent 80%);
}
.status{
  padding:0.5rem 0;
  border-radius:8px;
  font-weight:500;
}
.status.success{color:var(--success)}
.status.error{color:var(--error)}
.status.loading{color:var(--brand)}
.btn.loading{
  pointer-events:none;
  opacity:0.7;
}

/* Toast notifications */
.toast{
  position:fixed;
  top:2rem;
  right:2rem;
  background:var(--glass);
  backdrop-filter:blur(10px);
  border:1px solid var(--glass-border);
  border-radius:12px;
  padding:1rem 1.5rem;
  color:var(--text);
  font-weight:500;
  z-index:1000;
  transform:translateX(120%);
  transition:transform 0.3s ease;
  max-width:300px;
  box-shadow:var(--shadow-medium);
}
.toast.show{transform:translateX(0)}
.toast-success{border-left:4px solid var(--success)}
.toast-error{border-left:4px solid var(--error)}
.toast-warning{border-left:4px solid var(--warning)}
.toast-info{border-left:4px solid var(--brand)}

/* Offline indicator */
body.offline::before{
  content:'Offline Mode';
  position:fixed;
  top:0;
  left:50%;
  transform:translateX(-50%);
  background:var(--warning);
  color:white;
  padding:0.5rem 1rem;
  border-radius:0 0 8px 8px;
  font-size:0.85rem;
  font-weight:600;
  z-index:1001;
}

/* Loading states */
.loading{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem;
  color:var(--muted);
  font-style:italic;
}
.error{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:2rem;
  color:var(--error);
  background:color-mix(in oklab, var(--error) 5%, transparent 95%);
  border:1px solid color-mix(in oklab, var(--error) 20%, transparent 80%);
  border-radius:12px;
  margin:1rem 0;
}

/* Disabled button states */
button:disabled{
  opacity:0.5;
  cursor:not-allowed;
  transform:none !important;
}

/* Utilities */
.skip-link{position:absolute; left:-999rem}
.skip-link:focus{left:1rem; top:1rem; background:#000; padding:.5rem; border-radius:8px}
.section h2{font-size:clamp(1.4rem,2vw + .6rem,2rem)}

/* Animations */
@keyframes slideIn{
  from{transform:translateX(100%); opacity:0}
  to{transform:translateX(0); opacity:1}
}

/* Entrance animations */
[data-animate]{
  opacity:0; 
  transition:all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change:opacity, transform;
}
[data-animate="fade-up"]{transform:translateY(30px)}
[data-animate="fade-in"]{transform:scale(0.95)}
[data-animate="slide-in"]{transform:translateX(30px)}
[data-animate="slide-up"]{transform:translateY(40px)}
[data-animate="zoom-in"]{transform:scale(0.8)}
[data-animate="rotate-in"]{transform:rotate(-5deg) scale(0.9)}

[data-animate].show{
  opacity:1; 
  transform:none;
}

/* Staggered animations */
.services-grid > .card:nth-child(1){transition-delay:0.1s}
.services-grid > .card:nth-child(2){transition-delay:0.2s}
.services-grid > .card:nth-child(3){transition-delay:0.3s}
.services-grid > .card:nth-child(4){transition-delay:0.4s}
.services-grid > .card:nth-child(5){transition-delay:0.5s}
.services-grid > .card:nth-child(6){transition-delay:0.6s}

/* Micro-interactions */
@keyframes float{
  0%, 100%{transform:translateY(0px)}
  50%{transform:translateY(-10px)}
}
@keyframes glow{
  0%, 100%{box-shadow:0 0 20px color-mix(in oklab, var(--brand) 20%, transparent 80%)}
  50%{box-shadow:0 0 30px color-mix(in oklab, var(--brand) 40%, transparent 60%)}
}
@keyframes shimmer{
  0%{background-position:-200% center}
  100%{background-position:200% center}
}

.hero-media{
  animation:float 6s ease-in-out infinite;
}
.btn.primary{
  animation:glow 3s ease-in-out infinite;
}

/* Reduce animation on mobile for better performance */
@media (max-width:640px){
  .hero-media{
    animation:float 8s ease-in-out infinite;
  }
}

@media (prefers-reduced-motion: reduce){
  .hero-media{
    animation:none;
  }
}

/* Parallax scroll effects */
@media (prefers-reduced-motion: no-preference){
  .hero-shape{
    transform:translateZ(0);
    will-change:transform;
  }
}

/* Back to Top button */
.back-to-top{
  position:fixed;
  right:1.25rem;
  bottom:1.25rem;
  width:44px;
  height:44px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--panel);
  color:var(--brand-2);
  border:1px solid color-mix(in oklab, var(--brand) 30%, transparent 70%);
  box-shadow:var(--shadow-medium);
  cursor:pointer;
  z-index:1001;
  opacity:0;
  transform:translateY(8px) scale(0.98);
  transition:opacity 240ms cubic-bezier(.2,.9,.2,1), transform 240ms cubic-bezier(.2,.9,.2,1);
}
.back-to-top:focus{outline:2px solid var(--brand); outline-offset:3px}
.back-to-top.show{opacity:1; transform:none}
.back-to-top svg{display:block; width:18px; height:18px}

/* Hide on extremely small screens to avoid overlap */
@media (max-width:360px){
  .back-to-top{display:none}
}
