/*
Theme Name: Leekin Theme
Theme URI: https://leekin.dev
Description: GeneratePress child theme for Leekin.Dev — Clean Light Tech design. Terminal hero, card blog, custom sidebar & footer. Built to be dropped in via file manager.
Author: Leekin.Dev
Template: generatepress
Version: 1.0.0
Text Domain: leekin-theme
*/

/* =====================================================================
   Leekin.Dev — Clean Light Tech
   Palette: white/#F7F8FA surfaces · ink #1A1D29 · indigo #4F46E5 · cyan #06B6D4
   ===================================================================== */

:root,
body {
	--lk-bg:          #ffffff;
	--lk-surface:     #eef1f6;
	--lk-surface-2:   #e2e8f0;
	--lk-border:      #e3e8ef;
	--lk-border-2:    #d5dce6;
	--lk-ink:         #1a1d29;
	--lk-ink-soft:    #4b5565;
	--lk-muted:       #8a94a6;
	--lk-primary:     #4f46e5;
	--lk-primary-600: #4338ca;
	--lk-primary-050: #eef0ff;
	--lk-cyan:        #06b6d4;
	--lk-cyan-050:    #e6fbff;
	--lk-term-bg:     #0d1117;
	--lk-term-bg-2:   #161b22;
	--lk-term-ink:    #e6edf3;
	--lk-term-green:  #34d399;
	--lk-term-cyan:   #22d3ee;
	--lk-term-purple: #a78bfa;
	--lk-radius:      16px;
	--lk-radius-sm:   10px;
	--lk-shadow:      0 1px 2px rgba(16,24,40,.04), 0 8px 24px -12px rgba(16,24,40,.12);
	--lk-shadow-lg:   0 12px 40px -16px rgba(16,24,40,.22);
	--lk-mono:        "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
	--lk-sans:        "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

/* --- Base ------------------------------------------------------------ */
body {
	font-family: var(--lk-sans);
	background: var(--lk-surface);
	color: var(--lk-ink);
	-webkit-font-smoothing: antialiased;
	letter-spacing: -0.01em;
}
/* Unified light-gray page background; white cards/content sit on top. */
body,
.site-content,
.content-area,
.site-main {
	background: transparent;
}
.single-post .site-content,
.page .site-content { background: transparent; }

/* Single post = white reading sheet on the gray background. */
.single-post .inside-article {
	background: #fff;
	border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius);
	box-shadow: var(--lk-shadow);
	padding: clamp(24px, 4vw, 48px) !important;
}
h1, h2, h3, h4, h5, h6, .entry-title {
	font-family: var(--lk-sans);
	color: var(--lk-ink);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
}
a { color: var(--lk-primary); text-decoration: none; }
a:hover { color: var(--lk-primary-600); }
code, kbd, pre, tt { font-family: var(--lk-mono); }
:not(pre) > code {
	background: var(--lk-surface-2);
	color: var(--lk-primary-600);
	padding: .12em .45em;
	border-radius: 6px;
	font-size: .88em;
	border: 1px solid var(--lk-border);
}

/* --- Header / Nav ---------------------------------------------------- */
.site-header {
	background: rgba(255,255,255,.86) !important;
	backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--lk-border);
	padding: 6px 0;
}
.main-title,
.site-title a,
.main-title a {
	font-family: var(--lk-mono) !important;
	font-weight: 700;
	letter-spacing: -0.03em;
	color: var(--lk-ink) !important;
	font-size: 1.5rem;
}
.main-title a .lk-dot { color: var(--lk-primary); }
.site-description {
	color: var(--lk-muted) !important;
	font-family: var(--lk-mono);
	font-size: .74rem;
	letter-spacing: .02em;
}
.main-navigation,
.main-navigation .inside-navigation {
	background: transparent !important;
}
.main-navigation .main-nav ul li a {
	color: var(--lk-ink-soft) !important;
	font-weight: 600;
	font-size: .95rem;
	border-radius: var(--lk-radius-sm);
	transition: color .15s ease, background .15s ease;
}
.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li.current-menu-item > a {
	color: var(--lk-primary) !important;
	background: var(--lk-primary-050) !important;
}
.main-navigation .main-nav ul li.current-menu-item > a {
	box-shadow: inset 0 -2px 0 var(--lk-primary);
}
/* sticky nav (Menu Plus) polish */
.main-navigation.is_stuck { box-shadow: var(--lk-shadow); }
.navigation-search input {
	background: var(--lk-surface) !important;
}
button.menu-toggle,
.menu-toggle { color: var(--lk-ink) !important; }

