2023-08-02 19:35:27 +01:00
|
|
|
|
/*Write your global styles here, in PostCSS syntax */
|
2026-03-28 20:04:43 +01:00
|
|
|
|
|
2026-03-28 20:13:08 +01:00
|
|
|
|
@import 'tailwindcss';
|
|
|
|
|
|
|
|
|
|
|
|
@import '@cio/ui/output.css';
|
|
|
|
|
|
|
2026-04-12 08:58:41 +01:00
|
|
|
|
@source '../../packages/ui/src/custom/animation/**/*.svelte';
|
|
|
|
|
|
|
2026-03-28 20:13:08 +01:00
|
|
|
|
@custom-variant dark (&:where(.dark, .dark *));
|
|
|
|
|
|
|
2026-07-11 08:25:11 +01:00
|
|
|
|
/**
|
|
|
|
|
|
* Shared z-index scale, mirrored from `packages/ui/src/index.css`.
|
|
|
|
|
|
*
|
|
|
|
|
|
* Dashboard code has its own (unprefixed) Tailwind pipeline, separate from `@cio/ui`'s
|
|
|
|
|
|
* `ui:`-prefixed one — a `ui:`-prefixed utility only compiles if that exact class string is
|
|
|
|
|
|
* also used somewhere under `packages/ui/src`. So dashboard-only usages (page headers, the
|
|
|
|
|
|
* course sidebar, dropdowns/selects that need to escape a sticky header or a modal) must use
|
|
|
|
|
|
* these unprefixed names instead. Keep the two scales numerically in sync; see
|
|
|
|
|
|
* `packages/ui/README.md` for the full write-up of each layer.
|
|
|
|
|
|
*/
|
|
|
|
|
|
@utility z-app-bar {
|
|
|
|
|
|
z-index: 100;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@utility z-app-bar-elevated {
|
|
|
|
|
|
z-index: 150;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@utility z-menu-elevated {
|
|
|
|
|
|
z-index: 250;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-28 20:04:43 +01:00
|
|
|
|
/* Geist variable font — self-hosted */
|
|
|
|
|
|
@font-face {
|
|
|
|
|
|
font-family: 'Geist';
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
font-weight: 100 900;
|
|
|
|
|
|
font-display: swap;
|
|
|
|
|
|
src: url('/fonts/geist/geist-cyrillic.woff2') format('woff2');
|
|
|
|
|
|
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@font-face {
|
|
|
|
|
|
font-family: 'Geist';
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
font-weight: 100 900;
|
|
|
|
|
|
font-display: swap;
|
|
|
|
|
|
src: url('/fonts/geist/geist-latin-ext.woff2') format('woff2');
|
|
|
|
|
|
unicode-range:
|
|
|
|
|
|
U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
|
|
|
|
|
|
U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@font-face {
|
|
|
|
|
|
font-family: 'Geist';
|
|
|
|
|
|
font-style: normal;
|
|
|
|
|
|
font-weight: 100 900;
|
|
|
|
|
|
font-display: swap;
|
|
|
|
|
|
src: url('/fonts/geist/geist-latin.woff2') format('woff2');
|
|
|
|
|
|
unicode-range:
|
|
|
|
|
|
U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC,
|
|
|
|
|
|
U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
|
|
|
|
}
|
2025-12-02 09:54:38 +01:00
|
|
|
|
|
2023-08-02 19:35:27 +01:00
|
|
|
|
/** Global scrollbar styles */
|
|
|
|
|
|
html {
|
|
|
|
|
|
--scrollbarBG: #fff;
|
|
|
|
|
|
--thumbBG: #ccc;
|
|
|
|
|
|
scroll-behavior: smooth;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#calendar .grid {
|
|
|
|
|
|
--sc-theme-calendar-colors-background-highlight: var(--main-primary-color);
|
|
|
|
|
|
}
|
2023-09-14 20:59:51 +00:00
|
|
|
|
|
|
|
|
|
|
html .dark {
|
2023-12-03 16:25:10 +03:00
|
|
|
|
--scrollbarBG: #000;
|
2023-09-14 20:59:51 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2023-08-02 19:35:27 +01:00
|
|
|
|
* {
|
|
|
|
|
|
scrollbar-width: thin;
|
|
|
|
|
|
scrollbar-color: var(--thumbBG) var(--scrollbarBG);
|
|
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2023-09-12 11:31:20 +00:00
|
|
|
|
html .dark {
|
2023-12-03 16:25:10 +03:00
|
|
|
|
--scrollbarBG: #000;
|
2023-09-12 11:31:20 +00:00
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2023-08-02 19:35:27 +01:00
|
|
|
|
*::-webkit-scrollbar {
|
|
|
|
|
|
width: 10px;
|
|
|
|
|
|
height: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
*::-webkit-scrollbar-track {
|
|
|
|
|
|
background: var(--scrollbarBG);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
*::-webkit-scrollbar-thumb {
|
|
|
|
|
|
background-color: var(--thumbBG);
|
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
|
border: 2px solid var(--scrollbarBG);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-18 23:39:12 +01:00
|
|
|
|
.prose {
|
|
|
|
|
|
color: var(--foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-08-02 19:35:27 +01:00
|
|
|
|
.prose h1,
|
|
|
|
|
|
.prose h2,
|
|
|
|
|
|
.prose h3,
|
2026-03-18 23:39:12 +01:00
|
|
|
|
.prose h4 {
|
|
|
|
|
|
@apply scroll-m-20 tracking-tight text-balance;
|
|
|
|
|
|
color: var(--foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose h1 {
|
2026-03-28 20:04:43 +01:00
|
|
|
|
@apply my-2 text-4xl font-normal;
|
2026-03-18 23:39:12 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose h2 {
|
2026-03-28 20:04:43 +01:00
|
|
|
|
@apply my-2 text-3xl font-normal transition-colors;
|
2026-03-18 23:39:12 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose h2:first-child {
|
|
|
|
|
|
@apply mt-0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose h3 {
|
2026-03-28 20:04:43 +01:00
|
|
|
|
@apply my-2 text-2xl font-normal;
|
2026-03-18 23:39:12 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose h4 {
|
2026-03-28 20:04:43 +01:00
|
|
|
|
@apply my-2 text-xl font-normal;
|
2026-03-18 23:39:12 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose p,
|
|
|
|
|
|
.prose li,
|
|
|
|
|
|
.prose blockquote {
|
2026-05-18 03:47:22 +01:00
|
|
|
|
@apply leading-relaxed;
|
2023-08-02 19:35:27 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2023-09-07 10:47:25 +00:00
|
|
|
|
.prose p {
|
2026-06-25 22:12:38 +01:00
|
|
|
|
@apply mb-1;
|
2026-03-18 23:39:12 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose a {
|
|
|
|
|
|
@apply font-medium underline underline-offset-4;
|
|
|
|
|
|
color: var(--primary);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose blockquote {
|
|
|
|
|
|
@apply mt-6 border-s-2 ps-6 italic;
|
|
|
|
|
|
border-inline-start-color: var(--border);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose ul,
|
|
|
|
|
|
.prose ol {
|
|
|
|
|
|
@apply my-6 ms-6 p-0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose ul {
|
|
|
|
|
|
@apply list-disc;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose ol {
|
|
|
|
|
|
@apply list-decimal;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose li {
|
|
|
|
|
|
@apply mt-2;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose table {
|
|
|
|
|
|
@apply my-6 w-full border-collapse;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose thead tr,
|
|
|
|
|
|
.prose tbody tr {
|
|
|
|
|
|
@apply m-0 border-t p-0;
|
|
|
|
|
|
border-top-color: var(--border);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose tbody tr:nth-child(even) {
|
|
|
|
|
|
background: var(--muted);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose th,
|
|
|
|
|
|
.prose td {
|
|
|
|
|
|
@apply border px-4 py-2 text-start;
|
|
|
|
|
|
border-color: var(--border);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose th {
|
|
|
|
|
|
@apply font-bold;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose th[align='center'],
|
|
|
|
|
|
.prose td[align='center'] {
|
|
|
|
|
|
@apply text-center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose th[align='right'],
|
|
|
|
|
|
.prose td[align='right'] {
|
|
|
|
|
|
@apply text-end;
|
2023-09-07 10:47:25 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-30 08:24:55 +01:00
|
|
|
|
.prose hr {
|
|
|
|
|
|
@apply my-6 border-t;
|
|
|
|
|
|
border-top-color: var(--border);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose pre {
|
|
|
|
|
|
@apply my-4 overflow-auto rounded-lg p-4;
|
|
|
|
|
|
background-color: var(--muted);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark .prose pre {
|
|
|
|
|
|
background-color: color-mix(in oklch, var(--muted) 30%, transparent);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose pre code {
|
|
|
|
|
|
@apply bg-transparent p-0 text-sm;
|
|
|
|
|
|
font-family: 'JetBrains Mono', monospace, Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono';
|
|
|
|
|
|
color: inherit;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.prose code:not(pre code) {
|
|
|
|
|
|
@apply rounded px-1.5 py-0.5 text-sm font-semibold;
|
|
|
|
|
|
background-color: var(--muted);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-11-01 16:18:29 +01:00
|
|
|
|
/* .dark .prose h1,
|
2023-08-02 19:35:27 +01:00
|
|
|
|
.dark .prose h2,
|
|
|
|
|
|
.dark .prose h3,
|
|
|
|
|
|
.dark .prose h4,
|
|
|
|
|
|
.dark .prose h5,
|
|
|
|
|
|
.dark .prose h6,
|
2023-08-05 04:44:32 +01:00
|
|
|
|
.dark .prose li,
|
2023-08-05 08:02:42 +01:00
|
|
|
|
.dark .prose strong,
|
2023-08-05 04:44:32 +01:00
|
|
|
|
.dark .prose li::marker,
|
2023-08-02 19:35:27 +01:00
|
|
|
|
.dark .prose p {
|
2023-12-19 21:07:08 +03:00
|
|
|
|
color: #fff !important;
|
2025-11-01 16:18:29 +01:00
|
|
|
|
} */
|
2023-08-02 19:35:27 +01:00
|
|
|
|
|
2026-03-09 11:18:22 +01:00
|
|
|
|
body {
|
|
|
|
|
|
--plyr-color-main: var(--primary);
|
|
|
|
|
|
--plyr-focus-visible-color: var(--ring);
|
|
|
|
|
|
--plyr-video-control-background-hover: var(--primary);
|
|
|
|
|
|
--plyr-audio-control-background-hover: var(--primary);
|
|
|
|
|
|
--plyr-control-toggle-checked-background: var(--primary);
|
|
|
|
|
|
--plyr-range-fill-background: var(--primary);
|
|
|
|
|
|
--plyr-menu-background: var(--popover);
|
|
|
|
|
|
--plyr-menu-color: var(--popover-foreground);
|
|
|
|
|
|
--plyr-menu-border-color: var(--border);
|
|
|
|
|
|
--plyr-tooltip-background: var(--popover);
|
|
|
|
|
|
--plyr-tooltip-color: var(--popover-foreground);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-11 21:25:29 +01:00
|
|
|
|
iframe.iframe {
|
|
|
|
|
|
width: 100%;
|
2026-05-18 03:47:22 +01:00
|
|
|
|
max-width: 48rem;
|
2024-04-11 21:25:29 +01:00
|
|
|
|
margin: 0 auto;
|
|
|
|
|
|
height: 450px;
|
|
|
|
|
|
border: 1px solid gray;
|
|
|
|
|
|
border-radius: 5px;
|
|
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2024-04-11 21:25:29 +01:00
|
|
|
|
@media (max-width: 760px) {
|
|
|
|
|
|
iframe.iframe {
|
|
|
|
|
|
height: 209px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-22 02:36:48 +01:00
|
|
|
|
:not([data-slot='button']) > svg.lucide-icon:not(.custom) {
|
2025-11-01 15:49:29 +01:00
|
|
|
|
color: #666666;
|
|
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2025-12-22 02:36:48 +01:00
|
|
|
|
.dark :not([data-slot='button']) > svg.lucide-icon:not(.custom) {
|
2025-11-01 15:49:29 +01:00
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
2023-08-02 19:35:27 +01:00
|
|
|
|
|
2024-09-04 06:32:54 +01:00
|
|
|
|
.shake {
|
|
|
|
|
|
animation: shake 0.85s;
|
|
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2024-09-04 06:32:54 +01:00
|
|
|
|
@keyframes shake {
|
|
|
|
|
|
10%,
|
|
|
|
|
|
90% {
|
|
|
|
|
|
transform: translate3d(-15px, 0, 0);
|
|
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2024-09-04 06:32:54 +01:00
|
|
|
|
20%,
|
|
|
|
|
|
80% {
|
|
|
|
|
|
transform: translate3d(15px, 0, 0);
|
|
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2024-09-04 06:32:54 +01:00
|
|
|
|
30%,
|
|
|
|
|
|
50%,
|
|
|
|
|
|
70% {
|
|
|
|
|
|
transform: translate3d(-15px, 0, 0);
|
|
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2024-09-04 06:32:54 +01:00
|
|
|
|
40%,
|
|
|
|
|
|
60% {
|
|
|
|
|
|
transform: translate3d(15px, 0, 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-02-13 22:17:15 +01:00
|
|
|
|
.bx--list-box__menu-item__option {
|
2024-02-14 14:37:11 +01:00
|
|
|
|
white-space: normal !important;
|
2024-02-13 22:17:15 +01:00
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2024-02-13 22:17:15 +01:00
|
|
|
|
.bx--list-box--xl .bx--list-box__menu-item,
|
|
|
|
|
|
.bx--list-box--lg .bx--list-box__menu-item,
|
|
|
|
|
|
.bx--list-box__menu-item__option {
|
|
|
|
|
|
height: fit-content !important;
|
|
|
|
|
|
}
|
2025-11-21 12:18:04 +01:00
|
|
|
|
|
2024-05-10 08:00:39 +01:00
|
|
|
|
.cio-bg-blue {
|
|
|
|
|
|
background: rgb(2, 51, 189);
|
|
|
|
|
|
background-size: cover;
|
|
|
|
|
|
background: radial-gradient(circle at 50% 100%, rgba(2, 51, 189, 1) 1%, rgb(4, 2, 56) 100%);
|
|
|
|
|
|
}
|
2024-02-13 22:17:15 +01:00
|
|
|
|
|
2023-12-13 10:24:34 +03:00
|
|
|
|
@media screen and (max-width: 457px) {
|
|
|
|
|
|
.org-slot {
|
|
|
|
|
|
min-width: 100%;
|
|
|
|
|
|
max-height: calc(100vh - 48px);
|
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-12-22 02:36:48 +01:00
|
|
|
|
body[data-theme='default'] {
|
|
|
|
|
|
--chart-1: var(--color-blue-300);
|
|
|
|
|
|
--chart-2: var(--color-blue-500);
|
|
|
|
|
|
--chart-3: var(--color-blue-600);
|
|
|
|
|
|
--chart-4: var(--color-blue-700);
|
|
|
|
|
|
--chart-5: var(--color-blue-800);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='blue'] {
|
|
|
|
|
|
--primary: var(--color-blue-700);
|
|
|
|
|
|
--primary-foreground: var(--color-blue-50);
|
|
|
|
|
|
/* --ring: var(--color-blue-100); */
|
|
|
|
|
|
--sidebar-primary: var(--color-blue-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-blue-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-blue-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-blue-700);
|
|
|
|
|
|
/* --sidebar-ring: var(--color-blue-400); */
|
|
|
|
|
|
--chart-1: var(--color-blue-300);
|
|
|
|
|
|
--chart-2: var(--color-blue-500);
|
|
|
|
|
|
--chart-3: var(--color-blue-600);
|
|
|
|
|
|
--chart-4: var(--color-blue-700);
|
|
|
|
|
|
--chart-5: var(--color-blue-800);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-blue-700);
|
|
|
|
|
|
--primary-foreground: var(--color-blue-50);
|
|
|
|
|
|
/* --ring: var(--color-blue-900); */
|
|
|
|
|
|
--sidebar-primary: var(--color-blue-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-blue-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-blue-500);
|
|
|
|
|
|
/* --sidebar-ring: var(--color-blue-900); */
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='green'] {
|
|
|
|
|
|
--primary: var(--color-lime-600);
|
|
|
|
|
|
--primary-foreground: var(--color-lime-50);
|
|
|
|
|
|
--ring: var(--color-lime-400);
|
|
|
|
|
|
--chart-1: var(--color-green-300);
|
|
|
|
|
|
--chart-2: var(--color-green-500);
|
|
|
|
|
|
--chart-3: var(--color-green-600);
|
|
|
|
|
|
--chart-4: var(--color-green-700);
|
|
|
|
|
|
--chart-5: var(--color-green-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-lime-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-lime-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-lime-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-lime-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-lime-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-lime-600);
|
|
|
|
|
|
--primary-foreground: var(--color-lime-50);
|
|
|
|
|
|
--ring: var(--color-lime-900);
|
|
|
|
|
|
--sidebar-primary: var(--color-lime-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-lime-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-lime-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-lime-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='amber'] {
|
|
|
|
|
|
--primary: var(--color-amber-600);
|
|
|
|
|
|
--primary-foreground: var(--color-amber-50);
|
|
|
|
|
|
--ring: var(--color-amber-400);
|
|
|
|
|
|
--chart-1: var(--color-amber-300);
|
|
|
|
|
|
--chart-2: var(--color-amber-500);
|
|
|
|
|
|
--chart-3: var(--color-amber-600);
|
|
|
|
|
|
--chart-4: var(--color-amber-700);
|
|
|
|
|
|
--chart-5: var(--color-amber-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-amber-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-amber-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-amber-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-amber-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-amber-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-amber-500);
|
|
|
|
|
|
--primary-foreground: var(--color-amber-50);
|
|
|
|
|
|
--ring: var(--color-amber-900);
|
|
|
|
|
|
--sidebar-primary: var(--color-amber-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-amber-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-amber-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-amber-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='rose'] {
|
|
|
|
|
|
--primary: var(--color-rose-600);
|
|
|
|
|
|
--primary-foreground: var(--color-rose-50);
|
|
|
|
|
|
--ring: var(--color-rose-400);
|
|
|
|
|
|
--chart-1: var(--color-rose-300);
|
|
|
|
|
|
--chart-2: var(--color-rose-500);
|
|
|
|
|
|
--chart-3: var(--color-rose-600);
|
|
|
|
|
|
--chart-4: var(--color-rose-700);
|
|
|
|
|
|
--chart-5: var(--color-rose-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-rose-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-rose-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-rose-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-rose-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-rose-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-rose-500);
|
|
|
|
|
|
--primary-foreground: var(--color-rose-50);
|
|
|
|
|
|
--ring: var(--color-rose-900);
|
|
|
|
|
|
--sidebar-primary: var(--color-rose-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-rose-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-rose-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-rose-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='purple'] {
|
|
|
|
|
|
--primary: var(--color-purple-600);
|
|
|
|
|
|
--primary-foreground: var(--color-purple-50);
|
|
|
|
|
|
--ring: var(--color-purple-400);
|
|
|
|
|
|
--chart-1: var(--color-purple-300);
|
|
|
|
|
|
--chart-2: var(--color-purple-500);
|
|
|
|
|
|
--chart-3: var(--color-purple-600);
|
|
|
|
|
|
--chart-4: var(--color-purple-700);
|
|
|
|
|
|
--chart-5: var(--color-purple-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-purple-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-purple-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-purple-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-purple-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-purple-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-purple-500);
|
|
|
|
|
|
--primary-foreground: var(--color-purple-50);
|
|
|
|
|
|
--ring: var(--color-purple-900);
|
|
|
|
|
|
--sidebar-primary: var(--color-purple-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-purple-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-purple-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-purple-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='orange'] {
|
|
|
|
|
|
--primary: var(--color-orange-600);
|
|
|
|
|
|
--primary-foreground: var(--color-orange-50);
|
|
|
|
|
|
--ring: var(--color-orange-400);
|
|
|
|
|
|
--chart-1: var(--color-orange-300);
|
|
|
|
|
|
--chart-2: var(--color-orange-500);
|
|
|
|
|
|
--chart-3: var(--color-orange-600);
|
|
|
|
|
|
--chart-4: var(--color-orange-700);
|
|
|
|
|
|
--chart-5: var(--color-orange-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-orange-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-orange-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-orange-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-orange-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-orange-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-orange-500);
|
|
|
|
|
|
--primary-foreground: var(--color-orange-50);
|
|
|
|
|
|
--ring: var(--color-orange-900);
|
|
|
|
|
|
--sidebar-primary: var(--color-orange-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-orange-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-orange-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-orange-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='teal'] {
|
|
|
|
|
|
--primary: var(--color-teal-600);
|
|
|
|
|
|
--primary-foreground: var(--color-teal-50);
|
|
|
|
|
|
--chart-1: var(--color-teal-300);
|
|
|
|
|
|
--chart-2: var(--color-teal-500);
|
|
|
|
|
|
--chart-3: var(--color-teal-600);
|
|
|
|
|
|
--chart-4: var(--color-teal-700);
|
|
|
|
|
|
--chart-5: var(--color-teal-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-teal-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-teal-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-teal-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-teal-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-teal-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-teal-500);
|
|
|
|
|
|
--primary-foreground: var(--color-teal-50);
|
|
|
|
|
|
--sidebar-primary: var(--color-teal-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-teal-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-teal-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-teal-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='mono'] {
|
|
|
|
|
|
--font-sans: var(--font-mono);
|
|
|
|
|
|
--primary: var(--color-stone-600);
|
|
|
|
|
|
--primary-foreground: var(--color-stone-50);
|
|
|
|
|
|
--chart-1: var(--color-stone-300);
|
|
|
|
|
|
--chart-2: var(--color-stone-500);
|
|
|
|
|
|
--chart-3: var(--color-stone-600);
|
|
|
|
|
|
--chart-4: var(--color-stone-700);
|
|
|
|
|
|
--chart-5: var(--color-stone-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-stone-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-stone-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-stone-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-stone-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-stone-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-stone-500);
|
|
|
|
|
|
--primary-foreground: var(--color-stone-50);
|
|
|
|
|
|
--sidebar-primary: var(--color-stone-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-stone-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-stone-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-stone-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@media (min-width: 1024px) {
|
|
|
|
|
|
--font-sans: var(--font-mono);
|
|
|
|
|
|
--radius: 0.45em;
|
|
|
|
|
|
--text-lg: 1rem;
|
|
|
|
|
|
--text-xl: 1.1rem;
|
|
|
|
|
|
--text-2xl: 1.2rem;
|
|
|
|
|
|
--text-3xl: 1.3rem;
|
|
|
|
|
|
--text-4xl: 1.4rem;
|
|
|
|
|
|
--text-5xl: 1.5rem;
|
|
|
|
|
|
--text-6xl: 1.6rem;
|
|
|
|
|
|
--text-7xl: 1.7rem;
|
|
|
|
|
|
--text-8xl: 1.8rem;
|
|
|
|
|
|
--text-base: 0.85rem;
|
|
|
|
|
|
--text-sm: 0.8rem;
|
|
|
|
|
|
--spacing: 0.222222rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.rounded-xs,
|
|
|
|
|
|
.rounded-sm,
|
|
|
|
|
|
.rounded-md,
|
|
|
|
|
|
.rounded-lg,
|
|
|
|
|
|
.rounded-xl {
|
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.shadow-xs,
|
|
|
|
|
|
.shadow-sm,
|
|
|
|
|
|
.shadow-md,
|
|
|
|
|
|
.shadow-lg,
|
|
|
|
|
|
.shadow-xl {
|
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[data-slot='toggle-group'],
|
|
|
|
|
|
[data-slot='toggle-group-item'] {
|
|
|
|
|
|
@apply !rounded-none !shadow-none;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='scaled'] {
|
|
|
|
|
|
--chart-1: var(--color-blue-300);
|
|
|
|
|
|
--chart-2: var(--color-blue-500);
|
|
|
|
|
|
--chart-3: var(--color-blue-600);
|
|
|
|
|
|
--chart-4: var(--color-blue-700);
|
|
|
|
|
|
--chart-5: var(--color-blue-800);
|
|
|
|
|
|
|
|
|
|
|
|
@media (min-width: 1024px) {
|
|
|
|
|
|
--radius: 0.45em;
|
|
|
|
|
|
--text-lg: 1rem;
|
|
|
|
|
|
--text-xl: 1.1rem;
|
|
|
|
|
|
--text-2xl: 1.2rem;
|
|
|
|
|
|
--text-3xl: 1.3rem;
|
|
|
|
|
|
--text-4xl: 1.4rem;
|
|
|
|
|
|
--text-5xl: 1.5rem;
|
|
|
|
|
|
--text-6xl: 1.6rem;
|
|
|
|
|
|
--text-7xl: 1.7rem;
|
|
|
|
|
|
--text-8xl: 1.8rem;
|
|
|
|
|
|
--text-base: 0.85rem;
|
|
|
|
|
|
--text-sm: 0.8rem;
|
|
|
|
|
|
--spacing: 0.2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[data-slot='select-trigger'],
|
|
|
|
|
|
[data-slot='toggle-group-item'] {
|
|
|
|
|
|
--spacing: 0.2rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[data-slot='card'] {
|
|
|
|
|
|
border-radius: var(--radius);
|
|
|
|
|
|
padding-block: calc(var(--spacing) * 4);
|
|
|
|
|
|
gap: calc(var(--spacing) * 2);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[data-slot='card'].pb-0 {
|
|
|
|
|
|
padding-bottom: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='red'] {
|
|
|
|
|
|
--primary: var(--color-red-600);
|
|
|
|
|
|
--primary-foreground: var(--color-red-50);
|
|
|
|
|
|
--ring: var(--color-red-400);
|
|
|
|
|
|
--chart-1: var(--color-red-300);
|
|
|
|
|
|
--chart-2: var(--color-red-500);
|
|
|
|
|
|
--chart-3: var(--color-red-600);
|
|
|
|
|
|
--chart-4: var(--color-red-700);
|
|
|
|
|
|
--chart-5: var(--color-red-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-red-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-red-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-red-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-red-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-red-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-red-500);
|
|
|
|
|
|
--primary-foreground: var(--color-red-50);
|
|
|
|
|
|
--ring: var(--color-red-900);
|
|
|
|
|
|
--sidebar-primary: var(--color-red-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-red-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-red-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-red-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='yellow'] {
|
|
|
|
|
|
--primary: var(--color-yellow-400);
|
|
|
|
|
|
--primary-foreground: var(--color-yellow-900);
|
|
|
|
|
|
--ring: var(--color-yellow-400);
|
|
|
|
|
|
--chart-1: var(--color-yellow-300);
|
|
|
|
|
|
--chart-2: var(--color-yellow-500);
|
|
|
|
|
|
--chart-3: var(--color-yellow-600);
|
|
|
|
|
|
--chart-4: var(--color-yellow-700);
|
|
|
|
|
|
--chart-5: var(--color-yellow-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-yellow-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-yellow-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-yellow-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-yellow-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-yellow-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-yellow-500);
|
|
|
|
|
|
--primary-foreground: var(--color-yellow-900);
|
|
|
|
|
|
--ring: var(--color-yellow-900);
|
|
|
|
|
|
--sidebar-primary: var(--color-yellow-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-yellow-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-yellow-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-yellow-900);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
body[data-theme='violet'] {
|
|
|
|
|
|
--primary: var(--color-violet-600);
|
|
|
|
|
|
--primary-foreground: var(--color-violet-50);
|
|
|
|
|
|
--ring: var(--color-violet-400);
|
|
|
|
|
|
--chart-1: var(--color-violet-300);
|
|
|
|
|
|
--chart-2: var(--color-violet-500);
|
|
|
|
|
|
--chart-3: var(--color-violet-600);
|
|
|
|
|
|
--chart-4: var(--color-violet-700);
|
|
|
|
|
|
--chart-5: var(--color-violet-800);
|
|
|
|
|
|
--sidebar-primary: var(--color-violet-600);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-violet-50);
|
|
|
|
|
|
--sidebar-accent: var(--color-violet-50);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-violet-700);
|
|
|
|
|
|
--sidebar-ring: var(--color-violet-400);
|
|
|
|
|
|
|
|
|
|
|
|
@variant dark {
|
|
|
|
|
|
--primary: var(--color-violet-500);
|
|
|
|
|
|
--primary-foreground: var(--color-violet-50);
|
|
|
|
|
|
--ring: var(--color-violet-900);
|
|
|
|
|
|
--sidebar-primary: var(--color-violet-500);
|
|
|
|
|
|
--sidebar-primary-foreground: var(--color-violet-50);
|
|
|
|
|
|
--sidebar-accent: oklch(0.268 0.007 34.298);
|
|
|
|
|
|
--sidebar-accent-foreground: var(--color-violet-500);
|
|
|
|
|
|
--sidebar-ring: var(--color-violet-900);
|
2025-11-01 16:18:29 +01:00
|
|
|
|
}
|
2025-11-24 01:00:50 +01:00
|
|
|
|
}
|
2025-12-02 09:54:38 +01:00
|
|
|
|
|
|
|
|
|
|
/* Animated Gradient Border */
|
|
|
|
|
|
@property --border-angle {
|
|
|
|
|
|
inherits: false;
|
|
|
|
|
|
initial-value: 0deg;
|
|
|
|
|
|
syntax: '<angle>';
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@keyframes border {
|
|
|
|
|
|
to {
|
|
|
|
|
|
--border-angle: 360deg;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Animated Gradient Border Class */
|
|
|
|
|
|
.animate-gradient-border {
|
|
|
|
|
|
border: 1px solid transparent;
|
|
|
|
|
|
background:
|
|
|
|
|
|
linear-gradient(45deg, white, white) padding-box,
|
|
|
|
|
|
conic-gradient(
|
|
|
|
|
|
from var(--border-angle),
|
|
|
|
|
|
rgb(148 163 184 / 0.3) 75%,
|
2025-12-22 02:36:48 +01:00
|
|
|
|
var(--primary) 82%,
|
|
|
|
|
|
var(--primary-foreground) 88%,
|
|
|
|
|
|
var(--primary) 92%,
|
2025-12-02 09:54:38 +01:00
|
|
|
|
rgb(148 163 184 / 0.3) 100%
|
|
|
|
|
|
)
|
|
|
|
|
|
border-box;
|
|
|
|
|
|
transition: --border-angle 3s ease-in-out;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.animate-gradient-border:hover {
|
|
|
|
|
|
animation: border 4s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark .animate-gradient-border {
|
|
|
|
|
|
background:
|
|
|
|
|
|
linear-gradient(45deg, rgb(0 0 0), rgb(0 0 0)) padding-box,
|
|
|
|
|
|
conic-gradient(
|
|
|
|
|
|
from var(--border-angle),
|
|
|
|
|
|
rgb(71 85 105 / 0.48) 75%,
|
2025-12-22 02:36:48 +01:00
|
|
|
|
var(--primary) 82%,
|
|
|
|
|
|
var(--primary-foreground) 88%,
|
|
|
|
|
|
var(--primary) 92%,
|
2025-12-02 09:54:38 +01:00
|
|
|
|
rgb(71 85 105 / 0.48) 100%
|
|
|
|
|
|
)
|
|
|
|
|
|
border-box;
|
|
|
|
|
|
transition: --border-angle 3s ease-in-out;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.dark .animate-gradient-border:hover {
|
|
|
|
|
|
animation: border 4s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
Rocket launch animation.
|
|
|
|
|
|
**/
|
|
|
|
|
|
.rocket-launch {
|
|
|
|
|
|
transform-origin: center bottom;
|
|
|
|
|
|
transform-box: fill-box;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Full sequence runs once per hover */
|
|
|
|
|
|
.animate-icon:hover .rocket-launch {
|
|
|
|
|
|
animation: rocket-sequence 5s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Optional: flame flicker during pre-launch + launch */
|
|
|
|
|
|
.animate-icon:hover .rocket-launch path:first-of-type {
|
|
|
|
|
|
animation: flame-sequence 5s ease-in-out infinite;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
Rocket:
|
|
|
|
|
|
- 0–60% (~3s): jitter/pre-launch, small moves along nose direction
|
|
|
|
|
|
- 60–70%: launch along ~60° diagonal (up-right), fade out
|
|
|
|
|
|
- 70–80%: invisible pause
|
|
|
|
|
|
- 80–100%: re-enter from opposite side (down-left)
|
|
|
|
|
|
*/
|
|
|
|
|
|
@keyframes rocket-sequence {
|
|
|
|
|
|
0% {
|
|
|
|
|
|
transform: translate(0, 0) scale(1);
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
10% {
|
|
|
|
|
|
transform: translate(1px, -2px) scale(1.02);
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
20% {
|
|
|
|
|
|
transform: translate(0, 0) scale(1);
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
30% {
|
|
|
|
|
|
transform: translate(2px, -3px) scale(1.03);
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
40% {
|
|
|
|
|
|
transform: translate(0, 0) scale(1);
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
50% {
|
|
|
|
|
|
transform: translate(1px, -2px) scale(1.02);
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
60% {
|
|
|
|
|
|
transform: translate(0, 0) scale(1.05);
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Launch along a ~60° diagonal: up (-Y) and to the right (+X) */
|
|
|
|
|
|
70% {
|
|
|
|
|
|
transform: translate(100%, -173%) scale(1.1);
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Off-screen / invisible pause (~1s, 70–80%) */
|
|
|
|
|
|
80% {
|
|
|
|
|
|
/* Reposition off-screen in the opposite direction: down-left */
|
|
|
|
|
|
transform: translate(-100%, 173%) scale(1.1);
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Fly back into view from below-left to original position */
|
|
|
|
|
|
100% {
|
|
|
|
|
|
transform: translate(0, 0) scale(1);
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
Flame sequence:
|
|
|
|
|
|
- Moves opposite rocket travel (down-left: -X, +Y) to match exhaust
|
|
|
|
|
|
- No vertical-only scaling; just uniform scale + diagonal translation
|
|
|
|
|
|
- Visible 0–70%, then off
|
|
|
|
|
|
*/
|
|
|
|
|
|
@keyframes flame-sequence {
|
|
|
|
|
|
0% {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translate(-0.5px, 0.9px) scale(1.02);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
10% {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translate(0, 0) scale(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
20% {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translate(0, 0) scale(1.02);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
30% {
|
|
|
|
|
|
opacity: 0.8;
|
|
|
|
|
|
transform: translate(-0.5px, 0.9px) scale(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
40% {
|
|
|
|
|
|
opacity: 0.8;
|
|
|
|
|
|
transform: translate(0, 0) scale(1.02);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
50% {
|
|
|
|
|
|
opacity: 1;
|
|
|
|
|
|
transform: translate(-0.5px, 0.9px) scale(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
60% {
|
|
|
|
|
|
opacity: 0.8;
|
|
|
|
|
|
transform: translate(0, 0) scale(1.02);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
70% {
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: translate(-0.5px, 0.9px) scale(1.1);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
100% {
|
|
|
|
|
|
opacity: 0;
|
|
|
|
|
|
transform: translate(-1px, 1.7px) scale(1.12);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|