@charset "utf-8";
/* ==========================================================================
   ALONE WITH DONI — Tistory Magazine Skin
   나 혼자 도니랑 산다 / alonewithdoni.tistory.com
   본문 폰트: Pretendard (사이트 전체 적용) / 영문 워드마크: Playfair Display
   ========================================================================== */

/* --------------------------------------------------------------------------
   [폰트] 기본은 skin.html <head> 의 CDN 링크로 불러옵니다.
   티스토리 '파일 업로드'에 woff2 를 올려서 쓰려면
   ① skin.html 의 pretendard CDN <link> 한 줄을 지우고
   ② 아래 @font-face 주석(/* ... *\/)을 풀어주세요.
      업로드할 파일 (web/static/woff2-subset 폴더):
        Pretendard-Regular.subset.woff2
        Pretendard-Bold.subset.woff2
        Pretendard-Black.subset.woff2
   업로드한 파일은 항상 ./images/파일명 으로 참조됩니다.
--------------------------------------------------------------------------- */
/*
@font-face{
  font-family:"Pretendard";font-style:normal;font-weight:400;font-display:swap;
  src:url("./images/Pretendard-Regular.subset.woff2") format("woff2");
}
@font-face{
  font-family:"Pretendard";font-style:normal;font-weight:700;font-display:swap;
  src:url("./images/Pretendard-Bold.subset.woff2") format("woff2");
}
@font-face{
  font-family:"Pretendard";font-style:normal;font-weight:900;font-display:swap;
  src:url("./images/Pretendard-Black.subset.woff2") format("woff2");
}
*/

/* 2026-09-11: 사이드바 손글씨 문구("좋은 하루가...") 전용 — 눈누 "온글잎 바닷바람" */
@font-face{
  font-family:"OngleIpSeaBreeze";
  src:url("https://cdn.jsdelivr.net/gh/projectnoonnu/2510-1@1.0/Ownglyph_the_sea_breeze-Rg.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}

/* ==========================================================================
   1. 토큰
   ========================================================================== */
:root{
  --font-ko:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,
            system-ui,"Malgun Gothic","맑은 고딕",sans-serif;
  --font-display:"Playfair Display","Times New Roman",serif;
  --font-mono:ui-monospace,SFMono-Regular,Consolas,"D2Coding",monospace;

  --paper:#FFFFFF;
  --sheet-bg:#F1EBE1;      /* 바깥 배경 — 종이봉투 베이지 (2026-09-07) */
  --ink:#111111;
  --ink-body:#26262A;
  --mute:#6E6E6E;
  --line:#E4E3E0;
  --tint:#F6F0E5;
  --accent:#B5502E;        /* 2026-09-11: 포인트 컬러 — 테라코타/브릭 오렌지. 빨간색 대신 이걸로 통일 */

  --inner:1080px;
  --read:860px;
}

/* ==========================================================================
   2. 리셋 + 폰트 전역 적용
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  /* 2026-09-07: 바깥은 베이지 종이톤, 가운데 콘텐츠는 흰 종이 한 장처럼 보이게.
     노이즈는 SVG 필터를 data URI 로 넣어 외부 파일 없이 종이 결을 만든다 */
  margin:0;color:var(--ink);
  background-color:var(--sheet-bg);
  /* 2026-09-07: SVG 노이즈 -> 실제 크라프트 종이 텍스처로 교체.
     티스토리 파일업로드에 올린 paper.jpg 는 항상 ./images/ 경로로 불린다.
     이음매를 보정한 타일이라 repeat 로 깔아도 격자선이 보이지 않는다 */
  background-image:url('./images/paper.jpg');
  background-repeat:repeat;
  background-size:800px 800px;
  font-size:15px;line-height:1.7;letter-spacing:-.01em;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  word-break:keep-all;overflow-wrap:break-word;
}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd,ul,ol{margin:0;padding:0}
ul,ol{list-style:none}
img{max-width:100%;height:auto;border:0;vertical-align:middle}
a{color:inherit;text-decoration:none}
button{border:0;background:none;padding:0;cursor:pointer;color:inherit}
input,textarea,select,button{font-size:inherit;line-height:inherit}
table{border-collapse:collapse;width:100%}

/* 사이트 전체 Pretendard 강제 (티스토리 에디터 인라인 폰트까지 덮어씀) */
body,body *{font-family:var(--font-ko) !important}
/* 예외 1 — 영문 워드마크만 세리프 (서브카피는 산세리프 유지, 레퍼런스 신문 마스트헤드 참고) */
.logo-latin,.foot-logo{font-family:var(--font-display) !important}
/* 예외 2 — 코드 블록은 고정폭 */
.post-body pre,.post-body pre *,.post-body code,.post-body kbd,.post-body samp{
  font-family:var(--font-mono) !important
}

/* 가운데 콘텐츠는 흰 종이 한 장. 헤더·본문·푸터가 세로로 이어져 한 장처럼 보인다 */
.inner{max-width:var(--inner);margin:0 auto;padding:0 24px;background:var(--sheet-bg)}
.sr{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0
}
.skip{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--ink);color:var(--paper);padding:10px 16px;font-size:13px
}
.skip:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--ink);outline-offset:2px
}

