sentra / style.css
betterwithage's picture
feat(sentra): canonical Replit Vessels-DNA landing
bf90810 verified
/* =========================================================
SZL Holdings — shared landing DNA (Vessels gold standard)
Dark ground · gold accent · cream paragraph · serif headline
Extracted from vessels-landing.tsx hero (szl-holdings/vessels)
© 2026 Stephen P. Lutar Jr. — SZL Holdings · Doctrine v7
========================================================= */
:root {
--ground: #0a0a0a;
--panel: #0c0c0c;
--gold: #c9b787;
--gold-bright: #d6c69a;
--cream: #f5f5f5;
--paragraph: #9a9a9a;
--muted: #888888;
--dim: #555555;
--hairline: rgba(255, 255, 255, 0.05);
--gold-soft: rgba(201, 183, 135, 0.04);
--gold-line: rgba(201, 183, 135, 0.15);
--live: #5a8a6e;
--mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
--display: 'Space Grotesk', Georgia, serif;
}
* { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
background: var(--ground);
color: var(--cream);
font-family: var(--display);
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
.mono { font-family: var(--mono); }
.skip {
position: absolute;
left: -9999px;
top: 1rem;
z-index: 999;
padding: 0.5rem 1.25rem;
background: var(--gold);
color: var(--ground);
border-radius: 4px;
text-decoration: none;
font-weight: 600;
}
.skip:focus { left: 1rem; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 3px; }
/* ===== HEADER ===== */
.site-header {
position: sticky;
top: 0;
z-index: 40;
border-bottom: 1px solid rgba(255, 255, 255, 0.04);
background: rgba(10, 10, 10, 0.78);
backdrop-filter: blur(10px);
}
.header-inner {
max-width: 72rem;
margin: 0 auto;
height: 3.5rem;
padding: 0 1.5rem;
display: flex;
align-items: center;
justify-content: space-between;
}
.brand { display: flex; align-items: center; gap: 0.6rem; }
.brand-mark {
width: 1.25rem;
height: 1.25rem;
display: inline-flex;
align-items: center;
justify-content: center;
border: 1px solid rgba(201, 183, 135, 0.4);
border-radius: 4px;
font-size: 9px;
color: var(--gold);
}
.brand-name { font-size: 13px; font-weight: 500; letter-spacing: -0.01em; }
.brand-tag { font-size: 10px; color: var(--dim); margin-left: 0.4rem; }
.cta-pill {
display: inline-flex;
align-items: center;
gap: 0.4rem;
font-size: 12px;
font-weight: 500;
padding: 0.4rem 0.85rem;
border-radius: 6px;
background: var(--gold);
color: var(--ground);
text-decoration: none;
transition: background 0.18s ease;
}
.cta-pill:hover { background: var(--gold-bright); }
.cta-arrow { font-size: 0.9em; }
/* ===== HERO ===== */
.hero {
position: relative;
overflow: hidden;
min-height: calc(100vh - 3.5rem);
display: flex;
align-items: center;
}
.grid-bg {
position: absolute;
inset: 0;
pointer-events: none;
background-image:
linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
background-size: 56px 56px;
-webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
}
.hero-rail {
position: absolute;
top: 5rem;
display: none;
flex-direction: column;
gap: 0.25rem;
font-size: 10px;
color: #444;
}
.hero-rail-left { left: 1.5rem; align-items: flex-start; }
.hero-rail-right { right: 1.5rem; align-items: flex-end; }
.rail-live { display: inline-flex; align-items: center; gap: 0.4rem; }
.live-dot {
width: 6px; height: 6px; border-radius: 50%;
background: var(--live); box-shadow: 0 0 6px var(--live);
animation: pulseDot 2.2s ease-in-out infinite;
}
@keyframes pulseDot { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
@media (min-width: 1024px) { .hero-rail { display: flex; } }
.hero-inner {
position: relative;
z-index: 2;
max-width: 64rem;
margin: 0 auto;
padding: 2rem 1.5rem 4rem;
text-align: center;
}
.eyebrow {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.3rem 0.85rem;
border-radius: 999px;
border: 1px solid var(--gold-line);
background: var(--gold-soft);
margin-bottom: 2.5rem;
}
.eyebrow-dot {
width: 6px; height: 6px; border-radius: 50%;
background: var(--gold);
animation: pulseDot 2.2s ease-in-out infinite;
}
.eyebrow-text {
font-size: 10px;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(--gold);
}
.headline {
font-family: var(--display);
font-size: clamp(2.6rem, 6vw, 5.2rem);
font-weight: 300;
line-height: 1.02;
letter-spacing: -0.035em;
margin: 0 0 1.75rem;
color: var(--cream);
}
.headline .accent {
background: linear-gradient(120deg, var(--cream) 20%, var(--gold) 90%);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
}
.support {
font-size: 17px;
line-height: 1.65;
color: var(--paragraph);
max-width: 36rem;
margin: 0 auto 3rem;
}
.hero-ctas {
display: flex;
align-items: center;
justify-content: center;
gap: 0.75rem;
flex-wrap: wrap;
}
.btn-primary {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.65rem 1.25rem;
font-size: 13px;
font-weight: 500;
border-radius: 6px;
background: var(--gold);
color: var(--ground);
text-decoration: none;
transition: background 0.18s ease;
}
.btn-primary:hover { background: var(--gold-bright); }
.hero-portrait {
margin: 3.5rem auto 0;
max-width: 220px;
}
.hero-portrait img {
width: 100%;
height: auto;
border-radius: 12px;
border: 1px solid var(--gold-line);
display: block;
}
/* ===== FOOTER ===== */
.site-footer {
border-top: 1px solid rgba(255, 255, 255, 0.04);
padding: 2.5rem 1.5rem;
}
.footer-inner {
max-width: 72rem;
margin: 0 auto;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 1rem;
}
.footer-brand { display: flex; align-items: center; gap: 0.6rem; }
.footer-name { font-size: 12px; color: var(--muted); }
.footer-by { font-size: 10px; color: var(--dim); }
.footer-note {
font-size: 10px;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(--dim);
}
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}