/* Page shell + shared keyframes */
html{
min-height:100%;
background-color:var(--page-bg-top);
}

body{
margin:0;
min-height:100vh;
font-family:var(--font-sans);
color:var(--text-primary);
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
text-rendering:optimizeLegibility;
background:
	radial-gradient(ellipse 120% 80% at 50% -30%,rgba(168,205,155,0.075),transparent 50%),
	radial-gradient(ellipse 70% 50% at 100% 50%,rgba(210,195,130,0.05),transparent 45%),
	linear-gradient(168deg,var(--page-bg-top) 0%,var(--page-bg-bottom) 58%,#121a16 100%);
}

@keyframes fadeUp{
from{opacity:0;transform:translateY(12px)}
to{opacity:1;transform:translateY(0)}
}

@keyframes fadeUpTight{
from{opacity:0;transform:translateY(8px)}
to{opacity:1;transform:translateY(0)}
}

@keyframes shimmer{
0%{background-position:0% 50%}
100%{background-position:200% 50%}
}

.anim-in{
animation:fadeUp var(--dur-slow) var(--ease-out-expo) both;
}

.anim-in:nth-child(1){animation-delay:.04s}
.anim-in:nth-child(2){animation-delay:.1s}
.anim-in:nth-child(3){animation-delay:.16s}
.anim-in:nth-child(4){animation-delay:.22s}
.anim-in:nth-child(5){animation-delay:.28s}
.anim-in:nth-child(6){animation-delay:.34s}

@media (prefers-reduced-motion:reduce){
.anim-in{animation:none!important;opacity:1;transform:none}
}

