Files
Genarrative/src/index.css
kdletters d06107f2c6
Some checks failed
CI / verify (push) Has been cancelled
落地方洞挑战图片与运行态交互
2026-05-06 12:52:47 +08:00

4497 lines
105 KiB
CSS

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Noto+Serif+SC:wght@400;700&display=swap');
@import 'tailwindcss';
@source not "../dist";
@source not "../dist_check";
@source not "../dist_check_final";
@source not "../dist_check_monster_position";
@font-face {
font-family: 'Fusion Pixel';
src: url('/fusion-pixel.ttf') format('truetype');
font-style: normal;
font-weight: 400;
font-display: swap;
}
@theme {
--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
--font-serif: 'Noto Serif SC', 'Georgia', serif;
}
:root {
--ui-scale: clamp(0.78, 0.72 + 0.45vw, 1.06);
--platform-bottom-nav-height: 3.5rem;
--platform-bottom-dock-outer-height: calc(
var(--platform-bottom-nav-height) + env(safe-area-inset-bottom, 0px) +
1.15rem
);
--platform-bottom-nav-padding: 0.25rem;
--platform-bottom-nav-gap: 0.25rem;
--platform-bottom-nav-radius: 1.2rem;
--platform-bottom-nav-button-radius: 1rem;
--platform-bottom-nav-icon-size: 1.05rem;
--platform-bottom-nav-icon-shell-size: 1.55rem;
--platform-bottom-nav-label-size: 11px;
--platform-bottom-nav-label-tracking: 0.18em;
--platform-bottom-nav-content-gap: 0.22rem;
--platform-bottom-nav-active-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08),
0 8px 18px rgba(255, 91, 132, 0.1);
}
html,
body,
#root {
width: 100%;
height: 100%;
min-width: 0;
overflow-x: hidden;
}
body {
margin: 0;
background-color: #0a0a0a;
color: #f4f4f5;
-webkit-font-smoothing: antialiased;
}
.platform-viewport-shell {
height: 100vh;
max-height: 100vh;
min-height: 100vh;
}
@supports (height: 100dvh) {
.platform-viewport-shell {
height: 100dvh;
max-height: 100dvh;
min-height: 100dvh;
}
}
@keyframes character-animator-portrait-death-fall {
0% {
transform: translateY(0) rotate(0deg) scaleX(1) scale(1);
}
16% {
transform: translateY(1%) rotate(-6deg) scaleX(1) scale(1);
}
34% {
transform: translateY(4%) rotate(-18deg) scaleX(1) scale(0.98);
}
62% {
transform: translateY(12%) rotate(-64deg) scaleX(-1) scale(0.9);
}
82% {
transform: translateY(17%) rotate(-96deg) scaleX(-1) scale(0.81);
}
100% {
transform: translateY(16%) rotate(-90deg) scaleX(-1) scale(0.82);
}
}
@keyframes puzzle-clear-flash-sweep {
0% {
transform: translate3d(-135%, -135%, 0) rotate(18deg);
opacity: 0;
}
18% {
opacity: 0.18;
}
45% {
opacity: 0.92;
}
78% {
opacity: 0.22;
}
100% {
transform: translate3d(135%, 135%, 0) rotate(18deg);
opacity: 0;
}
}
.puzzle-clear-flash-overlay {
background: radial-gradient(
circle at 22% 24%,
rgba(255, 250, 214, 0.22),
transparent 28%
),
radial-gradient(
circle at 76% 74%,
rgba(255, 214, 150, 0.16),
transparent 30%
),
linear-gradient(
180deg,
rgba(255, 251, 235, 0.08),
rgba(255, 251, 235, 0.02)
);
}
.puzzle-clear-flash-beam {
position: absolute;
inset: -48%;
background: linear-gradient(
90deg,
rgba(255, 255, 255, 0) 0%,
rgba(255, 248, 214, 0.18) 38%,
rgba(255, 255, 255, 0.96) 50%,
rgba(255, 235, 166, 0.28) 62%,
rgba(255, 255, 255, 0) 100%
);
box-shadow:
0 0 36px rgba(255, 250, 214, 0.28),
0 0 110px rgba(255, 233, 163, 0.12);
mix-blend-mode: screen;
animation: puzzle-clear-flash-sweep 0.9s ease-out forwards;
}
@keyframes puzzle-merge-center-flash {
0% {
transform: translate(-50%, -50%) scale(0.34) rotate(0deg);
opacity: 0;
filter: blur(0);
}
24% {
opacity: 1;
}
74% {
opacity: 0.42;
}
100% {
transform: translate(-50%, -50%) scale(1.28) rotate(32deg);
opacity: 0;
filter: blur(1px);
}
}
.puzzle-merge-center-flash {
position: absolute;
left: 0;
top: 0;
width: 4.5rem;
height: 4.5rem;
transform: translate(-50%, -50%);
border-radius: 9999px;
background: linear-gradient(
90deg,
transparent 47%,
rgba(255, 255, 255, 0.95) 50%,
transparent 53%
),
linear-gradient(
0deg,
transparent 47%,
rgba(255, 246, 191, 0.9) 50%,
transparent 53%
),
radial-gradient(
circle,
rgba(255, 255, 255, 0.95) 0 10%,
rgba(255, 236, 157, 0.46) 12% 38%,
transparent 62%
);
box-shadow:
0 0 20px rgba(255, 255, 255, 0.58),
0 0 46px rgba(251, 191, 36, 0.32);
mix-blend-mode: screen;
animation: puzzle-merge-center-flash 0.72s ease-out forwards;
}
@keyframes puzzle-freeze-wash {
0% {
opacity: 0;
clip-path: circle(0% at 50% 50%);
}
42% {
opacity: 1;
}
100% {
opacity: 0.72;
clip-path: circle(76% at 50% 50%);
}
}
.puzzle-freeze-effect-layer {
background: radial-gradient(
circle at 50% 50%,
rgba(240, 253, 250, 0.2),
transparent 36%
),
linear-gradient(135deg, rgba(165, 243, 252, 0.22), rgba(37, 99, 235, 0.1));
animation: puzzle-freeze-wash 0.85s ease-out both;
}
.fusion-pixel-app,
.fusion-pixel-app * {
font-family: 'Fusion Pixel', 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}
.selection-hero-brand {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.75rem;
}
.selection-hero-brand--left {
align-items: flex-start;
text-align: left;
}
.selection-hero-brand__title {
font-family: 'Noto Serif SC', 'Georgia', serif !important;
font-size: clamp(3rem, 10vw, 4.6rem);
font-weight: 700;
line-height: 0.95;
letter-spacing: 0.22em;
color: #fffdf7;
text-shadow:
0 2px 0 rgba(0, 0, 0, 0.68),
0 10px 28px rgba(0, 0, 0, 0.48),
0 0 22px rgba(129, 140, 248, 0.2);
}
.selection-hero-brand__subtitle {
display: inline-flex;
align-items: center;
justify-content: center;
gap: clamp(0.55rem, 2vw, 0.95rem);
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
font-size: clamp(0.72rem, 2vw, 0.92rem);
font-weight: 600;
letter-spacing: 0.42em;
text-transform: uppercase;
color: rgba(228, 228, 231, 0.88);
text-shadow: 0 1px 10px rgba(0, 0, 0, 0.42);
}
.selection-hero-brand--left .selection-hero-brand__subtitle {
justify-content: flex-start;
}
.selection-hero-brand__subtitle::before,
.selection-hero-brand__subtitle::after {
content: '';
width: clamp(1.75rem, 8vw, 3.2rem);
height: 1px;
background: linear-gradient(
90deg,
transparent,
rgba(96, 165, 250, 0.72),
transparent
);
opacity: 0.82;
}
.fusion-pixel-app .story-top-tabs {
display: none !important;
}
.platform-ui-shell,
.platform-ui-shell * {
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}
.platform-theme,
.platform-theme * {
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif !important;
}
.platform-theme {
color: var(--platform-text-strong);
}
.platform-theme--light {
color-scheme: light;
--platform-body-fill: radial-gradient(
circle at top left,
rgba(255, 196, 214, 0.14),
transparent 24%
),
radial-gradient(
circle at 88% 4%,
rgba(255, 222, 196, 0.12),
transparent 20%
),
radial-gradient(
circle at bottom,
rgba(255, 214, 225, 0.08),
transparent 26%
),
linear-gradient(180deg, #fffdfd 0%, #fffefe 50%, #fff8fa 100%);
--platform-panel-shadow: 0 22px 60px rgba(215, 87, 134, 0.12),
0 8px 20px rgba(255, 255, 255, 0.82);
--platform-panel-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.985),
rgba(255, 250, 251, 0.96)
);
--platform-panel-fill-soft: linear-gradient(
180deg,
rgba(255, 255, 255, 0.95),
rgba(255, 248, 250, 0.88)
);
--platform-hero-fill: linear-gradient(
135deg,
rgba(255, 139, 162, 0.9),
rgba(255, 184, 153, 0.88)
);
--platform-hero-glow-a: rgba(255, 255, 255, 0.22);
--platform-hero-glow-b: rgba(255, 228, 211, 0.2);
--platform-hero-overlay-strong: linear-gradient(
135deg,
rgba(255, 146, 170, 0.78),
rgba(255, 201, 171, 0.72)
);
--platform-hero-overlay-soft: linear-gradient(
180deg,
rgba(255, 255, 255, 0.1),
rgba(255, 246, 249, 0.26)
);
--platform-surface-border: rgba(239, 221, 228, 0.9);
--platform-surface-hover-border: rgba(255, 154, 188, 0.58);
--platform-shell-glow-1: rgba(255, 255, 255, 0.2);
--platform-shell-glow-2: rgba(255, 220, 229, 0.18);
--platform-shell-glow-3: rgba(255, 221, 194, 0.14);
--platform-surface-glow-a: rgba(255, 213, 225, 0.14);
--platform-surface-glow-b: rgba(255, 224, 201, 0.12);
--platform-text-strong: #28151d;
--platform-text-base: #5c4650;
--platform-text-soft: #886f79;
--platform-brand-logo-title: #3b1a24;
--platform-brand-logo-subtitle: #d93570;
--platform-brand-logo-shadow: #8f5870;
--platform-line-soft: rgba(236, 214, 221, 0.72);
--platform-subpanel-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.94),
rgba(255, 250, 251, 0.9)
);
--platform-subpanel-border: rgba(233, 217, 223, 0.82);
--platform-warm-border: rgba(255, 140, 116, 0.28);
--platform-warm-bg: rgba(255, 140, 116, 0.14);
--platform-warm-text: #cf4f4e;
--platform-cool-border: rgba(255, 83, 142, 0.24);
--platform-cool-bg: rgba(255, 83, 142, 0.14);
--platform-cool-text: #d93570;
--platform-neutral-border: rgba(232, 191, 205, 0.44);
--platform-neutral-bg: rgba(255, 255, 255, 0.68);
--platform-neutral-text: #715662;
--platform-button-primary-border: rgba(255, 101, 147, 0.3);
--platform-button-primary-fill: linear-gradient(135deg, #ff4f8b, #ff8a73);
--platform-button-primary-text: #fff7fb;
--platform-button-secondary-fill: rgba(255, 255, 255, 0.72);
--platform-button-secondary-text: #4b3340;
--platform-button-ghost-fill: rgba(255, 255, 255, 0.52);
--platform-button-ghost-text: #6e5460;
--platform-button-danger-border: rgba(251, 113, 133, 0.22);
--platform-button-danger-fill: rgba(255, 228, 233, 0.94);
--platform-button-danger-text: #c2415d;
--platform-success-border: rgba(52, 211, 153, 0.24);
--platform-success-bg: rgba(236, 253, 245, 0.92);
--platform-success-text: #0f8a61;
--platform-icon-fill: rgba(255, 255, 255, 0.62);
--platform-icon-border: rgba(232, 191, 205, 0.46);
--platform-icon-text: #7a5d67;
--platform-nav-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.96),
rgba(255, 249, 250, 0.92)
);
--platform-nav-active-fill: linear-gradient(
180deg,
rgba(255, 91, 132, 0.16),
rgba(255, 151, 116, 0.16)
);
--platform-nav-active-border: rgba(255, 126, 154, 0.32);
--platform-nav-active-shadow: 0 10px 22px rgba(255, 91, 132, 0.12);
--platform-modal-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.96),
rgba(255, 245, 248, 0.95)
);
--platform-modal-border: rgba(255, 255, 255, 0.52);
--platform-desktop-shell-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.99),
rgba(255, 251, 252, 0.985)
);
--platform-desktop-shell-border: rgba(240, 228, 232, 0.94);
--platform-desktop-shell-inner-border: rgba(241, 230, 234, 0.92);
--platform-desktop-topbar-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.95),
rgba(255, 251, 252, 0.92)
);
--platform-desktop-panel-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.95),
rgba(255, 250, 251, 0.91)
);
--platform-desktop-panel-border: rgba(238, 223, 228, 0.88);
--platform-desktop-hover-shadow: 0 16px 28px rgba(222, 82, 124, 0.12);
--platform-overlay-fill: linear-gradient(
180deg,
rgba(255, 184, 204, 0.14),
rgba(255, 255, 255, 0.56)
);
--platform-track-border: rgba(234, 193, 208, 0.46);
--platform-track-fill: rgba(255, 255, 255, 0.88);
--platform-page-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.9),
rgba(255, 250, 251, 0.8)
);
--platform-page-border: rgba(241, 230, 234, 0.88);
--platform-input-fill: rgba(255, 255, 255, 0.94);
--platform-input-fill-focus: rgba(255, 255, 255, 0.96);
--platform-input-highlight: rgba(255, 255, 255, 0.9);
--platform-input-focus-ring: rgba(255, 91, 132, 0.14);
--platform-nav-item-text: #7c6770;
--platform-nav-item-text-active: #2d1820;
--platform-nav-item-hover-fill: rgba(255, 244, 247, 0.92);
--platform-nav-item-icon-fill: rgba(248, 244, 246, 1);
--platform-nav-item-icon-text: #7a5d67;
--platform-nav-item-icon-active-fill: rgba(255, 255, 255, 0.98);
--platform-nav-item-icon-active-text: #d93570;
--platform-nav-icon-active-shadow: 0 12px 24px rgba(255, 91, 132, 0.16);
--platform-profile-hero-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.96),
rgba(255, 245, 248, 0.9)
);
--platform-profile-hero-border: rgba(255, 255, 255, 0.52);
--platform-profile-hero-shadow: 0 20px 56px rgba(216, 74, 124, 0.18);
--platform-profile-avatar-fill: linear-gradient(
135deg,
rgba(255, 79, 139, 0.96),
rgba(255, 140, 110, 0.9)
);
--platform-profile-avatar-shadow: 0 14px 30px rgba(255, 79, 139, 0.24);
--platform-profile-chip-fill: rgba(255, 255, 255, 0.88);
--platform-profile-chip-hover-fill: rgba(255, 255, 255, 0.96);
--platform-profile-chip-text: #6a505b;
--platform-profile-action-fill: linear-gradient(135deg, #ff4f8b, #ff8a73);
--platform-profile-action-text: #fff7fb;
--platform-profile-action-shadow: 0 14px 30px rgba(255, 79, 139, 0.24);
--platform-card-overlay-soft: linear-gradient(
180deg,
rgba(255, 255, 255, 0.08),
rgba(255, 247, 249, 0.82)
);
--platform-card-overlay-strong: linear-gradient(
180deg,
rgba(255, 255, 255, 0.16),
rgba(255, 243, 247, 0.92)
);
--platform-card-overlay-deep: radial-gradient(
circle at top left,
rgba(255, 255, 255, 0.2),
transparent 30%
),
radial-gradient(circle at right, rgba(255, 205, 178, 0.14), transparent 28%),
linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 241, 246, 0.9));
}
.platform-theme--dark {
color-scheme: dark;
--platform-body-fill: radial-gradient(
circle at top,
rgba(129, 140, 248, 0.2),
transparent 30%
),
radial-gradient(
circle at top right,
rgba(59, 130, 246, 0.12),
transparent 24%
),
radial-gradient(
circle at bottom left,
rgba(34, 211, 238, 0.08),
transparent 26%
),
linear-gradient(180deg, #13151c 0%, #090b11 100%);
--platform-panel-shadow: 0 28px 88px rgba(5, 8, 28, 0.5);
--platform-panel-fill: linear-gradient(
180deg,
rgba(22, 20, 52, 0.95),
rgba(7, 9, 21, 0.98)
);
--platform-panel-fill-soft: linear-gradient(
180deg,
rgba(122, 92, 255, 0.12),
rgba(255, 255, 255, 0.03)
);
--platform-hero-fill: radial-gradient(
circle at top left,
rgba(129, 140, 248, 0.24),
transparent 34%
),
radial-gradient(circle at right, rgba(34, 211, 238, 0.12), transparent 32%),
linear-gradient(180deg, rgba(17, 22, 66, 0.95), rgba(8, 10, 24, 0.98));
--platform-hero-glow-a: rgba(129, 140, 248, 0.18);
--platform-hero-glow-b: rgba(34, 211, 238, 0.1);
--platform-surface-border: rgba(160, 169, 255, 0.12);
--platform-surface-hover-border: rgba(255, 255, 255, 0.16);
--platform-shell-glow-1: rgba(129, 140, 248, 0.2);
--platform-shell-glow-2: rgba(59, 130, 246, 0.12);
--platform-shell-glow-3: rgba(34, 211, 238, 0.08);
--platform-surface-glow-a: rgba(129, 140, 248, 0.18);
--platform-surface-glow-b: rgba(34, 211, 238, 0.1);
--platform-text-strong: #ffffff;
--platform-text-base: rgb(228 228 231);
--platform-text-soft: rgb(161 161 170);
--platform-brand-logo-title: #fff7dc;
--platform-brand-logo-subtitle: #9fe7ff;
--platform-brand-logo-shadow: #040814;
--platform-line-soft: rgba(255, 255, 255, 0.1);
--platform-subpanel-fill: rgba(255, 255, 255, 0.05);
--platform-subpanel-border: rgba(255, 255, 255, 0.1);
--platform-warm-border: rgba(167, 139, 250, 0.24);
--platform-warm-bg: rgba(109, 40, 217, 0.18);
--platform-warm-text: rgb(237 233 254);
--platform-cool-border: rgba(103, 232, 249, 0.22);
--platform-cool-bg: rgba(8, 145, 178, 0.14);
--platform-cool-text: rgb(236 254 255);
--platform-neutral-border: rgba(255, 255, 255, 0.08);
--platform-neutral-bg: rgba(255, 255, 255, 0.05);
--platform-neutral-text: rgb(228 228 231);
--platform-button-primary-border: rgba(129, 140, 248, 0.3);
--platform-button-primary-fill: linear-gradient(135deg, #5b6cff, #3dd9ff);
--platform-button-primary-text: rgb(238 248 255);
--platform-button-secondary-fill: rgba(255, 255, 255, 0.05);
--platform-button-secondary-text: rgb(244 244 245);
--platform-button-ghost-fill: rgba(255, 255, 255, 0.03);
--platform-button-ghost-text: rgb(212 212 216);
--platform-button-danger-border: rgba(251, 113, 133, 0.2);
--platform-button-danger-fill: rgba(244, 63, 94, 0.1);
--platform-button-danger-text: rgb(255 228 230);
--platform-success-border: rgba(52, 211, 153, 0.24);
--platform-success-bg: rgba(16, 185, 129, 0.1);
--platform-success-text: rgb(220 252 231);
--platform-icon-fill: rgba(255, 255, 255, 0.05);
--platform-icon-border: rgba(255, 255, 255, 0.1);
--platform-icon-text: rgb(212 212 216);
--platform-nav-fill: linear-gradient(
180deg,
rgba(109, 40, 217, 0.12),
rgba(255, 255, 255, 0.03)
);
--platform-nav-active-fill: linear-gradient(
180deg,
rgba(91, 108, 255, 0.2),
rgba(61, 217, 255, 0.08)
);
--platform-nav-active-border: rgba(160, 169, 255, 0.24);
--platform-nav-active-shadow: 0 12px 28px rgba(8, 14, 42, 0.4);
--platform-modal-fill: linear-gradient(
180deg,
rgba(16, 18, 46, 0.98),
rgba(7, 8, 19, 0.98)
);
--platform-modal-border: rgba(160, 169, 255, 0.12);
--platform-desktop-shell-fill: linear-gradient(
180deg,
rgba(8, 8, 30, 0.98),
rgba(5, 6, 18, 0.99)
);
--platform-desktop-shell-border: rgba(160, 169, 255, 0.14);
--platform-desktop-shell-inner-border: rgba(255, 255, 255, 0.03);
--platform-desktop-topbar-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.05),
rgba(255, 255, 255, 0.03)
);
--platform-desktop-panel-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.05),
rgba(255, 255, 255, 0.02)
);
--platform-desktop-panel-border: rgba(160, 169, 255, 0.12);
--platform-desktop-hover-shadow: 0 16px 28px rgba(8, 11, 38, 0.2);
--platform-overlay-fill: rgba(5, 8, 28, 0.72);
--platform-track-border: rgba(255, 255, 255, 0.12);
--platform-track-fill: rgba(255, 255, 255, 0.08);
--platform-page-fill: linear-gradient(
180deg,
rgba(255, 255, 255, 0.04),
rgba(255, 255, 255, 0.02)
);
--platform-page-border: rgba(255, 255, 255, 0.06);
--platform-input-fill: rgba(255, 255, 255, 0.05);
--platform-input-fill-focus: rgba(255, 255, 255, 0.08);
--platform-input-highlight: rgba(255, 255, 255, 0.06);
--platform-input-focus-ring: rgba(91, 108, 255, 0.22);
--platform-nav-item-text: rgb(161 161 170);
--platform-nav-item-text-active: rgb(238 248 255);
--platform-nav-item-hover-fill: rgba(91, 108, 255, 0.08);
--platform-nav-item-icon-fill: rgba(255, 255, 255, 0.06);
--platform-nav-item-icon-text: rgb(161 161 170);
--platform-nav-item-icon-active-fill: linear-gradient(
180deg,
rgba(91, 108, 255, 0.24),
rgba(61, 217, 255, 0.12)
);
--platform-nav-item-icon-active-text: rgb(238 248 255);
--platform-nav-icon-active-shadow: 0 12px 24px rgba(8, 14, 42, 0.42);
--platform-profile-hero-fill: linear-gradient(
180deg,
rgba(20, 24, 58, 0.96),
rgba(8, 10, 24, 0.98)
);
--platform-profile-hero-border: rgba(160, 169, 255, 0.14);
--platform-profile-hero-shadow: 0 24px 70px rgba(5, 8, 28, 0.42);
--platform-profile-avatar-fill: linear-gradient(
135deg,
rgba(91, 108, 255, 0.94),
rgba(61, 217, 255, 0.78)
);
--platform-profile-avatar-shadow: 0 14px 32px rgba(61, 217, 255, 0.16);
--platform-profile-chip-fill: rgba(255, 255, 255, 0.08);
--platform-profile-chip-hover-fill: rgba(255, 255, 255, 0.14);
--platform-profile-chip-text: rgb(228 228 231);
--platform-profile-action-fill: linear-gradient(135deg, #5b6cff, #3dd9ff);
--platform-profile-action-text: rgb(238 248 255);
--platform-profile-action-shadow: 0 14px 32px rgba(91, 108, 255, 0.22);
--platform-card-overlay-soft: linear-gradient(
180deg,
rgba(8, 10, 14, 0.06),
rgba(8, 10, 14, 0.74)
);
--platform-card-overlay-strong: linear-gradient(
180deg,
rgba(8, 10, 14, 0.14),
rgba(8, 10, 14, 0.9)
);
--platform-card-overlay-deep: radial-gradient(
circle at top left,
rgba(255, 255, 255, 0.14),
transparent 30%
),
radial-gradient(circle at right, rgba(255, 205, 178, 0.14), transparent 28%),
linear-gradient(180deg, rgba(8, 10, 14, 0.22), rgba(8, 10, 14, 0.9));
}
.platform-brand-logo {
display: inline-flex;
flex: none;
flex-direction: column;
align-items: flex-start;
gap: 0.18rem;
line-height: 1;
}
.platform-brand-logo__title,
.platform-brand-logo__subtitle {
font-synthesis: none;
font-kerning: none;
white-space: nowrap;
}
.platform-brand-logo__title {
font-family: 'Fusion Pixel', 'Inter', ui-sans-serif, system-ui, sans-serif !important;
font-size: clamp(1.9rem, 5.2vw, 2.65rem);
font-weight: 400;
line-height: 0.92;
letter-spacing: 0.04em;
color: var(--platform-brand-logo-title);
}
.platform-brand-logo__subtitle {
padding-left: 0.08rem;
font-family: 'Fusion Pixel', 'Inter', ui-sans-serif, system-ui, sans-serif !important;
font-size: clamp(0.56rem, 1.7vw, 0.7rem);
font-weight: 400;
line-height: 1;
letter-spacing: 0.08em;
color: var(--platform-brand-logo-subtitle);
}
.platform-main-shell {
position: relative;
width: 100%;
max-width: 100vw;
min-width: 0;
overflow: hidden;
}
.platform-main-shell::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
background: radial-gradient(
circle at top,
var(--platform-shell-glow-1),
transparent 30%
),
radial-gradient(
circle at top right,
var(--platform-shell-glow-2),
transparent 24%
),
radial-gradient(
circle at bottom left,
var(--platform-shell-glow-3),
transparent 26%
);
opacity: 0.9;
}
.platform-page-stage {
position: relative;
box-sizing: border-box;
width: 100%;
min-width: 0;
min-height: 100%;
border: 1px solid var(--platform-page-border);
border-radius: 2rem;
background: var(--platform-page-fill);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
backdrop-filter: blur(18px);
}
.platform-tab-panel-stack {
position: relative;
min-height: 0;
min-width: 0;
overflow: hidden;
}
.platform-mobile-bottom-dock {
flex: none;
}
.platform-tab-panel {
box-sizing: border-box;
width: 100%;
min-height: 0;
min-width: 0;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
padding-right: 0.25rem;
}
.platform-tab-panel--hidden {
display: none;
}
.platform-tab-panel--active {
display: block;
}
.platform-surface {
position: relative;
box-sizing: border-box;
min-width: 0;
overflow: hidden;
border: 1px solid var(--platform-surface-border);
border-radius: 1.75rem;
background: var(--platform-panel-fill);
box-shadow: var(--platform-panel-shadow);
}
.platform-surface::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
background: radial-gradient(
circle at top left,
var(--platform-surface-glow-a),
transparent 34%
),
radial-gradient(
circle at bottom right,
var(--platform-surface-glow-b),
transparent 26%
);
}
/* 背景图和遮罩必须保持绝对定位,避免 banner 图进入普通流后撑开首页布局。 */
.platform-surface > :not(.absolute) {
position: relative;
z-index: 1;
}
.platform-surface--soft {
background: var(--platform-panel-fill-soft);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.05),
0 18px 44px rgba(0, 0, 0, 0.12);
}
.platform-surface--hero {
background: var(--platform-hero-fill);
}
.platform-surface--hero::before {
background: radial-gradient(
circle at top left,
var(--platform-hero-glow-a),
transparent 34%
),
radial-gradient(
circle at bottom right,
var(--platform-hero-glow-b),
transparent 32%
),
var(--platform-hero-overlay-soft);
}
.platform-surface--light {
border-color: var(--platform-line-soft);
background: var(--platform-subpanel-fill);
box-shadow: 0 18px 50px rgba(0, 0, 0, 0.12);
}
.platform-surface--light::before {
background: radial-gradient(
circle at top right,
var(--platform-hero-glow-a),
transparent 32%
),
radial-gradient(
circle at bottom left,
var(--platform-hero-glow-b),
transparent 26%
);
}
.platform-interactive-card {
transition:
transform 180ms ease,
border-color 180ms ease,
box-shadow 180ms ease,
background-color 180ms ease,
filter 180ms ease;
}
.platform-interactive-card:hover {
transform: translateY(-2px);
border-color: var(--platform-surface-hover-border);
box-shadow: 0 28px 60px rgba(0, 0, 0, 0.14);
}
.platform-interactive-card:active {
transform: translateY(0);
filter: brightness(0.98);
}
.platform-public-work-card {
background: var(--platform-subpanel-fill);
}
.platform-public-work-card__cover {
background: color-mix(in srgb, var(--platform-panel-fill-soft) 86%, #000 14%);
}
.platform-public-work-card__body {
background: color-mix(in srgb, var(--platform-subpanel-fill) 92%, #000 8%);
}
.platform-public-work-card__cover-stats {
position: absolute;
right: 0.65rem;
bottom: 0.55rem;
display: flex;
max-width: calc(100% - 1.3rem);
flex-wrap: wrap;
justify-content: flex-end;
gap: 0.35rem;
}
.platform-public-work-card__cover-stat {
display: inline-flex;
min-height: 1.55rem;
align-items: center;
gap: 0.22rem;
border: 1px solid rgba(255, 255, 255, 0.16);
border-radius: 9999px;
background: rgba(0, 0, 0, 0.36);
color: rgba(255, 255, 255, 0.92);
padding: 0.16rem 0.48rem;
font-size: 0.68rem;
font-weight: 800;
line-height: 1;
backdrop-filter: blur(10px);
box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
}
.platform-public-work-card__kind {
max-width: 4.5rem;
border: 1px solid var(--platform-cool-border);
border-radius: 9999px;
background: var(--platform-cool-bg);
color: var(--platform-cool-text);
padding: 0.28rem 0.6rem;
font-size: 0.72rem;
font-weight: 800;
line-height: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.platform-public-work-card__author-avatar {
display: inline-flex;
width: 1.15rem;
height: 1.15rem;
flex: 0 0 auto;
align-items: center;
justify-content: center;
border: 1px solid var(--platform-subpanel-border);
border-radius: 9999px;
background: var(--platform-profile-avatar-fill);
color: var(--platform-button-primary-text);
font-size: 0.62rem;
font-weight: 900;
line-height: 1;
overflow: hidden;
}
.platform-public-work-card__author-avatar-image {
width: 100%;
height: 100%;
object-fit: cover;
}
.platform-ranking-panel {
min-height: 100%;
}
.platform-ranking-tabs {
margin-bottom: 0.6rem;
}
.platform-ranking-tab {
position: relative;
min-height: 2.35rem;
border: 0;
border-radius: 0;
background: transparent;
color: var(--platform-text-soft);
padding: 0 0.15rem;
font-size: 0.95rem;
font-weight: 800;
white-space: nowrap;
transition:
color 180ms ease,
transform 180ms ease;
}
.platform-ranking-tab:hover {
color: var(--platform-text-strong);
}
.platform-ranking-tab--active {
color: var(--platform-text-strong);
}
.platform-ranking-tab--active::after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0.15rem;
height: 0.18rem;
border-radius: 9999px;
background: var(--platform-warm-text);
}
.platform-ranking-item {
display: grid;
grid-template-columns: 2.15rem 4.75rem minmax(0, 1fr) auto;
align-items: center;
gap: 0.75rem;
min-height: 5.8rem;
border: 1px solid var(--platform-subpanel-border);
border-radius: 1.2rem;
background: color-mix(
in srgb,
var(--platform-subpanel-fill) 88%,
#050506 12%
);
padding: 0.7rem;
color: var(--platform-text-base);
transition:
border-color 180ms ease,
background 180ms ease,
transform 180ms ease,
box-shadow 180ms ease;
}
.platform-ranking-item:hover {
transform: translateY(-1px);
border-color: var(--platform-surface-hover-border);
box-shadow: var(--platform-desktop-hover-shadow);
}
.platform-ranking-item__rank {
min-width: 0;
color: var(--platform-text-strong);
font-size: clamp(1.35rem, 5vw, 1.75rem);
font-weight: 900;
line-height: 1;
text-align: center;
}
.platform-ranking-item__cover {
position: relative;
aspect-ratio: 1;
overflow: hidden;
border: 1px solid var(--platform-subpanel-border);
border-radius: 1rem;
background: var(--platform-subpanel-fill);
}
.platform-ranking-item__tags {
display: flex;
min-height: 1.35rem;
min-width: 0;
flex-wrap: wrap;
gap: 0.35rem;
margin-top: 0.35rem;
}
.platform-ranking-item__tags span {
display: inline-flex;
max-width: 5rem;
align-items: center;
justify-content: center;
overflow: hidden;
border: 1px solid var(--platform-subpanel-border);
border-radius: 9999px;
background: color-mix(
in srgb,
var(--platform-panel-fill-soft) 72%,
transparent
);
color: var(--platform-text-soft);
padding: 0.16rem 0.48rem;
font-size: 0.68rem;
font-weight: 700;
line-height: 1.1;
text-overflow: ellipsis;
white-space: nowrap;
}
.platform-ranking-item__action {
display: inline-flex;
min-width: 4.2rem;
min-height: 2.4rem;
align-items: center;
justify-content: center;
border: 1px solid var(--platform-cool-border);
border-radius: 9999px;
background: var(--platform-cool-bg);
color: var(--platform-cool-text);
padding: 0 0.85rem;
font-size: 0.9rem;
font-weight: 900;
white-space: nowrap;
}
.platform-category-list-panel {
display: grid;
min-width: 0;
gap: 0.72rem;
}
.platform-category-filter-row {
display: flex;
min-width: 0;
align-items: center;
gap: 0.65rem;
overflow: hidden;
border: 1px solid var(--platform-subpanel-border);
border-radius: 1.25rem;
background: var(--platform-subpanel-fill);
padding: 0.55rem 0.65rem;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.platform-category-filter-button {
display: inline-flex;
position: relative;
min-height: 2.25rem;
flex: 0 0 auto;
align-items: center;
gap: 0.35rem;
border: 1px solid var(--platform-cool-border);
border-radius: 9999px;
background: var(--platform-cool-bg);
color: var(--platform-cool-text);
padding: 0 0.75rem;
font-size: 0.86rem;
font-weight: 900;
white-space: nowrap;
}
.platform-category-filter-button__count {
display: inline-flex;
min-width: 1.18rem;
height: 1.18rem;
align-items: center;
justify-content: center;
border-radius: 9999px;
background: var(--platform-warm-text);
color: var(--platform-button-primary-text);
padding: 0 0.28rem;
font-size: 0.72rem;
line-height: 1;
}
.platform-category-filter-divider {
width: 1px;
height: 1.85rem;
flex: 0 0 auto;
background: var(--platform-line-soft);
}
.platform-category-chip-scroll {
display: flex;
min-width: 0;
flex: 1 1 auto;
gap: 0.55rem;
overflow-x: auto;
padding-right: 0.1rem;
}
.platform-category-chip {
display: inline-flex;
min-height: 2.25rem;
flex: 0 0 auto;
align-items: center;
justify-content: center;
border: 1px solid var(--platform-subpanel-border);
border-radius: 0.78rem;
background: rgba(255, 255, 255, 0.04);
color: var(--platform-text-base);
padding: 0 0.92rem;
font-size: 0.88rem;
font-weight: 800;
white-space: nowrap;
}
.platform-category-chip--active {
border-color: var(--platform-cool-border);
background: var(--platform-cool-bg);
color: var(--platform-cool-text);
}
.platform-category-sort-button {
display: inline-flex;
width: fit-content;
min-height: 1.75rem;
align-items: center;
gap: 0.2rem;
border: 0;
background: transparent;
color: var(--platform-text-soft);
padding: 0 0.2rem;
font-size: 0.88rem;
font-weight: 800;
}
.platform-category-game-list {
display: grid;
min-width: 0;
gap: 0.78rem;
}
.platform-category-game-item {
display: grid;
min-width: 0;
width: 100%;
grid-template-columns: 4.75rem minmax(0, 1fr) auto;
align-items: center;
gap: 0.78rem;
border: 0;
border-radius: 0.9rem;
background: transparent;
color: var(--platform-text-base);
padding: 0.1rem 0;
text-align: left;
}
.platform-category-game-item__cover {
position: relative;
aspect-ratio: 1;
min-width: 0;
overflow: hidden;
border: 1px solid var(--platform-subpanel-border);
border-radius: 1rem;
background: var(--platform-subpanel-fill);
}
.platform-category-game-item__body {
min-width: 0;
}
.platform-category-game-item__title-row {
display: flex;
min-width: 0;
align-items: center;
gap: 0.38rem;
}
.platform-category-game-item__title {
min-width: 0;
overflow: hidden;
color: var(--platform-text-strong);
font-size: 1rem;
font-weight: 900;
line-height: 1.18;
text-overflow: ellipsis;
white-space: nowrap;
}
.platform-category-game-item__badge {
display: inline-flex;
min-height: 1.22rem;
flex: 0 0 auto;
align-items: center;
border-radius: 0.36rem;
background: rgba(255, 255, 255, 0.08);
color: var(--platform-text-soft);
padding: 0 0.38rem;
font-size: 0.68rem;
font-weight: 800;
}
.platform-category-game-item__meta {
display: flex;
min-width: 0;
align-items: center;
gap: 0.34rem;
overflow: hidden;
margin-top: 0.28rem;
color: var(--platform-text-soft);
font-size: 0.78rem;
font-weight: 700;
white-space: nowrap;
}
.platform-category-game-item__meta > span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.platform-category-game-item__metric {
display: inline-flex;
flex: 0 0 auto;
align-items: center;
gap: 0.14rem;
color: var(--platform-cool-text);
}
.platform-category-game-item__summary {
min-width: 0;
overflow: hidden;
margin-top: 0.35rem;
color: var(--platform-text-soft);
font-size: 0.82rem;
line-height: 1.35;
text-overflow: ellipsis;
white-space: nowrap;
}
.platform-category-game-item__action {
display: inline-flex;
min-width: 4rem;
min-height: 2.35rem;
flex: 0 0 auto;
align-items: center;
justify-content: center;
border: 1px solid var(--platform-cool-border);
border-radius: 9999px;
background: var(--platform-cool-bg);
color: var(--platform-cool-text);
padding: 0 0.8rem;
font-size: 0.9rem;
font-weight: 900;
white-space: nowrap;
}
.platform-pill {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.35rem;
border-radius: 9999px;
border: 1px solid rgba(255, 255, 255, 0.1);
padding: 0.35rem 0.85rem;
font-size: 10px;
font-weight: 600;
letter-spacing: 0.18em;
}
.platform-pill--warm {
border-color: var(--platform-warm-border);
background: var(--platform-warm-bg);
color: var(--platform-warm-text);
}
.platform-pill--cool {
border-color: var(--platform-cool-border);
background: var(--platform-cool-bg);
color: var(--platform-cool-text);
}
.platform-pill--neutral {
border-color: var(--platform-neutral-border);
background: var(--platform-neutral-bg);
color: var(--platform-neutral-text);
}
.platform-pill--rose {
border-color: rgba(251, 113, 133, 0.2);
background: rgba(244, 63, 94, 0.1);
color: rgb(255 228 230);
}
.platform-pill--success {
border-color: var(--platform-success-border);
background: var(--platform-success-bg);
color: var(--platform-success-text);
}
.creation-work-card-stat {
--creation-work-stat-accent: #6b7cff;
position: relative;
min-width: 0;
min-height: 3.15rem;
overflow: hidden;
border: 1px solid
color-mix(in srgb, var(--creation-work-stat-accent) 24%, transparent);
border-radius: 0.5rem;
background: radial-gradient(
circle at 100% 0,
color-mix(in srgb, var(--creation-work-stat-accent) 16%, transparent),
transparent 62%
),
color-mix(in srgb, var(--platform-neutral-bg) 76%, transparent);
padding: 0.42rem 0.42rem 0.46rem;
box-shadow: 0 0.55rem 1.05rem
color-mix(in srgb, var(--creation-work-stat-accent) 9%, transparent);
backdrop-filter: blur(14px);
}
.creation-work-card-stat--play {
--creation-work-stat-accent: #2f9d78;
}
.creation-work-card-stat--remix {
--creation-work-stat-accent: #ff9a3d;
}
.creation-work-card-stat--like {
--creation-work-stat-accent: #ff6b6b;
}
.creation-work-card-stat__label {
display: block;
min-width: 0;
overflow: hidden;
color: var(--platform-text-soft);
font-size: 0.625rem;
font-weight: 800;
line-height: 1.1;
text-overflow: ellipsis;
white-space: nowrap;
}
.creation-work-card-stat__value {
display: flex;
min-width: 0;
align-items: baseline;
gap: 0.12rem;
margin-top: 0.26rem;
color: var(--platform-text-strong);
font-weight: 900;
line-height: 1.05;
white-space: nowrap;
}
.creation-work-card-stat__number {
min-width: 0;
overflow: hidden;
font-size: 1rem;
text-overflow: ellipsis;
}
.creation-work-card-stat__unit {
flex: 0 0 auto;
color: var(--platform-text-soft);
font-size: 0.58rem;
font-weight: 800;
}
.creation-work-card-stat__growth {
position: absolute;
right: 0.35rem;
bottom: 0.22rem;
display: inline-flex;
align-items: center;
gap: 0.08rem;
color: #ef233c;
font-size: 0.54rem;
font-weight: 900;
line-height: 1;
}
.creation-work-card-incentive {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
align-items: stretch;
gap: 0.38rem;
min-width: 0;
}
.creation-work-card-incentive__metric,
.creation-work-card-incentive__button {
min-width: 0;
border: 1px solid color-mix(in srgb, #6b7cff 22%, transparent);
border-radius: 0.5rem;
background: color-mix(in srgb, var(--platform-neutral-bg) 82%, transparent);
backdrop-filter: blur(14px);
}
.creation-work-card-incentive__metric {
overflow: hidden;
padding: 0.38rem 0.42rem;
}
.creation-work-card-incentive__label {
display: block;
overflow: hidden;
color: var(--platform-text-soft);
font-size: 0.58rem;
font-weight: 800;
line-height: 1.1;
text-overflow: ellipsis;
white-space: nowrap;
}
.creation-work-card-incentive__value {
display: block;
margin-top: 0.18rem;
overflow: hidden;
color: var(--platform-text-strong);
font-size: 0.95rem;
font-weight: 950;
line-height: 1;
text-overflow: ellipsis;
white-space: nowrap;
}
.creation-work-card-incentive__button {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 2.55rem;
padding: 0 0.58rem;
color: var(--platform-text-strong);
font-size: 0.68rem;
font-weight: 900;
line-height: 1.1;
transition:
transform 180ms ease,
border-color 180ms ease,
opacity 180ms ease;
}
.creation-work-card-incentive__button:hover:not(:disabled) {
transform: translateY(-1px);
border-color: color-mix(in srgb, #6b7cff 44%, transparent);
}
.creation-work-card-incentive__button:disabled {
cursor: not-allowed;
opacity: 0.52;
}
.square-hole-runtime__target-arrow {
animation: square-hole-runtime-target-arrow 0.86s ease-in-out infinite;
}
@keyframes square-hole-runtime-target-arrow {
0%,
100% {
transform: translate(-50%, -138%);
}
50% {
transform: translate(-50%, -112%);
}
}
.platform-tab {
border: 1px solid var(--platform-subpanel-border);
border-radius: 9999px;
background: var(--platform-subpanel-fill);
color: var(--platform-text-base);
transition:
transform 180ms ease,
border-color 180ms ease,
background-color 180ms ease,
color 180ms ease,
box-shadow 180ms ease;
}
.platform-tab:hover {
transform: translateY(-1px);
border-color: var(--platform-surface-hover-border);
color: var(--platform-text-strong);
}
.platform-tab--active {
border-color: var(--platform-nav-active-border);
background: var(--platform-nav-active-fill);
color: var(--platform-text-strong);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.08),
var(--platform-nav-active-shadow);
}
.platform-button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.55rem;
min-height: 2.9rem;
border-radius: 1rem;
border: 1px solid rgba(255, 255, 255, 0.12);
padding: 0.7rem 1rem;
font-size: 0.9375rem;
font-weight: 600;
transition:
transform 180ms ease,
border-color 180ms ease,
background-color 180ms ease,
color 180ms ease,
opacity 180ms ease,
box-shadow 180ms ease;
}
.platform-button:hover {
transform: translateY(-1px);
}
.platform-button:active {
transform: translateY(0);
}
.platform-button:disabled {
cursor: not-allowed;
opacity: 0.55;
}
.platform-button--primary {
border-color: var(--platform-button-primary-border);
background: var(--platform-button-primary-fill);
color: var(--platform-button-primary-text);
box-shadow: 0 16px 34px rgba(255, 91, 132, 0.18);
}
.platform-button--secondary {
background: var(--platform-button-secondary-fill);
color: var(--platform-button-secondary-text);
}
.platform-button--ghost {
background: var(--platform-button-ghost-fill);
color: var(--platform-button-ghost-text);
}
.platform-button--danger {
border-color: var(--platform-button-danger-border);
background: var(--platform-button-danger-fill);
color: var(--platform-button-danger-text);
}
.platform-close-confirm-dialog > :first-child {
border-color: var(--platform-line-soft) !important;
}
.platform-close-confirm-dialog > :first-child > .min-w-0 {
color: var(--platform-text-strong) !important;
}
.platform-close-confirm-dialog__content {
display: grid;
gap: 0.9rem;
}
.platform-close-confirm-dialog__message {
border: 1px solid var(--platform-warm-border);
border-radius: 1rem;
background: var(--platform-warm-bg);
padding: 0.95rem 1rem;
color: var(--platform-warm-text);
font-size: 0.875rem;
font-weight: 600;
line-height: 1.7;
}
.platform-close-confirm-dialog__actions {
display: grid;
gap: 0.75rem;
}
.platform-close-confirm-dialog__button {
display: inline-flex;
min-height: 2.5rem;
width: 100%;
align-items: center;
justify-content: center;
border-radius: 9999px;
border: 1px solid transparent;
padding: 0.55rem 1rem;
font-size: 0.875rem;
font-weight: 800;
transition:
transform 180ms ease,
border-color 180ms ease,
background 180ms ease,
color 180ms ease,
box-shadow 180ms ease;
}
.platform-close-confirm-dialog__button:hover {
transform: translateY(-1px);
}
.platform-close-confirm-dialog__button--primary {
border-color: var(--platform-button-primary-border);
background: var(--platform-button-primary-fill);
color: var(--platform-button-primary-text);
box-shadow: 0 12px 26px rgba(255, 91, 132, 0.16);
}
.platform-close-confirm-dialog__button--secondary {
border-color: var(--platform-neutral-border);
background: var(--platform-neutral-bg);
color: var(--platform-neutral-text);
}
.platform-icon-button {
display: inline-flex;
align-items: center;
justify-content: center;
width: 2.5rem;
height: 2.5rem;
border-radius: 9999px;
border: 1px solid var(--platform-icon-border);
background: var(--platform-icon-fill);
color: var(--platform-icon-text);
transition:
background-color 180ms ease,
border-color 180ms ease,
color 180ms ease,
transform 180ms ease;
}
.platform-icon-button:hover {
transform: translateY(-1px);
border-color: var(--platform-nav-active-border);
background: var(--platform-nav-active-fill);
color: var(--platform-text-strong);
}
.platform-bottom-nav {
box-sizing: border-box;
width: 100%;
min-width: 0;
min-height: var(--platform-bottom-nav-height);
gap: var(--platform-bottom-nav-gap);
border: 1px solid var(--platform-desktop-panel-border);
border-radius: var(--platform-bottom-nav-radius);
background: var(--platform-nav-fill);
padding: var(--platform-bottom-nav-padding);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.03),
0 16px 40px rgba(0, 0, 0, 0.1);
backdrop-filter: blur(20px);
}
.platform-bottom-nav__button {
display: flex;
box-sizing: border-box;
min-width: 0;
width: 100%;
min-height: calc(
var(--platform-bottom-nav-height) - var(--platform-bottom-nav-padding) * 2
);
align-items: center;
justify-content: center;
border: 1px solid transparent;
border-radius: var(--platform-bottom-nav-button-radius);
background: transparent;
padding: 0;
color: var(--platform-nav-item-text);
transition:
background-color 180ms ease,
color 180ms ease,
border-color 180ms ease,
transform 180ms ease;
}
.platform-bottom-nav__button-content {
display: flex;
min-height: 100%;
min-width: 0;
width: 100%;
flex-direction: column;
align-items: center;
justify-content: center;
gap: var(--platform-bottom-nav-content-gap);
}
.platform-bottom-nav__button:hover {
color: var(--platform-text-strong);
background: var(--platform-nav-item-hover-fill);
}
.platform-bottom-nav__button--active {
border: 1px solid var(--platform-nav-active-border);
background: var(--platform-nav-active-fill);
color: var(--platform-text-strong);
box-shadow: var(--platform-bottom-nav-active-shadow);
}
.platform-bottom-nav__button--primary {
transform: translateY(-0.18rem);
color: var(--platform-text-strong);
}
.platform-bottom-nav__button--primary .platform-bottom-nav__icon-shell {
width: calc(var(--platform-bottom-nav-icon-shell-size) + 0.58rem);
height: calc(var(--platform-bottom-nav-icon-shell-size) + 0.58rem);
background: var(--platform-nav-active-fill);
box-shadow: var(--platform-nav-icon-active-shadow);
}
.platform-bottom-nav__button--primary .platform-bottom-nav__icon {
width: calc(var(--platform-bottom-nav-icon-size) + 0.18rem);
height: calc(var(--platform-bottom-nav-icon-size) + 0.18rem);
color: var(--platform-nav-item-icon-active-text);
}
.platform-bottom-nav__button--primary .platform-bottom-nav__label {
color: var(--platform-nav-item-text-active);
font-weight: 800;
}
.platform-bottom-nav__icon-shell,
.platform-desktop-rail__icon-shell {
display: flex;
align-items: center;
justify-content: center;
border-radius: 9999px;
background: var(--platform-nav-item-icon-fill);
color: var(--platform-nav-item-icon-text);
transition:
background-color 180ms ease,
color 180ms ease,
box-shadow 180ms ease,
transform 180ms ease;
}
.platform-bottom-nav__icon-shell {
width: var(--platform-bottom-nav-icon-shell-size);
height: var(--platform-bottom-nav-icon-shell-size);
}
.platform-desktop-rail__icon-shell {
width: 2.75rem;
height: 2.75rem;
}
.platform-bottom-nav__icon,
.platform-desktop-rail__icon {
color: var(--platform-nav-item-icon-text);
width: var(--platform-bottom-nav-icon-size);
height: var(--platform-bottom-nav-icon-size);
transition: color 180ms ease;
}
.platform-bottom-nav__label,
.platform-desktop-rail__label {
color: var(--platform-nav-item-text);
font-size: var(--platform-bottom-nav-label-size);
font-weight: 600;
letter-spacing: var(--platform-bottom-nav-label-tracking);
line-height: 1;
transition: color 180ms ease;
}
.platform-bottom-nav__button:hover .platform-bottom-nav__icon-shell,
.platform-desktop-rail__button:hover .platform-desktop-rail__icon-shell {
background: var(--platform-nav-item-hover-fill);
}
.platform-bottom-nav__button:hover .platform-bottom-nav__icon,
.platform-bottom-nav__button:hover .platform-bottom-nav__label,
.platform-desktop-rail__button:hover .platform-desktop-rail__icon,
.platform-desktop-rail__button:hover .platform-desktop-rail__label {
color: var(--platform-text-strong);
}
.platform-bottom-nav__button--active .platform-bottom-nav__icon-shell,
.platform-desktop-rail__button--active .platform-desktop-rail__icon-shell {
background: var(--platform-nav-item-icon-active-fill);
box-shadow: var(--platform-nav-icon-active-shadow);
}
.platform-bottom-nav__button--active .platform-bottom-nav__icon,
.platform-desktop-rail__button--active .platform-desktop-rail__icon {
color: var(--platform-nav-item-icon-active-text);
}
.platform-bottom-nav__button--active .platform-bottom-nav__label,
.platform-desktop-rail__button--active .platform-desktop-rail__label {
color: var(--platform-nav-item-text-active);
}
.platform-modal-shell {
border: 1px solid var(--platform-modal-border);
background: var(--platform-modal-fill);
box-shadow: 0 24px 80px rgba(0, 0, 0, 0.16);
}
.platform-modal-backdrop {
background: var(--platform-overlay-fill);
color: var(--platform-text-strong);
backdrop-filter: blur(12px);
}
.platform-recharge-modal {
border: 1px solid var(--platform-modal-border);
background: var(--platform-modal-fill);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.1),
0 24px 80px rgba(0, 0, 0, 0.18);
}
.platform-overlay {
background: var(--platform-overlay-fill);
}
.platform-desktop-shell {
position: relative;
min-width: 0;
overflow: hidden;
border: 1px solid var(--platform-desktop-shell-border);
border-radius: 2.6rem;
background: var(--platform-desktop-shell-fill);
box-shadow:
0 40px 120px rgba(0, 0, 0, 0.12),
inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
@media (max-width: 639px) {
:root {
--platform-bottom-nav-height: 3.25rem;
--platform-bottom-nav-padding: 0.18rem;
--platform-bottom-nav-gap: 0.12rem;
--platform-bottom-nav-radius: 1rem;
--platform-bottom-nav-button-radius: 0.88rem;
--platform-bottom-nav-icon-size: 0.98rem;
--platform-bottom-nav-icon-shell-size: 1.42rem;
--platform-bottom-nav-label-size: 10px;
--platform-bottom-nav-label-tracking: 0.08em;
--platform-bottom-nav-content-gap: 0.18rem;
}
.platform-page-stage {
border-radius: 1.35rem;
border-color: color-mix(
in srgb,
var(--platform-page-border) 72%,
transparent
);
box-shadow: none;
}
.platform-surface {
border-radius: 1.4rem;
}
.platform-pill {
padding: 0.3rem 0.68rem;
letter-spacing: 0.1em;
}
.creation-work-card-stat {
min-height: 2.88rem;
padding: 0.36rem 0.34rem 0.42rem;
}
.creation-work-card-stat__label {
font-size: 0.58rem;
}
.creation-work-card-stat__number {
font-size: 0.9rem;
}
.creation-work-card-stat__unit {
font-size: 0.54rem;
}
.creation-work-card-incentive {
gap: 0.28rem;
}
.creation-work-card-incentive__metric {
padding: 0.34rem 0.34rem;
}
.creation-work-card-incentive__label {
font-size: 0.54rem;
}
.creation-work-card-incentive__value {
font-size: 0.82rem;
}
.creation-work-card-incentive__button {
min-height: 2.34rem;
padding: 0 0.48rem;
font-size: 0.62rem;
}
.platform-tab-panel {
padding-right: 0;
}
.platform-bottom-nav__label {
white-space: nowrap;
}
.platform-mobile-entry-shell,
.platform-mobile-entry-shell > *,
.platform-mobile-home-stage,
.platform-mobile-home-stage > *,
.platform-mobile-home-stage section {
max-width: 100%;
min-width: 0;
}
.platform-mobile-entry-shell {
box-sizing: border-box;
padding-bottom: var(--platform-bottom-dock-outer-height);
}
.platform-mobile-bottom-dock {
position: fixed;
right: max(0.75rem, env(safe-area-inset-right, 0px));
bottom: 0;
left: max(0.75rem, env(safe-area-inset-left, 0px));
z-index: 60;
padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 0.5rem);
}
.platform-mobile-home-stage {
box-sizing: border-box;
width: 100%;
max-width: calc(100vw - 1rem);
}
.platform-mobile-home-stage .platform-surface--hero {
max-width: 100%;
}
.platform-mobile-home-stage {
gap: 0.75rem;
}
.platform-mobile-home-stage .platform-desktop-search {
border-radius: 9999px;
padding: 0.64rem 0.9rem;
}
.platform-mobile-home-channelbar {
margin-right: -0.25rem;
padding-left: 0.08rem;
}
.platform-mobile-home-channel {
position: relative;
min-height: 2rem;
border: 0;
background: transparent;
color: var(--platform-text-soft);
font-size: 0.92rem;
font-weight: 700;
white-space: nowrap;
}
.platform-mobile-home-channel--active {
color: var(--platform-text-strong);
}
.platform-mobile-home-channel--active::after {
content: '';
position: absolute;
left: 0;
right: 0;
bottom: 0.1rem;
height: 0.16rem;
border-radius: 9999px;
background: var(--platform-warm-text);
}
.platform-mobile-home-feed {
min-width: 0;
}
.platform-ranking-panel {
padding-inline: 0.85rem;
}
.platform-ranking-item {
grid-template-columns: 1.7rem 4.1rem minmax(0, 1fr) auto;
gap: 0.56rem;
min-height: 5.15rem;
border-radius: 1rem;
padding: 0.56rem;
}
.platform-ranking-item__cover {
border-radius: 0.82rem;
}
.platform-ranking-item__action {
min-width: 3.55rem;
min-height: 2.15rem;
padding-inline: 0.62rem;
font-size: 0.82rem;
}
.platform-ranking-item__tags {
gap: 0.28rem;
margin-top: 0.28rem;
}
.platform-ranking-item__tags span {
max-width: 4.2rem;
padding-inline: 0.4rem;
font-size: 0.64rem;
}
.platform-category-list-panel {
gap: 0.64rem;
}
.platform-category-filter-row {
border-radius: 1rem;
gap: 0.5rem;
padding: 0.46rem 0.5rem;
}
.platform-category-filter-button {
min-height: 2.05rem;
padding-inline: 0.62rem;
font-size: 0.8rem;
}
.platform-category-chip {
min-height: 2.05rem;
border-radius: 0.68rem;
padding-inline: 0.78rem;
font-size: 0.8rem;
}
.platform-category-game-list {
gap: 0.7rem;
}
.platform-category-game-item {
grid-template-columns: 4.3rem minmax(0, 1fr) auto;
gap: 0.62rem;
}
.platform-category-game-item__cover {
border-radius: 0.86rem;
}
.platform-category-game-item__title {
font-size: 0.94rem;
}
.platform-category-game-item__meta {
font-size: 0.72rem;
}
.platform-category-game-item__summary {
font-size: 0.78rem;
}
.platform-category-game-item__action {
min-width: 3.45rem;
min-height: 2.08rem;
padding-inline: 0.6rem;
font-size: 0.82rem;
}
.platform-public-work-card {
width: 100%;
border-radius: 0.9rem;
background: color-mix(
in srgb,
var(--platform-subpanel-fill) 82%,
#050506 18%
);
}
.platform-public-work-card__cover {
border-radius: 0;
}
.platform-public-work-card__body {
min-height: 5.4rem;
padding: 0.68rem 0.76rem 0.72rem;
background: color-mix(
in srgb,
var(--platform-subpanel-fill) 78%,
#050506 22%
);
}
.platform-mobile-hero-secondary {
display: none;
}
.platform-bottom-nav__button--primary .platform-bottom-nav__icon-shell {
width: calc(var(--platform-bottom-nav-icon-shell-size) + 0.48rem);
height: calc(var(--platform-bottom-nav-icon-shell-size) + 0.48rem);
}
}
.platform-desktop-shell::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
background: radial-gradient(
circle at top left,
var(--platform-shell-glow-1),
transparent 24%
),
radial-gradient(
circle at top right,
var(--platform-shell-glow-2),
transparent 18%
),
radial-gradient(
circle at 50% 0%,
var(--platform-shell-glow-3),
transparent 30%
);
}
.platform-desktop-shell::after {
content: '';
position: absolute;
inset: 1rem;
border: 1px solid var(--platform-desktop-shell-inner-border);
border-radius: 2rem;
pointer-events: none;
}
.platform-desktop-topbar {
position: relative;
overflow: hidden;
border: 1px solid var(--platform-desktop-panel-border);
border-radius: 9999px;
background: var(--platform-desktop-topbar-fill);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.04),
0 16px 32px rgba(0, 0, 0, 0.08);
backdrop-filter: blur(22px);
}
.platform-desktop-topbar::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
background: radial-gradient(
circle at left,
var(--platform-shell-glow-1),
transparent 22%
),
radial-gradient(
circle at right,
var(--platform-shell-glow-2),
transparent 24%
);
}
.platform-desktop-search {
border: 1px solid var(--platform-desktop-panel-border);
border-radius: 9999px;
background: var(--platform-subpanel-fill);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.platform-desktop-rail {
position: relative;
overflow: hidden;
border: 1px solid var(--platform-desktop-panel-border);
border-radius: 1.9rem;
background: var(--platform-desktop-panel-fill);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.04),
0 18px 44px rgba(0, 0, 0, 0.08);
}
.platform-desktop-rail__button {
display: flex;
min-height: 5.25rem;
width: 100%;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.6rem;
border: 1px solid transparent;
border-radius: 1.5rem;
color: var(--platform-nav-item-text);
transition:
transform 180ms ease,
border-color 180ms ease,
background-color 180ms ease,
box-shadow 180ms ease,
color 180ms ease;
}
.platform-desktop-rail__button:hover {
transform: translateY(-1px);
border-color: var(--platform-line-soft);
background: var(--platform-subpanel-fill);
color: var(--platform-text-strong);
}
.platform-desktop-rail__button--active {
border-color: var(--platform-nav-active-border);
background: var(--platform-nav-active-fill);
color: var(--platform-text-strong);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.08),
var(--platform-nav-active-shadow);
}
.platform-desktop-rail__button--primary {
min-height: 5.85rem;
border-color: var(--platform-nav-active-border);
background: var(--platform-nav-active-fill);
box-shadow: var(--platform-nav-active-shadow);
}
.platform-desktop-rail__button--primary .platform-desktop-rail__icon-shell {
transform: scale(1.1);
background: var(--platform-nav-item-icon-active-fill);
box-shadow: var(--platform-nav-icon-active-shadow);
}
.platform-desktop-rail__button--primary .platform-desktop-rail__icon,
.platform-desktop-rail__button--primary .platform-desktop-rail__label {
color: var(--platform-nav-item-text-active);
}
.platform-desktop-panel {
position: relative;
overflow: hidden;
border: 1px solid var(--platform-desktop-panel-border);
border-radius: 1.9rem;
background: var(--platform-desktop-panel-fill);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.04),
0 18px 44px rgba(0, 0, 0, 0.08);
backdrop-filter: blur(22px);
}
.platform-desktop-panel::before {
content: '';
position: absolute;
inset: 0;
pointer-events: none;
background: radial-gradient(
circle at top right,
var(--platform-surface-glow-a),
transparent 24%
),
radial-gradient(
circle at bottom left,
var(--platform-surface-glow-b),
transparent 26%
);
}
.platform-desktop-panel > * {
position: relative;
z-index: 1;
}
.platform-desktop-trending-item {
position: relative;
overflow: hidden;
border: 1px solid var(--platform-subpanel-border);
border-radius: 1.4rem;
background: var(--platform-subpanel-fill);
transition:
transform 180ms ease,
border-color 180ms ease,
background-color 180ms ease,
box-shadow 180ms ease;
}
.platform-desktop-trending-item:hover {
transform: translateY(-2px);
border-color: var(--platform-surface-hover-border);
background: rgba(255, 255, 255, 0.9);
box-shadow: var(--platform-desktop-hover-shadow);
}
.platform-auth-card {
border: 1px solid var(--platform-modal-border);
background: var(--platform-modal-fill);
box-shadow: 0 24px 80px rgba(0, 0, 0, 0.16);
backdrop-filter: blur(18px);
}
.platform-subpanel {
border: 1px solid var(--platform-subpanel-border);
background: var(--platform-subpanel-fill);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}
.platform-input {
min-height: 2.75rem;
width: 100%;
border: 1px solid var(--platform-subpanel-border);
border-radius: 1rem;
background: var(--platform-input-fill);
padding: 0.75rem 1rem;
color: var(--platform-text-strong);
outline: none;
transition:
border-color 180ms ease,
background-color 180ms ease,
box-shadow 180ms ease;
box-shadow: inset 0 1px 0 var(--platform-input-highlight);
}
.platform-input::placeholder {
color: var(--platform-text-soft);
}
.platform-input:focus {
border-color: var(--platform-nav-active-border);
background: var(--platform-input-fill-focus);
box-shadow: 0 0 0 3px var(--platform-input-focus-ring);
}
.platform-profile-input {
border: 1px solid var(--platform-subpanel-border);
background: var(--platform-input-fill);
color: var(--platform-text-strong);
outline: none;
box-shadow: inset 0 1px 0 var(--platform-input-highlight);
transition:
border-color 180ms ease,
background-color 180ms ease,
box-shadow 180ms ease;
}
.platform-profile-input::placeholder {
color: var(--platform-text-soft);
}
.platform-profile-input:focus {
border-color: var(--platform-nav-active-border);
background: var(--platform-input-fill-focus);
box-shadow: 0 0 0 3px var(--platform-input-focus-ring);
}
.platform-primary-button {
border: 1px solid var(--platform-button-primary-border);
background: var(--platform-button-primary-fill);
color: var(--platform-button-primary-text);
box-shadow: var(--platform-profile-action-shadow);
transition:
transform 180ms ease,
filter 180ms ease,
opacity 180ms ease;
}
.platform-primary-button:hover:not(:disabled) {
transform: translateY(-1px);
filter: brightness(1.02);
}
.platform-modal-close {
background: var(--platform-profile-chip-fill);
color: var(--platform-profile-chip-text);
transition:
background-color 180ms ease,
color 180ms ease,
transform 180ms ease;
}
.platform-modal-close:hover {
background: var(--platform-profile-chip-hover-fill);
color: var(--platform-text-strong);
}
.platform-profile-error {
border: 1px solid var(--platform-button-danger-border);
background: var(--platform-button-danger-fill);
color: var(--platform-button-danger-text);
}
.platform-profile-success {
border: 1px solid var(--platform-success-border);
background: var(--platform-success-bg);
color: var(--platform-success-text);
}
.platform-profile-hero {
overflow: hidden;
border: 1px solid var(--platform-profile-hero-border);
background: var(--platform-profile-hero-fill);
color: var(--platform-text-strong);
box-shadow: var(--platform-profile-hero-shadow);
}
.platform-profile-avatar {
background: var(--platform-profile-avatar-fill);
color: white;
box-shadow: var(--platform-profile-avatar-shadow);
}
.platform-profile-camera,
.platform-profile-chip,
.platform-profile-icon-button {
background: var(--platform-profile-chip-fill);
color: var(--platform-profile-chip-text);
transition:
background-color 180ms ease,
color 180ms ease,
transform 180ms ease;
}
.platform-profile-camera {
border: 1px solid var(--platform-subpanel-border);
}
.platform-profile-chip:hover,
.platform-profile-icon-button:hover {
background: var(--platform-profile-chip-hover-fill);
color: var(--platform-text-strong);
}
.platform-profile-action {
background: var(--platform-profile-action-fill);
color: var(--platform-profile-action-text);
box-shadow: var(--platform-profile-action-shadow);
transition:
transform 180ms ease,
filter 180ms ease;
}
.platform-profile-action:hover {
transform: translateY(-1px);
filter: brightness(1.02);
}
.platform-role-studio__preview {
border: 1px solid var(--platform-subpanel-border);
background: radial-gradient(
circle at top,
var(--platform-surface-glow-a),
transparent 48%
),
var(--platform-subpanel-fill);
}
.platform-role-studio__stage {
border: 1px solid var(--platform-subpanel-border);
background: var(--platform-track-fill);
}
.platform-npc-portrait {
border: 1px solid var(--platform-subpanel-border);
background: radial-gradient(
circle at top,
var(--platform-surface-glow-a),
transparent 48%
),
var(--platform-subpanel-fill);
}
.platform-npc-portrait__grid {
opacity: 0.14;
background-image: linear-gradient(
var(--platform-line-soft) 1px,
transparent 1px
),
linear-gradient(90deg, var(--platform-line-soft) 1px, transparent 1px);
background-size: 16px 16px;
}
.platform-role-studio__footer {
border-top: 1px solid var(--platform-subpanel-border);
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.08) 0%,
transparent 16%
),
var(--platform-desktop-panel-fill);
backdrop-filter: blur(18px);
}
.platform-theme
:where(
.platform-modal-shell,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface,
.platform-role-studio
)
:where(
input:not([type='file']):not([type='range']):not([type='checkbox']):not(
[type='radio']
),
textarea,
select
) {
border-color: var(--platform-subpanel-border) !important;
background: var(--platform-input-fill) !important;
color: var(--platform-text-strong) !important;
box-shadow: inset 0 1px 0 var(--platform-input-highlight);
}
.platform-theme
:where(
.platform-modal-shell,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface,
.platform-role-studio
)
:where(
input:not([type='file']):not([type='range']):not([type='checkbox']):not(
[type='radio']
),
textarea,
select
)::placeholder {
color: var(--platform-text-soft) !important;
}
.platform-theme
:where(
.platform-modal-shell,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface,
.platform-role-studio
)
:where(
input:not([type='file']):not([type='range']):not([type='checkbox']):not(
[type='radio']
),
textarea,
select
):focus {
border-color: var(--platform-nav-active-border) !important;
background: var(--platform-input-fill-focus) !important;
box-shadow: 0 0 0 3px var(--platform-input-focus-ring);
}
.platform-banner {
border-radius: 1rem;
border: 1px solid var(--platform-subpanel-border);
padding: 0.875rem 1rem;
}
.platform-banner--info {
border-color: var(--platform-cool-border);
background: var(--platform-cool-bg);
color: var(--platform-cool-text);
}
.platform-banner--warning {
border-color: var(--platform-warm-border);
background: var(--platform-warm-bg);
color: var(--platform-warm-text);
}
.platform-banner--success {
border-color: var(--platform-success-border);
background: var(--platform-success-bg);
color: var(--platform-success-text);
}
.platform-banner--danger {
border-color: rgba(251, 113, 133, 0.2);
background: rgba(244, 63, 94, 0.1);
color: #c2415d;
}
.platform-progress-track {
border: 1px solid var(--platform-track-border);
background: var(--platform-track-fill);
}
.platform-cover-artwork {
background: radial-gradient(
circle at top,
var(--platform-surface-glow-a),
transparent 42%
),
var(--platform-subpanel-fill);
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface
)[class*='text-white'],
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface
)[class*='text-zinc-50'],
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface
)[class*='text-zinc-100'] {
color: var(--platform-text-strong) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface
)[class*='text-zinc-200'],
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface
)[class*='text-zinc-300'] {
color: var(--platform-text-base) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface
)[class*='text-zinc-400'],
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface
)[class*='text-zinc-500'] {
color: var(--platform-text-soft) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='text-white'],
[class*='text-zinc-50'],
[class*='text-zinc-100']
) {
color: var(--platform-text-strong) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel
)
:where([class*='text-zinc-200'], [class*='text-zinc-300']) {
color: var(--platform-text-base) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-desktop-topbar,
.platform-desktop-search,
.platform-desktop-rail,
.platform-auth-card,
.platform-subpanel
)
:where([class*='text-zinc-400'], [class*='text-zinc-500']) {
color: var(--platform-text-soft) !important;
}
.platform-theme--light
.platform-surface:not(.platform-surface--hero)
:where([class*='bg-black/18'], [class*='bg-black/24']),
.platform-theme--light
.platform-subpanel:where([class*='bg-black/18'], [class*='bg-black/24']),
.platform-theme--light
.platform-remap-surface:where(
[class*='bg-black/18'],
[class*='bg-black/24']
) {
background: var(--platform-subpanel-fill) !important;
}
.platform-theme--light
.platform-surface:not(.platform-surface--hero)
:where(
[class*='border-white/10'],
[class*='border-white/12'],
[class*='border-white/15']
),
.platform-theme--light
.platform-subpanel:where(
[class*='border-white/10'],
[class*='border-white/12'],
[class*='border-white/15']
),
.platform-theme--light
.platform-remap-surface:where(
[class*='border-white/10'],
[class*='border-white/12'],
[class*='border-white/15']
) {
border-color: var(--platform-subpanel-border) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='bg-black/10'],
[class*='bg-black/16'],
[class*='bg-black/18'],
[class*='bg-black/20'],
[class*='bg-black/22'],
[class*='bg-black/25'],
[class*='bg-black/26'],
[class*='bg-black/30'],
[class*='bg-black/35'],
[class*='bg-black/46'],
[class*='bg-black/55'],
[class*='bg-white/5'],
[class*='bg-white/6'],
[class*='bg-white/8']
) {
background: var(--platform-subpanel-fill) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='border-white/8'],
[class*='border-white/10'],
[class*='border-white/12'],
[class*='border-white/16'],
[class*='border-white/18'],
[class*='border-white/20'],
[class*='border-white/22'],
[class*='border-white/25']
) {
border-color: var(--platform-subpanel-border) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='text-sky-50'],
[class*='text-sky-100'],
[class*='text-sky-200'],
[class*='text-sky-300']
) {
color: var(--platform-cool-text) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='bg-sky-500/8'],
[class*='bg-sky-500/10'],
[class*='bg-sky-500/12'],
[class*='bg-sky-500/15']
) {
background-color: var(--platform-cool-bg) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='border-sky-200/'],
[class*='border-sky-300/'],
[class*='border-sky-400/']
) {
border-color: var(--platform-cool-border) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='text-amber-50'],
[class*='text-amber-100'],
[class*='text-amber-200']
) {
color: var(--platform-warm-text) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='bg-amber-500/8'],
[class*='bg-amber-500/10'],
[class*='bg-amber-500/12'],
[class*='bg-amber-500/15']
) {
background-color: var(--platform-warm-bg) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-auth-card,
.platform-subpanel
)
:where([class*='border-amber-300/'], [class*='border-amber-400/']) {
border-color: var(--platform-warm-border) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='text-emerald-50'],
[class*='text-emerald-100'],
[class*='text-emerald-600']
) {
color: var(--platform-success-text) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where(
[class*='bg-emerald-500/8'],
[class*='bg-emerald-500/10'],
[class*='bg-emerald-500/12'],
[class*='bg-emerald-500/15']
) {
background-color: var(--platform-success-bg) !important;
}
.platform-theme--light
:where(
.platform-surface:not(.platform-surface--hero),
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel
)
:where([class*='border-emerald-300/'], [class*='border-emerald-400/']) {
border-color: var(--platform-success-border) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='text-white'],
[class*='text-zinc-50'],
[class*='text-zinc-100']
) {
color: var(--platform-text-strong) !important;
}
.platform-theme--light
.platform-remap-surface
:where([class*='text-zinc-200'], [class*='text-zinc-300']) {
color: var(--platform-text-base) !important;
}
.platform-theme--light
.platform-remap-surface
:where([class*='text-zinc-400'], [class*='text-zinc-500']) {
color: var(--platform-text-soft) !important;
}
.platform-theme--light
:where(
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel,
.platform-remap-surface,
.platform-role-studio
)
:where(
[class~='bg-black/24'],
[class~='bg-black/26'],
[class~='bg-black/30'],
[class~='bg-[#111318]/92'],
[class~='bg-[#111318]/95'],
[class~='bg-[#11161f]']
) {
background: var(--platform-subpanel-fill) !important;
}
.platform-theme--light
:where(
.platform-modal-shell,
.platform-desktop-panel,
.platform-desktop-trending-item,
.platform-auth-card,
.platform-subpanel,
.platform-role-studio
)
:where([class~='bg-white/10'], [class~='bg-white/12']) {
background-color: var(--platform-track-fill) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class~='bg-black/18'],
[class~='bg-black/20'],
[class~='bg-black/22'],
[class~='bg-black/24'],
[class~='bg-black/26'],
[class~='bg-black/30'],
[class~='bg-[#111318]/92'],
[class~='bg-[#111318]/95'],
[class~='bg-white/5'],
[class~='bg-white/6'],
[class~='bg-white/8']
) {
background: var(--platform-subpanel-fill) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='border-white/8'],
[class*='border-white/10'],
[class*='border-white/12'],
[class*='border-white/14'],
[class*='border-white/16'],
[class*='border-white/18'],
[class*='border-white/20'],
[class*='border-white/22'],
[class*='border-white/25']
) {
border-color: var(--platform-subpanel-border) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='text-sky-50'],
[class*='text-sky-100'],
[class*='text-sky-200'],
[class*='text-sky-300']
) {
color: var(--platform-cool-text) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='bg-sky-500/8'],
[class*='bg-sky-500/10'],
[class*='bg-sky-500/12'],
[class*='bg-sky-500/15']
) {
background-color: var(--platform-cool-bg) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='border-sky-200/'],
[class*='border-sky-300/'],
[class*='border-sky-400/']
) {
border-color: var(--platform-cool-border) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='text-amber-50'],
[class*='text-amber-100'],
[class*='text-amber-200']
) {
color: var(--platform-warm-text) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='bg-amber-500/8'],
[class*='bg-amber-500/10'],
[class*='bg-amber-500/12'],
[class*='bg-amber-500/15']
) {
background-color: var(--platform-warm-bg) !important;
}
.platform-theme--light
.platform-remap-surface
:where([class*='border-amber-300/'], [class*='border-amber-400/']) {
border-color: var(--platform-warm-border) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='text-emerald-50'],
[class*='text-emerald-100'],
[class*='text-emerald-600']
) {
color: var(--platform-success-text) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class*='bg-emerald-500/8'],
[class*='bg-emerald-500/10'],
[class*='bg-emerald-500/12'],
[class*='bg-emerald-500/15']
) {
background-color: var(--platform-success-bg) !important;
}
.platform-theme--light
.platform-remap-surface
:where([class*='border-emerald-300/'], [class*='border-emerald-400/']) {
border-color: var(--platform-success-border) !important;
}
/* 结果页亮色主题细节:只接管旧深色工具类,不改变页面结构。 */
.platform-theme--light .platform-result-hero {
border-color: var(--platform-surface-border) !important;
background: radial-gradient(
circle at top left,
rgba(255, 204, 219, 0.34),
transparent 34%
),
linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(255, 248, 250, 0.9)) !important;
color: var(--platform-text-strong) !important;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.84),
0 18px 42px rgba(222, 82, 124, 0.1);
}
.platform-theme--light
.platform-result-hero
:where([class*='text-white'], [class*='text-cyan-50']) {
color: var(--platform-text-strong) !important;
}
.platform-theme--light
.platform-result-hero
:where([class*='bg-white/10'], [class*='bg-white/12']) {
border: 1px solid var(--platform-subpanel-border);
background: var(--platform-subpanel-fill) !important;
color: var(--platform-text-base) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class~='bg-white/52'],
[class~='bg-white/72'],
[class~='bg-white/78'],
[class~='bg-white/86'],
[class~='bg-white/90']
) {
background: var(--platform-subpanel-fill) !important;
}
.platform-theme--light
.platform-remap-surface
:where(
[class~='bg-amber-600'],
[class~='bg-cyan-600'],
[class~='bg-cyan-200']
) {
border-color: var(--platform-button-primary-border) !important;
background: var(--platform-button-primary-fill) !important;
color: var(--platform-button-primary-text) !important;
box-shadow: 0 12px 26px rgba(255, 91, 132, 0.16);
}
.platform-theme--light .map-modal-overlay {
background: rgba(73, 45, 56, 0.24) !important;
}
.platform-theme--light .map-modal-shell {
background: var(--platform-modal-fill);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.78),
0 24px 70px rgba(131, 77, 98, 0.2) !important;
}
.platform-theme--light .map-modal-backdrop {
opacity: 0.18;
filter: saturate(0.82) brightness(1.28);
}
.platform-theme--light .map-modal-shade {
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.7),
rgba(255, 247, 250, 0.88)
) !important;
}
.platform-theme--light .map-info-panel,
.platform-theme--light .map-room-cell {
color: var(--platform-text-base) !important;
--frame-base: rgba(255, 255, 255, 0.9);
}
.platform-theme--light .map-room-cell {
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.78),
0 10px 22px rgba(132, 90, 106, 0.08);
}
.platform-theme--light .map-modal-shell svg line {
stroke: rgba(217, 53, 112, 0.32);
}
button {
cursor: pointer;
}
.pixel-root-shell {
image-rendering: pixelated;
}
.pixel-app-shell {
background-position: center;
background-repeat: repeat;
image-rendering: pixelated;
}
.pixel-nine-slice {
box-sizing: border-box;
border-style: solid;
border-color: transparent;
border-top-width: calc(
var(--slice-top, 16) * var(--frame-scale, var(--ui-scale)) * 1px
);
border-right-width: calc(
var(--slice-right, 16) * var(--frame-scale, var(--ui-scale)) * 1px
);
border-bottom-width: calc(
var(--slice-bottom, 16) * var(--frame-scale, var(--ui-scale)) * 1px
);
border-left-width: calc(
var(--slice-left, 16) * var(--frame-scale, var(--ui-scale)) * 1px
);
border-image-source: var(--frame-src);
border-image-slice: var(--slice-top, 16) var(--slice-right, 16)
var(--slice-bottom, 16) var(--slice-left, 16) fill;
border-image-repeat: var(--frame-repeat, round);
padding: calc(
var(--frame-pad-y, 12) * var(--frame-scale, var(--ui-scale)) * 1px
)
calc(var(--frame-pad-x, 14) * var(--frame-scale, var(--ui-scale)) * 1px);
background-color: var(--frame-base, transparent);
}
.pixel-pressable {
transition:
transform 160ms ease,
filter 160ms ease;
}
.pixel-pressable:hover {
transform: translateY(-1px);
filter: brightness(1.04);
}
.pixel-pressable:active {
transform: translateY(0);
filter: brightness(0.98);
}
.pixel-section-title {
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.8);
}
.pixel-world-button {
min-height: clamp(7.5rem, 26vw, 10.5rem);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: clamp(0.35rem, 1.5vw, 0.7rem);
text-align: center;
}
.pixel-world-button__icon {
width: clamp(2rem, 9vw, 3.2rem);
height: clamp(2rem, 9vw, 3.2rem);
}
.pixel-world-button__label {
font-size: clamp(0.9rem, 2.8vw, 1.05rem);
font-weight: 700;
color: #fff7ed;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.85);
}
.pixel-character-card {
min-height: clamp(7rem, 24vw, 9rem);
}
.pixel-tab-button {
display: flex;
min-height: 1.65rem;
align-items: center;
justify-content: center;
}
.pixel-tab-button__inner {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 0.35rem;
}
.pixel-tab-button__icon {
width: 0.9rem;
height: 0.9rem;
}
.pixel-tab-button__label {
font-size: clamp(0.66rem, 1.9vw, 0.78rem);
font-weight: 700;
line-height: 1.2;
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.85);
}
.pixel-tab-button--active .pixel-tab-button__label {
color: #fff7ed;
}
.pixel-panel {
min-width: 0;
}
.pixel-choice-button {
min-width: 0;
}
.pixel-modal-shell {
min-width: 0;
}
.world-carousel {
--world-card-height: 10rem;
display: flex;
flex-direction: column;
gap: 1rem;
min-height: 0;
width: 100%;
max-width: 24rem;
margin: 0 auto;
overflow-y: auto;
padding: max(0.75rem, calc(50% - var(--world-card-height) / 2)) 0.15rem;
scroll-snap-type: y mandatory;
overscroll-behavior-y: contain;
}
.world-carousel__card {
display: flex;
flex-direction: column;
gap: 1rem;
min-height: var(--world-card-height);
transform-origin: center center;
transition:
transform 220ms ease,
opacity 220ms ease,
filter 220ms ease;
scroll-snap-align: center;
will-change: transform, opacity, filter;
}
.world-carousel__card-top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
}
.world-carousel__badge {
display: inline-flex;
align-items: center;
border-width: 1px;
border-radius: 9999px;
padding: 0.25rem 0.75rem;
font-size: 10px;
letter-spacing: 0.22em;
}
.world-carousel__title {
display: block;
font-size: clamp(1.55rem, 5vw, 2rem);
font-weight: 900;
color: white;
}
.world-carousel__bottom {
display: flex;
margin-top: auto;
}
.world-carousel__tags {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.world-carousel__tag {
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(0, 0, 0, 0.2);
border-radius: 9999px;
padding: 0.3rem 0.7rem;
font-size: 11px;
color: rgb(244 244 245);
}
.character-carousel {
--character-card-width: clamp(12rem, 52vw, 15rem);
display: flex;
gap: 0.9rem;
min-height: 0;
overflow-x: auto;
padding: 0.8rem max(1rem, calc(50% - var(--character-card-width) / 2));
scroll-snap-type: x mandatory;
overscroll-behavior-x: contain;
}
.character-carousel__card {
flex: 0 0 var(--character-card-width);
height: clamp(16.25rem, 38vh, 18.5rem);
scroll-snap-align: center;
transition:
transform 220ms ease,
opacity 220ms ease,
filter 220ms ease;
transform-origin: center bottom;
will-change: transform, opacity, filter;
}
.character-carousel__surface {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 24px;
background: linear-gradient(
180deg,
rgba(18, 22, 30, 0.92),
rgba(6, 8, 12, 0.98)
);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
}
.character-carousel__surface--active {
border-color: rgba(251, 191, 36, 0.4);
box-shadow: 0 20px 50px rgba(251, 191, 36, 0.12);
}
.character-carousel__cover {
position: relative;
display: flex;
flex: 1;
align-items: flex-end;
justify-content: center;
overflow: hidden;
background: radial-gradient(
circle at 50% 22%,
rgba(255, 255, 255, 0.14),
transparent 42%
),
linear-gradient(
180deg,
rgba(255, 255, 255, 0.06),
rgba(255, 255, 255, 0) 38%
);
}
.character-carousel__portrait {
width: 100%;
height: 100%;
object-fit: contain;
transform: scale(1.32) translateY(6px);
}
.character-carousel__portrait--animated {
height: 86%;
transform: scale(1.22) translateY(10px);
transform-origin: center bottom;
}
.character-carousel__meta {
display: flex;
flex-direction: column;
gap: 0.4rem;
padding: 0.75rem 0.85rem 0.85rem;
}
.character-carousel__meta--selected {
gap: 0.2rem;
padding-top: 0.05rem;
}
.character-carousel__role {
align-self: flex-start;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.06);
border-radius: 9999px;
padding: 0.25rem 0.7rem;
font-size: 10px;
color: rgb(228 228 231);
}
.character-carousel__name {
display: block;
font-size: 1.15rem;
font-weight: 900;
line-height: 1.15;
color: white;
}
.character-carousel__selected-name {
display: block;
padding: 0.35rem 0.85rem 0;
text-align: center;
font-size: 1rem;
font-weight: 900;
line-height: 1.15;
color: #fff;
text-shadow: none;
filter: none;
-webkit-backdrop-filter: none;
backdrop-filter: none;
}
.character-carousel__title {
display: block;
font-size: 9px;
letter-spacing: 0.18em;
color: rgb(161 161 170);
}
.character-carousel__title--selected {
text-align: center;
text-shadow: none;
filter: none;
-webkit-backdrop-filter: none;
backdrop-filter: none;
}
.character-carousel__stats {
display: flex;
flex-wrap: wrap;
gap: 0.45rem;
margin-top: 0.25rem;
}
.character-carousel__stat {
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.05);
border-radius: 9999px;
padding: 0.28rem 0.65rem;
font-size: 11px;
color: white;
}
.character-backstory-title {
font-size: 0;
line-height: 0;
}
.character-backstory-title::after {
content: '角色背景';
font-size: 0.75rem;
line-height: 1rem;
color: white;
}
.selection-strip {
display: flex;
gap: 1rem;
min-height: 0;
overflow-x: auto;
padding-bottom: 0.25rem;
scroll-snap-type: x proximity;
}
.flip-card {
flex: 0 0 clamp(17rem, 28vw, 20rem);
height: clamp(18rem, 44vh, 21rem);
perspective: 1600px;
scroll-snap-align: start;
}
.flip-card__inner {
position: relative;
display: block;
width: 100%;
height: 100%;
transform-style: preserve-3d;
transition: transform 360ms ease;
}
.flip-card:hover .flip-card__inner,
.flip-card--flipped .flip-card__inner {
transform: rotateY(180deg);
}
.flip-card__face {
position: absolute;
inset: 0;
display: block;
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
}
.flip-card__face--back {
transform: rotateY(180deg);
}
.world-stack {
display: flex;
flex-direction: column;
gap: 0.9rem;
min-height: 0;
width: 100%;
max-width: 24rem;
margin: 0 auto;
overflow-y: auto;
padding-right: 0.15rem;
scroll-snap-type: y proximity;
}
.world-stack-card {
display: flex;
flex-direction: column;
gap: 1.15rem;
min-height: 9rem;
scroll-snap-align: start;
}
.world-stack-card__top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 1rem;
}
.world-stack-card__badge {
display: inline-flex;
align-items: center;
border-width: 1px;
border-radius: 9999px;
padding: 0.25rem 0.75rem;
font-size: 10px;
letter-spacing: 0.22em;
}
.world-stack-card__title {
display: block;
font-size: clamp(1.55rem, 5vw, 2rem);
font-weight: 900;
color: white;
}
.world-stack-card__bottom {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 1rem;
margin-top: auto;
}
.world-stack-card__tags {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.world-stack-card__tag {
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(0, 0, 0, 0.2);
border-radius: 9999px;
padding: 0.3rem 0.7rem;
font-size: 11px;
color: rgb(244 244 245);
}
.world-stack-card__enter {
flex: none;
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(255, 255, 255, 0.06);
border-radius: 9999px;
padding: 0.42rem 0.95rem;
font-size: 12px;
font-weight: 700;
color: white;
}
@media (max-width: 640px) {
:root {
--ui-scale: 0.8;
--platform-bottom-nav-height: 3.35rem;
--platform-bottom-nav-label-size: 10px;
}
.platform-main-shell {
padding-inline: max(0.75rem, env(safe-area-inset-left))
max(0.75rem, env(safe-area-inset-right));
padding-top: max(0.75rem, env(safe-area-inset-top));
padding-bottom: 0.5rem;
}
.platform-page-stage {
border-radius: 1.45rem;
}
.platform-bottom-nav {
position: relative;
z-index: 30;
}
.selection-hero-brand {
gap: 0.6rem;
}
.selection-hero-brand__title {
letter-spacing: 0.16em;
}
.selection-hero-brand__subtitle {
letter-spacing: 0.28em;
}
.platform-brand-logo {
width: auto;
}
.platform-brand-logo__title {
font-size: 1.72rem;
letter-spacing: 0.03em;
}
.platform-brand-logo__subtitle {
font-size: 0.5rem;
letter-spacing: 0.06em;
}
.world-carousel {
--world-card-height: 8.75rem;
max-width: 100%;
}
.character-carousel {
--character-card-width: 10.75rem;
gap: 0.65rem;
}
.character-carousel__card {
height: 15.5rem;
}
.character-carousel__cover {
min-height: 0;
}
.character-carousel__meta {
padding: 0.6rem 0.7rem 0.7rem;
}
.character-carousel__selected-name {
padding-inline: 0.65rem;
font-size: 0.95rem;
}
.character-carousel__name {
font-size: 1rem;
}
.character-carousel__title {
font-size: 8px;
letter-spacing: 0.14em;
}
.selection-strip {
gap: 0.75rem;
}
.flip-card {
flex-basis: 15rem;
height: 18rem;
}
.world-stack {
max-width: 100%;
}
.world-stack-card {
min-height: 8.75rem;
}
.world-stack-card__title {
font-size: 1.7rem;
}
.world-stack-card__bottom {
flex-direction: column;
align-items: flex-start;
}
.pixel-character-card {
min-height: 6.6rem;
}
.pixel-modal-shell {
max-height: min(90vh, 46rem);
overflow: auto;
}
}
@media (min-width: 641px) {
.world-carousel {
max-width: 28rem;
}
.world-stack {
max-width: 30rem;
}
}
/* Custom scrollbar for the story area */
::-webkit-scrollbar {
width: 4px;
}
.scrollbar-hide::-webkit-scrollbar {
display: none;
}
.scrollbar-hide {
-ms-overflow-style: none;
scrollbar-width: none;
}
.platform-work-detail {
display: flex;
height: 100%;
min-height: 0;
flex-direction: column;
overflow: hidden;
border: 1px solid var(--platform-page-border);
background: var(--platform-page-fill);
color: var(--platform-text-strong);
}
.platform-work-detail__topbar {
display: grid;
grid-template-columns: 3rem minmax(0, 1fr) 3rem;
align-items: center;
gap: 0.5rem;
padding: calc(env(safe-area-inset-top, 0px) + 0.7rem) 1rem 0.75rem;
border-bottom: 1px solid var(--platform-line-soft);
background: var(--platform-desktop-topbar-fill);
box-shadow: 0 0.75rem 1.8rem rgba(15, 23, 42, 0.05);
}
.platform-work-detail__title {
min-width: 0;
text-align: center;
font-size: 1rem;
font-weight: 800;
}
.platform-work-detail__icon-button {
display: inline-flex;
height: 2.5rem;
width: 2.5rem;
align-items: center;
justify-content: center;
border: 1px solid var(--platform-icon-border);
border-radius: 999px;
background: var(--platform-icon-fill);
color: var(--platform-icon-text);
}
.platform-work-detail__icon-button:disabled {
opacity: 0.45;
}
.platform-work-detail__scroll {
min-height: 0;
flex: 1;
overflow-y: auto;
padding-bottom: 1rem;
}
.platform-work-detail__cover {
position: relative;
display: flex;
aspect-ratio: 16 / 9;
width: 100%;
min-height: 0;
align-items: center;
justify-content: center;
overflow: hidden;
background: var(--platform-hero-fill);
}
.platform-work-detail__cover-blur {
position: absolute;
inset: -1rem;
height: calc(100% + 2rem);
width: calc(100% + 2rem);
object-fit: cover;
opacity: 0.55;
filter: blur(24px);
transform: scale(1.06);
}
.platform-work-detail__cover::after {
position: absolute;
inset: 0;
content: '';
background: var(--platform-card-overlay-strong);
}
.platform-work-detail__cover-image {
position: absolute;
inset: 0;
z-index: 1;
height: 100%;
width: 100%;
object-fit: cover;
}
.platform-work-detail__cover-image--locked {
filter: blur(18px) saturate(0.7);
opacity: 0.58;
transform: scale(1.08);
}
.platform-work-detail__cover-lock {
position: absolute;
inset: 0;
z-index: 2;
display: flex;
align-items: center;
justify-content: center;
background: rgba(15, 23, 42, 0.28);
backdrop-filter: blur(10px);
}
.platform-work-detail__cover-lock-icon {
width: clamp(3.6rem, 18vw, 7rem);
height: clamp(3.6rem, 18vw, 7rem);
color: rgba(255, 255, 255, 0.88);
filter: drop-shadow(0 1.2rem 2rem rgba(15, 23, 42, 0.34));
}
.platform-work-detail__cover-nav {
position: absolute;
top: 50%;
z-index: 3;
display: inline-flex;
height: 2.4rem;
width: 2.4rem;
align-items: center;
justify-content: center;
border: 1px solid rgba(255, 255, 255, 0.34);
border-radius: 999px;
background: rgba(15, 23, 42, 0.36);
color: #fff;
transform: translateY(-50%);
backdrop-filter: blur(14px);
}
.platform-work-detail__cover-nav--prev {
left: 0.8rem;
}
.platform-work-detail__cover-nav--next {
right: 0.8rem;
}
.platform-work-detail__cover-dots {
position: absolute;
right: 1rem;
bottom: 0.8rem;
left: 1rem;
z-index: 3;
display: flex;
justify-content: center;
gap: 0.38rem;
}
.platform-work-detail__cover-dot {
height: 0.45rem;
width: 0.45rem;
border: 0;
border-radius: 999px;
background: rgba(255, 255, 255, 0.46);
padding: 0;
transition:
background 160ms ease,
width 160ms ease;
}
.platform-work-detail__cover-dot--active {
width: 1.25rem;
background: #fff;
}
.platform-work-detail__cover-fallback {
position: absolute;
inset: 0;
background: var(--platform-hero-fill);
}
.platform-work-detail__summary {
border-bottom: 0.5rem solid var(--platform-page-border);
background: var(--platform-panel-fill);
padding: 1.4rem 1rem 1rem;
}
.platform-work-detail__meta-row {
display: grid;
grid-template-columns: 4.35rem minmax(0, 1fr) auto;
align-items: center;
gap: 0.9rem;
}
.platform-work-detail__app-icon {
display: flex;
aspect-ratio: 1;
width: 4.35rem;
align-items: center;
justify-content: center;
overflow: hidden;
border-radius: 1rem;
border: 1px solid var(--platform-icon-border);
background: var(--platform-profile-avatar-fill);
color: var(--platform-button-primary-text);
font-size: 1.25rem;
font-weight: 900;
box-shadow: var(--platform-profile-avatar-shadow);
}
.platform-work-detail__name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 1rem;
font-weight: 900;
}
.platform-work-detail__author {
display: flex;
min-width: 0;
align-items: center;
gap: 0.4rem;
margin-top: 0.45rem;
color: var(--platform-text-soft);
font-size: 0.8125rem;
}
.platform-work-detail__author-avatar {
display: inline-flex;
height: 1.35rem;
width: 1.35rem;
flex: 0 0 auto;
align-items: center;
justify-content: center;
overflow: hidden;
border: 1px solid var(--platform-icon-border);
border-radius: 999px;
background: var(--platform-profile-avatar-fill);
color: var(--platform-button-primary-text);
font-size: 0.7rem;
font-weight: 900;
box-shadow: 0 0.35rem 0.8rem rgba(15, 23, 42, 0.08);
}
.platform-work-detail__author-avatar-image {
height: 100%;
width: 100%;
object-fit: cover;
}
.platform-work-detail__author-avatar-label {
line-height: 1;
}
.platform-work-detail__author-name {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.platform-work-detail__like {
display: inline-flex;
min-width: 5.2rem;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.25rem;
border: 1px solid
color-mix(
in srgb,
var(--platform-work-like-accent, #ff6b6b) 24%,
transparent
);
border-radius: 1rem;
background: color-mix(
in srgb,
var(--platform-work-like-accent, #ff6b6b) 10%,
var(--platform-panel-fill) 90%
);
color: var(--platform-work-like-accent, #ff6b6b);
padding: 0.6rem 0.75rem;
font-size: 0.8125rem;
font-weight: 900;
box-shadow: 0 0.55rem 1.2rem
color-mix(
in srgb,
var(--platform-work-like-accent, #ff6b6b) 10%,
transparent
);
}
.platform-work-detail__remix:disabled,
.platform-work-detail__start:disabled {
cursor: not-allowed;
opacity: 0.62;
}
.platform-work-detail__stats {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0.45rem;
margin-top: 1.35rem;
}
.platform-work-detail__stat {
--platform-work-stat-accent: #ff4f8b;
position: relative;
min-width: 0;
overflow: hidden;
border: 1px solid
color-mix(in srgb, var(--platform-work-stat-accent) 24%, transparent);
border-radius: 0.5rem;
background: radial-gradient(
circle at 88% 0,
color-mix(in srgb, var(--platform-work-stat-accent) 14%, transparent),
transparent 58%
),
color-mix(in srgb, var(--platform-neutral-bg) 88%, #ffffff 12%);
padding: 0.5rem 0.42rem 0.48rem;
box-shadow: 0 0.55rem 1.2rem
color-mix(in srgb, var(--platform-work-stat-accent) 10%, transparent);
}
.platform-work-detail__stat--play {
--platform-work-stat-accent: #2f9d78;
}
.platform-work-detail__stat--like {
--platform-work-stat-accent: #ff6b6b;
}
.platform-work-detail__stat--time {
--platform-work-stat-accent: #6b7cff;
}
.platform-work-detail__stat-head {
position: relative;
z-index: 1;
display: flex;
min-width: 0;
align-items: center;
gap: 0.24rem;
white-space: nowrap;
}
.platform-work-detail__stat-icon {
display: inline-flex;
height: 1.32rem;
width: 1.32rem;
flex: 0 0 auto;
align-items: center;
justify-content: center;
border-radius: 0.42rem;
background: color-mix(
in srgb,
var(--platform-work-stat-accent) 13%,
#ffffff 87%
);
color: var(--platform-work-stat-accent);
box-shadow: inset 0 0 0 1px
color-mix(in srgb, var(--platform-work-stat-accent) 13%, transparent);
}
.platform-work-detail__stat-label {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
color: var(--platform-text-soft);
font-size: 0.6875rem;
font-weight: 800;
line-height: 1.2;
}
.platform-work-detail__stat-value {
position: relative;
z-index: 1;
display: flex;
min-width: 0;
align-items: baseline;
gap: 0.12rem;
margin-top: 0.4rem;
white-space: nowrap;
color: var(--platform-text-strong);
font-weight: 900;
line-height: 1.12;
}
.platform-work-detail__stat-number {
min-width: 0;
font-size: 1.05rem;
}
.platform-work-detail__stat-unit {
flex: 0 0 auto;
color: var(--platform-text-soft);
font-size: 0.625rem;
font-weight: 800;
}
.platform-work-detail__stat-value--time {
display: block;
overflow: hidden;
text-overflow: clip;
font-size: 0.6875rem;
font-weight: 900;
}
.platform-work-detail__stat-value--time .platform-work-detail__stat-number {
font-size: inherit;
}
.platform-work-detail__body {
background: var(--platform-panel-fill);
padding: 1.4rem 1rem 7rem;
}
.platform-work-detail__chips {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-bottom: 1rem;
}
.platform-work-detail__chip,
.platform-work-detail__code {
display: inline-flex;
align-items: center;
gap: 0.4rem;
border: 1px solid var(--platform-neutral-border);
border-radius: 0.7rem;
background: var(--platform-neutral-bg);
color: var(--platform-neutral-text);
padding: 0.42rem 0.75rem;
font-size: 0.75rem;
font-weight: 700;
}
.platform-work-detail__copy {
margin: 0;
color: var(--platform-text-base);
font-size: 0.875rem;
line-height: 1.7;
}
.platform-work-detail__code {
margin-top: 1.3rem;
}
.platform-work-detail__error,
.platform-work-detail__toast {
margin-top: 1rem;
border-radius: 0.85rem;
padding: 0.8rem 0.9rem;
font-size: 0.875rem;
}
.platform-work-detail__error {
border: 1px solid var(--platform-button-danger-border);
background: var(--platform-button-danger-fill);
color: var(--platform-button-danger-text);
}
.platform-work-detail__toast {
border: 1px solid var(--platform-success-border);
background: var(--platform-success-bg);
color: var(--platform-success-text);
}
.platform-work-detail__bottom {
position: sticky;
bottom: 0;
z-index: 5;
display: grid;
grid-template-columns: minmax(7.2rem, 0.44fr) minmax(0, 1fr);
gap: 0.7rem;
padding: 0.9rem 1rem calc(env(safe-area-inset-bottom, 0px) + 0.9rem);
border-top: 1px solid var(--platform-line-soft);
background: var(--platform-panel-fill);
backdrop-filter: blur(18px);
}
.platform-work-detail__remix,
.platform-work-detail__start {
display: inline-flex;
min-height: 3.4rem;
align-items: center;
justify-content: center;
gap: 0.55rem;
border: 1px solid var(--platform-button-primary-border);
border-radius: 999px;
background: var(--platform-button-primary-fill);
color: var(--platform-button-primary-text);
font-size: 1rem;
font-weight: 900;
box-shadow: var(--platform-profile-action-shadow);
}
.platform-work-detail__remix {
border: 1px solid var(--platform-neutral-border);
background: var(--platform-neutral-bg);
color: var(--platform-neutral-text);
font-size: 0.875rem;
}
.platform-work-detail__start {
border: 1px solid var(--platform-button-primary-border);
background: var(--platform-button-primary-fill);
color: var(--platform-button-primary-text);
font-size: 1rem;
}
@media (min-width: 768px) {
.platform-work-detail {
border-radius: 1.2rem;
}
.platform-work-detail__summary,
.platform-work-detail__body,
.platform-work-detail__bottom {
padding-left: max(2rem, calc((100% - 58rem) / 2));
padding-right: max(2rem, calc((100% - 58rem) / 2));
}
.platform-work-detail__topbar {
padding-left: 2rem;
padding-right: 2rem;
}
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: #27272a;
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
background: #3f3f46;
}