This repository has been archived on 2026-06-19. You can view files and clone it, but cannot push or open issues or pull requests.
gso-landingpage/src/app/globals.css
Athena db7d7530f4 Add mountain climbing animation + fix typography scale
- MountainClimb: SVG stick figure climbs 11-step mountain, text card above head each step, flag + bounce at summit, IntersectionObserver auto-start, mobile numbered list fallback
- Replace static content grid with MountainClimb animation
- Add mc-fade-in + mc-bounce keyframes to globals.css
- Typography: IconCard title text-sm→text-base, IconCard sub text-xs→text-sm
- Bonus card title text-sm→text-base, desc text-xs→text-sm
- FAQ answers text-sm→text-base
- WeekTimeline card title text-base→text-lg

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 23:32:40 +02:00

194 lines
4.3 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@import "tailwindcss";
:root {
--background: #f8f7ff;
--foreground: #0f172a;
/* ── Typography color system (3 tones only) ── */
--text-head: #0f172a; /* h1h4, bold labels */
--text-body: #475569; /* all running paragraphs */
--text-muted: #94a3b8; /* meta, dates, secondary */
/* Accent #6366f1 — ONLY badges, icons, CTAs. Never in body copy. */
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
}
body {
background: linear-gradient(160deg, #f5f4ff, #f8f7ff 40%, #f4f7fa);
color: var(--text-body);
font-family: var(--font-geist-sans, Arial, Helvetica, sans-serif);
min-height: 100vh;
}
/* ── Heading font: Urbanist (Croogla-equivalent) ── */
h1, h2, h3, h4 {
font-family: var(--font-urbanist, var(--font-geist-sans));
color: var(--text-head);
}
p {
color: var(--text-body);
}
.mc-card {
background: #ffffff;
border: 1px solid #eae8f8;
border-radius: 1rem;
}
.mc-card-accent {
background: #ffffff;
border: 1px solid #eae8f8;
border-radius: 1rem;
border-top: 3px solid transparent;
border-image: linear-gradient(90deg, #6366f1, #8b5cf6, #a78bfa) 1;
border-top-left-radius: 1rem;
border-top-right-radius: 1rem;
}
.mc-nav-bg {
background: linear-gradient(135deg, #0c0a1e, #1a1744 40%, #0f0d2a);
}
.mc-dark-bg {
background: linear-gradient(135deg, #0c0a1e, #1a1744 40%, #0f0d2a);
}
.mc-btn {
background: linear-gradient(135deg, #6366f1, #8b5cf6);
box-shadow: 0 4px 16px rgba(99, 102, 241, 0.35);
transition: box-shadow 0.2s, transform 0.2s;
color: #fff;
font-weight: 700;
border-radius: 0.75rem;
}
.mc-btn:hover {
transform: translateY(-1px);
box-shadow: 0 6px 28px rgba(99, 102, 241, 0.55);
}
details summary::-webkit-details-marker { display: none; }
/* ── Shared micro-animations ── */
@keyframes mc-fade-in {
from { opacity: 0; transform: translateY(5px); }
to { opacity: 1; transform: translateY(0); }
}
.mc-fade-in { animation: mc-fade-in 0.35s ease forwards; }
@keyframes mc-bounce {
0% { transform: translateY(0); }
30% { transform: translateY(-14px); }
55% { transform: translateY(-6px); }
75% { transform: translateY(-10px); }
90% { transform: translateY(-2px); }
100% { transform: translateY(0); }
}
.mc-bounce { animation: mc-bounce 0.9s ease forwards; }
/* ── Flip Cards ── */
.flip-card-wrapper {
perspective: 1000px;
height: 220px;
}
.flip-card-inner {
position: relative;
width: 100%;
height: 100%;
transform-style: preserve-3d;
transition: transform 0.55s cubic-bezier(0.4, 0.2, 0.2, 1);
}
.flip-card-inner.flipped {
transform: rotateY(180deg);
}
.flip-face {
position: absolute;
inset: 0;
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
border-radius: 1rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 12px;
padding: 24px;
text-align: center;
}
.flip-front {
background: #ffffff;
border: 1px solid #eae8f8;
box-shadow: 0 2px 12px rgba(99, 102, 241, 0.06);
}
.flip-back {
background: linear-gradient(135deg, #6366f1, #8b5cf6);
transform: rotateY(180deg);
box-shadow: 0 4px 24px rgba(99, 102, 241, 0.35);
}
.flip-label {
font-size: 0.65rem;
font-weight: 800;
letter-spacing: 0.12em;
text-transform: uppercase;
border-radius: 99px;
padding: 3px 10px;
}
.flip-label-front {
background: #eef2ff;
color: #4338ca;
}
.flip-label-back {
background: rgba(255,255,255,0.2);
color: #fff;
}
.flip-text {
font-size: 0.9rem;
line-height: 1.5;
font-style: italic;
}
.flip-front .flip-text { color: #475569; }
.flip-back .flip-text { color: #fff; font-style: normal; font-weight: 600; }
.flip-hint {
font-size: 0.68rem;
display: flex;
align-items: center;
gap: 4px;
color: #a5b4fc;
margin-top: auto;
}
.flip-hint-back {
color: rgba(255,255,255,0.7);
}
/* ── Timeline scroll animations ── */
.tl-card {
opacity: 0;
transition: opacity 0.6s ease, transform 0.6s ease;
}
.tl-from-left { transform: translateX(-56px); }
.tl-from-right { transform: translateX(56px); }
.tl-from-bottom{ transform: translateY(40px); }
.tl-card.tl-visible {
opacity: 1;
transform: translateX(0) translateY(0);
}