Files
derez.ai/assets/css/style.css
T

1848 lines
43 KiB
CSS

/* ═══════════════════════════════════════════════════════════════
DESIGN TOKENS (matches app.derez.ai design system)
═══════════════════════════════════════════════════════════════ */
:root {
--bg: #000810;
--bg-card: #010f20;
--bg-inner: #000d1a;
--bg-hover: #001a30;
--bg-input: #000813;
--border: #0a3060;
--border-hi: rgba(0, 245, 255, 0.45);
--accent: #00f5ff;
--accent-dim: #002535;
--danger: #ff3b3b;
--danger-dim: #3b0000;
--success: #00ff88;
--warning: #ffaa00;
--text: #c8f0ff;
--text-muted: #2e6a80;
--radius: 8px;
--radius-card: 18px;
--shadow:
0 0 0 1px rgba(0, 245, 255, 0.25),
0 0 60px rgba(0, 245, 255, 0.12),
0 28px 72px rgba(0, 0, 0, 0.9);
--max-width: 1120px;
}
/* ── Reset ───────────────────────────────────────────────── */
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
scroll-behavior: smooth;
-webkit-font-smoothing: antialiased;
}
body {
font-family: "Courier New", Courier, monospace;
background: var(--bg);
color: var(--text);
font-size: 14px;
line-height: 1.6;
overflow-x: hidden;
}
/* Ambient glow */
body::before {
content: "";
position: fixed;
inset: 0;
background:
radial-gradient(
ellipse 60% 50% at 25% 30%,
rgba(0, 245, 255, 0.06) 0%,
transparent 70%
),
radial-gradient(
ellipse 50% 60% at 75% 70%,
rgba(0, 200, 255, 0.04) 0%,
transparent 70%
);
pointer-events: none;
z-index: 0;
}
/* ── Typography ──────────────────────────────────────────── */
h1,
h2,
h3,
h4 {
font-weight: 700;
letter-spacing: -0.02em;
line-height: 1.2;
}
h1 {
font-size: clamp(2.2rem, 5.5vw, 3.8rem);
}
h2 {
font-size: clamp(1.6rem, 3.5vw, 2.4rem);
margin-bottom: 0.6em;
}
h3 {
font-size: 1.1rem;
}
p {
color: var(--text-muted);
font-size: 14px;
}
a {
color: var(--accent);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.container {
max-width: var(--max-width);
margin: 0 auto;
padding: 0 24px;
position: relative;
z-index: 1;
}
/* ── Buttons ─────────────────────────────────────────────── */
.btn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 22px;
border-radius: var(--radius);
border: none;
cursor: pointer;
font-size: 14px;
font-weight: 600;
white-space: nowrap;
text-decoration: none;
transition:
opacity 0.15s,
background 0.15s,
transform 0.1s;
}
.btn:hover {
opacity: 0.85;
text-decoration: none;
}
.btn:active {
transform: scale(0.97);
}
.btn-primary {
background: transparent;
color: #fff;
border: 1px solid var(--accent);
box-shadow:
0 0 8px rgba(0, 245, 255, 0.35),
inset 0 0 8px rgba(0, 245, 255, 0.04);
}
.btn-primary:hover {
background: rgba(0, 245, 255, 0.08);
box-shadow:
0 0 14px rgba(0, 245, 255, 0.5),
inset 0 0 10px rgba(0, 245, 255, 0.06);
}
.btn-ghost {
background: var(--bg-hover);
color: var(--text);
border: 1px solid var(--border);
}
.btn-ghost:hover {
opacity: 0.85;
background: var(--bg-hover);
border-color: var(--border);
}
.btn-lg {
padding: 12px 28px;
font-size: 13px;
border-radius: 8px;
}
.btn-block {
width: 100%;
justify-content: center;
}
/* ══════════════════════════════════════════════════════════
HEADER / NAV
══════════════════════════════════════════════════════════ */
.site-header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 100;
background: rgba(0, 8, 16, 0.85);
backdrop-filter: blur(14px);
border-bottom: 1px solid var(--border-hi);
transition: background 0.3s;
}
.site-header .container {
display: flex;
align-items: center;
justify-content: space-between;
height: 60px;
}
.site-logo {
display: flex;
align-items: center;
flex-shrink: 0;
}
.site-logo:hover {
text-decoration: none;
}
.site-logo-img {
display: block;
height: 34px;
width: auto;
}
.nav-links {
display: flex;
align-items: center;
gap: 8px;
list-style: none;
}
.nav-links a {
padding: 6px 14px;
border-radius: var(--radius);
color: var(--text-muted);
font-size: 13px;
font-weight: 500;
transition:
color 0.15s,
background 0.15s;
}
.nav-links a:hover {
color: var(--text);
background: var(--bg-hover);
text-decoration: none;
}
.header-actions {
display: flex;
align-items: center;
gap: 10px;
}
.btn-login {
background: transparent;
color: var(--text);
border: 1px solid var(--border);
padding: 7px 18px;
border-radius: var(--radius);
font-size: 13px;
font-weight: 600;
cursor: pointer;
transition:
border-color 0.15s,
color 0.15s,
background 0.15s;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 6px;
}
.btn-login:hover {
border-color: var(--accent);
color: var(--accent);
background: var(--accent-dim);
text-decoration: none;
}
.btn-signup-header {
padding: 7px 18px;
font-size: 13px;
}
/* Mobile hamburger */
.hamburger {
display: none;
flex-direction: column;
gap: 4px;
background: none;
border: none;
cursor: pointer;
padding: 6px;
}
.hamburger span {
display: block;
width: 22px;
height: 2px;
background: var(--text);
border-radius: 2px;
transition:
transform 0.2s,
opacity 0.2s;
}
/* ══════════════════════════════════════════════════════════
HERO
══════════════════════════════════════════════════════════ */
.hero {
padding: 140px 0 80px;
text-align: center;
position: relative;
overflow: hidden;
}
.hero::after {
content: "";
position: absolute;
top: -30%;
left: 50%;
transform: translateX(-50%);
width: 90%;
height: 140%;
background: radial-gradient(
ellipse at center,
rgba(0, 245, 255, 0.05) 0%,
transparent 65%
);
pointer-events: none;
}
.hero-badge {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 16px;
background: var(--accent-dim);
border: 1px solid rgba(0, 245, 255, 0.3);
border-radius: 20px;
font-size: 12px;
font-weight: 500;
color: var(--accent);
margin-bottom: 24px;
}
.hero h1 {
max-width: 820px;
margin: 0 auto 20px;
}
.hero h1 .highlight {
background: linear-gradient(135deg, var(--accent), #66e5ff);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.hero-sub {
font-size: clamp(1rem, 2vw, 1.2rem);
max-width: 620px;
margin: 0 auto 36px;
line-height: 1.7;
}
.hero-actions {
display: flex;
align-items: center;
justify-content: center;
gap: 14px;
flex-wrap: wrap;
margin-bottom: 40px;
}
.hero-stats {
display: flex;
justify-content: center;
gap: 40px;
flex-wrap: wrap;
}
.hero-stat {
text-align: center;
}
.hero-stat-num {
font-size: 1.5rem;
font-weight: 800;
color: var(--text);
}
.hero-stat-label {
font-size: 12px;
color: var(--text-muted);
margin-top: 2px;
}
/* ══════════════════════════════════════════════════════════
SECTION COMMON
══════════════════════════════════════════════════════════ */
section {
padding: 80px 0;
}
.section-title {
text-align: center;
max-width: 640px;
margin: 0 auto 16px;
}
.section-sub {
text-align: center;
max-width: 560px;
margin: 0 auto 50px;
font-size: 1rem;
}
/* ══════════════════════════════════════════════════════════
VIDEO SLIDER (Speed Run)
══════════════════════════════════════════════════════════ */
.video-slider-wrapper {
position: relative;
max-width: 960px;
margin: 0 auto;
}
.video-slider {
display: flex;
gap: 20px;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
padding: 8px 4px;
}
.video-slider::-webkit-scrollbar {
display: none;
}
.video-slide {
flex: 0 0 calc((100% - 40px) / 3);
min-width: 260px;
scroll-snap-align: start;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-card);
overflow: hidden;
transition:
border-color 0.2s,
transform 0.2s;
}
.video-slide:hover {
border-color: var(--border-hi);
transform: translateY(-4px);
}
.video-slide a {
text-decoration: none;
color: inherit;
display: block;
}
.video-slide a:hover {
text-decoration: none;
}
.video-thumb {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
background-size: cover;
background-position: center;
background-color: var(--bg-inner);
display: flex;
align-items: center;
justify-content: center;
}
.video-thumb .play-btn {
width: 54px;
height: 54px;
border-radius: 50%;
background: rgba(0, 0, 0, 0.7);
border: 2px solid rgba(255, 255, 255, 0.3);
display: flex;
align-items: center;
justify-content: center;
transition:
background 0.2s,
transform 0.2s;
backdrop-filter: blur(4px);
}
.video-slide:hover .play-btn {
background: var(--accent);
border-color: var(--accent);
transform: scale(1.08);
}
.video-thumb .play-btn svg {
width: 20px;
height: 20px;
fill: #fff;
margin-left: 2px;
}
.video-info {
padding: 14px 16px 18px;
}
.video-info h4 {
font-size: 13px;
font-weight: 600;
color: var(--text);
margin-bottom: 4px;
line-height: 1.4;
}
.video-info .video-desc {
font-size: 12px;
color: var(--text-muted);
line-height: 1.4;
}
.slider-arrow {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: 10;
width: 40px;
height: 40px;
border-radius: 50%;
border: 1px solid var(--border);
background: var(--bg-card);
color: var(--text);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
transition:
background 0.15s,
border-color 0.15s;
opacity: 0;
pointer-events: none;
}
.video-slider-wrapper:hover .slider-arrow {
opacity: 1;
pointer-events: auto;
}
.slider-arrow:hover {
background: var(--bg-hover);
border-color: var(--accent);
}
.slider-arrow-prev {
left: -20px;
}
.slider-arrow-next {
right: -20px;
}
.slider-dots {
display: flex;
justify-content: center;
gap: 8px;
margin-top: 24px;
}
.slider-dot {
width: 8px;
height: 8px;
border-radius: 50%;
border: none;
background: var(--border);
cursor: pointer;
transition:
background 0.2s,
transform 0.2s;
padding: 0;
}
.slider-dot.active {
background: var(--accent);
transform: scale(1.3);
}
.slider-dot:hover {
background: var(--text-muted);
}
@media (max-width: 768px) {
.video-slide {
flex: 0 0 calc((100% - 20px) / 2);
min-width: 0;
}
.slider-arrow {
display: none;
}
}
@media (max-width: 480px) {
.video-slide {
flex: 0 0 85%;
}
}
/* ══════════════════════════════════════════════════════════
SPEEDRUN (How It Works) — kept for reference
══════════════════════════════════════════════════════════ */
.steps {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
counter-reset: step;
}
.step-card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-card);
padding: 32px 28px;
position: relative;
transition:
border-color 0.2s,
transform 0.2s;
}
.step-card:hover {
border-color: var(--border-hi);
transform: translateY(-4px);
}
.step-number {
font-size: 2.4rem;
font-weight: 800;
color: rgba(0, 245, 255, 0.12);
line-height: 1;
margin-bottom: 12px;
}
.step-icon {
width: 44px;
height: 44px;
border-radius: 12px;
background: var(--accent-dim);
border: 1px solid rgba(0, 245, 255, 0.25);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
margin-bottom: 16px;
}
.step-card h3 {
margin-bottom: 8px;
font-size: 1.1rem;
}
.step-card p {
font-size: 13px;
line-height: 1.65;
}
/* ══════════════════════════════════════════════════════════
FEATURES
══════════════════════════════════════════════════════════ */
.features-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
.feature-card {
background: var(--bg-inner);
border: 1px solid var(--border);
border-radius: var(--radius-card);
padding: 28px 24px;
transition:
border-color 0.2s,
transform 0.2s;
position: relative;
}
.feature-card.unique {
border-color: var(--accent);
background: linear-gradient(
180deg,
rgba(0, 245, 255, 0.04) 0%,
var(--bg-inner) 100%
);
}
.feature-badge {
position: absolute;
top: -8px;
right: 16px;
background: var(--accent);
color: #000;
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
padding: 3px 12px;
border-radius: 20px;
}
.feature-card:hover {
border-color: var(--border-hi);
transform: translateY(-3px);
}
.feature-icon {
width: 40px;
height: 40px;
border-radius: 10px;
background: var(--accent-dim);
display: flex;
align-items: center;
justify-content: center;
color: var(--accent);
margin-bottom: 14px;
}
.feature-card h3 {
font-size: 15px;
margin-bottom: 6px;
}
.feature-card p {
font-size: 13px;
line-height: 1.6;
}
/* ══════════════════════════════════════════════════════════
AGENT OPTIONS
══════════════════════════════════════════════════════════ */
.agent-options {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
}
.agent-card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-card);
padding: 36px 32px;
text-align: center;
transition:
border-color 0.2s,
transform 0.2s;
position: relative;
}
.agent-card:hover {
border-color: var(--border-hi);
transform: translateY(-3px);
}
.agent-card.featured {
border-color: var(--accent);
background: linear-gradient(
180deg,
rgba(0, 245, 255, 0.05) 0%,
var(--bg-card) 100%
);
}
.agent-card.featured::before {
content: "Most Popular";
position: absolute;
top: -11px;
left: 50%;
transform: translateX(-50%);
background: var(--accent);
color: #000;
font-size: 11px;
font-weight: 600;
padding: 3px 16px;
border-radius: 20px;
letter-spacing: 0.04em;
}
.agent-card h3 {
font-size: 1.2rem;
margin-bottom: 4px;
}
.agent-tagline {
font-size: 13px;
color: var(--text-muted);
margin-bottom: 14px;
}
.agent-desc {
font-size: 13px;
line-height: 1.65;
margin-bottom: 12px;
}
.agent-features {
list-style: none;
text-align: left;
margin: 16px 0;
}
.agent-features li {
display: flex;
align-items: flex-start;
gap: 8px;
font-size: 13px;
padding: 5px 0;
color: var(--text-muted);
}
.agent-features li svg {
flex-shrink: 0;
margin-top: 2px;
color: var(--success);
}
/* ══════════════════════════════════════════════════════════
PRICING
══════════════════════════════════════════════════════════ */
.pricing-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
max-width: 960px;
margin: 0 auto;
}
.pricing-card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-card);
padding: 36px 28px;
text-align: center;
box-shadow: var(--shadow);
position: relative;
transition:
border-color 0.2s,
transform 0.2s;
display: flex;
flex-direction: column;
}
.pricing-card.featured {
border-color: var(--accent);
background: linear-gradient(
180deg,
rgba(0, 245, 255, 0.05) 0%,
var(--bg-card) 100%
);
transform: scale(1.04);
}
.pricing-perks {
list-style: none;
text-align: left;
margin: 14px 0 24px;
flex: 1;
}
.pricing-card .btn-block {
margin-top: auto;
}
.pricing-badge {
position: absolute;
top: -11px;
left: 50%;
transform: translateX(-50%);
background: var(--accent);
color: #000;
font-size: 11px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: 3px 18px;
border-radius: 20px;
}
.pricing-badge-coupon {
display: none;
font-size: 12px;
font-weight: 700;
color: #f59e0b;
background: rgba(245, 158, 11, 0.1);
border: 1px solid rgba(245, 158, 11, 0.25);
border-radius: 6px;
padding: 3px 10px;
margin-top: 8px;
margin-bottom: 4px;
line-height: 1.4;
letter-spacing: 0.02em;
}
.pricing-badge-coupon.visible {
display: inline-block;
}
.pricing-badge-coupon.free {
color: #22c55e;
background: rgba(34, 197, 94, 0.1);
border-color: rgba(34, 197, 94, 0.25);
}
.pricing-plan-name {
font-size: 13px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--accent);
margin-bottom: 6px;
}
.pricing-amount {
font-size: 3rem;
font-weight: 800;
color: var(--text);
line-height: 1;
}
.pricing-amount .pricing-currency {
font-size: 1.4rem;
vertical-align: super;
}
.pricing-period {
font-size: 0.9rem;
font-weight: 500;
color: var(--text-muted);
}
.pricing-yearly-bonus {
display: none;
font-size: 12px;
color: var(--success);
font-weight: 600;
margin-top: 4px;
}
.pricing-yearly-bonus.show {
display: block;
}
.pricing-plan-desc {
font-size: 12px;
color: var(--text-muted);
margin: 10px 0 14px;
line-height: 1.5;
}
.pricing-plan-quota {
font-size: 13px;
font-weight: 600;
color: var(--text);
padding: 8px 0;
border-top: 1px solid var(--border);
border-bottom: 1px solid var(--border);
margin-bottom: 14px;
}
.pricing-perks {
list-style: none;
text-align: left;
margin: 14px 0 24px;
}
.pricing-perks li {
display: flex;
align-items: flex-start;
gap: 8px;
padding: 4px 0;
font-size: 13px;
color: var(--text);
}
.pricing-perks li svg {
flex-shrink: 0;
margin-top: 3px;
color: var(--text-muted);
}
.pricing-perks li .plus-icon {
color: var(--success);
font-weight: 700;
font-size: 15px;
line-height: 1;
margin-top: 3px;
flex-shrink: 0;
}
.pricing-perks li.new-feature {
color: var(--text);
}
.pricing-perks li.muted {
color: var(--text-muted);
}
.pricing-perks li.muted svg {
color: var(--text-muted);
opacity: 0.4;
}
/* ── Config box ─────────────────────────────── */
.pricing-config-box {
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
margin-bottom: 36px;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-card);
padding: 14px 24px;
flex-wrap: wrap;
}
.pricing-config-label {
font-size: 13px;
font-weight: 600;
color: var(--text-muted);
white-space: nowrap;
}
.pricing-config-select {
appearance: none;
-webkit-appearance: none;
background: var(--bg);
border: 1px solid var(--border);
border-radius: var(--radius);
color: var(--text);
font-size: 13px;
padding: 6px 30px 6px 12px;
cursor: pointer;
outline: none;
transition: border-color 0.2s;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 8px center;
min-width: 110px;
}
.pricing-config-select:hover {
border-color: var(--accent);
}
.pricing-config-select:focus {
border-color: var(--accent);
}
.pricing-config-select.low-seats {
border-color: var(--warning);
box-shadow: 0 0 0 2px rgba(255, 170, 0, 0.2);
}
.pricing-config-select.no-seats {
border-color: var(--danger);
box-shadow: 0 0 0 2px rgba(255, 59, 59, 0.2);
}
.pricing-config-input {
background: var(--bg);
border: 1px solid var(--border);
border-radius: var(--radius);
color: var(--text);
font-size: 13px;
padding: 6px 12px;
outline: none;
transition: border-color 0.2s;
width: 120px;
}
.pricing-config-input:focus {
border-color: var(--accent);
}
.pricing-config-input::placeholder {
color: var(--text-muted);
opacity: 0.6;
}
#pricing-email {
width: 234px;
}
#pricing-email.invalid {
border-color: var(--danger);
box-shadow: 0 0 0 2px rgba(255, 59, 59, 0.2);
}
.pricing-toast {
position: fixed;
bottom: 100px;
left: 50%;
transform: translateX(-50%) translateY(20px);
background: var(--bg-card);
border: 1px solid var(--danger);
border-radius: var(--radius-card);
padding: 16px 24px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
font-size: 14px;
color: var(--text);
opacity: 0;
visibility: hidden;
transition:
opacity 0.3s,
transform 0.3s,
visibility 0.3s;
z-index: 9999;
max-width: 420px;
text-align: center;
pointer-events: none;
}
.pricing-toast.show {
opacity: 1;
visibility: visible;
transform: translateX(-50%) translateY(0);
}
@media (max-width: 900px) {
.pricing-grid {
grid-template-columns: 1fr;
max-width: 420px;
}
.pricing-card.featured {
transform: none;
}
}
/* ══════════════════════════════════════════════════════════
FAQ
══════════════════════════════════════════════════════════ */
.faq-list {
max-width: 700px;
margin: 0 auto;
}
.faq-item {
border-bottom: 1px solid var(--border);
}
.faq-question {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
padding: 18px 0;
background: none;
border: none;
color: var(--text);
font-size: 15px;
font-weight: 600;
cursor: pointer;
text-align: left;
gap: 16px;
transition: color 0.15s;
}
.faq-question:hover {
color: var(--accent);
}
.faq-question svg {
flex-shrink: 0;
transition: transform 0.2s;
color: var(--text-muted);
}
.faq-question.open svg {
transform: rotate(180deg);
}
.faq-answer {
max-height: 0;
overflow: hidden;
transition:
max-height 0.25s ease,
padding 0.25s ease;
font-size: 14px;
color: var(--text-muted);
line-height: 1.7;
}
.faq-answer.open {
max-height: 300px;
padding: 0 0 18px;
}
/* ══════════════════════════════════════════════════════════
CTA
══════════════════════════════════════════════════════════ */
.cta-section {
text-align: center;
padding: 80px 0 100px;
}
.cta-section h2 {
max-width: 560px;
margin: 0 auto 16px;
}
.cta-section p {
max-width: 480px;
margin: 0 auto 30px;
}
/* ══════════════════════════════════════════════════════════
BLOG
══════════════════════════════════════════════════════════ */
.blog-search {
max-width: 480px;
margin: -20px auto 32px;
}
.blog-search input {
width: 100%;
padding: 12px 16px;
background: var(--bg-input);
border: 1px solid var(--border);
border-radius: var(--radius);
color: var(--text);
font-family: inherit;
font-size: 14px;
outline: none;
transition: border-color 0.2s;
}
.blog-search input:focus {
border-color: var(--accent);
}
.blog-search input::placeholder {
color: var(--text-muted);
}
.blog-grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 20px;
margin-bottom: 32px;
}
.blog-card {
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-card);
padding: 28px;
display: flex;
flex-direction: column;
transition:
border-color 0.2s,
transform 0.2s;
cursor: pointer;
}
.blog-card:hover {
border-color: var(--accent);
transform: translateY(-2px);
}
.blog-card-area {
display: inline-block;
font-size: 0.7rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.06em;
padding: 3px 12px;
border-radius: 20px;
margin-bottom: 12px;
align-self: flex-start;
color: #000;
}
.blog-card-area.area-howto {
background: #00f5ff;
}
.blog-card-area.area-news {
background: #ffaa00;
}
.blog-card-area.area-video-scripts {
background: #00ff88;
}
.blog-card-area.area-architecture {
background: #a78bfa;
}
.blog-card-area.area-speed-run {
background: #f472b6;
}
.blog-card-area.area-default {
background: #a78bfa;
}
.blog-card-chip {
display: inline-block;
background: rgba(0, 245, 255, 0.08);
color: #00f5ff;
border: 1px solid rgba(0, 245, 255, 0.25);
font-size: 0.65rem;
font-weight: 600;
padding: 2px 10px;
border-radius: 20px;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 12px;
align-self: flex-start;
}
.blog-card-chip-video {
background: rgba(255, 0, 0, 0.1);
color: #ff4444;
border: 1px solid rgba(255, 0, 0, 0.3);
}
.blog-card-date {
font-size: 0.8rem;
color: var(--text-muted);
margin-bottom: 8px;
}
.blog-card h3 {
font-size: 1.05rem;
font-weight: 600;
line-height: 1.4;
margin-bottom: 10px;
color: var(--text);
}
.blog-card p {
font-size: 0.88rem;
color: var(--text-muted);
line-height: 1.6;
flex: 1;
}
.blog-card-link {
margin-top: 16px;
font-size: 0.85rem;
color: var(--accent);
text-decoration: none;
}
.blog-card:hover .blog-card-link {
text-decoration: underline;
}
.blog-pagination {
display: flex;
justify-content: center;
align-items: center;
gap: 24px;
}
.blog-pagination button {
background: none;
border: 1px solid var(--border);
color: var(--text);
padding: 10px 24px;
border-radius: var(--radius);
cursor: pointer;
font-family: inherit;
font-size: 0.88rem;
transition:
border-color 0.2s,
color 0.2s;
}
.blog-pagination button:hover:not(:disabled) {
border-color: var(--accent);
color: var(--accent);
}
.blog-pagination button:disabled {
opacity: 0.3;
cursor: default;
}
.blog-page-info {
font-size: 0.85rem;
color: var(--text-muted);
}
.blog-empty {
grid-column: 1 / -1;
text-align: center;
padding: 60px 20px;
color: var(--text-muted);
font-size: 0.95rem;
}
@media (max-width: 900px) {
.blog-grid {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 600px) {
.blog-grid {
grid-template-columns: 1fr;
}
}
/* ══════════════════════════════════════════════════════════
TOPICS
══════════════════════════════════════════════════════════ */
.topics-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin-top: 20px;
}
.topic-card {
display: flex;
flex-direction: column;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 18px;
padding: 28px;
text-decoration: none;
transition: border-color .2s, transform .2s;
}
.topic-card:hover {
border-color: var(--accent);
transform: translateY(-3px);
text-decoration: none;
}
.topic-badge {
display: inline-block;
background: rgba(0,245,255,0.1);
color: var(--accent);
border: 1px solid rgba(0,245,255,0.25);
font-size: 0.7rem;
font-weight: 600;
padding: 3px 10px;
border-radius: 20px;
text-transform: uppercase;
letter-spacing: 0.5px;
align-self: flex-start;
margin-bottom: 14px;
}
.topic-card h3 {
font-size: 1.15rem;
font-weight: 600;
color: var(--text);
margin-bottom: 8px;
line-height: 1.3;
}
.topic-card p {
font-size: 0.88rem;
color: var(--text-muted);
flex: 1;
margin-bottom: 16px;
line-height: 1.6;
}
.topic-link {
color: var(--accent);
font-weight: 600;
font-size: 0.88rem;
align-self: flex-start;
}
.topic-card:hover .topic-link {
text-decoration: underline;
}
@media (max-width: 700px) {
.topics-grid { grid-template-columns: 1fr; }
}
/* ══════════════════════════════════════════════════════════
FOOTER
══════════════════════════════════════════════════════════ */
.site-footer {
border-top: 1px solid var(--border);
padding: 40px 0;
font-size: 13px;
color: var(--text-muted);
}
.site-footer .container {
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 16px;
}
.site-footer a {
color: var(--text-muted);
}
.site-footer a:hover {
color: var(--text);
}
.footer-links {
display: flex;
gap: 20px;
}
/* ══════════════════════════════════════════════════════════
RESPONSIVE
══════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
.steps {
grid-template-columns: 1fr;
}
.features-grid {
grid-template-columns: 1fr 1fr;
}
.agent-options {
grid-template-columns: 1fr;
}
}
@media (max-width: 700px) {
.nav-links {
display: none;
}
.hamburger {
display: flex;
}
.nav-links.mobile-open {
display: flex;
flex-direction: column;
position: fixed;
top: 60px;
left: 0;
right: 0;
background: var(--bg);
border-bottom: 1px solid var(--border);
padding: 12px 24px 20px;
gap: 6px;
}
.features-grid {
grid-template-columns: 1fr;
}
.hero-stats {
gap: 24px;
}
.hero {
padding: 110px 0 60px;
}
section {
padding: 60px 0;
}
.pricing-card {
padding: 32px 24px;
}
.site-footer .container {
flex-direction: column;
text-align: center;
}
}
/* ── Chat Widget (glowing floating button + glass panel) ── */
.chat-fab {
position: fixed;
bottom: 28px;
right: 28px;
z-index: 9999;
width: 60px;
height: 60px;
border-radius: 50%;
background: linear-gradient(135deg, #00f5ff, #0099cc);
border: none;
cursor: pointer;
box-shadow:
0 4px 24px rgba(0, 245, 255, 0.4),
0 0 0 0 rgba(0, 245, 255, 0.35);
display: flex;
align-items: center;
justify-content: center;
font-size: 26px;
color: #000;
transition:
transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
box-shadow 0.3s;
animation: fabPulse 2.5s ease-in-out infinite;
}
@keyframes fabPulse {
0%,
100% {
box-shadow:
0 4px 24px rgba(0, 245, 255, 0.4),
0 0 0 0 rgba(0, 245, 255, 0.35);
}
50% {
box-shadow:
0 4px 32px rgba(0, 245, 255, 0.55),
0 0 0 12px rgba(0, 245, 255, 0);
}
}
.chat-fab:hover {
transform: scale(1.12) rotate(-8deg);
box-shadow: 0 6px 36px rgba(0, 245, 255, 0.5);
animation: none;
}
.chat-fab:active {
transform: scale(0.92);
}
.chat-fab.open {
transform: scale(0.88);
opacity: 0.6;
animation: none;
}
.chat-widget {
position: fixed;
bottom: 100px;
right: 28px;
z-index: 9998;
width: 380px;
max-width: calc(100vw - 56px);
height: 520px;
max-height: calc(100vh - 160px);
background: rgba(1, 15, 32, 0.92);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid rgba(0, 245, 255, 0.25);
border-radius: 22px;
box-shadow:
0 24px 80px rgba(0, 0, 0, 0.6),
0 0 40px rgba(0, 245, 255, 0.06);
overflow: hidden;
display: flex;
flex-direction: column;
opacity: 0;
visibility: hidden;
transform: translateY(16px) scale(0.94);
transform-origin: bottom right;
transition:
opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1),
transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
visibility 0.3s;
}
.chat-widget.open {
opacity: 1;
visibility: visible;
transform: translateY(0) scale(1);
}
.chat-widget::before {
content: "";
position: absolute;
inset: 0;
border-radius: 22px;
padding: 1px;
background: linear-gradient(
135deg,
rgba(0, 245, 255, 0.35),
rgba(0, 153, 204, 0.15),
rgba(0, 245, 255, 0.35)
);
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
pointer-events: none;
}
.chat-header {
display: flex;
align-items: center;
gap: 12px;
padding: 18px 20px 14px;
background: linear-gradient(
135deg,
rgba(0, 245, 255, 0.08),
rgba(0, 153, 204, 0.04)
);
border-bottom: 1px solid rgba(0, 245, 255, 0.12);
}
.chat-header-avatar {
width: 36px;
height: 36px;
border-radius: 50%;
background: linear-gradient(135deg, var(--accent-dim), #002535);
border: 2px solid var(--accent);
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
flex-shrink: 0;
position: relative;
}
.chat-header-avatar::after {
content: "";
position: absolute;
bottom: -1px;
right: -1px;
width: 10px;
height: 10px;
border-radius: 50%;
background: var(--success);
border: 2px solid var(--bg-card);
}
.chat-header-info {
flex: 1;
min-width: 0;
}
.chat-header-name {
font-weight: 700;
font-size: 14px;
color: var(--text);
letter-spacing: -0.01em;
}
.chat-header-status {
font-size: 11px;
color: var(--success);
display: flex;
align-items: center;
gap: 5px;
}
.chat-header-status::before {
content: "";
width: 5px;
height: 5px;
border-radius: 50%;
background: var(--success);
display: inline-block;
animation: statusPulse 2s ease-in-out infinite;
}
@keyframes statusPulse {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0.4;
}
}
.chat-header-close {
background: none;
border: none;
color: var(--text-muted);
cursor: pointer;
font-size: 18px;
padding: 6px;
line-height: 1;
border-radius: 8px;
transition:
color 0.15s,
background 0.15s;
}
.chat-header-close:hover {
color: var(--text);
background: rgba(255, 255, 255, 0.06);
}
.chat-msgs {
flex: 1;
overflow-y: auto;
padding: 16px 18px;
display: flex;
flex-direction: column;
gap: 10px;
scroll-behavior: smooth;
}
.chat-msgs::-webkit-scrollbar {
width: 4px;
}
.chat-msgs::-webkit-scrollbar-track {
background: transparent;
}
.chat-msgs::-webkit-scrollbar-thumb {
background: var(--border);
border-radius: 4px;
}
.chat-input-row {
display: flex;
align-items: center;
gap: 8px;
padding: 12px 16px 16px;
border-top: 1px solid rgba(0, 245, 255, 0.08);
background: rgba(0, 8, 16, 0.5);
}
.chat-input-box {
flex: 1;
min-width: 0;
padding: 10px 16px;
border: 1px solid var(--border);
border-radius: 22px;
outline: none;
background: var(--bg-input);
color: var(--text);
font-size: 13px;
transition:
border-color 0.2s,
box-shadow 0.2s;
}
.chat-input-box:focus {
border-color: var(--accent);
box-shadow: 0 0 0 2px rgba(0, 245, 255, 0.1);
}
.chat-input-box::placeholder {
color: var(--text-muted);
}
.chat-send-btn {
width: 38px;
height: 38px;
border-radius: 50%;
background: linear-gradient(135deg, var(--accent), #0099cc);
border: none;
cursor: pointer;
color: #000;
font-size: 16px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
transition:
opacity 0.15s,
transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1),
box-shadow 0.2s;
box-shadow: 0 2px 12px rgba(0, 245, 255, 0.25);
}
.chat-send-btn:hover {
opacity: 0.9;
transform: scale(1.08);
box-shadow: 0 4px 16px rgba(0, 245, 255, 0.35);
}
.chat-send-btn:active {
transform: scale(0.88);
}
.chat-send-btn:disabled {
opacity: 0.35;
cursor: not-allowed;
transform: none;
box-shadow: none;
}
.chat-msg {
max-width: 80%;
padding: 10px 14px;
border-radius: 16px;
line-height: 1.5;
word-wrap: break-word;
font-size: 13px;
animation: msgSlide 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes msgSlide {
from {
opacity: 0;
transform: translateY(8px) scale(0.97);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
.chat-msg-bot {
align-self: flex-start;
background: rgba(1, 15, 32, 0.8);
border: 1px solid rgba(0, 245, 255, 0.1);
border-bottom-left-radius: 4px;
}
.chat-msg-user {
align-self: flex-end;
background: linear-gradient(135deg, var(--accent), #0099cc);
color: #000;
border-bottom-right-radius: 4px;
}
.chat-msg-thinking {
align-self: flex-start;
background: rgba(1, 15, 32, 0.6);
border: 1px solid rgba(0, 245, 255, 0.08);
border-bottom-left-radius: 4px;
opacity: 0.5;
}
@media (max-width: 500px) {
.chat-widget {
right: 12px;
bottom: 84px;
width: calc(100vw - 24px);
max-height: calc(100vh - 120px);
}
.chat-fab {
right: 16px;
bottom: 20px;
width: 52px;
height: 52px;
font-size: 22px;
}
}
@media (max-width: 350px) {
.chat-widget {
display: none;
}
}
/* ══════════════════════════════════════════════════════════
FOUNDER STORY
══════════════════════════════════════════════════════════ */
.story-card {
display: flex;
align-items: flex-start;
gap: 40px;
max-width: 760px;
margin: 0 auto;
background: var(--bg-card);
border: 1px solid var(--border-hi);
border-radius: var(--radius-card);
padding: 40px 36px;
box-shadow: var(--shadow);
}
.story-avatar {
flex-shrink: 0;
width: 100px;
height: 100px;
border-radius: 50%;
background: var(--accent-dim);
border: 2px solid var(--accent);
display: flex;
align-items: center;
justify-content: center;
font-size: 40px;
color: var(--accent);
overflow: hidden;
}
.story-avatar img {
width: 100%;
height: 100%;
object-fit: cover;
}
.story-body {
flex: 1;
}
.story-label {
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--accent);
margin-bottom: 6px;
}
.story-body h2 {
margin-bottom: 16px;
font-size: 1.5rem;
}
.story-body p {
font-size: 14px;
line-height: 1.7;
color: var(--text-muted);
margin-bottom: 14px;
}
.story-body p strong {
color: var(--text);
}
.story-signoff {
font-style: italic;
color: var(--accent) !important;
margin-top: 8px;
font-weight: 500;
}
@media (max-width: 600px) {
.story-card {
flex-direction: column;
align-items: center;
text-align: center;
gap: 24px;
padding: 28px 20px;
}
.story-avatar {
width: 72px;
height: 72px;
font-size: 28px;
}
}