Allegedcarrot4's picture
timeout fix for deployment!!
d8babc9
Raw History Blame Contribute Delete
28.4 kB
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
@import "tailwindcss";
@import "tw-animate-css";
@custom-variant dark (&:is(.dark *));
@theme inline {
--color-background: hsl(var(--background));
--color-foreground: hsl(var(--foreground));
--color-border: hsl(var(--border));
--color-input: hsl(var(--input));
--color-ring: hsl(var(--ring));
--color-card: hsl(var(--card));
--color-card-foreground: hsl(var(--card-foreground));
--color-card-border: hsl(var(--card-border));
--color-popover: hsl(var(--popover));
--color-popover-foreground: hsl(var(--popover-foreground));
--color-popover-border: hsl(var(--popover-border));
--color-primary: hsl(var(--primary));
--color-primary-foreground: hsl(var(--primary-foreground));
--color-primary-border: var(--primary-border);
--color-secondary: hsl(var(--secondary));
--color-secondary-foreground: hsl(var(--secondary-foreground));
--color-secondary-border: var(--secondary-border);
--color-muted: hsl(var(--muted));
--color-muted-foreground: hsl(var(--muted-foreground));
--color-muted-border: var(--muted-border);
--color-accent: hsl(var(--accent));
--color-accent-foreground: hsl(var(--accent-foreground));
--color-accent-border: var(--accent-border);
--color-destructive: hsl(var(--destructive));
--color-destructive-foreground: hsl(var(--destructive-foreground));
--color-destructive-border: var(--destructive-border);
--font-sans: var(--app-font-sans);
--font-serif: var(--app-font-serif);
--font-mono: var(--app-font-mono);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
}
:root {
--button-outline: rgba(255,255,255, .10);
--badge-outline: rgba(255,255,255, .05);
--opaque-button-border-intensity: 9;
--elevate-1: rgba(255,255,255, .04);
--elevate-2: rgba(255,255,255, .09);
--background: 0 0% 5%;
--foreground: 0 0% 92%;
--border: 0 0% 14%;
--card: 0 0% 8%;
--card-foreground: 0 0% 90%;
--card-border: 0 0% 14%;
--sidebar: 0 0% 6%;
--sidebar-foreground: 0 0% 88%;
--sidebar-border: 0 0% 13%;
--sidebar-primary: 0 0% 90%;
--sidebar-primary-foreground: 0 0% 5%;
--sidebar-accent: 0 0% 12%;
--sidebar-accent-foreground: 0 0% 88%;
--sidebar-ring: 0 0% 40%;
--popover: 0 0% 8%;
--popover-foreground: 0 0% 90%;
--popover-border: 0 0% 14%;
--primary: 0 0% 90%;
--primary-foreground: 0 0% 5%;
--secondary: 0 0% 12%;
--secondary-foreground: 0 0% 88%;
--muted: 0 0% 11%;
--muted-foreground: 0 0% 52%;
--accent: 0 0% 14%;
--accent-foreground: 0 0% 88%;
--destructive: 0 62% 45%;
--destructive-foreground: 0 0% 95%;
--input: 0 0% 18%;
--ring: 0 0% 40%;
--app-font-sans: 'Space Grotesk', sans-serif;
--app-font-serif: Georgia, serif;
--app-font-mono: 'Space Mono', monospace;
--radius: 0.25rem;
--primary-border: hsl(var(--primary));
--primary-border: hsl(from hsl(var(--primary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);
--secondary-border: hsl(var(--secondary));
--secondary-border: hsl(from hsl(var(--secondary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);
--muted-border: hsl(var(--muted));
--muted-border: hsl(from hsl(var(--muted)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);
--accent-border: hsl(var(--accent));
--accent-border: hsl(from hsl(var(--accent)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);
--destructive-border: hsl(var(--destructive));
--destructive-border: hsl(from hsl(var(--destructive)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);
--sidebar-primary-border: hsl(var(--sidebar-primary));
--sidebar-primary-border: hsl(from hsl(var(--sidebar-primary)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);
--sidebar-accent-border: hsl(var(--sidebar-accent));
--sidebar-accent-border: hsl(from hsl(var(--sidebar-accent)) h s calc(l + var(--opaque-button-border-intensity)) / alpha);
}
@layer base {
* {
@apply border-border;
}
body {
@apply font-sans antialiased bg-background text-foreground;
}
}
/* ─── Unstable motion layers (toggled via html.unstable-anim-*) ─────────────── */
@keyframes unstable-float {
0%,
100% {
transform: translateY(0) scale(1);
opacity: 0.35;
}
50% {
transform: translateY(-12px) scale(1.02);
opacity: 0.55;
}
}
@keyframes unstable-shimmer {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
@keyframes unstable-glow-pulse {
0%,
100% {
box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.04);
}
50% {
box-shadow: 0 0 28px 2px rgba(255, 255, 255, 0.07);
}
}
@keyframes unstable-border-flow {
0% {
background-position: 0% 50%;
}
100% {
background-position: 200% 50%;
}
}
@keyframes unstable-tab-glow {
0%,
100% {
border-color: rgba(255, 255, 255, 0.06);
}
50% {
border-color: rgba(255, 255, 255, 0.14);
}
}
@keyframes unstable-drift {
0% {
transform: translate(0, 0);
}
33% {
transform: translate(2%, -1%);
}
66% {
transform: translate(-1%, 1.5%);
}
100% {
transform: translate(0, 0);
}
}
@keyframes unstable-fade-up {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes unstable-scale-in {
from {
opacity: 0;
transform: scale(0.96);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes unstable-slide-down {
from {
opacity: 0;
transform: translateY(-8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes unstable-slide-up {
from {
opacity: 0;
transform: translateY(12px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes unstable-fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes unstable-opacity-breathe {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0.72;
}
}
@keyframes unstable-soft-blink {
0%,
100% {
opacity: 0.35;
}
50% {
opacity: 0.85;
}
}
@keyframes unstable-rotate-glow {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes unstable-iframe-ring {
0%,
100% {
box-shadow:
inset 0 0 0 1px rgba(255, 255, 255, 0.04),
0 0 0 0 rgba(120, 160, 255, 0);
}
50% {
box-shadow:
inset 0 0 0 1px rgba(255, 255, 255, 0.09),
0 0 24px -6px rgba(140, 180, 255, 0.12);
}
}
@keyframes unstable-link-glow {
0%,
100% {
text-shadow: 0 0 0 transparent;
}
50% {
text-shadow: 0 0 12px rgba(255, 255, 255, 0.12);
}
}
@keyframes unstable-tab-inactive-pulse {
0%,
100% {
opacity: 0.38;
}
50% {
opacity: 0.55;
}
}
@keyframes unstable-reload-spin {
to {
transform: rotate(360deg);
}
}
@keyframes unstable-games-skeleton-shimmer {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}
@keyframes unstable-games-skeleton-pulse {
0%,
100% {
opacity: 0.55;
}
50% {
opacity: 0.95;
}
}
html.unstable-anim-full .unstable-ambient-blobs,
html.unstable-anim-subtle .unstable-ambient-blobs {
position: absolute;
inset: -20%;
pointer-events: none;
background:
radial-gradient(ellipse 42% 38% at 22% 28%, rgba(120, 140, 255, 0.09), transparent 55%),
radial-gradient(ellipse 50% 40% at 78% 72%, rgba(255, 120, 180, 0.06), transparent 50%),
radial-gradient(ellipse 35% 30% at 55% 18%, rgba(80, 220, 200, 0.05), transparent 45%);
animation: unstable-drift 22s ease-in-out infinite;
z-index: 0;
}
html.unstable-anim-subtle .unstable-ambient-blobs {
animation-duration: 48s;
opacity: 0.65;
}
html.unstable-anim-full .unstable-ambient-grid {
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
background-size: 56px 56px;
mask-image: radial-gradient(ellipse 70% 55% at 50% 45%, black 10%, transparent 72%);
pointer-events: none;
animation: unstable-drift 38s ease-in-out infinite reverse;
z-index: 0;
}
html.unstable-anim-subtle .unstable-ambient-grid {
opacity: 0.55;
animation-duration: 55s;
}
html.unstable-chrome-fx .unstable-url-bar-wrap {
position: relative;
border-radius: 12px;
background: linear-gradient(90deg, #141414, #1a1a1a, #141414);
background-size: 200% 100%;
animation: unstable-border-flow 10s linear infinite;
padding: 1px;
}
html.unstable-chrome-fx .unstable-url-bar-wrap > form {
border-radius: 11px;
overflow: hidden;
}
html.unstable-chrome-fx .unstable-toolbar-row {
animation: unstable-glow-pulse 5s ease-in-out infinite;
}
html.unstable-anim-full .unstable-tab-active {
animation: unstable-tab-glow 4s ease-in-out infinite;
}
html.unstable-anim-full .unstable-shortcut-btn {
transition:
transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1),
background 0.2s ease;
}
html.unstable-anim-full .unstable-shortcut-btn:hover {
transform: translateY(-3px) scale(1.03);
}
html.unstable-anim-subtle .unstable-shortcut-btn {
transition: background 0.2s ease;
}
html.unstable-anim-full .unstable-settings-section {
animation: unstable-fade-up 0.55s ease both;
}
html.unstable-anim-full .unstable-settings-section:nth-child(1) {
animation-delay: 0.05s;
}
html.unstable-anim-full .unstable-settings-section:nth-child(2) {
animation-delay: 0.1s;
}
html.unstable-anim-full .unstable-settings-section:nth-child(3) {
animation-delay: 0.15s;
}
html.unstable-anim-full .unstable-settings-section:nth-child(4) {
animation-delay: 0.2s;
}
html.unstable-anim-full .unstable-settings-section:nth-child(5) {
animation-delay: 0.25s;
}
html.unstable-anim-full .unstable-settings-section:nth-child(6) {
animation-delay: 0.3s;
}
html.unstable-anim-full .unstable-settings-section:nth-child(7) {
animation-delay: 0.35s;
}
html.unstable-anim-full .unstable-settings-section:nth-child(8) {
animation-delay: 0.4s;
}
html.unstable-anim-full .unstable-game-card {
animation: unstable-scale-in 0.45s ease both;
transition:
transform 0.2s ease,
border-color 0.2s ease;
}
html.unstable-anim-full .unstable-game-card:hover {
transform: translateY(-4px);
}
html.unstable-anim-subtle .unstable-game-card {
transition: border-color 0.2s ease;
}
html.unstable-anim-minimal .unstable-ambient-blobs,
html.unstable-anim-minimal .unstable-ambient-grid {
display: none;
}
html.unstable-anim-minimal .unstable-shortcut-btn:hover {
transform: none;
}
html.unstable-anim-minimal .unstable-game-card:hover {
transform: none;
}
html.unstable-anim-full .unstable-login-badge {
animation: unstable-float 5s ease-in-out infinite;
}
/* Login stack */
html.unstable-anim-full .unstable-login-page .unstable-login-card {
animation: unstable-scale-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}
html.unstable-anim-full .unstable-login-form > * {
animation: unstable-fade-up 0.5s ease both;
}
html.unstable-anim-full .unstable-login-form > *:nth-child(1) {
animation-delay: 0.08s;
}
html.unstable-anim-full .unstable-login-form > *:nth-child(2) {
animation-delay: 0.16s;
}
html.unstable-anim-full .unstable-login-form > *:nth-child(3) {
animation-delay: 0.24s;
}
html.unstable-anim-full .unstable-login-submit:not(:disabled) {
transition:
transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
background 0.15s ease,
box-shadow 0.3s ease;
}
html.unstable-anim-full .unstable-login-submit:not(:disabled):hover {
transform: translateY(-2px) scale(1.02);
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}
html.unstable-anim-subtle .unstable-login-page .unstable-login-card {
animation: unstable-fade-in 0.45s ease both;
}
/* Tab strip */
html.unstable-anim-full .unstable-tab-strip {
animation: unstable-slide-down 0.45s ease both;
}
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-pill {
animation: unstable-fade-up 0.35s ease both;
}
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-pill:nth-child(1) {
animation-delay: 0.02s;
}
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-pill:nth-child(2) {
animation-delay: 0.05s;
}
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-pill:nth-child(3) {
animation-delay: 0.08s;
}
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-pill:nth-child(4) {
animation-delay: 0.11s;
}
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-pill:nth-child(5) {
animation-delay: 0.14s;
}
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-pill:nth-child(6) {
animation-delay: 0.17s;
}
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-scroll-btn {
animation: unstable-fade-in 0.4s ease 0.12s both;
}
html.unstable-anim-full .unstable-tab-pill:not(.unstable-tab-active) .unstable-tab-label {
animation: unstable-tab-inactive-pulse 5s ease-in-out infinite;
}
/* Toolbar icon buttons */
html.unstable-anim-full .unstable-toolbar-row > button:not(:disabled) {
transition: transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
}
html.unstable-anim-full .unstable-toolbar-row > button:not(:disabled):active {
transform: scale(0.92);
}
html.unstable-anim-full .unstable-toolbar-row > button:not(:disabled):hover {
transform: scale(1.12);
}
/* Reload: spin glyph while hovered (inner span avoids fighting button scale) */
.unstable-toolbar-reload-icon {
display: inline-block;
line-height: 1;
transform-origin: 50% 55%;
}
html:not(.unstable-anim-minimal) .unstable-toolbar-reload:hover:not(:disabled) .unstable-toolbar-reload-icon {
animation: unstable-reload-spin 0.72s linear infinite;
}
html.unstable-anim-minimal .unstable-toolbar-reload:hover:not(:disabled) .unstable-toolbar-reload-icon {
animation: unstable-reload-spin 1.1s linear infinite;
}
/* New tab */
html.unstable-anim-full .unstable-newtab-badge {
animation: unstable-fade-up 0.55s ease both;
}
html.unstable-anim-full .unstable-newtab-search {
animation: unstable-fade-up 0.55s ease 0.08s both;
}
html.unstable-anim-full .unstable-newtab-go {
transition:
transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1),
filter 0.2s ease;
}
html.unstable-anim-full .unstable-newtab-go:hover {
transform: scale(1.04);
filter: brightness(1.05);
}
html.unstable-anim-full .unstable-shortcut-row {
animation: unstable-fade-up 0.55s ease 0.14s both;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap {
animation: unstable-scale-in 0.4s ease both;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(1) {
animation-delay: 0.18s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(2) {
animation-delay: 0.2s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(3) {
animation-delay: 0.22s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(4) {
animation-delay: 0.24s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(5) {
animation-delay: 0.26s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(6) {
animation-delay: 0.28s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(7) {
animation-delay: 0.3s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(8) {
animation-delay: 0.32s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(9) {
animation-delay: 0.34s;
}
html.unstable-anim-full .unstable-shortcut-row .sc-wrap:nth-child(10) {
animation-delay: 0.36s;
}
html.unstable-anim-full .unstable-newtab-footer {
animation: unstable-fade-up 0.55s ease 0.22s both;
}
html.unstable-anim-full .unstable-footer-link {
transition:
color 0.15s ease,
transform 0.2s ease;
}
html.unstable-anim-full .unstable-footer-link:hover {
transform: translateY(-2px);
animation: unstable-link-glow 2.2s ease-in-out infinite;
}
html.unstable-anim-subtle .unstable-newtab-badge,
html.unstable-anim-subtle .unstable-newtab-search,
html.unstable-anim-subtle .unstable-shortcut-row,
html.unstable-anim-subtle .unstable-newtab-footer {
animation: unstable-fade-in 0.5s ease both;
}
/* Credits / legal */
html.unstable-anim-full .unstable-credits-page > p:first-child {
animation: unstable-fade-up 0.5s ease both;
}
html.unstable-anim-full .unstable-credit-row {
animation: unstable-fade-up 0.45s ease both;
}
html.unstable-anim-full .unstable-credit-row:nth-child(1) {
animation-delay: 0.06s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(2) {
animation-delay: 0.1s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(3) {
animation-delay: 0.14s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(4) {
animation-delay: 0.18s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(5) {
animation-delay: 0.22s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(6) {
animation-delay: 0.26s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(7) {
animation-delay: 0.3s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(8) {
animation-delay: 0.34s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(9) {
animation-delay: 0.38s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(10) {
animation-delay: 0.42s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(11) {
animation-delay: 0.46s;
}
html.unstable-anim-full .unstable-credit-row:nth-child(12) {
animation-delay: 0.5s;
}
html.unstable-anim-full .unstable-legal-page > p:first-child {
animation: unstable-slide-down 0.5s ease both;
}
html.unstable-anim-full .unstable-legal-block {
animation: unstable-fade-up 0.48s ease both;
}
html.unstable-anim-full .unstable-legal-block:nth-of-type(1) {
animation-delay: 0.05s;
}
html.unstable-anim-full .unstable-legal-block:nth-of-type(2) {
animation-delay: 0.1s;
}
html.unstable-anim-full .unstable-legal-block:nth-of-type(3) {
animation-delay: 0.15s;
}
html.unstable-anim-full .unstable-legal-block:nth-of-type(4) {
animation-delay: 0.2s;
}
html.unstable-anim-full .unstable-legal-block:nth-of-type(5) {
animation-delay: 0.25s;
}
html.unstable-anim-full .unstable-legal-block:nth-of-type(6) {
animation-delay: 0.3s;
}
html.unstable-anim-full .unstable-legal-block:nth-of-type(7) {
animation-delay: 0.35s;
}
/* Games */
html.unstable-anim-full .unstable-games-header {
animation: unstable-slide-down 0.45s ease both;
}
html.unstable-anim-full .unstable-games-search {
animation: unstable-fade-up 0.45s ease 0.06s both;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(1) {
animation-delay: 0.04s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(2) {
animation-delay: 0.07s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(3) {
animation-delay: 0.1s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(4) {
animation-delay: 0.13s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(5) {
animation-delay: 0.16s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(6) {
animation-delay: 0.19s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(7) {
animation-delay: 0.22s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(8) {
animation-delay: 0.25s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(9) {
animation-delay: 0.28s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(10) {
animation-delay: 0.31s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(11) {
animation-delay: 0.34s;
}
html.unstable-anim-full .unstable-games-grid .unstable-game-card:nth-child(12) {
animation-delay: 0.37s;
}
/* Games list loading skeleton */
.unstable-games-skeleton-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 0.8rem;
}
.unstable-games-skeleton-card {
background: #111;
border: 1px solid #1c1c1c;
border-radius: 8px;
padding: 0.55rem;
animation: unstable-games-skeleton-pulse 1.35s ease-in-out infinite;
}
.unstable-games-skeleton-card:nth-child(odd) {
animation-delay: 0.12s;
}
.unstable-games-skeleton-cover {
width: 100%;
aspect-ratio: 16 / 10;
border-radius: 6px;
margin-bottom: 0.55rem;
background: linear-gradient(
105deg,
#141414 0%,
#1e1e1e 22%,
#2a2a2a 40%,
#1e1e1e 58%,
#141414 100%
);
background-size: 220% 100%;
animation: unstable-games-skeleton-shimmer 1.4s ease-in-out infinite;
}
.unstable-games-skeleton-line {
height: 0.55rem;
border-radius: 4px;
background: linear-gradient(
105deg,
#161616 0%,
#222 35%,
#2c2c2c 50%,
#222 65%,
#161616 100%
);
background-size: 220% 100%;
animation: unstable-games-skeleton-shimmer 1.4s ease-in-out infinite;
}
.unstable-games-skeleton-line--title {
width: 88%;
margin-bottom: 0.35rem;
}
.unstable-games-skeleton-line--meta {
width: 52%;
animation-delay: 0.15s;
}
html.unstable-anim-subtle .unstable-games-skeleton-card {
animation-duration: 1.8s;
}
html.unstable-anim-subtle .unstable-games-skeleton-cover,
html.unstable-anim-subtle .unstable-games-skeleton-line {
animation-duration: 1.9s;
}
html.unstable-anim-minimal .unstable-games-skeleton-card {
animation: none;
opacity: 0.75;
}
html.unstable-anim-minimal .unstable-games-skeleton-cover,
html.unstable-anim-minimal .unstable-games-skeleton-line {
animation: none;
background: #181818;
}
/* Settings page chrome */
html.unstable-anim-full .unstable-settings-page > p:first-child {
animation: unstable-slide-down 0.5s ease both;
}
/* Proxy iframe shell while loading */
html.unstable-anim-full .unstable-iframe-shell.unstable-iframe-loading {
animation: unstable-iframe-ring 1.8s ease-in-out infinite;
}
html.unstable-anim-full .unstable-iframe-shell.unstable-iframe-loading::after {
content: "";
position: absolute;
inset: -2px;
border-radius: 2px;
background: conic-gradient(from 0deg, transparent 0%, rgba(255, 255, 255, 0.06) 40%, transparent 65%);
animation: unstable-rotate-glow 4s linear infinite;
pointer-events: none;
z-index: 2;
opacity: 0.5;
}
html.unstable-anim-subtle .unstable-iframe-shell.unstable-iframe-loading {
animation: unstable-iframe-ring 2.8s ease-in-out infinite;
}
/* Status bar */
html.unstable-anim-full .unstable-status-bar {
animation: unstable-slide-up 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}
html.unstable-anim-full .unstable-status-label {
animation: unstable-opacity-breathe 3.5s ease-in-out infinite;
}
html.unstable-anim-full .unstable-status-bar button {
transition: transform 0.18s ease;
}
html.unstable-anim-full .unstable-status-bar button:hover {
transform: scale(1.15);
}
/* Fullscreen exit */
html.unstable-anim-full .unstable-fs-exit {
animation: unstable-fade-in 0.4s ease 0.15s both;
transition:
transform 0.2s ease,
box-shadow 0.25s ease,
border-color 0.2s ease;
}
html.unstable-anim-full .unstable-fs-exit:hover {
transform: scale(1.04);
box-shadow: 0 0 20px rgba(255, 255, 255, 0.08);
}
/* Tab loading dot */
html:not(.unstable-anim-minimal) .unstable-tab-loading-dot {
animation: unstable-soft-blink 1.05s ease-in-out infinite;
}
html.unstable-anim-minimal .unstable-tab-loading-dot {
animation: unstable-soft-blink 1.35s ease-in-out infinite;
}
/* Cloak / search preset buttons in settings — micro lift */
html.unstable-anim-full .unstable-settings-section button {
transition:
transform 0.18s ease,
border-color 0.15s ease,
background 0.15s ease;
}
html.unstable-anim-full .unstable-settings-section button:hover {
transform: translateY(-1px);
}
html.unstable-anim-minimal .unstable-toolbar-row > button:not(:disabled):hover,
html.unstable-anim-minimal .unstable-login-submit:not(:disabled):hover,
html.unstable-anim-minimal .unstable-footer-link:hover,
html.unstable-anim-minimal .unstable-status-bar button:hover,
html.unstable-anim-minimal .unstable-fs-exit:hover {
transform: none;
}
html.unstable-anim-minimal .unstable-tab-strip,
html.unstable-anim-minimal .unstable-tab-scroll > .unstable-tab-pill,
html.unstable-anim-minimal .unstable-tab-scroll > .unstable-tab-scroll-btn,
html.unstable-anim-minimal .unstable-tab-pill:not(.unstable-tab-active) .unstable-tab-label,
html.unstable-anim-minimal .unstable-newtab-badge,
html.unstable-anim-minimal .unstable-newtab-search,
html.unstable-anim-minimal .unstable-shortcut-row,
html.unstable-anim-minimal .unstable-shortcut-row .sc-wrap,
html.unstable-anim-minimal .unstable-newtab-footer,
html.unstable-anim-minimal .unstable-login-page .unstable-login-card,
html.unstable-anim-minimal .unstable-login-form > *,
html.unstable-anim-minimal .unstable-credit-row,
html.unstable-anim-minimal .unstable-legal-block,
html.unstable-anim-minimal .unstable-games-header,
html.unstable-anim-minimal .unstable-games-search,
html.unstable-anim-minimal .unstable-settings-page > p:first-child,
html.unstable-anim-minimal .unstable-iframe-shell.unstable-iframe-loading,
html.unstable-anim-minimal .unstable-iframe-shell.unstable-iframe-loading::after,
html.unstable-anim-minimal .unstable-status-bar,
html.unstable-anim-minimal .unstable-status-label {
animation: none !important;
}
html.unstable-anim-minimal .unstable-footer-link:hover {
animation: none !important;
}
@media (prefers-reduced-motion: reduce) {
html.unstable-anim-full .unstable-ambient-blobs,
html.unstable-anim-full .unstable-ambient-grid,
html.unstable-anim-subtle .unstable-ambient-blobs,
html.unstable-anim-subtle .unstable-ambient-grid,
html.unstable-chrome-fx .unstable-url-bar-wrap,
html.unstable-chrome-fx .unstable-toolbar-row,
html.unstable-anim-full .unstable-tab-active,
html.unstable-anim-full .unstable-login-badge,
html.unstable-anim-full .unstable-settings-section,
html.unstable-anim-full .unstable-game-card,
html.unstable-anim-full .unstable-login-page .unstable-login-card,
html.unstable-anim-full .unstable-login-form > *,
html.unstable-anim-full .unstable-tab-strip,
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-pill,
html.unstable-anim-full .unstable-tab-scroll > .unstable-tab-scroll-btn,
html.unstable-anim-full .unstable-tab-pill:not(.unstable-tab-active) .unstable-tab-label,
html.unstable-anim-full .unstable-newtab-badge,
html.unstable-anim-full .unstable-newtab-search,
html.unstable-anim-full .unstable-shortcut-row,
html.unstable-anim-full .unstable-shortcut-row .sc-wrap,
html.unstable-anim-full .unstable-newtab-footer,
html.unstable-anim-full .unstable-footer-link,
html.unstable-anim-full .unstable-credits-page > p:first-child,
html.unstable-anim-full .unstable-credit-row,
html.unstable-anim-full .unstable-legal-page > p:first-child,
html.unstable-anim-full .unstable-legal-block,
html.unstable-anim-full .unstable-games-header,
html.unstable-anim-full .unstable-games-search,
html.unstable-anim-full .unstable-settings-page > p:first-child,
html.unstable-anim-full .unstable-iframe-shell.unstable-iframe-loading,
html.unstable-anim-full .unstable-iframe-shell.unstable-iframe-loading::after,
html.unstable-anim-full .unstable-status-bar,
html.unstable-anim-full .unstable-status-label,
html.unstable-anim-full .unstable-fs-exit,
html.unstable-anim-full .unstable-tab-loading-dot,
html:not(.unstable-anim-minimal) .unstable-toolbar-reload:hover:not(:disabled) .unstable-toolbar-reload-icon,
html.unstable-anim-minimal .unstable-toolbar-reload:hover:not(:disabled) .unstable-toolbar-reload-icon,
.unstable-games-skeleton-card,
.unstable-games-skeleton-cover,
.unstable-games-skeleton-line,
html.unstable-anim-subtle .unstable-tab-loading-dot,
html.unstable-anim-minimal .unstable-tab-loading-dot,
html.unstable-anim-subtle .unstable-newtab-badge,
html.unstable-anim-subtle .unstable-newtab-search,
html.unstable-anim-subtle .unstable-shortcut-row,
html.unstable-anim-subtle .unstable-newtab-footer {
animation: none !important;
}
html.unstable-anim-full .unstable-shortcut-btn:hover,
html.unstable-anim-full .unstable-game-card:hover,
html.unstable-anim-full .unstable-footer-link:hover {
transform: none !important;
}
}