/* ==========================================================================
   꿈털이의 꿈터 — GeneratePress 위 디자인 레이어
   원칙: 콘텐츠가 주인공, 액센트는 파랑 하나, 그림자·장식 그라디언트 없음,
   위계는 표면 색(흰색 ↔ 파치먼트 ↔ 다크 타일)과 여백으로만 만든다.
   ========================================================================== */

:root {
	--gg-primary: #0066cc;
	--gg-primary-focus: #0071e3;
	--gg-primary-on-dark: #2997ff;
	--gg-canvas: #ffffff;
	--gg-parchment: #f5f5f7;
	--gg-tile-dark: #1d1d1f;
	--gg-tile-dark-2: #2a2a2c;
	--gg-ink: #1d1d1f;
	--gg-ink-2: #424245;
	--gg-muted: #6e6e73;
	--gg-on-dark: #f5f5f7;
	--gg-on-dark-2: #a1a1a6;
	--gg-hairline: #e0e0e5;
	--gg-th-bg: #ececf0;
	--gg-info-bg: #eef4fc;
	--gg-code-bg: rgba(0, 0, 0, 0.05);
	--gg-r-sm: 8px;
	--gg-r-md: 11px;
	--gg-r-lg: 18px;
	--gg-r-pill: 9999px;
	--gg-wrap: 1200px;
	--gg-read: 720px;
	--gg-gutter: 24px;
	--gg-font: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
}

/* ---------- 기본 ---------- */
html { scroll-padding-top: 88px; }
body.gg {
	background: var(--gg-canvas);
	color: var(--gg-ink);
	font-family: var(--gg-font);
	font-size: 17px;
	line-height: 1.75;
	letter-spacing: -0.2px;
	word-break: keep-all;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
}
body.gg button,
body.gg input,
body.gg select,
body.gg textarea { font-family: var(--gg-font); }
body.gg a:not(.tm-front *):not(.tm-modal *) { color: var(--gg-primary); }
body.gg :focus-visible { outline: 2px solid var(--gg-primary-focus); outline-offset: 2px; }
body.gg h1, body.gg h2, body.gg h3, body.gg h4 { color: var(--gg-ink); font-family: var(--gg-font); }

/* GP의 회색 바탕 + 흰 박스 구성을 걷어내고 한 장의 캔버스로 */
.gg.separate-containers .inside-article,
.gg.separate-containers .comments-area,
.gg.separate-containers .page-header,
.gg.separate-containers .paging-navigation,
.gg .one-container .container,
.gg.separate-containers .site-main > * { background: transparent; }
.gg.separate-containers .inside-article,
.gg.separate-containers .page-header,
.gg.separate-containers .comments-area { padding: 0; }
.gg.separate-containers .site-main { margin: 0; }
.gg .site.grid-container { background: transparent; }
.gg .site-content { padding-top: 40px; padding-bottom: 80px; }

/* ---------- 헤더 ---------- */
.gg .site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.85);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	backdrop-filter: saturate(180%) blur(20px);
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.admin-bar.gg .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar.gg .site-header { top: 0; position: relative; } }
.gg .inside-header { padding: 0 24px; min-height: 60px; align-items: center; }
/* 테마 컨테이너 폭(운영 1630px)과 무관하게 헤더를 본문 폭(1200px)에 맞춘다 */
.gg .site-header .inside-header.grid-container { max-width: var(--gg-wrap); margin-left: auto; margin-right: auto; }
.gg .main-title { font-size: 20px; font-weight: 700; letter-spacing: -0.4px; line-height: 1.2; }
.gg .main-title a { color: var(--gg-ink); }
.gg .main-navigation,
.gg .main-navigation ul ul { background: transparent; }
.gg .main-navigation .main-nav ul li a,
.gg .main-navigation .menu-toggle,
.gg .main-navigation .menu-bar-items {
	color: var(--gg-ink);
	font-size: 15px;
	line-height: 60px;
	padding-left: 14px;
	padding-right: 14px;
}
.gg .main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.gg .main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--gg-primary); background: transparent; }
.gg .main-navigation ul ul {
	background: var(--gg-canvas);
	border: 1px solid var(--gg-hairline);
	border-radius: var(--gg-r-md);
	padding: 6px 0;
	box-shadow: none;
	width: 240px;
}
.gg .main-navigation .main-nav ul ul li a { line-height: 1.5; padding: 9px 16px; font-size: 15px; }
.gg .gg-search-toggle {
	background: transparent;
	border: 0;
	color: var(--gg-ink);
	padding: 8px;
	margin-left: 4px;
	width: 44px;
	height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	cursor: pointer;
	vertical-align: middle;
	transition: transform 0.15s ease;
}
.gg .gg-search-toggle:active { transform: scale(0.95); }
.gg .gg-search-toggle[aria-expanded="true"] { background: var(--gg-parchment); }
.gg .menu-bar-item.gg-search-toggle-wrap { display: inline-flex; align-items: center; }