/* --- Buttons -------------------------------------------------------- */
.lk-btn,
.button, button, input[type="submit"], .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	font-family: var(--lk-sans);
	font-weight: 600;
	border-radius: 999px;
	padding: .72em 1.4em;
	border: 1px solid transparent;
	transition: transform .12s ease, box-shadow .15s ease, background .15s ease;
	cursor: pointer;
	line-height: 1;
}
.lk-btn-primary,
.button, button, input[type="submit"], .wp-block-button__link {
	background: var(--lk-primary);
	color: #fff !important;
	box-shadow: 0 8px 20px -10px rgba(79,70,229,.8);
}
.lk-btn-primary:hover,
.button:hover, button:hover, input[type="submit"]:hover {
	background: var(--lk-primary-600);
	color: #fff !important;
	transform: translateY(-2px);
}
.lk-btn-ghost {
	background: #fff;
	color: var(--lk-ink) !important;
	border: 1px solid var(--lk-border-2);
}
.lk-btn-ghost:hover {
	border-color: var(--lk-primary);
	color: var(--lk-primary) !important;
	transform: translateY(-2px);
}

/* =====================================================================
   HERO — Terminal window
   ===================================================================== */
.lk-hero {
	background:
		radial-gradient(60rem 30rem at 15% -10%, rgba(79,70,229,.10), transparent 60%),
		radial-gradient(50rem 26rem at 100% 0%, rgba(6,182,212,.10), transparent 55%),
		var(--lk-surface);
	border-bottom: 1px solid var(--lk-border);
	padding: clamp(48px, 7vw, 88px) 20px;
}
.lk-hero-inner {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: clamp(28px, 5vw, 60px);
	align-items: center;
}
.lk-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	font-family: var(--lk-mono);
	font-size: .78rem;
	font-weight: 600;
	color: var(--lk-primary-600);
	background: #fff;
	border: 1px solid var(--lk-border);
	padding: .4em .8em;
	border-radius: 999px;
	box-shadow: var(--lk-shadow);
}
.lk-hero-eyebrow .lk-live {
	width: 8px; height: 8px; border-radius: 50%;
	background: var(--lk-term-green);
	box-shadow: 0 0 0 4px rgba(52,211,153,.2);
}
.lk-hero h1 {
	font-size: clamp(2rem, 4.6vw, 3.25rem);
	margin: .5em 0 .35em;
	line-height: 1.12;
	letter-spacing: -0.03em;
}
.lk-hero h1 .lk-grad {
	background: linear-gradient(100deg, var(--lk-primary), var(--lk-cyan));
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.lk-hero-sub {
	color: var(--lk-ink-soft);
	font-size: 1.08rem;
	line-height: 1.7;
	max-width: 30em;
	margin-bottom: 1.6em;
}
.lk-hero-cta { display: flex; flex-wrap: wrap; gap: .7em; }
.lk-hero-stats {
	display: flex; gap: 1.6em; margin-top: 1.8em;
	padding-top: 1.4em; border-top: 1px dashed var(--lk-border-2);
}
.lk-hero-stats b {
	display: block; font-family: var(--lk-mono);
	font-size: 1.4rem; color: var(--lk-ink);
}
.lk-hero-stats span { font-size: .82rem; color: var(--lk-muted); }

/* terminal card */
.lk-term {
	background: var(--lk-term-bg);
	border-radius: 14px;
	box-shadow: var(--lk-shadow-lg), 0 0 0 1px rgba(255,255,255,.04) inset;
	overflow: hidden;
	font-family: var(--lk-mono);
	font-size: .92rem;
	transform: perspective(1400px) rotateY(-4deg) rotateX(2deg);
	transition: transform .4s ease;
}
.lk-term:hover { transform: perspective(1400px) rotateY(0) rotateX(0); }
.lk-term-bar {
	display: flex; align-items: center; gap: 8px;
	padding: 12px 14px;
	background: var(--lk-term-bg-2);
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.lk-term-bar i { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.lk-term-bar .r { background: #ff5f57; }
.lk-term-bar .y { background: #febc2e; }
.lk-term-bar .g { background: #28c840; }
.lk-term-bar span {
	margin-left: auto; color: #7d8590; font-size: .76rem;
}
.lk-term-body { padding: 20px 20px 24px; color: var(--lk-term-ink); line-height: 1.85; }
.lk-term-body .p { color: var(--lk-term-green); }        /* prompt $ */
.lk-term-body .c { color: #7d8590; }                     /* comment */
.lk-term-body .k { color: var(--lk-term-purple); }       /* keyword */
.lk-term-body .s { color: var(--lk-term-cyan); }         /* string */
.lk-term-body .out { color: var(--lk-term-ink); }
.lk-type {
	display: inline-block;
	overflow: hidden; white-space: nowrap;
	border-right: 2px solid var(--lk-term-cyan);
	width: 0;
	vertical-align: bottom;
	animation: lk-typing 2.6s steps(22) 1 .6s forwards, lk-caret .9s step-end infinite;
}
@keyframes lk-typing { to { width: 22ch; } }
@keyframes lk-caret { 50% { border-color: transparent; } }
@media (prefers-reduced-motion: reduce) {
	.lk-type { width: 22ch; animation: none; border-right: 0; }
}

@media (max-width: 880px) {
	.lk-hero-inner { grid-template-columns: 1fr; }
	.lk-term { transform: none; order: -1; }
	.lk-hero-stats { justify-content: space-between; }
}

/* =====================================================================
   BLOG — Card grid
   ===================================================================== */
.blog .site-main,
.archive .site-main,
.search-results .site-main {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 26px;
	background: transparent;
}
.blog .site-main > *:not(article),
.archive .site-main > *:not(article),
.search .site-main > *:not(article) { grid-column: 1 / -1; }

.blog article.post,
.archive article,
.search article {
	background: #fff;
	border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius);
	box-shadow: var(--lk-shadow);
	overflow: hidden;
	transition: transform .18s ease, box-shadow .2s ease, border-color .2s ease;
	margin: 0 !important;
	padding: 0 !important;
	display: flex; flex-direction: column;
}
.blog article.post:hover,
.archive article:hover,
.search article:hover {
	transform: translateY(-4px);
	box-shadow: var(--lk-shadow-lg);
	border-color: var(--lk-border-2);
}
.blog .inside-article,
.archive .inside-article,
.search .inside-article {
	padding: 0 !important;
	display: flex; flex-direction: column; height: 100%;
}

/* card thumb */
.lk-card-thumb {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--lk-surface-2);
}
.lk-card-thumb img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform .4s ease;
}
article:hover .lk-card-thumb img { transform: scale(1.05); }
.lk-card-thumb.lk-ph {
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, var(--lk-primary), var(--lk-cyan));
}
.lk-card-thumb.lk-ph span {
	font-family: var(--lk-mono);
	color: #fff; font-weight: 700;
	font-size: 1.1rem; letter-spacing: -.02em;
	padding: 0 1.2em; text-align: center;
	text-shadow: 0 2px 12px rgba(0,0,0,.2);
}
.lk-cat-badge {
	position: absolute; left: 12px; top: 12px;
	background: rgba(255,255,255,.94);
	backdrop-filter: blur(6px);
	color: var(--lk-primary-600);
	font-size: .72rem; font-weight: 700;
	font-family: var(--lk-mono);
	padding: .35em .7em; border-radius: 999px;
	box-shadow: var(--lk-shadow);
}

/* card body spacing */
.blog .entry-header,
.archive .entry-header,
.search .entry-header { padding: 18px 20px 0; }
.blog .entry-summary,
.archive .entry-summary,
.search .entry-summary { padding: 8px 20px 0; color: var(--lk-ink-soft); line-height: 1.65; font-size: .95rem; }
.blog .entry-title,
.archive .entry-title,
.search .entry-title { font-size: 1.22rem; margin: 0; }
.blog .entry-title a,
.archive .entry-title a { color: var(--lk-ink); }
.blog .entry-title a:hover,
.archive .entry-title a:hover { color: var(--lk-primary); }

.blog .entry-meta,
.archive .entry-meta {
	font-size: .8rem; color: var(--lk-muted);
	display: flex; flex-wrap: wrap; align-items: center; gap: .5em;
	margin-top: .5em;
}
.blog .entry-meta a,
.archive .entry-meta a { color: var(--lk-muted); }
.lk-readtime {
	font-family: var(--lk-mono);
	font-size: .78rem; color: var(--lk-cyan);
	font-weight: 600;
}
.lk-readmore {
	margin: auto 20px 18px;
	padding-top: 14px;
	font-weight: 700; font-size: .92rem;
	color: var(--lk-primary);
	display: inline-flex; align-items: center; gap: .4em;
}
.lk-readmore span { transition: transform .2s ease; }
article:hover .lk-readmore span { transform: translateX(4px); }

@media (max-width: 768px) {
	.blog .site-main, .archive .site-main, .search-results .site-main { grid-template-columns: 1fr; }
}

/* pagination */
.paging-navigation, .pagination, nav.navigation {
	margin-top: 8px;
}
.pagination .page-numbers {
	display: inline-flex; min-width: 40px; height: 40px;
	align-items: center; justify-content: center;
	border-radius: 10px; border: 1px solid var(--lk-border);
	background: #fff; color: var(--lk-ink-soft); font-weight: 600;
	margin: 0 3px;
}
.pagination .page-numbers.current { background: var(--lk-primary); color: #fff; border-color: var(--lk-primary); }
.pagination a.page-numbers:hover { border-color: var(--lk-primary); color: var(--lk-primary); }

/* =====================================================================
   SINGLE POST
   ===================================================================== */
.single-post .entry-header { margin-bottom: 1.4em; }
.single-post .entry-title { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
.single-post .inside-article { padding-top: 8px; }
.single-post .entry-content { font-size: 1.06rem; line-height: 1.85; color: #23262f; }
.single-post .entry-content p { margin-bottom: 1.3em; }
.single-post .entry-content h2 {
	font-size: 1.6rem; margin: 1.8em 0 .6em;
	padding-left: .6em; border-left: 4px solid var(--lk-primary);
}
.single-post .entry-content h3 { font-size: 1.3rem; margin: 1.5em 0 .5em; }
.single-post .entry-content img { border-radius: var(--lk-radius); box-shadow: var(--lk-shadow); }
.single-post .entry-content a { text-decoration: underline; text-underline-offset: 3px; }
.single-post .entry-content blockquote {
	border-left: 4px solid var(--lk-cyan);
	background: var(--lk-cyan-050);
	margin: 1.5em 0; padding: 1em 1.4em; border-radius: 0 var(--lk-radius-sm) var(--lk-radius-sm) 0;
	color: var(--lk-ink);
}
.single-post .entry-meta { color: var(--lk-muted); font-size: .9rem; }
.single-post .entry-meta a { color: var(--lk-primary); }

/* =====================================================================
   SIDEBAR
   ===================================================================== */
.inside-right-sidebar .widget,
.lk-side-card {
	background: #fff;
	border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius);
	box-shadow: var(--lk-shadow);
	padding: 20px !important;
	margin-bottom: 22px;
}
.inside-right-sidebar .widget-title,
.inside-right-sidebar .widgettitle {
	font-size: .82rem; text-transform: uppercase; letter-spacing: .08em;
	color: var(--lk-muted); font-family: var(--lk-mono); font-weight: 700;
	margin-bottom: .9em; padding-bottom: .7em;
	border-bottom: 1px solid var(--lk-border);
}
.inside-right-sidebar ul { list-style: none; margin: 0; padding: 0; }
.inside-right-sidebar li { padding: .4em 0; border-bottom: 1px dashed var(--lk-border); }
.inside-right-sidebar li:last-child { border-bottom: 0; }
.inside-right-sidebar a { color: var(--lk-ink-soft); font-weight: 500; }
.inside-right-sidebar a:hover { color: var(--lk-primary); }
.inside-right-sidebar .search-field {
	background: var(--lk-surface) !important;
	border: 1px solid var(--lk-border) !important;
	border-radius: 10px;
}

/* profile card */
.lk-profile { text-align: center; }
.lk-profile .lk-ava {
	width: 64px; height: 64px; margin: 0 auto .8em;
	border-radius: 18px;
	background: linear-gradient(135deg, var(--lk-primary), var(--lk-cyan));
	color: #fff; font-family: var(--lk-mono); font-weight: 700; font-size: 1.8rem;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 10px 24px -10px rgba(79,70,229,.7);
}
.lk-profile h3 { font-family: var(--lk-mono); font-size: 1.25rem; margin: 0; }
.lk-profile .lk-tag { color: var(--lk-primary); font-family: var(--lk-mono); font-size: .8rem; margin: .2em 0 .8em; }
.lk-profile p { color: var(--lk-ink-soft); font-size: .9rem; line-height: 1.6; margin: 0 0 1em; }
.lk-chips { display: flex; flex-wrap: wrap; gap: .4em; justify-content: center; }
.lk-chips a {
	font-size: .76rem; font-weight: 600;
	background: var(--lk-surface); border: 1px solid var(--lk-border);
	padding: .35em .7em; border-radius: 999px; color: var(--lk-ink-soft) !important;
}
.lk-chips a:hover { border-color: var(--lk-primary); color: var(--lk-primary) !important; }

/* newsletter / cta side card */
.lk-side-cta {
	background: linear-gradient(150deg, var(--lk-primary), var(--lk-primary-600)) !important;
	border: none !important; color: #fff;
}
.lk-side-cta h3 { color: #fff; margin: 0 0 .4em; font-size: 1.1rem; }
.lk-side-cta p { color: rgba(255,255,255,.85); font-size: .88rem; margin: 0 0 1em; line-height: 1.55; }
.lk-side-cta a.lk-btn { background: #fff; color: var(--lk-primary) !important; width: 100%; justify-content: center; }

/* =====================================================================
   FOOTER
   ===================================================================== */
.site-footer,
.site-info {
	background: var(--lk-term-bg) !important;
	color: #9aa4b2 !important;
}
.lk-footer {
	max-width: 1100px; margin: 0 auto; padding: 56px 20px 20px;
	display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 36px;
}
.lk-footer h4 {
	color: #fff; font-family: var(--lk-mono); font-size: .8rem;
	text-transform: uppercase; letter-spacing: .1em; margin: 0 0 1.1em;
}
.lk-footer .lk-fbrand {
	font-family: var(--lk-mono); font-weight: 700; font-size: 1.4rem; color: #fff;
	margin-bottom: .5em; display: inline-block;
}
.lk-footer .lk-fbrand .lk-dot { color: var(--lk-term-cyan); }
.lk-footer p { color: #9aa4b2; font-size: .9rem; line-height: 1.7; margin: 0 0 1em; max-width: 26em; }
.lk-footer ul { list-style: none; margin: 0; padding: 0; }
.lk-footer li { margin-bottom: .6em; }
.lk-footer a { color: #9aa4b2; font-size: .92rem; }
.lk-footer a:hover { color: var(--lk-term-cyan); }
.lk-fsocial { display: flex; gap: .6em; margin-top: .4em; }
.lk-fsocial a {
	width: 38px; height: 38px; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08);
	font-family: var(--lk-mono); font-weight: 700; color: #cdd5df;
}
.lk-fsocial a:hover { background: var(--lk-primary); color: #fff; border-color: var(--lk-primary); }
.site-info {
	border-top: 1px solid rgba(255,255,255,.08);
	text-align: center; padding: 18px 20px !important;
	font-family: var(--lk-mono); font-size: .82rem; color: #7d8590 !important;
}
.site-info a { color: var(--lk-term-cyan); }
@media (max-width: 860px) {
	.lk-footer { grid-template-columns: 1fr 1fr; gap: 28px; }
	.lk-footer .lk-fabout { grid-column: 1 / -1; }
}

/* =====================================================================
   PAGES (About / Start Here / Topics)
   ===================================================================== */
.page .entry-content { font-size: 1.04rem; line-height: 1.8; color: #23262f; }
.lk-page-hero {
	background:
		radial-gradient(40rem 20rem at 20% -20%, rgba(79,70,229,.12), transparent 60%),
		var(--lk-surface);
	border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius);
	padding: clamp(30px, 5vw, 54px);
	margin-bottom: 2em; text-align: center;
}
.lk-page-hero .lk-kicker {
	font-family: var(--lk-mono); color: var(--lk-primary); font-weight: 700;
	font-size: .82rem; letter-spacing: .08em; text-transform: uppercase;
}
.lk-page-hero h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: .3em 0; }
.lk-page-hero p { color: var(--lk-ink-soft); font-size: 1.05rem; max-width: 36em; margin: 0 auto; }

.lk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; margin: 1.6em 0; }
.lk-feature {
	background: #fff; border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius); padding: 24px; box-shadow: var(--lk-shadow);
	transition: transform .18s ease, box-shadow .2s ease;
}
.lk-feature:hover { transform: translateY(-4px); box-shadow: var(--lk-shadow-lg); }
.lk-feature .lk-ico {
	width: 46px; height: 46px; border-radius: 12px;
	display: flex; align-items: center; justify-content: center;
	background: var(--lk-primary-050); color: var(--lk-primary);
	font-size: 1.4rem; margin-bottom: .7em; font-family: var(--lk-mono); font-weight: 700;
}
.lk-feature h3 { font-size: 1.15rem; margin: 0 0 .35em; }
.lk-feature p { color: var(--lk-ink-soft); font-size: .94rem; line-height: 1.6; margin: 0; }

/* numbered steps (Start Here) */
.lk-steps { counter-reset: lk; margin: 1.6em 0; display: grid; gap: 16px; }
.lk-step {
	display: grid; grid-template-columns: 52px 1fr; gap: 18px; align-items: start;
	background: #fff; border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius); padding: 22px; box-shadow: var(--lk-shadow);
}
.lk-step::before {
	counter-increment: lk; content: counter(lk, decimal-leading-zero);
	font-family: var(--lk-mono); font-weight: 700; font-size: 1.2rem;
	color: #fff; background: linear-gradient(135deg, var(--lk-primary), var(--lk-cyan));
	width: 52px; height: 52px; border-radius: 14px;
	display: flex; align-items: center; justify-content: center;
}
.lk-step h3 { margin: .1em 0 .3em; font-size: 1.15rem; }
.lk-step p { margin: 0; color: var(--lk-ink-soft); font-size: .95rem; line-height: 1.6; }
.lk-step .lk-more { font-weight: 600; font-size: .88rem; }

.lk-cta-band {
	margin: 2.4em 0 .5em; text-align: center;
	background: linear-gradient(150deg, var(--lk-primary), var(--lk-primary-600));
	color: #fff; border-radius: var(--lk-radius); padding: clamp(28px, 4vw, 44px);
}
.lk-cta-band h3 { color: #fff; font-size: 1.5rem; margin: 0 0 .3em; }
.lk-cta-band p { color: rgba(255,255,255,.86); margin: 0 0 1.2em; }
.lk-cta-band .lk-btn { background: #fff; color: var(--lk-primary) !important; }

/* topic sections */
.lk-topic { margin: 2em 0; }
.lk-topic-head { display: flex; align-items: center; gap: .6em; margin-bottom: .8em; }
.lk-topic-head .lk-ico { margin: 0; }
.lk-topic-head h2 { margin: 0; font-size: 1.5rem; }
.lk-topic-head .lk-count {
	margin-left: auto; font-family: var(--lk-mono); font-size: .8rem;
	color: var(--lk-muted); background: var(--lk-surface);
	padding: .3em .7em; border-radius: 999px; border: 1px solid var(--lk-border);
}

/* [leekin_posts] mini card grid (Topics page) */
.lk-mini-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin: 1em 0 1.4em; }
.lk-mini-card {
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius-sm); overflow: hidden; box-shadow: var(--lk-shadow);
	transition: transform .16s ease, box-shadow .2s ease;
}
.lk-mini-card:hover { transform: translateY(-3px); box-shadow: var(--lk-shadow-lg); }
.lk-mini-thumb { display: block; aspect-ratio: 16/9; background-size: cover; background-position: center; background-color: var(--lk-surface-2); }
.lk-mini-thumb.lk-ph { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--lk-primary), var(--lk-cyan)); }
.lk-mini-thumb.lk-ph span { color: #fff; font-family: var(--lk-mono); font-weight: 700; font-size: .9rem; }
.lk-mini-body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: .4em; }
.lk-mini-title { font-weight: 700; color: var(--lk-ink); font-size: .98rem; line-height: 1.4; }
.lk-mini-card:hover .lk-mini-title { color: var(--lk-primary); }
.lk-mini-meta { font-family: var(--lk-mono); font-size: .74rem; color: var(--lk-muted); }

/* Contact page */
.wpcf7 { background: #fff; border: 1px solid var(--lk-border); border-radius: var(--lk-radius); padding: 28px; box-shadow: var(--lk-shadow); }
.wpcf7 input:not([type=submit]), .wpcf7 textarea {
	width: 100%; background: var(--lk-surface); border: 1px solid var(--lk-border);
	border-radius: 10px; padding: .8em 1em; margin-top: .3em;
}
.wpcf7 input:focus, .wpcf7 textarea:focus { border-color: var(--lk-primary); outline: none; box-shadow: 0 0 0 3px var(--lk-primary-050); }

/* =====================================================================
   REVIEW ROUND 2 — refinements
   ===================================================================== */

/* Per-category badge colors */
.lk-cat--code-magic-tricks       { color: #4338ca; }
.lk-cat--ai-around-us            { color: #0e7490; }
.lk-cat--dev-life-hacks          { color: #b45309; }
.lk-cat--learn-from-fails        { color: #be123c; }
.lk-cat--future-tech-expedition  { color: #7c3aed; }

/* Hero stats — wrap instead of overflowing on mobile */
.lk-hero-stats { flex-wrap: wrap; row-gap: 1.1em; }
.lk-hero-stats > div { min-width: max-content; }
@media (max-width: 420px) { .lk-hero-stats { gap: 1.1em 1.6em; } }

/* Header search (details/summary, no JS) */
.menu-bar-items { display: flex; align-items: center; margin-left: 8px; }
.lk-hsearch { position: relative; }
.lk-hsearch summary {
	list-style: none; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 10px; color: var(--lk-ink-soft);
	transition: background .15s ease, color .15s ease;
}
.lk-hsearch summary::-webkit-details-marker { display: none; }
.lk-hsearch summary:hover,
.lk-hsearch[open] summary { background: var(--lk-primary-050); color: var(--lk-primary); }
.lk-hsearch-pop {
	position: absolute; right: 0; top: calc(100% + 12px);
	background: #fff; border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius-sm); box-shadow: var(--lk-shadow-lg);
	padding: 12px; width: 290px; z-index: 200;
}
.lk-hsearch-pop::before {
	content: ""; position: absolute; right: 12px; top: -6px;
	width: 12px; height: 12px; background: #fff;
	border-left: 1px solid var(--lk-border); border-top: 1px solid var(--lk-border);
	transform: rotate(45deg);
}
.lk-hsearch-pop .search-field {
	width: 100%; background: var(--lk-surface);
	border: 1px solid var(--lk-border); border-radius: 10px; padding: .7em 1em;
}
.lk-hsearch-pop .search-field:focus { border-color: var(--lk-primary); outline: none; box-shadow: 0 0 0 3px var(--lk-primary-050); }
.lk-hsearch-pop .search-submit { display: none; }
/* Header search is desktop-only so it never competes with the mobile
   hamburger toggle; on mobile the sidebar search (below content) is used. */
@media (max-width: 768px) {
	.lk-hsearch { display: none; }
	#site-navigation .menu-toggle { display: flex !important; align-items: center; justify-content: center; }
}

/* Sidebar: hide archives / core recent widgets (replaced). Search is hidden
   on desktop (moved to header) but shown on mobile (header search is hidden). */
.inside-right-sidebar .widget_archive,
.inside-right-sidebar .widget_recent_entries { display: none; }
@media (min-width: 769px) { .inside-right-sidebar .widget_search { display: none; } }

/* Sidebar: recent posts with thumbnails */
.lk-side-recent { display: flex; flex-direction: column; gap: 14px; }
.lk-side-recent-item { display: flex; gap: 12px; align-items: center; }
.lk-sr-thumb {
	flex: 0 0 56px; width: 56px; height: 56px; border-radius: 10px;
	background-size: cover; background-position: center; background-color: var(--lk-surface-2);
}
.lk-sr-thumb.lk-ph { background: linear-gradient(135deg, var(--lk-primary), var(--lk-cyan)); }
.lk-sr-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.lk-sr-title {
	font-weight: 600; font-size: .9rem; color: var(--lk-ink); line-height: 1.35;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.lk-side-recent-item:hover .lk-sr-title { color: var(--lk-primary); }
.lk-sr-meta { font-family: var(--lk-mono); font-size: .72rem; color: var(--lk-muted); }

/* Single post: prev/next navigation + related posts.
   Hide GeneratePress' default text post-navigation (replaced by .lk-postnav). */
.single-post .post-navigation { display: none; }
.lk-postnav {
	display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
	margin-top: 2.6em; padding-top: 1.8em; border-top: 1px solid var(--lk-border);
}
.lk-postnav-item {
	display: flex; flex-direction: column; gap: .4em; padding: 16px 18px;
	background: var(--lk-surface); border: 1px solid var(--lk-border);
	border-radius: var(--lk-radius-sm); transition: border-color .2s ease, transform .15s ease;
}
.lk-postnav-item:hover { border-color: var(--lk-primary); transform: translateY(-2px); }
.lk-postnav .lk-next { text-align: right; }
.lk-pn-label { font-size: .78rem; color: var(--lk-muted); font-weight: 600; }
.lk-pn-title {
	font-weight: 700; color: var(--lk-ink); font-size: .98rem; line-height: 1.4;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.lk-postnav-item:hover .lk-pn-title { color: var(--lk-primary); }
.lk-related { margin-top: 2.6em; padding-top: 1.8em; border-top: 1px solid var(--lk-border); }
.lk-related-title { font-size: 1.3rem; margin: 0 0 1em; padding-left: .6em; border-left: 4px solid var(--lk-primary); }
.lk-related .lk-mini-card { border-color: var(--lk-border); }
@media (max-width: 600px) { .lk-postnav { grid-template-columns: 1fr; } }

/* Dark code blocks (for tutorial posts) */
.entry-content pre {
	background: var(--lk-term-bg); color: var(--lk-term-ink);
	border-radius: var(--lk-radius-sm); padding: 18px 20px; overflow: auto;
	font-family: var(--lk-mono); font-size: .9rem; line-height: 1.7;
	border: 1px solid rgba(255,255,255,.06); box-shadow: var(--lk-shadow);
	margin: 1.5em 0;
}
.entry-content pre code {
	background: none; border: none; color: inherit; padding: 0; font-size: inherit;
}

/* Footer: gradient accent line at the very top */
.site-footer { position: relative; }
.site-footer::before {
	content: ""; display: block; height: 4px;
	background: linear-gradient(90deg, var(--lk-primary), var(--lk-cyan));
}

/* =====================================================================
   REVIEW ROUND 3 — refinements
   ===================================================================== */

/* Single-post category label above the title */
.lk-single-cat {
	display: inline-flex; align-items: center;
	font-family: var(--lk-mono); font-size: .78rem; font-weight: 700;
	color: var(--lk-primary-600) !important;
	background: var(--lk-primary-050);
	padding: .35em .8em; border-radius: 999px;
	margin-bottom: .9em; letter-spacing: -.01em;
	transition: background .15s ease, color .15s ease;
}
.lk-single-cat:hover { background: var(--lk-primary); color: #fff !important; }
.lk-single-cat.lk-cat--ai-around-us { color: #0e7490 !important; background: var(--lk-cyan-050); }
.lk-single-cat.lk-cat--ai-around-us:hover { background: var(--lk-cyan); color: #fff !important; }

/* Footer: simple contact link (replaces the L/B/R social letters) */
.lk-fcontact {
	display: inline-flex; align-items: center; gap: .4em;
	color: var(--lk-term-cyan) !important; font-weight: 600; font-size: .95rem;
}
.lk-fcontact:hover { color: #fff !important; }

/* Feature / step cards: equal height within a row */
.lk-grid { align-items: stretch; }
.lk-feature { height: 100%; }

/* Card hover — add a category-colored top accent + a touch more lift */
.blog article.post, .archive article, .search article { position: relative; }
.blog article.post::before, .archive article::before, .search article::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
	background: linear-gradient(90deg, var(--lk-primary), var(--lk-cyan));
	border-radius: var(--lk-radius) var(--lk-radius) 0 0;
	transform: scaleX(0); transform-origin: left; transition: transform .28s ease; z-index: 3;
}
.blog article.post:hover::before, .archive article:hover::before, .search article:hover::before { transform: scaleX(1); }

/* Compact sticky header on scroll */
.site-header {
	position: sticky; top: 0; z-index: 250;
	transition: padding .22s ease, box-shadow .22s ease;
}
body.lk-scrolled .site-header { box-shadow: 0 6px 24px -14px rgba(16,24,40,.28); }
body.lk-scrolled .inside-header { padding-top: 2px; padding-bottom: 2px; }
body.lk-scrolled .main-title a { font-size: 1.28rem; transition: font-size .22s ease; }
body.lk-scrolled .site-description { opacity: 0; max-height: 0; overflow: hidden; transition: opacity .18s ease, max-height .22s ease; }
.site-description { transition: opacity .18s ease, max-height .22s ease; max-height: 2em; }
.main-title a { transition: font-size .22s ease; }

/* Scroll-reveal (class added by JS; absent for no-JS/reduced-motion users) */
@media (prefers-reduced-motion: no-preference) {
	.lk-anim { opacity: 0; transform: translateY(18px); transition: opacity .55s cubic-bezier(.22,.61,.36,1), transform .55s cubic-bezier(.22,.61,.36,1); will-change: opacity, transform; }
	.lk-anim.is-visible { opacity: 1; transform: none; }
}

/* misc */
.entry-content > *:first-child { margin-top: 0; }
.separate-containers .paging-navigation { padding: 0; }
