@charset "UTF-8";

/* 기본 색상 */
:root {
	--main-color: #6e888e;
	--accent-color: #9d8aae;
	--dark-main-color: #3e6974;
	--text-bright-color: #fff;
	--icon-color: #fff;
	--icon-bk-color: #ddd;
	--gray-color: #ddd;
	--large-width: 1000px;
	--middle-width: 800px;
}


/* 기본 설정: 폰트 크기 */
@media (max-width: 599px) {
	:root {
		font-size: 14px;
	}
}

@media (min-width: 600px) and (max-width: 799px) {
	:root {
		font-size: 16px;
	}
}

@media (min-width: 800px) {
	:root {
		font-size: 18px;
	}
}

body {font-size: 16px;
}



/* 기본 설정: 페이지 전체 */
body {
	margin: 0;
  padding: 0;
	font-family: '맑은 고딕',
		'Apple SD Gothic Neo','sans-serif';
}

html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  height: 100%;
}

/* 크롬, 엣지, 사파리용 스크롤바 제거 */
body::-webkit-scrollbar {
  display: none;
}

/* =====================================================
   [HEADER] 헤더 영역
   - 공통 스타일 + 모바일(M) / 데스크탑(PC) 반응형 정리
   ===================================================== */

/* 전체 header 기본 스타일 설정 */
header {
  position: absolute;       /* 다른 요소 위에 겹쳐서 배치 */
  top: 0;                   /* 상단에 고정 */
  left: 0;                  /* 왼쪽에서 시작 */
  z-index: 100;             /* 겹침 순서: 높을수록 위에 있음 */
  width: 100%;              /* 전체 너비 차지 */
  background-color: rgba(255, 255, 255, 0.5);      /* 반투명 배경 */
  backdrop-filter: blur(6px);
}

/* .nohero 클래스가 body에 있을 경우: 일반 흐름으로 배치 */
.nohero header {
  position: static;         /* 페이지 흐름대로 배치 */
  border-bottom: solid 1px #ddd; /* 하단 경계선 추가 */
  border-bottom: solid 1px var(--gray-color); /* 변수로 대체 */
}

/* 사이트 이름 영역 (좌측 로고 또는 텍스트) */
.headA {
  display: inline-block;         /* 인라인 요소처럼 옆에 배치되면서 block 특성 가짐 */
  line-height: 70px;             /* 세로 가운데 정렬 위해 라인 높이 설정 */
  padding-left: 20px;
  padding-right: 20px;
  color: #656565;                /* 텍스트 색상 */
  font-family: 'Montserrat', sans-serif; /* 폰트 지정 */
  font-size: 24px;
  text-decoration: none;        /* 밑줄 제거 */
}

/* 메뉴 영역 (ul 안에 li → a 구조) */
.headB ul {
  margin: 0;
  padding: 0;
  list-style: none;             /* 점 제거 */
}

.headB a {
  display: block;               /* 링크 전체 영역 클릭 가능하게 */
  padding: 15px;                /* 안쪽 여백 */
  color: inherit;               /* 부모의 색상 상속 */
  font-size: 12px;
  text-decoration: none;        /* 밑줄 제거 */
}

.headB a:hover {
  background-color: rgba(0,0,0,0.3); /* 마우스 호버 시 배경 어두워짐 */
}

/* -----------------------------------------------------
   [모바일] 767px 이하 화면에 적용되는 설정
----------------------------------------------------- */
@media (max-width: 767px) {
  /* header 안의 .container-small 영역 정렬 */
  header .container-small {
    display: flex;
    align-items: center;         /* 세로 가운데 정렬 */
    justify-content: space-between; /* 좌우 간격 벌리기 */
  }

  /* 메뉴 토글 버튼 (햄버거 아이콘) */
  .headC {
    margin-right: 10px;
    padding: 0;
    border: none;
    outline: none;
    background: none;
    font-size: 28px;
    opacity: 0.5;
    cursor: pointer;
  }

  .headC:hover {
    opacity: 0.3;                /* 호버 시 더 투명하게 */
  }

  /* 기본적으로 메뉴 숨기기 (모바일) */
  .headB {
    display: none;
  }
}

/* -----------------------------------------------------
   [데스크탑] 768px 이상 화면에 적용되는 설정
----------------------------------------------------- */
@media (min-width: 768px) {
  /* header 안의 .container 영역 정렬 */
  header .container {
    display: flex;
    align-items: center;         /* 세로 가운데 정렬 */
    justify-content: space-between; /* 좌우 간격 벌리기 */
    max-width: 1000px;           /* 최대 너비 제한 */
    max-width: var(--large-width); /* 변수로 대체 */
    margin-left: auto;
    margin-right: auto;
  }

  /* 메뉴 항목들 가로로 배치 */
  .headB ul {
    display: flex;
  }
}

/* PC에서 토글 버튼 숨기고 메뉴 항상 보이게 */
@media (min-width: 768px) {
  .headC {
    display: none;              /* 햄버거 메뉴 안 보이게 */
  }

  .headB {
    display: block !important; /* 강제로 메뉴 보이게 */
  }
}


/* =====================================================
   [Hero Wrapper] conA + conB 하나로 묶어서 배경 처리
   ===================================================== */

.hero-wrapper {
  position: relative; /* 자식 absolute 기준 */
  
  background-image: url("img/combined_hero_conb.png");
  background-position: top center;
  background-repeat: no-repeat;
  background-size: cover;

  width: 100%;
  min-height: 1400px;

  z-index: 1;
  overflow: hidden; /* ⬅ 페이드가 밖으로 나가지 않게 반드시 필요 */
}