.gg-search-panel {
	background: rgba(245, 245, 247, 0.96);
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	padding: 16px 20px;
	position: sticky;
	top: 61px;
	z-index: 99;
}
.admin-bar .gg-search-panel { top: 93px; }
.gg-search-panel[hidden] { display: none; }
.gg-search-panel .gg-search-form { max-width: 640px; margin: 0 auto; }

/* 검색 폼(헤더 패널·홈 히어로 공용) */
.gg .gg-search-form { display: flex; gap: 8px; }
.gg .gg-search-form input[type="search"] {
	flex: 1;
	min-width: 0;
	height: 48px;
	padding: 0 20px;
	font-size: 17px;
	color: var(--gg-ink);
	background: var(--gg-canvas);
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: var(--gg-r-pill);
}
.gg .gg-search-form input[type="search"]:focus { border-color: var(--gg-primary-focus); outline: none; box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.2); }
.gg .gg-search-form button,
.gg .gg-btn,
.gg .comment-form .submit,
.gg .search-form .search-submit {
	height: 48px;
	padding: 0 24px;
	font-size: 16px;
	font-weight: 600;
	color: #fff;
	background: var(--gg-primary);
	border: 0;
	border-radius: var(--gg-r-pill);
	cursor: pointer;
	transition: transform 0.15s ease;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	white-space: nowrap;
}
.gg .gg-btn { height: 44px; padding: 0 22px; color: #fff; }
.gg .gg-btn--ghost { background: transparent; color: var(--gg-primary); box-shadow: inset 0 0 0 1px var(--gg-primary); }
.gg .gg-search-form button:active,
.gg .gg-btn:active,
.gg .comment-form .submit:active { transform: scale(0.95); }

/* ---------- 빵부스러기·메타 ---------- */
.gg-crumbs ol { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; font-size: 14px; line-height: 1.5; }
.gg-crumbs li { color: var(--gg-muted); }
.gg-crumbs li + li::before { content: "›"; margin: 0 6px 0 2px; color: #a1a1a6; }
.gg-crumbs a { color: var(--gg-muted); text-decoration: none; }
.gg-crumbs a:active { color: var(--gg-primary); }

.gg-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; margin-top: 16px; font-size: 14px; color: var(--gg-muted); line-height: 1.5; }
.gg-meta > * + *::before { content: "·"; margin: 0 8px; color: #a1a1a6; }
.gg-meta a { color: var(--gg-ink); text-decoration: none; font-weight: 600; }
.gg-meta .gg-meta__cat { color: var(--gg-primary); }

/* ---------- 읽기 화면(글·페이지) ---------- */
.gg-reading .content-area { width: 100%; }
.gg-reading .inside-article,
.gg-reading .comments-area { max-width: var(--gg-read); margin-left: auto; margin-right: auto; }
.gg-reading .entry-header { margin-bottom: 32px; }
.gg-reading .entry-title {
	font-size: 38px;
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: -0.6px;
	margin: 0;
}
.gg-reading .entry-content { font-size: 17px; line-height: 1.8; color: var(--gg-ink); }
.gg-reading .entry-content > * { margin-top: 0; }
.gg-reading .entry-content p:not(.tm-front *):not(.tm-modal *) { margin-bottom: 1.35em; }
.gg-reading .entry-content h2:not(.tm-front *):not(.tm-modal *) {
	font-size: 26px;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: -0.4px;
	margin: 2.2em 0 0.7em;
}
.gg-reading .entry-content h3:not(.tm-front *):not(.tm-modal *) { font-size: 21px; line-height: 1.45; font-weight: 600; letter-spacing: -0.3px; margin: 1.8em 0 0.6em; }
.gg-reading .entry-content h4:not(.tm-front *):not(.tm-modal *) { font-size: 18px; font-weight: 600; margin: 1.6em 0 0.5em; }
.gg-reading .entry-content a:not(.tm-front *):not(.tm-modal *) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(0, 102, 204, 0.4); }
.gg-reading .entry-content ul:not(.tm-front *):not(.tm-modal *),
.gg-reading .entry-content ol:not(.tm-front *):not(.tm-modal *) { margin: 0 0 1.35em 1.25em; padding: 0; }
.gg-reading .entry-content li:not(.tm-front *):not(.tm-modal *) { margin-bottom: 0.45em; }
.gg-reading .entry-content li:not(.tm-front *):not(.tm-modal *)::marker { color: var(--gg-muted); }
.gg-reading .entry-content strong:not(.tm-front *):not(.tm-modal *) { font-weight: 700; }
.gg-reading .entry-content blockquote:not(.tm-front *):not(.tm-modal *) {
	margin: 1.8em 0;
	padding: 4px 0 4px 20px;
	border-left: 3px solid var(--gg-ink);
	color: var(--gg-ink-2);
	font-style: normal;
	font-size: 18px;
	background: transparent;
}
.gg-reading .entry-content code:not(.tm-front *):not(.tm-modal *) { background: var(--gg-code-bg); color: var(--gg-ink); padding: 2px 6px; border-radius: 6px; font-size: 0.9em; }
.gg-reading .entry-content pre:not(.tm-front *):not(.tm-modal *) { background: var(--gg-parchment); border-radius: var(--gg-r-md); padding: 18px 20px; overflow-x: auto; font-size: 14px; line-height: 1.6; border: 0; }
.gg-reading .entry-content pre:not(.tm-front *):not(.tm-modal *) code { background: none; padding: 0; }
.gg-reading .entry-content hr:not(.tm-front *):not(.tm-modal *) { border: 0; border-top: 1px solid var(--gg-hairline); margin: 2.5em 0; }
.gg-reading .entry-content img:not(.tm-front *):not(.tm-modal *) { border-radius: var(--gg-r-sm); height: auto; }

/* 이미지 + 캡션 */
.gg .gg-figure { margin: 2em 0; }
.gg .gg-figure img { display: block; width: 100%; height: auto; border-radius: var(--gg-r-sm); }
.gg .gg-figure figcaption { margin-top: 10px; font-size: 14px; line-height: 1.5; color: var(--gg-muted); text-align: center; }
.gg .gg-figure figcaption em { font-style: normal; }
.gg .gg-hero-image { margin: 0 0 32px; }

/* 목차 */
.gg .gg-toc {
	background: var(--gg-parchment);
	border-radius: var(--gg-r-lg);
	padding: 22px 26px 18px;
	margin: 2em 0 2.4em;
}
.gg .gg-toc__title,
.gg .gg-summary__title,
.gg .gg-sources__title { font-size: 15px; font-weight: 700; margin: 0 0 10px !important; color: var(--gg-ink); letter-spacing: -0.2px; }
.gg .gg-toc ul { list-style: none; margin: 0 !important; counter-reset: gg-toc; }
.gg .gg-toc li { counter-increment: gg-toc; margin: 0 !important; padding: 6px 0; font-size: 16px; line-height: 1.5; display: flex; gap: 10px; }
.gg .gg-toc li + li { border-top: 1px solid rgba(0, 0, 0, 0.06); }
.gg .gg-toc li::before { content: counter(gg-toc, decimal-leading-zero); color: var(--gg-muted); font-variant-numeric: tabular-nums; font-size: 14px; padding-top: 1px; }
.gg .gg-toc a { color: var(--gg-ink) !important; text-decoration: none !important; }
.gg .gg-toc a:active { color: var(--gg-primary) !important; }

/* 한눈에 보기 */
.gg .gg-summary {
	background: var(--gg-info-bg);
	border-radius: var(--gg-r-lg);
	padding: 22px 26px 12px;
	margin: 1.6em 0 2em;
}
.gg .gg-summary ul { margin: 0 0 0 1.1em !important; }
.gg .gg-summary li { font-size: 16px; line-height: 1.65; }

/* 참고 출처 */
.gg .gg-sources { border-top: 1px solid var(--gg-hairline); padding-top: 20px; margin: 2.6em 0 1.6em; }
.gg .gg-sources ul { margin-left: 1.1em !important; }
.gg .gg-sources li { font-size: 15px; line-height: 1.6; color: var(--gg-ink-2); }

/* 본문 속 '함께 읽으면 좋은 글' */
.gg-reading .entry-content section[aria-label="관련 글"] {
	border: 1px solid var(--gg-hairline);
	border-radius: var(--gg-r-lg);
	padding: 20px 24px 8px;
	margin: 2.4em 0 0;
}
.gg-reading .entry-content section[aria-label="관련 글"] h2 { font-size: 17px; margin: 0 0 8px; }
.gg-reading .entry-content section[aria-label="관련 글"] ul { list-style: none; margin: 0 !important; }
.gg-reading .entry-content section[aria-label="관련 글"] li { padding: 8px 0; margin: 0; border-top: 1px solid rgba(0, 0, 0, 0.06); font-size: 16px; line-height: 1.5; }
.gg-reading .entry-content section[aria-label="관련 글"] li:first-child { border-top: 0; }
.gg-reading .entry-content section[aria-label="관련 글"] a { color: var(--gg-ink); text-decoration: none; font-weight: 600; }

/* 표 */
.gg .gg-table { overflow-x: auto; margin: 1.8em 0; -webkit-overflow-scrolling: touch; border: 1px solid var(--gg-hairline); border-radius: var(--gg-r-md); }
.gg .gg-table table { width: 100%; min-width: 520px; border-collapse: collapse; margin: 0; border: 0; font-size: 15px; line-height: 1.6; }
.gg .gg-table th {
	background: var(--gg-th-bg);
	color: var(--gg-ink);
	font-weight: 600;
	text-align: left;
	padding: 12px 15px;
	border: 0;
	border-bottom: 1px solid var(--gg-hairline);
	white-space: nowrap;
}
.gg .gg-table td { padding: 12px 15px; border: 0; border-bottom: 1px solid var(--gg-hairline); color: var(--gg-ink); vertical-align: top; }
.gg .gg-table tr:last-child td { border-bottom: 0; }

/* 티어표(Modern Tiermaker): 한 줄 8칸 격자라 720px 읽기 폭에서는 카드가 65px로 눌린다 — 표만 본문 밖으로 펼친다.
   transform을 쓰면 표 안의 고정 위치 모달이 어긋나므로 margin으로만 펼친다. */
.gg-reading .entry-content .tm-front {
	width: min(1200px, calc(100vw - 40px));
	max-width: none;
	margin-left: calc(50% - min(600px, 50vw - 20px));
}
@media (max-width: 640px) {
	.gg-reading .entry-content .tm-front { width: 100%; margin-left: 0; }
}

/* 이미지 크게 보기(site.js) */
.gg-zoomable { cursor: zoom-in; }
.gg-lightbox {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: rgba(0, 0, 0, 0.88);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	cursor: zoom-out;
}
.gg-lightbox[hidden] { display: none; }
.gg-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 0; }
.gg-lightbox__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: rgba(210, 210, 215, 0.64);
	color: #1d1d1f;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

