diff --git a/frontend/index.html b/frontend/index.html
index 5a7946d..d758788 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -4,6 +4,9 @@
+
+
+
- {/* Soundwave Animation */}
-
- {Array.from({ length: BAR_COUNT }).map((_, i) => {
- const envelope = getEnvelope(i);
- const duration = getDuration(i);
- return (
-
- );
- })}
-
-
- {/* Floating Glass Droplets for ambient feel */}
-
-
-
-
- {/* Light Glare / Glows */}
-
-
+
);
}
diff --git a/frontend/src/pages/home/index.less b/frontend/src/pages/home/index.less
index 63fc9c8..873e925 100644
--- a/frontend/src/pages/home/index.less
+++ b/frontend/src/pages/home/index.less
@@ -1,1704 +1,326 @@
-.home-landing {
- --home-primary-rgb: 103, 103, 244;
- --home-primary: #6767f4;
- --home-title-color: #272554;
- --home-body-color: #5d678c;
- --home-muted-color: #9198b2;
- --home-surface-strong: rgba(255, 255, 255, 0.92);
- --home-surface: rgba(247, 246, 255, 0.84);
- --home-surface-soft: rgba(255, 255, 255, 0.74);
- --home-border-strong: rgba(214, 205, 255, 0.96);
- --home-border: rgba(233, 228, 255, 0.96);
- --home-shadow: 0 22px 48px rgba(141, 132, 223, 0.14);
- position: relative;
- display: flex;
- flex-direction: column;
- min-height: calc(100vh - 172px);
- margin: -24px;
- padding: 30px 28px 8px;
- overflow: hidden;
- background:
- radial-gradient(circle at 14% 12%, rgba(170, 146, 255, 0.1), transparent 18%),
- radial-gradient(circle at 82% 16%, rgba(165, 214, 255, 0.12), transparent 24%),
- radial-gradient(circle at 62% 74%, rgba(255, 206, 232, 0.08), transparent 16%),
- linear-gradient(180deg, #ffffff 0%, #fdfdff 46%, #fafcff 100%);
- font-family: "Microsoft YaHei UI", "PingFang SC", "Hiragino Sans GB", sans-serif;
-}
-
-.home-landing__halo,
-.home-landing__visual,
-.home-landing__visual *,
-.home-landing__soundstage,
-.home-landing__soundstage * {
- pointer-events: none;
-}
-
-.home-landing__halo {
- position: absolute;
- border-radius: 999px;
- filter: blur(14px);
-}
-
-.home-landing__halo--large {
- top: -148px;
- right: -120px;
- width: 680px;
- height: 680px;
- background: radial-gradient(circle, rgba(232, 238, 255, 0.72) 0%, rgba(241, 245, 255, 0.34) 52%, rgba(255, 255, 255, 0) 80%);
-}
-
-.home-landing__halo--small {
- right: 260px;
- bottom: 116px;
- width: 180px;
- height: 180px;
- background: radial-gradient(circle, rgba(255, 215, 236, 0.14) 0%, rgba(214, 226, 255, 0.04) 46%, rgba(255, 255, 255, 0) 76%);
-}
-
-.home-landing__hero {
+@home-primary: var(--app-primary-color, #6366f1);
+@home-text-main: #1f2937;
+@home-text-gray: #6b7280;
+@home-bg: #f9fafb;
+
+.home-container {
position: relative;
+ min-height: calc(100vh - 160px); // Account for header and footer
+ padding: clamp(24px, 4vw, 40px) clamp(24px, 5vw, 60px);
+ background: linear-gradient(135deg, #ffffff 0%, #f4f6fa 100%);
+ color: @home-text-main;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
+ overflow: hidden; // Prevent the background visual from causing scroll
+ margin: -24px; // Offset typical parent padding
z-index: 1;
- display: grid;
- grid-template-columns: minmax(420px, 1.06fr) minmax(320px, 0.94fr);
- align-items: center;
- min-height: 282px;
- gap: 28px;
-}
-.home-landing__copy {
- max-width: 640px;
- padding-top: 8px;
-}
-
-.home-landing__eyebrow {
- display: inline-flex;
- align-items: center;
- gap: 8px;
- margin-bottom: 10px;
- padding: 6px 12px;
- border: 1px solid rgba(207, 195, 255, 0.34);
- border-radius: 999px;
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(245, 244, 255, 0.82));
- color: #6a64d8;
- font-size: 13px;
- box-shadow: 0 12px 24px rgba(124, 116, 214, 0.1);
- backdrop-filter: blur(14px);
-}
-
-.home-landing__title {
- margin: 0 0 12px !important;
- color: #272554 !important;
- font-size: clamp(34px, 4vw, 56px) !important;
- font-weight: 700 !important;
- line-height: 1.06 !important;
- letter-spacing: -0.04em;
-}
-
-.home-landing__title span {
- color: #6767f4;
-}
-
-.home-landing__status {
- display: flex;
- flex-wrap: wrap;
- gap: 10px;
- margin-top: 12px;
-}
-
-.home-landing__status-item {
- display: inline-flex;
- align-items: center;
- gap: 8px;
- padding: 8px 12px;
- border: 1px solid rgba(222, 223, 255, 0.9);
- border-radius: 14px;
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(246, 245, 255, 0.76));
- color: #707799;
- font-size: 12px;
- box-shadow: 0 10px 22px rgba(114, 105, 188, 0.08);
- backdrop-filter: blur(12px);
-}
-
-.home-landing__visual {
- position: relative;
- display: flex;
- align-items: center;
- justify-content: flex-end;
- min-height: 276px;
- isolation: isolate;
- padding-right: 10px;
-}
-
-.home-landing__visual::before {
- content: "";
- position: absolute;
- top: 16px;
- right: 14px;
- width: min(38vw, 480px);
- height: 264px;
- border-radius: 48px;
- background:
- radial-gradient(circle at 28% 30%, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0) 42%),
- linear-gradient(135deg, rgba(224, 228, 255, 0.3), rgba(245, 249, 255, 0));
- filter: blur(24px);
- opacity: 0.92;
-}
-
-.home-landing__visual-frame {
- position: relative;
- width: min(38vw, 500px);
- min-height: 278px;
- border: 1px solid rgba(255, 255, 255, 0.84);
- border-radius: 34px;
- overflow: hidden;
- background:
- linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(242, 245, 255, 0.22)),
- radial-gradient(circle at 76% 24%, rgba(194, 206, 255, 0.16), transparent 30%),
- linear-gradient(180deg, rgba(253, 253, 255, 0.99), rgba(241, 245, 255, 0.74));
- box-shadow:
- 0 28px 72px rgba(130, 137, 196, 0.1),
- inset 0 1px 0 rgba(255, 255, 255, 0.98),
- inset 0 -18px 32px rgba(170, 178, 224, 0.04);
- backdrop-filter: blur(24px);
-}
-
-.home-landing__visual-frame::before,
-.home-landing__visual-frame::after {
- content: "";
- position: absolute;
- inset: 18px;
- border-radius: 28px;
-}
-
-.home-landing__visual-frame::before {
- border: 1px solid rgba(255, 255, 255, 0.58);
- opacity: 0.9;
-}
-
-.home-landing__visual-frame::after {
- inset: auto 24px 28px;
- height: 72px;
- border-radius: 999px;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.36));
- filter: blur(10px);
- opacity: 0.68;
-}
-
-.home-landing__visual-glow {
- position: absolute;
- border-radius: 999px;
- filter: blur(12px);
-}
-
-.home-landing__visual-glow--primary {
- top: 26px;
- right: 28px;
- width: 168px;
- height: 168px;
- background: radial-gradient(circle, rgba(255, 255, 255, 0.98) 0%, rgba(194, 200, 255, 0.22) 40%, rgba(181, 186, 255, 0) 76%);
- animation: visualGlowDrift 10s ease-in-out infinite;
-}
-
-.home-landing__visual-glow--secondary {
- left: 36px;
- bottom: 48px;
- width: 188px;
- height: 84px;
- background: linear-gradient(90deg, rgba(188, 198, 255, 0), rgba(188, 198, 255, 0.16), rgba(231, 223, 255, 0.1), rgba(255, 255, 255, 0));
- filter: blur(14px);
- animation: visualMistFlow 13s ease-in-out infinite;
-}
-
-.home-landing__visual-grid {
- position: absolute;
- inset: 0;
- background-image:
- linear-gradient(rgba(156, 163, 220, 0.05) 1px, transparent 1px),
- linear-gradient(90deg, rgba(156, 163, 220, 0.05) 1px, transparent 1px);
- background-size: 40px 40px;
- mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.82));
- opacity: 0.52;
-}
-
-.home-landing__visual-beam {
- position: absolute;
- top: -10%;
- right: 12%;
- width: 42%;
- height: 130%;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.82), rgba(201, 208, 255, 0.12), rgba(255, 255, 255, 0));
- opacity: 0.44;
- transform: rotate(16deg);
- filter: blur(8px);
- animation: visualBeamSweep 12s ease-in-out infinite;
-}
-
-.home-landing__visual-radar {
- position: absolute;
- top: 34px;
- right: 54px;
- width: min(18vw, 214px);
- aspect-ratio: 1;
- border-radius: 50%;
- background:
- radial-gradient(circle at 38% 32%, rgba(255, 255, 255, 0.99) 0%, rgba(243, 244, 255, 0.94) 26%, rgba(193, 206, 255, 0.34) 48%, rgba(255, 255, 255, 0.04) 76%),
- linear-gradient(145deg, rgba(233, 236, 255, 0.62), rgba(242, 246, 255, 0.12));
- box-shadow:
- inset 0 0 54px rgba(255, 255, 255, 0.82),
- 0 18px 38px rgba(140, 147, 198, 0.1);
- animation: visualRadarFloat 9s ease-in-out infinite;
-}
-
-.home-landing__visual-radar::before,
-.home-landing__visual-radar::after {
- content: "";
- position: absolute;
- inset: 14%;
- border: 1px solid rgba(156, 166, 232, 0.22);
- border-radius: 50%;
-}
-
-.home-landing__visual-radar::after {
- inset: 6%;
- border-color: rgba(189, 176, 255, 0.18);
-}
-
-.home-landing__visual-pulse {
- position: absolute;
- border-radius: 50%;
- border: 1px solid rgba(168, 170, 236, 0.2);
-}
-
-.home-landing__visual-pulse--one {
- top: 52px;
- right: 70px;
- width: 164px;
- height: 164px;
- animation: visualPulseRing 6s ease-out infinite;
-}
-
-.home-landing__visual-pulse--two {
- top: 34px;
- right: 48px;
- width: 196px;
- height: 196px;
- border-color: rgba(190, 182, 255, 0.16);
- animation: visualPulseRing 6s ease-out infinite 1.8s;
-}
-
-.home-landing__visual-chip {
- position: absolute;
- padding: 8px 14px;
- border: 1px solid rgba(221, 212, 255, 0.92);
- border-radius: 999px;
- background: linear-gradient(135deg, rgba(255, 247, 255, 0.88), rgba(238, 240, 255, 0.82));
- color: #6b62b8;
- font-size: 12px;
- letter-spacing: 0.08em;
- text-transform: uppercase;
- box-shadow: 0 12px 24px rgba(120, 106, 194, 0.12);
- backdrop-filter: blur(16px);
-}
-
-.home-landing__visual-chip--top {
- top: 24px;
- left: 24px;
-}
-
-.home-landing__visual-chip--bottom {
- right: 28px;
- bottom: 34px;
-}
-
-.home-landing__visual-waveform {
- position: absolute;
- left: 34px;
- right: 34px;
- bottom: 30px;
- display: flex;
- align-items: flex-end;
- gap: 9px;
- height: 72px;
-}
-
-.home-landing__visual-waveform span {
- width: 6px;
- border-radius: 999px;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(142, 132, 235, 0.4));
- box-shadow: 0 8px 16px rgba(122, 113, 200, 0.12);
- transform-origin: bottom center;
- animation: visualWaveform 2.4s ease-in-out infinite;
-}
-
-.home-landing__visual-waveform span:nth-child(1) { height: 18px; animation-delay: 0s; }
-.home-landing__visual-waveform span:nth-child(2) { height: 34px; animation-delay: 0.12s; }
-.home-landing__visual-waveform span:nth-child(3) { height: 44px; animation-delay: 0.24s; }
-.home-landing__visual-waveform span:nth-child(4) { height: 54px; animation-delay: 0.36s; }
-.home-landing__visual-waveform span:nth-child(5) { height: 42px; animation-delay: 0.48s; }
-.home-landing__visual-waveform span:nth-child(6) { height: 28px; animation-delay: 0.6s; }
-.home-landing__visual-waveform span:nth-child(7) { height: 48px; animation-delay: 0.72s; }
-.home-landing__visual-waveform span:nth-child(8) { height: 60px; animation-delay: 0.84s; }
-.home-landing__visual-waveform span:nth-child(9) { height: 38px; animation-delay: 0.96s; }
-.home-landing__visual-waveform span:nth-child(10) { height: 22px; animation-delay: 1.08s; }
-
-.home-landing__entry-stage {
- position: relative;
- z-index: 2;
- display: grid;
- grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.72fr);
- align-items: start;
- gap: 22px;
- margin-top: 22px;
- margin-bottom: 18px;
-}
-
-.home-landing__entry-grid {
- display: grid;
- gap: 16px;
-}
-
-.home-landing__entry-grid--two {
- grid-template-columns: repeat(2, minmax(280px, 1fr));
-}
-
-.home-landing__soundstage {
- position: relative;
- min-height: 224px;
- margin-top: 54px;
- border: 1px solid var(--home-border);
- border-radius: 30px;
- background:
- linear-gradient(180deg, var(--home-surface-strong), color-mix(in srgb, var(--home-surface) 78%, rgba(var(--home-primary-rgb), 0.08))),
- linear-gradient(135deg, rgba(185, 204, 255, 0.22), rgba(208, 236, 255, 0.12) 56%, rgba(255, 255, 255, 0));
- box-shadow:
- 0 20px 38px rgba(var(--home-primary-rgb), 0.14),
- inset 0 1px 0 rgba(255, 255, 255, 0.92);
- backdrop-filter: blur(18px);
- overflow: hidden;
-}
-
-.home-landing__soundstage::before {
- content: "";
- position: absolute;
- inset: 14px;
- border: 1px solid rgba(var(--home-primary-rgb), 0.14);
- border-radius: 22px;
-}
-
-.home-landing__soundstage-head {
- position: absolute;
- top: 20px;
- left: 22px;
- z-index: 1;
- display: grid;
- gap: 8px;
-}
-
-.home-landing__soundstage-kicker {
- display: inline-flex;
- width: fit-content;
- padding: 5px 10px;
- border: 1px solid rgba(var(--home-primary-rgb), 0.16);
- border-radius: 999px;
- background: rgba(var(--home-primary-rgb), 0.08);
- color: var(--home-primary);
- font-size: 11px;
- letter-spacing: 0.08em;
- text-transform: uppercase;
-}
-
-.home-landing__soundstage-copy {
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
-}
-
-.home-landing__soundstage-copy span {
- display: inline-flex;
- align-items: center;
- padding: 6px 10px;
- border-radius: 12px;
- background: rgba(255, 255, 255, 0.64);
- color: var(--home-body-color);
- font-size: 12px;
-}
-
-.home-landing__board-glow {
- position: absolute;
- right: 8px;
- top: 10px;
- width: 148px;
- height: 148px;
- border-radius: 50%;
- background: radial-gradient(circle, rgba(194, 212, 255, 0.7) 0%, rgba(169, 212, 255, 0.34) 42%, rgba(214, 226, 239, 0) 74%);
- filter: blur(10px);
- animation: boardGlowDrift 11s ease-in-out infinite;
-}
-
-.home-landing__board-grid {
- position: absolute;
- inset: 18px;
- background-image:
- linear-gradient(rgba(120, 145, 212, 0.08) 1px, transparent 1px),
- linear-gradient(90deg, rgba(120, 145, 212, 0.08) 1px, transparent 1px);
- background-size: 30px 30px;
- mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.8));
-}
-
-.home-landing__board-panel {
- position: absolute;
- border: 1px solid rgba(208, 223, 255, 0.98);
- border-radius: 20px;
- background:
- linear-gradient(180deg, rgba(246, 250, 255, 0.96), rgba(230, 239, 255, 0.9)),
- linear-gradient(135deg, rgba(189, 211, 255, 0.24), rgba(190, 231, 255, 0.1));
- box-shadow:
- 0 16px 30px rgba(104, 132, 210, 0.14),
- inset 0 1px 0 rgba(255, 255, 255, 0.68);
- backdrop-filter: blur(14px);
-}
-
-.home-landing__board-panel--summary {
- top: 92px;
- left: 22px;
- width: 156px;
- padding: 12px;
-}
-
-.home-landing__board-pill {
- display: inline-flex;
- padding: 4px 10px;
- border-radius: 999px;
- background: linear-gradient(90deg, rgba(205, 221, 255, 0.94), rgba(213, 238, 255, 0.88));
- color: #5676dd;
- font-size: 11px;
- letter-spacing: 0.06em;
- text-transform: uppercase;
-}
-
-.home-landing__board-lines {
- display: grid;
- gap: 8px;
- margin-top: 12px;
-}
-
-.home-landing__board-line {
- display: block;
- height: 8px;
- border-radius: 999px;
- background: linear-gradient(90deg, rgba(95, 123, 239, 0.88), rgba(113, 177, 255, 0.56), rgba(179, 229, 255, 0.36));
-}
-
-.home-landing__board-line--lg { width: 100%; }
-.home-landing__board-line--md { width: 78%; }
-.home-landing__board-line--sm { width: 62%; }
-
-.home-landing__board-panel--activity {
- right: 22px;
- top: 82px;
- width: 108px;
- height: 132px;
- padding: 16px 14px;
-}
-
-.home-landing__board-bars {
- display: flex;
- align-items: flex-end;
- justify-content: space-between;
- height: 100%;
-}
-
-.home-landing__board-bars span {
- width: 10px;
- border-radius: 999px;
- background: linear-gradient(180deg, rgba(178, 212, 255, 0.48), rgba(76, 125, 243, 0.94));
- box-shadow: 0 10px 18px rgba(88, 117, 214, 0.12);
- animation: boardBarsLift 2.6s ease-in-out infinite;
-}
-
-.home-landing__board-bars span:nth-child(1) { height: 42px; animation-delay: 0s; }
-.home-landing__board-bars span:nth-child(2) { height: 76px; animation-delay: 0.12s; }
-.home-landing__board-bars span:nth-child(3) { height: 58px; animation-delay: 0.24s; }
-.home-landing__board-bars span:nth-child(4) { height: 92px; animation-delay: 0.36s; }
-.home-landing__board-bars span:nth-child(5) { height: 68px; animation-delay: 0.48s; }
-.home-landing__board-bars span:nth-child(6) { height: 52px; animation-delay: 0.6s; }
-
-.home-landing__board-panel--timeline {
- left: 22px;
- right: 22px;
- bottom: 22px;
- height: 58px;
- padding: 0 16px;
- display: flex;
- align-items: center;
- justify-content: space-between;
-}
-
-.home-landing__board-rail {
- position: absolute;
- left: 24px;
- right: 24px;
- top: 50%;
- height: 2px;
- background: linear-gradient(90deg, rgba(194, 212, 255, 0.28), rgba(93, 128, 245, 0.62), rgba(188, 229, 255, 0.3));
- transform: translateY(-50%);
-}
-
-.home-landing__board-node {
- position: relative;
- z-index: 1;
- width: 12px;
- height: 12px;
- border: 2px solid rgba(117, 154, 255, 0.46);
- border-radius: 50%;
- background: rgba(249, 252, 255, 0.98);
-}
-
-.home-landing__board-node--active {
- width: 16px;
- height: 16px;
- border-color: rgba(76, 108, 235, 0.88);
- box-shadow: 0 0 0 8px rgba(132, 166, 241, 0.2);
-}
-
-.home-landing__board-stats {
- position: absolute;
- left: 194px;
- top: 96px;
- display: flex;
- flex-direction: column;
- gap: 10px;
-}
-
-.home-landing__board-stat {
- width: 84px;
- height: 28px;
- border: 1px solid rgba(208, 223, 255, 0.94);
- border-radius: 14px;
- background:
- linear-gradient(90deg, rgba(248, 251, 255, 0.98), rgba(232, 241, 255, 0.9)),
- linear-gradient(135deg, rgba(198, 215, 255, 0.18), rgba(193, 233, 255, 0.08));
- box-shadow: 0 12px 22px rgba(104, 132, 210, 0.12);
-}
-
-.home-entry-card {
- position: relative;
- min-height: 212px;
- padding: 20px 138px 18px 20px;
- border: 1px solid var(--home-border);
- border-radius: 28px;
- box-shadow: 0 18px 40px rgba(var(--home-primary-rgb), 0.14);
- backdrop-filter: blur(18px);
- overflow: hidden;
- cursor: pointer;
- transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
-}
-
-.home-entry-card::before {
- content: "";
- position: absolute;
- inset: 0;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.62), rgba(255, 255, 255, 0.18));
-}
-
-.home-entry-card > * {
- position: relative;
- z-index: 1;
-}
-
-.home-entry-card:focus-visible {
- outline: 2px solid rgba(120, 104, 216, 0.34);
- outline-offset: 2px;
-}
-
-.home-entry-card:hover {
- transform: translateY(-8px);
- box-shadow: 0 28px 54px rgba(108, 97, 206, 0.18);
-}
-
-.home-entry-card:hover .home-entry-card__icon {
- transform: translateY(-3px) scale(1.04);
-}
-
-.home-entry-card:hover .home-entry-card__cta {
- color: var(--home-primary);
-}
-
-.home-entry-card:hover .home-entry-card__cta .anticon {
- transform: translateX(6px);
-}
-
-.home-entry-card:hover .home-entry-card__shine {
- opacity: 1;
- transform: translateX(18%);
-}
-
-.home-entry-card:hover .home-entry-card__track span {
- animation-play-state: running;
-}
-
-.home-entry-card:hover .home-entry-card__pulse {
- transform: scale(1.08);
- opacity: 1;
-}
-
-.home-entry-card--violet {
- background:
- linear-gradient(180deg, rgba(255, 247, 255, 0.98) 0%, rgba(244, 236, 255, 0.9) 100%),
- linear-gradient(135deg, rgba(228, 198, 255, 0.26), rgba(214, 228, 255, 0.08));
-}
-
-.home-entry-card--cyan {
- background:
- linear-gradient(180deg, rgba(244, 254, 255, 0.98) 0%, rgba(229, 248, 255, 0.9) 100%),
- linear-gradient(135deg, rgba(159, 233, 255, 0.26), rgba(202, 233, 255, 0.08));
-}
-
-.home-entry-card__shine {
- position: absolute;
- inset: -20% auto -20% -30%;
- width: 42%;
- background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.48), rgba(255, 255, 255, 0));
- opacity: 0;
- transform: translateX(-20%);
- transition: opacity 0.35s ease, transform 0.45s ease;
-}
-
-.home-entry-card__topline {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: 14px;
-}
-
-.home-entry-card__icon {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 58px;
- height: 46px;
- border-radius: 18px;
- background: linear-gradient(135deg, #7569f2 0%, #9bb7ff 100%);
- color: #fff;
- font-size: 24px;
- box-shadow: 0 18px 34px rgba(112, 103, 212, 0.24);
- transition: transform 0.28s ease;
-}
-
-.home-entry-card--cyan .home-entry-card__icon {
- background: linear-gradient(135deg, #45c7ea 0%, #9ce5ff 100%);
-}
-
-.home-entry-card__badge {
- padding: 5px 12px;
- border-radius: 999px;
- background: rgba(193, 176, 255, 0.24);
- color: #695fd2;
- font-size: 12px;
- font-weight: 600;
-}
-
-.home-entry-card--cyan .home-entry-card__badge {
- background: rgba(131, 220, 244, 0.22);
- color: #3a9fc5;
-}
-
-.home-entry-card h3 {
- margin: 20px 0 10px !important;
- color: var(--home-title-color) !important;
- font-size: 22px !important;
-}
-
-.home-entry-card__content {
- display: grid;
- gap: 6px;
-}
-
-.home-entry-card__line {
- display: block;
- color: var(--home-body-color);
- font-size: 15px;
- line-height: 1.62;
-}
-
-.home-entry-card__media {
- position: absolute;
- top: 28px;
- right: 18px;
- bottom: 22px;
- width: 104px;
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.home-entry-card__track {
- position: absolute;
- right: 10px;
- bottom: 18px;
- display: flex;
- align-items: center;
- gap: 5px;
- width: 84px;
- height: 92px;
-}
-
-.home-entry-card__track span {
- width: 4px;
- border-radius: 999px;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(128, 114, 243, 0.62));
- box-shadow: 0 8px 18px rgba(111, 102, 216, 0.18);
- transform-origin: bottom center;
- animation: entryEqualizer 1.6s ease-in-out infinite;
- animation-play-state: paused;
-}
-
-.home-entry-card__track span:nth-child(1) { height: 28px; animation-delay: 0s; }
-.home-entry-card__track span:nth-child(2) { height: 54px; animation-delay: 0.12s; }
-.home-entry-card__track span:nth-child(3) { height: 38px; animation-delay: 0.24s; }
-.home-entry-card__track span:nth-child(4) { height: 68px; animation-delay: 0.36s; }
-.home-entry-card__track span:nth-child(5) { height: 84px; animation-delay: 0.48s; }
-.home-entry-card__track span:nth-child(6) { height: 62px; animation-delay: 0.6s; }
-.home-entry-card__track span:nth-child(7) { height: 42px; animation-delay: 0.72s; }
-.home-entry-card__track span:nth-child(8) { height: 50px; animation-delay: 0.84s; }
-.home-entry-card__track span:nth-child(9) { height: 32px; animation-delay: 0.96s; }
-
-.home-entry-card__pulse {
- position: absolute;
- right: 6px;
- top: 8px;
- width: 88px;
- height: 88px;
- border-radius: 50%;
- background: radial-gradient(circle, rgba(255, 255, 255, 0.92) 0%, rgba(166, 145, 255, 0.42) 36%, rgba(166, 145, 255, 0.06) 72%, transparent 76%);
- opacity: 0.86;
- transition: transform 0.28s ease, opacity 0.28s ease;
-}
-
-.home-entry-card--cyan .home-entry-card__track span {
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(88, 202, 234, 0.62));
- box-shadow: 0 8px 18px rgba(84, 176, 216, 0.18);
-}
-
-.home-entry-card--cyan .home-entry-card__pulse {
- background: radial-gradient(circle, rgba(255, 255, 255, 0.92) 0%, rgba(127, 223, 255, 0.42) 36%, rgba(127, 223, 255, 0.08) 72%, transparent 76%);
-}
-
-.home-entry-card__cta {
- display: inline-flex;
- align-items: center;
- gap: 8px;
- margin-top: 16px;
- color: var(--home-primary);
- font-size: 14px;
- font-weight: 600;
- transition: color 0.28s ease;
-}
-
-.home-entry-card__cta .anticon {
- transition: transform 0.28s ease;
-}
-
-.home-landing__recent {
- position: relative;
- z-index: 2;
- margin-top: auto;
- padding-top: 6px;
-}
-
-.home-landing__section-head {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 10px;
-}
-
-.home-landing__section-head h3 {
- margin: 0 !important;
- color: #4f5885 !important;
-}
-
-.home-landing__recent-grid {
- display: grid;
- grid-template-columns: repeat(3, minmax(0, 1fr));
- gap: 14px;
- align-items: stretch;
-}
-
-.home-recent-card {
- position: relative;
- min-height: 144px;
- padding: 16px;
- border: 1px solid rgba(233, 228, 255, 0.96);
- border-radius: 22px;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(247, 246, 255, 0.88));
- box-shadow: 0 16px 30px rgba(152, 146, 223, 0.08);
- backdrop-filter: blur(18px);
- cursor: pointer;
- transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
-}
-
-.home-recent-card:hover {
- transform: translateY(-4px);
- border-color: rgba(214, 205, 255, 0.96);
- box-shadow: 0 22px 38px rgba(141, 132, 223, 0.12);
-}
-
-.home-recent-card__pin {
- position: absolute;
- top: -5px;
- right: 24px;
- width: 10px;
- height: 10px;
- border-radius: 50%;
- background: #ff6f7e;
- box-shadow: 0 0 0 6px rgba(255, 111, 126, 0.1);
-}
-
-.home-recent-card__head {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: 10px;
-}
-
-.home-recent-card__head h4 {
- margin: 0 !important;
- color: #2e355d !important;
- font-size: 15px !important;
- line-height: 1.5 !important;
- white-space: normal;
- word-break: break-word;
-}
-
-.home-recent-card__head .anticon {
- color: #8a92cb;
- font-size: 18px;
-}
-
-.home-recent-card__tags {
- display: flex;
- flex-wrap: wrap;
- gap: 6px;
- margin: 10px 0 8px;
-}
-
-.home-recent-card__tags .ant-tag {
- margin-inline-end: 0;
- padding: 2px 8px;
- border: 1px solid rgba(214, 219, 255, 0.7);
- border-radius: 10px;
- background: #f7f4ff;
- color: #6a6f93;
- font-size: 12px;
-}
-
-.home-recent-card__foot {
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 12px;
- color: #9198b2;
- font-size: 13px;
- line-height: 1.5;
- flex-wrap: wrap;
-}
-
-.home-landing__empty {
- display: flex;
- align-items: center;
- justify-content: center;
- min-height: 140px;
- border-radius: 22px;
- background: rgba(255, 255, 255, 0.74);
-}
-
-@keyframes visualRadarFloat {
- 0%,
- 100% {
- transform: translate3d(0, 0, 0) scale(1);
- }
- 50% {
- transform: translate3d(-8px, 10px, 0) scale(1.03);
- }
-}
-
-@keyframes visualBeamSweep {
- 0%,
- 100% {
- transform: translate3d(-18px, 0, 0) rotate(16deg);
- opacity: 0.34;
- }
- 50% {
- transform: translate3d(18px, 0, 0) rotate(13deg);
- opacity: 0.68;
- }
-}
-
-@keyframes visualGlowDrift {
- 0%,
- 100% {
- transform: translate3d(0, 0, 0) scale(1);
- opacity: 0.86;
- }
- 50% {
- transform: translate3d(-12px, 10px, 0) scale(1.08);
- opacity: 1;
- }
-}
-
-@keyframes visualMistFlow {
- 0%,
- 100% {
- transform: translate3d(-10px, 0, 0) scaleX(0.96);
- opacity: 0.68;
- }
- 50% {
- transform: translate3d(12px, -6px, 0) scaleX(1.06);
- opacity: 1;
- }
-}
-
-@keyframes visualPulseRing {
- 0% {
- transform: scale(0.84);
- opacity: 0;
- }
- 24% {
- opacity: 0.38;
- }
- 100% {
- transform: scale(1.08);
- opacity: 0;
- }
-}
-
-@keyframes visualWaveform {
- 0%,
- 100% {
- transform: scaleY(0.56);
- opacity: 0.62;
- }
- 50% {
- transform: scaleY(1.14);
- opacity: 1;
- }
-}
-
-@keyframes entryEqualizer {
- 0%,
- 100% {
- transform: scaleY(0.72);
- opacity: 0.72;
- }
- 50% {
- transform: scaleY(1.08);
- opacity: 1;
- }
-}
-
-@keyframes boardGlowDrift {
- 0%,
- 100% {
- transform: translate3d(0, 0, 0) scale(1);
- }
- 50% {
- transform: translate3d(-8px, 8px, 0) scale(1.04);
- }
-}
-
-@keyframes boardBarsLift {
- 0%,
- 100% {
- transform: scaleY(0.72);
- opacity: 0.72;
- }
- 50% {
- transform: scaleY(1.08);
- opacity: 1;
- }
-}
-
-@keyframes soundDiscFloat {
- 0%,
- 100% {
- transform: translate3d(0, 0, 0) scale(1);
- }
- 50% {
- transform: translate3d(-10px, 8px, 0) scale(1.03);
- }
-}
-
-@keyframes soundMistDrift {
- 0%,
- 100% {
- transform: translate3d(-8px, 0, 0);
- opacity: 0.62;
- }
- 50% {
- transform: translate3d(10px, -4px, 0);
- opacity: 1;
- }
-}
-
-@keyframes soundWaveDrift {
- 0%,
- 100% {
- transform: perspective(400px) rotateX(62deg) scaleX(0.98);
- opacity: 0.66;
- }
- 50% {
- transform: perspective(400px) rotateX(62deg) scaleX(1.02);
- opacity: 1;
- }
-}
-
-@keyframes soundStageBars {
- 0%,
- 100% {
- transform: scaleY(0.68);
- opacity: 0.68;
- }
- 50% {
- transform: scaleY(1.08);
- opacity: 1;
- }
-}
-
-.home-landing__ambient-field {
- position: absolute;
- top: -36px;
- right: -64px;
- width: min(52vw, 760px);
- height: 620px;
- z-index: 0;
- pointer-events: none;
-}
-
-.home-landing__ambient-orb,
-.home-landing__ambient-ripple,
-.home-landing__ambient-sheen,
-.home-landing__ambient-bubble,
-.home-landing__visual-note,
-.home-landing__soundstage-pills,
-.home-landing__soundstage-trace {
- pointer-events: none;
-}
-
-.home-landing__ambient-orb {
- position: absolute;
- border-radius: 50%;
-}
-
-.home-landing__ambient-orb--main {
- inset: 0 18px 18px 0;
- background:
- radial-gradient(circle at 32% 30%, rgba(255, 255, 255, 0.98) 0%, rgba(239, 245, 255, 0.94) 34%, rgba(218, 230, 255, 0.86) 66%, rgba(255, 255, 255, 0) 100%),
- radial-gradient(circle at 55% 70%, rgba(var(--home-primary-rgb), 0.1) 0%, rgba(134, 213, 255, 0.08) 28%, rgba(255, 255, 255, 0) 62%);
- filter: blur(1px);
- opacity: 0.96;
- animation: ambientOrbFloat 18s ease-in-out infinite;
-}
-
-.home-landing__ambient-orb--ghost {
- right: 18px;
- bottom: 26px;
- width: 176px;
- height: 176px;
- background: radial-gradient(circle, rgba(236, 242, 255, 0.9) 0%, rgba(213, 224, 255, 0.42) 44%, rgba(255, 255, 255, 0) 74%);
- filter: blur(8px);
- opacity: 0.9;
- animation: ambientGhostFloat 14s ease-in-out infinite;
-}
-
-.home-landing__ambient-ripple {
- position: absolute;
- left: 82px;
- right: 128px;
- bottom: 96px;
- height: 208px;
- border-radius: 52% 48% 54% 46%;
- background: repeating-radial-gradient(ellipse at 34% 72%, rgba(var(--home-primary-rgb), 0.32) 0 2px, rgba(255, 255, 255, 0) 2px 9px);
- opacity: 0.72;
- transform: rotate(-12deg);
- filter: blur(0.2px);
- mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0.94));
- animation: ambientRippleShift 16s ease-in-out infinite;
-}
-
-.home-landing__ambient-sheen {
- position: absolute;
- right: 84px;
- top: 74px;
- width: 210px;
- height: 360px;
- border-radius: 999px;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.82), rgba(184, 212, 255, 0.14), rgba(255, 255, 255, 0));
- filter: blur(14px);
- opacity: 0.52;
- transform: rotate(18deg);
- animation: ambientSheenDrift 13s ease-in-out infinite;
-}
-
-.home-landing__ambient-bubble {
- position: absolute;
- border: 1px solid rgba(255, 255, 255, 0.76);
- border-radius: 50%;
- background: linear-gradient(160deg, rgba(255, 255, 255, 0.94), rgba(219, 231, 255, 0.34));
- box-shadow:
- inset -6px -10px 18px rgba(var(--home-primary-rgb), 0.08),
- inset 6px 8px 14px rgba(255, 255, 255, 0.92),
- 0 14px 30px rgba(var(--home-primary-rgb), 0.1);
- backdrop-filter: blur(12px);
-}
-
-.home-landing__ambient-bubble--lg {
- top: 34px;
- right: 84px;
- width: 88px;
- height: 88px;
- animation: ambientBubbleFloat 11s ease-in-out infinite;
-}
-
-.home-landing__ambient-bubble--md {
- top: 24px;
- right: -8px;
- width: 52px;
- height: 52px;
- animation: ambientBubbleFloat 13s ease-in-out infinite 1.6s;
-}
-
-.home-landing__ambient-bubble--sm {
- top: 164px;
- right: 34px;
- width: 30px;
- height: 30px;
- animation: ambientBubbleFloat 10s ease-in-out infinite 0.8s;
-}
-
-.home-landing__visual,
-.home-landing__soundstage {
- position: relative;
- border: none;
- background: transparent;
- box-shadow: none;
- backdrop-filter: none;
- overflow: visible;
-}
-
-.home-landing__visual::before,
-.home-landing__soundstage::before {
- display: none;
-}
-
-.home-landing__visual {
- min-height: 300px;
- justify-content: flex-end;
- align-items: flex-start;
- padding: 0;
-}
-
-.home-landing__visual-note {
- position: absolute;
- display: inline-flex;
- align-items: center;
- padding: 9px 16px;
- border: 1px solid rgba(255, 255, 255, 0.74);
- border-radius: 999px;
- background: rgba(255, 255, 255, 0.42);
- color: color-mix(in srgb, var(--home-primary) 70%, white 6%);
- font-size: 12px;
- letter-spacing: 0.12em;
- text-transform: uppercase;
- backdrop-filter: blur(14px);
- box-shadow: 0 14px 28px rgba(var(--home-primary-rgb), 0.1);
-}
-
-.home-landing__visual-note--top {
- top: 28px;
- left: 42px;
-}
-
-.home-landing__visual-note--bottom {
- right: 44px;
- bottom: 14px;
-}
-
-.home-landing__soundstage {
- min-height: 184px;
- margin-top: 22px;
-}
-
-.home-landing__soundstage-head {
- top: 18px;
- left: 12px;
-}
-
-.home-landing__soundstage-copy span {
- background: rgba(255, 255, 255, 0.44);
- border: 1px solid rgba(255, 255, 255, 0.56);
- box-shadow: 0 12px 24px rgba(var(--home-primary-rgb), 0.08);
-}
-
-.home-landing__soundstage-pills {
- position: absolute;
- right: 6px;
- top: 30px;
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-end;
- gap: 10px;
- max-width: 250px;
-}
-
-.home-landing__soundstage-pills span {
- display: inline-flex;
- align-items: center;
- padding: 8px 12px;
- border: 1px solid rgba(255, 255, 255, 0.68);
- border-radius: 999px;
- background: rgba(255, 255, 255, 0.4);
- color: var(--home-body-color);
- font-size: 12px;
- backdrop-filter: blur(12px);
- box-shadow: 0 12px 26px rgba(var(--home-primary-rgb), 0.08);
-}
-
-.home-landing__soundstage-trace {
- position: absolute;
- left: 34px;
- right: 40px;
- bottom: 20px;
- display: flex;
- align-items: flex-end;
- justify-content: space-between;
- height: 54px;
-}
-
-.home-landing__soundstage-trace span {
- width: 10px;
- border-radius: 999px;
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(var(--home-primary-rgb), 0.54));
- box-shadow: 0 10px 18px rgba(var(--home-primary-rgb), 0.14);
- animation: ambientTracePulse 3.8s ease-in-out infinite;
-}
-
-.home-landing__soundstage-trace span:nth-child(1) { height: 12px; animation-delay: 0s; }
-.home-landing__soundstage-trace span:nth-child(2) { height: 18px; animation-delay: 0.18s; }
-.home-landing__soundstage-trace span:nth-child(3) { height: 26px; animation-delay: 0.36s; }
-.home-landing__soundstage-trace span:nth-child(4) { height: 34px; animation-delay: 0.54s; }
-.home-landing__soundstage-trace span:nth-child(5) { height: 28px; animation-delay: 0.72s; }
-.home-landing__soundstage-trace span:nth-child(6) { height: 20px; animation-delay: 0.9s; }
-.home-landing__soundstage-trace span:nth-child(7) { height: 14px; animation-delay: 1.08s; }
-
-@keyframes ambientOrbFloat {
- 0%,
- 100% {
- transform: translate3d(0, 0, 0) scale(1);
- }
- 50% {
- transform: translate3d(-12px, 12px, 0) scale(1.02);
- }
-}
-
-@keyframes ambientGhostFloat {
- 0%,
- 100% {
- transform: translate3d(0, 0, 0) scale(1);
- }
- 50% {
- transform: translate3d(10px, -12px, 0) scale(1.04);
- }
-}
-
-@keyframes ambientRippleShift {
- 0%,
- 100% {
- transform: rotate(-12deg) translate3d(0, 0, 0) scale(0.98);
- opacity: 0.66;
- }
- 50% {
- transform: rotate(-8deg) translate3d(16px, -6px, 0) scale(1.02);
- opacity: 0.88;
- }
-}
-
-@keyframes ambientSheenDrift {
- 0%,
- 100% {
- transform: rotate(18deg) translate3d(0, 0, 0);
- opacity: 0.42;
- }
- 50% {
- transform: rotate(14deg) translate3d(20px, -10px, 0);
- opacity: 0.7;
- }
-}
-
-@keyframes ambientBubbleFloat {
- 0%,
- 100% {
- transform: translate3d(0, 0, 0);
- }
- 50% {
- transform: translate3d(-8px, 12px, 0);
- }
-}
-
-@keyframes ambientTracePulse {
- 0%,
- 100% {
- transform: scaleY(0.72);
- opacity: 0.62;
- }
- 50% {
- transform: scaleY(1.14);
- opacity: 1;
- }
-}
-@media (max-width: 1200px) {
- .home-landing__hero {
- grid-template-columns: 1fr;
- min-height: auto;
+ // Background Visual (The massive glowing sphere)
+ .home-bg-visual {
+ position: absolute;
+ top: 0;
+ right: -10%;
+ width: 60vw;
+ height: 100%;
+ pointer-events: none;
+ z-index: -1;
+ overflow: hidden;
}
- .home-landing__visual {
+ .home-bg-sphere {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 800px;
+ height: 800px;
+ border-radius: 50%;
+ background: radial-gradient(circle, rgba(255,255,255,0.8) 0%, rgba(220, 230, 255, 0.4) 40%, transparent 70%);
+ box-shadow: inset 0 0 100px rgba(255,255,255,0.5);
+ filter: blur(20px);
+
+ // Inner subtle glow/wave illusion
+ &::after {
+ content: '';
+ position: absolute;
+ top: 30%;
+ left: 20%;
+ width: 60%;
+ height: 40%;
+ background: radial-gradient(ellipse, rgba(99, 102, 241, 0.15) 0%, transparent 70%);
+ filter: blur(40px);
+ border-radius: 50%;
+ transform: rotate(-15deg);
+ }
+ }
+
+ // Wrapper to keep content contained and above background
+ .home-content-wrapper {
+ position: relative;
+ z-index: 2;
+ max-width: 1400px;
+ margin: 0 auto;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
justify-content: flex-start;
- min-height: 280px;
- padding-right: 0;
}
- .home-landing__visual-frame {
- width: min(100%, 620px);
+ // Hero Section
+ .home-hero {
+ margin-bottom: 48px;
+ padding-top: 20px;
}
- .home-landing__entry-stage {
- grid-template-columns: 1fr;
- gap: 16px;
+ .home-title {
+ font-size: clamp(40px, 5vw, 64px) !important;
+ font-weight: 800 !important;
+ margin-bottom: 48px !important;
+ color: @home-text-main !important;
+ letter-spacing: -0.01em;
+
+ .home-title-accent {
+ background: linear-gradient(90deg, #6366f1, #8b5cf6, #3b82f6);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ }
}
- .home-landing__entry-grid--two,
- .home-landing__recent-grid {
- grid-template-columns: 1fr;
+ // Quick Actions Horizontal Layout
+ .home-quick-actions {
+ display: flex;
+ gap: 64px;
+ flex-wrap: wrap;
+
+ @media (max-width: 768px) {
+ gap: 32px;
+ }
}
- .home-landing__soundstage {
- margin-top: 0;
- }
-
- .home-entry-card {
- padding-right: 120px;
- }
-}
-
-@media (max-width: 768px) {
- .home-landing {
- margin: -24px;
- padding: 24px 14px 8px;
- }
-
- .home-landing__title {
- font-size: 34px !important;
- }
-
- .home-landing__visual {
- min-height: 236px;
- }
-
- .home-landing__visual::before {
- top: 10px;
- right: 0;
- width: 100%;
- height: 220px;
- }
-
- .home-landing__visual-frame {
- width: 100%;
- min-height: 230px;
- border-radius: 28px;
- }
-
- .home-landing__visual-radar {
- top: 26px;
- right: 28px;
- width: 160px;
- }
-
- .home-landing__visual-pulse--one {
- top: 38px;
- right: 42px;
- width: 128px;
- height: 128px;
- }
-
- .home-landing__visual-pulse--two {
- top: 24px;
- right: 28px;
- width: 156px;
- height: 156px;
- }
-
- .home-landing__visual-chip {
- padding: 7px 12px;
- font-size: 11px;
- letter-spacing: 0.05em;
- }
-
- .home-landing__visual-chip--bottom {
- right: 18px;
- bottom: 24px;
- }
-
- .home-landing__visual-waveform {
- left: 20px;
- right: 20px;
- bottom: 20px;
- height: 64px;
- gap: 7px;
- }
-
- .home-landing__visual-waveform span {
- width: 5px;
- }
-
- .home-entry-card {
- min-height: 176px;
- padding: 18px 124px 14px 18px;
- }
-
- .home-entry-card h3 {
- margin: 18px 0 8px !important;
- font-size: 20px !important;
- }
-
- .home-entry-card__line {
- font-size: 14px;
- line-height: 1.5;
- }
-
- .home-entry-card__media {
- right: 14px;
- width: 92px;
- }
-
- .home-entry-card__track {
- width: 72px;
- gap: 4px;
- }
-
- .home-entry-card__track span {
- width: 3px;
- }
-
- .home-entry-card__pulse {
- width: 76px;
- height: 76px;
- }
-
- .home-entry-card__cta {
- margin-top: 12px;
- font-size: 13px;
- }
-
- .home-landing__soundstage {
- min-height: 208px;
- }
-
- .home-landing__soundstage-head {
- top: 16px;
- left: 18px;
- }
-
- .home-landing__board-panel--summary {
- top: 84px;
- width: 140px;
- padding: 10px;
- }
-
- .home-landing__board-panel--activity {
- right: 18px;
- top: 84px;
- width: 96px;
- height: 118px;
- padding: 14px 12px;
- }
-
- .home-landing__board-stats {
- left: 172px;
- top: 90px;
- gap: 8px;
- }
-
- .home-landing__board-stat {
- width: 72px;
- height: 24px;
- }
-
- .home-landing__board-panel--timeline {
- left: 18px;
- right: 18px;
- bottom: 18px;
- height: 56px;
- }
-
- .home-landing__recent {
- padding-top: 4px;
- }
-
- .home-recent-card {
- min-height: 136px;
- padding: 14px;
- }
-}
-
-@media (prefers-reduced-motion: reduce) {
- .home-landing__visual-glow--primary,
- .home-landing__visual-glow--secondary,
- .home-landing__visual-beam,
- .home-landing__visual-radar,
- .home-landing__visual-pulse,
- .home-landing__visual-waveform span,
- .home-entry-card__track span,
- .home-landing__board-glow,
- .home-landing__board-bars span {
- animation: none !important;
- }
-
- .home-entry-card,
- .home-entry-card__icon,
- .home-entry-card__shine,
- .home-entry-card__pulse,
- .home-entry-card__cta,
- .home-entry-card__cta .anticon,
- .home-recent-card {
- transition: none !important;
- }
-}
-
-
-
-@media (max-width: 1200px) {
- .home-landing__ambient-field {
- top: 12px;
- right: -92px;
- width: min(92vw, 700px);
- height: 520px;
- }
-
- .home-landing__visual-note--top {
- left: 18px;
- }
-
- .home-landing__visual-note--bottom {
- right: 22px;
- bottom: 4px;
- }
-
- .home-landing__soundstage-pills {
- right: 0;
- max-width: none;
- }
-}
-
-@media (max-width: 768px) {
- .home-landing__ambient-field {
- top: 38px;
- right: -130px;
- width: 120vw;
- height: 420px;
- }
-
- .home-landing__ambient-ripple {
- left: 34px;
- right: 84px;
- bottom: 78px;
- height: 136px;
- }
-
- .home-landing__ambient-sheen {
- top: 54px;
- right: 74px;
- width: 120px;
- height: 240px;
- }
-
- .home-landing__ambient-bubble--lg {
- width: 62px;
- height: 62px;
- right: 104px;
- }
-
- .home-landing__ambient-bubble--md {
- width: 38px;
- height: 38px;
- right: 26px;
- }
-
- .home-landing__ambient-bubble--sm {
- top: 126px;
- right: 58px;
- width: 22px;
- height: 22px;
- }
-
- .home-landing__visual {
- min-height: 200px;
- }
-
- .home-landing__visual-note {
- padding: 8px 12px;
- font-size: 11px;
- letter-spacing: 0.08em;
- }
-
- .home-landing__visual-note--top {
- top: 12px;
- left: 12px;
- }
-
- .home-landing__visual-note--bottom {
- right: 10px;
- bottom: 0;
- }
-
- .home-landing__soundstage {
- min-height: 156px;
- }
-
- .home-landing__soundstage-copy span,
- .home-landing__soundstage-pills span {
- padding: 6px 10px;
- font-size: 11px;
- }
-
- .home-landing__soundstage-pills {
- top: 74px;
- left: 12px;
- right: auto;
- justify-content: flex-start;
+ .home-action-item {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ cursor: pointer;
+ transition: transform 0.3s ease;
max-width: 240px;
- gap: 8px;
+
+ &:hover {
+ transform: translateY(-4px);
+
+ .home-action-icon-wrapper {
+ transform: scale(1.05);
+ }
+ .home-action-title {
+ color: @home-primary !important;
+ }
+ }
+
+ &--violet {
+ --action-color: #8b5cf6;
+ --action-bg: rgba(139, 92, 246, 0.1);
+ }
+
+ &--cyan {
+ --action-color: #06b6d4;
+ --action-bg: rgba(6, 182, 212, 0.1);
+ }
+
+ .home-action-icon-wrapper {
+ position: relative;
+ width: 72px;
+ height: 72px;
+ margin-bottom: 20px;
+ transition: transform 0.3s ease;
+ }
+
+ .home-action-icon {
+ position: relative;
+ z-index: 2;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 32px;
+ color: var(--action-color);
+ background: #ffffff;
+ border-radius: 20px;
+ box-shadow: 0 4px 20px rgba(0,0,0,0.05);
+ }
+
+ .home-action-icon-glow {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 120%;
+ height: 120%;
+ background: var(--action-bg);
+ border-radius: 50%;
+ filter: blur(12px);
+ z-index: 1;
+ }
+
+ .home-action-title {
+ font-size: 20px !important;
+ font-weight: 700 !important;
+ margin-bottom: 12px !important;
+ color: @home-text-main !important;
+ transition: color 0.3s ease;
+ }
+
+ .home-action-desc {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ }
+
+ .home-action-line {
+ font-size: 14px;
+ color: @home-text-gray;
+ line-height: 1.5;
+ }
}
- .home-landing__soundstage-trace {
- left: 18px;
- right: 18px;
- bottom: 8px;
- height: 40px;
+ // Recent Section (Horizontal Cards)
+ .home-recent-section {
+ margin-top: auto; // Push to bottom if viewport is tall
}
- .home-landing__soundstage-trace span {
- width: 8px;
+ .home-section-header {
+ display: flex;
+ align-items: baseline;
+ gap: 16px;
+ margin-bottom: 24px;
+
+ h3 {
+ font-size: 18px !important;
+ font-weight: 600 !important;
+ margin: 0 !important;
+ color: @home-text-gray !important;
+ }
+ }
+
+ .home-view-all {
+ display: none; // Hidden in the reference design, but keeping in DOM
+ }
+
+ .home-recent-grid {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 24px;
+
+ @media (max-width: 1024px) {
+ grid-template-columns: repeat(2, 1fr);
+ }
+ @media (max-width: 768px) {
+ grid-template-columns: 1fr;
+ }
+ }
+
+ .home-recent-card {
+ display: flex;
+ background: #ffffff;
+ border-radius: 12px;
+ padding: 12px;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
+ border: 1px solid transparent;
+
+ &:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
+ border-color: rgba(99, 102, 241, 0.2);
+
+ .home-recent-card-action {
+ color: @home-primary;
+ }
+ }
+
+ .home-recent-card-thumbnail {
+ width: 100px;
+ height: 72px;
+ background: linear-gradient(135deg, #e0e7ff 0%, #dbeafe 100%);
+ border-radius: 8px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-right: 16px;
+ flex-shrink: 0;
+
+ .home-recent-card-play-icon {
+ font-size: 24px;
+ color: #fff;
+ opacity: 0.8;
+ }
+ }
+
+ .home-recent-card-content {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ flex: 1;
+ min-width: 0; // Prevent text overflow pushing flex item
+ }
+
+ .home-recent-card-title {
+ font-size: 15px !important;
+ font-weight: 600 !important;
+ margin-bottom: 12px !important;
+ color: @home-text-main !important;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .home-recent-card-footer {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ font-size: 12px;
+ }
+
+ .home-recent-card-duration {
+ color: @home-text-gray;
+ }
+
+ .home-recent-card-action {
+ color: transparent; // Hidden until hover or distinct blue
+ color: #3b82f6; // Default to blue
+ font-weight: 500;
+ transition: color 0.3s ease;
+ }
+ }
+
+ .home-recent-skeleton {
+ background: #ffffff;
+ border-radius: 12px;
+ padding: 16px;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
+ }
+
+ .home-empty-state {
+ padding: 40px;
+ text-align: center;
}
}
-@media (prefers-reduced-motion: reduce) {
- .home-landing__ambient-orb--main,
- .home-landing__ambient-orb--ghost,
- .home-landing__ambient-ripple,
- .home-landing__ambient-sheen,
- .home-landing__ambient-bubble,
- .home-landing__soundstage-trace span {
- animation: none !important;
+// Fade in animation
+.home-container > * {
+ animation: homeFadeUp 0.5s ease-out both;
+}
+.home-bg-visual { animation-delay: 0s; }
+.home-content-wrapper { animation-delay: 0.1s; }
+
+@keyframes homeFadeUp {
+ from {
+ opacity: 0;
+ transform: translateY(10px);
}
-}
\ No newline at end of file
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
diff --git a/frontend/src/pages/home/index.tsx b/frontend/src/pages/home/index.tsx
index 2f69118..9eef7b2 100644
--- a/frontend/src/pages/home/index.tsx
+++ b/frontend/src/pages/home/index.tsx
@@ -2,10 +2,7 @@ import { useEffect, useMemo, useState } from "react";
import {
AudioOutlined,
ArrowRightOutlined,
- CustomerServiceOutlined,
PlayCircleOutlined,
- RadarChartOutlined,
- SoundOutlined,
VideoCameraAddOutlined
} from "@ant-design/icons";
import { Button, Empty, Skeleton, Tag, Typography } from "antd";
@@ -20,7 +17,6 @@ const { Text, Title } = Typography;
type QuickEntry = {
title: string;
- badge: string;
icon: React.ReactNode;
description: string[];
accent: string;
@@ -96,18 +92,16 @@ export default function HomePage() {
const quickEntries = useMemo