/* 공통 구분 룰 (섹션 제목) */
.sec-rule{display:flex;align-items:center;gap:16px;margin:0 0 22px}
.sec-rule span{
  font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--ink)
}
.sec-rule i{flex:1;height:1px;background:var(--line)}

/* ==========================================================================
   3. 헤더 / 마스트헤드
   ========================================================================== */
/* 2026-09-11: The Daily Chronicle 레퍼런스 마스트헤드로 교체 — 상단 발행일 스트립 +
   가운데 정렬 세리프 워드마크 + 트래킹 넓힌 산세리프 서브카피 + 굵은 룰 두 줄 */
#masthead{position:relative}
.mast-strip{
  display:flex;justify-content:space-between;align-items:center;
  padding:9px 0 8px;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mute);font-variant-numeric:tabular-nums;
  border-bottom:1px solid var(--line)
}
.mast-strip b{font-weight:600;color:var(--ink)}

.mast-logo{text-align:center;padding:18px 0 16px}  /* 2026-09-11: 30/26 -> 18/16, 전체 여백 압축 */
.mast-logo a{display:inline-block}
.logo-latin{
  display:block;font-weight:700;
  font-size:clamp(26px,4.6vw,44px);letter-spacing:.01em;
  line-height:1.08;color:var(--ink)
}
.logo-sub{
  display:block;margin-top:8px;
  font-size:11px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;
  color:var(--mute)
}

/* --- 카테고리 내비 --------------------------------------------------- */
.gnb{
  border-top:2px solid var(--ink);border-bottom:1px solid var(--line);
  display:flex;justify-content:center;align-items:center;gap:28px;flex-wrap:wrap;
  padding:0 8px
}
.gnb .tt_category{display:flex;flex-wrap:wrap;justify-content:center;gap:28px}
.gnb .tt_category > li{position:relative}
.gnb .tt_category a{
  display:block;padding:10px 0;
  font-size:12.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink);
  border-bottom:2px solid transparent;margin-bottom:-1px
}
.gnb .tt_category a:hover{border-bottom-color:var(--ink)}
.gnb .tt_category a.is-cur{border-bottom-color:var(--ink)}
.gnb .tt_category .c_cnt{display:none}           /* 글 개수 숨김 */

/* 하위 카테고리 드롭다운 */
.gnb .tt_category ul{
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  min-width:150px;background:var(--paper);border:1px solid var(--line);
  padding:6px 0;display:none;z-index:20;flex-direction:column;gap:0
}
.gnb .tt_category li:hover > ul,
.gnb .tt_category li:focus-within > ul{display:flex}
.gnb .tt_category ul a{
  padding:9px 16px;font-size:12px;font-weight:500;border:0;margin:0;white-space:nowrap;
  color:var(--mute)
}
.gnb .tt_category ul a:hover{color:var(--ink);background:var(--tint);border:0}

/* 검색 */
.gnb-search{display:flex;align-items:center;gap:6px}
.gnb-search input{
  width:110px;border:0;border-bottom:1px solid var(--line);background:none;
  padding:6px 0;font-size:10.5px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink)
}
.gnb-search input::placeholder{color:var(--mute);letter-spacing:.16em}
.gnb-search input:focus{border-bottom-color:var(--ink);outline:none}
.gnb-search button{font-size:13px;color:var(--mute);padding:4px}
.gnb-search button:hover{color:var(--ink)}

/* 모바일 토글 버튼 */
.gnb-toggle{
  display:none;position:absolute;right:24px;top:52px;
  width:32px;height:32px;padding:7px 4px
}
.gnb-toggle span{display:block;height:1.5px;background:var(--ink);margin:4px 0;transition:.2s}
.gnb-toggle.is-open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.gnb-toggle.is-open span:nth-child(2){opacity:0}
.gnb-toggle.is-open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* ==========================================================================
   4. 목록 — 좌측 프로필 사이드바 + 우측 카드 격자
   (2026-09-11: 워드프레스 리디자인 목업 구조 이식 — koonykoo.com 목업 참고)
   ========================================================================== */
#content{padding-bottom:90px}   /* 2026-09-07: 푸터 앞 여백을 흰 종이 안으로 옮김 */

