:root{
  --bg:#ffffff;
  --text:#0b0f19;
  --muted:#5b667a;
  --card:rgba(255,255,255,.72);
  --cardBorder:rgba(15,23,42,.08);
  --shadow: 0 20px 50px rgba(15, 23, 42, .10);
  --shadowSm: 0 10px 25px rgba(15, 23, 42, .08);
}

html{scroll-behavior:smooth;}
body{background:var(--bg); color:var(--text); text-rendering:optimizeLegibility;}

/* Subtle grain for premium feel */
.grain{
  position:relative;
}
.grain:before{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
  opacity:.08;
  border-radius:inherit;
}

/* Glassy cards */
.glass{
  background:var(--card);
  border:1px solid var(--cardBorder);
  box-shadow: var(--shadowSm);
  backdrop-filter: blur(10px);
}

/* Scroll reveal */
[data-reveal]{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}
[data-reveal].is-visible{
  opacity:1;
  transform:none;
}

/* Focus rings */
.focus-ring:focus-visible{
  outline: none;
  box-shadow: 0 0 0 4px rgba(99,102,241,.25);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  [data-reveal]{opacity:1; transform:none; transition:none;}
}