/* 저자 박스 */
.gg-author {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	background: var(--gg-parchment);
	border-radius: var(--gg-r-lg);
	padding: 24px;
	margin: 48px 0 24px;
}
.gg-author__avatar { width: 56px; height: 56px; border-radius: 50%; flex: none; }
.gg-author p { margin: 0; }
.gg-author__name { font-size: 17px; font-weight: 700; line-height: 1.4; }
.gg-author__name a { color: var(--gg-ink); text-decoration: none; }
.gg-author__bio { font-size: 15px; line-height: 1.65; color: var(--gg-ink-2); margin-top: 4px !important; }

/* GP 글 하단 메타(분류·이전/다음 글) */
.gg-reading footer.entry-meta { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--gg-hairline); font-size: 15px; color: var(--gg-muted); }
.gg-reading footer.entry-meta a { color: var(--gg-ink); font-weight: 600; text-decoration: none; }
.gg-reading .post-navigation { display: grid; gap: 12px; margin-top: 16px; }
.gg-reading .post-navigation .nav-previous,
.gg-reading .post-navigation .nav-next {
	border: 1px solid var(--gg-hairline);
	border-radius: var(--gg-r-md);
	padding: 14px 18px;
	line-height: 1.5;
}
.gg-reading .post-navigation .nav-next { text-align: right; }
.gg-reading .post-navigation .prev::before { content: "이전 글"; display: block; font-size: 13px; color: var(--gg-muted); font-weight: 400; margin-bottom: 2px; }
.gg-reading .post-navigation .next::before { content: "다음 글"; display: block; font-size: 13px; color: var(--gg-muted); font-weight: 400; margin-bottom: 2px; }
.gg-reading .post-navigation .gp-icon { display: none; }