.layout{
  display:grid;grid-template-columns:250px 1fr;gap:36px;align-items:start;
  padding:16px 0 0    /* 2026-09-11: 40px -> 16px, 전체 여백 압축 */
}

/* --- 좌측 프로필 사이드바 ---------------------------------------------
   2026-09-11: sticky 해제(본문과 같이 스크롤), 블록 사이 26px 간격,
   소개글 줄간격 1.75, 태그라인 이탤릭+연한 회색 확실히 적용 */
.side{display:flex;flex-direction:column;gap:26px}
.side-card{
  /* 2026-09-11: 원본 레퍼런스처럼 프로필 영역 전체를 카드 박스로 */
  background:var(--tint);border:1px solid var(--line);border-radius:4px;
  padding:28px 22px;display:flex;flex-direction:column;gap:16px
}
.side-head{display:flex;flex-direction:column;align-items:center;gap:16px}
.side-photo{
  position:relative;aspect-ratio:1/1;border-radius:50%;width:100%;
  background:none;border:0;
  display:flex;align-items:center;justify-content:center;color:var(--mute);overflow:hidden
}
.side-photo img{width:100%;height:100%;object-fit:cover;display:block}
.side-photo-tag{
  position:absolute;bottom:9px;left:9px;font-size:9.5px;letter-spacing:.02em;
  color:var(--mute);background:var(--paper);padding:2px 7px;border-radius:9px
}
.side-name{
  font-family:var(--font-display) !important;font-weight:700;font-size:22px;
  text-align:center;color:var(--ink)
}
.side-intro{display:flex;flex-direction:column;gap:14px}
.side-bio{font-size:13px;line-height:1.75;color:var(--mute);text-align:left}
.side-thanks{font-size:12.5px;line-height:1.75;color:var(--mute);text-align:left}
.side-rule{display:none}  /* 26px 블록 간격만으로 구분, 얇은 선은 시각적으로 과함 */
.side-motto{
  /* 2026-09-11: 원본 레퍼런스와 동일한 폰트 — 온글잎 바닷바람 */
  font-family:"OngleIpSeaBreeze",cursive !important;font-weight:400;
  font-size:24px;line-height:1.3;text-align:center;color:var(--ink);margin-top:4px
}
.side-quote{
  /* 2026-09-11 재수정: 인용구를 다시 .side-card 안으로 — 프로필 박스 하나에
     사진/소개글/인용구까지 비율 균등하게 들어가도록, 구분은 위쪽 선으로만 */
  border-top:1px solid var(--line);padding:22px 2px 0;text-align:center;margin:0
}
.side-quote-mark{
  /* 2026-09-11: 원본 레퍼런스처럼 인용부호를 크게, 가운데 정렬 */
  font-family:var(--font-display) !important;font-size:52px;line-height:.5;
  color:var(--ink);display:block;text-align:center;margin-bottom:10px
}
.side-quote p{font-size:13.5px;line-height:1.75;color:var(--ink);margin-bottom:10px}
.side-quote cite{
  display:block;font-style:normal;font-size:10.5px;letter-spacing:.08em;color:var(--mute)
}

/* --- 우측 카드 격자 ---------------------------------------------------- */
.list-col{min-width:0}
.grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:34px 24px
}
.card{min-width:0;display:flex;flex-direction:column}

.card-thumb{
  display:block;position:relative;overflow:hidden;
  aspect-ratio:4/3;
  background:linear-gradient(150deg,#EDECEA 0%,#BEBEBA 100%)   /* 사진 없는 글의 자리표시자 */
}
.card-thumb img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.2,.7,.2,1)
}
.card:hover .card-thumb img{transform:scale(1.04)}
.card-chip{
  position:absolute;top:0;left:0;z-index:2;
  background:var(--ink);color:var(--paper);
  font-size:9.5px;font-weight:700;letter-spacing:.1em;padding:6px 10px;line-height:1
}
.card-body{padding-top:14px;display:flex;flex-direction:column;flex:1}
.card-title{
  font-size:16px;font-weight:800;line-height:1.4;letter-spacing:-.035em;margin-bottom:8px
}
.card-title a{display:inline-block}
.card-title a:hover{text-decoration:underline;text-underline-offset:3px}
.card-ex{
  font-size:12.5px;line-height:1.8;color:var(--mute);margin-bottom:10px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.card-meta{
  margin-top:auto;display:flex;gap:14px;align-items:baseline;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);
  font-variant-numeric:tabular-nums
}

/* --- 홈 첫 글만 히어로 (카테고리·검색 목록은 균일 격자) -------------
   2026-09-11: 목업처럼 이미지를 위에 크게, 제목·요약을 그 아래 세로로 쌓는
   구조로 변경 (기존 좌우 분할에서 상하 적층으로) */
