184 lines
4.8 KiB
CSS
184 lines
4.8 KiB
CSS
@import "tailwindcss";
|
|
@import "katex/dist/katex.min.css";
|
|
|
|
:root {
|
|
--background: #f4f8ff;
|
|
--foreground: #10223f;
|
|
--muted: #4f6588;
|
|
--border: #cbdaef;
|
|
--surface: #FFFFFF;
|
|
--surface-raised: #FFFFFF;
|
|
|
|
--unit-1: #2563eb;
|
|
--unit-1-light: #e8f1ff;
|
|
--unit-1-dark: #1d4ed8;
|
|
|
|
--unit-2: #0ea5a4;
|
|
--unit-2-light: #e6fffb;
|
|
--unit-2-dark: #0f766e;
|
|
|
|
--unit-3: #f97316;
|
|
--unit-3-light: #fff1e7;
|
|
--unit-3-dark: #c2410c;
|
|
|
|
--unit-4: #e11d48;
|
|
--unit-4-light: #ffe8ef;
|
|
--unit-4-dark: #be123c;
|
|
|
|
--correct: #16a34a;
|
|
--correct-light: #dcfce7;
|
|
--incorrect: #dc2626;
|
|
--incorrect-light: #fee2e2;
|
|
--hint: #d97706;
|
|
--hint-light: #ffedd5;
|
|
|
|
--shadow-sm: 0 1px 2px rgb(16 34 63 / 0.06), 0 2px 8px rgb(37 99 235 / 0.04);
|
|
--shadow-md: 0 8px 18px rgb(16 34 63 / 0.09), 0 2px 8px rgb(37 99 235 / 0.08);
|
|
--shadow-lg: 0 16px 30px rgb(16 34 63 / 0.11), 0 6px 20px rgb(37 99 235 / 0.1);
|
|
--shadow-xl: 0 24px 44px rgb(16 34 63 / 0.14), 0 12px 28px rgb(37 99 235 / 0.12);
|
|
--shadow-glow: 0 0 24px rgb(37 99 235 / 0.18);
|
|
}
|
|
|
|
@theme inline {
|
|
--color-background: var(--background);
|
|
--color-foreground: var(--foreground);
|
|
--color-muted: var(--muted);
|
|
--color-border: var(--border);
|
|
--color-surface: var(--surface);
|
|
--color-surface-raised: var(--surface-raised);
|
|
|
|
--color-unit-1: var(--unit-1);
|
|
--color-unit-1-light: var(--unit-1-light);
|
|
--color-unit-1-dark: var(--unit-1-dark);
|
|
--color-unit-2: var(--unit-2);
|
|
--color-unit-2-light: var(--unit-2-light);
|
|
--color-unit-2-dark: var(--unit-2-dark);
|
|
--color-unit-3: var(--unit-3);
|
|
--color-unit-3-light: var(--unit-3-light);
|
|
--color-unit-3-dark: var(--unit-3-dark);
|
|
--color-unit-4: var(--unit-4);
|
|
--color-unit-4-light: var(--unit-4-light);
|
|
--color-unit-4-dark: var(--unit-4-dark);
|
|
|
|
--color-correct: var(--correct);
|
|
--color-correct-light: var(--correct-light);
|
|
--color-incorrect: var(--incorrect);
|
|
--color-incorrect-light: var(--incorrect-light);
|
|
--color-hint: var(--hint);
|
|
--color-hint-light: var(--hint-light);
|
|
|
|
--font-sans: "Nunito", "Trebuchet MS", "Segoe UI", sans-serif;
|
|
--font-display: "Avenir Next", "Poppins", "Trebuchet MS", sans-serif;
|
|
--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
body {
|
|
background:
|
|
radial-gradient(circle at 15% 0%, color-mix(in srgb, var(--unit-1) 9%, transparent), transparent 46%),
|
|
radial-gradient(circle at 90% 8%, color-mix(in srgb, var(--unit-3) 9%, transparent), transparent 34%),
|
|
radial-gradient(circle at 85% 88%, color-mix(in srgb, var(--unit-2) 7%, transparent), transparent 40%),
|
|
linear-gradient(180deg, #f7fbff 0%, var(--background) 100%);
|
|
color: var(--foreground);
|
|
font-family: var(--font-sans);
|
|
text-wrap: pretty;
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4 {
|
|
font-family: var(--font-display);
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
::selection {
|
|
background: color-mix(in srgb, var(--unit-1) 20%, transparent);
|
|
}
|
|
|
|
/* Subtle gradient background pattern */
|
|
.hero-gradient {
|
|
background:
|
|
radial-gradient(ellipse 100% 70% at 55% -15%, color-mix(in srgb, var(--unit-1) 14%, transparent), transparent),
|
|
radial-gradient(ellipse 70% 40% at 95% 45%, color-mix(in srgb, var(--unit-3) 12%, transparent), transparent),
|
|
radial-gradient(ellipse 70% 50% at 10% 75%, color-mix(in srgb, var(--unit-2) 10%, transparent), transparent),
|
|
linear-gradient(180deg, rgb(255 255 255 / 0.94), rgb(255 255 255 / 0.82));
|
|
}
|
|
|
|
/* Dot pattern overlay */
|
|
.dot-pattern {
|
|
background-image:
|
|
linear-gradient(to right, rgb(203 218 239 / 0.45) 1px, transparent 1px),
|
|
linear-gradient(to bottom, rgb(203 218 239 / 0.45) 1px, transparent 1px);
|
|
background-size: 22px 22px;
|
|
}
|
|
|
|
@keyframes float-card {
|
|
0%,
|
|
100% {
|
|
transform: translateY(0);
|
|
}
|
|
50% {
|
|
transform: translateY(-3px);
|
|
}
|
|
}
|
|
|
|
.float-card {
|
|
animation: float-card 3.2s ease-in-out infinite;
|
|
}
|
|
|
|
.playground-bg {
|
|
background: linear-gradient(180deg, #2f65e8 0%, #2a5fdc 100%);
|
|
}
|
|
|
|
.playground-frame {
|
|
border-left: 4px solid #1e4fc6;
|
|
border-right: 4px solid #1e4fc6;
|
|
background: #ffffff;
|
|
box-shadow: 0 16px 40px rgb(15 35 86 / 0.22);
|
|
}
|
|
|
|
.section-ribbon {
|
|
border: 2px solid #1f4fbe;
|
|
background: linear-gradient(180deg, #2f65e8 0%, #2051c3 100%);
|
|
color: white;
|
|
}
|
|
|
|
.game-thumb-grid {
|
|
background-image:
|
|
linear-gradient(90deg, rgb(255 255 255 / 0.22) 1px, transparent 1px),
|
|
linear-gradient(0deg, rgb(255 255 255 / 0.22) 1px, transparent 1px);
|
|
background-size: 14px 14px;
|
|
}
|
|
|
|
/* Smooth scrollbar */
|
|
::-webkit-scrollbar {
|
|
width: 6px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: var(--border);
|
|
border-radius: 3px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: var(--muted);
|
|
}
|
|
|
|
/* Focus ring utility */
|
|
.focus-ring {
|
|
outline: 2px solid transparent;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.focus-ring:focus-visible {
|
|
outline-color: var(--unit-1);
|
|
}
|