www_site/app/globals.css

269 lines
4.7 KiB
CSS

@import "tailwindcss";
@theme {
--color-ink: #0d0f12;
--color-panel: #14181d;
--color-panel-raised: #1a1d21;
--color-line: #2a2f36;
--color-copy: #f5f7fa;
--color-muted: #9ca3af;
--color-subtle: #4b5563;
--color-orange: #ff6a00;
--color-blue: #1677ff;
--color-cyan: #00d1e6;
--color-success: #22c55e;
--color-warning: #f59e0b;
--color-danger: #ef4444;
--font-sans: var(--font-inter), "PingFang SC", "Microsoft YaHei", sans-serif;
}
:root {
color-scheme: dark;
background: #0d0f12;
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
min-width: 320px;
margin: 0;
background: #0d0f12;
color: #f5f7fa;
font-family: var(--font-inter), "PingFang SC", "Microsoft YaHei", sans-serif;
}
a,
button,
input,
textarea,
select {
font: inherit;
}
a {
color: inherit;
text-decoration: none;
}
button,
a {
-webkit-tap-highlight-color: transparent;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
outline: 2px solid #00d1e6;
outline-offset: 4px;
}
::selection {
background: #1677ff;
color: #f5f7fa;
}
.skip-link {
position: fixed;
z-index: 100;
top: 1rem;
left: 1rem;
transform: translateY(-200%);
border-radius: 999px;
background: #f5f7fa;
color: #0d0f12;
padding: 0.75rem 1rem;
font-size: 0.875rem;
font-weight: 700;
transition: transform 180ms ease;
}
.skip-link:focus {
transform: translateY(0);
}
.container-shell {
width: min(1180px, calc(100% - 2.5rem));
margin-inline: auto;
}
.section-rule {
border-top: 1px solid rgba(75, 85, 99, 0.42);
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: 0.75rem;
color: #9ca3af;
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.22em;
text-transform: uppercase;
}
.eyebrow::before {
width: 2.25rem;
height: 2px;
background: #ff6a00;
content: "";
}
.eyebrow-cyan::before {
background: #00d1e6;
}
.eyebrow-blue::before {
background: #1677ff;
}
.display-heading {
max-width: 10ch;
margin-top: 1.25rem;
font-size: clamp(2.8rem, 7vw, 6.5rem);
font-weight: 650;
letter-spacing: -0.07em;
line-height: 0.98;
}
.body-copy {
color: #9ca3af;
line-height: 1.8;
}
.surface-grid {
background-image: linear-gradient(rgba(42, 47, 54, 0.22) 1px, transparent 1px),
linear-gradient(90deg, rgba(42, 47, 54, 0.22) 1px, transparent 1px);
background-size: 64px 64px;
mask-image: linear-gradient(to bottom, black 0%, transparent 80%);
}
.hero-glow {
background: radial-gradient(circle at 74% 38%, rgba(22, 119, 255, 0.14), transparent 26rem),
radial-gradient(circle at 68% 65%, rgba(0, 209, 230, 0.08), transparent 22rem);
}
.button-primary,
.button-secondary,
.button-ghost {
display: inline-flex;
min-height: 2.75rem;
align-items: center;
justify-content: center;
gap: 0.7rem;
border-radius: 0.65rem;
padding: 0.75rem 1rem;
font-size: 0.875rem;
font-weight: 700;
transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}
.button-primary {
background: #ff6a00;
color: #0d0f12;
}
.button-primary:hover {
background: #ff812b;
transform: translateY(-2px);
}
.button-secondary {
border: 1px solid #1677ff;
background: rgba(22, 119, 255, 0.08);
color: #dbeafe;
}
.button-secondary:hover {
background: rgba(22, 119, 255, 0.18);
transform: translateY(-2px);
}
.button-ghost {
border: 1px solid #2a2f36;
color: #d1d5db;
}
.button-ghost:hover {
border-color: #00d1e6;
color: #f5f7fa;
}
.button-disabled,
button:disabled {
cursor: not-allowed;
opacity: 0.52;
}
.product-visual {
position: relative;
min-height: 15rem;
overflow: hidden;
border: 1px solid rgba(75, 85, 99, 0.5);
border-radius: 1rem;
background: linear-gradient(135deg, #1a1d21, #101317 68%);
}
.product-visual::after {
position: absolute;
right: -15%;
bottom: -52%;
width: 80%;
height: 95%;
border: 1px solid rgba(0, 209, 230, 0.36);
border-radius: 50%;
box-shadow: 0 0 80px rgba(0, 209, 230, 0.13);
content: "";
transform: rotate(-18deg);
}
.field-label {
display: block;
margin-bottom: 0.5rem;
color: #d1d5db;
font-size: 0.8125rem;
font-weight: 600;
}
.field-input {
width: 100%;
border: 1px solid #2a2f36;
border-radius: 0.65rem;
background: #14181d;
color: #f5f7fa;
padding: 0.8rem 0.9rem;
}
.field-input:disabled {
cursor: not-allowed;
color: #6b7280;
}
@media (max-width: 640px) {
.container-shell {
width: min(100% - 2rem, 1180px);
}
.display-heading {
max-width: 8ch;
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
}
}