:root {
--jv-bg: #ffffff;
--jv-bg-soft: #f6f8fc;
--jv-bg-muted: #eef2f8;
--jv-ink: #0b1220;
--jv-text: #334155;
--jv-muted: #64748b;
--jv-border: #e2e8f0;
--jv-accent: #2563eb;
--jv-accent-dark: #1d4ed8;
--jv-accent-2: #06b6d4;
--jv-accent-soft: #eff6ff;
--jv-dark: #0a0f1d;
--jv-dark-2: #111a2e;
--jv-dark-3: #1b2742;
--jv-code-bg: #0b1220;
--jv-code-text: #e2e8f0;
--jv-radius: 16px;
--jv-radius-sm: 10px;
--jv-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 10px 30px rgba(15, 23, 42, 0.06);
--jv-shadow-lg: 0 30px 70px rgba(15, 23, 42, 0.14);
--jv-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--jv-font-display: "Space Grotesk", var(--jv-font);
--jv-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
--jv-measure: 720px;
} body,
.ct-body,
input,
textarea,
select,
button {
font-family: var(--jv-font) !important;
}
body {
color: var(--jv-text);
background: var(--jv-bg);
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, h5, h6,
.entry-title,
.page-title {
font-family: var(--jv-font-display) !important;
color: var(--jv-ink);
letter-spacing: -0.02em;
}
a {
color: var(--jv-accent);
}
::selection {
background: var(--jv-accent);
color: #fff;
}
.ct-container {
max-width: 1200px;
} #header.ct-header {
position: sticky;
top: 0;
z-index: 100;
background: rgba(255, 255, 255, 0.86);
-webkit-backdrop-filter: saturate(180%) blur(14px);
backdrop-filter: saturate(180%) blur(14px);
border-bottom: 1px solid var(--jv-border);
}
#header .ct-container {
min-height: 72px;
}
.site-title a {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-family: var(--jv-font-display) !important;
font-weight: 700;
font-size: 1.3rem;
letter-spacing: -0.04em;
color: var(--jv-ink);
text-decoration: none;
}
.site-title a::before {
content: "</>";
font-family: var(--jv-font-mono);
font-size: 0.82rem;
font-weight: 500;
line-height: 1;
color: var(--jv-accent);
background: var(--jv-accent-soft);
border: 1px solid #dbeafe;
padding: 0.32rem 0.42rem;
border-radius: 7px;
letter-spacing: -0.06em;
}
.header-menu-1 .ct-menu-link {
font-weight: 500;
font-size: 0.94rem;
color: var(--jv-text);
transition: color 0.15s ease;
}
.header-menu-1 .ct-menu-link:hover,
.header-menu-1 .current-menu-item > .ct-menu-link {
color: var(--jv-accent);
}
.header-menu-1 .sub-menu {
border: 1px solid var(--jv-border);
border-radius: 12px;
box-shadow: var(--jv-shadow);
overflow: hidden;
}
.jv-nav-cta {
display: flex;
align-items: center;
align-self: center;
margin-left: 0.4rem;
}
.menu > li.jv-nav-cta {
display: flex;
align-items: center !important;
height: auto !important;
}
.menu > li.jv-nav-cta > a {
display: inline-flex;
align-items: center;
align-self: center !important;
height: auto !important;
max-height: 40px !important;
min-height: 0 !important;
line-height: 1.2 !important;
background: var(--jv-accent) !important;
color: #fff !important;
padding: 0.55rem 1.05rem !important;
border-radius: 9px;
font-weight: 600 !important;
box-shadow: 0 8px 20px rgba(37, 99, 235, 0.25);
transition: background 0.15s ease, transform 0.15s ease;
}
.jv-nav-cta > a:hover {
background: var(--jv-accent-dark) !important;
transform: translateY(-1px);
} .jv-footer {
background: var(--jv-dark);
color: #94a3b8;
border-top: 1px solid rgba(148, 163, 184, 0.12);
}
.jv-footer__inner {
max-width: 1200px;
margin: 0 auto;
padding: 4rem 1.5rem 3rem;
display: grid;
grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
gap: 2.5rem;
}
.jv-footer__logo {
display: inline-flex;
align-items: center;
gap: 0.5rem;
font-family: var(--jv-font-display);
font-weight: 700;
font-size: 1.3rem;
letter-spacing: -0.04em;
color: #fff;
text-decoration: none;
margin-bottom: 1rem;
}
.jv-footer__logo::before {
content: "</>";
font-family: var(--jv-font-mono);
font-size: 0.8rem;
color: var(--jv-accent-2);
background: rgba(6, 182, 212, 0.12);
border: 1px solid rgba(6, 182, 212, 0.25);
padding: 0.3rem 0.4rem;
border-radius: 7px;
letter-spacing: -0.06em;
}
.jv-footer__brand p {
font-size: 0.92rem;
line-height: 1.7;
color: #94a3b8;
margin: 0 0 1.2rem;
max-width: 22rem;
}
.jv-footer__social {
display: flex;
gap: 0.6rem;
}
.jv-footer__social a {
display: grid;
place-items: center;
width: 36px;
height: 36px;
border-radius: 9px;
border: 1px solid rgba(148, 163, 184, 0.2);
color: #cbd5e1;
text-decoration: none;
transition: 0.15s ease;
}
.jv-footer__social a:hover {
background: var(--jv-accent);
border-color: var(--jv-accent);
color: #fff;
}
.jv-footer__social svg {
width: 17px;
height: 17px;
}
.jv-footer__col h4 {
font-family: var(--jv-font-mono) !important;
font-size: 0.72rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.12em;
color: #64748b;
margin: 0 0 1rem;
}
.jv-footer__col ul {
list-style: none;
margin: 0;
padding: 0;
display: grid;
gap: 0.6rem;
}
.jv-footer__col a {
color: #cbd5e1;
text-decoration: none;
font-size: 0.92rem;
transition: color 0.15s ease;
}
.jv-footer__col a:hover {
color: #fff;
}
#footer.ct-footer {
background: var(--jv-dark) !important;
border-top: 1px solid rgba(148, 163, 184, 0.12);
padding-top: 0 !important;
margin-top: 0 !important;
}
#footer.ct-footer [data-row="bottom"] {
background: transparent !important;
padding-top: 1.2rem !important;
padding-bottom: 1.2rem !important;
}
#footer.ct-footer .ct-footer-copyright {
color: #64748b;
font-size: 0.82rem;
}
#footer.ct-footer .ct-footer-copyright a {
color: #94a3b8;
text-decoration: none;
}
#footer.ct-footer .ct-footer-copyright a:hover {
color: #fff;
} .home .page-title,
.page-id-13067 .page-title {
display: none;
} .home .ct-container-full,
.page-id-13067 .ct-container-full {
padding: 0 !important;
}
.home .entry-content.is-layout-constrained,
.page-id-13067 .entry-content.is-layout-constrained {
max-width: none;
margin: 0;
padding: 0;
}
.home .entry-content.is-layout-constrained > *,
.page-id-13067 .entry-content.is-layout-constrained > * {
max-width: none !important;
margin-left: 0 !important;
margin-right: 0 !important;
}
.home .entry-content > .jv-hero,
.home .entry-content > .jv-stack,
.home .entry-content > .jv-section,
.home .entry-content > .jv-cta-band,
.page-id-13067 .entry-content > .jv-hero,
.page-id-13067 .entry-content > .jv-stack,
.page-id-13067 .entry-content > .jv-section,
.page-id-13067 .entry-content > .jv-cta-band {
width: 100% !important;
max-width: 100% !important;
margin-left: 0 !important;
margin-right: 0 !important;
}
.jv-hero {
position: relative;
background: var(--jv-dark);
color: #e2e8f0;
overflow: hidden;
}
.jv-hero::before {
content: "";
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(148, 163, 184, 0.07) 1px, transparent 1px),
linear-gradient(90deg, rgba(148, 163, 184, 0.07) 1px, transparent 1px);
background-size: 48px 48px;
-webkit-mask-image: radial-gradient(ellipse at 30% 20%, #000 0%, transparent 72%);
mask-image: radial-gradient(ellipse at 30% 20%, #000 0%, transparent 72%);
pointer-events: none;
}
.jv-hero::after {
content: "";
position: absolute;
width: 620px;
height: 620px;
right: -120px;
top: -220px;
background: radial-gradient(circle, rgba(37, 99, 235, 0.35), transparent 62%);
filter: blur(20px);
pointer-events: none;
}
.jv-hero__grid {
position: relative;
z-index: 1;
max-width: 1200px;
margin: 0 auto;
padding: 5.5rem 1.5rem;
display: grid;
grid-template-columns: 1.05fr 0.95fr;
gap: 3rem;
align-items: center;
}
.jv-hero__grid > * {
min-width: 0;
}
.jv-hero__copy {
min-width: 0;
}
.jv-eyebrow {
font-family: var(--jv-font-mono);
font-size: 0.78rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--jv-accent-2);
margin: 0 0 1rem;
}
.jv-hero h1 {
font-size: clamp(2.2rem, 4.4vw, 3.5rem);
line-height: 1.05;
color: #fff;
margin: 0 0 1.2rem;
letter-spacing: -0.04em;
}
.jv-hero h1 em {
font-style: normal;
color: var(--jv-accent-2);
}
.jv-hero__lead {
font-size: 1.08rem;
line-height: 1.7;
color: #94a3b8;
max-width: 34rem;
margin: 0 0 1.8rem;
}
.jv-hero__actions {
display: flex;
gap: 0.8rem;
flex-wrap: wrap;
}
.jv-btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.8rem 1.3rem;
border-radius: 10px;
font-weight: 600;
text-decoration: none;
font-size: 0.95rem;
transition: 0.18s ease;
}
.jv-btn--primary {
background: var(--jv-accent);
color: #fff;
box-shadow: 0 10px 30px rgba(37, 99, 235, 0.35);
}
.jv-btn--primary:hover {
background: var(--jv-accent-dark);
color: #fff;
transform: translateY(-1px);
}
.jv-btn--ghost {
border: 1px solid rgba(148, 163, 184, 0.35);
color: #e2e8f0;
}
.jv-btn--ghost:hover {
border-color: var(--jv-accent-2);
color: #fff;
}
.jv-hero__trust {
margin-top: 1.6rem;
font-family: var(--jv-font-mono);
font-size: 0.76rem;
color: #64748b;
letter-spacing: 0.04em;
} .jv-terminal {
max-width: 100%;
background: #0d1526;
border: 1px solid rgba(148, 163, 184, 0.18);
border-radius: 14px;
box-shadow: var(--jv-shadow-lg);
overflow: hidden;
}
.jv-terminal__bar {
display: flex;
align-items: center;
gap: 0.4rem;
padding: 0.7rem 0.9rem;
background: rgba(255, 255, 255, 0.03);
border-bottom: 1px solid rgba(148, 163, 184, 0.12);
}
.jv-terminal__bar span {
width: 10px;
height: 10px;
border-radius: 50%;
background: #334155;
}
.jv-terminal__bar span:nth-child(1) { background: #ef4444; }
.jv-terminal__bar span:nth-child(2) { background: #f59e0b; }
.jv-terminal__bar span:nth-child(3) { background: #22c55e; }
.jv-terminal__bar em {
margin-left: auto;
font-family: var(--jv-font-mono);
font-size: 0.72rem;
color: #64748b;
font-style: normal;
}
.jv-terminal__code {
max-width: 100%;
margin: 0;
padding: 1.2rem 1.3rem;
font-family: var(--jv-font-mono);
font-size: 0.8rem;
line-height: 1.8;
color: #cbd5e1;
overflow-x: auto;
background: transparent;
}
.jv-terminal__code .k { color: #c084fc; }
.jv-terminal__code .s { color: #34d399; }
.jv-terminal__code .c { color: #64748b; }
.jv-terminal__code .f { color: #60a5fa; }
.jv-terminal__code .n { color: #fbbf24; }
.jv-terminal__status {
padding: 0.6rem 1.3rem;
border-top: 1px solid rgba(148, 163, 184, 0.12);
font-family: var(--jv-font-mono);
font-size: 0.72rem;
color: #34d399;
} .jv-stack {
background: var(--jv-bg-soft);
border-bottom: 1px solid var(--jv-border);
}
.jv-stack__inner {
max-width: 1200px;
margin: 0 auto;
padding: 1.1rem 1.5rem;
display: flex;
flex-wrap: wrap;
gap: 0.6rem 1.6rem;
align-items: center;
justify-content: center;
}
.jv-stack__label {
font-family: var(--jv-font-mono);
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--jv-muted);
}
.jv-stack__item {
font-family: var(--jv-font-mono);
font-size: 0.84rem;
color: var(--jv-ink);
font-weight: 500;
} .jv-section {
padding: 5rem 1.5rem;
}
.jv-section--soft {
background: var(--jv-bg-soft);
}
.jv-section__inner {
max-width: 1200px;
margin: 0 auto;
}
.jv-section__head {
max-width: 640px;
margin: 0 auto 2.8rem;
text-align: center;
}
.jv-section__head--left {
margin-left: 0;
text-align: left;
}
.jv-section__eyebrow {
font-family: var(--jv-font-mono);
font-size: 0.74rem;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--jv-accent);
margin: 0 0 0.7rem;
}
.jv-section__title {
font-size: clamp(1.7rem, 3vw, 2.4rem);
margin: 0 0 0.7rem;
}
.jv-section__desc {
color: var(--jv-muted);
font-size: 1.02rem;
line-height: 1.7;
margin: 0;
} .jv-services {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1.2rem;
}
.jv-service {
position: relative;
background: #fff;
border: 1px solid var(--jv-border);
border-radius: var(--jv-radius);
padding: 1.6rem;
overflow: hidden;
transition: 0.2s ease;
}
.jv-service::before {
content: "";
position: absolute;
inset: 0 0 auto;
height: 3px;
background: linear-gradient(90deg, var(--jv-accent), var(--jv-accent-2));
opacity: 0;
transition: 0.2s ease;
}
.jv-service:hover {
transform: translateY(-4px);
box-shadow: var(--jv-shadow);
border-color: #cbd5e1;
}
.jv-service:hover::before {
opacity: 1;
}
.jv-service__icon {
width: 44px;
height: 44px;
border-radius: 12px;
background: var(--jv-accent-soft);
color: var(--jv-accent);
display: grid;
place-items: center;
margin-bottom: 1.1rem;
}
.jv-service__icon svg {
width: 22px;
height: 22px;
}
.jv-service h3 {
font-size: 1.1rem;
margin: 0 0 0.5rem;
}
.jv-service p {
font-size: 0.92rem;
line-height: 1.65;
color: var(--jv-muted);
margin: 0 0 1rem;
}
.jv-service__link {
font-size: 0.88rem;
font-weight: 600;
color: var(--jv-accent);
text-decoration: none;
}
.jv-service__link:hover {
color: var(--jv-accent-dark);
} .jv-articles {
display: grid;
grid-template-columns: 1.15fr 0.85fr;
gap: 1.5rem;
}
.jv-featured {
position: relative;
display: flex;
align-items: flex-end;
min-height: 420px;
border-radius: var(--jv-radius);
overflow: hidden;
background: var(--jv-dark);
text-decoration: none;
}
.jv-featured img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
opacity: 0.55;
transition: 0.4s ease;
}
.jv-featured:hover img {
transform: scale(1.04);
opacity: 0.65;
}
.jv-featured__body {
position: relative;
z-index: 1;
width: 100%;
padding: 2rem;
background: linear-gradient(transparent, rgba(10, 15, 29, 0.94));
}
.jv-featured__cat {
display: inline-block;
font-family: var(--jv-font-mono);
font-size: 0.68rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #67e8f9;
background: rgba(6, 182, 212, 0.14);
border: 1px solid rgba(6, 182, 212, 0.3);
padding: 0.25rem 0.55rem;
border-radius: 6px;
}
.jv-featured h3 {
color: #fff;
font-size: 1.55rem;
line-height: 1.2;
margin: 0.7rem 0 0.6rem;
}
.jv-featured p {
color: #cbd5e1;
font-size: 0.94rem;
line-height: 1.6;
margin: 0 0 1rem;
}
.jv-featured__meta {
font-family: var(--jv-font-mono);
font-size: 0.74rem;
color: #94a3b8;
}
.jv-articles__list {
display: grid;
gap: 1rem;
align-content: start;
}
.jv-mini {
display: grid;
grid-template-columns: 96px 1fr;
gap: 1rem;
align-items: center;
padding: 0.7rem;
background: #fff;
border: 1px solid var(--jv-border);
border-radius: 12px;
text-decoration: none;
transition: 0.18s ease;
}
.jv-mini:hover {
transform: translateY(-2px);
box-shadow: var(--jv-shadow);
border-color: #cbd5e1;
}
.jv-mini img {
width: 96px;
height: 72px;
object-fit: cover;
border-radius: 8px;
}
.jv-mini__cat {
font-family: var(--jv-font-mono);
font-size: 0.66rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--jv-accent);
}
.jv-mini h4 {
font-size: 0.94rem;
line-height: 1.35;
margin: 0.2rem 0 0;
color: var(--jv-ink);
} .jv-stats {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1.2rem;
}
.jv-stat {
text-align: center;
padding: 1.6rem 1rem;
background: #fff;
border: 1px solid var(--jv-border);
border-radius: var(--jv-radius);
}
.jv-stat__num {
font-family: var(--jv-font-display);
font-size: 2.2rem;
font-weight: 700;
line-height: 1;
color: var(--jv-ink);
}
.jv-stat__num span {
color: var(--jv-accent);
}
.jv-stat__label {
font-size: 0.85rem;
color: var(--jv-muted);
margin-top: 0.5rem;
} .jv-cta-band {
position: relative;
background: var(--jv-dark);
color: #e2e8f0;
overflow: hidden;
}
.jv-cta-band::before {
content: "";
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(148, 163, 184, 0.06) 1px, transparent 1px),
linear-gradient(90deg, rgba(148, 163, 184, 0.06) 1px, transparent 1px);
background-size: 48px 48px;
-webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 70%);
mask-image: radial-gradient(ellipse at 50% 0%, #000 0%, transparent 70%);
pointer-events: none;
}
.jv-cta-band__inner {
position: relative;
z-index: 1;
max-width: 1200px;
margin: 0 auto;
padding: 4.5rem 1.5rem;
text-align: center;
}
.jv-cta-band h2 {
color: #fff;
font-size: clamp(1.8rem, 3vw, 2.6rem);
margin: 0 0 0.8rem;
}
.jv-cta-band p {
color: #94a3b8;
max-width: 36rem;
margin: 0 auto 1.8rem;
line-height: 1.7;
} .jv-archive-head {
max-width: 1200px;
margin: 0 auto 2rem;
}
.jv-archive-head .jv-section__title {
margin-bottom: 0.5rem;
}
.jv-chips {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin: 1.4rem 0 0;
}
.jv-chip {
font-family: var(--jv-font-mono);
font-size: 0.74rem;
padding: 0.4rem 0.8rem;
border-radius: 999px;
border: 1px solid var(--jv-border);
background: #fff;
color: var(--jv-text);
text-decoration: none;
transition: 0.15s ease;
}
.jv-chip:hover,
.jv-chip.is-active {
background: var(--jv-ink);
border-color: var(--jv-ink);
color: #fff;
}
.blog .entries,
.archive .entries,
.search .entries {
display: grid !important;
grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
gap: 1.5rem !important;
}
.blog .entries > article,
.archive .entries > article,
.search .entries > article {
display: flex;
flex-direction: column;
background: #fff;
border: 1px solid var(--jv-border);
border-radius: var(--jv-radius);
overflow: hidden;
padding: 0 !important;
transition: 0.2s ease;
}
.blog .entries > article:hover,
.archive .entries > article:hover,
.search .entries > article:hover {
transform: translateY(-4px);
box-shadow: var(--jv-shadow);
border-color: #cbd5e1;
}
.entry-card .entry-meta {
margin: 0;
padding: 1.1rem 1.2rem 0;
}
.entry-card .entry-title {
margin: 0;
padding: 0.5rem 1.2rem 0;
font-size: 1.15rem;
line-height: 1.35;
}
.entry-card .entry-title a {
color: var(--jv-ink);
text-decoration: none;
}
.entry-card .entry-title a:hover {
color: var(--jv-accent);
}
.entry-card .ct-media-container {
margin: 0.9rem 1.2rem 0;
border-radius: 10px;
overflow: hidden;
}
.entry-card .ct-media-container img {
width: 100%;
aspect-ratio: 16 / 10;
object-fit: cover;
display: block;
}
.entry-card .entry-excerpt {
flex: 1;
padding: 0.8rem 1.2rem 0;
font-size: 0.9rem;
line-height: 1.6;
color: var(--jv-muted);
}
.entry-card .entry-excerpt p {
margin: 0;
}
.entry-card .entry-meta[data-id="meta_2"] {
margin-top: auto;
padding: 1rem 1.2rem 1.2rem;
font-family: var(--jv-font-mono);
font-size: 0.72rem;
color: var(--jv-muted);
}
.entry-card .meta-categories a {
display: inline-block;
font-family: var(--jv-font-mono);
font-size: 0.66rem;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--jv-accent);
background: var(--jv-accent-soft);
padding: 0.25rem 0.55rem;
border-radius: 6px;
text-decoration: none;
} .ct-pagination {
margin-top: 3rem;
}
.ct-pagination .page-numbers {
border-radius: 9px;
font-family: var(--jv-font-mono);
font-size: 0.85rem;
}
.ct-pagination .page-numbers.current {
background: var(--jv-ink);
color: #fff;
} .single-post .ct-featured-image {
max-width: 1000px;
margin: 0 auto;
}
.single-post .ct-featured-image .ct-media-container {
border-radius: var(--jv-radius);
overflow: hidden;
box-shadow: var(--jv-shadow);
}
.single-post .hero-section {
max-width: 760px;
margin: 2rem auto 0;
}
.single-post .entry-header .page-title {
font-size: clamp(1.9rem, 3.5vw, 2.8rem);
line-height: 1.15;
margin: 0 0 1rem;
}
.single-post .entry-meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0.8rem;
font-family: var(--jv-font-mono);
font-size: 0.76rem;
color: var(--jv-muted);
}
.single-post .entry-meta a {
color: var(--jv-muted);
text-decoration: none;
}
.single-post .entry-meta a:hover {
color: var(--jv-accent);
}
.single-post .entry-meta .meta-categories a {
color: var(--jv-accent);
background: var(--jv-accent-soft);
padding: 0.25rem 0.6rem;
border-radius: 6px;
}
.single-post .entry-content {
max-width: var(--jv-measure);
margin: 2.5rem auto 0;
font-size: 1.08rem;
line-height: 1.8;
color: var(--jv-text);
}
.single-post .entry-content > * + * {
margin-top: 1.4em;
}
.single-post .entry-content p {
margin-bottom: 0;
}
.single-post .entry-content h2 {
font-size: 1.7rem;
line-height: 1.3;
margin-top: 2.2em;
margin-bottom: 0.6em;
scroll-margin-top: 100px;
}
.single-post .entry-content h3 {
font-size: 1.32rem;
line-height: 1.35;
margin-top: 1.8em;
margin-bottom: 0.5em;
scroll-margin-top: 100px;
}
.single-post .entry-content h4 {
font-size: 1.14rem;
margin-top: 1.5em;
}
.single-post .entry-content a {
color: var(--jv-accent);
text-decoration: underline;
text-underline-offset: 3px;
text-decoration-thickness: 1px;
}
.single-post .entry-content a:hover {
color: var(--jv-accent-dark);
}
.single-post .entry-content strong {
color: #111827;
}
.single-post .entry-content ul,
.single-post .entry-content ol {
padding-left: 1.4em;
}
.single-post .entry-content li + li {
margin-top: 0.4em;
}
.single-post .entry-content img {
border-radius: 12px;
height: auto;
}
.single-post .entry-content blockquote {
margin: 1.6em 0;
padding: 1em 1.4em;
border-left: 4px solid var(--jv-accent);
background: var(--jv-bg-soft);
border-radius: 0 10px 10px 0;
color: #374151;
font-style: italic;
}
.single-post .entry-content hr {
border: 0;
border-top: 1px solid var(--jv-border);
margin: 2.4em 0;
} .jv-single-top {
max-width: 1000px;
margin: 0 auto 1.2rem;
display: flex;
justify-content: flex-start;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
}
.jv-breadcrumb {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
font-family: var(--jv-font-mono);
font-size: 0.74rem;
color: var(--jv-muted);
}
.jv-readtime {
font-family: var(--jv-font-mono);
font-size: 0.74rem;
color: var(--jv-muted);
white-space: nowrap;
padding-left: 1rem;
border-left: 1px solid var(--jv-border);
}
.jv-breadcrumb a {
color: var(--jv-muted);
text-decoration: none;
}
.jv-breadcrumb a:hover {
color: var(--jv-accent);
}
.jv-breadcrumb .sep {
color: #cbd5e1;
} .single-post .entry-content code {
font-family: var(--jv-font-mono);
font-size: 0.86em;
background: #f1f5f9;
color: #be123c;
padding: 0.15em 0.4em;
border-radius: 5px;
}
.single-post .entry-content pre {
position: relative;
background: var(--jv-code-bg);
color: var(--jv-code-text);
padding: 1.2em 1.3em;
border-radius: 12px;
overflow-x: auto;
font-size: 0.88rem;
line-height: 1.65;
margin: 1.6em 0;
border: 1px solid rgba(148, 163, 184, 0.12);
}
.single-post .entry-content pre code {
background: transparent;
color: inherit;
padding: 0;
font-size: inherit;
}
.jv-copy-btn {
position: absolute;
top: 10px;
right: 10px;
background: rgba(255, 255, 255, 0.1);
color: #e2e8f0;
border: 1px solid rgba(255, 255, 255, 0.18);
border-radius: 6px;
font-family: var(--jv-font-mono);
font-size: 11px;
padding: 4px 10px;
cursor: pointer;
opacity: 0;
transition: opacity 0.15s ease, background 0.15s ease;
}
.single-post .entry-content pre:hover .jv-copy-btn {
opacity: 1;
}
.jv-copy-btn:hover {
background: rgba(255, 255, 255, 0.2);
} .hljs-comment,
.hljs-quote { color: #64748b; font-style: italic; }
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-type { color: #c084fc; }
.hljs-string,
.hljs-regexp,
.hljs-addition { color: #34d399; }
.hljs-number,
.hljs-symbol,
.hljs-bullet { color: #fbbf24; }
.hljs-title,
.hljs-section,
.hljs-name,
.hljs-function .hljs-title { color: #60a5fa; }
.hljs-attr,
.hljs-attribute,
.hljs-variable,
.hljs-template-variable { color: #f472b6; }
.hljs-built_in,
.hljs-class .hljs-title { color: #22d3ee; }
.hljs-meta { color: #94a3b8; }
.hljs-deletion { color: #f87171; }
.hljs-emphasis { font-style: italic; }
.hljs-strong { font-weight: 700; } .single-post #ez-toc-container {
background: var(--jv-bg-soft);
border: 1px solid var(--jv-border);
border-radius: 12px;
padding: 1.1em 1.3em;
margin: 1.8em 0;
box-shadow: none;
}
.single-post #ez-toc-container .ez-toc-title {
font-family: var(--jv-font-mono);
font-size: 0.78rem;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--jv-muted);
}
.single-post #ez-toc-container ul li a {
color: #374151;
text-decoration: none;
}
.single-post #ez-toc-container ul li a:hover {
color: var(--jv-accent);
} .jv-toc-sidebar {
position: fixed;
top: 110px;
right: max(1.5rem, calc((100vw - 1200px) / 2 - 40px));
width: 220px;
max-height: calc(100vh - 150px);
overflow-y: auto;
display: none;
font-size: 0.82rem;
z-index: 50;
}
.jv-toc-sidebar__title {
font-family: var(--jv-font-mono);
font-size: 0.68rem;
text-transform: uppercase;
letter-spacing: 0.12em;
color: var(--jv-muted);
margin: 0 0 0.8rem;
}
.jv-toc-sidebar ul {
list-style: none;
margin: 0;
padding: 0;
border-left: 1px solid var(--jv-border);
}
.jv-toc-sidebar li a {
display: block;
padding: 0.35rem 0 0.35rem 0.9rem;
margin-left: -1px;
border-left: 2px solid transparent;
color: var(--jv-muted);
text-decoration: none;
line-height: 1.4;
transition: 0.15s ease;
}
.jv-toc-sidebar li.is-sub a {
padding-left: 1.6rem;
font-size: 0.78rem;
}
.jv-toc-sidebar li a:hover {
color: var(--jv-ink);
}
.jv-toc-sidebar li a.is-active {
color: var(--jv-accent);
border-left-color: var(--jv-accent);
font-weight: 600;
}
@media (min-width: 1320px) {
.jv-toc-sidebar {
display: block;
}
.single-post #ez-toc-container {
display: none;
}
} .single-post .ct-share-box {
margin: 2.4rem auto;
max-width: var(--jv-measure);
}
.single-post .ct-share-box .ct-module-title {
font-family: var(--jv-font-mono);
font-size: 0.72rem;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--jv-muted);
}
.single-post .ct-share-box a {
border-radius: 9px;
} .jv-author-box {
display: flex;
gap: 1.1em;
align-items: flex-start;
max-width: var(--jv-measure);
margin: 2.6em auto 1.4em;
padding: 1.4em;
background: var(--jv-bg-soft);
border: 1px solid var(--jv-border);
border-radius: 14px;
}
.jv-author-box img {
width: 64px;
height: 64px;
border-radius: 50%;
flex-shrink: 0;
object-fit: cover;
}
.jv-author-box .jv-author-name {
font-family: var(--jv-font-display);
font-weight: 700;
color: #111827;
margin: 0 0 0.2em;
font-size: 1.05rem;
}
.jv-author-box .jv-author-role {
font-family: var(--jv-font-mono);
font-size: 0.72rem;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--jv-muted);
margin: 0 0 0.5em;
}
.jv-author-box .jv-author-bio {
font-size: 0.95rem;
line-height: 1.6;
color: #374151;
margin: 0;
}
.jv-author-box .jv-author-links {
margin-top: 0.6em;
font-size: 0.9rem;
}
.jv-author-box .jv-author-links a {
color: var(--jv-accent);
text-decoration: none;
font-weight: 600;
} .jv-cta {
max-width: var(--jv-measure);
margin: 2.4em auto;
padding: 1.6em 1.7em;
border-radius: 16px;
background: linear-gradient(135deg, #0a0f1d 0%, #16233f 100%);
color: #e5e7eb;
position: relative;
overflow: hidden;
}
.jv-cta::before {
content: "";
position: absolute;
inset: 0;
background-image:
linear-gradient(rgba(148, 163, 184, 0.06) 1px, transparent 1px),
linear-gradient(90deg, rgba(148, 163, 184, 0.06) 1px, transparent 1px);
background-size: 40px 40px;
-webkit-mask-image: radial-gradient(ellipse at 100% 0%, #000 0%, transparent 70%);
mask-image: radial-gradient(ellipse at 100% 0%, #000 0%, transparent 70%);
pointer-events: none;
}
.jv-cta > * {
position: relative;
z-index: 1;
}
.jv-cta .jv-cta-title {
font-family: var(--jv-font-display);
font-size: 1.25rem;
font-weight: 700;
color: #fff;
margin: 0 0 0.4em;
}
.jv-cta .jv-cta-text {
font-size: 0.98rem;
line-height: 1.6;
color: #cbd5e1;
margin: 0 0 1.1em;
}
.jv-cta .jv-cta-btn {
display: inline-block;
background: var(--jv-accent);
color: #fff !important;
text-decoration: none !important;
font-weight: 600;
padding: 0.7em 1.4em;
border-radius: 10px;
transition: background 0.15s ease, transform 0.15s ease;
}
.jv-cta .jv-cta-btn:hover {
background: var(--jv-accent-dark);
transform: translateY(-1px);
} .jv-related {
max-width: var(--jv-measure);
margin: 2.6em auto 1em;
}
.jv-related .jv-related-title {
font-family: var(--jv-font-mono);
font-size: 0.74rem;
text-transform: uppercase;
letter-spacing: 0.1em;
color: var(--jv-muted);
margin: 0 0 1em;
}
.jv-related-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1em;
}
.jv-related-card {
display: block;
background: #fff;
border: 1px solid var(--jv-border);
border-radius: 12px;
overflow: hidden;
text-decoration: none !important;
transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.jv-related-card:hover {
box-shadow: var(--jv-shadow);
transform: translateY(-2px);
}
.jv-related-card img {
width: 100%;
height: 120px;
object-fit: cover;
display: block;
}
.jv-related-card .jv-related-card-body {
display: block;
padding: 1.1em 1.2em 1.3em;
}
.jv-related-card .jv-related-card-title {
display: block;
font-size: 0.95rem;
line-height: 1.45;
color: #111827;
margin: 0;
font-weight: 600;
} .jv-progress {
position: fixed;
top: 0;
left: 0;
height: 3px;
width: 0;
background: linear-gradient(90deg, var(--jv-accent), var(--jv-accent-2));
z-index: 9999;
transition: width 0.1s linear;
} .jv-backtop {
position: fixed;
right: 1.5rem;
bottom: 1.5rem;
width: 44px;
height: 44px;
border-radius: 50%;
background: var(--jv-ink);
color: #fff;
display: grid;
place-items: center;
border: none;
cursor: pointer;
opacity: 0;
pointer-events: none;
transition: 0.2s ease;
z-index: 90;
box-shadow: var(--jv-shadow);
}
.jv-backtop.is-visible {
opacity: 1;
pointer-events: auto;
}
.jv-backtop:hover {
background: var(--jv-accent);
transform: translateY(-2px);
} @media (max-width: 1024px) {
.jv-hero__grid {
grid-template-columns: 1fr;
gap: 2.5rem;
padding: 4rem 1.5rem;
}
.jv-services {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.jv-articles {
grid-template-columns: 1fr;
}
.jv-stats {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.jv-footer__inner {
grid-template-columns: 1fr 1fr;
}
.blog .entries,
.archive .entries,
.search .entries {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
}
@media (max-width: 768px) {
body {
overflow-x: hidden;
}
.jv-hero__grid {
width: 100%;
}
.jv-terminal__code {
font-size: 0.72rem;
}
.jv-section {
padding: 3.5rem 1.25rem;
}
.jv-hero__grid {
padding: 3.5rem 1.25rem;
}
.jv-services,
.jv-stats {
grid-template-columns: 1fr;
}
.jv-footer__inner {
grid-template-columns: 1fr;
gap: 2rem;
padding: 3rem 1.25rem 2rem;
}
.blog .entries,
.archive .entries,
.search .entries {
grid-template-columns: 1fr !important;
}
.single-post .entry-content {
font-size: 1.02rem;
}
.single-post .entry-content h2 {
font-size: 1.45rem;
}
.single-post .entry-content h3 {
font-size: 1.2rem;
}
.jv-author-box {
flex-direction: column;
}
.jv-featured {
min-height: 340px;
}
}