homepage/public/assets/zapret-moe/home.css

664 lines
13 KiB
CSS

.page-content.home.zpm-home,
.zpm-home {
--zpm-bg: #0b0d10;
--zpm-surface: #12161b;
--zpm-surface-strong: #181e25;
--zpm-ink: #f1f3f5;
--zpm-muted: #a8b0ba;
--zpm-dim: #77818d;
--zpm-line: #2a323c;
--zpm-accent: #82b7ff;
--zpm-accent-strong: #b8d6ff;
width: 100%;
margin: 0;
padding: 0;
overflow: clip;
color: var(--zpm-ink);
font-family:
ui-sans-serif,
system-ui,
-apple-system,
"Segoe UI",
sans-serif;
background: var(--zpm-bg);
}
.zpm-home *,
.zpm-home *::before,
.zpm-home *::after {
box-sizing: border-box;
}
.zpm-home a {
color: inherit;
}
.zpm-home a:focus-visible {
outline: 3px solid var(--zpm-accent);
outline-offset: 4px;
}
.zpm-shell {
width: min(1120px, calc(100% - 48px));
margin-inline: auto;
}
.zpm-hero {
padding: clamp(56px, 7vw, 92px) 0 clamp(56px, 7vw, 88px);
border-bottom: 1px solid var(--zpm-line);
}
.zpm-hero-grid {
display: grid;
grid-template-columns: minmax(0, 1.6fr) minmax(240px, 0.6fr);
gap: clamp(40px, 7vw, 96px);
align-items: start;
}
.zpm-hero-copy {
max-width: 860px;
}
.zpm-kicker {
margin: 0;
color: var(--zpm-accent);
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 12px;
letter-spacing: 0.06em;
line-height: 1.5;
text-transform: uppercase;
}
.zpm-kicker span {
color: var(--zpm-dim);
}
.zpm-hero h1 {
max-width: 900px;
margin: 20px 0 0;
font-size: clamp(40px, 5.1vw, 68px);
font-weight: 720;
letter-spacing: -0.055em;
line-height: 1.02;
text-wrap: balance;
}
.zpm-lead {
max-width: 720px;
margin: 24px 0 0;
color: var(--zpm-muted);
font-size: clamp(16px, 1.5vw, 19px);
line-height: 1.6;
text-wrap: pretty;
}
.zpm-hero-links,
.zpm-project-links {
display: flex;
flex-wrap: wrap;
gap: 8px 22px;
align-items: center;
margin-top: 34px;
}
.zpm-home a {
text-decoration-thickness: 1px;
text-underline-offset: 3px;
}
.zpm-hero-links a,
.zpm-project-links a,
.zpm-community a {
min-height: 44px;
display: inline-flex;
align-items: center;
}
.zpm-primary {
padding: 11px 17px;
border: 1px solid var(--zpm-accent);
border-radius: 5px;
background: var(--zpm-accent);
color: #09111e !important;
font-weight: 700;
text-decoration: none !important;
}
.zpm-primary:hover {
background: var(--zpm-accent-strong);
border-color: var(--zpm-accent-strong);
}
.zpm-hero-links a:not(.zpm-primary) {
color: var(--zpm-accent-strong);
}
.zpm-hero-aside {
padding-top: 14px;
border-top: 1px solid var(--zpm-line);
color: var(--zpm-muted);
font-size: 13px;
line-height: 1.5;
}
.zpm-aside-label {
margin: 0 0 10px;
color: var(--zpm-ink);
font-weight: 700;
}
.zpm-hero-aside ul {
display: grid;
gap: 0;
margin: 0;
padding: 0;
list-style: none;
}
.zpm-hero-aside li {
border-bottom: 1px solid var(--zpm-line);
}
.zpm-hero-aside li:first-child {
border-top: 1px solid var(--zpm-line);
}
.zpm-hero-aside a {
display: grid;
gap: 2px;
padding: 11px 0;
color: var(--zpm-accent-strong);
text-decoration: none;
}
.zpm-hero-aside a:hover {
color: var(--zpm-ink);
}
.zpm-hero-aside strong {
color: var(--zpm-ink);
font-size: 14px;
}
.zpm-hero-aside a span {
color: var(--zpm-muted);
}
.zpm-section {
padding: clamp(60px, 7vw, 96px) 0;
border-bottom: 1px solid var(--zpm-line);
}
.zpm-section-muted {
background: var(--zpm-surface);
}
.zpm-section-dark {
background: #080a0d;
}
.zpm-section-heading {
max-width: 620px;
}
.zpm-section-heading h2 {
margin: 16px 0 0;
font-size: clamp(30px, 4vw, 48px);
font-weight: 700;
letter-spacing: -0.04em;
line-height: 1.08;
}
.zpm-section-heading > p:last-child {
margin: 18px 0 0;
color: var(--zpm-muted);
font-size: 16px;
line-height: 1.6;
text-wrap: pretty;
}
.zpm-project-list {
margin-top: 24px;
}
.zpm-hero + .zpm-section {
padding-top: clamp(44px, 5vw, 64px);
}
.zpm-project {
padding: 28px 0;
border-top: 1px solid var(--zpm-line);
}
.zpm-project:last-child {
border-bottom: 1px solid var(--zpm-line);
}
.zpm-project-featured {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(320px, 44%);
gap: clamp(28px, 6vw, 76px);
align-items: center;
padding: 32px 0;
}
.zpm-project-body {
max-width: 580px;
}
.zpm-project-meta {
margin: 0;
color: var(--zpm-accent);
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 12px;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.zpm-project h3 {
margin: 12px 0 0;
font-size: clamp(24px, 3vw, 36px);
font-weight: 700;
letter-spacing: -0.035em;
line-height: 1.1;
}
.zpm-project > p:not(.zpm-project-meta) {
max-width: 570px;
margin: 14px 0 0;
color: var(--zpm-muted);
font-size: 15px;
line-height: 1.65;
}
.zpm-project-image {
display: block;
overflow: hidden;
border: 1px solid var(--zpm-line);
background: #07090c;
}
.zpm-project-image img {
display: block;
width: 100%;
height: auto;
}
.zpm-project-image:hover {
border-color: var(--zpm-accent);
}
.zpm-project-columns {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: clamp(28px, 5vw, 72px);
}
.zpm-project-columns .zpm-project {
border-bottom: 1px solid var(--zpm-line);
}
.zpm-project-variants {
margin: 24px 0 0;
padding: 0;
list-style: none;
}
.zpm-project-variants li {
display: flex;
gap: 18px;
align-items: center;
padding: 15px 0;
border-top: 1px solid var(--zpm-line);
}
.zpm-project-variants li > a:first-child {
display: grid;
gap: 3px;
min-width: 0;
flex: 1;
text-decoration: none;
}
.zpm-project-variants strong {
font-size: 15px;
}
.zpm-project-variants span {
color: var(--zpm-dim);
font-size: 13px;
line-height: 1.4;
}
.zpm-project-variants li > a:last-child {
color: var(--zpm-accent-strong);
font-size: 13px;
white-space: nowrap;
}
.zpm-release-grid,
.zpm-tools-grid {
display: grid;
grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr);
gap: clamp(40px, 9vw, 120px);
align-items: start;
}
.zpm-release-links {
min-width: 0;
}
.zpm-release-feature {
position: relative;
display: grid;
gap: 6px;
padding: 22px 50px 22px 22px;
border: 1px solid var(--zpm-line);
background: var(--zpm-surface-strong);
text-decoration: none;
}
.zpm-release-feature:hover {
border-color: var(--zpm-accent);
}
.zpm-release-feature strong {
font-size: 19px;
}
.zpm-release-feature > span:not(.zpm-release-label) {
color: var(--zpm-muted);
font-size: 14px;
line-height: 1.5;
}
.zpm-release-label {
color: var(--zpm-accent);
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 11px;
letter-spacing: 0.05em;
text-transform: uppercase;
}
.zpm-release-feature > b {
position: absolute;
top: 24px;
right: 22px;
color: var(--zpm-accent);
font-size: 20px;
}
.zpm-release-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
margin-top: 18px;
}
.zpm-release-list a {
display: grid;
gap: 5px;
padding: 16px 12px;
border-top: 1px solid var(--zpm-line);
text-decoration: none;
}
.zpm-release-list a:hover {
background: rgba(130, 183, 255, 0.07);
}
.zpm-release-list span {
color: var(--zpm-dim);
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 11px;
text-transform: uppercase;
}
.zpm-release-list strong {
font-size: 15px;
}
.zpm-tool-list {
margin: 0;
padding: 0;
border-top: 1px solid var(--zpm-line);
list-style: none;
}
.zpm-tool-list a {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 4px 20px;
padding: 17px 12px;
border-bottom: 1px solid var(--zpm-line);
text-decoration: none;
}
.zpm-tool-list a:hover {
background: rgba(130, 183, 255, 0.07);
}
.zpm-tool-list strong {
font-size: 16px;
}
.zpm-tool-list span {
color: var(--zpm-muted);
font-size: 13px;
}
.zpm-tool-list b {
grid-column: 2;
grid-row: 1/3;
align-self: center;
color: var(--zpm-accent);
font-size: 18px;
}
.zpm-join-grid {
display: grid;
grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr);
gap: 48px 120px;
}
.zpm-steps {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
margin: 0;
padding: 0;
list-style: none;
}
.zpm-steps li {
display: grid;
gap: 14px;
padding-top: 16px;
border-top: 1px solid var(--zpm-line);
}
.zpm-steps li > span {
color: var(--zpm-accent);
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}
.zpm-steps p {
margin: 0;
color: var(--zpm-muted);
font-size: 14px;
line-height: 1.6;
}
.zpm-steps strong {
display: block;
margin-bottom: 5px;
color: var(--zpm-ink);
font-size: 16px;
}
.zpm-community {
grid-column: 1/-1;
display: flex;
gap: 20px;
align-items: center;
margin-top: 20px;
padding-top: 28px;
border-top: 1px solid var(--zpm-line);
}
.zpm-community img {
width: 72px;
height: 72px;
flex: none;
border-radius: 8px;
object-fit: cover;
}
.zpm-community > div {
flex: 1;
min-width: 0;
}
.zpm-community .zpm-project-meta {
margin-bottom: 7px;
}
.zpm-community p:last-child {
max-width: 680px;
margin: 0;
color: var(--zpm-muted);
font-size: 15px;
line-height: 1.5;
}
@media (max-width: 900px) {
.zpm-hero-grid,
.zpm-release-grid,
.zpm-tools-grid,
.zpm-join-grid {
grid-template-columns: 1fr;
gap: 48px;
}
.zpm-project-featured {
grid-template-columns: 1fr;
}
.zpm-project-body {
max-width: 680px;
}
.zpm-steps {
grid-template-columns: 1fr 1fr;
}
.zpm-community {
grid-column: auto;
}
}
@media (max-width: 620px) {
.zpm-shell {
width: min(100% - 32px, 560px);
}
.zpm-hero {
padding-top: 52px;
padding-bottom: 56px;
}
.zpm-hero-grid {
gap: 28px;
}
.zpm-hero h1 {
font-size: clamp(38px, 11vw, 58px);
letter-spacing: -0.05em;
}
.zpm-lead {
font-size: 16px;
}
.zpm-hero-links,
.zpm-project-links {
align-items: stretch;
flex-direction: row;
gap: 0 16px;
}
.zpm-hero-links a,
.zpm-project-links a {
width: max-content;
max-width: 100%;
}
.zpm-hero-links a:not(.zpm-primary) {
min-height: 36px;
}
.zpm-hero-aside ul {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.zpm-hero-aside li,
.zpm-hero-aside li:first-child {
border-top: 0;
border-bottom: 0;
}
.zpm-hero-aside a {
padding: 8px 8px 8px 0;
}
.zpm-project-columns,
.zpm-release-list,
.zpm-steps {
grid-template-columns: 1fr;
}
.zpm-project {
padding: 24px 0;
}
.zpm-project-featured {
padding-top: 26px;
}
.zpm-community {
align-items: flex-start;
flex-wrap: wrap;
}
.zpm-community > div {
flex-basis: calc(100% - 92px);
}
.zpm-tool-list a {
padding-inline: 0;
}
}
@media (prefers-reduced-motion: reduce) {
.zpm-home *,
.zpm-home *::before,
.zpm-home *::after {
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
}
}
.zpm-inline-link {
display: inline-block;
margin-top: 24px;
color: var(--zpm-accent-strong);
font-size: 14px;
}
.zpm-shot-list {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 20px;
margin-top: 48px;
}
.zpm-shot-list a {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 6px 12px;
padding-bottom: 15px;
border-bottom: 1px solid var(--zpm-line);
text-decoration: none;
}
.zpm-shot-list img {
grid-column: 1/-1;
display: block;
width: 100%;
height: auto;
aspect-ratio: 1.8;
object-fit: cover;
margin-bottom: 8px;
border: 1px solid var(--zpm-line);
filter: brightness(0.9);
}
.zpm-shot-list a:hover img {
border-color: var(--zpm-accent);
filter: brightness(1);
}
.zpm-shot-list strong {
font-size: 15px;
}
.zpm-shot-list span {
justify-self: end;
color: var(--zpm-dim);
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 11px;
text-transform: uppercase;
}
.zpm-trust-grid {
display: grid;
grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr);
gap: clamp(40px, 9vw, 120px);
}
.zpm-trust-list {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
margin: 0;
padding: 0;
list-style: none;
}
.zpm-trust-list li {
display: grid;
gap: 8px;
padding-top: 16px;
border-top: 1px solid var(--zpm-line);
}
.zpm-trust-list strong {
font-size: 15px;
}
.zpm-trust-list span {
color: var(--zpm-muted);
font-size: 14px;
line-height: 1.55;
}
.zpm-support {
background: var(--zpm-surface-strong);
}
.zpm-support-grid {
display: grid;
grid-template-columns: minmax(220px, 1fr) minmax(0, 1fr);
gap: clamp(40px, 9vw, 120px);
align-items: start;
}
.zpm-support h2 {
max-width: 540px;
margin: 16px 0 0;
font-size: clamp(30px, 4vw, 50px);
letter-spacing: -0.04em;
line-height: 1.08;
}
.zpm-support-grid > div:last-child {
max-width: 520px;
}
.zpm-support-grid p:not(.zpm-kicker) {
margin: 0 0 24px;
color: var(--zpm-muted);
font-size: 16px;
line-height: 1.6;
}
.zpm-support-grid strong {
color: var(--zpm-ink);
}
@media (max-width: 900px) {
.zpm-trust-grid,
.zpm-support-grid {
grid-template-columns: 1fr;
gap: 48px;
}
.zpm-trust-list {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 620px) {
.zpm-shot-list,
.zpm-trust-list {
grid-template-columns: 1fr;
}
.zpm-shot-list img {
aspect-ratio: 1.8;
}
}