Streak Rewards
{rewards.map((reward, i) => (
diff --git a/src/app/globals.css b/src/app/globals.css
index fa20cba..da6ff3f 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -121,21 +121,20 @@ body {
text-wrap: balance;
}
- /* ─── Uniform staggered subtle page & section entry animations ─── */
- .animate-page-enter {
- animation: pageFadeIn 0.25s cubic-bezier(0.16, 1, 0.3, 1) both;
+ /* ─── Intro/opening animations removed for rock-solid instant page display ─── */
+ .animate-page-enter,
+ .animate-section,
+ .animate-section-1,
+ .animate-section-2,
+ .animate-section-3,
+ .animate-section-4,
+ .animate-section-5,
+ .animate-section-6 {
+ animation: none !important;
+ opacity: 1 !important;
+ transform: none !important;
}
- .animate-section {
- animation: sectionFadeUp 0.32s cubic-bezier(0.16, 1, 0.3, 1) both;
- }
- .animate-section-1 { animation-delay: 0ms; }
- .animate-section-2 { animation-delay: 50ms; }
- .animate-section-3 { animation-delay: 100ms; }
- .animate-section-4 { animation-delay: 150ms; }
- .animate-section-5 { animation-delay: 200ms; }
- .animate-section-6 { animation-delay: 250ms; }
-
.bg-grid {
@@ -191,23 +190,3 @@ body {
background: var(--muted-foreground);
}
-@keyframes pageFadeIn {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
-}
-
-@keyframes sectionFadeUp {
- from {
- opacity: 0;
- transform: translateY(8px);
- }
- to {
- opacity: 1;
- transform: translateY(0);
- }
-}
-
diff --git a/src/components/PremiumGate.tsx b/src/components/PremiumGate.tsx
index 7e98faa..11e45b7 100644
--- a/src/components/PremiumGate.tsx
+++ b/src/components/PremiumGate.tsx
@@ -14,7 +14,7 @@ export function PremiumGate({ featureKey, children }: PremiumGateProps) {
const { hasAccessTo, loading, user } = useActiveUser();
// Allow children to render immediately without a blocking center spinner
- // so that page entry animations (animate-section) execute smoothly on route transition.
+ // so that pages mount instantly on route transition.
if (loading || !user) {
return <>{children}>;
}