:root {
	--ink: #0c1730;
	--muted: #5a6a80;
	--mint: #e7f2ff;
	--mint-2: #c5dcff;
	--mint-deep: #9ec4ff;
	--btn: #0070ff;
	--line: #e4ecf6;
	--card: #ffffff;
	--soft: #f4f8fd;
	--header: 96px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.jp-candid {
	margin: 0;
	color: var(--ink);
	background: #fff;
	font-family: Inter, "Segoe UI", sans-serif;
	line-height: 1.5;
}
body.jp-candid #wpadminbar { display: none; }
html body.jp-candid { margin-top: 0 !important; }
body.jp-candid img { max-width: 100%; display: block; }
body.jp-candid img.emoji { width: 1.1em; height: 1.1em; max-width: 1.1em; display: inline; }
body.jp-candid a { color: inherit; text-decoration: none; }
body.jp-candid h1, body.jp-candid h2, body.jp-candid h3, body.jp-candid p { margin: 0; }
body.jp-candid h1, body.jp-candid h2, body.jp-candid h3 {
	font-family: "Red Hat Display", Inter, sans-serif;
	font-weight: 700;
}

.cv-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 1000;
	height: var(--header);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 0 32px;
	font-family: Inter, "Segoe UI", sans-serif;
	background: rgba(255, 255, 255, 0.9);
	border-bottom: 1px solid rgba(12, 23, 48, 0.06);
	box-shadow: 0 10px 30px rgba(12, 40, 90, 0.06);
	backdrop-filter: blur(16px);
}
.cv-header.is-scrolled { box-shadow: 0 14px 34px rgba(12, 40, 90, 0.1); }
.cv-logo { display: flex; align-items: center; flex: none; }
.cv-logo img { height: 64px; width: auto; }
.cv-mark {
	width: 48px; height: 48px; border-radius: 50%;
	background: #e7f2ff; color: #0070ff; display: grid; place-items: center; font-size: 14px; font-weight: 800;
}
.cv-nav { display: flex; align-items: center; gap: 4px; }
.cv-nav a {
	color: #16304f; font-weight: 650; font-size: 15px;
	padding: 8px 12px; border-radius: 999px;
	text-decoration: none;
}
.cv-nav a:hover, .cv-nav a.is-current { color: #0070ff; background: #e7f2ff; }
.cv-header-right { display: flex; align-items: center; gap: 14px; flex: none; }
.cv-header a.cv-btn, .cv-header a.cv-btn:hover {
	color: #fff !important; text-decoration: none;
	padding: 12px 22px;
	box-shadow: 0 10px 22px rgba(0, 112, 255, 0.28);
}
.cv-menu {
	display: none; width: 44px; height: 44px; border: 0; border-radius: 50%;
	background: #e7f2ff; cursor: pointer; padding: 0;
	align-items: center; justify-content: center; flex-direction: column; gap: 5px;
}
.cv-menu span { display: block; width: 18px; height: 2px; border-radius: 2px; background: #0c1730; }
.cv-btn, a.cv-btn, button.cv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	background: #0070ff; color: #fff; border: 0; border-radius: 999px;
	padding: 12px 22px; font-weight: 700; cursor: pointer; font-size: 15px;
	transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
body.jp-candid a.cv-btn,
body.jp-candid a.cv-btn:hover,
body.jp-candid button.cv-btn,
body.jp-candid button.cv-btn:hover { color: #fff; }
.cv-btn:hover, a.cv-btn:hover, button.cv-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(0, 112, 255, 0.35); background: #0057d6;
}

.cv-hero {
	position: relative;
	min-height: 0;
	padding: calc(var(--header) + 12px) 4vw 20px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 28px;
	overflow: hidden;
	text-align: left;
	background:
		radial-gradient(circle at 8% 18%, rgba(0, 194, 255, 0.55), transparent 32%),
		radial-gradient(circle at 92% 12%, rgba(0, 112, 255, 0.45), transparent 34%),
		radial-gradient(circle at 78% 78%, rgba(91, 75, 219, 0.28), transparent 28%),
		linear-gradient(165deg, #f3f9ff 0%, #d7ecff 46%, #9fd4ff 100%);
}
.cv-orb { position: absolute; border-radius: 50%; pointer-events: none; filter: blur(2px); }
.cv-orb-a { width: 180px; height: 180px; left: -50px; top: 90px; background: #0070ff; opacity: 0.28; animation: cv-bob 7s ease-in-out infinite; }
.cv-orb-b { width: 120px; height: 120px; right: 4%; top: 70px; background: #00c2ff; opacity: 0.55; animation: cv-bob 6s ease-in-out infinite 0.6s; }
.cv-orb-c { width: 90px; height: 90px; left: 42%; bottom: 8%; background: #6d5ef5; opacity: 0.35; animation: cv-bob 8s ease-in-out infinite 1s; }
.cv-hero-copy {
	position: relative; z-index: 2;
	display: flex; flex-direction: column; align-items: flex-start;
	max-width: none;
}
.cv-hello { font-weight: 700; margin-bottom: 6px; letter-spacing: 0.14em; text-transform: uppercase; font-size: 13px; color: #0057d6; }
body.jp-candid .cv-hero .cv-hello { margin-bottom: 6px; }
body.jp-candid .cv-hero .cv-role { margin-top: 10px; }
.cv-hero h1 {
	font-size: clamp(46px, 4.4vw, 72px);
	line-height: 1.02;
	letter-spacing: -0.045em;
	font-weight: 800;
}
.cv-role {
	margin-top: 8px; max-width: none; display: inline-block;
	background: rgba(255, 255, 255, 0.72);
	border-radius: 999px; padding: 6px 14px;
	color: #12315f; font-size: 17px; font-weight: 600; line-height: 1.3;
}
.cv-hero .cv-btn { margin-top: 18px; width: fit-content; padding: 12px 22px; }
.cv-follow { margin-top: 22px; }
.cv-follow span { display: block; letter-spacing: 0.16em; font-size: 13px; font-weight: 600; color: #3a5f8a; margin-bottom: 10px; text-transform: uppercase; }
.cv-follow div { display: flex; align-items: center; justify-content: flex-start; gap: 14px; }
.cv-follow a {
	width: 40px; height: 40px; color: #fff; background: #0070ff; border-radius: 50%;
	display: grid; place-items: center;
	box-shadow: 0 10px 22px rgba(0, 112, 255, 0.28);
}
.cv-follow a:hover { color: #fff; background: #0057d6; transform: translateY(-3px); }
.cv-follow svg { width: 18px; height: 18px; fill: currentColor; display: block; }

.cv-hero-visual {
	position: relative; z-index: 2;
	margin-top: 0;
	width: 100%;
	display: flex; align-items: center; justify-content: flex-end;
	min-height: 0;
}
.cv-hero-visual img {
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 430px;
	object-fit: contain;
	border-radius: 28px;
	background: rgba(255, 255, 255, 0.35);
	box-shadow: 0 22px 50px rgba(0, 80, 180, 0.22);
	animation: cv-bob 5.5s ease-in-out infinite;
}
.cv-badge {
	position: absolute; right: 8px; top: 12px;
	width: 108px; height: 108px; z-index: 2;
}
.cv-badge svg { width: 100%; height: 100%; animation: cv-spin 18s linear infinite; }
.cv-badge text { font-size: 13px; letter-spacing: 3px; fill: var(--ink); font-weight: 700; }
.cv-badge strong {
	position: absolute; inset: 0; display: grid; place-items: center;
	font-size: 54px; letter-spacing: -0.05em;
}

.cv-about {
	display: grid; grid-template-columns: 1.25fr 0.85fr; gap: 36px; align-items: center;
	padding: 130px 7vw 90px; background: #fff;
}
.cv-about h2 { font-size: clamp(48px, 5vw, 76px); letter-spacing: -0.045em; font-weight: 600; margin-bottom: 28px; }
.cv-about-copy p { font-size: clamp(26px, 2.5vw, 42px); line-height: 1.35; font-weight: 400; color: #0c1730; letter-spacing: -0.03em; }
.cv-markline { box-shadow: inset 0 -0.28em 0 #e7f2ff; }
.cv-bubbles { position: relative; height: 460px; }
.cv-bubbles article {
	position: absolute; width: 210px; height: 210px; border-radius: 50%;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	text-align: center; padding: 24px;
}
.cv-bubbles h3 { font-size: 22px; font-weight: 600; letter-spacing: -0.03em; line-height: 1.15; }
.cv-bubbles p { font-size: 13px; color: #3a4a63; margin-top: 6px; line-height: 1.3; }
.cv-bubbles article:nth-child(1) { left: 8%; top: 8%; background: #e7f2ff; z-index: 2; }
.cv-bubbles article:nth-child(2) { right: 4%; top: 0; background: #d7e8ff; }
.cv-bubbles article:nth-child(3) { left: 0; bottom: 6%; background: #dff6ff; z-index: 1; }
.cv-bubbles article:nth-child(4) { right: 8%; bottom: 0; background: #fff; box-shadow: 0 16px 40px rgba(12, 23, 48, 0.08); z-index: 2; }
.cv-card {
	background: #fff; border-radius: 22px; padding: 26px 22px;
	box-shadow: 0 16px 40px rgba(12, 23, 48, 0.05);
}

.cv-services { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: 40px; padding: 80px 6vw 90px; align-items: start; background: linear-gradient(#fff, #f3f7fd); }
.cv-services-photo { position: sticky; top: 110px; }
.cv-services-photo { display: flex; justify-content: center; }
.cv-arch {
	width: min(100%, 460px); background: #e4f1ff; border-radius: 230px 230px 28px 28px;
	padding: 28px 20px 0; display: flex; align-items: flex-end; justify-content: center;
}
.cv-arch img { width: 92%; object-fit: contain; }
.cv-kicker { text-align: center; font-size: clamp(40px, 4.5vw, 64px); letter-spacing: -0.045em; margin-bottom: 28px; }
.cv-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.cv-card h3, .cv-job h3 { overflow-wrap: break-word; }
.cv-ico { width: 88px; height: 88px; }
.cv-ico img { width: 88px; height: 88px; max-width: 88px; object-fit: contain; }
.cv-card { padding: 32px 28px; }
.cv-card h3 { font-size: 26px; font-weight: 600; letter-spacing: -0.03em; margin: 16px 0 8px; }
.cv-card p { color: #5a6a80; font-size: 15px; font-weight: 600; }
.cv-ico { width: 88px; height: 88px; margin-bottom: 4px; }
.cv-ico img { width: 88px; height: 88px; }

.cv-path { background: linear-gradient(180deg, #d7e8ff, #b9d6ff); padding: 90px 4vw 80px; position: relative; }
.cv-path h2 { text-align: center; font-size: clamp(40px, 5vw, 68px); letter-spacing: -0.045em; margin-bottom: 48px; }
.cv-path-rows { position: relative; }
.cv-track, .cv-track-bottom { position: relative; z-index: 1; display: grid; gap: 22px; }
.cv-track { grid-template-columns: repeat(4, 1fr); padding-bottom: 52px; align-items: stretch; }
.cv-track-bottom { grid-template-columns: repeat(4, 1fr); padding-top: 52px; }
.cv-rail {
	height: 2px; margin: 0 3%; background: #0c1730;
	transform: scaleX(0); transform-origin: left center;
	transition: transform 1.15s cubic-bezier(0.22, 0.8, 0.3, 1);
}
.cv-path.is-on .cv-rail { transform: scaleX(1); }
.cv-job {
	background: #fff; border-radius: 22px; padding: 22px 20px 18px; min-height: 250px;
	box-shadow: 0 18px 40px rgba(12, 23, 48, 0.06); position: relative;
	display: flex; flex-direction: column;
}
.cv-job:after, .cv-job:before { content: ""; position: absolute; left: 50%; transform: translateX(-50%); }
.cv-job:after { width: 2px; height: 52px; bottom: -52px; background: #0c1730; }
.cv-job:before {
	width: 18px; height: 18px; bottom: -61px; border-radius: 50%;
	background: #e7f2ff; border: 2px solid #0c1730; z-index: 2;
}
.cv-job.is-lower:after { bottom: auto; top: -52px; }
.cv-job.is-lower:before { bottom: auto; top: -61px; }
.cv-job-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.cv-chip { display: inline-block; background: rgba(12, 23, 48, 0.06); border-radius: 8px; padding: 5px 10px; font-size: 13px; font-weight: 700; }
.cv-job h3 { font-size: 22px; font-weight: 700; letter-spacing: -0.03em; margin-bottom: 8px; }
.cv-job p { color: #4a5c74; font-size: 15px; font-weight: 500; }
.cv-job-meta { margin-top: auto; padding-top: 14px; font-weight: 600; color: #0c1730; }

.cv-skills { padding: 90px 4vw 20px; text-align: center; overflow: hidden; background: linear-gradient(#fff, #f5f8fd); }
.cv-wave { width: 78px; height: 22px; display: block; margin: 0 auto 18px; animation: cv-bob 3.2s ease-in-out infinite; }
.cv-skills h2 { font-size: clamp(46px, 5.4vw, 84px); letter-spacing: -0.045em; line-height: 0.98; font-weight: 600; }
.cv-orbit {
	--reach: 250px;
	--angle: calc(180deg / 7);
	position: relative; height: 640px; max-width: 980px; margin: 10px auto 0;
}
.cv-halo {
	position: absolute; left: 50%; top: 52%; width: 520px; height: 520px; margin: -260px 0 0 -260px;
	border-radius: 50%; border: 2px dashed #e4e4e4;
}
.cv-ring { position: absolute; inset: 0; }
.cv-node {
	position: absolute; left: 50%; top: 52%; width: 72px; height: 72px; margin: -36px 0 0 -36px;
	transform: rotate(calc(180deg + var(--angle) * var(--i))) translateX(0) rotate(calc(-180deg - var(--angle) * var(--i)));
	transition: transform 0.9s cubic-bezier(0.22, 0.8, 0.3, 1);
	z-index: 2;
}
.cv-orbit.is-on .cv-node {
	transform: rotate(calc(180deg + var(--angle) * var(--i))) translateX(var(--reach)) rotate(calc(-180deg - var(--angle) * var(--i)));
}
.cv-node svg {
	width: 72px; height: 72px; background: #fff; border-radius: 50%; color: #0c1730;
	box-shadow: 0 12px 28px rgba(12, 23, 48, 0.1);
	transition: transform 0.35s ease;
}
.cv-node:nth-child(1) svg { color: #21759b; }
.cv-node:nth-child(2) svg { color: #777bb3; }
.cv-node:nth-child(3) svg { color: #1a73e8; }
.cv-node:nth-child(4) svg { color: #0f9d76; }
.cv-node:nth-child(5) svg { color: #5b4bdb; }
.cv-node:nth-child(6) svg { color: #e37400; }
.cv-node:nth-child(7) svg { color: #111; }
.cv-node:nth-child(8) svg { color: #e37400; }
.cv-node.is-hot { z-index: 4; }
.cv-node.is-hot svg { transform: scale(1.14); }
.cv-portrait-ring {
	position: absolute; left: 50%; top: 54%; width: 230px; height: 230px; margin: -115px 0 0 -115px;
	border-radius: 50%; overflow: hidden; background: #e4f1ff; z-index: 3;
	box-shadow: 0 20px 40px rgba(12, 23, 48, 0.08);
}
.cv-portrait-ring img { width: 100%; height: 100%; object-fit: cover; object-position: center 12%; }
.cv-pill {
	position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 5;
	width: min(560px, 92%); background: #fff; border-radius: 22px;
	box-shadow: 0 18px 50px rgba(12, 23, 48, 0.08);
	display: flex; align-items: center; min-height: 108px;
}
.cv-pill strong {
	flex: 1; text-align: center; padding: 0 28px; font-size: clamp(28px, 3vw, 44px); font-weight: 600; letter-spacing: -0.04em;
}
.cv-node svg path { fill: none; }

.cv-work, .cv-certs, .cv-awards { padding: 70px 6vw; }
.cv-work h2, .cv-certs h2 { font-size: clamp(40px, 5vw, 64px); letter-spacing: -0.04em; text-align: center; margin-bottom: 12px; }
.cv-gallery { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-top: 36px; }
.cv-gallery article { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 14px 32px rgba(12, 23, 48, 0.08); }
.cv-shot { display: block; height: 250px; overflow: hidden; width: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; text-align: left; }
button.cv-shot:focus-visible { outline: 2px solid #0070ff; outline-offset: 2px; }
.cv-gallery img {
	display: block; width: 100%; height: 190%; max-width: none;
	object-fit: cover; object-position: top center; background: #fff;
	transition: transform 8s ease;
}
.cv-gallery article.is-in:hover img { transform: translateY(-34%); }
.cv-certs-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 40px; }
.cv-certs article {
	background: #eef3f8; border: 0; border-radius: 18px; padding: 40px 22px 36px; text-align: center;
}
.cv-cert-meta { display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 600; font-size: 15px; }
.cv-cert-meta i { width: 7px; height: 7px; border-radius: 50%; background: rgba(12, 23, 48, 0.35); }
.cv-cert-orb {
	width: 132px; height: 132px; margin: 28px auto; border-radius: 50%; background: #fff;
	display: grid; place-items: center; color: #0c1730;
}
.cv-cert-orb svg { width: 54px; height: 54px; }
.cv-certs h3 { font-size: 26px; font-weight: 500; letter-spacing: -0.03em; }
.cv-certs article.is-in:hover { background: #0c1730; color: #fff; transform: translateY(-8px); }
.cv-certs article.is-in:hover .cv-cert-meta i { background: #fff; }
.cv-certs article.is-in:hover .cv-cert-orb { background: #e7f2ff; color: #0c1730; }
.cv-awards-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 28px; }
.cv-awards article { background: var(--soft); border-radius: 20px; padding: 12px; text-align: center; }
.cv-awards img { height: 180px; width: 100%; object-fit: contain; }
.cv-awards p { font-weight: 700; margin-top: 8px; }

.cv-footer { background: #071428; color: #fff; }
.cv-footer a { color: inherit; text-decoration: none; }
.cv-footer-main {
	display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr); gap: 36px;
	max-width: 1180px; margin: 0 auto; padding: 72px 28px 48px; align-items: start;
}
.cv-footer-lead h2 {
	font-size: clamp(46px, 5vw, 76px); line-height: 0.95; letter-spacing: -0.045em; font-weight: 500; max-width: 9em;
}
.cv-footer-intro { margin-top: 16px; max-width: 34em; color: rgba(255,255,255,0.72); font-size: 16px; line-height: 1.5; }
.cv-footer-contacts { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.cv-footer-contacts a, .cv-footer-contacts div {
	display: flex; align-items: center; gap: 12px; padding: 12px 14px;
	border: 1px solid rgba(255,255,255,0.14); border-radius: 16px; background: rgba(255,255,255,0.04);
}
.cv-footer-contacts small { display: block; color: rgba(255,255,255,0.55); font-size: 12px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.cv-footer-contacts strong { display: block; font-size: 16px; font-weight: 700; overflow-wrap: anywhere; }
.cv-footer-ico {
	width: 38px; height: 38px; flex: none; border-radius: 50%; display: grid; place-items: center;
	background: #0070ff; color: #fff;
}
.cv-footer-ico svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cv-footer-talk {
	display: inline-flex; margin-top: 16px; color: #fff; background: #0070ff; border-radius: 999px;
	padding: 12px 18px; font-weight: 700;
}
.cv-footer-talk:hover { background: #3390ff; color: #fff; }
.cv-footer-form .cv-modal-form { max-height: none; }
.cv-footer-bar {
	max-width: 1180px; margin: 0 auto; padding: 22px 28px 28px;
	border-top: 1px solid rgba(255,255,255,0.16);
	display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap;
}
.cv-footer-bar nav, .cv-social { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.cv-footer-bar a { font-family: "Red Hat Display", Inter, sans-serif; font-weight: 500; }
.cv-social span { color: rgba(255,255,255,0.55); }
.cv-social a {
	width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.25);
	display: grid; place-items: center; color: #fff;
}
.cv-social a svg { width: 16px; height: 16px; }
.cv-social a:hover { background: #fff; color: #071428; }
.cv-copy { margin: 0; color: rgba(255,255,255,0.7); font-size: 14px; }
.cv-copy a { color: #8ec2ff; }

.cv-reveal { opacity: 0; transform: translateY(28px); }
.cv-hero-copy { animation: cv-rise 0.9s ease both; }
.cv-hero-visual img { animation: cv-float 6.5s ease-in-out 0.4s infinite; }

@keyframes cv-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes cv-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes cv-spin { to { transform: rotate(360deg); } }
@keyframes cv-yaw { to { transform: rotateY(360deg); } }
@keyframes cv-face {
	from { transform: rotateY(calc(var(--i) * -30deg)); }
	to { transform: rotateY(calc(var(--i) * -30deg - 360deg)); }
}
@keyframes cv-floor { to { transform: rotateX(68deg) rotateZ(360deg); } }
@keyframes cv-portrait {
	0%, 100% { transform: translateZ(48px) translateY(0); }
	50% { transform: translateZ(78px) translateY(-10px); }
}
@keyframes cv-ink {
	from { background-position-x: 100%; }
	to { background-position-x: 0%; }
}
@keyframes cv-bob {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-14px); }
}
@keyframes cv-wobble {
	0%, 100% { transform: rotate(0deg); }
	30% { transform: rotate(-10deg); }
	70% { transform: rotate(10deg); }
}
@keyframes cv-slide {
	to { transform: translateX(-50%); }
}

.cv-fill span {
	display: block;
	background-image: linear-gradient(90deg, #0c1730 50%, rgba(12, 23, 48, 0.28) 50%);
	background-size: 200% 100%;
	background-position-x: 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.cv-fill-hero span {
	background-image: linear-gradient(90deg, #063a9a 50%, rgba(0, 112, 255, 0.35) 50%);
	animation: cv-ink 1.15s cubic-bezier(0.1, 0.5, 0.5, 1) forwards;
}
.cv-contact .cv-fill span {
	background-image: linear-gradient(90deg, #ffffff 50%, rgba(255, 255, 255, 0.35) 50%);
}

.cv-arch { position: relative; }
.cv-float {
	position: absolute; z-index: 2;
	background: #fff; color: var(--ink);
	border-radius: 16px; padding: 12px 14px;
	font-weight: 800; letter-spacing: -0.03em;
	box-shadow: 0 16px 34px rgba(12, 23, 48, 0.12);
	animation: cv-bob 4.2s ease-in-out infinite;
}
.cv-float-a { left: 4%; top: 16%; }
.cv-float-b { right: 2%; top: 30%; animation-delay: 0.5s; }
.cv-float-c { left: 14%; bottom: 16%; animation-delay: 1s; }
.cv-badge { animation: cv-wobble 5.5s ease-in-out infinite; }

.cv-card, .cv-job, .cv-certs article, .cv-awards article, .cv-gallery article {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 0.8, 0.3, 1), box-shadow 0.35s ease, background 0.35s ease, color 0.35s ease;
}
.cv-card.is-in, .cv-job.is-in, .cv-certs article.is-in, .cv-awards article.is-in, .cv-gallery article.is-in {
	opacity: 1;
	transform: none;
}
.cv-card.is-in:hover, .cv-gallery article.is-in:hover { transform: translateY(-8px); }

.cv-rail { transform: scaleX(0); transform-origin: left center; transition: transform 1.15s cubic-bezier(0.22, 0.8, 0.3, 1); }
.cv-path.is-on .cv-rail { transform: scaleX(1); }

.cv-marquee-row { overflow: hidden; margin-top: 28px; }
.cv-marquee-track {
	display: flex; gap: 18px; width: max-content;
	animation: cv-slide 32s linear infinite;
}
.cv-marquee-row:hover .cv-marquee-track { animation-play-state: paused; }
.cv-marquee-track article {
	width: 300px; background: var(--soft); border-radius: 22px; overflow: hidden; flex: none;
}
.cv-marquee-track img { height: 190px; width: 100%; object-fit: cover; }
.cv-marquee-track h3 { font-size: 16px; padding: 14px 16px 16px; }

.cv-contact.is-on .cv-marquee span { animation-duration: 12s; }

.cv-quotes {
	position: relative;
	overflow: hidden;
	padding: 88px 36px;
	background: #eef3f8;
}
.cv-quotes:before {
	content: "";
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 32%;
	background: var(--mint);
}
.cv-quotes:after {
	content: "";
	position: absolute;
	left: calc(32% - 28px);
	bottom: -22px;
	width: 56px; height: 56px;
	background: #eef3f8;
	transform: rotate(39deg);
}
.cv-quotes-grid {
	position: relative;
	z-index: 1;
	max-width: 1180px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 0.72fr 1.28fr;
	gap: 28px;
	align-items: stretch;
	opacity: 0;
	transform: translateY(36px);
	transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 0.8, 0.3, 1);
}
.cv-quotes.is-on .cv-quotes-grid { opacity: 1; transform: none; }
.cv-quotes-photo {
	position: relative;
	min-height: 520px;
	border-radius: 22px;
	overflow: hidden;
	background: var(--mint-2);
}
.cv-quotes-photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 18%;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity 0.7s ease, transform 0.9s ease;
}
.cv-quotes-photo img.is-on { opacity: 1; transform: scale(1); }
.cv-quotes-card {
	display: grid;
	grid-template-columns: 1.45fr 0.8fr;
	background: #fff;
	border-radius: 18px;
	min-height: 520px;
	box-shadow: 0 24px 50px rgba(12, 23, 48, 0.06);
}
.cv-quotes-main { position: relative; }
.cv-quotes-main article {
	position: absolute;
	inset: 0;
	padding: 48px 44px 96px;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.55s ease, transform 0.55s ease;
	pointer-events: none;
}
.cv-quotes-main article.is-on { opacity: 1; transform: none; pointer-events: auto; }
.cv-stars { display: flex; gap: 4px; margin-bottom: 22px; }
.cv-stars i {
	width: 18px; height: 18px;
	background: #f9bc2f;
	clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
.cv-quotes-main p {
	font-size: clamp(20px, 1.7vw, 28px);
	line-height: 1.45;
	letter-spacing: -0.03em;
	color: #1a2a44;
}
.cv-quotes-nav {
	position: absolute;
	left: 44px; right: 28px; bottom: 28px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.cv-dots { display: flex; gap: 8px; }
.cv-dots button, .cv-arrows button {
	border: 0; background: transparent; padding: 0; cursor: pointer;
}
.cv-dots button {
	width: 8px; height: 8px; border-radius: 50%;
	background: rgba(12, 23, 48, 0.22);
}
.cv-dots button.is-on { background: var(--ink); transform: scale(1.25); }
.cv-arrows { display: flex; color: rgba(12, 23, 48, 0.35); }
.cv-arrows button:hover { color: var(--ink); }
.cv-quotes-who {
	position: relative;
	border-left: 1px solid rgba(12, 23, 48, 0.08);
}
.cv-quotes-who > div {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 36px 28px;
	opacity: 0;
	transition: opacity 0.55s ease;
}
.cv-quotes-who > div.is-on { opacity: 1; }
.cv-who-note {
	position: absolute;
	top: 36px; left: 28px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
}
.cv-who-person { display: flex; flex-direction: column; gap: 14px; }
.cv-avatar {
	width: 64px; height: 64px; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--mint);
	font-weight: 800;
	letter-spacing: -0.04em;
	overflow: hidden;
	flex: none;
}
.cv-avatar img,
.cv-modal-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cv-avatar.has-photo,
.cv-modal-avatar.has-photo {
	background: #dce8f8;
	padding: 0;
}
.cv-quotes-who h3 { font-size: 20px; letter-spacing: -0.03em; }
.cv-quotes-who p { color: var(--muted); font-size: 14px; font-weight: 600; }
@keyframes cv-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.cv-clients { padding: 10px 6vw 80px; background: #fff; }
.cv-clients-head { text-align: center; max-width: 720px; margin: 0 auto 22px; }
.cv-clients-head p { color: var(--muted); margin-top: 8px; font-size: 16px; }
.cv-clients-slider { display: grid; grid-template-columns: 48px minmax(0, 1fr) 48px; gap: 14px; align-items: center; max-width: 1180px; margin: 0 auto; }
.cv-clients-view { overflow: hidden; border-radius: 28px; background: linear-gradient(180deg, #f7fbff, #fff); border: 1px solid #e4ecf6; box-shadow: 0 18px 40px rgba(12, 40, 90, 0.06); }
.cv-clients-track { display: flex; align-items: stretch; width: 100%; transition: transform 0.55s ease; }
.cv-client { flex: 0 0 16.666%; height: 112px; min-width: 0; display: flex; align-items: center; justify-content: center; padding: 18px 12px; }
.cv-client img { width: auto; height: auto; max-width: 78%; max-height: 52px; object-fit: contain; }
.cv-clients-arrow { width: 48px; height: 48px; border-radius: 50%; border: 1px solid #d7e4f5; background: #fff; color: #0c1730; display: grid; place-items: center; cursor: pointer; box-shadow: 0 8px 20px rgba(12, 40, 90, 0.06); }
.cv-clients-arrow[hidden] { visibility: hidden; }
.cv-clients-arrow:hover { background: #0070ff; color: #fff; border-color: #0070ff; }

.cv-journal { padding: 70px 6vw 90px; background: radial-gradient(620px 240px at 8% 0%, #e7f2ff, transparent 70%), radial-gradient(520px 220px at 92% 12%, #dff6ff, transparent 72%), #fff; }
.cv-journal-head { text-align: center; max-width: 720px; margin: 0 auto 34px; }
.cv-journal-head p { color: var(--muted); margin-top: 10px; font-size: 16px; }
.cv-journal-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.cv-post { background: #fff; border-radius: 24px; overflow: hidden; border: 1px solid #e4ecf6; box-shadow: 0 16px 40px rgba(12, 23, 48, 0.05); min-width: 0; height: 100%; transition: transform 0.35s ease, box-shadow 0.35s ease; }
.cv-post:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(12, 40, 90, 0.1); }
.cv-post a { display: flex; flex-direction: column; height: 100%; color: inherit; }
.cv-post-media { height: 168px; flex: none; overflow: hidden; background: linear-gradient(160deg, #e7f2ff, #c5dcff); }
.cv-post-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.cv-post:hover img { transform: scale(1.06); }
.cv-post-body { padding: 16px 16px 18px; display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.cv-post-meta { display: flex; justify-content: space-between; gap: 8px; align-items: center; font-size: 12px; font-weight: 700; color: #0070ff; }
.cv-post-meta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv-post-meta time { color: #7b8798; font-weight: 600; white-space: nowrap; }
.cv-post h3 { font-size: 18px; line-height: 1.3; letter-spacing: -0.03em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; overflow-wrap: break-word; }
.cv-journal-all { display: flex; width: fit-content; margin: 28px auto 0; }

@media (max-width: 980px) {
	.cv-menu { display: flex; }
	.cv-header { z-index: 1500; }
	.cv-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: #fff;
		flex-direction: column;
		align-items: stretch;
		padding: 12px 16px 18px;
		box-shadow: 0 16px 30px rgba(0,0,0,0.06);
		max-height: min(78vh, 720px);
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	.cv-nav.is-open { display: flex; }
	.cv-logo img { height: 50px; }
	:root { --header: 78px; }
	.cv-hero, .cv-services, .cv-footer-main, .cv-about { grid-template-columns: 1fr; }
	.cv-gallery { grid-template-columns: repeat(3, 1fr); }
	.cv-journal-grid { grid-template-columns: 1fr 1fr; }
	.cv-clients { padding-left: 20px; padding-right: 20px; }
	.cv-awards-row { grid-template-columns: 1fr 1fr; }
	.cv-shot { height: 200px; }
	.cv-certs-row { grid-template-columns: repeat(3, 1fr); }
	.cv-bubbles { height: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
	.cv-bubbles article { position: static; width: auto; height: auto; min-height: 140px; border-radius: 28px; }
	.cv-track, .cv-track-bottom { grid-template-columns: 1fr; width: 100%; margin: 0; padding: 0; }
	.cv-rail, .cv-job:before, .cv-job:after { display: none; }
	.cv-job { min-height: 0; }
	.cv-footer-main, .cv-footer-bar { padding-left: 20px; padding-right: 20px; }
	.cv-footer-bar { flex-direction: column; align-items: flex-start; }
	.cv-hero { text-align: center; }
	.cv-hero-copy { align-items: center; }
	.cv-follow div { justify-content: center; }
	.cv-hero h1 { font-size: 52px; }
	.cv-role { max-width: 18em; }
	.cv-hero-visual { width: 100%; justify-content: center; }
	.cv-hero-visual img { max-height: 340px; }
	.cv-orbit { height: 480px; --reach: 150px; }
	.cv-halo { width: 320px; height: 320px; margin: -160px 0 0 -160px; }
	.cv-node, .cv-node svg { width: 52px; height: 52px; }
	.cv-node { margin: -26px 0 0 -26px; }
	.cv-portrait-ring { width: 160px; height: 160px; margin: -80px 0 0 -80px; }
	.cv-pill { min-height: 78px; }
	.cv-pill strong, .cv-pill span { font-size: 20px; padding: 0 14px; }
	.cv-services-photo { position: static; }
}
@media (max-width: 640px) {
	.cv-grid, .cv-certs-row, .cv-awards-row, .cv-bubbles { grid-template-columns: 1fr; display: grid; }
	.cv-gallery { grid-template-columns: 1fr 1fr; }
	.cv-journal-grid { grid-template-columns: 1fr; }
	.cv-clients-slider { grid-template-columns: 40px minmax(0, 1fr) 40px; gap: 8px; }
	.cv-clients-arrow { width: 40px; height: 40px; }
	.cv-header { padding: 0 16px; }
}
@media (max-width: 980px) {
	.cv-quotes { padding: 48px 16px; }
	.cv-quotes:before, .cv-quotes:after { display: none; }
	.cv-quotes-grid, .cv-quotes-card { grid-template-columns: 1fr; }
	.cv-quotes-photo { min-height: 360px; }
	.cv-quotes-card { min-height: 0; }
	.cv-quotes-main { min-height: 360px; }
	.cv-quotes-who { border-left: 0; border-top: 1px solid rgba(12, 23, 48, 0.08); min-height: 190px; }
	.cv-quotes-main article { padding: 28px 24px 88px; }
	.cv-quotes-nav { left: 24px; right: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	.cv-spin, .cv-ring, .cv-skill b, .cv-floor, .cv-portrait-ring, .cv-badge svg, .cv-hero-visual img, .cv-marquee span { animation: none; }
	.cv-reveal, .cv-hero-copy { animation: none; opacity: 1; transform: none; }
	.cv-quotes-grid { opacity: 1; transform: none; }
	.cv-quotes-photo img, .cv-quotes-main article { transition: none; }
}
.cv-modal { position: fixed; inset: 0; z-index: 1100; display: none; place-items: center; padding: 18px; background: rgba(15, 23, 42, 0.55); backdrop-filter: blur(3px); }
.cv-modal.is-open { display: grid; }
body.cv-modal-open { overflow: hidden; }
.cv-modal-card {
	width: min(1080px, 100%); max-height: calc(100vh - 28px);
	display: grid; grid-template-columns: 0.96fr 1.04fr; position: relative;
	background: linear-gradient(180deg, #f8fafc 0%, #eef3f8 100%);
	border-radius: 28px; padding: 26px 16px 16px 22px;
	box-shadow: 0 28px 80px rgba(15, 23, 42, 0.28);
}
.cv-modal-x {
	position: absolute; top: 14px; right: 14px; z-index: 3;
	width: 36px; height: 36px; border: 0; border-radius: 50%; cursor: pointer;
	background: #ff3b30; color: #fff; font-size: 22px; line-height: 1;
	box-shadow: 0 8px 18px rgba(255, 59, 48, 0.35);
}
.cv-modal-side, .cv-modal-form { max-height: calc(100vh - 78px); overflow: auto; }
.cv-modal-side { color: var(--ink); padding: 8px 18px 8px 4px; text-align: center; }
.cv-modal-side h2 { font-size: clamp(26px, 2.4vw, 34px); line-height: 1.15; letter-spacing: -0.03em; }
.cv-modal-lead { margin: 10px auto 0; max-width: 420px; color: var(--muted); font-size: 14px; }
.cv-modal-review { margin-top: 22px; display: grid; grid-template-columns: 36px 1fr 36px; gap: 8px; align-items: center; }
.cv-modal-arrow {
	width: 36px; height: 36px; border-radius: 50%; border: 1px solid #d7e0ea; background: #fff;
	color: #607086; font-size: 24px; line-height: 1; cursor: pointer;
}
.cv-modal-arrow:hover { border-color: #0070ff; color: #0070ff; }
.cv-modal-avatar {
	width: 72px; height: 72px; margin: 0 auto 12px; border-radius: 50%;
	display: grid; place-items: center; background: #e7f2ff; color: #0070ff;
	border: 3px solid #fff; box-shadow: 0 0 0 2px #b9d6ff;
	font-family: "Red Hat Display", Inter, sans-serif; font-weight: 700; font-size: 22px;
	overflow: hidden;
}
.cv-modal-quote { margin: 0; transition: opacity 0.18s ease; }
.cv-modal-quote.is-swap { opacity: 0; }
.cv-modal-quote p { font-size: 14px; line-height: 1.5; color: #24324a; }
.cv-modal-quote footer { display: flex; flex-direction: column; margin-top: 12px; }
.cv-modal-quote strong { font-size: 16px; }
.cv-modal-quote span { color: var(--muted); font-size: 13px; }
.cv-modal-badge {
	display: inline-flex; margin-top: 12px; padding: 6px 12px; border-radius: 999px;
	background: #fff; border: 1px solid #d7e6ff; color: #0b4db3; font-size: 12px; font-weight: 700;
}
.cv-modal-info {
	margin-top: 22px; display: grid; grid-template-columns: 1fr 1.05fr; gap: 12px;
	text-align: left; background: #fff; border: 1px solid #e6edf5; border-radius: 18px; padding: 16px 14px 14px;
}
.cv-modal-info h3 { font-size: 14px; line-height: 1.3; margin-bottom: 8px; }
.cv-modal-info ul { list-style: none; margin: 0; padding: 0; }
.cv-modal-info li { position: relative; margin-top: 7px; padding-left: 22px; font-size: 13.5px; }
.cv-modal-info li:before { content: "✓"; position: absolute; left: 0; top: 0; color: #0070ff; font-weight: 800; }
body.jp-candid a.cv-modal-contact {
	display: flex; align-items: center; gap: 8px; margin-top: 8px;
	color: #0070ff; font-size: 13px; font-weight: 700; white-space: nowrap;
}
.cv-modal-contact svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; flex: none; }
.cv-modal-years { margin-top: 16px; color: var(--muted); font-size: 13px; }
.cv-modal-form {
	background: #fff; border-radius: 22px; padding: 20px 18px 16px;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06); text-align: left;
}
.cv-form-head h3 { font-size: 22px; letter-spacing: -0.03em; }
.cv-form-head p { margin-top: 4px; color: var(--muted); font-size: 13px; }
.cv-req-note { margin: 8px 0 12px; color: #e11d48; font-size: 12px; font-weight: 700; }
.cv-req-note em, .cv-modal-form em { color: #e11d48; font-style: normal; }
.cv-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 12px; }
.cv-form-grid > label { min-width: 0; }
.cv-modal-form label { display: block; font-size: 13px; font-weight: 700; color: #24324a; }
.cv-form-grid label > input, .cv-form-grid label > select, .cv-form-grid label > .cv-phone, .cv-summary textarea { margin-top: 6px; }
.cv-modal-form label > span:not(.cv-phone) { font-weight: 600; color: #7b8798; }
.cv-modal-form input, .cv-modal-form select, .cv-modal-form textarea {
	width: 100%; border: 1px solid #e3e8f0; border-radius: 10px; background: #fff;
	color: var(--ink); padding: 11px 12px; font: inherit; font-size: 14px; font-weight: 500;
}
.cv-modal-form input:focus, .cv-modal-form select:focus, .cv-modal-form textarea:focus { outline: none; border-color: #0070ff; box-shadow: 0 0 0 3px rgba(0, 112, 255, 0.12); }
.cv-modal-form select { cursor: pointer; }
.cv-phone { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 8px; }
.cv-phone select, .cv-phone input { width: 100%; }
.cv-products { margin-top: 14px; border: 0; padding: 0; }
.cv-products legend { grid-column: 1 / -1; font-size: 14px; font-weight: 700; margin-bottom: 2px; }
.cv-cap span { color: var(--ink); }
.cv-nda > span { color: #24324a; }
.cv-products { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.cv-products label { display: flex; flex-direction: row; align-items: center; gap: 8px; font-weight: 600; font-size: 13px; }
.cv-products input { width: 16px; height: 16px; accent-color: #0070ff; }
.cv-summary { margin-top: 14px; }
.cv-summary textarea { min-height: 92px; resize: vertical; }
.cv-form-extra { margin-top: 12px; display: grid; grid-template-columns: 180px 1fr; gap: 12px; align-items: center; }
.cv-cap { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.cv-cap span { font-size: 18px; font-weight: 800; letter-spacing: -0.03em; }
.cv-cap input { width: 84px; }
.cv-nda { display: flex; flex-direction: row; align-items: flex-start; gap: 8px; font-weight: 600; }
.cv-nda input { width: 16px; height: 16px; margin-top: 2px; accent-color: #0070ff; }
.cv-nda small { display: block; margin-top: 2px; color: #7b8798; font-size: 11px; font-weight: 500; line-height: 1.35; }
.cv-modal-form .cv-btn, .cv-modal-form button.cv-btn { margin-top: 14px; width: 100%; border-radius: 999px; padding: 14px 18px; font-weight: 700; color: #fff; background: #0070ff; }
.cv-hp { position: absolute; left: -9999px; height: 0; width: 0; opacity: 0; }
.cv-form-note { margin-top: 8px; font-weight: 700; color: #9a3412; }
.cv-form-note.is-ok { color: #0b7a45; }
@media (max-width: 860px) {
	.cv-modal-card { grid-template-columns: 1fr; padding: 48px 12px 12px; }
	.cv-modal-side, .cv-modal-form { max-height: none; }
	.cv-form-grid, .cv-products, .cv-form-extra, .cv-modal-info { grid-template-columns: 1fr; }
}
body:not(.jp-candid) #header.header-section,
body:not(.jp-candid) footer:not(.cv-footer),
body:not(.jp-candid) .footer { display: none !important; }

.cv-blog { padding: 28px 5vw 72px; background: #f4f8fd; color: var(--ink); }
.cv-blog-head, .cv-blog-layout { max-width: 1120px; margin-left: auto; margin-right: auto; }
.cv-blog-head { padding: 12px 0 22px; }
.cv-blog-kicker, .cv-blog-back { color: #0070ff; font-weight: 700; font-size: 13px; letter-spacing: 0.04em; text-transform: uppercase; }
.cv-blog-head h1 { margin-top: 8px; font-size: clamp(36px, 4vw, 56px); letter-spacing: -0.04em; line-height: 1.05; }
.cv-blog-head p { margin-top: 10px; color: var(--muted); max-width: 40em; }
.cv-blog-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
.cv-blog-list { display: grid; gap: 16px; }
.cv-blog-card { display: grid; grid-template-columns: 220px minmax(0, 1fr); background: #fff; border: 1px solid #e4ecf6; border-radius: 22px; overflow: hidden; min-width: 0; }
.cv-blog-card-media { display: block; background: linear-gradient(160deg, #e7f2ff, #c5dcff); min-height: 160px; }
.cv-blog-card-media img { width: 100%; height: 100%; object-fit: cover; min-height: 160px; }
.cv-blog-card-body { padding: 16px 18px; min-width: 0; }
.cv-blog-card h2 { margin-top: 8px; font-size: 22px; letter-spacing: -0.03em; line-height: 1.25; }
.cv-blog-card h2 a { color: inherit; }
.cv-blog-card p { margin-top: 8px; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cv-blog-side { display: grid; gap: 16px; position: sticky; top: 110px; }
.cv-side-card {
	background:
		linear-gradient(180deg, rgba(255,255,255,.98), #fff),
		radial-gradient(420px 160px at 100% 0%, rgba(0,112,255,.10), transparent 60%);
	border: 1px solid #d7e4f5;
	border-radius: 22px;
	padding: 18px;
	box-shadow: 0 14px 34px rgba(15, 36, 72, .07);
}
.cv-side-card--cats {
	background:
		linear-gradient(165deg, #0b1b36 0%, #12315a 58%, #0f2748 100%);
	border-color: transparent;
	color: #fff;
	box-shadow: 0 18px 40px rgba(11, 27, 54, .28);
}
.cv-side-card--recent { padding: 16px; }
.cv-side-head { margin-bottom: 14px; }
.cv-side-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #0070ff;
	margin-bottom: 6px;
}
.cv-side-card--cats .cv-side-eyebrow { color: #8ec5ff; }
.cv-side-card h2,
.cv-side-head h2 {
	margin: 0;
	font-size: 1.15rem;
	line-height: 1.25;
	letter-spacing: -.02em;
	font-weight: 800;
	color: inherit;
}
.cv-side-card--cats h2 { color: #fff; }
.cv-side-label { display: block; font-weight: 800; font-size: 13px; letter-spacing: .02em; margin-bottom: 8px; color: #0c1730; }
.cv-side-cats,
.cv-side-recent,
.cv-side-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cv-side-cat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 14px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.12);
	color: #f4f8ff !important;
	text-decoration: none;
	transition: background .18s ease, transform .18s ease, border-color .18s ease;
}
.cv-side-cat:hover {
	background: rgba(255,255,255,.16);
	border-color: rgba(255,255,255,.28);
	transform: translateY(-1px);
	color: #fff !important;
}
.cv-side-cat-name {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
	min-width: 0;
}
.cv-side-cat-count {
	flex: 0 0 auto;
	min-width: 26px;
	height: 26px;
	padding: 0 8px;
	border-radius: 999px;
	display: inline-grid;
	place-items: center;
	font-size: 12px;
	font-weight: 800;
	background: #0070ff;
	color: #fff;
}
.cv-side-recent { gap: 10px; }
.cv-side-recent-item {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 10px;
	border-radius: 16px;
	border: 1px solid #e7eef8;
	background: linear-gradient(180deg, #f8fbff, #fff);
	text-decoration: none;
	color: inherit;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.cv-side-recent-item:hover {
	border-color: #b9d4ff;
	box-shadow: 0 10px 24px rgba(0,112,255,.12);
	transform: translateY(-1px);
	color: inherit;
}
.cv-side-recent-media {
	width: 64px;
	height: 64px;
	border-radius: 14px;
	overflow: hidden;
	background: linear-gradient(145deg, #dcebff, #a9c9ff);
	display: block;
}
.cv-side-recent-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cv-side-recent-fallback {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), transparent 45%),
		linear-gradient(145deg, #dcebff, #7eb0ff);
}
.cv-side-recent-body { display: grid; gap: 4px; min-width: 0; }
.cv-side-recent-cat {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #0070ff;
}
.cv-side-recent-title {
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.35;
	color: #0c1730;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cv-side-recent-item:hover .cv-side-recent-title { color: #0056cc; }
.cv-side-recent-date {
	font-size: 12px;
	color: #7b8798;
	font-weight: 600;
}
.cv-blog-search label { display: grid; gap: 0; font-weight: 700; font-size: 14px; }
.cv-side-search-field {
	position: relative;
	display: block;
}
.cv-side-search-ico {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	color: #7b8798;
	pointer-events: none;
}
.cv-blog-search input {
	width: 100%;
	border: 1px solid #d7e4f5;
	border-radius: 14px;
	padding: 12px 12px 12px 36px;
	font: inherit;
	background: #f7faff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.cv-blog-search input:focus {
	outline: none;
	border-color: #0070ff;
	box-shadow: 0 0 0 3px rgba(0,112,255,.15);
	background: #fff;
}
.cv-blog-pages { margin-top: 18px; }
.cv-blog-pages ul { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.cv-blog-pages a, .cv-blog-pages span { display: grid; place-items: center; min-width: 36px; height: 36px; padding: 0 10px; border-radius: 999px; background: #fff; border: 1px solid #e4ecf6; color: #0c1730; }
.cv-blog-pages .current { background: #0070ff; color: #fff; border-color: #0070ff; }
.cv-entry { background: #fff; border: 1px solid #e4ecf6; border-radius: 24px; padding: 22px; }
.cv-entry-meta { display: flex; gap: 12px; color: #0070ff; font-weight: 700; font-size: 13px; }
.cv-entry-meta time { color: #7b8798; }
.cv-entry-media { margin-top: 14px; border-radius: 18px; overflow: hidden; }
.cv-entry-media img { width: 100%; height: auto; max-height: 420px; object-fit: cover; }
.cv-entry-body { margin-top: 16px; font-size: 17px; line-height: 1.7; }
.cv-entry-body h2, .cv-entry-body h3 { margin: 1.1em 0 0.4em; letter-spacing: -0.03em; }
.cv-entry-body p, .cv-entry-body ul, .cv-entry-body ol { margin: 0.7em 0; }
.cv-entry-body img { max-width: 100%; height: auto; border-radius: 14px; }
.cv-blog-empty { background: #fff; border-radius: 18px; padding: 20px; }
body.cv-journal-page { background: #f4f8fd; }
@media (max-width: 860px) {
	.cv-blog-layout, .cv-blog-card { grid-template-columns: 1fr; }
}
body:not(.jp-candid) { padding-top: 96px; }
body.admin-bar .cv-site-header { top: 32px; }
body.jp-candid.admin-bar .cv-site-header { top: 0; }
@media (max-width: 782px) {
	body.admin-bar .cv-site-header { top: 46px; }
	body.jp-candid.admin-bar .cv-site-header { top: 0; }
}
@media (max-width: 980px) {
	body:not(.jp-candid) { padding-top: 78px; }
}
