MemSlides / src /styles.css
huohua325's picture
Add live demo website entry
8d52025
Raw
History Blame Contribute Delete
17.4 kB
:root {
color: #08111f;
background: #f8fbff;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-synthesis: none;
text-rendering: optimizeLegibility;
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
margin: 0;
overflow-x: hidden;
}
a {
color: inherit;
text-decoration: none;
}
button {
font: inherit;
}
img {
display: block;
max-width: 100%;
}
.space-page {
--ink: #08111f;
--muted: #5f6f84;
--line: rgba(121, 143, 166, 0.26);
--panel: rgba(255, 255, 255, 0.72);
--shadow: 0 28px 80px rgba(13, 26, 52, 0.15);
min-height: 100vh;
background:
radial-gradient(circle at 16% 12%, rgba(37, 99, 235, 0.16), transparent 24rem),
radial-gradient(circle at 84% 8%, rgba(6, 182, 212, 0.2), transparent 22rem),
linear-gradient(135deg, #f8fbff, #edf8fb 48%, #f8fbff);
}
.hero-section {
position: relative;
min-height: 100svh;
overflow: hidden;
padding: 22px min(5vw, 64px) 58px;
}
.grid-bg,
.noise-bg,
.light-ribbon {
position: absolute;
inset: 0;
pointer-events: none;
}
.grid-bg {
background:
linear-gradient(rgba(75, 98, 122, 0.09) 1px, transparent 1px),
linear-gradient(90deg, rgba(75, 98, 122, 0.09) 1px, transparent 1px);
background-size: 44px 44px;
mask-image: linear-gradient(to bottom, black 0%, black 74%, transparent 100%);
}
.noise-bg {
opacity: 0.28;
background-image: radial-gradient(rgba(8, 17, 31, 0.12) 0.7px, transparent 0.7px);
background-size: 6px 6px;
}
.light-ribbon {
inset: 10% -12% auto auto;
width: 58vw;
height: 34vw;
border-radius: 999px;
background: linear-gradient(135deg, rgba(37, 99, 235, 0.2), rgba(6, 182, 212, 0.1), rgba(255, 255, 255, 0));
filter: blur(16px);
transform: rotate(-12deg);
}
.topbar,
.hero-layout,
.profile-theatre,
.runway-section,
.evidence-section {
position: relative;
z-index: 1;
width: min(1180px, calc(100% - 32px));
margin-inline: auto;
}
.topbar {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 52px;
}
.brand {
display: inline-flex;
align-items: center;
gap: 11px;
font-weight: 900;
letter-spacing: 0;
}
.brand img {
width: 38px;
height: 38px;
border-radius: 12px;
box-shadow: 0 12px 28px rgba(37, 99, 235, 0.24);
}
.nav-actions {
display: flex;
gap: 10px;
color: #42546c;
font-size: 0.92rem;
font-weight: 800;
}
.nav-actions a {
padding: 8px 11px;
border-radius: 999px;
}
.nav-actions a:hover {
background: rgba(37, 99, 235, 0.08);
color: #2563eb;
}
.hero-layout {
display: grid;
grid-template-columns: minmax(0, 0.84fr) minmax(420px, 0.9fr);
gap: min(4vw, 44px);
align-items: center;
min-height: calc(100svh - 96px);
}
.hero-copy h1 {
max-width: 650px;
margin: 18px 0 16px;
color: var(--ink);
font-size: clamp(2.8rem, 5vw, 4.9rem);
line-height: 0.98;
letter-spacing: 0;
}
.hero-copy p {
max-width: 650px;
margin: 0;
color: #455873;
font-size: clamp(1rem, 1.6vw, 1.22rem);
line-height: 1.7;
}
.status-row,
.cta-row,
.tag-row {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.status-row span,
.status-row a {
display: inline-flex;
align-items: center;
min-height: 32px;
padding: 0 11px;
border: 1px solid rgba(37, 99, 235, 0.18);
border-radius: 999px;
color: #2563eb;
background: rgba(219, 234, 254, 0.72);
font-size: 0.78rem;
font-weight: 900;
text-transform: uppercase;
}
.status-row a:hover {
background: rgba(191, 219, 254, 0.9);
}
.cta-row {
margin-top: 28px;
}
.button {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 48px;
padding: 0 18px;
border: 1px solid var(--line);
border-radius: 15px;
background: rgba(255, 255, 255, 0.76);
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset, 0 12px 24px rgba(13, 26, 52, 0.08);
color: #132238;
font-weight: 900;
transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.button.primary {
color: white;
border-color: rgba(6, 182, 212, 0.4);
background: linear-gradient(135deg, #2563eb, #06b6d4);
box-shadow: 0 20px 46px rgba(37, 99, 235, 0.26);
}
.button.muted {
color: #64748b;
background: rgba(241, 245, 249, 0.72);
}
.button:hover {
transform: translateY(-2px);
box-shadow: 0 18px 34px rgba(13, 26, 52, 0.13);
}
.poster-shell {
position: relative;
min-height: min(500px, calc(100svh - 170px));
padding: 18px;
border: 1px solid rgba(255, 255, 255, 0.78);
border-radius: 30px;
background:
linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px),
linear-gradient(145deg, rgba(9, 18, 32, 0.92), rgba(31, 58, 138, 0.88));
background-size: 38px 38px, 38px 38px, auto;
box-shadow: var(--shadow);
perspective: 1000px;
}
.poster-topline {
display: flex;
justify-content: space-between;
gap: 14px;
margin-bottom: 14px;
color: rgba(255, 255, 255, 0.76);
font-size: 0.82rem;
font-weight: 900;
text-transform: uppercase;
}
.poster-frame {
position: relative;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.18);
border-radius: 22px;
background: #020617;
box-shadow: 0 30px 70px rgba(0, 0, 0, 0.26);
}
.poster-frame img {
width: 100%;
aspect-ratio: 16 / 9;
object-fit: cover;
opacity: 0.92;
}
.play-chip {
position: absolute;
left: 16px;
bottom: 16px;
padding: 9px 12px;
border-radius: 999px;
color: white;
background: rgba(15, 23, 42, 0.72);
backdrop-filter: blur(12px);
font-size: 0.8rem;
font-weight: 900;
}
.floating-stack {
position: absolute;
right: -22px;
bottom: 24px;
width: 56%;
min-height: min(280px, 30vh);
}
.floating-stack img {
position: absolute;
inset: auto 0 0 auto;
width: 82%;
border: 1px solid rgba(255, 255, 255, 0.55);
border-radius: 18px;
box-shadow: 0 22px 48px rgba(0, 0, 0, 0.24);
transform: translate(calc(var(--i) * -38px), calc(var(--i) * -62px)) rotate(calc(var(--i) * -4deg));
}
.profile-theatre,
.runway-section,
.evidence-section {
padding: 58px 0;
}
.section-label {
color: #0f766e;
font-size: 0.84rem;
font-weight: 1000;
text-transform: uppercase;
}
.profile-grid,
.evidence-grid {
display: grid;
grid-template-columns: minmax(360px, 0.92fr) minmax(0, 1.08fr);
gap: min(5vw, 56px);
align-items: center;
}
.profile-copy-panel,
.link-panel {
border: 1px solid var(--line);
border-radius: 24px;
background: var(--panel);
box-shadow: var(--shadow);
backdrop-filter: blur(18px);
}
.profile-copy-panel {
padding: 24px;
}
.profile-tabs {
display: flex;
gap: 8px;
margin-bottom: 22px;
}
.profile-tabs button {
min-height: 40px;
padding: 0 14px;
border: 1px solid var(--line);
border-radius: 999px;
color: #42546c;
background: rgba(255, 255, 255, 0.75);
font-weight: 900;
cursor: pointer;
}
.profile-tabs button.active {
color: white;
border-color: transparent;
background: var(--active);
}
.profile-kicker {
margin: 0 0 8px;
color: var(--active);
font-weight: 1000;
text-transform: uppercase;
}
.profile-copy-panel h2,
.runway-head h2,
.evidence-section h2 {
margin: 0 0 12px;
color: var(--ink);
font-size: clamp(2rem, 4vw, 4.2rem);
line-height: 0.98;
}
.profile-copy-panel p,
.runway-head p,
.evidence-section p {
color: var(--muted);
line-height: 1.65;
}
.tag-row span {
display: inline-flex;
padding: 7px 10px;
border: 1px solid color-mix(in srgb, var(--active) 28%, transparent);
border-radius: 999px;
color: var(--active);
background: var(--active-soft);
font-size: 0.82rem;
font-weight: 900;
}
.morph-stage {
position: relative;
min-height: 500px;
}
.morph-card {
position: absolute;
width: min(620px, 82%);
overflow: hidden;
border: 1px solid var(--line);
border-radius: 24px;
background: white;
box-shadow: var(--shadow);
transform: translate(calc(var(--i) * 52px), calc(var(--i) * 76px)) rotate(calc(var(--i) * 2.5deg));
transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.morph-card:hover {
transform: translate(calc(var(--i) * 48px), calc(var(--i) * 66px - 8px)) rotate(calc(var(--i) * 1.4deg));
box-shadow: 0 34px 90px rgba(13, 26, 52, 0.2);
}
.morph-card img {
width: 100%;
aspect-ratio: 16 / 10;
object-fit: contain;
}
.morph-card div,
.runway-caption {
display: flex;
align-items: center;
gap: 10px;
padding: 13px 15px;
border-top: 1px solid var(--line);
}
.morph-card span,
.runway-caption span {
padding: 5px 8px;
border-radius: 999px;
color: var(--active);
background: var(--active-soft);
font-size: 0.76rem;
font-weight: 1000;
text-transform: uppercase;
}
.runway-head {
display: grid;
grid-template-columns: minmax(0, 0.75fr) minmax(260px, 0.35fr);
gap: 32px;
align-items: end;
margin-bottom: 12px;
}
.runway-controls {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
margin-bottom: 18px;
}
.runway-nav {
display: inline-grid;
place-items: center;
width: 48px;
height: 48px;
border: 1px solid rgba(37, 99, 235, 0.2);
border-radius: 999px;
color: #0f172a;
background: rgba(255, 255, 255, 0.86);
box-shadow: 0 16px 34px rgba(13, 26, 52, 0.1), 0 1px 0 rgba(255, 255, 255, 0.9) inset;
cursor: pointer;
transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.runway-nav:hover:not(:disabled),
.runway-nav:focus-visible {
border-color: var(--active);
box-shadow: 0 20px 42px rgba(37, 99, 235, 0.16);
transform: translateY(-2px);
outline: none;
}
.runway-nav:disabled {
cursor: default;
opacity: 0.36;
}
.page-chip {
display: inline-flex;
align-items: center;
gap: 10px;
min-height: 46px;
padding: 0 16px;
border: 1px solid rgba(37, 99, 235, 0.18);
border-radius: 999px;
background: rgba(255, 255, 255, 0.78);
box-shadow: 0 12px 28px rgba(13, 26, 52, 0.08);
}
.page-chip span {
color: var(--active);
font-size: 0.78rem;
font-weight: 1000;
text-transform: uppercase;
}
.page-chip strong {
color: #0f172a;
font-size: 0.94rem;
}
.chevron {
width: 13px;
height: 13px;
border-top: 3px solid currentColor;
border-right: 3px solid currentColor;
}
.chevron.left {
transform: translateX(2px) rotate(-135deg);
}
.chevron.right {
transform: translateX(-2px) rotate(45deg);
}
.runway-projector {
position: relative;
display: grid;
place-items: center;
padding: 8px 74px 22px;
outline: none;
}
.runway-projector:focus-visible {
border-radius: 28px;
outline: 3px solid color-mix(in srgb, var(--active) 34%, transparent);
outline-offset: 5px;
}
.runway-card {
width: min(100%, 1080px);
overflow: hidden;
border: 1px solid var(--line);
border-radius: 24px;
background: rgba(255, 255, 255, 0.9);
box-shadow: 0 16px 42px rgba(13, 26, 52, 0.08);
transition: box-shadow 0.28s ease, border-color 0.28s ease;
}
.runway-card.current {
border-color: color-mix(in srgb, var(--active) 24%, var(--line));
box-shadow: 0 32px 92px rgba(13, 26, 52, 0.17);
}
.runway-card img {
width: 100%;
aspect-ratio: 16 / 10;
object-fit: contain;
background: white;
}
.page-turn {
position: absolute;
z-index: 2;
top: calc(50% - 34px);
display: inline-grid;
place-items: center;
width: 62px;
height: 62px;
border: 1px solid rgba(37, 99, 235, 0.2);
border-radius: 999px;
color: #0f172a;
background:
linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(232, 245, 249, 0.78));
box-shadow: 0 24px 58px rgba(13, 26, 52, 0.14), 0 1px 0 rgba(255, 255, 255, 0.96) inset;
cursor: pointer;
transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease;
}
.page-turn.previous {
left: 0;
}
.page-turn.next {
right: 0;
}
.page-turn:hover:not(:disabled),
.page-turn:focus-visible {
border-color: var(--active);
box-shadow: 0 28px 72px rgba(37, 99, 235, 0.18);
transform: translateY(-2px);
outline: none;
}
.page-turn:disabled {
cursor: default;
opacity: 0.32;
}
.progress-rail {
display: grid;
grid-template-columns: repeat(24, minmax(18px, 1fr));
gap: 5px;
width: min(940px, calc(100% - 32px));
margin: 10px auto 0;
}
.progress-rail button {
position: relative;
display: grid;
place-items: center;
min-width: 0;
height: 22px;
border: 0;
border-radius: 999px;
background: rgba(121, 143, 166, 0.28);
cursor: pointer;
transition: transform 0.16s ease, background 0.16s ease;
}
.progress-rail button span {
color: transparent;
font-size: 0;
}
.progress-rail .product {
--rail: #2563eb;
}
.progress-rail .research {
--rail: #0f766e;
}
.progress-rail .visual {
--rail: #06b6d4;
}
.progress-rail button:hover,
.progress-rail button:focus-visible {
background: color-mix(in srgb, var(--rail) 46%, white);
outline: none;
transform: scaleY(1.22);
}
.progress-rail button.active {
background: var(--rail);
transform: scaleY(1.65);
}
.progress-rail button.active span {
color: white;
font-size: 0.62rem;
font-weight: 1000;
}
.metric-grid {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
margin-top: 26px;
}
.metric-grid article {
display: grid;
grid-template-columns: 44px 1fr;
gap: 8px 14px;
min-height: 0;
padding: 18px 20px;
border: 1px solid var(--line);
border-radius: 22px;
background: rgba(255, 255, 255, 0.78);
box-shadow: 0 12px 28px rgba(13, 26, 52, 0.07);
}
.metric-grid span {
grid-row: span 2;
color: var(--active);
font-weight: 1000;
}
.metric-grid strong {
display: block;
margin: 0;
color: var(--ink);
font-size: 1.15rem;
}
.metric-grid p {
margin: 0;
}
.link-panel {
position: sticky;
top: 24px;
display: grid;
gap: 12px;
padding: 18px;
}
.link-panel img {
width: 100%;
border-radius: 18px;
background: white;
border: 1px solid var(--line);
}
.resource-card {
display: grid;
gap: 4px;
padding: 14px 15px;
border: 1px solid var(--line);
border-radius: 14px;
background: rgba(255, 255, 255, 0.74);
color: #132238;
font-weight: 900;
}
.resource-card.demo-resource {
border-color: rgba(6, 182, 212, 0.36);
background:
linear-gradient(135deg, rgba(37, 99, 235, 0.1), rgba(6, 182, 212, 0.16)),
rgba(255, 255, 255, 0.82);
box-shadow: 0 18px 38px rgba(37, 99, 235, 0.12);
}
.resource-card.demo-resource strong {
color: #0f3f95;
}
.resource-card span {
color: var(--active);
font-size: 0.74rem;
font-weight: 1000;
text-transform: uppercase;
}
.resource-card strong {
font-size: 0.98rem;
line-height: 1.35;
word-break: break-word;
}
.resource-card small {
color: var(--muted);
line-height: 1.45;
}
.resource-card:hover {
border-color: color-mix(in srgb, var(--active) 30%, var(--line));
background: rgba(255, 255, 255, 0.92);
}
.link-panel small {
color: var(--muted);
line-height: 1.55;
}
@media (max-width: 960px) {
.hero-section {
padding-inline: 0;
}
.topbar,
.hero-layout,
.profile-theatre,
.runway-section,
.evidence-section {
width: min(100% - 24px, 720px);
}
.hero-layout,
.profile-grid,
.evidence-grid,
.runway-head {
grid-template-columns: 1fr;
}
.runway-controls {
justify-content: flex-start;
}
.runway-projector {
padding-inline: 58px;
}
.page-turn {
width: 52px;
height: 52px;
}
.hero-layout {
padding-top: 36px;
min-height: 0;
}
.poster-shell {
min-height: 0;
}
.floating-stack {
display: none;
}
.morph-stage {
min-height: 430px;
}
.morph-card {
width: 86%;
}
.metric-grid {
grid-template-columns: 1fr;
}
.link-panel {
position: static;
}
}
@media (max-width: 620px) {
.nav-actions {
display: none;
}
.hero-copy h1 {
font-size: clamp(2.1rem, 10vw, 3.35rem);
line-height: 0.98;
}
.hero-copy p {
font-size: 0.98rem;
line-height: 1.55;
}
.cta-row {
margin-top: 20px;
}
.button {
min-height: 44px;
padding: 0 14px;
}
.hero-section {
min-height: 0;
padding-bottom: 44px;
}
.profile-theatre,
.runway-section,
.evidence-section {
padding: 52px 0;
}
.profile-copy-panel {
padding: 20px;
}
.profile-tabs {
overflow-x: auto;
padding-bottom: 4px;
}
.morph-stage {
min-height: 370px;
}
.morph-card {
width: 91%;
border-radius: 18px;
transform: translate(calc(var(--i) * 18px), calc(var(--i) * 60px)) rotate(calc(var(--i) * 1.3deg));
}
.runway-card {
border-radius: 18px;
}
.runway-projector {
padding: 4px 0 66px;
}
.page-turn {
top: auto;
bottom: 0;
}
.page-turn.previous {
left: calc(50% - 64px);
}
.page-turn.next {
right: calc(50% - 64px);
}
.progress-rail {
grid-template-columns: repeat(12, minmax(16px, 1fr));
width: calc(100% - 24px);
}
.morph-card div,
.runway-caption {
align-items: flex-start;
flex-direction: column;
gap: 7px;
}
}
@media (prefers-reduced-motion: reduce) {
html {
scroll-behavior: auto;
}
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
.floating-stack img,
.morph-card,
.runway-card,
.page-turn {
transform: none !important;
}
}