@charset "utf-8";

/* 방과후 쯔꾸르 활동 — CSS refactor, 2026-10-12
 * Fonts / Variables → Reset → Navigation / Notice → Layout / Covers
 * → Post List / Article / Comments → Custom Components / Theme
 * → Tablet / Mobile → Tistory Editor Compatibility.
 * Existing cover and color-theme variants are retained.
 * Editor color reconciliation intentionally comes last for cascade compatibility.
 */

/* Web Font Load */
@import url('https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/static/pretendard.css');
@import url('https://cdn.jsdelivr.net/npm/galmuri@latest/dist/galmuri.css');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&display=swap');

:root {
  --color-primary: #346DA7;
  --color-primary-dark: #030A75;
  --color-accent: #6BC0E7;
  --color-highlight: #FFD700;
  --color-text: #333;
  --color-heading: #172033;
  --color-border: #ddd;
  --color-surface: #fff;
  --color-surface-muted: #fafafa;
  --color-link: #0070d1;
  --color-muted: #666;
  --font-body: Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
  --font-pixel: "Galmuri11", "Galmuri", monospace;
  --font-code: "JetBrains Mono", Consolas, "SFMono-Regular", monospace;
}
body.dark-mode {
  --color-text: #e0e0e0;
  --color-heading: #f1f1f1;
  --color-border: #444;
  --color-surface: #1a1a1a;
  --color-surface-muted: #252525;
  --color-link: #8bcdf1;
  --color-muted: #b3b3b3;
  color-scheme: dark;
}


/* Type Selector Reset */
body {
  font-weight: 400;
  font-family: var(--font-body);
  font-size: 1em;
  line-height: 1.25;
  -webkit-text-size-adjust: 100%;
}

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  font-size: 100%;
}

div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td, figure {
  margin: 0;
  padding: 0;
}

header, footer, section, article, aside, nav, hgroup, details, menu, figure, figcaption {
  display: block;
}

button, input[type=submit], input[type=reset], input[type=button] {
  overflow: visible;
  cursor: pointer;
}

input[type=text], input[type=email], input[type=password], input[type=submit], textarea {
  -webkit-appearance: none;
}

input, select, textarea, button {
  font-family: var(--font-body);
  font-size: 100%;
  border-radius: 0;
}

button {
  overflow: visible;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

ul li {
  list-style: none;
}

img, fieldset {
  border: none;
  vertical-align: top;
}

hr {
  display: none;
}

.category-icon img {
  width: 50px;
  height: 50px;
  margin-right: 5px;
  vertical-align: middle;
}

.category-bar {
  display: flex;
  justify-content: space-around;
  list-style: none;
  padding: 10px 0;
  font-family: var(--font-pixel);
  background: linear-gradient(to bottom, var(--color-primary), var(--color-primary-dark));
  border: 6px solid #fff;        /* 흰색 테두리 */
  border-radius: 20px;
  box-shadow: 0 0 0 2px #000, inset 0 0 0 2px #000;
  position: relative;
}

.category-bar li {
  margin: 0 10px;
}

.category-bar a {
  position: relative;
  color: #fff;
  text-decoration: none;
  font-size: 17px;
  transition: background-color 0.2s ease-in-out;
}

.category-bar a:hover,
.category-bar a:focus-visible,
.category-bar a:active {
  background-color: #94ccc980;
}

.lnb {
  /* JS로 제어하므로 원본 lnb는 숨김 처리 */
  display: none;
}

/* Shared submenu bar; source .lnb elements must remain in HTML. */
#gnb-sub-bar {
  /* 추가 */
  position: absolute;
  left: 0;
  right: 0;
  z-index: 100;

  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.35s ease, opacity 0.25s ease;
  background-color: #1a1a1a;
  border-radius: 0 0 14px 14px;
  font-family: var(--font-pixel);
}

#gnb-sub-bar.active {
  max-height: 300px;
  opacity: 1;
}

#gnb-sub-bar ul {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 10px 0;
  gap: 0;
}

/* 각 카테고리 그룹 컬럼 */
#gnb-sub-bar ul .sub-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 24px;
  border-right: 1px solid rgba(255,255,255,0.1);
}

#gnb-sub-bar ul .sub-group:last-child {
  border-right: none;
}

#gnb-sub-bar ul li a {
  display: block;
  padding: 5px 10px;
  color: #bbb;
  text-decoration: none;
  font-size: 13px;
  transition: color 0.2s;
  white-space: nowrap;
  text-align: center;
}

#gnb-sub-bar ul li a:hover {
  color: var(--color-highlight);
  font-weight: bold;
}

/* 06 Notice: keep row height at 40px; existing JS advances by 40px. */
.notice {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
  padding: 0 16px;
  height: 40px;
  background: #2a2a2a;
  overflow: hidden;
  font-family: var(--font-pixel);
}
.notice-label { font-size: 12px; color: #aaa; white-space: nowrap; flex-shrink: 0; }
.notice-slider {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  height: 40px;
  transition: transform 0.5s ease;
}
.notice-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 40px;
  flex-shrink: 0;
  min-width: 0;
  overflow: hidden;
}
.notice-item a {
  flex: 1;
  min-width: 0;
  text-decoration: none;
  color: #ddd;
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.notice-item a:hover { color: #fff; }
.notice-date { font-size: 11px; color: #aaa; flex-shrink: 0; margin-left: 12px; }

/* Legacy skin navigation is superseded by the custom navigation. */
#header .mobile-menu, #header .menu, #gnb { display: none !important; }

/* Accessibility Navigation */
#acc-nav {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  height: 0;
}

#acc-nav a {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin-left: -1px;
  margin-bottom: -1px;
  text-align: center;
  font-weight: bold;
  font-size: 0.875em;
  color: #000;
  white-space: nowrap;
}

#acc-nav a:focus, #acc-nav a:hover, #acc-nav a:active {
  width: 100%;
  height: auto;
  padding: 10px 0;
  background: #000;
  color: #fff;
  z-index: 1000;
}

/* Layout Selector */
#header {
  position: relative;
  width: 100%;
}

#header h1 {
    padding: 100px 0;
    text-align: center;
    font-size: 48px;
    line-height: 1;
    color: #1a1a1a;
}

#header h1 a {
    display: inline-block;
    font-family: var(--font-pixel);
    text-decoration: none;
    vertical-align: top;
    color: #ffffff;
    letter-spacing: 4px;      /* 픽셀 폰트는 자간을 살짝 벌리면 더 선명해 보임 */

    /* 이중 테두리: 흰 글자 → 검은 외곽선 → 진한 네이비 그림자 */
    text-shadow:
        /* 검은 외곽선 */
        -2px -2px 0 #000,
         2px -2px 0 #000,
        -2px  2px 0 #000,
         2px  2px 0 #000,
        /* 픽셀 드롭섀도우 */
         4px  4px 0 #00063a;
}


#header .search {
  position: absolute;
  top: 20px;
  right: 19px;
  width: 0;
  padding-right: 40px;
}

#header .search input {
  display: none;
  width: 100%;
  height: 40px;
  padding: 0 10px;
  font-size: 1em;
  line-height: 40px;
  color: #000;
  border: 0;
  box-sizing: border-box;
  background-color: transparent;
}

#header .search button {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  z-index: 10;
  width: 40px;
  height: 40px;
  background: url(./ico_package.png) no-repeat 0 0;
  text-indent: -999em;
  outline: none;
}

#header .search:before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: 20;
  width: 40px;
  height: 40px;
  background: url(./ico_package.png) no-repeat 0 0;
  text-indent: -999em;
  cursor: pointer;
}

#header .search:hover:before {
  background-color: #ebebeb;
}

#header .search.on {
  width: 322px;
  border-bottom: 1px solid #000;
}

#header .search.on input {
  display: block;
  outline: none;
}

#header .search.on button {
  display: block;
}

#header .search.on:before {
  display: none;
}


#content .inner {
  max-width: 960px;
  margin: 0 auto;
}

#content>.inner {
  max-width: 860px;
}

#content .inner:after {
  content: "";
  clear: both;
  display: block;
  height: 0;
  visibility: hidden;
}

#footer {
  position: relative;
  padding: 29px 0;
  border-top: 1px solid #ebebeb;
}

#footer p {
  text-align: center;
  font-size: 0.75em;
  color: #9b9b9b;
}

#footer p a {
  text-decoration: none;
  color: #9b9b9b;
}

#footer .admin {
  color: #666;
}

#footer .admin:before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 15px;
  margin: 0 9px;
  background-color: #b2b2b2;
  vertical-align: middle;
}

#tt-body-index #footer {
  border-top: 0;
}

/* Components */
.social-link a {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-right: 5px;
  text-indent: -999em;
  background-image: url(./ico_package.png);
  background-repeat: no-repeat;
  vertical-align: top;
}

.social-link a:hover {
  background-position-y: -68px;
}

.social-link .pinterest {
  background-position: 0 -50px;
}

.social-link .facebook {
  background-position: -50px -50px;
}

.social-link .twitter {
  background-position: -100px -50px;
}

.social-link .instagram {
  background-position: -150px -50px;
}

.btn, a.btn {
  display: inline-block;
  width: 158px;
  height: 50px;
  border: 1px solid #dcdcdc;
  font-size: 0.875em;
  line-height: 50px;
  color: unset;
}

.btn:hover {
  border-color: #4d4d4d;
}

.cover-thumbnail-list {
  margin: 0 auto -1px;
  padding: 40px 0 56px;
  border-bottom: 1px solid #ebebeb;
}

.cover-thumbnail-list h2 {
  margin-bottom: 26px;
  font-size: 1em;
}

.cover-thumbnail-list ul {
  width: 100%;
}

.cover-thumbnail-list ul li {
  float: left;
  width: 24.0625%;
  margin: 0 0 32px;
  padding-left: 1.25%;
}

.cover-thumbnail-list ul li:nth-child(4n+1) {
  clear: both;
  padding-left: 0;
}

.cover-thumbnail-list ul li a {
  display: block;
  text-decoration: none;
  color: #080808;
}

.cover-thumbnail-list ul li .thum {
  display: block;
  position: relative;
  overflow: hidden;
  height: 0;
  margin-bottom: 11px;
  padding-bottom: 75.757575757575758%;
  background-color: #f6f6f6;
}

.cover-thumbnail-list ul li .thum:before {
  content: "NO IMAGE";
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 18px;
  margin: -9px 0 0 0;
  text-align: center;
  font-family: 'Arial';
  font-weight: bold;
  font-size: 0.875em;
  color: #cbcbcb;
}

.cover-thumbnail-list ul li .thum img {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
}

.cover-thumbnail-list ul li .category {
  display: inline-block;
  margin-bottom: 8px;
  border-bottom: 1px solid #a3a3a3;
  font-family: var(--font-pixel);
  font-size: 0.875em;
  color: #808080;
}

.cover-thumbnail-list ul li .title {
  display: block;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: 2.75em;
  padding-right: 10%;
  font-weight: 700;
  line-height: 1.375em;
}

.cover-thumbnail-list ul li a:hover .title {
  text-decoration: underline;
  color: var(--color-accent);
}

.cover-thumbnail-list ul li .date {
  display: block;
  font-size: 0.8125em;
  color: #999;
}

.cover-slider {
  position: relative;
  overflow: hidden;
  width: 100%;
  background-color: #000;
}

.cover-slider ul li {
  display: table;
  width: 100%;
  height: 460px;
  text-align: center;
  background-position: 50% 50%;
  background-size: cover;
}

.cover-slider ul li a {
  display: table-cell;
  background-color: rgba(0, 0, 0, 0.25);
  text-decoration: none;
  color: #fff;
  vertical-align: middle;
}

.cover-slider ul li .category {
  display: inline-block;
  margin-bottom: 16px;
  border-bottom: 1px solid #fff;
}

.cover-slider ul li .title {
  display: block;
  max-width: 580px;
  margin: 0 auto 28px;
  font-size: 2.5em;
  line-height: 1.3;
}

.cover-slider ul li .btn {
  border-color: #fff;
  color: #fff;
}

.cover-slider ul li .btn:hover {
  background-color: #fff;
  color: #000;
}

.cover-slider .prev,
.cover-slider .next {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 20;
  width: 70px;
  height: 70px;
  margin: -25px 0 0 0;
  background: url(./ico_package.png) no-repeat 0 -250px;
  text-indent: -999em;
}

.cover-slider .prev {
  margin-left: -506px;
  background-position: 0 -250px;
}

.cover-slider .next {
  margin-left: 436px;
  background-position: -100px -250px;
}

.cover-slider .prev:hover,
.cover-slider .next:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

.cover-masonry {
  margin-bottom: -1px;
  padding: 60px 0 49px;
  border-bottom: 1px solid #ebebeb;
}

.cover-masonry h2 {
  margin-bottom: 30px;
  font-size: 1em;
}

.cover-masonry ul {
  display: inline-block;
  margin-left: -42px;
  vertical-align: top;
}

.cover-masonry ul li {
  float: left;
  width: 33.3333%;
  margin: 0 0 37px;
  padding-left: 42px;
  box-sizing: border-box;
}

.cover-masonry ul li a {
  display: block;
  text-decoration: none;
  color: #080808;
}

.cover-masonry ul li .thum {
  display: block;
  margin-bottom: 11px;
}

.cover-masonry ul li .thum img {
  width: 100%;
  height: auto;
}

.cover-masonry ul li .category {
  display: inline-block;
  margin-bottom: 7px;
  border-bottom: 1px solid #a3a3a3;
  font-family: var(--font-pixel);
  font-size: 0.875em;
  color: #808080;
}

.cover-masonry ul li .title {
  display: block;
  font-weight: 700;
  font-size: 1.125em;
  line-height: 1.4444;
}

.cover-masonry ul li a:hover .title {
  text-decoration: underline;
  color: var(--color-accent);
}

.cover-masonry ul li .excerpt {
  display: block;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: 6.4em;
  font-size: 0.9375em;
  line-height: 1.6;
  color: #666;
}

.cover-list {
  margin-bottom: -1px;
  padding: 30px 0 60px;
  border-bottom: 1px solid #ebebeb;
}

.cover-list h2 {
  margin: 30px 0 0 0;
  font-size: 1em;
}

.cover-list ul li {
  border-top: 1px solid #ebebeb;
}

.cover-list ul li:first-child {
  border-top: 0;
}

.cover-list ul li a {
  display: block;
  min-height: 172px;
  padding: 30px 0 30px;
  text-decoration: none;
  color: #080808;
}