/* 🔥 아래쪽 페이드 복원 */
.hero-wrapper::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;

  height: 220px; /* ⬅ 페이드 범위 (원하면 더 늘릴 수 있음) */

  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 1) 100%
  );

  pointer-events: none;
  z-index: 2; /* 배경 위에, 내용물 아래에 */
}

/* 🔥 (기존 before 유지) */
.hero-wrapper::before {
  content: "";
  position: absolute;
  top: 0; 
  left: 0; 
  right: 0; 
  bottom: 0;
  
  z-index: 1;
  pointer-events: none;
}

/* 모바일 반응형 */
@media (max-width: 767px) {
  .hero-wrapper {
    z-index: 1;
    background-size: cover;
    min-height: 100vh;
  }
}


/* =====================================================
   conA 기본 구조
   ===================================================== */

.conA .container {
  padding-top: 230px;
  z-index: 1;
  position: relative;
  text-align: center;
}

/* 🔥 텍스트 뒤 블러 박스 */
.conA-text-box {
  display: inline-block;
  padding: 30px 50px;

  /* Glassmorphism */
  background: rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(10px);

  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.15);

  position: relative;
  z-index: 3;
  margin: 0 auto;
}

/* conA 텍스트 */
.conA h1 {
  margin: 0 10px;
  letter-spacing: 0.2em;
  margin-left: 0.2em;
  font-size: 15vw;
  position: relative;
  z-index: 4;
  font-family: 'KoPubWorldBatang', serif;
  color: #656565;
}

.conA p {
  margin: 0;
  font-size: 18px;
  position: relative;
  z-index: 4;
  font-family: 'KoPubWorldBatang', serif;
  color: #656565;
  font-weight: 800;
}

/* 모바일 */
@media (max-width: 767px) {
  .conA h1 {
    font-size: 13vw;
    letter-spacing: 0.12em;
  }

  .conA p {
    font-size: 4vw;
    margin-top: 2vw;
  }

  .conA-text-box {
    padding: 20px 25px;
    border-radius: 12px;
  }
}

/* 데스크탑 */
@media (min-width: 768px) {
  .conA h1 {
    font-size: 80px;
  }

  .conA p {
    font-size: 24px;
  }
}


/* =====================================================
   conB
   ===================================================== */

.conB {
  background: none;
  min-height: 700px;
}

.conB .container {
  display: flex;
  flex-direction: column;
  padding-top: 80px;
  padding-bottom: 20px;
}

.conB .photo {
  position: relative;
  top: 200px;
  text-align: center;
}

.conB .photo img {
  width: 70%;
  height: auto;
  margin-top: 40px;
  position: relative;
  left: 0;
}

.conB .text {
  margin-top: 0;
  padding-top: 260px;
  padding-left: 20px;
  padding-right: 20px;
  text-align: left;
  position: relative;
  z-index: 2;
}

.conB h1 {
  font-family: 'KoPubWorldBatang', serif;
  margin-top: 0;
  margin-bottom: 30px;
  color: #fa49a2;
}

.conB p {
  margin-top: 0;
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.8;
  opacity: 0.8;
}

.conB a {
  display: inline-block;
  margin-top: 20px;
  margin-bottom: 20px;
  padding: 12px 28px;
  border: 2px solid #fa49a2;
  border-radius: 8px;
  background: transparent;
  color: #656565;
  text-decoration: none;
  font-weight: 600;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}

.conB a:hover {
  background: #ffbad7;
  color: #fff;
  transform: translateY(-2px);
}

/* 데스크탑 레이아웃 */
@media (min-width: 768px) {
  .conB .container {
    max-width: 1400px;
    width: 95%;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    margin: 0 auto;
    gap: 30px;
    padding-top: 300px;
    padding-bottom: 20px;
  }

  .conB .text {
    flex: 1;
    margin-top: -100px;
    padding-left: 50px;
    padding-right: 80px;
  }

  .conB .photo {
    flex: 0 0 480px;
    text-align: right;
    position: relative;
    top: 100px;
    padding-right: 50px;
  }

  .conB .photo img {
    width: 100%;
    height: auto;
    display: block;
    position: relative;
    top: -220px;
    transition: transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1);
  }

  .conB .photo img:hover {
    transform: scale(1.08);
    transform-origin: center right;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  }
}

/* =====================================================
   🔥 conA & conB 전체 요소를 페이드 위로 올리는 핵심 코드
   ===================================================== */

/* conA 페이드 위로 올릴 요소만 */
.conA .container,
.conA h1,
.conA p,
.conA-text-box {
  position: relative;
  z-index: 3;
}

/* conB 페이드 위로 올릴 요소만 */
.conB .container,
.conB .text,
.conB .photo {
  position: relative;
  z-index: 3;
}
/* =====================================================
   [conC] 콘텐츠 C - 자동 가로 슬라이더
   ===================================================== */

/* ===== 콘텐츠 C : 자동 가로 슬라이더 버전 ===== */
.conC {
  padding: 80px 0 70px;
  background: url("img/conC_Background.gif") center/cover no-repeat;
  
  width: 100%;               /* ← 여기 수정 */
  position: relative;
  left: auto;                /* ← 여기 수정 */
  transform: none;           /* ← 여기 수정 */
  overflow: hidden;          /* 내부 콘텐츠 넘칠 경우 잘라내기 */
}

.conC .container {
  max-width: none;                   /* 폭 제한 해제 */
  width: 100%;                       /* 전체 화면 폭 사용 */
  margin: 0 auto;
  text-align: center;
}

.conC-title {
  font-family: 'KoPubWorldBatang', serif;
  margin: 0 0 60px;
  font-size: clamp(22px, 3vw, 28px);
  font-weight: 700;
  letter-spacing: .04em;
  color: #656565;
}