#tt-body-index .grid .card:first-child{
  grid-column:1 / -1;
  display:block;
  padding-bottom:0;border-bottom:0;margin-bottom:0   /* 2026-09-11: 히어로-카테고리 사이 여백 제거, 구분선은 cat-showcase 쪽에만 */
}
#tt-body-index .grid .card:first-child .card-thumb{aspect-ratio:21/9}  /* 2026-09-11: 16/10 -> 21/9, 더 납작하게 */
#tt-body-index .grid .card:first-child .card-body{padding-top:14px}
#tt-body-index .grid .card:first-child .card-title{
  font-family:var(--font-display) !important;
  font-size:clamp(22px,2.4vw,30px);line-height:1.25;letter-spacing:0;font-weight:700;
  margin-bottom:8px;text-wrap:balance
}
#tt-body-index .grid .card:first-child .card-ex{
  font-size:13.5px;line-height:1.7;-webkit-line-clamp:2;max-width:62ch;margin-bottom:10px
}
#tt-body-index .grid .card:first-child .card-chip{
  font-size:10px;padding:7px 12px
}
/* 히어로 메타 줄: "N시간 전 | 더 보기 →" — JS(hero-meta-js)가 card-meta 내용을
   이 마크업으로 교체한다. 구분선(|)은 연하게, 화살표는 더 보기 옆에 인라인 SVG로 */
#tt-body-index .grid .card:first-child .card-meta{
  gap:12px;font-size:11px;letter-spacing:.04em;text-transform:none
}
.hero-sep{color:var(--line);font-weight:400}
.hero-more{
  display:inline-flex;align-items:center;gap:5px;
  font-weight:700;color:var(--ink);letter-spacing:0;text-transform:none
}
.hero-more svg{width:11px;height:11px;flex:0 0 auto}
.hero-more:hover{color:var(--accent)}

/* ==========================================================================
   4-1. 카테고리별 최신글 (Latest from Each Category)
   2026-09-11: 참고 레퍼런스(daily-chronicle)의 A/B/C 3분할 섹션 —
   hero-meta-js 스크립트가 히어로 카드 뒤에 삽입한다. 실제 최신글과 무관한
   고정 카테고리 소개 카드(도니_카테고리_*.png)라 날짜 줄은 넣지 않았다.
   ========================================================================== */
.cat-showcase{grid-column:1 / -1;margin-top:18px;padding-top:16px;border-top:1px solid var(--ink)}
.cat-showcase-head{
  display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px
}
.cat-showcase-head h2{
  font-family:var(--font-display) !important;font-weight:700;font-size:20px;letter-spacing:0
}
.cat-viewall{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)
}
.cat-viewall svg{width:11px;height:11px}
.cat-viewall:hover{opacity:.75}

.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px 22px}
.cat-card{display:block}
.cat-card .cat-label{
  /* 2026-09-11: 원본 레퍼런스의 "A/B/C"처럼 — 크고 굵은 세리프, 이미지 위에 */
  display:block;font-family:var(--font-display) !important;font-weight:900;
  font-size:32px;line-height:1;letter-spacing:0;
  text-transform:none;color:var(--accent);margin-bottom:8px
}
.cat-card .cat-thumb{
  display:block;aspect-ratio:1/1;overflow:hidden;background:var(--tint);margin-bottom:14px
}
.cat-card .cat-thumb img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.2,.7,.2,1)
}
.cat-card:hover .cat-thumb img{transform:scale(1.04)}
.cat-card h3{
  /* 2026-09-11: Playfair Display는 한글을 지원하지 않아 body 강제 산세리프로
     떨어져 보였음 — 원본 레퍼런스 느낌의 한글 세리프(Noto Serif KR)로 교체 */
  font-family:"Noto Serif KR",var(--font-display),serif !important;font-weight:700;font-size:16.5px;
  line-height:1.4;letter-spacing:0;color:var(--ink);margin-bottom:10px
}
.cat-card .cat-more{
  display:inline-flex;align-items:center;gap:5px;
  font-size:12px;font-weight:700;color:var(--ink)
}
.cat-card .cat-more svg{width:10px;height:10px}
.cat-card:hover .cat-more{color:var(--accent)}

@media (max-width:760px){
  .cat-grid{grid-template-columns:1fr;gap:28px}
}

/* ==========================================================================
   5. 페이징
   ========================================================================== */