.cover-list ul li figure {
  float: right;
  position: relative;
  width: 172px;
  height: 172px;
  margin: 0 0 0 80px;
  background-color: #f6f6f6;
}

.cover-list ul li figure:before {
  content: "NO IMAGE";
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 18px;
  margin: -9px 0 0 0;
  text-align: center;
  font-family: 'Arial';
  font-weight: bold;
  font-size: 0.875em;
  color: #cbcbcb;
}

.cover-list ul li figure img {
  position: relative;
  z-index: 10;
  width: 100%;
  height: 100%;
}

.cover-list ul li .category {
  display: inline-block;
  margin-bottom: 7px;
  border-bottom: 1px solid #a3a3a3;
  font-family: var(--font-pixel);
  font-size: 0.875em;
  color: #808080;
}

.cover-list ul li .title {
  display: block;
  font-weight: 700;
  font-size: 1.125em;
  line-height: 1.4444em;
}

.cover-list ul li a:hover .title {
  text-decoration: underline;
  color: #666;
}

.cover-list ul li .excerpt {
  display: block;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: 4.8em;
  font-size: 0.9375em;
  line-height: 1.6;
  color: #666;
}

.cover-list ul li .date {
  display: block;
  font-size: 0.8125em;
  color: #999;
}

.cover-gallery {
  margin: 0 auto -1px;
  padding: 60px 0 75px;
  border-bottom: 1px solid #ebebeb;
}

.cover-gallery h2 {
  margin-bottom: 30px;
  font-size: 1em;
}

.cover-gallery ul {
  display: inline-block;
  margin-left: -12px;
}

.cover-gallery ul li {
  float: left;
  width: 25%;
  margin: 0 0 12px 0;
  padding-left: 12px;
  box-sizing: border-box;
}

.cover-gallery ul li a {
  display: block;
  position: relative;
  width: 100%;
  background-color: #ebebeb;
}

.cover-gallery ul li .title {
  display: block;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 30;
  overflow: hidden;
  width: 100%;
  max-height: 4.2em;
  text-align: center;
  line-height: 1.4;
  padding: 0 20px;
  color: #fff;
  box-sizing: border-box;
  transform: translateY(-50%);
  visibility: hidden;
}

.cover-gallery ul li a:hover .title {
  visibility: visible;
}

.cover-gallery ul li a:hover:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 20;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
}

.cover-gallery ul li a:before {
  content: "NO IMAGE";
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 18px;
  margin: -9px 0 0 0;
  text-align: center;
  font-family: 'Arial';
  font-weight: bold;
  font-size: 0.875em;
  color: #cbcbcb;
}

.cover-gallery ul li figure {
  height: 0;
  padding-bottom: 100%;
}

.cover-gallery ul li figure img {
  position: relative;
  width: 100%;
  height: auto;
  z-index: 10;
}

.cover-footer {
  position: relative;
  z-index: 10;
  text-align: center;
}

.cover-footer .image {
  height: 300px;
  margin-bottom: 80px;
  background-position: 50% 50%;
  background-size: cover;
}

.cover-footer p {
  margin: -5px 0 20px;
  text-align: center;
  font-weight: 700;
  font-size: 1.25em;
  color: #000;
}

.cover-footer .menu ul {
  text-align: center;
}

.cover-footer .menu ul li {
  display: inline-block;
  margin: 40px 0 48px;
  padding: 0 14px;
  font-size: 0.875em;
}

.cover-footer .menu ul li a {
  display: block;
  text-decoration: none;
  color: #282828;
}

.cover-footer .menu ul li a:hover {
  text-decoration: underline;
  color: var(--color-accent);
}

.cover-footer p:first-child {
  margin-top: 76px;
}

.cover-footer .social-link:first-child a {
  margin-top: 80px;
}

.post-header {
  position: relative;
  overflow: hidden;
  max-width: 860px;
  margin: 0 auto 30px;
  padding: 57px 0 15px;
  border-bottom: 1px solid #ebebeb;
}

.post-header h1 {
  float: left;
  font-size: 1em;
}

.post-header .list-type {
  float: right;
}

.post-header .list-type button {
  float: left;
  width: 24px;
  height: 24px;
  margin-left: 4px;
  background-image: url(./ico_package.png);
  background-repeat: no-repeat;
  text-indent: -999em;
  outline: none;
}

.post-header .list-type button:hover {
  background-color: #ebebeb;
}

.post-header .list-type .list {
  background-position: 0 -200px;
}

.post-header .list-type .thum {
  background-position: -100px -200px;
}

.post-header .list-type .list.current {
  background-position: -50px -200px;
}

.post-header .list-type .thum.current {
  background-position: -150px -200px;
}

.post-item {
  overflow: hidden;
  width: 100%;
  border-bottom: 1px solid #ebebeb;
}

.post-item a {
  display: block;
  min-height: auto;
  padding: 15px 0 15px;
  text-decoration: none;
  color: #080808;
}

.post-item a:after {
  content: "";
  display: table;
  clear: both;
}

.post-item:first-child a {
  padding-top: 0;
}

.post-item a:hover .title {
  text-decoration: underline;
  color: var(--color-accent);
}

.post-item .thum {
  float: right;
  overflow: hidden;
  max-width: 206px;
  margin-left: 80px;
}

.post-item .thum img {
  width: 206px;
  height: 156px;
  margin: 0;
  object-fit: cover;
}

.post-item .category {
  display: inline-block;
  margin-bottom: 10px;
  border-bottom: 1px solid #a3a3a3;
  font-family: var(--font-pixel);
  font-size: 0.875em;
  color: #808080;
}

.post-item .title {
  display: block;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: 2.8em;
  font-weight: 700;
  font-size: 1.125em;
  line-height: 1.4;
}

.post-item .excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.post-item .date {
  display: none;
  font-size: 0.8125em;
  color: #999;
}

.post-item .article-tags {
  display: block;
  margin-top: 6px;
  font-size: 0.75em;
  line-height: 1.2;
}

.post-item .article-tags a {
  display: inline-block;
  margin-right: 4px;
  margin-bottom: 3px;
  padding: 2px 6px;
  background-color: #f5f5f5;
  border-radius: 2px;
  text-decoration: none;
  color: #666;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.post-item .article-tags a:hover {
  background-color: var(--color-accent);
  color: #fff;
}

.pagination {
  max-width: 860px;
  margin: 60px auto 160px;
  text-align: center;
}

.pagination .current {
  display: none;
}

.pagination .view-more {
  display: none;
  width: 158px;
  height: 50px;
  border: 1px solid #dcdcdc;
  font-size: 0.875em;
  line-height: 50px;
  color: #000;
}

.pagination .view-more:hover {
  border-color: #4d4d4d;
  background: none;
}

.pagination a {
  display: inline-block;
  width: 32px;
  height: 32px;
  margin: 0 6px;
  text-decoration: none;
  font-size: 0.9375em;
  line-height: 32px;
  color: #b2b2b2;
  vertical-align: middle;
  border: 1px solid #dcdcdc;
  border-radius: 4px;
}

.pagination a:hover {
  background-color: #ebebeb;
}

.pagination .selected {
  background-color: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent);
}

.pagination .prev,
.pagination .next {
  width: 50px;
  height: 50px;
  background-image: url(./ico_package.png);
  background-repeat: no-repeat;
  border: 1px solid #dcdcdc;
  text-indent: -999em;
  vertical-align: middle;
  box-sizing: border-box;
}

.pagination .prev {
  background-position: -50px 0;
}

.pagination .next {
  background-position: -100px 0;
}

.pagination .prev:hover,
.pagination .next:hover {
  background-color: transparent;
  border-color: #4d4d4d;
}

.pagination .no-more-prev,
.pagination .no-more-next {
  display: none;
}

.hgroup {
  max-width: 860px;
  margin: 50px auto 60px;
  padding: 0 0 20px;
  border-bottom: 1px solid #ebebeb;
}

.hgroup .category {
  display: inline-block;
  margin-bottom: 16px;
  padding-top: 5px;
  border-bottom: 1px solid #a3a3a3;
  font-family: var(--font-pixel);
  font-size: 0.875em;
  color: #808080;
}

.hgroup h1 {
  display: block;
  margin-bottom: 9px;
  font-weight: 700;
  font-size: 1.6875em;
  line-height: 1.4444em;
}

.hgroup .post-meta {
  display: block;
  font-size: 0.8125em;
  color: #808080;
}

.hgroup .post-meta a {
  text-decoration: none;
  color: #999;
}

.hgroup .post-meta a:hover {
  text-decoration: underline;
}

.hgroup .post-meta span:before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 10px;
  margin: 0 7px 0 10px;
  background-color: #ebebeb;
  vertical-align: baseline;
}

.hgroup .post-meta span:first-child:before {
  content: none;
}

.another_category {
  margin: 60px auto 80px;
  padding: 0 !important;
  border: 0 !important;
}

.another_category h4 {
  margin-bottom: 28px;
  font-weight: 400;
  font-size: 1em !important;
}

.another_category h4 em {
  border-bottom: 1px solid #000;
  font-style: normal;
}

.another_category table {
  width: 100%;
  border-collapse: collapse;
  border: 0 !important;
  font-size: 0.9375em;
  color: #666;
}

.another_category table th {
  padding: 8px 0 4px;
  border: 0 !important;
  text-align: left;
  font-weight: 400;
}

.another_category table th a {
  text-decoration: none;
  color: #666;
}

.another_category td {
  width: 60px;
  padding: 8px 0 4px;
  border-left: 0 !important;
  border-top: 0 !important;
  font-size: 0.8125em;
  line-height: 1;
  color: #b2b2b2;
}

.tags {
  position: relative;
  overflow: hidden;
  max-width: 860px;
  margin: 53px auto;
  padding: 27px 0 28px 47px;
  border-top: 1px solid #ebebeb;
  border-bottom: 1px solid #ebebeb;
  color: #999;
  box-sizing: border-box;
}

.tags h2 {
  float: left;
  width: 47px;
  margin-left: -47px;
  font-weight: 400;
  font-size: 1em;
  color: #000;
}

.tags .items a {
  display: inline-block;
  margin-left: 15px;
  text-decoration: none;
  font-size: 0.8125em;
  line-height: 1.5384;
  color: #999;
}

.tags .items a:hover {
  color: #7a583a;
}

.tags .items a:before {
  content: "#";
}

.tags .items a.cloud1 {
  font-size: 0.75em;
  color: #999;
}

.tags .items a.cloud2 {
  font-size: 0.85em;
  color: #888;
}

.tags .items a.cloud3 {
  font-size: 1em;
  color: #777;
  font-weight: 600;
}

.tags .items a.cloud4 {
  font-size: 1.15em;
  color: #666;
  font-weight: 700;
}

.tags .items a.cloud5 {
  font-size: 1.3em;
  color: var(--color-accent);
  font-weight: 700;
}

.related-articles {
  overflow: hidden;
  width: 100%;
  margin: 57px 0 69px;
}

.related-articles h2 {
  margin-bottom: 28px;
  font-weight: 400;
  font-size: 1em;
}

.related-articles h2 em {
  border-bottom: 1px solid #000;
  font-style: normal;
}

.related-articles ul li {
  float: left;
  width: 24.0625%;
  padding-left: 1.25%;
}

.related-articles ul li:first-child {
  padding-left: 0;
}

.related-articles ul li a {
  display: block;
  text-decoration: none;
  color: #080808;
}

.related-articles ul li a:hover .title {
  text-decoration: underline;
  color: var(--color-accent);
}

.related-articles ul li .thum {
  display: block;
  position: relative;
  overflow: hidden;
  height: 0;
  margin-bottom: 12px;
  padding-bottom: 75.757575757575758%;
  background-color: #ebebeb;
}

.related-articles ul li .thum:before {
  content: "NO IMAGE";
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 18px;
  margin: -9px 0 0 0;
  text-align: center;
  font-family: 'Arial';
  font-weight: bold;
  font-size: 0.875em;
  color: #cbcbcb;
}

.related-articles ul li .thum img {

  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
}

.related-articles ul li .category {
  display: inline-block;
  margin-bottom: 16px;
  border-bottom: 1px solid #a3a3a3;
  font-family: var(--font-pixel);
  font-size: 0.875em;
  color: #808080;
}

.related-articles ul li .title {
  display: block;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-height: 2.75em;
  margin-bottom: 9px;
  font-weight: 700;
  line-height: 1.375;
}

.related-articles ul li .date {
  display: block;
  font-size: 0.8125em;
  color: #999;
}

/* Thumbnails crop consistently; article screenshots retain their own proportions. */
.cover-thumbnail-list .thum img,
.cover-list figure img,
.related-articles .thum img,
.post-item .thum img { object-fit: cover; }
.cover-gallery ul li figure { position: relative; overflow: hidden; }
.cover-gallery ul li figure img { position: absolute; inset: 0; height: 100%; object-fit: cover; }

/* Entry Content */
.entry-content h1 {
  margin: 2em 0 0.75em;
  font-size: 1.6875em;
}

.entry-content h2 {
  margin: 2em 0 0.75em;
  font-size: 1.5em;
}

.entry-content h3 {
  margin: 2em 0 0.75em;
  font-weight: 700;
  font-size: 1.3125em;
}

.entry-content h4 {
  margin: 2em 0 0.75em;
  font-weight: 400;
  font-size: 1.125em;
}

.entry-content p img {
  max-width: 100%;
  height: auto;
  margin-top: 36px;
}

.entry-content hr {
  display: block;
  height: 0;
  border: 0;
  border-bottom: 1px solid #000;
}