/* --- 수평 오토 스크롤 영역 --- */
.conC-scroller {
  overflow: hidden;
  position: relative;
  /* 양 끝 페이드 주고 싶으면 아래 두 줄 주석 해제*/
  mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
  
}

/* 트랙: 아이템을 가로로 나열 + 무한 루프 애니메이션 */
.conC-track {
  --gap: 24px;
  --item-w: clamp(220px, 28vw, 320px);  /* 카드 너비(반응형) */
  display: flex;
  gap: var(--gap);
  width: max-content;                   /* 내용만큼 너비 */
  animation: conC-scroll 32s linear infinite;
}

/* 카드(이미지 래퍼) */
.conC-card {
  flex: 0 0 var(--item-w);
  border-radius: 14px;
  overflow: hidden;
  background: #656565;
  box-shadow: 0 4px 18px rgba(0,0,0,.06);
  transition: transform .28s ease, box-shadow .28s ease;
}
.conC-card img {
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 4;                  /* 통일된 비율 */
  object-fit: cover;
  display: block;
}
.conC-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(255, 0, 191, 0.12);
}

/* 하단 버튼 */
.conC-actions { margin-top: 60px; }/* 카드 그리드와 버튼 사이 여백 */
.conC-btn {
  display: inline-block;
  padding: 12px 28px;
  border: 2px solid #656565;
  border-radius: 8px;
  background: transparent;
  color: #656565;
  text-decoration: none;
  font-weight: 600;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.conC-btn:hover {
  background: #ffbad7;
  color: #fff;
  transform: translateY(-2px);
}

/* 무한 루프 키프레임: 시퀀스(복제 포함)의 절반 길이만큼 이동 */
@keyframes conC-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(-50% - var(--gap) / 2)); }
}

/* ---------- [conC - M] 모바일/접근성 관련 ---------- */

/* 접근성: 모션 최소화 설정 시 애니메이션 비활성화 */
@media (prefers-reduced-motion: reduce) {
  .conC-track { animation: none; }
}

/* ---------- 반응형 ---------- */
/* 태블릿: 카드 조금 키우고 속도 살짝 느리게 */
@media (max-width: 1023px) {
  .conC { padding: 72px 20px; }
  .conC-track {
    --item-w: clamp(180px, 34vw, 240px);
    animation-duration: 34s;
  }
}

/* 모바일: 카드 크게 보이고 속도 더 느리게 */
@media (max-width: 599px) {
  .conC { padding: 56px 16px; }
  .conC-track {
    --item-w: clamp(180px, 60vw, 240px);
    animation-duration: 36s;
  }
}

/* ================================
   [conD] 이미지 영역 - 전체 폭
   ================================ */
.conD {
  position: relative;
  width: 100vw;
  margin: 0;
  padding: 0;
  background: rgba(0, 0, 0, 0.1);
}

.conD::before {
  content: "";
  position: absolute;
  inset: 0;
  background: inherit;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 1;
}

.conD .footer-media {
  position: relative;
  width: 100%;
}

.conD .footer-media img {
  display: block;
  width: 100%;
  height: auto;
}

/* ✅ 텍스트 중앙 배치: Flex로 정확하게 세로 가운데 */
.conD-heading {
  position: absolute;
  inset: 0;
  z-index: 2;

  display: flex;
  align-items: center;        /* 세로 중앙 */
  justify-content: center;    /* 가로 중앙 */

  color: #fff;
  font-size: 15px; /* 모바일 기본 */
  font-family: 'KoPubWorldBatang', serif;
  padding: 0 20px; /* 양옆 여백 */
  white-space: nowrap;
  text-align: center;
}

/* 💻 PC: 텍스트 크기 더 크게 */
@media (min-width: 768px) {
  .conD-heading {
    font-size: 32px;
  }
}


/* ================================
   [FOOTER HERO] 텍스트 영역
   ================================ */
.footer-hero {
  margin: 0;
  padding: 0;
  background: #ffe6f4;
  width: 100%;
  text-align: center;
}

.footer-hero .footer-box {
  padding: 20px 10px;
}