/* 같은 분류의 다른 글 — 읽기 폭보다 넓게 펼친다 */
.gg-more {
	width: min(1080px, calc(100vw - 40px));
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	margin-top: 56px;
	padding-top: 40px;
	border-top: 1px solid var(--gg-hairline);
}

/* 댓글 */
.gg .comments-area { margin-top: 56px; }
.gg .comment-reply-title,
.gg .comments-title { font-size: 21px; font-weight: 700; }
.gg .comment-form textarea,
.gg .comment-form input[type="text"],
.gg .comment-form input[type="email"],
.gg .comment-form input[type="url"] {
	background: var(--gg-canvas);
	border: 1px solid rgba(0, 0, 0, 0.14);
	border-radius: var(--gg-r-md);
	padding: 12px 14px;
	font-size: 16px;
	color: var(--gg-ink);
}
.gg .comment-form textarea:focus,
.gg .comment-form input:focus { border-color: var(--gg-primary-focus); outline: none; }
.gg .comment-form label { font-size: 14px; color: var(--gg-ink-2); }

/* ---------- 섹션 머리·카드·그리드 ---------- */
.gg-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.gg-section-head h2 { font-size: 28px !important; line-height: 1.3; font-weight: 700; letter-spacing: -0.5px; margin: 0 !important; }
.gg-section-head a { font-size: 15px; font-weight: 600; color: var(--gg-primary); text-decoration: none; white-space: nowrap; }