.entry-content pre,
.entry-content pre code.hljs {
  font-family: var(--font-code);
  font-size: 0.9em;
  line-height: 1.6;
  word-break: break-word;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.entry-content pre code.hljs {
  padding: 20px;
}

.entry-content ul,
.entry-content ol {
  margin-bottom: 24px;
}

.entry-content ul {
  list-style: disc inside;
}

.entry-content ul li {
  padding-left: 22px;
  position: relative;
  list-style: inherit;
  text-indent: -22px;
}

.entry-content ol {
  list-style: inside decimal;
}

.entry-content ol li {
  position: relative;
  padding-left: 16px;
  text-indent: -15px;
  list-style: inherit;
}

.entry-content a {
  color: #666;
}

.entry-content img.alignleft {
  float: left;
  margin: 0 22px 22px 0;
}

.entry-content img.aligncenter {
  display: block;
  margin: 0 auto 22px;
}

.entry-content img.alignright {
  float: right;
  margin: 0 0 22px 22px;
}

.entry-content blockquote {
  margin-bottom: 24px;
  padding: 16px 20px;
  border-left: 4px solid #e6e6e6;
}

.entry-content blockquote p {
  margin: 22px 0 0;
}

.entry-content blockquote p:first-child {
  margin-top: 0;
}

.entry-content table {
  width: 100%;
  margin-bottom: 22px;
  border-collapse: collapse;
}

.entry-content table thead th {
  padding: 7px 0 11px;
}

.entry-content table tbody td {
  padding: 7px 0 11px;
}

.entry-content input {
  display: inline-block;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #e6e6e6;
  font-size: 0.875em;
  line-height: 1.25;
  color: #666;
  box-sizing: border-box;
  vertical-align: middle;
}

.entry-content .protected_form {
  margin-bottom: 40px;
  padding: 120px 0 200px;
  border-bottom: 1px solid #7a583a;
  text-align: center;
}

.entry-content .protected_form p:before {
  content: "";
  display: block;
  width: 64px;
  height: 84px;
  margin: 0 auto 30px;
  background: url(./ico_package.png) no-repeat -50px -100px;
}

.entry-content .protected_form input {
  width: 220px;
  height: 50px;
  margin-bottom: 10px;
  background-color: transparent;
  vertical-align: top;
}

.entry-content .cap1 {
  text-align: center;
  font-size: 0.875em;
  font-style: italic;
}

/* Comment */
#tt-body-guestbook .tt-comment-cont {
  max-width: 860px;
  margin: 50px auto;
}

.comments {
  max-width: 860px;
  margin: 0 auto 60px;
  padding-bottom: 30px;
  border-bottom: 1px solid #e6e6e6;
}

.comments h2 {
  font-weight: 400;
  font-size: 1em;
  color: #000;
}

.comments .comment-list {
  font-size: 16px;
  margin-bottom: 6px;
  overflow: hidden;
}

.comments .comment-list ul li {
  padding: 30px 0 25px;
  border-top: 1px solid #e6e6e6;
  position: relative;
  min-height: 48px;
}

.comments .comment-list ul li:first-child {
  border: none;
}

.comments .comment-list ul li ul li {
  padding: 26px 0 0 60px;
  border-top: 0;
  border-bottom: 0;
}

.comments .comment-list ul li .author-meta {
  position: absolute;
  overflow: hidden;
  top: 30px;
  height: 48px;
  left: 0;
  right: 0;
  padding: 4px 0 0 60px;
}

.comments .comment-list ul li ul li .author-meta {
  top: 26px;
  left: 60px;
}

.comments .comment-list ul li .author-meta .avatar {
  position: absolute;
  left: 0;
  top: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
}

.comments .comment-list ul li .author-meta span {
  display: inline-block;
}

.comments .comment-list ul li .author-meta a {
  text-decoration: none;
  color: #000;
}

.comments .comment-list ul li .author-meta .nickname {
  float: left;
  font-size: 0.875em;
  line-height: 20px;
}

.comments .comment-list ul li .author-meta .nickname .tistoryProfileLayerTrigger {
  margin-bottom: 3px;
  margin-right: 0;
  vertical-align: bottom;
}

.comments .comment-list ul li .author-meta .date {
  float: left;
  margin-left: 10px;
  font-size: 0.75em;
  color: #999;
  line-height: 20px;
}

.comments .comment-list ul li .author-meta .date:before,
.comments .comment-list ul li .author-meta .date a:before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 9px;
  margin-right: 10px;
  background-color: #b2b2b2;
}

.comments .comment-list ul li .author-meta .date a {
  margin-left: 10px;
}

.comments .comment-list ul li .control {
  position: absolute;
  top: 33px;
  right: 0;
}

.comments .comment-list ul li ul li .control {
  top: 29px;
}

.comments .comment-list ul li .control a {
  margin: 0 2px;
  text-decoration: none;
  font-size: 12px;
  color: #999;
}

.comments .comment-list ul li p {
  position: relative;
  margin: 29px 0 0 60px;
  font-size: 0.875em;
  line-height: 1.5714;
  color: #666;
}

.comments .comment-form .field {
  position: relative;
  overflow: hidden;
  width: 100%;
  margin-bottom: 8px;
}

.comments .comment-form input[type=text],
.comments .comment-form input[type=password],
.comments .comment-form textarea {
  border: 1px solid #e6e6e6;
  font-size: 0.9375em;
  line-height: 1.25;
  color: #666;
  background-color: transparent;
}

.comments .comment-form input[type=text],
.comments .comment-form input[type=password] {
  width: 140px;
  height: 52px;
  margin-right: 6px;
  padding: 10px;
  box-sizing: border-box;
}

.comments .comment-form input::-webkit-input-placeholder,
.comments .comment-form textarea::-webkit-input-placeholder {
  color: #d6d6d6;
}

.comments .comment-form textarea {
  display: block;
  width: 100%;
  margin-bottom: 10px;
  padding: 10px;
  resize: none;
  box-sizing: border-box;
}

.comments .comment-form .field .secret {
  display: inline-block;
  margin-left: 15px;
  vertical-align: middle;
}

.comments .comment-form .field .secret input {
  display: none;
}

.comments .comment-form .field .secret label {
  font-size: 0.8125em;
  line-height: 52px;
  color: #666;
  outline: none;
  cursor: pointer;
}

.comments .comment-form .field .secret label:before {
  content: "";
  display: inline-block;
  width: 19px;
  height: 18px;
  margin-right: 9px;
  border: 1px solid #e1e1e1;
  vertical-align: middle;
  background-color: #fff;
}

.comments .comment-form .field .secret input[type=checkbox]:checked+label:before {
  background-image: url(./ico_package.png);
  background-repeat: no-repeat;
  background-position: -150px -100px;
}

.comments .comment-form .field .submit {
  float: right;
}


/*custom*/
/* 토글 버튼 고정 위치 */
#theme-toggle-wrap {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 9999;
}

/* 토글 스위치 */
.theme-switch {
  position: relative;
  display: inline-block;
  width: 52px;
  height: 28px;
}

.theme-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.theme-switch .slider {
  position: absolute;
  inset: 0;
  background-color: #ccc;
  border-radius: 28px;
  cursor: pointer;
  transition: background-color 0.3s;
}

.theme-switch .slider::before {
  content: '🌙';
  position: absolute;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  transition: transform 0.3s;
  line-height: 1;
}

.theme-switch input:checked + .slider {
  background-color: var(--color-primary);
}

.theme-switch input:checked + .slider::before {
  content: '☀︎';
  transform: translate(24px, -50%);
}

/* RPG 다이얼로그 */
.rpg-dialog-block {
  margin: 30px 0;
  padding: 16px;
  background-color: #252526;
  font-family: var(--font-pixel);
  border-radius: 4px;
}

.rpg-dialog-line {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 12px;
}

.rpg-dialog-line:last-child {
  margin-bottom: 0;
}

.rpg-dialog-avatar {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 70px;
  gap: 6px;
}

.rpg-dialog-avatar img {
  width: 70px;
  height: 70px;
  object-fit: cover;
  image-rendering: pixelated;
  border-radius: 4px;
}

.rpg-dialog-avatar--empty {
  visibility: hidden;
}

.rpg-dialog-name {
  font-size: 13px;
  color: #42e9ff;
  text-align: center;
  letter-spacing: 1px;
  opacity: 1;
  font-weight: 400;
}

.rpg-dialog-bubble {
  flex: 1;
  align-self: center;
  padding: 12px 10px;
  background-color: #444;
  color: #F1F1F1;
  font-size: 16px;
  line-height: 1.75;
  min-width: 0;
  overflow-wrap: anywhere;
  text-align: left;
  border-radius: 4px;
}


  .entry-content pre,
  #article-view pre {
    position: relative;
    padding-top: 43px !important;
  }

  .code-lang-label {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding: 12px 12px;
    background: #333;
    font-size: 12px;
    color: #aaa;
    font-family: var(--font-code);
  }

  .code-copy-btn {
    position: absolute;
    top: 4px;
    right: 8px;
    padding: 10px 10px;
    background: rgb(32, 229, 255);
    border: 1px solid rgb(85, 85, 85);
    border-radius: 4px;
    font-size: 11px;
    cursor: pointer;
    color: rgb(83, 88, 88);
  }

  .code-copy-btn:hover {
    background: #555;
    color: #fff;
  }


/* ETC */
#dimmed {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 300;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.43);
}

/* Post Type & Color Type */
.post-type-thumbnail .post-item {
  float: left;
  width: 24.0625%;
  margin: 0 0 58px;
  padding-left: 1.25%;
  border: 0;
}

.post-type-thumbnail .post-item:nth-child(4n+1) {
  padding-left: 0;
}

.post-type-thumbnail .post-item a {
  padding: 0;
}

.post-type-thumbnail .post-item .thum {
  display: block;
  position: relative;
  overflow: hidden;
  width: 100%;
  max-width: none;
  height: 0;
  margin: 0 0 9px 0;
  padding-bottom: 75.757575757575758%;
  background-color: #ebebeb;
}

.post-type-thumbnail .post-item .thum:before {
  content: "NO IMAGE";
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 0;
  width: 100%;
  height: 18px;
  margin: -9px 0 0 0;
  text-align: center;
  font-family: 'Arial';
  font-weight: bold;
  font-size: 0.875em;
  color: #cbcbcb;
}

.post-type-thumbnail .post-item .thum img {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
  margin: 0;
}

.post-type-thumbnail .post-item .title {
  display: block;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  width: 100%;
  height: 2.75em;
  font-weight: 700;
  font-size: 1em;
  line-height: 1.375em;
}

.post-type-thumbnail .pagination {
  margin-top: 0;
}

/* Color Type */
.color-chocolate,
.color-chocolate .cover-footer,
.color-chocolate #footer {
  background-color: #f4f2f1;
}

.color-chocolate #header h1 a,
.color-chocolate #footer .admin,
.color-chocolate .cover-thumbnail-list ul li a,
.color-chocolate .cover-masonry ul li a,
.color-chocolate .cover-list ul li a,
.color-chocolate .cover-footer p,
.color-chocolate .cover-footer .menu ul li a,
.color-chocolate .post-item a,
.color-chocolate .hgroup h1,
.color-chocolate .hgroup .post-meta a,
.color-chocolate .entry-content h1,
.color-chocolate .entry-content h2,
.color-chocolate .entry-content h3,
.color-chocolate .entry-content h4,
.color-chocolate .entry-content a,
.color-chocolate .related-articles ul li a,
.color-chocolate .comments .comment-list ul li .author-meta span,
.color-chocolate .comments .comment-list ul li .author-meta .date a,
.color-chocolate .pagination .selected {
  color: var(--color-accent);
}

.color-chocolate #footer p,
.color-chocolate .cover-thumbnail-list ul li .date,
.color-chocolate .cover-masonry ul li .excerpt,
.color-chocolate .cover-list ul li .excerpt,
.color-chocolate .cover-list ul li .date,
.color-chocolate .post-item .excerpt,
.color-chocolate .post-item .date,
.color-chocolate .hgroup .post-meta,
.color-chocolate .another_category td,
.color-chocolate .tags .items a,
.color-chocolate .related-articles ul li .date,
.color-chocolate .comments .comment-list ul li .author-meta .date,
.color-chocolate .comments .comment-list ul li .author-meta .control a {
  color: #a69693;
}

.color-chocolate .cover-thumbnail-list ul li .category,
.color-chocolate .cover-masonry ul li .category,
.color-chocolate .hgroup .category {
  color: #94817e;
}

.color-chocolate .entry-content p,
.color-chocolate .entry-content table,
.color-chocolate .entry-content ul li,
.color-chocolate .entry-content ol li,
.color-chocolate .another_category table,
.color-chocolate .another_category table th a,
.color-chocolate .comments .comment-list ul li p {
  color: #836c68;
}

.color-chocolate .cover-footer .menu ul li a:hover,
.color-chocolate .cover-thumbnail-list ul li a:hover .title,
.color-chocolate .cover-masonry ul li a:hover .title,
.color-chocolate .cover-list ul li a:hover .title,
.color-chocolate .post-item a:hover .title,
.color-chocolate .related-articles ul li a:hover .title {
  color: #2d140f;
}

.color-chocolate .cover-thumbnail-list ul li .category,
.color-chocolate .cover-masonry ul li .category,
.color-chocolate .hgroup .category {
  border-color: #a69693;
}

.color-chocolate .entry-content ul li:before {
  background-color: #a69693;
}


.color-chocolate .pagination a:hover,
.color-chocolate #header .search:hover:before {
  background-color: #e7e2e1;
}

.color-chocolate .btn,
.color-chocolate .cover-thumbnail-list,
.color-chocolate .cover-masonry,
.color-chocolate .cover-list,
.color-chocolate .cover-gallery,
.color-chocolate .cover-list ul li,
.color-chocolate .post-item,
.color-chocolate .hgroup,
.color-chocolate .entry-content table,
.color-chocolate .entry-content table thead th,
.color-chocolate .entry-content table tbody td,
.color-chocolate .entry-content blockquote,
.color-chocolate .comments,
.color-chocolate .comments .comment-list ul li,
.color-chocolate .comments .comment-form input[type=text],
.color-chocolate .comments .comment-form input[type=password],
.color-chocolate .comments .comment-form textarea,
.color-chocolate .comments .comment-form .field .secret label:before,
.color-chocolate .pagination .prev,
.color-chocolate .pagination .next,
.color-chocolate .pagination a {
  border-color: #e7e2e1;
}

.color-chocolate .social-link a,
.color-chocolate #header .search button,
.color-chocolate #header .search:before,
.color-chocolate .cover-thumbnail-list ul li .thum:before,
.color-chocolate .cover-gallery ul li a:before,
.color-chocolate .post-header .list-type button,
.color-chocolate .related-articles ul li .thum:before {
  background-image: url(./ico_package_chocolate.png);
}

.color-chocolate .btn:hover,
.color-chocolate .pagination .prev:hover,
.color-chocolate .pagination .next:hover {
  border-color: #4d4d4d;
}

.color-chocolate #header .search.on {
  border-color: var(--color-accent);
}

.color-chocolate .post-item .article-tags a {
  background-color: #f5ede8;
  color: #5d4b47;
}