.footer-text {
  margin: 0;
  font-size: clamp(13px, 1.8vw, 16px);
  color: #656565;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 0.03em;
  line-height: 1.6;
  word-break: keep-all;

  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

/* ===== 모바일 줄바꿈 ===== */
@media (max-width: 767px) {
  .footer-text {
    flex-direction: column;
    align-items: center;
  }

  .footer-text .footer-line {
    display: block;
  }
}

/* =====================================================
   About page - css
   ===================================================== */

.hero-section {
  position: relative;
  background: #eef2f5;
  background-image: url(img/about_hero.png);
  background-position: center;  /* top center → center 로 변경 추천 */
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  min-height: 370px;

  /* 💡 중앙 정렬 핵심 */
  display: flex;
  flex-direction: column;   /* 텍스트가 세로로 쌓이니까 */
  align-items: center;      /* 수평 가운데 */
  justify-content: center;  /* 수직 가운데 */

  padding: 140px 0 120px;
  text-align: center;
}

.hero-inner {
  position: relative;
}

.hero-label {
  margin: 0 0 12px;
  font-size: 0.9rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #fafafa;
}

.hero-title {
  margin: 0 0 16px;
  font-family: 'KoPubWorldBatang', serif;
  font-size: clamp(26px, 4.4vw, 40px);
  color: #fafafa;
}
 
.hero-subtitle {
  margin: 0;
  font-size: clamp(14px, 1.2rem, 18px);
  color: #fafafa;
}

/* =====================================
   2. 작가 소개 텍스트 블록
   ===================================== */

.author-intro {
  position: relative;
  background-image: url(img/about_author_intro.png);
  padding: 120px 0 130px;
  margin-top: 0;
}

.author-intro-inner {
  text-align: center; /* ⭐ 전체 가운데 정렬 */
  max-width: 720px;
  margin: 0 auto;
  padding: 0 40px;
}

.author-intro-inner .section-heading {
  color: #656565;
  margin-bottom: 32px;
  font-family: 'KoPubWorldBatang', serif;
  text-align: center; /* 중앙 */
}

.intro-paragraph {
  margin: 0 0 16px;
  font-size: 1rem;
  line-height: 1.9;
  opacity: 0.95;
  text-align: center; /* ⭐ 문단도 모두 중앙 정렬 */
}

/* ===========================
   📱 모바일 (13대 ≈ 320px)
=========================== */
@media (max-width: 480px) {
  .author-intro {
    padding: 80px 0 90px;
  }

  .author-intro-inner {
    padding: 0 24px; /* 교수님 요구: 모바일 여백 증가 */
  }

  .intro-paragraph {
    font-size: 0.95rem;
    line-height: 1.7;
    text-align: center; /* 모바일도 중앙 정렬 유지 */
  }
}

/* =====================================
   3. 키워드 아이콘 섹션
   ===================================== */

.author-keywords {
  position: relative;
  background-image: url(img/about_author-keywords.png);
  background-size: cover;
  background-position: center;
  padding: 100px 40px;
  text-align: center;
  overflow: hidden; /* blur 오버레이 넘침 방지 */
}

/* 흐림 오버레이 */
.keywords-blur-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 1; /* 배경 위, 텍스트 아래 */
}

/* 콘텐츠 */
.keywords-content {
  position: relative;
  z-index: 2; /* blur 위로 */
}

.keywords-heading {
  font-family: 'KoPubWorldBatang', serif; /* 원하는 폰트 */
  margin-top: 0;
  margin-bottom: 60px;
  color: #fafafa;
}

/* PC 기본 4열 */
.keywords-list {
  display: grid;
  justify-content: center;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px;
  margin-top: 60px;
  padding: 0;
  list-style: none;
  font-weight: 500;
}

.keywords-item {
  text-align: center;
}

.keywords-icon {
  width: 130px;          /* 원하는 원 크기 */
  height: 130px;
  border-radius: 50%;
  overflow: hidden;      /* 원 밖으로 튀어나오는 부분 잘라냄 */
  margin: 0 auto 16px;
  display: flex;         
  justify-content: center;
  align-items: center;
  background: #fff;      /* 이미지 없을 경우 기본색 */
}

.keywords-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;     /* 이미지가 원을 꽉 채우도록 */
}

.keywords-label {
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.6;
  color: #fafafa;
}

/* =====================================
   반응형
   ===================================== */

/* 태블릿 → 2열 */
@media (max-width: 959px) {
  .author-keywords {
    padding: 80px 30px;
  }

  .keywords-list {
    grid-template-columns: repeat(2, 1fr);
    justify-items: center;
  }
}

/* 모바일 → 2열 유지 */
@media (max-width: 599px) {
  .author-keywords {
    padding: 60px 20px;
  }

  .keywords-list {
    grid-template-columns: repeat(2, 1fr);
    row-gap: 40px;
  }
}

/* =====================================
   PC 전용: 아이콘 간격 줄여서 가까이 모이게
   ===================================== */
@media (min-width: 960px) {
  .author-keywords {
    padding: 100px 140px; /* 좌우 여백 줄임 */
  }

  .keywords-list {
    gap: 20px;       /* 아이콘 간 거리 좁힘 */
    max-width: 900px;
    margin: 0 auto;  /* 전체 중앙 */
  }
}



/* =====================================
   4. 작품 서가 섹션
   ===================================== */

.works-section {
  background-image: url(img/about_works_section_bg.png);
  /*background: #ffffff;*/
  
  padding: 80px 0 90px;
  display: flex;           /* works-section 자체를 flex 컨테이너로 */
  justify-content: center; /* 내부를 중앙 정렬 */
}

.works-section-heading {
  font-family: 'KoPubWorldBatang', serif; /* 원하는 폰트 */
  margin-top: 0;
  margin-bottom: 60px;
  text-align: center;        /* 중앙 정렬 */
  color: #333;
}

.works-section .page-inner {
  width: 100%;
  max-width: 1200px;   /* 원하는 너비 (800~1200 추천) */
  margin: 0 auto;      /* 가운데 정렬 */
  padding: 0 20px;     /* 좌우 여백 */
}

.works-shelf {
  margin-bottom: 60px;
}

.shelf-title {
  margin: 0 0 16px;
  font-family: 'KoPubWorldBatang', serif;
  font-size: clamp(18px, 2.2vw, 24px);
  color: #3f4750;
  text-align: center;
}

/* ===========================
   아웃라인 박스 + blur 배경
   =========================== */
.shelf-frame {
  position: relative;
  border: 0px solid #4b5561;
  border-radius: 4px;
  padding: 44px 20px;
  display: flex;
  gap: 24px;
  align-items: flex-end;
  max-width: 1100px;
  margin: 0 auto;
  overflow: hidden;
}

/* 배경 이미지 + blur */
.shelf-frame::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url(img/about_bookcase.jpg);
  background-size: contain;
  background-position: center;
  filter: blur(2px);
  opacity: 0.9;
  transform: scale(1.08);
  z-index: 0;
}

/* 🔥 아래로 갈수록 투명해지는 그라디언트 레이어 */
.shelf-frame::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;

  /* 아래쪽 페이드 (위는 이미지 그대로, 아래는 투명) */
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0%,     /* 위 100% 보여짐 */
    rgba(255, 255, 255, 0.5) 60%,    /* 중간까지 완전 이미지 */
    rgb(241, 241, 241) 100%    /* 아래쪽 완전 투명 → 박스 배경이 드러남 */
  );
}

