
/* GISA RESONANCE v15.13
   실제 저장 HTML 기준 수정.
   - 일반 문단을 grid/table로 변환하지 않음
   - HWP/에디터가 저장한 <span style="white-space:pre"> TAB 구간을 그대로 살림
   - 기존 inline 정렬/색상/기울임/굵기/밑줄/취소선을 보존
*/

:root{
  --gisa-reader-serif:"Noto Serif KR","Noto Serif CJK KR",
                      "Nanum Myeongjo","Batang","바탕",serif;
  --gisa-reader-size:16px;
  --gisa-reader-line:1.80;
  --gisa-reader-track:-0.01em;
}

/* 읽기 화면의 기본 본문 타이포만 통일 */
.resonance-reader .rich-rendered{
  font-family:var(--gisa-reader-serif);
  font-size:var(--gisa-reader-size);
  line-height:var(--gisa-reader-line);
  letter-spacing:var(--gisa-reader-track);
  font-kerning:normal;
  word-break:keep-all;
  overflow-wrap:break-word;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

/* 문단은 저장 HTML의 text-align / margin / padding / text-indent를 방해하지 않음 */
.resonance-reader .rich-rendered p,
.resonance-reader .rich-rendered div,
.resonance-reader .rich-rendered li,
.resonance-reader .rich-rendered blockquote{
  font-family:inherit;
  font-size:inherit;
  line-height:inherit;
  letter-spacing:inherit;
  box-sizing:border-box;
  max-width:100%;
}

/*
 중요:
 저장 데이터에 실제로
 <span style="white-space:pre">TAB TAB...</span>
 구조가 존재한다.
 따라서 span의 white-space를 절대 !important로 덮어쓰지 않는다.
 브라우저가 inline style의 white-space:pre를 그대로 적용하게 둔다.
*/
.resonance-reader .rich-rendered span{
  font-family:inherit;
  font-size:inherit;
  line-height:inherit;
  letter-spacing:inherit;
}

/* TAB 폭을 편집 화면과 읽기 화면에서 동일하게 */
.resonance-reader .rich-rendered,
.resonance-reader .rich-rendered *{
  tab-size:4;
  -moz-tab-size:4;
}

/* 저장된 기울임/굵기 — 내부 span이 있어도 유지 */
.resonance-reader .rich-rendered i,
.resonance-reader .rich-rendered i *,
.resonance-reader .rich-rendered em,
.resonance-reader .rich-rendered em *{
  font-style:italic!important;
}
.resonance-reader .rich-rendered b,
.resonance-reader .rich-rendered b *,
.resonance-reader .rich-rendered strong,
.resonance-reader .rich-rendered strong *{
  font-weight:700!important;
}
.resonance-reader .rich-rendered u,
.resonance-reader .rich-rendered u *{
  text-decoration-line:underline!important;
}
.resonance-reader .rich-rendered s,
.resonance-reader .rich-rendered s *,
.resonance-reader .rich-rendered strike,
.resonance-reader .rich-rendered strike *,
.resonance-reader .rich-rendered del,
.resonance-reader .rich-rendered del *{
  text-decoration-line:line-through!important;
}

/* 저장된 align 속성/에디터 클래스만 보완 */
.resonance-reader .rich-rendered [align="center"],
.resonance-reader .rich-rendered .ql-align-center{ text-align:center!important; }
.resonance-reader .rich-rendered [align="right"],
.resonance-reader .rich-rendered .ql-align-right{ text-align:right!important; }
.resonance-reader .rich-rendered [align="left"],
.resonance-reader .rich-rendered .ql-align-left{ text-align:left!important; }
.resonance-reader .rich-rendered [align="justify"],
.resonance-reader .rich-rendered .ql-align-justify{ text-align:justify!important; }

/* 문단 간격만 읽기용으로 정돈 */
.resonance-reader .rich-rendered p{
  margin-top:0;
  margin-bottom:1.05em;
}
.resonance-reader .rich-rendered p:last-child{margin-bottom:0}

/* 본문 내부 제목 */
.resonance-reader .rich-rendered h2,
.resonance-reader .rich-rendered h3,
.resonance-reader .rich-rendered h4{
  font-family:var(--gisa-reader-serif);
  line-height:1.5;
}

/* 이미지 모드는 기존 레이아웃 유지 */
.resonance-reader .rich-rendered img{
  max-width:100%;
  height:auto;
}

/* 모바일: TAB 구조 자체는 유지하되 본문 폭을 넘으면 자연스럽게 감쌈 */
@media(max-width:700px){
  .resonance-reader .rich-rendered{
    font-size:16px;
    line-height:1.80;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
}

/* v15.15 — 실제 white-space:pre span 구조를 해석한 읽기용 invisible columns */
.resonance-reader .rich-rendered p.gisa-dialogue-row{
  display:grid!important;
  grid-template-columns:7em minmax(0,1fr)!important;
  column-gap:1.35em!important;
  align-items:baseline!important;
  width:100%!important;
  border:0!important;
  outline:0!important;
  background:none!important;
  box-shadow:none!important;
}
.resonance-reader .rich-rendered .gisa-dialogue-speaker{
  grid-column:1!important;
  min-width:0!important;
  white-space:normal!important;
}
.resonance-reader .rich-rendered .gisa-dialogue-text{
  grid-column:2!important;
  min-width:0!important;
  white-space:normal!important;
}
.resonance-reader .rich-rendered p.gisa-dialogue-row > span{
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:none!important;
  box-shadow:none!important;
}
@media(max-width:700px){
  .resonance-reader .rich-rendered p.gisa-dialogue-row{
    grid-template-columns:5em minmax(0,1fr)!important;
    column-gap:.9em!important;
  }
}

/* v15.16 YouTube responsive player */
.resonance-reader .rich-rendered .gisa-youtube-player{position:relative;width:100%;aspect-ratio:16/9;margin:1.6em 0;overflow:hidden;border:0;border-radius:12px;background:#000;box-shadow:none}
.resonance-reader .rich-rendered .gisa-youtube-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
@media(max-width:700px){.resonance-reader .rich-rendered .gisa-youtube-player{margin:1.25em 0;border-radius:9px}}


/* v15.20 — 작품 본문 하단 감상실 연결 */
.gisa-impression-footer{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:4.5rem auto 2.5rem;
  padding:1.5rem 1rem 2rem;
  border:0;
  background:transparent;
}
.gisa-impression-footer-link{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.45rem;
  color:rgba(255,255,255,.88);
  text-decoration:none;
  background:transparent;
  border:0;
}
.gisa-impression-star{
  display:block;
  font-size:2rem;
  line-height:1;
  font-family:serif;
  text-shadow:0 0 14px rgba(255,255,255,.28);
  transition:transform .2s ease, opacity .2s ease;
}
.gisa-impression-label{
  font-size:.78rem;
  letter-spacing:.08em;
  opacity:.62;
}
.gisa-impression-footer-link:hover .gisa-impression-star,
.gisa-impression-footer-link:focus-visible .gisa-impression-star{
  transform:scale(1.12);
  opacity:1;
}
@media(max-width:700px){
  .gisa-impression-footer{
    margin:3.5rem auto 1.5rem;
    padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));
  }
}

/* v15.21 YouTube player fix */
.resonance-reader .rich-rendered .gisa-youtube-player{
  display:block!important;
  position:relative!important;
  width:100%!important;
  max-width:100%!important;
  aspect-ratio:16/9!important;
  min-height:0!important;
  margin:1.7em auto!important;
  overflow:hidden!important;
  background:#000!important;
  border:0!important;
  border-radius:10px!important;
}
.resonance-reader .rich-rendered .gisa-youtube-player iframe{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  max-width:none!important;
  opacity:1!important;
  visibility:visible!important;
  border:0!important;
}

/* v15.23 — 작품 텍스트/이미지 일반 복사·드래그 방지 */
.resonance-reader,
.resonance-reader .rich-rendered,
.resonance-reader .rich-rendered *{
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-touch-callout:none!important;
}
.resonance-reader img,
.resonance-reader .rich-rendered img,
.gisa-slider img,
.continuous-gallery img{
  -webkit-user-drag:none!important;
  user-drag:none!important;
  pointer-events:none;
}