.paging{
  display:flex;justify-content:center;gap:8px;
  border-top:1px solid var(--line);margin-top:48px;padding-top:28px
}
.paging .pg{
  width:32px;height:32px;display:grid;place-items:center;
  border:1px solid var(--line);font-size:11.5px;font-weight:600;color:var(--mute);
  font-variant-numeric:tabular-nums
}
.paging .pg:hover{border-color:var(--ink);color:var(--ink)}
.paging .pg.is-cur{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.paging .pg-arrow{font-size:15px;line-height:1}

/* 홈은 home-paging-js가 카드를 직접 넘기므로, 티스토리 실제 서버 페이징(항상 "1"만
   찍히는 진짜 s_paging)은 중복 노출이라 숨긴다. 카테고리·검색·태그는 그대로 둔다 */
#tt-body-index .paging:not(.home-paging){display:none}

/* ==========================================================================
   6. 글 보기
   ========================================================================== */
#tt-body-page .grid{display:block;padding-top:34px}
.post{max-width:var(--read);margin:0 auto}

.post-head{text-align:center;margin-bottom:30px}
.post-cat{
  display:block;font-size:10px;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:var(--mute);margin-bottom:14px
}
.post-title{
  font-size:clamp(24px,3.2vw,34px);font-weight:900;line-height:1.28;
  letter-spacing:-.04em;margin-bottom:16px;text-wrap:balance
}
.post-meta{
  display:flex;justify-content:center;gap:18px;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);
  border-bottom:1px solid var(--line);padding-bottom:22px;
  font-variant-numeric:tabular-nums
}

.post-protected{
  border:1px solid var(--line);padding:34px 24px;text-align:center;margin-bottom:30px
}
.protected-msg{font-size:13.5px;color:var(--mute);margin-bottom:14px}
.post-protected input[type="password"]{
  border:1px solid var(--line);padding:9px 12px;font-size:13px
}

/* --- 본문 (티스토리 에디터 출력물) --------------------------------- */
.post-body{font-size:15.5px;line-height:1.95;color:var(--ink-body)}
.post-body p{margin:0 0 20px}
.post-body p:empty{margin:0;height:12px}
/* 마크다운 모드 발행글은 본문에 .tt_article_useless_p_margin이 붙고, 티스토리가
   uselessPMargin.css로 p margin/padding을 !important 0으로 눌러 위의 문단 간격 20px을
   무효화한다. 그래서 문단이 다 붙어버린다. 되돌린다. (2026-09-07) */
.post-body .tt_article_useless_p_margin p{margin:0 0 20px !important}
.post-body .tt_article_useless_p_margin p:empty{margin:0 !important;height:12px}
.post-body .tt_article_useless_p_margin li p{margin:0 !important}
.post-body br{line-height:1.95}
/* 본문 링크: 파란색 + 밑줄 (2026-09-07 재변경).
   검은색으로 바꿔봤다가 되돌렸다. 링크처럼 안 보인다는 판단.
   중요한 건 색 자체보다 "모든 글에서 같은 색"이라는 점이다. 그래서 색을 직접 지정한다.
   :link/:visited/:hover 를 전부 잡아야 방문한 링크가 보라색으로 안 변한다 */
.post-body a,
.post-body a:link,
.post-body a:visited,
.post-body a:hover,
.post-body a:active{
  color:#1155CC;
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px
}
.post-body a:hover{text-decoration-thickness:2px}
.post-body strong,.post-body b{font-weight:700;color:var(--ink)}
.post-body em{font-style:italic}

/* 소제목 왼쪽 세로 막대는 제거했다 (2026-09-07). 본문에 진짜 제목 태그가 들어가기
   시작하면서 막대가 전부 드러나 글이 산만해졌다. 구분은 크기와 위아래 여백으로 준다 */
.post-body h1,.post-body h2,.post-body h3,.post-body h4{
  font-weight:800;letter-spacing:-.035em;line-height:1.4;color:var(--ink);
  margin:40px 0 14px;padding-left:0;border-left:0
}
.post-body h1{font-size:22px}
.post-body h2{font-size:20px}
.post-body h3{font-size:18px}
.post-body h4{font-size:16px}
/* 마크다운 모드로 붙여넣은 소제목에 붙는 data-ke-size 때문에 티스토리 기본 CSS가 굵기를 normal로 덮어써서, 아이디를 붙여 우선순위를 올린다 (2026-09-15) */
#tt-body-page .post-body h2[data-ke-size],#tt-body-page .post-body h3[data-ke-size],#tt-body-page .post-body h4[data-ke-size]{font-weight:800}

.post-body ul,.post-body ol{margin:0 0 20px;padding-left:20px}
.post-body ul{list-style:disc}
.post-body ol{list-style:decimal}
.post-body li{margin:0 0 7px}
.post-body li::marker{color:var(--mute)}