/* 책 카드 영역 */
.shelf-main {
  position: relative;
  z-index: 2;                 /* blur 위로 올리기 */
  flex: 1 1 auto;
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  justify-content: center;    /* 카드들을 가운데로 모으기 */
  text-align: center;         /* 카드 안 텍스트도 가운데 */
}

.book-card {
  flex: 1 1 180px;
  max-width: 260px;
}

/* ✅ IMG 넣는 방식 */
.book-cover {
  width: 100%;
  aspect-ratio: 3 / 4;    /* 책 표지 비율 */
  background: #4b5561;    /* 이미지 없을 때 보이는 기본 색 */
  border-radius: 6px;
  margin-bottom: 10px;
  overflow: hidden;       /* 이미지 넘치는 부분 잘라내기 */
  display: flex;
  justify-content: center;
  align-items: center;
}

.book-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;      /* 박스를 꽉 채우도록 */
  display: block;
}

.book-title {
  margin: 0 0 6px;
  font-size: 1rem;
  font-family: 'KoPubWorldBatang', serif;
  color: #353535;
}

.book-meta {
  margin: 0;
  font-size: 0.85rem;
  line-height: 1.5;
  color: #353535;
}

/* 오른쪽 책 더미 장식 (안 쓰면 display:none 해도 됨) */
.shelf-side {
  position: relative;
  z-index: 1;               /* blur 위로 */
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-end;
}

.side-book {
  display: block;
  width: 24px;
  height: 60px;
  background: #4b5561;
  border-radius: 2px;
}

/* 좁은 화면에서 세로 → 스택 */
@media (max-width: 767px) {
  .shelf-frame {
    flex-direction: column;
    align-items: stretch;
  }
}

/* ==============================
   작가 수상 이력 섹션 (수정본)
   ============================== */

.author-awards {
  position: relative;
  background-image: url(img/about_author_awards_bg.png);
  background-size: cover;
  background-position: center;
  color: #ffffff;
  padding: 80px 0;
  overflow: hidden;
}

/* 흐림 오버레이 */
.author-awards::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(148, 121, 70, 0.5);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  z-index: 1;
}

/* 콘텐츠 박스 */
.author-awards-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 40px;
  text-align: center;
}

/* 위쪽 흰 막대 */
.author-awards-bar {
  width: 80px;
  height: 8px;
  margin: 0 auto 20px;
  background: #ffffff;
  border-radius: 4px;
}

/* 제목 */
.author-awards-heading {
  margin: 0 0 30px;
  font-family: 'KoPubWorldBatang', serif;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: 0.08em;
}

/* PC — 2컬럼 */
.author-awards-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  justify-content: center;
  justify-items: center;      /* 중심 축 강화 */
  align-items: start;
  margin-top: 20px;
}

.author-awards-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.author-awards-item {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.7;
  opacity: 0.95;
}

/* =======================
   모바일 정렬 문제 해결!!
   ======================= */
@media (max-width: 767px) {
  .author-awards {
    padding: 60px 0;         /* 섹션 좌우 padding 제거 → 완전 중앙 */
  }

  .author-awards-inner {
    padding: 0 24px;         /* 균일한 좌우 여백 */
  }

  .author-awards-columns {
    grid-template-columns: 1fr;   /* 1열 */
    justify-items: center;        /* 컬럼 자체를 중앙 정렬 */
    text-align: center;           /* 텍스트도 완전 중앙 */
  }

  .author-awards-col {
    align-items: center;          /* 각 문장 중앙 */
    max-width: 480px;             /* 너무 넓어지지 않게 */
    width: 100%;
  }
}

/* ================================
   work page
================================ */

/* ===============================
   WORK PAGE HERO SECTION
================================ */

.work-hero-section {
  position: relative;
  background-image: url(img/work_hero.png);
  background-position: right center;
  background-repeat: no-repeat;
  background-size: cover;

  width: 100%;
  min-height: 370px;

  display: flex;
  flex-direction: column;

  align-items: flex-end;
  justify-content: center;

  padding: 140px 4vw 120px;
  text-align: right;

  overflow: hidden; /* 페이드 영역 넘침 방지 */
}

/* 🔥 기존 아래쪽 페이드 유지 */
.work-hero-section::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 180px;

  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 214, 229, 0.4) 100%
  );

  pointer-events: none;
  z-index: 1;
}

/* ===============================
   ⭐ 텍스트 뒤 Glassmorphism 박스
================================ */
.work-hero-inner {
  position: relative;
  z-index: 3;   /* 텍스트가 페이드보다 위 */

  /* Glass 효과 추가 */
  background: rgba(255, 255, 255, 0.45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(14px);

  padding: 38px 36px;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.35);

  box-shadow: 0 6px 20px rgba(255, 116, 202, 0.08);

  margin-right: 18vw;
  max-width: 600px;
}

/* 텍스트 */
.work-hero-label {
  margin: 0 0 12px;
  font-size: 0.9rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #383838;
}

.work-hero-title {
  margin: 0 0 16px;
  font-family: 'KoPubWorldBatang', serif;
  font-size: clamp(26px, 4.4vw, 40px);
  color: #383838;
}

.work-hero-subtitle {
  margin: 0;
  font-size: clamp(14px, 1.2rem, 18px);
  color: #383838;
}