.color-chocolate .post-item .article-tags a:hover {
  background-color: var(--color-accent);
  color: #fff;
}

/* 11 Custom Components: Character Intro */
/* ====================================================
 * 캐릭터 소개 섹션
 * ==================================================== */

#character-intro {
  position: relative;
  width: 100%;
  font-family: var(--font-pixel);
}

/* 확장 패널 — 위쪽에 위치, 기본 숨김 */
#char-expand-panel {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.4s ease, opacity 0.3s ease, background-color 0.35s ease;
  background: #3a3a3a;
  box-sizing: border-box;
}

/* 확장 패널 활성화 */
#char-expand-panel.active {
  max-height: 360px;
  opacity: 1;
}

.char-expand-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  padding: 28px 40px;
}

#char-expand-img {
  width: 200px;
  height: 280px;
  object-fit: cover;
  image-rendering: pixelated;
  background: #555;
  flex-shrink: 0;
}

.char-expand-info {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

#char-expand-name {
  font-family: var(--font-pixel);
  font-size: 26px;
  color: #fff;
  margin: 0;
}

#char-expand-desc {
  font-family: var(--font-pixel);
  font-size: 15px;
  color: #f1f1f1;
  text-shadow: 0 1px 2px #000;
  margin: 0;
  line-height: 1.7;
}

/* 캐릭터 아이콘 영역 — 심플 회색, 가운데 정렬 */
.char-intro-inner {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0;
  padding: 16px 24px 0;
  background: #4a4a4a;
  box-sizing: border-box;
  transition: background-color 0.35s ease;
}

/* 팀 그룹 */
.char-team {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 20px;
  border-right: 1px solid rgba(255,255,255,0.15);
}

.char-team:last-child {
  border-right: none;
}

.char-team-label {
  font-family: var(--font-pixel);
  font-size: 11px;
  color: rgba(255,255,255,0.5);
  margin: 0 0 8px 0;
  letter-spacing: 1px;
  text-align: center;
}

/* 팀 내 캐릭터 가로 나열 */
.char-list {
  display: flex;
  gap: 12px;
  align-items: flex-end;
}

/* 개별 캐릭터 카드 */
.char-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  position: relative;
}

/* 얼굴 이미지 래퍼 */
.char-face-wrap {
  width: 56px;
  height: 56px;
  background: #666;
  overflow: hidden;
  transition: transform 0.2s ease;
}

.char-face-wrap img.char-face {
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: pixelated;
  display: block;
}

/* hover 효과 */
.char-card:hover .char-face-wrap {
  transform: translateY(-4px);
  outline: 2px solid #fff;
}


/* 12 Dark Mode */
/* 다크모드 색상 */
body.dark-mode {
  background-color: #1a1a1a;
  color: #e0e0e0;
}

body.dark-mode #header {
  background-color: #111;
}

body.dark-mode #header h1 a {
  color: #e0e0e0;
}


body.dark-mode .post-item,
body.dark-mode .hgroup,
body.dark-mode .entry-content {
  background-color: #1a1a1a;
  color: #e0e0e0;
}

body.dark-mode .entry-content p,
body.dark-mode .entry-content ul li,
body.dark-mode .entry-content ol li {
  color: var(--color-text);
}

body.dark-mode .post-item a,
body.dark-mode .hgroup h1 {
  color: #e0e0e0;
}

body.dark-mode #footer {
  background-color: #111;
  border-color: #333;
}

body.dark-mode #footer p,
body.dark-mode #footer p a {
  color: #666;
}

body.dark-mode .post-item .article-tags a {
  background-color: #2a2a2a;
  color: #aaa;
}

body.dark-mode .post-item .article-tags a:hover {
  background-color: #8a6c5f;
  color: #fff;
}

body.dark-mode .tags .items a {
  color: #999;
}

body.dark-mode .tags .items a.cloud1 {
  color: #888;
}

body.dark-mode .tags .items a.cloud2 {
  color: #999;
}

body.dark-mode .tags .items a.cloud3 {
  color: #aaa;
}

body.dark-mode .tags .items a.cloud4 {
  color: #bbb;
}

body.dark-mode .tags .items a.cloud5 {
  color: #d0a8a0;
}


/* ====================================================
 * 캐릭터 섹션 — 다크모드
 * ==================================================== */

body.dark-mode .char-intro-inner {
  background: #2a2a2a;
}

body.dark-mode #char-expand-panel {
  background: #222;
}

/* Retina Display */
@media only screen and (-webkit-min-device-pixel-ratio:1.5) {

  #header .search button,
  #header .search:before,
  .social-link a,
  .cover-slider .prev,
  .cover-slider .next,
  .cover-gallery ul li a:before,
  .post-header .list-type button,
  .pagination .prev,
  .pagination .next,
  .comments .comment-form .field .secret input[type=checkbox]:checked+label:before {
    background-image: url(./ico_package_2x.png);
    background-size: 200px auto;
  }

  .color-chocolate .social-link a,
  .color-chocolate #header .search button,
  .color-chocolate .cover-gallery ul li a:before,
  .color-chocolate .post-header .list-type button {
    background-image: url(./ico_package_chocolate_2x.png);
    background-size: 200px auto;
  }
}

/* Media Screen - Tablet */
@media screen and (max-width:1023px) {
  #header .search.on {
    width: 180px;
  }

  #content .guest_inner,
  #content>.inner {
    padding: 0 40px;
  }

  .post-header {
    padding: 40px;
  }

  .cover-thumbnail-list {
    padding: 40px 40px 65px;
  }

  .cover-slider ul li .title {
    max-width: none;
    padding: 0 98px
  }

  .cover-slider .prev {
    left: 14px;
    margin-left: 0;
  }

  .cover-slider .next {
    left: auto;
    right: 14px;
    margin-left: 0;
  }

  .cover-masonry {
    padding: 60px 40px 81px;
  }

  .cover-list {
    padding: 30px 40px 85px;
  }

  .cover-gallery {
    padding: 60px 40px 130px;
  }
}

/* Media Screen - Mobie */
@media screen and (max-width:767px) {


  #header h1 {
    padding: 20px 62px;
    font-size: 24px;
    line-height: 1.25;
  }

  #header h1 a {
    font-size: 22px;
    letter-spacing: 2px;
  }

  #header .search {
    top: 10px;
    right: 1px;
  }

  #header .search.on {
    position: absolute;
    top: 60px;
    left: 0;
    right: auto;
    z-index: 100;
    width: 100%;
    padding: 10px 18px 10px 17px;
    border: 0;
    background-color: #fff;
    box-sizing: border-box;
  }

  #header .search.on input {
    border-bottom: 1px solid #000;
  }

  #header .search.on button {
    top: -50px;
    right: 1px;
  }

  #content .guest_inner,
  #content>.inner {
    padding: 0 18px;
  }

  .post-header {
    padding: 20px 18px;
  }

  .cover-thumbnail-list {
    padding: 40px 18px 65px;
  }

  .cover-thumbnail-list ul li,
  .related-articles ul li {
    width: 48.591549295774648%;
    padding-left: 2.816901408450704%;
  }

  .cover-thumbnail-list ul li:nth-child(odd),
  .related-articles ul li:nth-child(odd) {
    clear: both;
    padding-left: 0;
  }

  .cover-slider ul li {
    width: 100%;
    box-sizing: border-box;
  }

  .cover-slider ul li .title {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 5.2em;
    padding: 0 18px;
    font-size: 2.125em;
  }

  .cover-slider .prev {
    top: auto;
    bottom: 0;
    left: 0;
  }

  .cover-slider .next {
    top: auto;
    right: 0;
    bottom: 0;
  }

  .cover-masonry {
    padding: 60px 18px 81px;
  }

  .cover-masonry ul li {
    float: none;
    width: 100%;
  }

  .cover-masonry ul li .category,
  .cover-list ul li .category {
    margin-bottom: 8px;
  }

  .cover-thumbnail-list ul li .title,
  .related-articles ul li .title,
  .cover-list ul li .title {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 4.2em;
    line-height: 1.4;
  }

  .cover-list {
    padding: 30px 18px 80px;
  }

  .cover-list h2 {
    margin: 30px 0 0 0;
  }

  .cover-list ul li a {
    min-height: 98px;
  }

  .cover-list ul li figure {
    width: 113px;
    height: 113px;
    margin: 0 0 0 18px;
  }

  .cover-list ul li .title {
    -webkit-line-clamp: 2;
    margin-bottom: 3px;
    padding-top: 6px;
    font-size: 1em;
  }

  .cover-list ul li .category {
    display: none;
  }

  .cover-list ul li .excerpt {
    -webkit-line-clamp: 2;
    font-size: 0.8125em;
    line-height: 1.5;
  }

  .cover-gallery {
    padding: 60px 18px 130px;
  }

  .cover-gallery ul li {
    width: 50%;
  }

  .post-item a {
    min-height: 120px;
  }

  .post-item .thum {
    max-width: 160px;
    margin-left: 18px;
  }

  .post-item .thum img {
    width: 160px;
    height: 121px;
    margin: 0;
    object-fit: cover;
  }

  .post-item .title {
    line-height: 1.2;
  }

.post-item .article-tags {
    /* 부모 a의 min-height 영향에서 벗어나도록 */
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
  }

  .post-item .article-tags a {
    /* min-height 상속 차단 */
    min-height: 0 !important;
    height: auto !important;
    line-height: 1.4;
    display: inline-flex;
    align-items: center;
    padding: 3px 7px;
    font-size: 0.7em;
    margin: 0;
    white-space: nowrap;
    flex-shrink: 0;
  }

  .post-type-thumbnail .post-item {
    width: 48.591549295774648%;
    margin-bottom: 26px;
    padding-left: 2.816901408450704%;
  }

  .post-type-thumbnail .post-item:nth-child(4n+1) {
    padding-left: 2.816901408450704%;
  }

  .post-type-thumbnail .post-item:nth-child(2n+1) {
    clear: both;
    padding-left: 0%;
  }

  .post-type-thumbnail .post-item .title {
    -webkit-line-clamp: 3;
    height: auto;
    max-height: 4.125em;
  }

  .entry-content .table-wrap {
    overflow: auto;
    width: 100%;
  }

  .entry-content table {
    width: 100%;
    table-layout: auto;
  }

  .entry-content .protected_form input {
    display: block;
    width: 160px;
    margin: 0 auto 10px;
  }

  .pagination {
    padding: 0 18px;
  }

  .pagination a {
    display: none;
  }

  .pagination .current {
    display: block;
    font-size: 0.875em;
    line-height: 50px;
  }

  .pagination .prev {
    display: block;
    float: left;
    margin: 0;
  }

  .pagination .next {
    display: block;
    float: right;
    margin: 0;
  }

  .another_category table th {
    display: block;
    padding: 0;
  }

  .another_category table td {
    display: block;
    margin-bottom: 19px;
  }

  .category-bar {
    display: none !important;
  }
 
  /* ── 햄버거 버튼 ── */
  #mobile-hamburger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    height: 48px;
    background: linear-gradient(to bottom, var(--color-primary), var(--color-primary-dark));
    border: 4px solid #fff;
    border-radius: 16px;
    box-shadow: 0 0 0 2px #000, inset 0 0 0 2px #000;
    cursor: pointer;
    font-family: var(--font-pixel);
    color: #fff;
    font-size: 14px;
    letter-spacing: 1px;
    width: 100%;
    box-sizing: border-box;
  }
 
  /* 햄버거 아이콘 (순수 CSS) */
  #mobile-hamburger .hbg-icon {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 22px;
    height: 22px;
  }
 
  #mobile-hamburger .hbg-icon span {
    display: block;
    height: 2px;
    background: #fff;
    border-radius: 2px;
    transition: transform 0.25s ease, opacity 0.2s ease;
  }
 
  /* 열렸을 때 X 모양 */
  #mobile-hamburger.open .hbg-icon span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  #mobile-hamburger.open .hbg-icon span:nth-child(2) {
    opacity: 0;
  }
  #mobile-hamburger.open .hbg-icon span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
 
  #mobile-hamburger .hbg-label {
    flex: 1;
    text-align: center;
  }
 
  #mobile-hamburger .hbg-arrow {
    font-size: 10px;
    transition: transform 0.25s ease;
    opacity: 0.7;
  }
 
  #mobile-hamburger.open .hbg-arrow {
    transform: rotate(180deg);
  }
 
  /* ── 슬라이드 드로어 ── */
  #mobile-nav-drawer {
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transition: max-height 0.38s ease, opacity 0.28s ease;
    background: #1a1a1a;
    border-radius: 0 0 14px 14px;
    border: 2px solid #fff;
    border-top: none;
    box-sizing: border-box;
  }
 
  #mobile-nav-drawer.open {
    max-height: 70vh;         /* 화면 70% 이하로 제한 */
    opacity: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
 
  /* ── 드로어 안 카테고리 그룹 ── */
  .mnav-group {
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }
 
  .mnav-group:last-child {
    border-bottom: none;
  }
 
  /* 대분류 헤더 (클릭 시 서브 열림) */
  .mnav-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    color: #fff;
    font-family: var(--font-pixel);
    font-size: 14px;
    cursor: pointer;
    user-select: none;
    transition: background 0.2s;
  }
 
  .mnav-group-header:active {
    background: rgba(255,255,255,0.05);
  }
 
  /* 서브 없는 항목은 바로 링크 */
  .mnav-group-header a {
    color: #fff;
    text-decoration: none;
    flex: 1;
  }
 
  .mnav-group-header .mnav-toggle-icon {
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    transition: transform 0.25s ease;
    margin-left: 8px;
  }
 
  .mnav-group.open .mnav-group-header .mnav-toggle-icon {
    transform: rotate(180deg);
  }
 
  /* 서브 항목 리스트 */
  .mnav-sub {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.3s ease;
    background: rgba(0,0,0,0.25);
  }
 
  .mnav-group.open .mnav-sub {
    max-height: 400px;
  }
 
  .mnav-sub a {
    display: flex;
    align-items: center;
    padding: 10px 20px 10px 36px;
    color: #aaa;
    font-family: var(--font-pixel);
    font-size: 13px;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    transition: color 0.2s;
  }
 
  .mnav-sub a::before {
    content: '▸';
    margin-right: 8px;
    font-size: 10px;
    opacity: 0.5;
  }
 
  .mnav-sub a:active,
  .mnav-sub a:hover {
    color: var(--color-highlight);
  }
 
  .mnav-sub a:last-child {
    border-bottom: none;
  }
 
 
  /* ── 3. 팀 멤버 섹션 화면 밖 삐져나감 ───────────────── */

  #character-intro {
    display: none;             /* 모바일에서 동아리 회원 칸 숨김 */
  }

  .comments .comment-list {
    margin-bottom: 10px;
    margin-top: 10px;
    border-top: 1px solid #e6e6e6;
  }

  .comments .comment-list ul li {
    padding-bottom: 0;
  }

  .comments .comment-list ul li ul {
    border-top: 1px solid #e6e6e6;
  }

  .comments .comment-list ul li ul li {
    padding: 20px 0 0 48px;
  }

  .comments .comment-list ul li ul li:before {
    content: "";
    position: absolute;
    top: 34px;
    left: 18px;
    width: 12px;
    height: 12px;
    background: url(./ico_package.png) no-repeat 0 -150px;
  }

  .comments .comment-list ul li .author-meta,
  .comments .comment-list ul li ul li .author-meta {
    position: relative;
    top: 0;
    left: 0;
  }

  .comments .comment-list ul li .author-meta img {
    position: absolute;
    top: 0;
    left: 0;
  }

  .comments .comment-list ul li .author-meta .nickname,
  .comments .comment-list ul li .author-meta .date {
    display: block;
    float: none;
    line-height: 1.5;
  }

  .comments .comment-list ul li .author-meta .nickname .tistoryProfileLayerTrigger {
    margin-bottom: 4px;
  }

  .comments .comment-list ul li .author-meta .date {
    margin-left: 0;
    margin-top: 2px;
  }

  .comments .comment-list ul li .author-meta .date::before {
    display: none;
  }

  .comments .comment-list ul li p {
    margin: 14px 0 0;
  }

  .comments .comment-list ul li .control {
    position: relative;
    top: auto;
    right: auto;
    display: block;
    margin: 9px 0 18px -2px;
  }

  .comments .comment-list ul li ul li .control {
    top: auto;
  }

  .comments .comment-form input[type=text],
  .comments .comment-form input[type=password] {
    width: 100px;
  }

  .comments .comment-form .field .secret {
    margin-left: 0;
  }

  .comments .comment-form .field .secret label:before {
    margin-right: 5px;
  }

  .comments .comment-form .field .submit {
    display: block;
    float: none;
    margin: 60px auto 0;
  }
}