.gg-grid { display: grid; gap: 40px 24px; }
.gg-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.gg-card { display: flex; flex-direction: column; min-width: 0; }
/* 자동 발행 대표 이미지가 1536×1024(3:2)라 같은 비율로 잘라 썸네일 속 문구가 잘리지 않게 한다 */
.gg-card__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--gg-r-md); background: var(--gg-parchment); margin-bottom: 14px; }
.gg-card__media--empty { display: flex; align-items: flex-end; padding: 18px 20px; background: var(--gg-tile-dark); text-decoration: none !important; }
.gg-card__media--empty span { color: var(--gg-on-dark); font-size: 21px; font-weight: 700; letter-spacing: -0.3px; line-height: 1.3; }
.gg-tile--parchment .gg-card__media--empty { background: var(--gg-tile-dark-2); }
.gg-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; }
/* 사용자 정의 추가 CSS의 img.wp-post-image{max-width:240px;width:auto}를 카드·대표 이미지에서만 무효화 */
.gg .gg-card__media img.wp-post-image { max-width: 100%; max-height: none; width: 100%; height: 100%; }
.gg .gg-hero-image img.wp-post-image { max-width: 100%; max-height: none; width: 100%; height: auto; }
.gg-card__body { display: flex; flex-direction: column; gap: 6px; }
.gg-card__cat { font-size: 13px; font-weight: 600; color: var(--gg-primary) !important; text-decoration: none; line-height: 1.4; }
.gg-card__title { font-size: 19px !important; line-height: 1.45 !important; font-weight: 700; letter-spacing: -0.3px; margin: 0 !important; }
.gg-card__title a {
	color: var(--gg-ink) !important;
	text-decoration: none !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.gg-card__excerpt {
	font-size: 15px;
	line-height: 1.6;
	color: var(--gg-ink-2);
	margin: 0 !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.gg-card__meta { font-size: 13px; color: var(--gg-muted); margin: 2px 0 0 !important; display: flex; gap: 6px; font-variant-numeric: tabular-nums; }
.gg-card:active .gg-card__media img { transform: scale(0.98); }

/* ---------- 목록 페이지 ---------- */
.gg-listing .content-area { width: 100%; }
.gg-listing .site-main { max-width: var(--gg-wrap); margin: 0 auto; }
.gg-listing .page-header { margin-bottom: 24px; }
.gg-listing .page-header h1,
.gg-listing .page-title { font-size: 40px; line-height: 1.25; font-weight: 700; letter-spacing: -0.6px; margin: 0; }
.gg-listing .taxonomy-description p { font-size: 17px; color: var(--gg-ink-2); margin: 10px 0 0; }
.gg-archive-count { font-size: 15px; color: var(--gg-muted); margin: 8px 0 0; }
.gg-listing .paging-navigation { margin-top: 56px; padding: 0; }
.gg-listing .paging-navigation .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.gg-listing .paging-navigation .page-numbers {
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--gg-r-pill);
	color: var(--gg-ink);
	text-decoration: none;
	font-size: 15px;
}
.gg-listing .paging-navigation .page-numbers.current { background: var(--gg-ink); color: #fff; }
.gg-listing .paging-navigation .gp-icon { display: none; }

/* 분류 칩 */
.gg-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 36px; }
.gg-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 38px;
	padding: 0 16px;
	border-radius: var(--gg-r-pill);
	background: var(--gg-canvas);
	border: 1px solid var(--gg-hairline);
	color: var(--gg-ink) !important;
	font-size: 15px;
	text-decoration: none !important;
	transition: transform 0.15s ease;
	white-space: nowrap;
}
.gg-chip span { color: var(--gg-muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.gg-chip.is-current { background: var(--gg-ink); border-color: var(--gg-ink); color: #fff !important; }
.gg-chip.is-current span { color: var(--gg-on-dark-2); }
.gg-chip:active { transform: scale(0.95); }

/* 404·검색 결과 없음 */
.error404.gg .inside-article { max-width: var(--gg-read); margin: 0 auto 24px; text-align: center; }
.error404.gg .entry-title { font-size: 34px; font-weight: 700; }
.error404.gg .site-main { max-width: var(--gg-wrap); margin: 0 auto; }
.gg .no-results .search-form { display: flex; gap: 8px; max-width: 560px; }
.gg .search-form .search-field { height: 48px; border-radius: var(--gg-r-pill); padding: 0 20px; border: 1px solid rgba(0, 0, 0, 0.12); flex: 1; }

/* ---------- 홈 ---------- */
.home.gg .site.grid-container { max-width: none; padding: 0; }
.home.gg .site-content { display: block; padding: 0; }
.gg-front { width: 100%; }
.gg-wrap { max-width: var(--gg-wrap); margin: 0 auto; padding: 0 var(--gg-gutter); }
.gg-tile { padding: 72px 0; background: var(--gg-canvas); }
.gg-tile--parchment { background: var(--gg-parchment); }
.gg-tile--dark { background: var(--gg-tile-dark); color: var(--gg-on-dark); }
.gg-tile--dark .gg-section-head h2 { color: var(--gg-on-dark); }

.gg-hero { background: var(--gg-parchment); padding: 88px 0 64px; }
.gg-eyebrow { font-size: 17px; font-weight: 600; color: var(--gg-primary); margin: 0 0 12px; }
.gg-hero__title { font-size: 52px; line-height: 1.18; font-weight: 700; letter-spacing: -1.2px; margin: 0; color: var(--gg-ink); }
.gg-hero__lead { font-size: 20px; line-height: 1.6; color: var(--gg-ink-2); margin: 20px 0 0; max-width: 640px; }
.gg-hero__search { max-width: 560px; margin-top: 32px; }
.gg-hero .gg-chips { margin: 20px 0 0; }

.gg-picks { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px 40px; }
.gg-picks .gg-card--lg { grid-row: span 3; }
.gg-picks .gg-card--lg .gg-card__title { font-size: 26px !important; line-height: 1.35 !important; }
.gg-picks .gg-card--lg .gg-card__excerpt { -webkit-line-clamp: 3; font-size: 16px; }
.gg-picks .gg-card--md { flex-direction: row; gap: 18px; align-items: flex-start; }
.gg-picks .gg-card--md .gg-card__media { flex: none; width: 168px; aspect-ratio: 4 / 3; margin: 0; }
.gg-picks .gg-card--md .gg-card__title { font-size: 17px !important; }
.gg-picks .gg-card--md .gg-card__media--empty { padding: 12px 14px; }
.gg-picks .gg-card--md .gg-card__media--empty span { font-size: 15px; }
.gg-picks .gg-card--md .gg-card__excerpt { display: none; }

.gg-project {
	display: flex;
	flex-direction: column;
	gap: 10px;
	background: var(--gg-tile-dark-2);
	border-radius: var(--gg-r-lg);
	padding: 28px;
	text-decoration: none !important;
	min-height: 240px;
	transition: transform 0.15s ease;
}
.gg-project:active { transform: scale(0.98); }
.gg-project__tech { font-size: 13px; color: var(--gg-on-dark-2); }
.gg-project__name { font-size: 26px; font-weight: 700; letter-spacing: -0.4px; color: var(--gg-on-dark); line-height: 1.25; }
.gg-project__desc { font-size: 16px; line-height: 1.6; color: #cccccc; flex: 1; }
.gg-project__more { font-size: 15px; font-weight: 600; color: var(--gg-primary-on-dark); }

.gg-topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.gg-topic { min-width: 0; border: 1px solid var(--gg-hairline); border-radius: var(--gg-r-lg); padding: 24px 26px 12px; }
.gg-topic__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.gg-topic__head h3 { font-size: 21px !important; font-weight: 700; margin: 0 !important; }
.gg-topic__head h3 a { color: var(--gg-ink) !important; text-decoration: none !important; }
.gg-topic__all { font-size: 14px; font-weight: 600; text-decoration: none !important; }
.gg-topic__list { list-style: none; margin: 0; padding: 0; }
.gg-topic__list li { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-top: 1px solid rgba(0, 0, 0, 0.06); font-size: 16px; line-height: 1.5; }
.gg-topic__list li:first-child { border-top: 0; }
.gg-topic__list a { min-width: 0; color: var(--gg-ink) !important; text-decoration: none !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gg-topic__list time { flex: none; font-size: 13px; color: var(--gg-muted); font-variant-numeric: tabular-nums; padding-top: 2px; }

.gg-about { display: flex; gap: 28px; align-items: flex-start; }
.gg-about img { width: 80px; height: 80px; border-radius: 50%; flex: none; }
.gg-about h2 { font-size: 28px; font-weight: 700; letter-spacing: -0.5px; margin: 0 0 10px; }
.gg-about p { font-size: 17px; color: var(--gg-ink-2); margin: 0; max-width: 640px; }
.gg-about__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px !important; }

/* ---------- 푸터 ---------- */
.gg .site-footer { background: var(--gg-parchment); }
.gg .site-footer .footer-widgets { display: none; }
.gg-footer { border-top: 1px solid rgba(0, 0, 0, 0.06); }
.home.gg .gg-footer { border-top: 0; }
.gg-footer__inner {
	max-width: var(--gg-wrap);
	margin: 0 auto;
	padding: 56px var(--gg-gutter) 24px;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 32px;
}
.gg-footer p { margin: 0; font-size: 14px; line-height: 1.6; color: #333336; }
.gg-footer__name { font-size: 17px !important; font-weight: 700; color: var(--gg-ink) !important; margin-bottom: 8px !important; }
.gg-footer__head { font-weight: 600; color: var(--gg-ink) !important; margin-bottom: 6px !important; }
.gg-footer ul { list-style: none; margin: 0; padding: 0; }
.gg-footer li a { font-size: 14px; line-height: 2.2; color: #333336; text-decoration: none; }
.gg .site-info { background: var(--gg-parchment); color: var(--gg-muted); font-size: 12px; }
.gg .site-info .inside-site-info { border-top: 1px solid rgba(0, 0, 0, 0.08); padding: 18px var(--gg-gutter) 28px; max-width: var(--gg-wrap); margin: 0 auto; justify-content: flex-start; }

/* 읽기 진행 막대 */
.gg-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; background: var(--gg-primary); transform-origin: 0 50%; transform: scaleX(0); z-index: 1000; pointer-events: none; }
.admin-bar .gg-progress { top: 32px; }

/* ---------- 반응형 ---------- */
@media (max-width: 1068px) {
	.gg-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.gg-hero__title { font-size: 40px; }
	.gg-picks { grid-template-columns: 1fr; }
	.gg-picks .gg-card--lg { grid-row: auto; }
}
@media (max-width: 833px) {
	.gg-topics { grid-template-columns: minmax(0, 1fr); }
	.gg-footer__inner { grid-template-columns: 1fr 1fr; }
	.gg-footer__brand { grid-column: 1 / -1; }
	.gg .main-navigation .main-nav ul li a { line-height: 1.5; padding: 12px 20px; }
	.gg .main-navigation.toggled .main-nav > ul { background: var(--gg-canvas); border-top: 1px solid var(--gg-hairline); }
	.gg .main-navigation ul ul { border: 0; border-radius: 0; width: auto; padding: 0 0 0 12px; }
}
@media (max-width: 768px) {
	.gg .inside-header { padding: 0 16px; }
}
@media (max-width: 640px) {
	body.gg { font-size: 16px; }
	.gg .site-content { padding: 24px 16px 56px; }
	.home.gg .site-content { padding: 0; }
	.gg-wrap { padding: 0 16px; }
	.gg-grid--3 { grid-template-columns: 1fr; gap: 32px; }
	.gg-tile { padding: 48px 0; }
	.gg-hero { padding: 48px 0 40px; }
	.gg-hero__title { font-size: 32px; letter-spacing: -0.8px; }
	.gg-hero__lead { font-size: 17px; }
	.gg-section-head h2 { font-size: 23px !important; }
	.gg-reading .entry-title { font-size: 28px; letter-spacing: -0.5px; }
	.gg-reading .entry-content { font-size: 17px; }
	.gg-reading .entry-content h2:not(.tm-front *):not(.tm-modal *) { font-size: 22px; }
	.gg-reading .entry-content h3:not(.tm-front *):not(.tm-modal *) { font-size: 19px; }
	.gg-listing .page-header h1,
	.gg-listing .page-title { font-size: 30px; }
	.gg-picks .gg-card--md .gg-card__media { width: 112px; }
	.gg-picks .gg-card--lg .gg-card__title { font-size: 22px !important; }
	.gg .gg-toc, .gg .gg-summary { padding: 18px 18px 12px; }
	.gg-author { padding: 20px; gap: 14px; }
	.gg-about { flex-direction: column; gap: 16px; }
	.gg-footer__inner { padding-top: 40px; }
	.gg-chips,
	.gg-hero .gg-chips { flex-wrap: nowrap; overflow-x: auto; margin-left: -16px; margin-right: -16px; padding: 0 16px 4px; scrollbar-width: none; }
	.gg-chips::-webkit-scrollbar { display: none; }
	.gg .gg-search-form button { padding: 0 18px; }
	.gg-more { width: 100%; left: 0; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	.gg *, .gg *::before { transition: none !important; }
}

/* Tier-list reasons rendered as page text (inc/tier-reasons.php). Class-based, no inline styles per item. */
.ggs-tier-reasons { margin-top: 2.5rem; }
.ggs-tier-reasons .ggs-tier-review { margin: 0 0 1rem; padding: 14px 16px; background: #f9f9f9; border-radius: 8px; }
.ggs-tier-reasons .ggs-tier-review h4 { margin: 0 0 8px; font-size: 1.02em; }
.ggs-tier-reasons .ggs-tier-review p { margin: 0; color: #333; }