/* ===============================
   모바일 (중앙 정렬 + Glass 박스도 중앙)
================================ */
@media (max-width: 768px) {
  .work-hero-section {
    align-items: center;
    text-align: center;
    padding: 120px 0px 100px;
    background-position: center top;
  }

  .work-hero-inner {
    margin-right: 0;
    max-width: 95%;

    padding: 28px 22px;
    border-radius: 16px;
  }
}

/* ============================
   DIALOGUE BLOCK 전체 박스
============================ */
.dialogue-block {
  width: 100%;
  margin: 0px auto;
}

/* 상단 핑크 배경 (대사 텍스트 부분) */
.dialogue-header {
  background: #ffd6e5;
  padding: 30px 10px;
  text-align: center;
}

.dialogue-header p {
  margin: 0;
  font-family: 'KoPubWorldBatang', serif;
  font-size: clamp(20px, 2vw, 25px);
}

/* ============================
   노트 배경 + 캐릭터 + 텍스트 영역
============================ */
.dialogue-content {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10px 20px;
  gap: 200px;
  background: url("img/work_note_bg.png") repeat-y center/cover;
  background-size: contain;
}

/* 텍스트 */
.dialogue-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.dialogue-text p {
  font-size: 20px;
  line-height: 1.5;
  font-weight: 800px;
  color: #353535;
  white-space: pre-line;
  margin: 0;
}

/* 이미지 공통 */
.dialogue-img {
  position: relative;
}

/* ============================
   아래 캐릭터 (여자) — 겹침 유지
============================ */
.dialogue-img.left {
  margin-top: -80px;      /* 1번 박스 침범 */
  margin-bottom: -20px;   /* 2번 박스 침범도 OK */
}

/* ============================
   위 캐릭터 (남자) — 2번 박스 침범 금지
============================ */
.dialogue-img.right {
  margin-top: -80px;      /* 위 박스 침범 OK */
  margin-bottom: -10px;       /* 아래 박스 절대 침범 금지 */
  line-height: 0;         /* 이미지 아래 라인박스 제거 */
}

/* 이미지 실제 요소 */
.dialogue-img img {
  width: clamp(220px, 26vw, 740px);
  height: auto;
  display: block;
}

.dialogue-img.right img {
  vertical-align: bottom;   /* ★ 남자 캐릭터 아래 여백 완전히 제거 */
}

/* 정렬: 좌/우 배치 */
.dialogue-img.right { order: 2; }
.dialogue-text.left { order: 1; }

.dialogue-img.left { order: 1; }
.dialogue-text.right { order: 2; }

/* ============================
   모바일 대응
============================ */
@media (max-width: 768px) {
  /* 컨텐츠 세로 배치 */
  .dialogue-content {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 20px;  
    padding: 20px 10px 40px;
  }

  /* 이미지가 박스를 침범하지 않도록 */
  .dialogue-img {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* 모바일에서는 이미지 크기를 줄임 */
  .dialogue-img img {
    width: clamp(150px, 60vw, 260px);
    height: auto;
    display: block;
  }

  /* 텍스트는 이미지 아래로 */
  .dialogue-text {
    order: 3 !important;
    text-align: center;
  }

  /* 이미지가 항상 텍스트 위로 오도록 */
  .dialogue-img {
    order: 2 !important;
  }

  /* 대사(핑크박스)는 맨 위로 */
  .dialogue-header {
    order: 1 !important;
  }
}

/* =====================================================
   “주요 스토리” → ABOUT 구조로 변환한 스타일
===================================================== */

.story-intro {
  position: relative;
  background-image: url(img/work_story_intro.png);
  background-size: cover;
  background-position: center;
  padding: 120px 0 130px;
  text-align: center;
  overflow: hidden;
}

/* 🔥 1) 배경 흐림 */
.story-intro::before {
  content: "";
  position: absolute;
  inset: 0;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(10px);
  background: rgba(255, 214, 229, 0.02); 
  z-index: 1;
}

/* 🔥 2) 상·하단 페이드 그라디언트 */
.story-intro::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;

  background: linear-gradient(
    to bottom,
    rgba(251, 251, 251, 1) 0%,
    rgba(255, 214, 229, 0) 20%,
    rgba(255, 214, 229, 0) 80%, 
    rgba(251, 251, 251, 1) 100%
  );
}

/* 🔥 텍스트는 항상 위에 */
.story-intro * {
  position: relative;
  z-index: 3;
}

/* ============================================= */
/* ⭐ story-inner-block → 블러 + 반투명 박스 추가 */
/* ============================================= */

.story-inner-block {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 40px;

  /* Glassmorphism 효과 */
  background: rgba(251, 251, 251, 0.45); /* 반투명 밝은 유리색 */
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(12px);

  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.45);

  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06);
}

.story-heading {
  margin: 0 0 32px;
  font-family: 'KoPubWorldBatang', serif;
  font-size: clamp(22px, 3vw, 30px);
  color: #353535;
  letter-spacing: 0.04em;
}

.story-paragraph {
  margin: 0 0 12px;
  font-size: clamp(14px, 1.4vw, 17px);
  line-height: 1.8;
  opacity: 0.95;
  word-break: keep-all;
  color: #353535;
}

/* ===============================
   MOBILE FIX: STORY INTRO
================================ */
@media (max-width: 768px) {

  .story-inner-block {
    max-width: 100%;        /* 모바일에서는 화면폭 전부 사용 */
    padding: 24px 0px;     /* 양쪽 40px → 20px 축소 */
    margin: 0  auto;
  }

  .story-heading {
    font-size: 22px;        /* 너무 크게 늘어나지 않도록 */
  }

  .story-paragraph {
    font-size: 14px;
    line-height: 1.7;
  }
  
  .story-intro {
    padding: 80px 0 100px;  /* 모바일에 맞게 여백 축소 */
  }
}