.revenue_unit_wrap.position_list {
  max-width: 860px;
  margin: 30px auto
}

.guest_inner .tt-comment-cont {
  padding-top: 40px;
}

.tt-comment-cont .tt-box-total .tt_txt_g {
  font-size: 14px;
}

.tt-comment-cont .tt-box-total .tt_num_g {
  font-size: 14px;
}

.tt-comment-cont .tt-wrap-cmt .tt-link-user {
  font-size: 14px;
}

.tt-comment-cont .tt-wrap-cmt .tt_desc {
  font-size: 14px;
  color: #666;
}

.tt-comment-cont .tt-txt-mention {
  color: #666;
}

.tt-comment-cont .tt-btn_register {
  width: 158px;
  height: 50px;
  background-color: #fff;
  color: #222;
  border-radius: 0;
  border-color: #DCDCDC;
}

.tt-comment-cont .tt-btn_register:hover {
  background-color: #fff;
  border-color: #222;
}

.tt-comment-cont .tt-btn_register:focus {
  background-color: #fff;
  border-color: #222;
}

/* 전체 공통 */
#article-view {
  margin: 0;
  padding: 20px 20px 50px;
  word-wrap: break-word;
  color: var(--color-text);
  font-size: 16px;
  line-height: 1.75;
  min-height: 370px;
  font-family: var(--font-body);
  letter-spacing: 0;
}

.contents_style>* {
  margin: 20px 0 0 0;
}

/* 텍스트 관련 */
#article-view h2[data-ke-size] {
  font-size: 1.62em;
  line-height: 1.46;
}

#article-view h3[data-ke-size] {
  font-size: 1.44em;
  line-height: 1.48;
}

#article-view h4[data-ke-size] {
  font-size: 1.25em;
  line-height: 1.55;
}

#article-view p[data-ke-size='size18'] {
  font-size: 1.12em;
  line-height: 1.67;
}

#article-view p[data-ke-size='size16'] {
  line-height: 1.75;
}

#article-view p[data-ke-size='size14'] {
  font-size: 0.87em;
  line-height: 1.71;
}

#article-view h2,
#article-view h3,
#article-view h4 {
  font-weight: normal;
  letter-spacing: -0.02em;
  color: var(--color-heading);
  margin: 2em 0 0.75em;
}

#article-view p+p, #article-view p {
  margin-top: 0;
  margin-bottom: 1.125em;
}

#article-view h2+h2,
#article-view h3+h3,
#article-view h4+h4 {
  margin: 0;
}

#article-view h2+h3,
#article-view h2+h4,
#article-view h3+h4 {
  margin-top: 10px;
}

#article-view h2+p,
#article-view h3+p,
#article-view h4+p,
#article-view h5+p,
#article-view h6+p {
  margin-top: 10px;
}

#article-view div[data-ke-type='moreLess'] {
  caret-color: auto;
  background-color: #fafafa;
  padding: 20px 20px 22px;
  margin: 20px 0;
  border: 1px dashed #dddddd;
  color: #333333;
}

#article-view a {
  color: #0070d1;
  text-decoration: underline;
}

#article-view figure[data-ke-type='contentSearch'] a {
  text-decoration: none;
}

/* 인용문 */
#article-view blockquote[data-ke-style='style1'] {
  text-align: center;
  background: url(https://t1.daumcdn.net/keditor/dist/0.7.21/image/blockquote-style1.svg) no-repeat 50% 0;
  padding: 34px 0 0 0;
  font-size: 1.12em;
  color: #333;
  line-height: 1.67;
  border: 0 none;
  font-family: var(--font-body);
}

#article-view blockquote[data-ke-style='style2'] {
  border-color: #d0d0d0;
  border-width: 0 0 0 4px;
  border-style: solid;
  padding: 1px 0 0 12px;
  color: #666;
  line-height: 1.75;
  font-size: 1em;
  text-align: left;
}

#article-view blockquote[data-ke-style='style3'] {
  border: 1px solid #dddddd;
  background-color: #fcfcfc;
  text-align: left;
  padding: 21px 25px 20px 25px;
  color: #666;
  font-size: 1em;
  line-height: 1.75;
}

#article-view blockquote {
  display: block;
  margin: 20px auto 0;
  letter-spacing: 0px;
}

/* 첨부: 공통 */

/* 이미지 클릭 관련 - lightbox */
#article-view span[data-lightbox] {
  cursor: pointer;
}

/* 첨부: 파일 */
#article-view figure.fileblock {
  width: min(470px, 100%);
  height: 73px;
  box-sizing: border-box;
  position: relative;
  border-radius: 1px;
  margin-top: 20px;
  margin-bottom: 0px;
  box-shadow: 0 1px 4px 0 rgb(0 0 0 / 7%);
  border: solid 1px rgba(0, 0, 0, 0.1);
}

#article-view figure.fileblock a {
  display: block;
}

#article-view figure.fileblock .image {
  float: left;
  width: 30px;
  height: 30px;
  background-image: url('https://t1.daumcdn.net/tistory_admin/static/manage/post-editor/img_editor_content.svg');
  margin: 22px 17px 21px 22px;
  background-position: 0 0;
}

#article-view figure.fileblock .desc {
  position: absolute;
  left: 70px;
  right: 60px;
  top: 4px;
  bottom: 0;
}

#article-view figure.fileblock .filename {
  color: #333333;
  font-size: 14px;
  text-overflow: ellipsis;
  width: 100%;
  height: 20px;
  margin: 16px 0 0;
}

#article-view figure.fileblock .size {
  font-family: var(--font-body);
  font-size: 12px;
  color: #777;
  height: 16px;
}

#article-view figure[data-ke-align=alignCenter].fileblock {
  margin-left: auto;
  margin-right: auto;
}

#article-view figure[data-ke-align=alignRight].fileblock {
  margin-left: auto;
}

#article-view figure.fileblock .name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 272px;
  height: 20px;
  display: block;
}

#article-view figure.fileblock a::after {
  content: '';
  background-image: url('https://t1.daumcdn.net/tistory_admin/static/manage/post-editor/img_editor_content.svg');
  background-position: -40px 0;
  width: 30px;
  height: 30px;
  position: absolute;
  right: 24px;
  top: 19px;
}

/* 첨부: 이미지 */
#article-view figure.imageblock {
  display: table;
  position: relative;
}

#article-view figure.imageblock.alignLeft {
  text-align: left;
}

#article-view figure.imageblock.alignCenter {
  margin: 20px auto 0;
  text-align: center;
}

#article-view figure.imageblock.alignRight {
  text-align: right;
  margin-left: auto;
}

#article-view figure.imageblock.floatLeft {
  float: left;
  margin-right: 20px;
}

#article-view figure.imageblock.floatRight {
  float: right;
  margin-left: 20px;
}

#article-view figure.imageblock.widthContent {
  display: block;
}

#article-view figure.imageblock.widthContent img {
  width: 100%;
}

#article-view figure.imageblock.floatLeft figcaption,
#article-view figure.imageblock.floatRight figcaption {
  text-align: left;
}

#article-view figure.imageblock img {
  display: inline-block;
  max-width: 100%;
  margin: 0;
  height: auto;
}

#article-view iframe,
#article-view figure img,
#article-view figure iframe {
  max-width: 100%;
}

#article-view figure img:not([width]),
#article-view figure iframe:not([width]) {
  width: 100%;
}

#article-view figure {
  max-width: 100%;
  clear: both;
}

#article-view figure img {
  display: inline-block;
}

#article-view figure.imagegridblock+figure.imagegridblock,
#article-view figure.imagegridblock+figure.imageblock,
#article-view figure.imageblock+figure.imagegridblock {
  margin-top: 10px;
}

/* 캡션 텍스트 */
#article-view figure figcaption {
  font-size: 13px;
  color: #777;
  word-break: break-word;
  padding-top: 10px;
  min-height: 20px;
  caption-side: bottom;
  text-align: center;
  caret-color: auto;
  width: 100%;
  box-sizing: content-box;
}

/* 첨부: 이미지 그리드 */
#article-view figure.imagegridblock {
  position: relative;
  caret-color: transparent;
  background-color: transparent;
  width: 100%;
  height: auto;
  margin: 20px 0 0 0;
}

#article-view figure.imagegridblock .image-container {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
}

#article-view figure.imagegridblock .image-container>span {
  margin-right: 0;
  margin-top: 2px;
}

#article-view figure.imagegridblock img {
  margin: 0;
  height: inherit;
}

#article-view figure.imagegridblock span img {
  width: 100%;
}

hr[data-ke-style],
#article-view hr[data-ke-style] {
  border: none;
  font-size: 0;
  line-height: 0;
  margin: 20px auto;
  background: url(https://t1.daumcdn.net/keditor/dist/0.7.21/image/divider-line.svg);
  background-size: 200px 420px;
  cursor: default !important;
}

hr[data-ke-style='style1'],
#article-view hr[data-ke-style='style1'] {
  background-position: center 0;
  width: 64px;
  height: 4px;
  padding: 20px;
}

hr[data-ke-style='style2'],
#article-view hr[data-ke-style='style2'] {
  background-position: center -48px;
  width: 64px;
  height: 3px;
  padding: 20px;
}

hr[data-ke-style='style3'],
#article-view hr[data-ke-style='style3'] {
  background-position: center -96px;
  width: 64px;
  height: 8px;
  padding: 18px 20px;
}

hr[data-ke-style='style4'],
#article-view hr[data-ke-style='style4'] {
  background-position: center -144px;
  width: 2px;
  height: 60px;
  padding: 0 51px;

}

hr[data-ke-style='style4']+hr[data-ke-style='style4'],
#article-view hr[data-ke-style='style4']+hr[data-ke-style='style4'] {
  margin-top: 0;
}

hr[data-ke-style='style5'],
#article-view hr[data-ke-style='style5'] {
  background-position: center -208px;
  background-repeat: repeat-x;
  height: 2px;
  padding: 21px 0;
}

hr[data-ke-style='style6'],
#article-view hr[data-ke-style='style6'] {
  background-position: center -256px;
  background-repeat: repeat-x;
  height: 2px;
  padding: 21px 0;
}

hr[data-ke-style='style7'],
#article-view hr[data-ke-style='style7'] {
  background-position: center -304px;
  width: 200px;
  height: 19px;
  padding: 18px 20px 17px 20px;
}

hr[data-ke-style='style8'],
#article-view hr[data-ke-style='style8'] {
  background-position: center -362px;
  width: 200px;
  height: 19px;
  padding: 18px 20px 17px 20px;
}

/* 테이블 */
#article-view table[data-ke-style] {
  margin-bottom: 0px;
}

#article-view table {
  margin-bottom: 0px;
  border-color: #ddd;
}

#article-view table tbody tr {
  box-sizing: content-box;
}

#article-view table td {
  word-break: break-word;
  padding: 8px;
  font-size: 15px;
}

#article-view table[data-ke-style='style1'] tr:first-child td {
  border-bottom: 1px solid #6ed3d8;
}

#article-view table[data-ke-style='style2'] tr:first-child td {
  border-bottom: 1px solid #008300;
}

#article-view table[data-ke-style='style3'] tr:first-child td {
  border-bottom: 1px solid #006dbe;
}

#article-view table[data-ke-style='style4'] tr:nth-child(2n) td {
  background-color: #f9f9f9;
}

#article-view table[data-ke-style='style5'] tr:nth-child(2n) td {
  background-color: #f8fbfb;
}

#article-view table[data-ke-style='style6'] tr:nth-child(2n) td {
  background-color: #f5f7f5;
}

#article-view table[data-ke-style='style7'] tr:nth-child(2n) td {
  background-color: #f6f8fb;
}

#article-view table[data-ke-style='style8'] tr:first-child td {
  border-bottom: 2px solid #797979;
}

#article-view table[data-ke-style='style8'] {
  border-left: 0 none;
  border-right: 0 none;
}

#article-view table[data-ke-style='style8'] td {
  border-right-color: transparent;
  border-left-color: transparent;
}

#article-view table[data-ke-style='style9'] tr:first-child td {
  border-bottom: 2px solid #6ed3d8;
}