.post-body blockquote{
  margin:30px 0;padding:22px 0;
  border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);
  font-size:17px;font-weight:700;line-height:1.7;letter-spacing:-.03em;
  text-align:center;color:var(--ink)
}
.post-body blockquote p{margin:0}
.post-body blockquote.blockquote-type1{
  border:0;border-left:3px solid var(--ink);padding:2px 0 2px 18px;
  text-align:left;font-size:15.5px;font-weight:600
}

.post-body figure{margin:28px 0}
.post-body figure img{width:100%;display:block}
.post-body figcaption{
  margin-top:9px;font-size:11px;color:var(--mute);letter-spacing:.02em;line-height:1.6
}
.post-body figure.imagegridblock img{width:auto}

.post-body hr{
  border:0;border-top:1px solid var(--line);margin:36px 0
}
.post-body table{margin:26px 0;font-size:13.5px}
.post-body th,.post-body td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.post-body th{background:var(--tint);font-weight:700;color:var(--ink)}

.post-body pre{
  margin:26px 0;padding:18px 20px;background:var(--tint);border:1px solid var(--line);
  font-size:12.5px;line-height:1.8;overflow-x:auto
}
.post-body code{
  background:var(--tint);border:1px solid var(--line);padding:1px 5px;font-size:.9em
}
.post-body pre code{border:0;padding:0;background:none}

.post-body figure.oglink{border:1px solid var(--line);margin:26px 0}
.post-body .another_category{
  border:1px solid var(--line);margin:30px 0 0;font-size:13px
}
.post-body .another_category th,.post-body .another_category td{border:0}

/* --- 태그 ------------------------------------------------------------ */
.post-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:36px;font-size:0}
.post-tags a{
  font-size:11px;color:var(--mute);border:1px solid var(--line);padding:6px 11px;
  letter-spacing:-.01em
}
.post-tags a:hover{border-color:var(--ink);color:var(--ink)}

/* --- 관련 글 (이전/다음글 대체) -------------------------------------- */
.related{margin-top:48px;border-top:1px solid var(--ink);padding-top:22px}
.related-list{display:grid;background:transparent;border:1px solid var(--line)}
.related-list li{background:transparent}
.related-list li+li{border-top:1px solid var(--line)}
.related-list a{
  display:block;padding:16px 18px;font-size:13.5px;font-weight:700;letter-spacing:-.025em
}
.related-list a:hover{background:var(--tint)}

/* ==========================================================================
   7. 댓글
   ========================================================================== */
.cmt{max-width:var(--read);margin:52px auto 0;border-top:1px solid var(--ink);padding-top:22px}
.cmt-list{margin-bottom:6px}
.cmt-item{
  display:grid;grid-template-columns:34px 1fr;gap:13px;
  padding:17px 0;border-bottom:1px solid var(--line)
}
.cmt-item.depth-1,.cmt-item.reply{
  margin-left:28px;padding-left:16px;border-left:1px solid var(--line)
}
.cmt-av img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--tint)}
.cmt-who{font-size:12.5px;font-weight:700;letter-spacing:-.015em;margin-bottom:4px}
.cmt-date{
  font-weight:400;color:var(--mute);font-size:10px;letter-spacing:.1em;margin-left:9px;
  font-variant-numeric:tabular-nums
}
.cmt-txt{font-size:13px;line-height:1.8;color:var(--ink-body)}
.cmt-txt p{margin:0 0 6px}
.cmt-act{margin-top:6px}
.cmt-act a{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.cmt-act a:hover{color:var(--ink)}

.cmt-form{margin-top:24px}
.cmt-me{font-size:12.5px;font-weight:700;margin-bottom:10px}
.cmt-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.cmt-form input[type="text"],
.cmt-form input[type="password"],
.cmt-form textarea{
  width:100%;border:1px solid var(--line);background:var(--tint);
  padding:10px 12px;font-size:12.5px;color:var(--ink)
}
.cmt-form textarea{resize:vertical;min-height:86px;line-height:1.8}
.cmt-form input:focus,.cmt-form textarea:focus{border-color:var(--ink);background:var(--paper);outline:none}
.cmt-submit{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.cmt-secret{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--mute)}
.cmt-submit button{
  background:var(--ink);color:var(--paper);
  font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  padding:12px 26px
}
.cmt-submit button:hover{opacity:.85}

/* ==========================================================================
   8. 푸터
   ========================================================================== */
#foot{margin-top:0}            /* 2026-09-07: 바깥 여백 제거 — 베이지 띠가 끼어들지 않게 */
.foot-inner{
  border-top:1px solid var(--ink);padding-top:20px;padding-bottom:44px;
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap
}
.foot-logo{
  font-weight:400;font-size:14px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink);padding-left:.28em
}
.foot-desc{font-size:11.5px;color:var(--mute);flex:1;text-align:center;min-width:160px}
.foot-copy{
  font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);
  font-variant-numeric:tabular-nums
}