/* ================================
   CHARACTERS SECTION
================================ */
.characters-section {
  font-family: 'KoPubWorldBatang', serif; /* 원하는 폰트 */
  padding: 100px 20px 140px;
  background: #fff;
  background-image: url(img/work_characters_section_bg.png);
}

/* 제목 중앙 정렬 + 캐릭터 카드와 같은 폭 */
.characters-section .section-title {
  max-width: 900px;            /* 캐릭터 카드와 동일 폭 */
  margin: 0 auto 70px;         /* 가운데 정렬 */
  padding: 0 20px;
  text-align: center;
  font-family: var(--hero-font);
  font-size: clamp(22px, 3vw, 30px);
  color: var(--title-color);
}

/* 캐릭터 카드 전체 폭도 중앙으로 좁히기 */
.character-card {
  max-width: 1200px;            /* 🔥 폭 제한 */
  margin: 0 auto 90px;         /* 가운데 정렬 */
  display: flex;
  gap: 40px;
  align-items: center;
  position: relative;
}

/* 좌우 배치 균형 유지 */
.character-img img {
  width: clamp(120px, 28vw, 500px);
  display: block;
}

.character-img.right {
  order: 1;
}

.character-img.left {
  order: 0;
}

.character-info {
  flex: 1;
}

/* 텍스트 스타일 */
.character-name {
  margin: 0 0 30px;
  font-family: var(--hero-font);
  font-size: clamp(20px, 2.6vw, 26px);
  color: var(--title-color);
}

.character-quote {
  margin: 0 0 25px;
  font-size: clamp(20px, 1.8vw, 25px);
  line-height: 1.6;
  font-weight: 600;
  color: #ff78b7;
}

.character-desc {
  margin: 0;
  font-size: clamp(12px, 1.6vw, 16px);
  line-height: 1.8;
  color: #444;
  word-break: keep-all;
}

/* ================================
   모바일 레이아웃 정돈
================================ */
@media (max-width: 768px) {
  .character-card {
    flex-direction: column;     /* 세로 배열 */
    text-align: center;
  }

  .character-img.right,
  .character-img.left {
    order: unset;
  }

  .character-img img {
    width: clamp(280px, 45vw, 80px);
  }
}

/* ================================
   WORK PAGE ENDING SECTION
================================ */
.work-ending-section {
  position: relative;
  width: 100%;
  padding: 140px 20px;
  min-height: 500px; /* 🔥 이미지 더 크게 보이도록 높이 증가 */
  background-image: url("img/work_footer_bg.png");
  background-size: cover;       /* 이미지 비율 유지하면서 크게 */
  background-position: center;
  background-repeat: no-repeat;

  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;

  overflow: hidden;
}

/* 🔥 전체 블러 + 은은한 밝기 조절 레이어 */
.work-ending-section::before {
  content: "";
  position: absolute;
  inset: 0;
  backdrop-filter: blur(0px);     /* 배경 블러 강하게 조절 */
  -webkit-backdrop-filter: blur(6px);
  background: rgba(255, 255, 255, 0.20); /* 반투명 화이트 필터 */
  z-index: 1;
}

/* 🔥 배경 위·아래 페이드 그라디언트 */
.work-ending-section::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;

  background: linear-gradient(
    to bottom,
    rgba(251, 251, 251, 1) 0%,     /* 위쪽 페이드 */
    rgba(251, 251, 251, 0) 25%,    /* 중앙 투명 */
    rgba(251, 251, 251, 0) 75%,
    rgba(251, 251, 251, 0) 100%    /* 아래쪽 페이드 */
  );
}

/* ================================
   텍스트 + 박스
================================ */

/* 🔥 텍스트 박스 전체 */
.work-ending-inner {
  position: relative;
  z-index: 4;

  max-width: 900px;
  width: 100%;
  padding: 40px 30px;

  /* 🔥 반투명 박스 + 블러 */
  background: rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(10px);

  border-radius: 20px;
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);

  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* 문장 스타일 */
.work-ending-line {
  margin: 0;
  font-family: 'KoPubWorldBatang', serif;
  font-size: clamp(16px, 2.2vw, 22px);
  color: #353535;
  opacity: 0.96;
  line-height: 3;
  
}

/* ================================
   모바일 반응형
================================ */
@media (max-width: 768px) {
  .work-ending-section {
    padding: 120px 10px;
    min-height: 450px;
    background-position: center top;
  }

  .work-ending-inner {
    padding: 30px 22px;
    max-width: 95%;
    border-radius: 16px;
  }
}

/* =======================================
   AUTHOR WORKS SECTION
======================================= */

/* ===============================
   PAGE HERO SECTION
=============================== */

.page-hero {
  position: relative;
  background: #eef2f5;
  background-image: url("img/other_hero.png"); /* 필요 시 변경 */
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;

  width: 100%;
  min-height: 370px;

  /* 중앙 정렬 */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  padding: 140px 0 120px;
  text-align: center;
}

.page-hero-inner {
  position: relative;
}

.page-hero-tag {
  margin: 0 0 12px;
  font-size: 0.9rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #fafafa;
}

.page-hero-heading {
  margin: 0 0 16px;
  font-family: 'KoPubWorldBatang', serif;
  font-size: clamp(26px, 4.4vw, 40px);
  color: #fafafa;
}

.page-hero-desc {
  margin: 0;
  font-size: clamp(14px, 1.2rem, 18px);
  color: #fafafa;
}

/* ==========================================
   전체 래퍼
========================================== */
.works-wrapper {
  width: 100%;
  background-image: url(img/conC_bg.jpg.png);
  
  padding: 0;
  margin: 0;
}