#article-view table[data-ke-style='style9'] {
  border-left: 0 none;
  border-right: 0 none;
}

#article-view table[data-ke-style='style9'] td {
  border-right-color: transparent;
  border-left-color: transparent;
}

#article-view table[data-ke-style='style10'] tr:first-child td {
  border-bottom: 2px solid #008300;
}

#article-view table[data-ke-style='style10'] {
  border-left: 0 none;
  border-right: 0 none;
}

#article-view table[data-ke-style='style10'] td {
  border-right-color: transparent;
  border-left-color: transparent;
}

#article-view table[data-ke-style='style11'] tr:first-child td {
  border-bottom: 2px solid #2780d4;
}

#article-view table[data-ke-style='style11'] {
  border-left: 0 none;
  border-right: 0 none;
}

#article-view table[data-ke-style='style11'] td {
  border-right-color: transparent;
  border-left-color: transparent;
}

#article-view table[data-ke-style='style12'] tr:nth-child(odd) td {
  background-color: #f9f9f9;
}

#article-view table[data-ke-style='style12'] tr td:first-child {
  background-color: #efefef;
}

#article-view table[data-ke-style='style12'] tr:first-child td {
  background-color: #9b9b9b;
  border: 1px solid #888;
  color: #fff;
}

#article-view table[data-ke-style='style13'] tr:nth-child(odd) td {
  background-color: #f9f9f9;
}

#article-view table[data-ke-style='style13'] tr td:first-child {
  background-color: #efefef;
}

#article-view table[data-ke-style='style13'] tr:first-child td {
  background-color: #6ed3d8;
  border: 1px solid #5cbcc1;
  color: #fff;
}

#article-view table[data-ke-style='style14'] tr:nth-child(odd) td {
  background-color: #f9f9f9;
}

#article-view table[data-ke-style='style14'] tr td:first-child {
  background-color: #efefef;
}

#article-view table[data-ke-style='style14'] tr:first-child td {
  background-color: #008300;
  border: 1px solid #006d00;
  color: #fff;
}

#article-view table[data-ke-style='style15'] tr:nth-child(odd) td {
  background-color: #f9f9f9;
}

#article-view table[data-ke-style='style15'] tr td:first-child {
  background-color: #efefef;
}

#article-view table[data-ke-style='style15'] tr:first-child td {
  background-color: #2780d4;
  border: 1px solid #1568b7;
  color: #fff;
}

#article-view table[data-ke-style='style16'],
#article-view table[data-ke-style='style16'] tr,
#article-view table[data-ke-style='style16'] tr td {
  border-color: transparent;
}

/* 오픈 그래프 */
#article-view figure[data-ke-type='opengraph'] {
  margin: 10px 0;
}

#article-view figure[data-ke-type='opengraph'] a {
  box-sizing: initial;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.07);
  border: solid 1px rgba(0, 0, 0, 0.1);
  text-decoration: none;
  color: #000;
}

#article-view figure[data-ke-type='opengraph'] a:hover {
  opacity: 1;
}

#article-view figure[data-ke-type='opengraph'] div.og-image {
  border-right: solid 1px rgba(0, 0, 0, 0.06);
  width: 200px;
  height: 200px;
  background-size: cover;
  background-position: center;
}

#article-view figure[data-ke-type='opengraph'] div.og-image button {
  display: none;
}

#article-view figure[data-ke-type='opengraph']:hover div.og-image button {
  cursor: pointer;
  border: none;
  display: block;
  position: absolute;
  top: 0px;
  right: 0px;
  background-color: #000;
  width: 15px;
  height: 15px;
}

#article-view figure[data-ke-type='opengraph'] p.og-title {
  color: #000000;
  font-size: 22px;
  padding-bottom: 10px;
  max-width: 467px;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 0px;
  overflow: hidden;
  font-family: var(--font-body);
}

#article-view figure[data-ke-type='opengraph'] .og-desc {
  margin: 0px;
  max-width: 467px;
  text-overflow: ellipsis;
  overflow: hidden;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 300;
  font-style: normal;
  font-stretch: normal;
  line-height: normal;
  letter-spacing: normal;
  color: #909090;
  max-height: 42px;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  display: -webkit-box;
}

@media (max-width: 600px) {
  #article-view figure[data-ke-type='opengraph'] a {
    height: 90px;
  }

  #article-view figure[data-ke-type='opengraph'] a::before {
    left: 44px;
  }

  #article-view figure[data-ke-type='opengraph'] div.og-image {
    width: 90px;
    height: 90px;
  }

  #article-view figure[data-ke-type='opengraph'] div.og-text {
    padding: 13px 12px 0 20px;
    height: 90px;
  }

  #article-view figure[data-ke-type='opengraph'] div.og-text p.og-title {
    font-size: 16px;
    -webkit-line-clamp: 1;
  }

  #article-view figure[data-ke-type='opengraph'] div.og-text p.og-desc {
    display: none;
  }

  #article-view figure[data-ke-type='opengraph'] div.og-text p.og-host {
    bottom: 10px;
  }
}

/* 비디오 첨부 */
#article-view figure[data-ke-type='video'] {
  display: block;
  table-layout: fixed;
  justify-content: center;
  align-items: center;
  position: relative;
  text-align: center;
  color: #bdbdbd;
  font-size: 16px;
  line-height: 30px;
}

#article-view figure[data-ke-type='video'][data-ke-style='alignLeft'] {
  text-align: left;
}

#article-view figure[data-ke-type='video'][data-ke-style='alignCenter'] {
  margin: 20px auto 0;
  text-align: center;
}

#article-view figure[data-ke-type='video'][data-ke-style='alignRight'] {
  text-align: right;
  margin-left: auto;
}

#article-view figure[data-ke-type='video'] img {
  display: block;
  max-width: 100%;
  margin: 0 auto;
}

#article-view figure[data-ke-type='video'][data-video-host] iframe {
  margin: 0px;
  display: block;
}

#article-view figure[data-ke-type='video']>iframe[width='0'][height='0'] {
  width: 860px;
  height: 484px;
  max-width: 100%;
}

/* 코드 블럭 */
#article-view pre code.hljs {
  font-size: 14px;
  padding: 20px;
  font-family: var(--font-code);
  border: solid 1px #ebebeb;
  line-height: 1.71;
  overflow: auto;
}

/* 접은 글 */
#article-view .moreless-content :first-child {
  margin-top: 0;
  margin-bottom: 0;
}

#article-view div[data-ke-type='moreLess'] .moreless-content {
  display: none;
}

#article-view div[data-ke-type='moreLess'].open .moreless-content {
  display: block;
}

#article-view div[data-ke-type='moreLess'] .btn-toggle-moreless {
  color: #909090;
  font-size: 16px;
  line-height: 26px;
  font-family: var(--font-body);
  cursor: pointer;
  text-decoration: none;
}

/* 리스트 */
#article-view ul li,
#article-view ol li {
  margin: 0 0 3px 22px;
  line-height: 1.7;
}

#article-view ul,
#article-view ol {
  margin: 14px auto 24px;
  padding: 0 0 0 10px;
}

/* 이모티콘 */
#article-view figure[data-ke-type=emoticon][data-ke-align=alignCenter] {
  text-align: center;
}

#article-view figure[data-ke-type=emoticon][data-ke-align=alignLeft] {
  text-align: left;
}

#article-view figure[data-ke-type=emoticon][data-ke-align=alignRight] {
  text-align: right;
}

/* 지도 */
#article-view figure[data-ke-type='map'],
#article-view iframe[data-ke-type='map'] {
  display: block;
  margin: 0 auto;
}

/* 첨부: 이미지 슬라이드 */
#article-view figure.imageslideblock {
  clear: both;
  position: relative;
  font-size: 0;
  outline: 0 none;
}

#article-view figure.imageslideblock .btn {
  display: none;
  outline: none;
}

#article-view figure.imageslideblock.ready .btn {
  display: inline-block;
}

#article-view figure.imageslideblock.ready .mark {
  opacity: 1;
}

#article-view figure.imageslideblock div.image-container {
  position: relative;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  min-height: 300px;
  max-height: 860px;
  background-color: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  margin: 0 auto;
}

#article-view figure.imageslideblock div.image-container span.image-wrap {
  display: none;
}

#article-view figure.imageslideblock div.image-container span.image-wrap.selected {
  display: inline;
}

#article-view figure.imageslideblock div.image-container img {
  max-width: 100%;
  max-height: 100%;
}

#article-view figure.imageslideblock div.image-container .btn {
  position: absolute;
  border: 0;
  background: transparent;
  width: 60px;
  height: 60px;
  top: 50%;
  margin-top: -20px;
}

#article-view figure.imageslideblock div.image-container .btn-prev {
  left: 0;
}

#article-view figure.imageslideblock div.image-container .btn-next {
  right: 0;
}

#article-view figure.imageslideblock div.image-container:hover .btn span {
  opacity: 0.3;
}

#article-view figure.imageslideblock div.image-container .btn span {
  background-image: url('https://t1.daumcdn.net/tistory_admin/static/manage/post-editor/img_editor_content.svg');
  text-indent: -10000px;
  overflow: hidden;
  width: 40px;
  height: 40px;
  opacity: 0;
  transition: opacity ease-in-out 0.2s;
  display: inline-block;
}

#article-view figure.imageslideblock div.image-container .btn:hover span {
  opacity: 1;
}

#article-view figure.imageslideblock div.image-container .btn .ico-prev {
  background-position: -220px 0;
}

#article-view figure.imageslideblock div.image-container .btn .ico-next {
  background-position: -260px 0;
}

#article-view figure.imageslideblock div.mark {
  display: block;
  height: 44px;
  text-align: center;
  opacity: 0;
  transition: opacity ease-in-out 0.2s;
}

#article-view figure.imageslideblock div.mark span {
  width: 30px;
  height: 4px;
  display: inline-block;
  margin: 20px 1px;
  background-color: #d6d6d6;
  text-indent: -10000px;
  overflow: hidden;
  cursor: pointer;
}

#article-view figure.imageslideblock div.mark span:first-child {
  background-color: #000;
  margin-left: 0;
}

#article-view figure.imageslideblock div.mark span:last-child {
  margin-right: 0;
}

#article-view figure.imageslideblock figcaption {
  text-align: center;
  color: #666;
  font-size: 14px;
}

#article-view figure.imageslideblock.alignLeft {
  text-align: left;
}

#article-view figure.imageslideblock.alignCenter {
  margin: 0 auto 20px;
  text-align: center;
}

#article-view figure.imageslideblock.alignRight {
  text-align: right;
  margin-left: auto;
}

@media (max-width: 600px) {
  #article-view figure.imageslideblock div.image-container {
    min-width: 100%;
    width: 100%;
    max-height: 100%;
  }

  #article-view figure.imageslideblock div.image-container .btn span {
    opacity: 0.3;
  }
}

/* 구 에디터 속성 */
.btn_more, .btn_less {
  border: 0;
  background: transparent;
  display: block;
  height: 21px;
  margin: 20px 0;
  font-size: 14px;
  line-height: 14px;
  color: #888;
  position: relative;
  width: 100%;
  text-align: left;
}

.btn_less::before,
.btn_more::before {
  content: "...";
  display: inline-block;
  padding-right: 5px;
  font-size: 14px;
  line-height: 6px;
  vertical-align: top;
}

.box-timeline-content {
  word-break: break-all;
}
@media screen and (min-width: 768px) {
  #mobile-hamburger,
  #mobile-nav-drawer {
    display: none !important;
  }
}
 


/* 15 Tistory Editor Compatibility: shared article palette.
   Keep this after editor and color-theme rules to avoid specificity/cascade conflicts. */
