/* 판결문 HTML (verdict-doc.js). 모든 선택자는 .vdoc 아래로 가둔다.
   단위: --u = 판결문 폭 / 279.688(PDF pt). 좌표·크기는 PDF pt 값을 --x/--y/--w/--h/--s로 받아 곱한다.
   합성 방식·불투명도는 PDF ExtGState 그대로: 워터마크 Multiply .3, 도장 HardLight .4, 점선 Normal .8
   11/12: 네모 상자 대신 찢긴 한지 한 장 — 종이 = hanji-paper 원화 + 원본 종이 얼룩(paper.webp) multiply,
   가장자리 = 버튼·명부와 같은 hanji-edge 마스크, 그림자 = 같은 마스크를 아래로 민 먹 그림자(명부 .hanji-sheet와 같은 5px 7px) */
@font-face{
  font-family:'VD Jaemin';
  src:url('assets/fonts/jaemin/jaemin.woff2') format('woff2');
  font-display:swap;
  /* 재민체 hhea(820/-250)와 같은 값. 지원 안 하는 브라우저도 hhea를 쓰므로 기준선이 같다 */
  ascent-override:82%;descent-override:25%;line-gap-override:0%;
}
/* 이름 글씨 = 메인 글꼴 국대떡볶이 Bold(type.css의 SDKukdetopokki와 같은 파일, 11.12 솔뫼에서 교체). 기준선 계산을 재민체와 맞추려고 같은 높이 값을 준다.
   패밀리 이름 'VD Solmoe'는 verdict-doc.js(BRUSH)가 쓰고 있어 그대로 둔다. Bold 한 벌이라 굵기는 범위로 선언(가짜 굵게 방지) */
@font-face{
  font-family:'VD Solmoe';
  src:url('assets/fonts/SDKukdetopokki-bBd.otf') format('opentype');
  font-weight:100 900;font-display:swap;
  ascent-override:82%;descent-override:25%;line-gap-override:0%;
}

.vdoc{
  container-type:inline-size;
  display:block;position:relative;width:100%;aspect-ratio:279.688/395.927;
  margin:0;padding:0;border:0;background:none;rotate:-.4deg;
  -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;
}
.vdoc.is-playing{cursor:pointer}
.vdoc *{box-sizing:border-box;margin:0;padding:0;border:0}
.vdoc-cam{position:absolute;inset:0;transform-origin:0 0}   /* 클로즈업 카메라 — 종이 한 장(그림자 포함)째 확대·이동. verdict-doc.js play가 움직인다 */

/* 찢긴 한지 모양: 종이(.vdoc-page)와 그림자(.vdoc-shadow)가 같은 마스크를 쓴다 */
.vdoc-shadow,.vdoc-page{
  -webkit-mask:url('assets/ui/hanji-edge.webp') 0 0/100% 100% no-repeat;mask:url('assets/ui/hanji-edge.webp') 0 0/100% 100% no-repeat}
.vdoc .vdoc-shadow{position:absolute;inset:0;display:block;background:#000;translate:5px 7px;pointer-events:none}
.vdoc-page{
  --u:calc(100cqw / 279.688);
  position:absolute;inset:0;isolation:isolate;overflow:hidden;
}
.vdoc .vdoc-hanji{position:absolute;inset:0;display:block;z-index:0;
  background:url('assets/ui/hanji-paper.webp') 50% 50%/cover,#d5ba97}
.vdoc .vdoc-paper{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;z-index:0;mix-blend-mode:multiply;opacity:.7}
.vdoc .vdoc-img{
  position:absolute;display:block;max-width:none;
  left:calc(var(--u) * var(--x));top:calc(var(--u) * var(--y));
  width:calc(var(--u) * var(--w));height:calc(var(--u) * var(--h));
}
.vdoc .vdoc-wm{z-index:1;mix-blend-mode:multiply;opacity:.3}
.vdoc .vdoc-stamp{z-index:2;mix-blend-mode:hard-light;opacity:.4;transform-origin:50% 50%}
.vdoc .vdoc-sign{z-index:4}
.vdoc .vdoc-rule{z-index:5;opacity:.8}

/* 글자: 기준선(y)을 PDF와 맞춘다. line-height:1일 때 기준선은 위에서 (1 + .82 - .25)/2 = .785em */
.vdoc .vdoc-t{
  position:absolute;z-index:3;display:block;
  left:calc(var(--u) * var(--x));
  top:calc(var(--u) * (var(--y) - .785 * var(--s)));
  font-family:'VD Jaemin','Pretendard Variable',Pretendard,-apple-system,sans-serif;
  font-weight:400;font-style:normal;font-size:calc(var(--u) * var(--s));line-height:1;
  letter-spacing:var(--ls,0);word-spacing:0;white-space:pre;color:var(--c);
  font-kerning:none;font-feature-settings:normal;text-rendering:geometricPrecision;
}
/* 원본: 제목·라벨·이름 위에 같은 색 획(0.227 / 0.312pt)을 덧씌운 굵은 표현 */
.vdoc .vdoc-k{-webkit-text-stroke:calc(var(--u) * var(--k)) var(--c);paint-order:normal}
.vdoc .vdoc-ch{display:inline-block;white-space:pre}

/* 붓글씨 이름: 솔뫼 김대건체(전시 표제와 같은 붓 서체), 먹색. 원본의 굵은 덧획은 쓰지 않는다 */
.vdoc .vdoc-name{font-family:'VD Solmoe','VD Jaemin',-apple-system,sans-serif;font-weight:500;color:#1c1714;letter-spacing:.02em}

/* 재생 전: 이름·도장 숨김 (play가 도장 애니메이션의 첫 상태를 건 뒤에 is-pre를 뗀다) */
.vdoc.is-pre .vdoc-name .vdoc-ch,
.vdoc.is-pre .vdoc-stamp{visibility:hidden}

/* 재생 중: 붓 캔버스(.vdoc-brush, verdict-doc.js brushFor)가 획을 따라 먹을 남긴다 — 그동안 아래 글자는 자리만 잡고 투명.
   획을 못 뽑은 글자(.has-brush 없음)는 비워 뒀다가 .on이 되면 먹이 번지듯 드러난다 */
.vdoc .vdoc-name .vdoc-ch{position:relative}
.vdoc .vdoc-brush{position:absolute;display:block;max-width:none;pointer-events:none}
.vdoc.is-playing .vdoc-name .vdoc-ch.has-brush{color:transparent}
.vdoc.is-playing .vdoc-name .vdoc-ch:not(.has-brush):not(.on){opacity:0}
.vdoc.is-playing .vdoc-name .vdoc-ch.on:not(.has-brush){animation:vdInkIn .28s ease-out both}
@keyframes vdInkIn{from{opacity:0;filter:blur(.08em);transform:scale(1.08)}to{opacity:1;filter:blur(0);transform:none}}