/* ==========================================
   타이틀
========================================== */
.works-title {
  font-family: 'KoPubWorldBatang', serif;
  text-align: center;
  padding: 50px 0;
  margin: 0;
  font-size: 25px;
  color: #555;
  font-weight: 600;
}

/* ==========================================
   책장(ROW) 박스
========================================== */
.works-row {
  width: 100%;
  background: #ffffff;

  /* 사방 테두리 */
  border-top: 20px solid rgba(22, 0, 16, 0.5);
  border-bottom: 20px solid rgba(22, 0, 16, 0.5); /* 🔥 오타 수정됨 */
  border-left: 20px solid rgba(22, 0, 16, 0.5);
  border-right: 20px solid rgba(22, 0, 16, 0.5);

  display: flex;
  justify-content: space-between;
  gap: 20px;

  padding: 60px 80px 40px 80px;
  box-sizing: border-box;
  
  background: url("img/other_bg.png") fixed;
}

/* ==========================================
   책 카드
========================================== */
.work-item {
  flex: 1;
  max-width: 350px;
  text-align: center;
}

/* 책 이미지 */
.work-thumb {
  width: 100%;
  aspect-ratio: 3 / 4;
  background: #4e5963;
  border-radius: 10px;
  overflow: hidden;        /* ★ 이미지 넘치는 부분 잘라냄 */
}

/* ★ 책 크기에 맞춰 이미지가 정확히 들어가도록 */
.work-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;       /* 박스를 꽉 채우기 */
  display: block;
}

/* 책 제목 */
.work-label {
  margin-top: 40px;
  font-size: 20px;
  color: #fafafa;
  font-weight: 300px;
}


/* ==========================================
   모바일 반응형 (책 2개씩)
========================================== */
@media (max-width: 767px) {

  .works-row {
    flex-wrap: wrap;             /* 줄바꿈 */
    justify-content: center;     /* 가운데 모으기 */
    gap: 30px 10px;              /* 세로30px / 가로10px */
    padding: 40px 20px 30px 20px;
  }

  .work-item {
    flex: 0 0 50%;               /* 2개씩 */
    max-width: none;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .work-thumb {
    width: 70%;                  /* 모바일에서 너무 커 보이지 않도록 */
  }

  .work-label {
    margin-top: 20px;
    font-size: 16px;
  }
}

/* ================================
   MOVIE SECTION
================================ */

/* ===============================
   자동 반응형 페이드 슬라이드
================================ */

/* 슬라이더 전체 */
.fade-slider {
  position: relative;
  width: 90%;              /* 화면 크기에 따라 자동 조절 */
  max-width: 900px;       /* 너무 커지지 않도록 */
  aspect-ratio: 16 / 9;    /* 자동 반응형 비율 유지 */
  margin: 0 auto;
  margin-bottom: 30px;
  overflow: hidden;
  border-radius: 20px;
}

/* 각 이미지 */

/* 총 10장 × 2초 = 20초 */
.fade-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  animation: fadeAnimation 18s infinite;
}

.fade1  { background-image: url("img/other_hero.png"); animation-delay: 0s; }
.fade2  { background-image: url("img/movie_2.png"); animation-delay: 2s; }
.fade3  { background-image: url("img/movie_3.png"); animation-delay: 4s; }
.fade4  { background-image: url("img/movie_4.png"); animation-delay: 6s; }
.fade5  { background-image: url("img/movie_5.png"); animation-delay: 8s; }
.fade6  { background-image: url("img/movie_6.png"); animation-delay: 10s; }
.fade7  { background-image: url("img/movie_7.png"); animation-delay: 12s; }
.fade8  { background-image: url("img/movie_8.png"); animation-delay: 14s; }
.fade9  { background-image: url("img/movie_9.png"); animation-delay: 16s; }
.fade10 { background-image: url("img/movie_10.png"); animation-delay: 18s; }

@keyframes fadeAnimation {
  0%   { opacity: 0; }
  8%   { opacity: 1; }
  20%  { opacity: 1; }
  28%  { opacity: 0; }
  100% { opacity: 0; }
}

.movie-section {
  background-image: url("img/conC_bg.jpg.png");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 40px 0 40px 0;
}

/* MOVIE 제목 */
.movie-title {
  width: 100%;
  text-align: center !important;
  margin: 0 auto;
  padding: 5px 0 30px 0;
  font-size: 24px;
  letter-spacing: 0.02em;
  color: #4e5963;
  font-family: 'KoPubWorldBatang', serif;
  font-weight: 600;
  display: block;
}

/* ===============================
   모바일 최적화 
================================ */
@media (max-width: 599px) {
  .fade-slider {
    width: 95%;
    aspect-ratio: 4 / 3;   /* 모바일에서 약간 세로로 더 커지게 */
    border-radius: 14px;
  }
}

/* ================================
   콘텐츠 E (VIDEO SECTION)
================================ */

/* 기본 스타일 */
.conE {
  background-color: #fff9fd;
  background-image: url(img/conC_bg.jpg.png);
  color: var(--text-bright-color);
   padding: 160px 0 120px 0;    /* 영상 위아래 여백 */
}

.conE .text {
  padding: 20px;
}

.conE h2 {
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 20px;
}

.conE p {
  margin-top: 0;
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.8;
  opacity: 0.8;
}

.conE video {
  width: 100%;
  position: center; /* ⚠ CSS엔 없는 속성이지만 원본 그대로 둠 */
}

/* ================================
   PC 버전 (min-width: 768px)
================================ */
@media (min-width: 768px) {
  .conE .container {
    display: block;
    width: min(1000px, 90%); /* 화면 넓이에 맞고 너무 넓지 않게 */
    margin-left: auto;
    margin-right: auto;
  }
}