.entry-content, #article-view {
  font-family: var(--font-body);
  color: var(--color-text);
  background-color: var(--color-surface);
  overflow-wrap: break-word;
}
:is(.entry-content, #article-view) :is(h1,h2,h3,h4,h5,h6) {
  color: var(--color-heading);
  line-height: 1.45;
}
#article-view a { color: var(--color-link); }
#article-view :is(blockquote, div[data-ke-type='moreLess']) {
  color: var(--color-text);
  border-color: var(--color-border);
}
#article-view div[data-ke-type='moreLess'],
#article-view blockquote[data-ke-style='style3'] { background-color: var(--color-surface-muted); }
#article-view :is(figcaption, .btn-toggle-moreless, .fileblock .size) { color: var(--color-muted); }
#article-view figure.fileblock { border-color: var(--color-border); background-color: var(--color-surface-muted); }
#article-view figure.fileblock .filename { color: var(--color-text); }
#article-view figure[data-ke-type='opengraph'] a {
  box-sizing: border-box;
  color: var(--color-text);
  background-color: var(--color-surface-muted);
  border-color: var(--color-border);
}
#article-view figure[data-ke-type='opengraph'] .og-image { flex-shrink: 0; }
#article-view figure[data-ke-type='opengraph'] .og-text { min-width: 0; }
#article-view figure[data-ke-type='opengraph'] p.og-title { color: var(--color-text); }
#article-view figure[data-ke-type='opengraph'] :is(.og-desc, .og-host) { color: var(--color-muted); }
#article-view :is(pre, code) { font-family: var(--font-code); }
#article-view pre { background-color: #282c34; color: #abb2bf; border-radius: 4px; overflow: auto; }
#article-view pre code.hljs { border-color: var(--color-border); }
#article-view :not(pre) > code { background-color: var(--color-surface-muted); color: var(--color-text); padding: 0.1em 0.3em; }
/* Preserve highlight.js token colors: never blanket-override nested code spans. */
body.dark-mode :is(.entry-content, #article-view) :is(p, ul li, ol li, blockquote, h1,h2,h3,h4,h5,h6) { color: var(--color-text); }
body.dark-mode :is(.entry-content, #article-view) a { color: var(--color-link); }
body.dark-mode #article-view table { color: var(--color-text); border-color: var(--color-border); }
/* Editor-generated inline table colors need a narrow important override. */
body.dark-mode #article-view table :is(th, td) {
  background-color: var(--color-surface) !important;
  color: var(--color-text) !important;
  border-color: var(--color-border) !important;
}
body.dark-mode #article-view table[data-ke-style] tr:nth-child(even) td { background-color: var(--color-surface-muted) !important; }
body.dark-mode #article-view table[data-ke-style] tr:first-child td { background-color: #293d52 !important; }
body.dark-mode #article-view table[data-ke-style='style16'] :is(th,td) { border-color: transparent !important; }
body.dark-mode #article-view .another_category :is(th,td) { background-color: transparent !important; }
body.dark-mode #article-view figure[data-ke-type='opengraph'] :is(a,p.og-title) { color: var(--color-text); }
body.dark-mode #article-view figure[data-ke-type='opengraph'] :is(.og-desc,.og-host) { color: var(--color-muted); }
body.dark-mode #article-view figure figcaption { color: var(--color-muted); }
/* Maintain readable RPG colors inside both light and dark articles. */
#article-view .rpg-dialog-bubble { color: #f1f1f1; }
#article-view .rpg-dialog-name { color: #42e9ff; }
.theme-switch input:focus-visible + .slider { outline: 3px solid var(--color-accent); outline-offset: 3px; }
.category-bar a:focus-visible, #gnb-sub-bar a:focus-visible { outline: 2px solid var(--color-highlight); outline-offset: 3px; }

/* 13 Tablet: custom navigation must fit nine category labels. */
@media screen and (min-width:768px) and (max-width:1023px) {
  .category-bar { flex-wrap: wrap; gap: 12px 0; }
  #gnb-sub-bar ul { flex-wrap: wrap; }
  #gnb-sub-bar.active { max-height: 60vh; overflow-y: auto; }
  .char-team { padding: 0 12px; }
  .char-list { gap: 8px; }
}
/* 14 Mobile: intentional mobile-only changes; no stray closing brace. */
@media screen and (max-width:767px) {
  .notice-date { display: none; }
  #gnb-sub-bar { display: none; }
  #article-view { padding: 16px 0 40px; }
  #theme-toggle-wrap { right: 16px; bottom: 16px; }
  .rpg-dialog-block { padding: 12px; }
  .rpg-dialog-line { gap: 10px; }
  .rpg-dialog-bubble { padding: 10px; font-size: 15px; }
  /* Recover intended mobile scope of existing hidden Tistory modules. */
  /* Tistory advertisements, plugins and guestbook remain available on mobile. */
}
/* ======================================================================
   16 Club UI v2 — coordinated with skin.html and images/club-ui.js.
   Earlier editor/cover compatibility stays intact. This final layer owns UI.
   ====================================================================== */
:root {
  --club-page: #f4f6fa;
  --club-panel: #fff;
  --club-ink: #202b40;
  --club-muted: #5e6b80;
  --club-line: #dbe2ed;
  --club-navy: #101c3b;
  --club-radius: 12px;
  --club-shadow: 0 8px 24px rgb(16 28 59 / 5%);
}
body.dark-mode {
  --club-page: #111827;
  --club-panel: #1a2436;
  --club-ink: #eef2fa;
  --club-muted: #aebbd0;
  --club-line: #33425b;
  --color-surface: #1a2436;
  --color-surface-muted: #222f44;
  --color-heading: #f1f5fb;
  --color-text: #dce5f3;
}
body[data-club-ui] { background: var(--club-page); color: var(--club-ink); }
[hidden] { display: none !important; }
.screen_out {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0,0,0,0); white-space: nowrap !important; border: 0 !important;
}
a, button, input, textarea { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
.table-wrap:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; }
.club-eyebrow { font: 12px/1.5 var(--font-code); letter-spacing: .09em; color: var(--club-muted); }
#header { background: var(--club-panel); border-bottom: 1px solid var(--club-line); }
body.dark-mode #header { background: var(--club-panel); }
.club-header-inner { max-width: 1080px; margin: auto; padding: 25px 24px 22px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
#header h1 { padding: 7px 0; text-align: left; font-size: 32px; line-height: 1.35; }
#header h1 a { font-size: inherit; letter-spacing: 1px; color: #fff; text-shadow: -1px -1px 0 #182543,1px -1px 0 #182543,-1px 1px 0 #182543,1px 1px 0 #182543,3px 3px 0 #346DA7; }
.club-tagline { font-size: 13px; line-height: 1.6; color: var(--club-muted); }
#header .search, #header .search.on {
  position: relative; inset: auto; width: min(320px, 40%); flex-shrink: 0;
  display: flex; align-items: center; padding: 0; border: 1px solid var(--club-line);
  background: var(--club-page); border-radius: 8px;
}
#header .search::before { display: none; }
#header .search input, #header .search.on input { display: block; height: 44px; line-height: normal; min-width: 0; color: var(--club-ink); border: 0; padding: 0 12px; background: transparent; }
#header .search button, #header .search.on button {
  position: static; display: block; width: auto; min-width: 56px; height: 44px; padding: 0 12px;
  color: var(--club-ink); background: none; text-indent: 0; font-weight: 600; font-size: 13px;
  border-left: 1px solid var(--club-line); border-radius: 0 8px 8px 0;
}
.club-navigation { position: relative; z-index: 120; max-width: 1080px; margin: 0 auto 12px; padding: 0 24px; }
.category-bar { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: stretch; gap: 2px; padding: 7px; border: 3px solid #fff; border-radius: 12px; background: linear-gradient(180deg,var(--color-primary),#142b65); box-shadow: 0 0 0 1px #14233e,inset 0 0 0 1px rgb(0 0 0 / 40%); }
.category-bar > li { display: flex; align-items: stretch; margin: 0; }
.category-bar > li > a { display: flex; align-items: center; padding: 9px 10px; font-size: 13px; line-height: 1.5; border-radius: 5px; min-height: 22px; }
.category-bar > li > a.active { background: rgb(148 204 201 / 25%); box-shadow: inset 0 -2px var(--color-highlight); }
.category-sub-toggle { color: #fff; min-width: 30px; padding: 0 5px; border-radius: 4px; }
.category-sub-toggle:hover { background: rgb(255 255 255 / 12%); }
#gnb-sub-bar { left: 24px; right: 24px; top: 100%; border: 1px solid #405272; box-shadow: 0 12px 20px rgb(0 0 0 / 15%); background: #16243b; }
#gnb-sub-bar.active { max-height: min(380px,60vh); overflow-y: auto; }
#gnb-sub-bar > ul { display: block; padding: 14px 18px; }
#gnb-sub-bar ul .sub-group { display: block; border: 0; padding: 0; }
.sub-group-title { display: block; color: #b3c7e3; font: 12px/1.5 var(--font-pixel); margin-bottom: 8px; }
#gnb-sub-bar .sub-group > ul { display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 6px; padding: 0; }
#gnb-sub-bar ul li a { color: #f0f4fb; padding: 10px 14px; font-size: 14px; background: rgb(255 255 255 / 5%); border-radius: 5px; }
#gnb-sub-bar ul li a:hover { background: rgb(255 255 255 / 10%); font-weight: 400; }
.notice { max-width: 1032px; margin: auto; background: #edf2f8; color: var(--club-ink); border-radius: 0; padding: 0 12px; height: 40px; }
.notice-label { color: var(--club-muted); }
.notice-item a { color: var(--club-ink); font-family: var(--font-body); font-size: 13px; }
.notice-item a:hover { color: var(--color-primary); }
.notice-date { color: var(--club-muted); }
.notice-pause { font: 11px/1.5 var(--font-body); color: var(--club-muted); min-height: 32px; padding: 0 7px; flex-shrink: 0; border-left: 1px solid var(--club-line); }
body.dark-mode .notice { background: #172237; }
body.dark-mode .notice-item a { color: var(--club-ink); }
#content { padding-top: 28px; }
#content > .inner, #content .guest_inner { max-width: 960px; padding: 0 24px; }
.club-start, .club-section { max-width: 1032px; margin: 0 auto 36px; box-sizing: border-box; }
.club-start { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(0,1fr); padding: 35px 38px; gap: 36px; border: 1px solid #344b73; border-radius: var(--club-radius); background: linear-gradient(125deg,#111c3b,#203f70); color: #fff; position: relative; overflow: hidden; }
.club-start .club-eyebrow { color: #9dd4f1; font-family: var(--font-pixel); }
.club-start h2 { margin: 12px 0 18px; font-size: 31px; line-height: 1.45; letter-spacing: -.03em; }
.club-start-copy > p:not(.club-eyebrow) { color: #c9d6ec; font-size: 14px; line-height: 1.8; }
.club-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 24px; }
.club-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 12px 16px; min-height: 20px; font-size: 13px; font-weight: 700; text-decoration: none; border-radius: 6px; border: 1px solid transparent; }
.club-button-primary { background: #91d6f5; color: #10233f; }
.club-button-primary:hover { background: #b0e4fc; }
.club-button-secondary { color: #e8f2ff; border-color: #6480a9; }
.club-button-secondary:hover { background: rgb(255 255 255 / 8%); }
.club-start-path { padding: 21px; border: 1px solid rgb(255 255 255 / 16%); background: rgb(0 0 0 / 15%); border-radius: 9px; }
.club-pixel-label { font: 14px/1.5 var(--font-pixel); color: #d1e9ff; margin-bottom: 20px; }
.club-start-path ol { display: grid; gap: 20px; list-style: none; }
.club-start-path li { display: flex; align-items: flex-start; gap: 13px; }
.club-start-path li > span { font: 14px/1.5 var(--font-code); color: #83cbe9; }
.club-start-path strong { font-size: 14px; }
.club-start-path li p { margin-top: 6px; font-size: 12px; color: #b3c7e3; line-height: 1.5; }
.club-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.club-section-heading h2 { font-size: 22px; line-height: 1.5; margin-top: 4px; letter-spacing: -.02em; }
.club-section-heading > p { font-size: 13px; line-height: 1.6; color: var(--club-muted); }
.club-field-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.club-field-grid > a { position: relative; padding: 20px; border: 1px solid var(--club-line); background: var(--club-panel); border-radius: 9px; text-decoration: none; color: var(--club-ink); transition: border-color .2s, transform .2s; }
.club-field-grid > a:hover { border-color: var(--color-primary); transform: translateY(-2px); }
.club-field-number { font: 10px/1.5 var(--font-code); color: var(--club-muted); letter-spacing: .05em; }
.club-field-grid h3 { font: 17px/1.5 var(--font-pixel); margin: 9px 0 7px; }
.club-field-grid p { font-size: 12px; line-height: 1.6; color: var(--club-muted); }
.club-field-arrow { position: absolute; right: 18px; top: 19px; color: var(--color-primary); }
/* Cover templates remain configurable in Tistory. Existing masonry/slider geometry stays intact. */
.cover-thumbnail-list, .cover-masonry, .cover-list, .cover-gallery { border-color: var(--club-line); padding-top: 24px; padding-bottom: 32px; }
.cover-thumbnail-list h2, .cover-masonry h2, .cover-list h2, .cover-gallery h2 { font-size: 21px; color: var(--club-ink); }
body.dark-mode .cover-thumbnail-list ul li a, body.dark-mode .cover-masonry ul li a, body.dark-mode .cover-list ul li a { color: var(--club-ink); }
body.dark-mode .cover-masonry ul li .excerpt, body.dark-mode .cover-list ul li .excerpt { color: var(--club-muted); }
.post-header { max-width: 960px; padding: 20px 24px 16px; margin-bottom: 20px; border-color: var(--club-line); }
.post-header h1 { font-size: 21px; line-height: 1.5; }
.post-count { display: inline-block; margin: 6px 0 0 8px; font: 12px/1.5 var(--font-code); color: var(--club-muted); }
.post-header .list-type { display: flex; gap: 6px; }
.post-header .list-type button { float: none; width: auto; height: 36px; min-width: 50px; margin: 0; padding: 0 12px; border: 1px solid var(--club-line); border-radius: 6px; background: var(--club-panel); color: var(--club-muted); text-indent: 0; font: 12px/1.5 var(--font-body); }
.post-header .list-type button.current { background: var(--club-navy); color: #fff; border-color: var(--club-navy); }
#content > .inner:has(> .post-item) { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; }
#content > .inner:has(> .post-item)::after { display: none; }
.post-item, .post-type-thumbnail .post-item {
  float: none; width: auto; margin: 0; padding: 0; border: 1px solid var(--club-line);
  border-radius: 10px; background: var(--club-panel); box-shadow: var(--club-shadow); min-width: 0;
}
body.dark-mode .post-item { background: var(--club-panel); }
.post-item > a, .post-item:first-child > a, .post-type-thumbnail .post-item > a {
  display: grid; grid-template-columns: minmax(0,1fr) 180px; column-gap: 24px;
  grid-template-areas: 'category image' 'title image' 'date image' 'excerpt image';
  min-height: 0; padding: 20px; color: var(--club-ink);
}
.post-item > a::after { display: none; }
.post-item .thum, .post-type-thumbnail .post-item .thum {
  grid-area: image; position: relative; float: none; width: 100%; max-width: none; height: 136px;
  margin: 0; padding: 0; border-radius: 6px; background: #e7edf6; overflow: hidden;
}
.post-item .thum::before { content: 'RPG MAKER CLUB'; position: absolute; inset: 0; height: auto; margin: 0; display: grid; place-items: center; font: 11px/1.5 var(--font-pixel); color: #77869f; }
.post-item .thum img, .post-type-thumbnail .post-item .thum img { position: relative; width: 100%; height: 100%; object-fit: cover; margin: 0; z-index: 1; }
.post-item .category { grid-area: category; font: 11px/1.5 var(--font-pixel); color: var(--color-primary); border: 0; margin: 0 0 8px; }
.post-item .title, .post-type-thumbnail .post-item .title { grid-area: title; font: 700 18px/1.5 var(--font-body); height: auto; max-height: 3em; margin: 0 0 7px; -webkit-line-clamp: 2; }
.post-item .date { grid-area: date; display: block; margin-bottom: 10px; font: 11px/1.5 var(--font-code); color: var(--club-muted); }
.post-item .excerpt { grid-area: excerpt; color: var(--club-muted); font-size: 13px; line-height: 1.75; }
.post-item .article-tags { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0 20px 14px; font-size: 11px; }
.post-item .article-tags:empty { display: none; }
.post-item .article-tags a { display: inline-flex; width: auto; min-height: 0; height: auto; margin: 0; padding: 4px 7px; font: 11px/1.4 var(--font-body); color: var(--club-muted); background: var(--club-page); border-radius: 4px; }
.post-item .article-tags a::after { display: none; }
.post-item .article-tags a:hover { background: var(--color-primary); color: #fff; }
body.post-type-thumbnail #content > .inner:has(> .post-item) { grid-template-columns: repeat(3,minmax(0,1fr)); }
.post-type-thumbnail .post-item:nth-child(n) { padding: 0; }
.post-type-thumbnail .post-item > a { display: flex; flex-direction: column; gap: 0; padding: 0 18px 18px; }
.post-type-thumbnail .post-item .thum { width: calc(100% + 36px); height: auto; aspect-ratio: 4/3; margin: 0 -18px 16px; border-radius: 0; }
.post-type-thumbnail .post-item .category { align-self: flex-start; }
.post-type-thumbnail .post-item .title { font-size: 16px; }
.post-type-thumbnail .post-item .excerpt { font-size: 12px; }
.pagination { margin: 32px auto 64px; }
.hgroup { margin: 16px auto 0; padding: 28px 32px 22px; max-width: 796px; border: 1px solid var(--club-line); border-bottom: 0; border-radius: 12px 12px 0 0; background: var(--club-panel); }
.hgroup h1 { color: var(--club-ink); font-size: 28px; line-height: 1.45; }
.hgroup .category { font-family: var(--font-pixel); color: var(--color-primary); border: 0; margin-bottom: 12px; }
body.dark-mode .hgroup { background: var(--club-panel); }
#article-view { box-sizing: border-box; max-width: 862px; margin: 0 auto 24px; padding: 12px 32px 40px; border: 1px solid var(--club-line); border-top: 0; border-radius: 0 0 12px 12px; font-size: 17px; line-height: 1.8; }
#article-view :is(h2,h3,h4) { font-weight: 700; letter-spacing: -.025em; }
#article-view h2 { font-size: 1.5em; margin-top: 2em; }
#article-view h3 { font-size: 1.3em; }
#article-view h4 { font-size: 1.12em; }
#article-view p { margin-bottom: 1.1em; }
#article-view .table-wrap { max-width: 100%; overflow-x: auto; margin: 20px 0; }
#article-view table { width: 100%; border-collapse: collapse; }
#article-view table :is(th,td) { padding: 10px 12px; line-height: 1.65; }
#article-view pre { margin: 24px 0; }
#article-view pre code.hljs { white-space: pre; word-break: normal; overflow-wrap: normal; font-size: 14px; line-height: 1.75; }
.code-lang-label { box-sizing: border-box; min-height: 43px; padding-right: 100px; font-family: var(--font-code); }
.code-copy-btn { min-height: 34px; padding: 6px 12px; background: #91d6f5; color: #15233b; border: 0; top: 4px; }
.copy-fallback { position: fixed; left: -9999px; top: 0; }
#article-view .rpg-dialog-block { margin: 24px 0; padding: 14px; border: 1px solid #465777; border-radius: 8px; background: #18243a; }
#article-view .rpg-dialog-avatar { width: 64px; }
#article-view .rpg-dialog-avatar img { width: 64px; height: 64px; border-radius: 4px; }
#article-view .rpg-dialog-name { font-size: 12px; color: #9bdcf5; letter-spacing: 0; line-height: 1.5; }
#article-view .rpg-dialog-bubble { background: #293952; color: #f1f5ff; font: 15px/1.8 var(--font-pixel); padding: 10px 12px; white-space: pre-line; }
#character-intro { width: auto; font-family: var(--font-body); }
.char-intro-inner, body.dark-mode .char-intro-inner { background: var(--club-panel); border: 1px solid var(--club-line); border-radius: 9px; padding: 22px 12px; align-items: flex-start; }
.char-team { padding: 0 20px; border-color: var(--club-line); }
.char-team-label { color: var(--club-muted); font-size: 12px; margin-bottom: 12px; }
.char-card { background: transparent; font-family: var(--font-pixel); border: 0; padding: 0 0 4px; color: var(--club-ink); gap: 7px; }
.char-card-name { font-size: 11px; line-height: 1.5; }
.char-card:hover .char-face-wrap { outline: 2px solid var(--color-primary); }
.char-card[aria-expanded='true'] .char-face-wrap { outline: 2px solid var(--color-primary); transform: translateY(-3px); }
.char-face-wrap { border-radius: 5px; background: #d9e5f3; }
.char-face-fallback::before { content: attr(data-initial); display: grid; place-items: center; width: 100%; height: 100%; font: 22px/1 var(--font-pixel); color: #3c587c; }
.char-mobile-toggle { display: none; }
#char-expand-panel, body.dark-mode #char-expand-panel { background: #1a2940; border-radius: 0 0 9px 9px; border-left: 3px solid var(--character-accent,#6BC0E7); }
#char-expand-panel.active { max-height: 480px; }
.char-expand-inner { gap: 24px; padding: 22px; }
#char-expand-img { width: 110px; height: 150px; object-fit: contain; background: transparent; }
#char-expand-name { font: 20px/1.5 var(--font-pixel); }
#char-expand-desc { color: #e0e9f6; font: 14px/1.8 var(--font-body); text-shadow: none; }
#footer { background: var(--club-panel); border-color: var(--club-line); padding: 28px 24px 22px; }
body.dark-mode #footer { background: var(--club-panel); }
.club-footer-inner { max-width: 1032px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
#footer .club-footer-title { text-align: left; font: 16px/1.6 var(--font-pixel); color: var(--club-ink); }
.club-footer-inner > div > p:last-child { text-align: left !important; margin-top: 5px; color: var(--club-muted) !important; font-size: 12px !important; }
.club-footer-nav { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.club-footer-nav a { display: inline-flex; align-items: center; min-height: 36px; color: var(--club-muted); font-size: 12px; text-decoration: none; }
#footer .copyright { color: var(--club-muted); margin-top: 24px; }
#footer .copyright a { color: var(--club-muted); }
#theme-toggle-wrap { bottom: 18px; right: 18px; background: var(--club-panel); padding: 6px; border: 1px solid var(--club-line); border-radius: 28px; box-shadow: var(--club-shadow); }
/* Lesson components are opt-in; labels describe author-provided content only. */
#article-view .lesson-box { margin: 24px 0; padding: 18px 20px; border: 1px solid var(--club-line); border-left: 4px solid var(--color-primary); border-radius: 8px; background: var(--color-surface-muted); }
#article-view .lesson-box > .lesson-label { margin: 0 0 10px; font: 700 14px/1.6 var(--font-pixel); color: var(--color-heading); }
#article-view .lesson-box > :last-child { margin-bottom: 0; }
#article-view .lesson-box ul { margin: 8px 0 0; }
#article-view .lesson-box--tip { border-left-color: #1e8993; }
#article-view .lesson-box--warning { border-left-color: #c47e17; }
#article-view .lesson-box--mission { border-left-color: #8362c5; }
#article-view .lesson-answer { margin: 24px 0; padding: 16px 20px; background: var(--color-surface-muted); border: 1px solid var(--club-line); border-radius: 8px; }
#article-view .lesson-answer summary { cursor: pointer; font: 14px/1.8 var(--font-pixel); min-height: 26px; }
#article-view .lesson-answer[open] summary { margin-bottom: 14px; }
body.dark-mode .tt-comment-cont :is(.tt_desc,.tt-txt-mention,.tt-link-user) { color: var(--club-ink); }
body.dark-mode .tt-comment-cont :is(input,textarea) { background: var(--club-panel); color: var(--club-ink); border-color: var(--club-line); }
@media screen and (max-width: 1100px) {
  .club-start, .club-section { margin-left: 24px; margin-right: 24px; }
  .char-team { padding: 0 12px; }
  .char-list { gap: 9px; flex-wrap: wrap; justify-content: center; }
}
@media screen and (min-width:768px) and (max-width:1023px) {
  .club-start { padding: 26px; gap: 24px; }
  .club-start h2 { font-size: 27px; }
  body.post-type-thumbnail #content > .inner:has(> .post-item) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media screen and (max-width:767px) {
  .club-header-inner { display: block; padding: 19px 18px 16px; }
  #header h1 { font-size: 25px; padding: 6px 0; }
  #header h1 a { font-size: inherit; }
  .club-brand .club-eyebrow { font-size: 9px; }
  .club-tagline { font-size: 12px; }
  #header .search, #header .search.on { width: 100%; margin-top: 16px; inset: auto; padding: 0; position: relative; }
  #header .search.on button { position: static; }
  .club-navigation { display: none; }
  #mobile-hamburger { width: calc(100% - 36px); margin: 0 18px 10px; height: 48px; border-width: 3px; border-radius: 9px; background: linear-gradient(180deg,var(--color-primary),#142b65); }
  #mobile-nav-drawer { position: relative; z-index: 110; margin: -10px 18px 10px; border: 1px solid #405272; background: #16243b; }
  #mobile-nav-drawer.open { max-height: 65vh; overscroll-behavior: contain; }
  .mnav-group-header { width: 100%; box-sizing: border-box; text-align: left; gap: 12px; line-height: 1.7; font-size: 13px; padding: 13px 18px; }
  .mnav-group-header a { display: block; min-height: 22px; overflow-wrap: anywhere; }
  .mnav-group-header[data-toggle] span:first-child { flex: 1; }
  .mnav-sub a { min-height: 24px; padding: 10px 18px 10px 28px; }
  .notice { gap: 8px; padding: 0 18px; }
  .notice-pause { font-size: 10px; padding: 0 5px; }
  #content { padding-top: 20px; }
  #content > .inner, #content .guest_inner { padding: 0 18px; }
  .club-start, .club-section { margin-left: 18px; margin-right: 18px; margin-bottom: 28px; }
  .club-start { grid-template-columns: minmax(0,1fr); padding: 24px; gap: 22px; }
  .club-start h2 { font-size: 25px; }
  .club-start-copy > p:not(.club-eyebrow) { font-size: 13px; }
  .club-actions { flex-direction: column; align-items: stretch; }
  .club-button { padding: 12px; }
  .club-start-path { padding: 17px; }
  .club-start-path ol { gap: 15px; }
  .club-section-heading { display: block; }
  .club-section-heading h2 { font-size: 20px; }
  .club-section-heading > p { margin-top: 6px; font-size: 12px; }
  .club-field-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .club-field-grid > a { padding: 15px; }
  .club-field-number { font-size: 9px; }
  .club-field-grid h3 { font-size: 14px; }
  .club-field-grid p { font-size: 11px; }
  .club-field-arrow { right: 12px; top: 15px; }
  .post-header { padding: 10px 18px 14px; }
  .post-header h1 { font-size: 19px; }
  .post-header .list-type button { padding: 0 8px; min-width: 42px; font-size: 11px; }
  .post-item > a, .post-item:first-child > a { grid-template-columns: minmax(0,1fr) 90px; gap: 0 12px; padding: 16px; }
  .post-item .thum { height: 90px; }
  .post-item .title { font-size: 15px; }
  .post-item .category { font-size: 10px; }
  .post-item .date { font-size: 10px; }
  .post-item .excerpt { font-size: 12px; -webkit-line-clamp: 2; }
  body.post-type-thumbnail #content > .inner:has(> .post-item) { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .post-type-thumbnail .post-item > a { padding: 0 12px 14px; }
  .post-type-thumbnail .post-item .thum { width: calc(100% + 24px); margin: 0 -12px 12px; height: auto; }
  .post-type-thumbnail .post-item .title { font-size: 14px; line-height: 1.5; max-height: 3em; -webkit-line-clamp: 2; }
  .post-type-thumbnail .post-item .excerpt { display: none; }
  .post-item .article-tags { padding: 0 12px 12px; }
  .hgroup { margin-top: 0; padding: 20px 18px 14px; border-radius: 9px 9px 0 0; }
  .hgroup h1 { font-size: 23px; }
  #article-view { font-size: 16px; padding: 8px 18px 30px; }
  #article-view p { line-height: 1.8; }
  #article-view pre code.hljs { font-size: 13px; padding: 16px; }
  #article-view .rpg-dialog-block { padding: 10px; }
  #article-view .rpg-dialog-avatar { width: 48px; }
  #article-view .rpg-dialog-avatar img { width: 48px; height: 48px; }
  #article-view .rpg-dialog-bubble { font-size: 14px; padding: 9px; }
  #article-view .rpg-dialog-name { font-size: 10px; }
  #character-intro { display: block; }
  .char-mobile-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 13px 16px; color: var(--club-ink); border: 1px solid var(--club-line); border-radius: 8px; background: var(--club-panel); font: 13px/1.6 var(--font-pixel); }
  #character-intro:not(.members-open) .char-intro-inner { display: none; }
  .char-intro-inner { flex-wrap: wrap; gap: 20px; margin-top: 10px; padding: 18px 10px; }
  .char-team { border: 0; padding: 0; width: 100%; }
  .char-list { justify-content: center; gap: 14px; }
  .char-expand-inner { padding: 16px; gap: 14px; }
  #char-expand-img { width: 75px; height: 100px; }
  #char-expand-name { font-size: 17px; }
  #char-expand-desc { font-size: 13px; }
  .club-footer-inner { display: block; }
  .club-footer-nav { margin-top: 14px; }
  #theme-toggle-wrap { right: 10px; bottom: 10px; }
  #article-view .lesson-box { padding: 15px; }
}
@media screen and (max-width:359px) {
  .club-start { padding: 20px; }
  .club-start h2 { font-size: 22px; }
  body.post-type-thumbnail #content > .inner:has(> .post-item) { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .club-field-grid > a, #gnb-sub-bar, #mobile-nav-drawer, .mnav-sub,
  #char-expand-panel, .char-face-wrap, .notice-slider { transition: none; }
  .club-field-grid > a:hover { transform: none; }
}
/* Resolve original dark footer/link selectors without muting useful content. */
body.dark-mode #footer p, body.dark-mode #footer p a { color: var(--club-muted); }
body.dark-mode #footer .club-footer-title { color: var(--club-ink); }
/* Dark mode also covers navigation adjacent to the article, not only its body. */
body.dark-mode :is(.tags h2, .related-articles h2, .related-articles ul li a, .cover-footer p, .cover-footer .menu ul li a) { color: var(--club-ink); }
body.dark-mode :is(.tags, .related-articles, .comments, .comments .comment-list ul li) { border-color: var(--club-line); }
body.dark-mode .comments .comment-list ul li p { color: var(--club-ink); }
.theme-switch .slider::before {
  content: ''; top: 5px; left: 5px; width: 18px; height: 18px;
  transform: none; border-radius: 50%; background: #fff;
}
.theme-switch input:checked + .slider::before { content: ''; transform: translateX(24px); }
/* A failed highlight.js download still leaves plain code readable. */
#article-view pre code:not(.hljs) { display: block; padding: 20px; white-space: pre; overflow: auto; font: 14px/1.75 var(--font-code); }