/* ==========================================================================
   9. 반응형
   ========================================================================== */
@media (max-width:900px){
  /* 2026-09-11: 사이드바를 본문 위로 올리고 한 칸으로 접는다 */
  .layout{grid-template-columns:1fr;gap:28px}
  .side{gap:18px}
  .side-head{flex-direction:row;align-items:center;gap:16px}
  .side-photo{width:76px;flex:0 0 auto}
  .side-name{width:auto;text-align:left}
  .side-intro{flex:1 1 auto}
  .side-bio,.side-thanks{text-align:left}
  .grid{grid-template-columns:repeat(2,1fr);gap:32px 20px}
}

@media (max-width:760px){
  .inner{padding:0 18px}
  .mast-logo{padding:20px 0 18px;text-align:center}
  .logo-latin{font-size:26px;letter-spacing:0}
  .logo-sub{font-size:9.5px;letter-spacing:.22em;margin-top:8px}

  .gnb-toggle{display:block;top:46px;right:18px}
  .gnb{
    display:none;flex-direction:column;align-items:stretch;gap:0;
    padding:6px 0 14px;border-bottom:1px solid var(--line)
  }
  .gnb.is-open{display:flex}
  .gnb .tt_category{flex-direction:column;gap:0;width:100%}
  .gnb .tt_category > li{border-bottom:1px solid var(--line)}
  .gnb .tt_category a{padding:13px 2px;border:0;margin:0}
  .gnb .tt_category a.is-cur{color:var(--mute)}
  .gnb .tt_category ul{
    position:static;transform:none;border:0;padding:0 0 8px 14px;display:flex;min-width:0
  }
  .gnb-search{width:100%;margin-top:12px}
  .gnb-search input{flex:1;width:auto}

  .grid{gap:28px 16px;padding-top:28px}
  .card-title{font-size:15px}
  .foot-inner{flex-direction:column;align-items:flex-start;gap:10px}
  .foot-desc{text-align:left}
}

@media (max-width:520px){
  .grid{grid-template-columns:1fr;gap:30px}
  .card-thumb{aspect-ratio:16/10}
  .card-title{font-size:17px}
  .card-ex{-webkit-line-clamp:3}
  .post-body{font-size:15px}
  .cmt-fields{grid-template-columns:1fr}
  .cmt-item.depth-1,.cmt-item.reply{margin-left:14px;padding-left:12px}
}

/* ==========================================================================
   10. 인쇄 / 모션 배려
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important}
}
@media print{
  #masthead,#foot,.paging,.cmt,.related,.post-tags{display:none}
  .post{max-width:none}
}

/* ==========================================================================
   11. 카테고리 내비 보정
   [##_category_##] 이 레거시 테이블 트리(table > td.branch* > span.c_cnt)로
   출력되므로, 테이블을 인라인으로 접어 가로 내비로 만든다.
   ========================================================================== */
.gnb > table{text-align:center;flex:0 1 auto;width:auto}
.gnb table,.gnb tbody,.gnb tr,.gnb td{
  display:inline;border:0;padding:0;margin:0;background:none;width:auto
}
.gnb img,.gnb .c_cnt{display:none}
.gnb table div,.gnb table span{display:inline}
.gnb a{
  display:inline-block;padding:13px 14px;
  font-size:12.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink);
  border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap
}
.gnb a:hover,.gnb a.is-cur{border-bottom-color:var(--ink)}
.gnb{flex-wrap:nowrap}
.gnb-search{flex:0 0 auto}

@media (max-width:760px){
  .gnb{flex-wrap:wrap}
  .gnb > table{text-align:left;width:100%}
  .gnb table,.gnb tbody,.gnb tr,.gnb td{display:block}
  .gnb a{display:block;padding:13px 2px;border:0;margin:0;white-space:normal}
  .gnb td{border-bottom:1px solid var(--line)}
}

/* --- 11-1. 내비 보정 2차 ------------------------------------------------
   1) 트리 아이콘 img 에 인라인 style 이 걸려 있어 !important 필요
   2) td.ib 는 배경이미지로 28px 를 차지하므로 통째로 숨김
   3) 검색을 절대배치로 빼내 카테고리를 화면 정중앙에 놓음
   --------------------------------------------------------------------- */
.gnb img{display:none !important}
.gnb td.ib{display:none !important}
.gnb td[class^="branch"]{background-image:none !important}
.gnb{position:relative;justify-content:center}
.gnb > table{flex:1 1 auto;width:100%;text-align:center}
.gnb-search{position:absolute;right:0;top:50%;transform:translateY(-50%)}

@media (max-width:760px){
  .gnb{position:static}
  .gnb-search{position:static;transform:none;right:auto;top:auto}
}

/* --- 11-2. JS 변환된 카테고리 목록 (ul.cat) --------------------------
   레거시 트리는 이름이 <a> 가 아니라 <div> 텍스트이므로,
   skin.html 의 스크립트가 /category/이름 링크를 생성해 ul.cat 으로 교체한다.
   --------------------------------------------------------------------- */
/* 2026-09-11: 레퍼런스(daily-chronicle) 상단 메뉴처럼 왼쪽 정렬 — Home 다음에 카테고리 */
.gnb .cat{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:26px;flex:1 1 auto}
.gnb .cat li{position:relative}
.gnb .gnb-home,
.gnb .cat a{
  display:block;padding:10px 0;
  /* 2026-09-11: 레퍼런스(daily-chronicle) 상단 메뉴처럼 좀 더 크고 자간을 벌려
     무게감 있게 — 14.5px/-.01em → 16px/.03em
     2026-09-11 재수정: 기존 ".gnb-home" 단독 셀렉터가 티스토리 기본 css의
     ".gnb a"(클래스+태그)에 밀려 12.5px로 깨짐 — ".gnb .gnb-home"으로 특정도 확보 */
  font-size:16px !important;font-weight:700;letter-spacing:.03em;color:var(--ink);
  border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap
}
.gnb-home:hover,
.gnb .cat a:hover,.gnb .cat a.is-cur{border-bottom-color:var(--ink)}

@media (max-width:760px){
  .gnb .cat{flex-direction:column;justify-content:flex-start;gap:0;width:100%}
  .gnb .cat li{border-bottom:1px solid var(--line)}
  .gnb .cat a{padding:13px 2px;border:0;margin:0;white-space:normal}
  .gnb-home{display:block;padding:13px 2px;border-bottom:1px solid var(--line);margin-bottom:0}
}

/* --- 푸터 메뉴 (소개 · 개인정보처리방침 · 문의하기) --------------------- */
.foot-links{
  display:flex;gap:18px;flex-wrap:wrap;justify-content:center;
  font-size:11px;letter-spacing:.02em;color:var(--mute)
}
.foot-links a{white-space:nowrap}
.foot-links a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

@media (max-width:760px){
  .foot-links{justify-content:flex-start;gap:14px}
}

/* ==========================================================================
   12. 검색 — 돋보기 아이콘 하나만 노출, hover/focus 시 입력창 펼침
   HTML 을 고치지 않아도 되도록 기존 '→' 버튼을 CSS 마스크로 돋보기로 바꾼다.
   버튼의 onclick(검색 제출)은 그대로 살아 있고, JS 가 필요 없다.
   ========================================================================== */
.gnb-search{gap:0}

/* 라이브 HTML의 '→' 버튼을 돋보기로 치환 */
.gnb-search button:not(.search-toggle){
  font-size:0;line-height:0;display:grid;place-items:center;
  width:30px;height:30px;padding:0;color:var(--mute)
}
.gnb-search button:not(.search-toggle):hover{color:var(--ink)}
.gnb-search button:not(.search-toggle)::before{
  content:"";display:block;width:15px;height:15px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'><circle cx='8.5' cy='8.5' r='5.5'/><path d='M12.8 12.8 17 17'/></svg>") center/contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'><circle cx='8.5' cy='8.5' r='5.5'/><path d='M12.8 12.8 17 17'/></svg>") center/contain no-repeat;
}

/* skin.html 을 새로 붙여넣은 경우(아이콘이 이미 SVG) */
.gnb-search .search-toggle{
  display:grid;place-items:center;width:30px;height:30px;padding:0;color:var(--mute)
}
.gnb-search .search-toggle:hover{color:var(--ink)}
.gnb-search .search-toggle svg{
  width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round
}

/* 입력창은 기본으로 접어두고 hover/focus 에서 펼친다 */
.gnb-search input{
  width:0;padding:6px 0;border-bottom-color:transparent;opacity:0;
  pointer-events:none;transition:width .28s ease, opacity .2s ease
}
.gnb-search:hover input,
.gnb-search:focus-within input,
.gnb-search.is-open input{
  width:150px;opacity:1;pointer-events:auto;
  border-bottom-color:var(--line);margin-right:6px
}
.gnb-search input:focus{border-bottom-color:var(--ink)}

@media (max-width:760px){
  /* 모바일은 hover 가 없으므로 항상 펼침 */
  .gnb-search{gap:6px}
  .gnb-search input,
  .gnb-search:hover input,
  .gnb-search:focus-within input,
  .gnb-search.is-open input{
    width:auto;flex:1;opacity:1;pointer-events:auto;border-bottom-color:var(--line)
  }
}
